Istio allows multiple virtualservices even though envoy throws error in istio-pilot

NOTE: using grpc protocol
Describe the bug
When we create multiple virtual services on same domain envoy doesn't allow and throw error in istio-pilot logs saying <code:13 message:"Only unique values for domains are permitted. Duplicate entry of domain paymentservice.paymentservice.svc.cluster.local" >
But istio-pilot considers it as warning and allows creating multiple virtual services, also config-dump shows multiple virtualhost inside routeconfig with duplicated domains.
In result none of the virtualservices are applied even though they are created and shown in config_dump.
Expected behavior

If envoy throws error istio-pilot should also throw error and do not allow multiple virtual services on same domain.
Config_dump shouldn't show multiple virtualhost with duplicated domains in same route_config because they are not applied(config_dump should show configurations which are applied).

Steps to reproduce the bug

Install minimal istio in kubernetes cluster
Deploy https://github.com/GoogleCloudPlatform/microservices-demo i have attached the modified yaml file below which you can apply directly

deployment.yaml
```
apiVersion: apps/v1
kind: Deployment
metadata:
  name: emailservice
spec:
  selector:
    matchLabels:
      app: emailservice
  template:
    metadata:
      labels:
        app: emailservice
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/emailservice:v0.1.0
        ports:
        - containerPort: 8080
        readinessProbe:
          periodSeconds: 5
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:8080"]
        livenessProbe:
          periodSeconds: 5
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:8080"]
        resources:
          requests:
            cpu: 100m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: emailservice
spec:
  type: ClusterIP
  selector:
    app: emailservice
  ports:
  - name: grpc
    port: 5000
    targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: checkoutservice
spec:
  selector:
    matchLabels:
      app: checkoutservice
  template:
    metadata:
      labels:
        app: checkoutservice
    spec:
      containers:
        - name: server
          image: gcr.io/google-samples/microservices-demo/checkoutservice:v0.1.0
          ports:
          - containerPort: 5050
          readinessProbe:
            exec:
              command: ["/bin/grpc_health_probe", "-addr=:5050"]
          livenessProbe:
            exec:
              command: ["/bin/grpc_health_probe", "-addr=:5050"]
          env:
          - name: PRODUCT_CATALOG_SERVICE_ADDR
            value: "productcatalogservice:3550"
          - name: SHIPPING_SERVICE_ADDR
            value: "shippingservice:50051"
          - name: PAYMENT_SERVICE_ADDR
            value: "paymentservice:50051"
          - name: EMAIL_SERVICE_ADDR
            value: "emailservice:5000"
          - name: CURRENCY_SERVICE_ADDR
            value: "currencyservice:7000"
          - name: CART_SERVICE_ADDR
            value: "cartservice:7070"
          # - name: JAEGER_SERVICE_ADDR
          #   value: "jaeger-collector:14268"
          resources:
            requests:
              cpu: 100m
              memory: 64Mi
            limits:
              cpu: 200m
              memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: checkoutservice
spec:
  type: ClusterIP
  selector:
    app: checkoutservice
  ports:
  - name: grpc
    port: 5050
    targetPort: 5050
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: recommendationservice
spec:
  selector:
    matchLabels:
      app: recommendationservice
  template:
    metadata:
      labels:
        app: recommendationservice
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/recommendationservice:v0.1.0
        ports:
        - containerPort: 8080
        readinessProbe:
          periodSeconds: 5
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:8080"]
        livenessProbe:
          periodSeconds: 5
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:8080"]
        env:
        - name: PRODUCT_CATALOG_SERVICE_ADDR
          value: "productcatalogservice:3550"
        resources:
          requests:
            cpu: 100m
            memory: 220Mi
          limits:
            cpu: 200m
            memory: 450Mi
---
apiVersion: v1
kind: Service
metadata:
  name: recommendationservice
spec:
  type: ClusterIP
  selector:
    app: recommendationservice
  ports:
  - name: grpc
    port: 8080
    targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: frontend
spec:
  selector:
    matchLabels:
      app: frontend
  template:
    metadata:
      labels:
        app: frontend
    spec:
      containers:
        - name: server
          image: gcr.io/google-samples/microservices-demo/frontend:v0.1.0
          ports:
          - containerPort: 8080
          readinessProbe:
            initialDelaySeconds: 10
            httpGet:
              path: "/_healthz"
              port: 8080
              httpHeaders:
              - name: "Cookie"
                value: "shop_session-id=x-readiness-probe"
          livenessProbe:
            initialDelaySeconds: 10
            httpGet:
              path: "/_healthz"
              port: 8080
              httpHeaders:
              - name: "Cookie"
                value: "shop_session-id=x-liveness-probe"
          env:
          - name: PRODUCT_CATALOG_SERVICE_ADDR
            value: "productcatalogservice:3550"
          - name: CURRENCY_SERVICE_ADDR
            value: "currencyservice:7000"
          - name: CART_SERVICE_ADDR
            value: "cartservice:7070"
          - name: RECOMMENDATION_SERVICE_ADDR
            value: "recommendationservice:8080"
          - name: SHIPPING_SERVICE_ADDR
            value: "shippingservice:50051"
          - name: CHECKOUT_SERVICE_ADDR
            value: "checkoutservice:5050"
          - name: AD_SERVICE_ADDR
            value: "adservice:9555"
          # - name: JAEGER_SERVICE_ADDR
          #   value: "jaeger-collector:14268"
          resources:
            requests:
              cpu: 100m
              memory: 64Mi
            limits:
              cpu: 200m
              memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  type: ClusterIP
  selector:
    app: frontend
  ports:
  - name: http
    port: 80
    targetPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: frontend-external
spec:
  type: LoadBalancer
  selector:
    app: frontend
  ports:
  - name: http
    port: 80
    targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: paymentservice
spec:
  selector:
    matchLabels:
      app: paymentservice
      version: v1
  template:
    metadata:
      labels:
        app: paymentservice
        version: v1
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/paymentservice:v0.1.0
        ports:
        - containerPort: 50051
        readinessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:50051"]
        livenessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:50051"]
        resources:
          requests:
            cpu: 100m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: paymentservice-v2
spec:
  selector:
    matchLabels:
      app: paymentservice
      version: v2
  template:
    metadata:
      labels:
        app: paymentservice
        version: v2
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/paymentservice:v0.1.0
        ports:
        - containerPort: 50051
        readinessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:50051"]
        livenessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:50051"]
        resources:
          requests:
            cpu: 100m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: paymentservice
spec:
  type: ClusterIP
  selector:
    app: paymentservice
  ports:
  - name: grpc
    port: 50051
    targetPort: 50051
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: productcatalogservice
spec:
  selector:
    matchLabels:
      app: productcatalogservice
  template:
    metadata:
      labels:
        app: productcatalogservice
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/productcatalogservice:v0.1.0
        ports:
        - containerPort: 3550
        readinessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:3550"]
        livenessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:3550"]
        resources:
          requests:
            cpu: 100m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: productcatalogservice
spec:
  type: ClusterIP
  selector:
    app: productcatalogservice
  ports:
  - name: grpc
    port: 3550
    targetPort: 3550
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cartservice
spec:
  selector:
    matchLabels:
      app: cartservice
  template:
    metadata:
      labels:
        app: cartservice
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/cartservice:v0.1.0
        ports:
        - containerPort: 7070
        env:
        - name: REDIS_ADDR
          value: "redis-cart:6379"
        - name: PORT
          value: "7070"
        - name: LISTEN_ADDR
          value: "<IP_ADDRESS>"
        resources:
          requests:
            cpu: 200m
            memory: 64Mi
          limits:
            cpu: 300m
            memory: 128Mi
        readinessProbe:
          initialDelaySeconds: 15
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:7070"]
        livenessProbe:
          initialDelaySeconds: 15
          periodSeconds: 10
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:7070"]
---
apiVersion: v1
kind: Service
metadata:
  name: cartservice
spec:
  type: ClusterIP
  selector:
    app: cartservice
  ports:
  - name: grpc
    port: 7070
    targetPort: 7070
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: loadgenerator
spec:
  selector:
    matchLabels:
      app: loadgenerator
  replicas: 1
  template:
    metadata:
      labels:
        app: loadgenerator
    spec:
      terminationGracePeriodSeconds: 5
      restartPolicy: Always
      initContainers:
      - name: wait-frontend
        image: alpine:3.6
        command: ['sh', '-c', 'set -x;  apk add --no-cache curl &&
          until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do
            echo "waiting for http://${FRONTEND_ADDR}";
            sleep 2;
          done;']
        env:
        - name: FRONTEND_ADDR
          value: "frontend:80"
      containers:
      - name: main
        image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.1.0
        env:
        - name: FRONTEND_ADDR
          value: "frontend:80"
        - name: USERS
          value: "10"
        resources:
          requests:
            cpu: 300m
            memory: 256Mi
          limits:
            cpu: 500m
            memory: 512Mi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: currencyservice
spec:
  selector:
    matchLabels:
      app: currencyservice
  template:
    metadata:
      labels:
        app: currencyservice
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/currencyservice:v0.1.0
        ports:
        - name: grpc
          containerPort: 7000
        readinessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:7000"]
        livenessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:7000"]
        resources:
          requests:
            cpu: 100m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: currencyservice
spec:
  type: ClusterIP
  selector:
    app: currencyservice
  ports:
  - name: grpc
    port: 7000
    targetPort: 7000
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: shippingservice
spec:
  selector:
    matchLabels:
      app: shippingservice
  template:
    metadata:
      labels:
        app: shippingservice
    spec:
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/shippingservice:v0.1.0
        ports:
        - containerPort: 50051
        readinessProbe:
          periodSeconds: 5
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:50051"]
        livenessProbe:
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:50051"]
        resources:
          requests:
            cpu: 100m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: shippingservice
spec:
  type: ClusterIP
  selector:
    app: shippingservice
  ports:
  - name: grpc
    port: 50051
    targetPort: 50051
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-cart
spec:
  selector:
    matchLabels:
      app: redis-cart
  template:
    metadata:
      labels:
        app: redis-cart
    spec:
      containers:
      - name: redis
        image: redis:alpine
        ports:
        - containerPort: 6379
        readinessProbe:
          periodSeconds: 5
          tcpSocket:
            port: 6379
        livenessProbe:
          periodSeconds: 5
          tcpSocket:
            port: 6379
        volumeMounts:
        - mountPath: /data
          name: redis-data
        resources:
          limits:
            memory: 256Mi
            cpu: 125m
          requests:
            cpu: 70m
            memory: 200Mi
      volumes:
      - name: redis-data
        emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: redis-cart
spec:
  type: ClusterIP
  selector:
    app: redis-cart
  ports:
  - name: redis
    port: 6379
    targetPort: 6379
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: adservice
spec:
  selector:
    matchLabels:
      app: adservice
  template:
    metadata:
      labels:
        app: adservice
    spec:
      terminationGracePeriodSeconds: 5
      containers:
      - name: server
        image: gcr.io/google-samples/microservices-demo/adservice:v0.1.0
        ports:
        - containerPort: 9555
        env:
        - name: PORT
          value: "9555"
        #- name: JAEGER_SERVICE_ADDR
        #  value: "jaeger-collector:14268"
        resources:
          requests:
            cpu: 200m
            memory: 180Mi
          limits:
            cpu: 300m
            memory: 300Mi
        readinessProbe:
          initialDelaySeconds: 20
          periodSeconds: 15
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:9555"]
        livenessProbe:
          initialDelaySeconds: 20
          periodSeconds: 15
          exec:
            command: ["/bin/grpc_health_probe", "-addr=:9555"]
---
apiVersion: v1
kind: Service
metadata:
  name: adservice
spec:
  type: ClusterIP
  selector:
    app: adservice
  ports:
  - name: grpc
    port: 9555
    targetPort: 9555
---
```

Enable istio in checkout-service only istioctl kube-inject -f deployment.yaml | kubectl apply-f - and create 2 virtual services applying below yaml

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: checkoutservice
spec:
  hosts:
    - paymentservice.default.svc.cluster.local
  http:
    - route:
        - destination:
            host: paymentservice.default.svc.cluster.local
            subset: version1
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: checkoutservice
spec:
  hosts:
    - paymentservice.default.svc.cluster.local
  http:
    - route:
        - destination:
            host: paymentservice.default.svc.cluster.local
            subset: version2

Get config_dump kubectl exec -it {checkoutservice_pod_name} -c istio-proxy curl http://localhost:15000/config_dump > configdump

Version
istioctl version --remote
client version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.0-17-g2b13318"}
pilot version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}

kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-13T23:15:13Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.7-gke.12", GitCommit:"06f08e60069231bd21bdf673cf0595aac80b99f6", GitTreeState:"clean", BuildDate:"2019-02-25T20:37:10Z", GoVersion:"go1.10.8b4", Compiler:"gc", Platform:"linux/amd64"}

Installation
kubectl create namespace istio-system
helm template install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl apply -f -
helm template install/kubernetes/helm/istio --name istio --namespace istio-system \
    --values install/kubernetes/helm/istio/values-istio-minimal.yaml | kubectl apply -f -

Environment
GKE

@mbanikazemi Do you have a PR for this coming soon? It seems like a pretty nasty problem that shouldn't need to wait for 1.2.
I think the best fix for this is to check and make sure not to add duplicate vhosts, probably in this loop. Log a message when a duplicate is ignored. That way, the generated config will at least be the same as what Envoy is using. Is that more or less what you are intending to do?

@frankbu pushed a PR. Addes unit tests but need to test more. In my cluster I see the duplicate entries are prevented from happening and log messages are generated. I see too many log entries though and need to check if they are legit. Hence, the [WIP] marking.

@linsun I'm considering this bugfix to be P0 for 1.1.
If I understand correctly, master (and thus, 1.2) is fixed by #13431 .
The fact that this (#13267) is still opened is because of #13550 (backport fix to the older 1.1 branch).
I'm pointing #13431 (the master bugfix) to 1.2 and point this current issue to 1.1 .

@mbanikazemi can this be closed now?  it is a fix highlighted in rel note of 1.1.8.


Huge loss when running  edvr!!

22391.0659
2021-11-02 11:01:27,959 - mmedit - INFO - Iter [1400/600000]    lr_generator: 3.999e-04, eta: 1 day, 13:02:05, time: 0.211, data_time: 0.007, memory: 1367, loss_pix: 21772.9856, loss: 21772.9856
2021-11-02 11:01:50,106 - mmedit - INFO - Iter [1500/600000]    lr_generator: 3.999e-04, eta: 1 day, 13:00:52, time: 0.221, data_time: 0.003, memory: 1367, loss_pix: 22172.7878, loss: 22172.7878
am i wrong?

I think that is normal, as EDVR uses sum instead of mean when calculating the loss (here).
Is the PSNR normal?

@dzz416 Is there any problem now? If not I will close the issue.

Closing the issue due to inactivity. Please re-open if the problem persists.


Bump intake-bluesky and bluesky-browser.

This was taken care of by https://github.com/NSLS-II/lightsource2-recipes/pull/766.


Use env variables from os for interpolation

What I did
Interpolate variable in compose file using os Environment
Related issue
closes #153
(not mandatory) A picture of a cute animal, if possible in relation with what you did

I have problems with the following in my docker-compose file, when XX_CODE is set in the executing shell.
Should this be covered under this pull-request, or is this a separate issue that remains to be fixed.
(I use the current construction to allowd several people to keep the code at a custom place, to avoid having to force people to use a path like this  /home/user/fixed_path1/
    volumes:
      - ${XX_CODE}:/www/sand/sandbox:ro


dp: windscale-faucet-1 metered but not configured, no watcher configured for DPID 1 (0x1)

I'm trying to read gauge information, but it doesn't save anything on influxdb.
I'm using the faucet VM
This is /var/log/ryu/faucet/gauge.log:

How can I configure watcher?
My /etc/ryu/faucet/gauge.yaml configuration (Is the default configuration)

The information on ryu-manager is the following:

Can you check /etc/ryu/faucet/faucet.yaml and make sure "windscale-faucet-1" is actually the DPID you want to use?
I think you are using a Zodiac FX, thats why the Error is that dp: windscale.. is not configured as there is no active DP for windscale..
If so, under /etc/ryu/faucet/gauge.yaml change the dps: ["Name of the datapath"]
Hope this helps!
Rahul

If you are using the default faucet.yaml for Zodiac FX, you need to change it under gauge.yaml as
dps: ['zodiac-fx-1']

If I use ZodiacFX with the following configuration:

I got this WARNING:

cat /var/log/ryu/faucet/gauge.log
Oct 12 16:25:47 gauge.config WARNING  Version 1 config is UNSUPPORTED. Please move to version 2
Oct 12 16:25:47 gauge.config INFO     zodiac-fx-1

To change to version 2, I changed it as follows:

Now, when I run it I get this message:

My gauge.yaml configuration is:

How can you configure zodiac_fx to avoid the error?
How can you configure a watcher for an specific dp_id? I can't see any data recorded in my influxdb

I solved this issue. I'm not following a correct format for version 2 (there are not many examples). I post an example here about how to run gauge without problems.
Thanks for your help!


Release v3.1.1 using latest containers

Summary
It appears that the v3.1.1 manifests in /manifests are using the :latest containers. I expect them to be :v3.1.1 like prior releases.
Diagnostics
What Kubernetes provider are you using? EKS
What version of Argo Workflows are you running? v3.1.1
Did this work in a previous version? I.e. is it a regression? Yes

Manifests were specifying proper Docker images up to version v3.0.8 of Argo Workflows. With version v3.1.0, specific version tags were changed to latest. It seems that these changes used to be done manually.

@elocke I am working v3.1.2 release today which will overwrite your PR.

@sarabala1979, thanks for info! I'm closing my PR.

@sarabala1979 Tag 3.1.2 still doesn't specify proper Docker image versions inf YAMLs. See: https://github.com/argoproj/argo-workflows/blob/v3.1.2/manifests/install.yaml

Please read https://github.com/argoproj/argo-workflows/blob/master/docs/upgrading.md.


Gardener website documentation manifest

Create a documentation manifest for Gardener website, processable with docforge.

@g-pavlov Could you please explain what was the idea behind this issue?

/assign @n-boshnakov

done long time ago


The container is deleted and in the state of pending does not go away

http://localhost:4444/status
{"total":5,"used":0,"queued":0,"pending":2,"browsers":{"chrome":{"76.0":{},"77.0":{}},"firefox":{"68.0":{},"69.0":{}},"opera":{"62.0":{},"63.0":{}}}}
As I understood this happened from for mistakes:
2019/09/30 14:01:54 [384] [SESSION_DELETED] [2a3a66e2984801c146012fafe793f1fa]
2019/09/30 14:02:24 [370] [DELETE_FAILED] [2a3a66e2984801c146012fafe793f1fa] [Delete http://<IP_ADDRESS>:4444/wd/hub/session/2a3a66e2984801c146012fafe793f1fa: context deadline exceeded]
2019/09/30 14:02:24 [384] [CLIENT_DISCONNECTED] [unknown] [<IP_ADDRESS>] [Error: context canceled]
2019/09/30 14:02:24 [367] [REMOVING_CONTAINER] [9722593ee146d91fb99bc86f719d8870b50f5c5d7f831bc3cb3e8001f508d15b]
2019/09/30 14:02:24 [370] [CLIENT_DISCONNECTED] [unknown] [<IP_ADDRESS>] [Error: EOF]
2019/09/30 14:02:25 [367] [CONTAINER_REMOVED] [9722593ee146d91fb99bc86f719d8870b50f5c5d7f831bc3cb3e8001f508d15b]
2019/09/30 15:17:39 [1314] [CONTAINER_LOGS_DISCONNECTED] [1a67453a21c996a591246c7d6a264054]
2019/09/30 15:18:03 [1310] [DELETE_FAILED] [1a67453a21c996a591246c7d6a264054] [Delete http://<IP_ADDRESS>:4444/wd/hub/session/1a67453a21c996a591246c7d6a264054: context deadline exceeded]
2019/09/30 15:18:03 [1327] [CLIENT_DISCONNECTED] [unknown] [<IP_ADDRESS>] [Error: context canceled]
2019/09/30 15:18:03 [1309] [REMOVING_CONTAINER] [61bd14a88ccd0045d1d7c650b5ec140179d52bf7816d87be8991ec1a52a5f3b9]
2019/09/30 15:18:03 [1310] [CLIENT_DISCONNECTED] [unknown] [<IP_ADDRESS>] [Error: EOF]
2019/09/30 15:18:04 [1309] [CONTAINER_REMOVED] [61bd14a88ccd0045d1d7c650b5ec140179d52bf7816d87be8991ec1a52a5f3b9]
2019/09/30 15:24:05 [1425] [CONTAINER_LOGS_DISCONNECTED] [8bb38307e73008c5bad9faa99385b245]
2019/09/30 15:24:25 [1418] [DELETE_FAILED] [8bb38307e73008c5bad9faa99385b245] [Delete http://<IP_ADDRESS>:4444/wd/hub/session/8bb38307e73008c5bad9faa99385b245: context deadline exceeded]
2019/09/30 15:24:25 [1437] [CLIENT_DISCONNECTED] [unknown] [<IP_ADDRESS>] [Error: context canceled]
2019/09/30 15:24:25 [1416] [REMOVING_CONTAINER] [f09144b96f6a97e8c653e017c1e13391217d43303bcc7a06544bfdf8178f2607]
2019/09/30 15:24:25 [1418] [CLIENT_DISCONNECTED] [unknown] [<IP_ADDRESS>] [Error: EOF]
2019/09/30 15:24:25 [1416] [CONTAINER_REMOVED] [f09144b96f6a97e8c653e017c1e13391217d43303bcc7a06544bfdf8178f2607]
Versions:
Docker version 19.03.2, build 6a30dfc
aerokube/selenoid: 1.9.2
aerokube/selenoid-ui: 1.8.1
docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
3ad176492bd4        aerokube/selenoid-ui:1.8.1   "/selenoid-ui --sele…"   19 hours ago        Up 19 hours         <IP_ADDRESS>:8080->8080/tcp   selenoid-ui
693ac88cb0a7        aerokube/selenoid:1.9.2      "/usr/bin/selenoid -…"   22 hours ago        Up 22 hours         <IP_ADDRESS>:4444->4444/tcp   selenoid

@dedulay take a look at system metrics such as load average, iowait and memory usage. This can be a sign that you created too many parallel sessions on your machine.

Closing as it Docker bug or overloaded server symptoms.


ci: Run<EMAIL_ADDRESS>6 Error: Resource not accessible by integration"

A discussion that started on slack, moving to here.
Since we wanted parallel jobs, Github actions do not natively support canceling parallel jobs. So the action, that cancels parallel jobs, calls out to the GitHub api to do it.
Also the built-in concurrency key seems to do something different than what we want it to do... That is mainly for making sure there is a single instance of CI running at a time. To make sure there is one action deploying the application for example.

Did some research on this, seems like not all forks have enough permission to access the gh api of the star chart repo
Read up on 2 issues:
https://github.com/actions/first-interaction/issues/10
https://github.com/actions/labeler/issues/12
There doesn't seem to be a workaround for this. Either we give up on canceling parallel jobs, or we go back to jobs being sequential, allowing each action to depend on the previous one passing before starting.

Sounds good

You can probably make a branch and do: git revert fb2cfe38e2cd2005a396b8495803ace8e060525a to have it automatically undo this for you.


Support for OpsGenie & PagerDuty

More of a question/feature request. Have tools like OpsGenie and PagerDuty been explored as options for alerting? Many operators may use these tools to integrate with existing tooling such as AlterManager. It would be nice to have alerts in a single tools/resource :)

Hi @alexanderbez, thank you for your interest and suggestions! OpsGenie and PagerDuty have not been explored yet. We will definitely consider integrating them with PANIC, especially for the use case of having alerts in a single tool.

I would be happy to help with any integrations. Perhaps I could open up a PR to support OpsGenie as a reference?

It would be great if you open up a PR to support OpsGenie. From our end, we might not work on it for now as we have a lot of other upgrades planned for P.A.N.I.C. that we're excited about, and for now we have to be a bit picky when it comes to which additional tools to support :)


Flatten Variant into Genotype

Flattens entire Variant record into Genotype. Doing so will improve query speed when looking at regions by avoiding nested schemas in Parquet.
Important things to note:

This impacts any schemas that previously nested Variant. Right now this is just DatabaseVariantAnnotation, but will impact any other VariantAnnotation schemas, such as those sitting in  #67.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/bdg-formats-prb/82/
Test PASSed.

Thanks for opening this @erictu! A quick question: is the performance degradation associated with the nested fields limited to running a predicate on nested fields? I'm curious as to how query performance varies if we fully flatten the Genotype schema (i.e., also flatten out StructuralVariant and VariantCallingAnnotations) versus just doing this flattening. Do you have numbers for this/could you generate numbers for this?

You're right, performance degradation is associated with running a predicate, so really I only need the fields that filter operations are performed on (right now pretty basic, just start, end, alleles, contigName). I'll investigate varying degrees of flattening schemas and see how that works though.

Thanks @erictu!

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/bdg-formats-prb/83/
Test PASSed.

I made changes so only the contigName, start, and end, are flattened into the Genotype record. That being said, I wasn't sure whether to remove them from the Variant record as well.

I would push all the Variant fields down. I was mostly concerned about pushing the VariantCallingAnnotation fields into the schema.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/bdg-formats-prb/84/
Test FAILed.

If the problem is performance with predicates over nested fields in Parquet, is it possible to improve things there?  This is a lot to flatten in the name of performance.

It'd have to be improved in Parquet and in Spark SQL (and in Impala and in etc...). I agree though. I don't love making these changes for perf reasons only.

Would it still help if we only did that described in the comment above (https://github.com/bigdatagenomics/bdg-formats/pull/77#issuecomment-214859424)?
Keep contigName, start, and end in both schema, that is.

Yes, that would be fine.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/bdg-formats-prb/90/
Test PASSed.

@erictu can you rebase and make the fix above to this today? Thanks.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/bdg-formats-prb/91/
Test PASSed.

should be good!

Merged! Thanks for the patch and the quick turnaround on the last fix, @erictu!


Why does WithParams replace an array of params instead of concatenating with it?

In my use case, I need to invoke WithParams multiple times, but I observed that the last call to WithParams overwrites the results of the previous ones. Upon further investigation, I noticed the following implementation in endpoints.go:

func WithParams(params ...*parameter.Parameter) EndPointOption {
	return func(e *EndPoint) {
		e.params = params
	}
}

Could you clarify why the params array is replaced instead of being appended? This approach appears to limit functionality.

WithParams accepts multiple parameters(...*parameter.Parameter) already, why do you need it twice? I wonder your case, can you share your use case for me to understand?

Sure @anilsenay , here is my code:

group.GET(
		":telegram_id/subscribers",
		c.swagger.Get(base, "{telegram_id}/subscribers", "Get subscribers").
			Int64Param("telegram_id").
			Pagination().
			Handle(c.getSubscribers, ApiPlayersResponseDTO{})...)

Here c is my Controller, and c.swagger is a SwaggerHelper struct, which has a Get method to create a GET endpoint. It returns a SwaggerEndpoint pointer, a struct with chain methods like IntParam, StrParam, Pagination, and others, which internally add Gin endpoints to parse parameters accordingly, and also add options to the []endpoint.EndPointOption array. After calling all the necessary functions, I finish with Handle(gin.Handler, body: interface{}), which returns the array of previously added Gin middlewares.
I designed this to avoid writing code twice: first for Gin handlers, and then for Swagger documentation. Later, I can simply call c.swagger.Endpoints(), which forms a []*endpoint.EndPoint array for the AddEndpoints method. However, this approach breaks here:

func (se *SwaggerEndpoint) IntParam(name string) *SwaggerEndpoint {
	se.options = append(
		se.options,
		endpoint.WithParams(parameter.IntParam(name, parameter.Path, parameter.WithRequired())),
	)
	se.ginHandlers = append(se.ginHandlers, utils.WithIntParam(name))
	return se
}

As you can see, I append new parameters to the existing ones, but due to the fact that WithParams in Swagno replaces the parameters instead of concatenating them, only the last added options will work.

@bestietamer, got your point, actually I was planning to do similar for my projects.
I guess changing it as append instead of replace works and won't break anything but I want to think about another cases before changing the current behavior. I am gonna check it tomorrow.
Thank you for sharing your use case 🙏

Hi @bestietamer,
I think e.params = params is more appropriate than e.params = append(e.params, params).
In my opinion, WithXxx() functions should work this way.
However, considering your use case, I believe making this change wouldn't harm anyone and could improve the user experience in your case.
I will do this change and create a new release soon. Maybe I will come up with better solution until then.

https://github.com/go-swagno/swagno/releases/tag/v1.2.3
go get<EMAIL_ADDRESS>I released a new version as pre-release, it should solves your issue.
@bestietamer


Why quote inconsistent with parse for op

I think quote() is not consistent with parse().
console.log(parse('a | b'));  // => [ 'a', { op: '|' }, 'b' ]
console.log(quote([ 'a', { op: '|' }, 'b' ]));  // => a \| b

Below returns the same result.
console.log(quote([ 'a', '|', 'b' ]));  // => a \| b

What did you intend for {op: '...'} in quote()?
I think, it should NOT be escaped. My proposal to fix test/quote.js is:
test('quote ops', function (t) {
    t.equal(quote([ 'a', { op: '|' }, 'b' ]), 'a | b');
    t.equal(
        quote([ 'a', { op: '&&' }, 'b', { op: ';' }, 'c' ]),
        'a && b ; c'
    );
    t.end();
});

Yeah, seems like quote wants to be "un-parse" but it just treats every item as a string.
It's an easy change to make:
diff --git a/index.js b/index.js
index a917871..91c89b7 100644
--- a/index.js
+++ b/index.js
@@ -6,7 +6,11 @@ var reduce = require('array-reduce');
 exports.quote = function (xs) {
     return map(xs, function (s) {
         if (s && typeof s === 'object') {
-            return s.op.replace(/(.)/g, '\\$1');
+            if (s.hasOwnProperty('pattern')) {
+                return '"' + s.pattern + '"';
+            } else {
+                return s.op;
+            }
         }
         else if (/["\s]/.test(s) && !/'/.test(s)) {
             return "'" + s.replace(/(['\\])/g, '\\$1') + "'";

but then it fails a bunch of tests that seem to be ensuring this behavior.
@substack: Would you be open to an unparse method, or a flag to tell quote() to reconstitute the command line rather than escaping it?  I have a use case where I want to parse the command, then do some stuff to it, and then re-constitute it into the thing to be run.

@isaacs Hi, did you find a solution for "parse the command, then do some stuff to it, and then re-constitute it into the thing to be run"?

I think a new unparse method would be a nice addition. People might be relying on the current quote behaviour.


Forth tag (topics)

Please create a "Forth" tag and ... for this project. (Label "Manage topic" in open project)

Done, thanks.


Duplicated warning

This issue was originally filed by<EMAIL_ADDRESS>
class A {
  A() { hest--; }
}
main() {
  new A();
}
$ ./sdk/bin/dart2js bar.dart
bar.dart:2:9: Warning: No member named "hest" in class "A".
  A() { hest--; }
        ^^^^^^
bar.dart:2:9: Warning: No property named "hest" in class "A".
  A() { hest--; }
        ^^^^^^
Dart file bar.dart compiled to JavaScript: out.js

handled in CFE


Major

Normalize Result and AsyncResult APIs
Lower CJS bundle size
Docsify

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

19 of 19 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
171

Relevant Lines:
171

💛  - Coveralls


chore: added tuna tracking to app-ui to avoid possible blind spots in tracking users across dashboard

Other things we probably want to do:

~probably need to review w/ security team on this stuff because we do use cookies and we probably need to disclose it (esp. with tuna)~
~for now only enabling pageview event, but we may want to return to other portions~
~we could probably react-ify some parts of tuna, not sure if we want to~ (later)

Flag enabled:

Flag disabled:

Cookie notice aesthetic (disabled for now):

I verified this works locally against .aptible.com domains (dismiss cookie) and removed all unnecessary parts (copied from another repo)


Wire History

In theory, history is just a select all from conversations (and users, tags, whatever) sorted in reverse order by date.

It is wired; has a bug showing node images, and still needs paging.

Its wiring is completed. Now has an open bug issue, so closing this one.


Scroll bug in iOS with fixed-top and inputs

When a user focuses on an input inside a fixed-top navbar there is a weird scroll bug. For some reason iOS scrolls a small amount to the top of the page every time the input is focused. Another issue is that the user can scroll while the virtual keyboard is displayed.
You can see the weird behavior here: https://youtu.be/mEiL8UxTjVs
Here is the code to reproduce: https://github.com/PierBover/webkit-ios-input-scroll-bug/blob/master/repro-bootstrap.html
Tested on iOS 11, 12, and 13. It seems to only happen on iPhones. I can't reproduce it in my iPad Pro with iOS 12.
In Android this doesn't happen either. An element with position: fixed; stays fixed as expected.
This is most likely a bug with iOS but I wanted to have some precedence in case someone stumbled upon this problem (or if Bootstrap wanted to alleviate it with some hack).
I've reported the bug to the Webkit team:
https://bugs.webkit.org/show_bug.cgi?id=207049

This is most likely a bug with iOS but I wanted to have some precedence in case someone stumbled upon this problem (or if Bootstrap wanted to alleviate it with some hack).

Thank you reporting this but sorry nothing we can do.


Use an union of TypeCheckFuncBodies

Right now linter implementations cannot define what func bodies they need type-checked. So at the moment, metacheck and any other tools have to be safe and type-check everything.
This works fine, but especially on packages with lots of dependencies this can lead to lots of wasted time.
I propose that each linter may expose a TypeCheckFuncBodies method. If they don't, it defaults to return true - type-check all func bodies, like we do now. We must be safe if we don't know better.
Either way, when running multiple linters we can use the union of all of these funcs as follows (simplified):
fn := func(path string) bool {
    for _, c := range checkers {
        if c.TypeCheckFuncBodies(path) {
            return true
        }
    }
    return false
}

This way, if none of the linters we're running need to type-check the func bodies of a package, we won't. As soon as one of them does (or hasn't implemented the method), we will.

Would also be great if linters could say "I only need type-checking of the packages given as arguments", i.e. lprog.InitialPackages(). But this isn't currently possible, as far as I know: https://github.com/golang/go/issues/18288

@bradleyfalzon @thomasheller thoughts on this one? Out of all the current ideas in the issue tracker, it's the only one that I have zero doubts about.

I'm on the fence, it seems straight forward to implement in lint or in the client library, but as soon as one package sets it to true, everyone pays the penalty. So it may not be worth implementing, and keeping it simpler until we know the number of linters that require it.

It's true that, in practice, tools like metalint will just end up type-checking all bodies. At the same time, using that as a reason not to make this configurable seems like limiting the power that the checkers have to precisely define what they need and don't need done.
You're right that keeping the API simpler might be a good idea for now, though. It won't break backwards compatibility to add it later. Leaving the issue open for now.

Let's re-evaluate this once the go/loader API gets overhauled in the next few months. There might not even be a TypeCheckFuncBodies anymore, then.


Refactor Kernel

cf #190.
Moves kernel-related files and code to src/kernel.
API changes:

Use a Kernel namespace instead of the IKernel namespace.
Rename Kernel class -> DefaultKernel.
Move the free kernel-related functions onto the Kernel and KernelMessage namespaces as appropriate.
Kernel now exports: IKernel interface, Kernel namespace, KernelMessage namespace, KernelManager class.
Rename IKernel.getKernelSpecs -> IKernel.getSpecs

Comments addressed.

Awesome, looks good to me.
👍


CUDA: Add CUDA 11.8 / Hopper support and required fixes

See individual commit messages for full descriptions. The required fixes consist of:

Correcting the logic for determining supported compute capabilities, which was completely broken on main.
Using the correct NVVM IR version in all tests.

gpuci run tests

Buildfarm ID: numba_smoketest_cuda_yaml_172.

Any news on the buildfarm?

@gmarkall @stuartarchibald apologies again for the delay here. Some hardware on the buildfram had to be replaced, hence the delay here. I have scheduled a fresh run for this PR at:
Build numba_smoketest_cuda_yaml_176 has started


Updated jsoup version from 1.8.1 to 1.8.3 in order to eliminate an unsafe XSS vector

Through a security review we have discovered a problem related to Jsoup used by the SafeHtml validator. A fix has been submitted to Jsoup and the fix has now been released with version 1.8.3.
I have added a test for SafeHtmlValidator that exposes the problem and updated Jsoup to the currently latest version.
Please see the Jsoup pull request for details: https://github.com/jhy/jsoup/pull/582

Hey @fazerish, thanks for the report and providing a fix!
If you haven't done so, could you sign the contributor license agreement here? Could you also create an issue in our JIRA tracker and rework the commit message to refer to the ticket number?
Apart from these formalities, the change looks good to me. Thanks again!

Merged!  Thanks @fazerish


Function truthy check doesn't apply if the function is in a boolean expression

TypeScript Version:  3.8.2, nightly

Search Terms:
Function truthiness, function truthy check
Code
const someBool = true;

function f() {}

if (f) {}

if (someBool && f) {}

if (!someBool || f) {}

Expected behavior:
All three if statements should throw a This condition will always return true since the function is always defined. Did you mean to call it instead? error.
Actual behavior:
Only the first statement throws the error.
Playground Link: https://www.typescriptlang.org/play/index.html?ts=Nightly#code/MYewdgzgLgBBIFsCmAhEIA2MC8MoCcBXJAbgFgAoSgM0LGCgEtwZqAKAShgG8BfSyo2ow21LnwEUhI+MjSYYAMkWtx-KlOFsAhLNTosAH0OqevIA
Related Issues:
https://github.com/microsoft/TypeScript/issues/37149

Is the fact that simply negating the check causes the warning to disappear covered by this issue?
https://www.typescriptlang.org/play?#code/MYewdgzgLgBFAWBLMBzGBeGBvAsAKBhkQgCEBTAQwFcpEAzKgGwAoBKbfQwgJzKiu5g43KmQDcnGAF98UiXnz0YzBMhQA6YuWq0GjdrgIxQkEIzLrGIFMwBEACUS3W8mQrwB6DzADK8EEwAJjBk3Nwg3DCMiADWZDAUAEYgAG5kinTKAISqqJqklDT0TAaSJhBmFlY2Dk4uskA
const thing = {
  isBeautiful() {
    return true;
  }
};

if (thing.isBeautiful) {
  console.log("Hi");
}

// Should error like above
if (!thing.isBeautiful) {
  console.log("Hi");
}

The uncalled function check is intentionally very limited, since there are a lot of cases where you might be checking a function truthiness on purpose. For the case of if (!x) it's reasonable to not see an x in the body of the function, and we didn't want you to have to write !!!x to get around the checking error, so not including that case was intentional.


Include toolbar in the list of children

@davidjgonzalez  Can you merge this? This would solve the issue https://github.com/Adobe-Consulting-Services/aem-chrome-plugin/issues/52 .


Rewrite to use io.Reader and io.Writer

Helps with big responses.
For backward compatibility, EncodeClientRequest does not change,
just introduce a new
EncodeClientRequestW(io.Writer, string, interface{}) error

function.
This is a follow-up of #8, without the maps, and proper error handling in writers.

Oh, sorry, totally missed this PR!
Will review it this week!


HttpRequest not supported in non-DOM isolates in Dartium

This program works fine in dart2js:
import 'dart:isolate';
import 'dart:html' show HttpRequest;
useHttpRequest() {
  port.receive((String uri, SendPort replyTo) {
    try {
      HttpRequest.getString('test.dart').then((text) => replyTo.send(text));
    } catch (e, trace) {
      replyTo.send('$e\n$trace');
    }
  });
}
main() {
  print('Starting isolate');
  spawnFunction(useHttpRequest).call('test.dart').then((reply) => print('Reply: $reply'));
}
The console shows:
Starting isolate test.dart.js:4629
Reply: import 'dart:isolate';
import 'dart:html' show HttpRequest;
useHttpRequest() {
  port.receive((String uri, SendPort replyTo) {
    try {
      // replyTo.send('Hello');
      HttpRequest.getString('test.dart').then((text) => replyTo.send(text));
    } catch (e, trace) {
      replyTo.send('$e\n$trace');
    }
  });
}
main() {
  print('Starting isolate');
  spawnFunction(useHttpRequest).call('test.dart').then((reply) => print('Reply: $reply'));
}
 test.dart.js:4629
Unfortunately, sadness descents on Dartium.  This is what is printed in the console:
Starting isolate undefined:1
Reply: DOM access is not enabled in this isolate
#0      HttpRequest._create (file:///Volumes/data/b/build/slave/dartium-mac-inc/build/src/out/Release/gen/webkit/bindings/dart/dart/html/HttpRequest.dart:60:3)
#1      HttpRequest.HttpRequest (file:///Volumes/data/b/build/slave/dartium-mac-inc/build/src/out/Release/gen/webkit/bindings/dart/dart/html/HttpRequest.dart:58:35)
#2      HttpRequest.request (file:///Volumes/data/b/build/slave/dartium-mac-inc/build/src/out/Release/gen/webkit/bindings/dart/dart/html/HttpRequest.dart:10:15)
#3      HttpRequest.getString (file:///Volumes/data/b/build/slave/dartium-mac-inc/build/src/out/Release/gen/webkit/bindings/dart/dart/html/HttpRequest.dart:5:19)
#4      useHttpRequest.<anonymous closure> (http://<IP_ADDRESS>:56653/web_editor/test.dart:6:28)
#5      _ReceivePortImpl._handleMessage (dart:isolate-patch:81:92)
 undefined:1

What is the status on this bug? Is anyone working on it?

Yes, in that we expect to turn isolates in Dartium into webworkers, but it's gated on some other Dartium work. Note that a workaround is that you can spawn a webworker running JS explicitly in Dartium, it's just awkward and not fun to debug.


please add TypeScript support

Thanks. It is currently in development https://github.com/cheprasov/js-qrcode/pull/14


docs: Fixing broken agent and ledger relative links in the credentials doc

There were a couple of broken links in the Credentials Getting Started doc. This PR fixes the links to the Agent and Ledger Getting Started docs by referencing them from the same folder that the Credentials doc is in.

Codecov Report

Merging #534 (4f02ec6) into main (c92393a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #534   +/-   ##
=======================================
  Coverage   85.95%   85.95%
=======================================
  Files         267      267
  Lines        5832     5832
  Branches      947      947
=======================================
  Hits         5013     5013
  Misses        818      818
  Partials        1        1

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c92393a...4f02ec6. Read the comment docs.


[WIP] Improve 1.3

Some improvements to part 1 so far. This restored some good parts of sections that have been removed, and addressed some of the comments in issue #395 .
To do:

address the other comments
maybe remove the Bloch sphere?

If you are not familiar with vectors, you can essentially just think of them as lists of numbers which we manipulate using certain rules.

We have linear algebra as a prerequisite and go over vectors in that section, so should assume the reader knows this information.

This is a lot of notation to take in all at once. First let's unpack the weird $|$ and $\rangle$

This is not weird, but may be unfamiliar to the reader.  However, again, linear algebra is a prerequisite, and this notation is used there.

If you are not familiar with vectors, you can essentially just think of them as lists of numbers which we manipulate using certain rules.

Same.

For example, thebvelocity

Spelling

If you are familiar with vectors from your high school physics classes, you'll know that these rules make vectors well-suited for describing quantities with a magnitude and a direction. For example, thebvelocity of an object is described perfectly with a vector. However, the way we use vectors for quantum states is slightly different to this.

The vectors in QM also have amplitudes and directions.
This chapter highlights a general disconnect between the linear algebra "prerequisite" and the text.  A prerequisite is something that is necessary to have ahead of time.  Thus we should either assume that the reader knows it, or drop the notion of linear algebra as a prerequisite, and move it to an appendix.

Thanks for the comments. But regarding the 'linear algebra as a prerequisite' thing, I don't think reading a wall of text on linear algebra should be a prerequisite. It is better for us to introduce as we go along, and refer to the lin alg section as a resource that can be used for people to brush up.

There is a lot that people can get out of the textbook without needing to stare at the Maclaurin series, etc. What's the point in trying to start the textbook off in a gentle and ped

I would agree.  The lin alg section is quite overwhelming.  But it does mean a decision about readers knowledge level needs to be solidified.  I see you are doing this in #409

Since the improving the Bloch sphere part is dependent on a Terra PR (for alternative measurements). We can do that in a future PR. I've taken the WIP off for now.
I haven't merged myself, because I don't like overusing my superpowers.

This is much better, thanks @quantumjim.


iframe for instruqt training module won't appear on Safari or browsers with iframes disabled.

Description
Wit the addition of the iframe for instruqt training module it won't appear on Safari or browsers with iframes disabled. As many browsers ship with iframe settings disabled, or users opt to disable them as they can be insecure.
Steps to reproduce

open this page in a browser like Safari:
See big white box.

Expected behavior
Ideally we could show an alternative message when the iframe is disabled. After researching Iframes for about 30 minutes, there doesn't seem to be a way to do that with alt-tags, but instead you need to right some javascript to serve up an alternative experience.
Screenshots
Firefox

Safari

One suggested simple solution is to use our tip component. I'm confirming with @polfliet  if this will work.


Hovering on a slot or slot label, it should highlight the corresponding area on the canvas

depends on https://github.com/concrete-utopia/utopia/issues/5489 because this issue builds on it


Kubernetes prerequisites content additions and revisions

These are changes that were derived from this PR. I've only made the changes to the Documentation Overview page for v0.3.2. If these changes are good, I can make them across all of the other versions as well.

@devadvocado since you were the one that originally worked on these changes, can you review when you have a chance and let me know if I'm on target? I made some revisions based on the feedback provided by @yskopets.

Looks good to me, thanks for updating the original PR


Bugfix/cu 1ej9f8v shield rebound fix

Now the upgrade for Onimaru shield is working (grab the 3 upgrade parts of first level to test).

Task linked: CU-1ej9f8v Upgrades not working on Onimaru Shield


feat(card): add CSS vars for bg and text

🔗 Linked issue

❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality)
[x] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

Add the ability to change background color for <UCard /> using css
.dark {
    --ui-card-bg: var(--ui-bg-elevated);
}

.dark [data-theme="midnight"] {
    --ui-bg: hsl(240 5% 6%);
    --ui-card-bg: hsl(240 4% 10%);
    --ui-card-text: hsl(60 5% 90%);
}

📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

We won't be implementing CSS variables per component as it would add thousands of them. You can either use --ui-bg or set another variable on the card through the app.config.ts, ui prop or class.

I don't think every component need a css variable, Card is a very important component, and currently App and Card share the same bg color with no easy way to customize it.
check https://ui.shadcn.com/docs/installation/manual styles.
example theme using css only https://github.com/shadcn-ui/ui/blob/main/apps/www/public/r/styles/default/theme-midnight.json

[...] and currently App and Card share the same bg color [...]

That is a fair point, but I'm not fully sure to follow the "no easy way to customize it" part.
This is easily fixable, project wide, by editing your app.config.ts like this:
export default defineAppConfig({
  ui: {
    card: {
      slots: {
        root: 'bg-[var(--ui-bg-elevated)]',
      },
    },
  },
})


Fix: Apply sorting only to country list, not favorites

This PR removes the sort function from _buildLocalizedCountryList and applies it explicitly only to _countries during initialization. This ensures _favoriteCountries remain unsorted as per feedback in Issue #25

Please patch the version in pubspec and add a changelog entry in changelog.md so this can be published

Done. I’ve updated the version to 1.0.14 in pubspec.yaml and added a changelog entry.

A test is failing


resolve using partial in runtime

resolves #167

checking it in https://github.com/Lightning-AI/torchmetrics/pull/2382


"Preserve bibtex variables" error

Report ID: QPDK8RBX-5SHWWKN5
With the changeover to it being in preferences (rather than the export menu), I've had issues with it's behaviour. It seems to be defaulting as on and while you can click on the corresponding checkbox in preferences, it doesn't change the behaviour (and is always marked as unchecked even though it always behaves as if it is checked).
The issue is occurring in both Zotero standalone and firefox and the only other zotero add-on that is active is Zotfile (most current version). Tried temporarily going back to the old betterbibtex before it was moved to the preferences section and it was working okay there.
I really need to have it turned off given how it messes up single word journal titles like Science and Ultramicroscopy

Odd, I can't readily find the place where this could be messing up, but with a little more info I am confident I can get this fixed today. The log didn't show much unfortunately; could you do the following for me:

check in about:config whether extensions.zotero.translators.better-bibtex.preserveBibTeXVariables is set to false
Right-click a reference that doesn't export as you'd want to and select Report ZotPlus error and post that resulting ID here.

Thanks!

Going into the config and changing it there directly seemed to work. It was set to true there before but wasn't changeable through the preferences interface.
Just testing it afterwards, checking the corresponding checkbox still does nothing and doesn't revert to how it was before (still stays false) so it looks like it's an probably issue with the checkbox not interacting with the settings.
Things are exporting fine now but if there's anything I can provide to help figure out what's happening with the checkbox, let me know.
Thanks very much

Super, that led me to the error. A new release will be published automatically when https://travis-ci.org/ZotPlus/zotero-better-bibtex/builds/68935870 finishes.


Add linux driver for integration testing

Some integration tests will need access to resources managed by the
kernel in order to work effectively e.g. the interrupt test needs to get
a list of free vectors it may inject during testing.

Add an initial, minimal driver under bfdriver
Add scripts for building and running the driver
Add the ENABLE_BUILD_INTEGRATION cmake option, along with a macro
for creating integration test targets

Not sure how much offline discussion you guys have already had about this, but I'm wondering if the integration testing infrastructure (driver, cmake macros, cmake options, etc) belong in the base hypervisor? Just bringing it up from the mindset that the eapis should not be considered a "special" extension.

In general, I'm not a fan of the mods to the build system as I think it makes it too complicated. Since these integration tests are only meant for Linux, we should add these tests to this file:
https://github.com/Bareflank/extended_apis/blob/master/bfvmm/integration/arch/intel_x64/test_all.sh
And all of the gory details can go there without having to make any mods to the build system to support.


make rectangular area transparent

We are happily using sharp for extract and resize operations.  And one operation in the pipeline that we currently need is to make some particular rectangular area transparent in the image - completely transparent, so also other channels should be changed to zeros so final image is as small as possible.
I would like to try write PR for it, but I am afraid its pretty specific feature to get into sharp so want to get your opinion first.

Api could look something like this: .fillRect({left: left, top: top, width: width, height: height, r: 0, g: 0, b: 0, a: 0})

Hi Jarda, it might be possible for you to achieve this in your own code fairly quickly by returning raw pixel data as a Buffer then using its fill method to set per-row ranges to zero. You'd need to calculate the offset/end into the RGBA data for each row.
Does this make sense? I can probably write some sample code to help explain if not.

Thanks a lot for hint.
Calling fills per row is very efficient (usually faster than 1ms for 885x619 image).
I hoped to avoid copying uncompressed raw data to js (since input and output is png), but I don't know internals enough how faster it would get when it would be implemented directly in c++ using libvips?

Memory references are passed when moving between JS and C++ (and back again) rather than copies being taken. The 10ms you mention doesn't sound right at all :( I'll profile your code sample to see what's taking up all that time - this could be related to https://github.com/jcupitt/libvips/pull/402 if you're using libvips < v8.3.0.
I'd expect the PNG decompression+recompression part of this task to be about an order of magnitude slower than all the other operations combined, regardless of where they are carried out.
Using embed() onto a transparent background() will add an alpha channel. I've not tested this without a resize operation but it "should just work" (TM).

Thanks for these details - I tried to update to v8.3.0 and reinstall node_modules and I am still on 10ms with the snippet above. But comparing to other times its not big deal.. (doing extract and resize)  but if you find out whats happening during these 10ms.. I am curious :-).
I use operations chain -  extract().resize().background().embed().toBuffer(), and it works as you said 👍
Feel free to close this issue, thanks a lot for help.

Glad to hear you got this working, thanks for the update. Let's leave this open whilst we investigate the unexpectedly long processing time you encountered.

Using more that embed feature I noticed that it works only if image has different ratio than resize. If ratio is same it make sense that it does not do embedding to background since no background would be visible.
As example:
// 2048x1536
sharp('./IMG_2896.JPG')
    .extract({
        left: 0,
        top: 0,
        width: 500,
        height:1000
    })
    .resize(250,500)
    .background({r: 0, g: 0, b: 0, a:0}).embed()
    .raw().toBuffer().then(buffer => {
        console.log(buffer.length);
    })

Produces buffer only with 3 channels, but if I change to .resize(251,500) or .resize(249,500) it does the embedding and returns buffer with 4 channels.
I tried to implement adding channel in JS:
function addChannel(buffer, width, height) {

    var bufSize = width * height * 4;
    var buf = Buffer.alloc(bufSize, 255);

    for (var i = 0, il = width * height; i < il; ++i) {

        buf[4 * i] = buffer[3 * i];
        buf[4 * i + 1] = buffer[3 * i + 1];
        buf[4 * i + 2] = buffer[3 * i + 2];
    }
    return buf;
}

And it works pretty fast: 8ms for 800x1600 image.  In case you have some idea how to make it faster using sharp or better js implementation I'm all ears :-)

It looks like sharp is making an unnecessary pair of premultiply+unpremultiply operations when processing an image with an alpha channel but not resizing or compositing. I'll fix this - thanks for the tip-off!

Commit c920180 reduces the processing time of a 1000x1000px RGBA image by ~8ms when no resize or overlay is required. Thanks again for reporting this Jarda!

Thank you :-).


Feature/more providers

Provide a narrative description of what you are trying to accomplish:

[ ] Are you fixing a bug?

[ ] Detail how the bug is invoked currently.
[ ] Detail the original, incorrect behavior.
[ ] Detail the new, expected behavior.
[ ] Base your feature on the master branch, and submit against that branch.
[ ] Add a regression test that demonstrates the bug, and proves the fix.
[ ] Add a CHANGELOG.md entry for the fix.

[X] Are you creating a new feature?

[X] Why is the new feature needed? What purpose does it serve?
This allows the usage of other providers, like GitLab and BitBucket (in the future)
[X] How will users use the new feature?
One can use the --provider option to commands.
[X] Base your feature on the develop branch, and submit against that branch.
[X] Add only one feature per pull request; split multiple features over multiple pull requests
[ ] Add tests for the new feature.
[X] Add documentation for the new feature.
[X] Add a CHANGELOG.md entry for the new feature.

[ ] Is this related to quality assurance?

[ ] Is this related to documentation?

PR updated reverting tag behaviour and removing unnecessary methods comments. Sorry for the delay.


log_uniform min max unintuitive

wandb, version 0.8.9
Python 3.7.4
Linux
Description
Currently Log uniform. Number between exp(min) and exp(max) so that the logarithm of the return value is uniformly distributed.
While it should rather be distributed between min and max (keeping the meaning of the terms min and max) – my expectation would have been, if I want my learning rate between 1e-8 and 1, I can just tell it to be between 1e-8 and 1, but I actually have to convert it by taking the log of my desired values, passing min: -8 and max: 0, so that I get the scaling between 1e-8 and 1.
Solution: In the parsing of the function take the log of the min and max params.

Note that you need to take the natural logarithm, so 1e-8 actually becomes -18.42. This is highly unintuitive!

In addition, it changes the interpreted value of the parameter simply by changing the distribution, which is very strange. For example, if I have a script expecting learning_rate then changing a sweep script with
learning-rate:
  min: 1e-5
  max: 1e-1

to
learning-rate:
  distribution: log_uniform
  min: 1e-5
  max: 1e-1

would require me to change my training program.

One suggestion/feature request: for all the distributions with (natural) log, can we please add the log10 version? Currently they would be:

log10_uniform
log10_normal
q_log10_uniform
q_log10_normal

For reference, I dug up the source code where the log distributions are implemented.

Push

Created a new PR above to add log10_uniform and q_log10_uniform since they are quite straightforward, but left out the normal counterparts since they aren't trivial to implement.

Created a new PR above to add log10_uniform and q_log10_uniform since they are quite straightforward, but left out the normal counterparts since they aren't trivial to implement.

+1 to this, i've we think in base 10, not e :D

Up, this is made worse by the fact the UI works in base 10

Has any progress been made on this issue?

I just wanted to say that a better solution might be to allow users to input a different (mutually exclusive) min/max pairing (just a proposal for the naming):
exp_min:  0.000000001
exp_max: 0.0001
that way it would still be the same distribution (log_uniform, which it is) but one could declare the more intuitive min and max values.

push

Hey Guys, sorry for the lack of W&B activity on this thread.  We're hearing you loud and clear, the current implementation is confusing.  We're deciding internally whether to prioritize a quick fix of just adding new keys or wait for a larger redesign with a new config format that fixes these unintuitive defaults.

What about adding a quickfix while we wait for the new design, so that we won't have this problem for 3 more years?

@manuel-delverme ouch 😭 .  We hear you loud and clear.  We're working on a fix in our sweep repo, hopefully it's ready in time for the next release next week.

Hey everyone, we just merged in a PR to fix this in our sweeps repo. We have to deploy it to production and update the docs now. I'll comment here when thats done with pointers to the new docs.

Oh wow! I didn't believe it in ever happening, anymore!

https://www.youtube.com/watch?v=1k8craCGpgs

Oh wow! I didn't believe it in ever happening, anymore!

@dreamflasher https://www.youtube.com/watch?v=1k8craCGpgs

Documentation has been updated! Check out the three new distributions: log_uniform_values, q_log_uniform_values, and inv_log_uniform_values.

Documentation has been updated! Check out the three new distributions: log_uniform_values, q_log_uniform_values, and inv_log_uniform_values.

How can I use these distributions to achieve a log10_uniform distribution as the comment below requested?

One suggestion/feature request: for all the distributions with (natural) log, can we please add the log10 version? This is actually useful for cases where we express quantities in notation like 1e-4 for learning rates, epsilons, other hyperparameters.
This means the addition of the following distribution:

log10_uniform
log10_normal
q_log10_uniform
q_log10_normal

For reference, I dug up the source code where the log distributions are implemented.


Update DEVELOPERS.md Issue#233

Changed the code for switching to the 'postgres' user

Merged.
Thanks for your contribution !


Feature 89507 react app  leaderboard component

Leaderboard component fetches and displays a leaderboard of users based on the total amount of "Zap" (Lightning Network payments or points) each user has accumulated in their private wallets. The component ranks the users according to the total amount of Satoshis (Sats) in descending order and provides the following features:
Key Features:
Fetching Data from an API:
The component fetches user data from the getUsers API and retrieves private wallet information for each user using getUserWallets.
It then fetches the transactions for each private wallet using the fetchWalletTransactions function.
Transaction Summation and Ranking:
The component collects all transactions from the private wallets of users.
It calculates the total amount of Satoshis (Sats) for each user by summing up the transaction amounts (after converting them from millisatoshis to satoshis).
It then ranks the users in descending order based on their total amount of Satoshis.
The ranks are displayed in the leaderboard, with the top 3 ranked users being visually distinguished using specific styles and icons.
Dynamic Sorting:
The leaderboard can be sorted by the total Zap amount in ascending or descending order by clicking the "Zap Amount" header.
The sort direction is toggled each time the header is clicked, and the appropriate sort icon (AscendingIcon or DescendingIcon) is shown.
Visual Representation:
Each row of the leaderboard shows:
The user's rank (with special styling and icons for ranks 1, 2, and 3).
The user's display name.
The total Zap amount (formatted using a number format).
A ZapIcon after the Zap amount.
Users are visually distinguished based on their ranks:
Rank 1: Gold-colored and the first place icon.
Rank 2: Silver-colored and the second place icon.
Rank 3: Bronze-colored and the third place icon.
All other ranks use a default style and icon.
Error Handling and Loading State:
A loading state is shown while the data is being fetched.
If there is an error during data fetching, it is displayed to the user with a relevant error message.
How the Component Works:
Data Fetching:
Upon mounting or when the timestamp prop changes, the component triggers the fetchUsersAndPrivateWalletTransactions function to load user data and wallet transactions.
For each user, their private wallet is identified, and all transactions from that wallet are fetched. If a timestamp prop is provided, the data will be re-fetched when it changes (though it is optional).
Transaction Aggregation:
Once all transactions are retrieved, they are aggregated for each user. The amount for each transaction is summed to give the total Zap amount (in Satoshis) for each user.
Ranking:
The users are ranked based on their total Zap amount. The users with the highest amounts are displayed at the top of the leaderboard.
The component assigns ranks starting from 1 for the user with the highest total Zap amount.
Sorting:
Users can sort the leaderboard in ascending or descending order by Zap amount. Clicking the "Zap Amount" header toggles the sorting order, and the leaderboard is updated accordingly.
Key Functions:
useEffect Hook:
Triggers the data fetching when the component mounts or when the timestamp prop changes.
Data Fetching Functions:
getUsers(): Fetches the list of users.
getUserWallets(): Fetches the wallets associated with each user.
fetchWalletTransactions(): Fetches the transactions for a specific wallet.
Dynamic Rendering:
The component conditionally renders based on the loading and error states. If loading is in progress, it displays a loading message. If there is an error, it shows the error message.
After the data is loaded, the leaderboard is displayed with users' rank, name, and Zap amount.
Props:
timestamp (optional): A timestamp can be passed as a prop to the component. When the timestamp changes, the component will re-fetch the data based on the new time period. This is useful for filtering transactions within a specific timeframe.
Styling:
The component is styled using the Leaderboard.module.css file. It includes:
Special icons and colors for the top 3 ranks.
Dynamic styles for ascending and descending sorting.
Responsive layout for the leaderboard with a clean and clear display of ranks and Zap amounts.

Tell ChatGPT / Copilot to not be so verbose on the PR description ;-)

Love the video in the PR!!!

OK, in that case you should add “transactions” as a property of Wallet and remove WalletTransactions.
Sent from Outlook for iOShttps://aka.ms/o0ukef

From: NataliaMilgevskaya @.>
Sent: Friday, September 20, 2024 4:34:34 PM
To: BenGWeeks/Zapp.ie @.>
Cc: Ben Weeks @.>; Comment @.>
Subject: Re: [BenGWeeks/Zapp.ie] Feature 89507 react app leaderboard component (PR #17)
@NataliaMilgevskaya commented on this pull request.

In tabs/src/services/lnbitsServiceLocal.tshttps://github.com/BenGWeeks/Zapp.ie/pull/17#discussion_r1768825760:

@@ -740,6 +763,68 @@ const getNostrRewards = async (adminKey: string, stallId: string): Promise<Nostr
}
};

+interface Transaction {

checking_id: string;
pending: boolean;
amount: number; // in millisatoshis (msats)
fee: number;
memo: string;
time: number; // Unix timestamp
+}

+interface WalletTransaction {
The main difference between Transaction and WalletTransaction is how they structure the data and their purposes within the context:

Transaction:
This interface represents a single transaction in a wallet.
Each Transaction contains details about a specific transaction such as the amount, fee, memo, timestamp (time), and whether it's pending.

interface Transaction {
checking_id: string;
pending: boolean;
amount: number; // in millisatoshis (msats)
fee: number;
memo: string;
time: number; // Unix timestamp
}
A Transaction represents a single record of money being sent or received in a wallet.

WalletTransaction:
This interface is a container for multiple transactions belonging to a specific wallet.
It groups multiple Transaction objects under a wallet_id (which identifies the wallet they belong to).

interface WalletTransaction {
wallet_id: string;
transactions: Transaction[];
}
A WalletTransaction groups all the Transaction records for a specific wallet and allows you to associate a list of transactions with a particular wallet.
I would like to leave it as is
—
Reply to this email directly, view it on GitHubhttps://github.com/BenGWeeks/Zapp.ie/pull/17#discussion_r1768825760, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNMVWZDP7O5P42SQB2KU7DZXQ6AVAVCNFSM6AAAAABOR3T6HSVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMJYGYZDKMJRGQ.
You are receiving this because you commented.Message ID: @.***>

Let’s leave as-is for now though. Would need more consoderation.
Sent from Outlook for iOShttps://aka.ms/o0ukef

From: Ben Weeks @.>
Sent: Friday, September 20, 2024 4:36:54 PM
To: BenGWeeks/Zapp.ie @.>; BenGWeeks/Zapp.ie @.>
Cc: Comment @.>
Subject: Re: [BenGWeeks/Zapp.ie] Feature 89507 react app leaderboard component (PR #17)
OK, in that case you should add “transactions” as a property of Wallet and remove WalletTransactions.
Sent from Outlook for iOShttps://aka.ms/o0ukef

From: NataliaMilgevskaya @.>
Sent: Friday, September 20, 2024 4:34:34 PM
To: BenGWeeks/Zapp.ie @.>
Cc: Ben Weeks @.>; Comment @.>
Subject: Re: [BenGWeeks/Zapp.ie] Feature 89507 react app leaderboard component (PR #17)
@NataliaMilgevskaya commented on this pull request.

In tabs/src/services/lnbitsServiceLocal.tshttps://github.com/BenGWeeks/Zapp.ie/pull/17#discussion_r1768825760:

@@ -740,6 +763,68 @@ const getNostrRewards = async (adminKey: string, stallId: string): Promise<Nostr
}
};

+interface Transaction {

checking_id: string;
pending: boolean;
amount: number; // in millisatoshis (msats)
fee: number;
memo: string;
time: number; // Unix timestamp
+}

+interface WalletTransaction {
The main difference between Transaction and WalletTransaction is how they structure the data and their purposes within the context:

Transaction:
This interface represents a single transaction in a wallet.
Each Transaction contains details about a specific transaction such as the amount, fee, memo, timestamp (time), and whether it's pending.

interface Transaction {
checking_id: string;
pending: boolean;
amount: number; // in millisatoshis (msats)
fee: number;
memo: string;
time: number; // Unix timestamp
}
A Transaction represents a single record of money being sent or received in a wallet.

WalletTransaction:
This interface is a container for multiple transactions belonging to a specific wallet.
It groups multiple Transaction objects under a wallet_id (which identifies the wallet they belong to).

interface WalletTransaction {
wallet_id: string;
transactions: Transaction[];
}
A WalletTransaction groups all the Transaction records for a specific wallet and allows you to associate a list of transactions with a particular wallet.
I would like to leave it as is
—
Reply to this email directly, view it on GitHubhttps://github.com/BenGWeeks/Zapp.ie/pull/17#discussion_r1768825760, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNMVWZDP7O5P42SQB2KU7DZXQ6AVAVCNFSM6AAAAABOR3T6HSVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMJYGYZDKMJRGQ.
You are receiving this because you commented.Message ID: @.***>


Alternate account not working

I have added my alternate account via my work visual studio professional subscription, however I cannot see this subscription when logging into the azure portal with my alternate account. I have an enterprise subscription that is due to expire and need to transfer my resources to the professional subscription.

Document details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7a760034-6571-5206-1476-0a0d6b2ef031
Version Independent ID: d5ce817f-c949-e070-459d-4c7728329550
Content: Manage Visual Studio Subscriptions
Content Source: subscriptions/manage-vs-subscriptions.md
Product: visual-studio-family
Technology: vs-subscriptions
GitHub Login: @evanwindom
Microsoft Alias: v-evwin

@hsmahal -- thank you for your feedback.
@evanwindom -- please look into this issue.

@hsmahal  - I apologize for the delay in responding here.  The feedback channel is really not designed or equipped to handle individual support requests.  If you have question about using your alternate ID with Azure, we recommend contacting Azure support.  https://ms.portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/overview should get you there.

#please-close


Updated facebook SDK

Facebook sdk is from THREE YEARS AGO!
this brings it back into the age of electricity and cars

@stokesbga +1 Thank you for your work. I just need this  but I see this PR and wondered

what is sharekitekit in the log message of 8659924. If it is typo, you need to fix it.
why do you remove bolts in 8659924 and add bolts later in 385c1a6 after having added bolts in the first commit d635df8. This is too weird for me.

sigh


error invoke requestTrade

in page 106, I do $ peer chaincode invoke -n tw -c '{"Args":["requestTrade","50000","Wood for Toys"]}' -C tradechannel.
I get the following error: Incorrect number of arguments. Expecting 3: {ID, Amount, Description of Goods}. Found 2)
It seems logical to me as the in the go code of func requestTrade() (in tradeWorkflow.go), the args is only 2 elements long as the name of the function is not included.
But then also, I do not understand what you expect in line 206 in args[0] when you do tradeKey, err = getTradeKey(stub, args[0])
I use trade-finance-logistics master, fabric 1.1, trade_workflow_v1.
Thank you for your support.

Please check the errata I mentioned on the other thread. We noticed a few errors as well as the version number omission and submitted them to the publishes.
If you can't find the errata from the Packt site, I'll post it here.

Ho I see. Yes indeed, it works with the errata ;-)
Big thank you for getting back so quickly.
For people who encounter the same issue, here it is:
Full errata here: https://www.packtpub.com/books/content/support/33475
specifically for this issue:
Errata type: code Page no 106
This:

Put a new trade agreement on the ledger with the following command:
$ peer chaincode invoke -n tw -c '{"Args":["requestTrade", "50000",
"Wood for Toys"]}' -C tradechannel
Retrieve the trade agreement from the ledger with the following command:
$ peer chaincode invoke -n tw -c '{"Args":["getTradeStatus",
"50000"]}' -C tradechannel

Should be:

Put a new trade agreement with a unique ID trade-12 on the ledger with the following command:
$ peer chaincode invoke -n tw -c '{"Args":["requestTrade", "trade-12", "50000", "Wood for Toys"]}' -C tradechannel

Retrieve the trade agreement with the ID trade-12 from the ledger with the following command:
$ peer chaincode invoke -n tw -c '{"Args":["getTradeStatus", "trade-12"]}' -C tradechannel


Validating DB custom types with Valuer interface not working

Package version eg. v8, v9:
v9
Issue, Question or Enhancement:
I have a custom implementation of a struct that extends sql.NullFloat64. But even if I use the sql.NullFloat64 validation still doesn't work for this field. If I use float64 instead the validation works.
The documentation says that is should work for Valuer implementations.
Code sample, to showcase or reproduce:
type Data struct {
	Latitude       types.NullFloat64 `json:"latitude" validate:"gte=-180,lte=180"`
	Longitude    types.NullFloat64 `json:"longitude" validate:"gte=-180,lte=180"`
}

type NullFloat64 struct {
	sql.NullFloat64
}

Hey @bogh
I guess the document should say has support for Valuer and overriding behaviour of any type. It works, just not out of the box, but it's only a few lines of code, please see the custom example; I only register some of the SQL.Valuer types in the example, but you can add the rest.
Explanation of why it's not handled out of the box:

The current way works with not only Valuer types, but any custom type you wish to handle the value differently.
Validator doesn't want to make assumptions about what is an ok value for Valuer or not eg. When the Valuer field value is nil say for an sql.NullFloat64, some people want the default value of 0.0 returned for validation, others may want nil; it all depends on your application.

Please let me know if this makes sense :) and if you have any trouble getting it working.

@joeybloggs Makes perfect sense. Thanks for clarifying.
Don't have a problem that it's not out of the box :D


clReadWrite assumes that supported formats are the same for read_only and write_only images

PR merged, closing.

PR merged, closing.


conda instead of docker for development

Instead of using docker image defined in https://github.com/uwhackweek/docker-template, keep everything under one roof.

conda environment management done under the binder/ folder
added some instructions to CONTRIBUTING.md for local development with conda lockfiles
still build a Docker Image via github actions, but that happens here now instead of a separate repository

The lockfiles need to be generated locally, but there is a script to facilitate that. I think in a follow up we could automatically generate them in a CI step if environment-EDITABLE.yml changes.
I think we'll need to merge this to fully test

One suggestion I have is to specify the conda packages without their build hash and only use the exact version of a package up to the patch number (X.X.X). This could make updating the environment easier

Agreed it's easier, but I want to ensure everyone has identical environments to the extent possible when developing the website on different machines. This documentation does a good job of identifying some trade-offs https://github.com/marketplace/actions/setup-miniconda#example-7-lockfiles . let's see how this goes for a while and then revisit


fix(Terra): CW-7172 Fix cw20 script and refine terra sdk

Checklist:

README.md includes:

[ ] The details of signing data and transaction data, this includes parameters.
[ ] Official docs or white paper.
[ ] Website or api can query assets and broadcast transaction.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Task linked: CW-7172 Add Terra SDK unit tests


Failed to use lumberjack for angular 16

Describe the bug
lumberjack cannot be used together with angular 16
To Reproduce

run 'npm install'
console shows errors

could not resolve dependency:
peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>
Expected behavior
lumberjack should be installed and usable
Environment

Lumberjack Version 15.0.1
Angular version: 16.1.7

see the following excerpt from our 'package.json'
  "dependencies": {
    "@angular/animations": "16.1.7",
    "@angular/cdk": "16.1.6",
    "@angular/common": "16.1.7",
    "@angular/compiler": "16.1.7",
    "@angular/core": "16.1.7",
    "@angular/forms": "16.1.7",
    "@angular/platform-browser": "16.1.7",
    "@angular/platform-browser-dynamic": "16.1.7",
    "@angular/router": "16.1.7",

  },
  "devDependencies": {
    "@angular-builders/custom-webpack": "16.0.0",
    "@angular-devkit/build-angular": "16.0.0",
    "@angular-devkit/core": "16.1.6",
    "@angular-devkit/schematics": "16.1.6",
    "@angular-eslint/eslint-plugin": "16.0.3",
    "@angular-eslint/eslint-plugin-template": "16.0.3",
    "@angular-eslint/template-parser": "16.0.3",
    "@angular/cli": "~16.1.0",
    "@angular/compiler-cli": "16.1.7",
    "@angular/language-service": "16.1.7",

Thanks for the issue report we will take care to this asap.

Hi @roka-actico, you can now install<EMAIL_ADDRESS>in an Angular 16 project.
If you find any issues, please let me know.

The proper solution is:

Wait for Lumberjack 16
Use legacy peer dependencies when installing
Add module resolutions

@LayZeeDK thank you for clearing this up. Do you have an Idea about a shedule for the official Angular 16 support?
Don't understand me wrong, I know it's hard to cope with the major angular releases every 6 months - especially for an OSS project. I just want to know enough to understand my options.
And I see another option:

use lumberjack 15.0.4

Yes, @roka-actico you can use version 15.0.4 for now, and you will be ok. There should only be major changes to version 15 once version 16 is released.
Alternatively, you can install your dependencies using npm install --legacy-peer-deps.
Although we don't have an explicit schedule for version 16, I can say we are currently working on it. It is taking longer than expected because, in version 16, Lumberjack will experience significant changes see https://github.com/ngworker/lumberjack/discussions/166.
However, the API should remain almost identical, and the migration should be relatively straightforward.

Options 2 and 3 imply Lumberjack 15.x. The solution is to learn how to cope with situations like this using your package manager of choice.


Make config.Config more unit-test friendly

Making config.Config more unit-test friendly
In its current implementation the config.Config struct is not very welcoming to easily implement unit-tests that depend on a particular config value being set. This is mostly due to the inability to override values on the fly because the viper.Viper object included in config.Config is not exported (for good reason).
This PR proposes to solve this UX issue by:

Changing config.Config to make it an interface and moving the actual implementation into an unexported config.config struct. We already have factory methods anyway, limiting the code impact of this change outside of the package.
Implementing a config.TestConfig exported struct that implements config.Config but also allows for providing easy overrides for specific configuration values.

Moving config-value retrieval to a two-value return model
In the process of doing this and testing its potential applications I also uncovered some strangeness / a potential bug in the implementation of the Get<Type>() methods of the current config.Config methods. This was due to the fact that these methods did not implement a two-value return but rather a single-value one. This made it impossible to distinguish between a value being set to the retrieved type's default instance or a value not being set, which in turn made the implementation logic quite dodgy and constrained.
The fix for this is luckily not too massive as the config.Config is only really accessed through bridge.Config which has its own Get<Type>() methods. We might want to move those as well to a two-value return model but that would be a much bigger PR and it is not fundamentally necessary at this point in time.

One small nitpick, maybe use ConfigValues() instead of GetConfigValues()
I couldn't do it for GetString() because it was too confusing, but I think it makes more sense for ConfigValues()

@42wim I tried to do that... unfortunately the config struct (which implements the Config interface) contains an embedded ConfigValues struct. This means that ConfigValues cannot be reused as method name.

BTW this PR is pre-requisite for code that I've already written to address #584. Once it's merged I'll create the PR to fix that issue.

What do you think about making it explicit to cv *ConfigValues this only would need changes in config.go. (or not worth it?)

Works too. Done.


Automount filter

Is your feature request related to a problem? Please describe.
Currently we can enable and disable automount via the /etc/wsl.conf.
This will automount all drives assigned a letter by default to the /mnt/* directory.
Describe the solution you'd like
I would like to be able to filter which drives are automounted.
e.g. I would like to just mount the C drive and no other drives.

Disable automount and add C: drive entry to fstab.

0xbadfca11's answer would be the best way to do that.
To disable automount, add this to /etc/wsl.conf :
[automount]
enabled=false

Then add this to /etc/fstab to mount a specific drive:
C: /mnt/c drvfs defaults 0 0


Alcinoe [Master] Binary Compatibility in Delphi 12 and 12.1

In Delphi Alexandria, Release 11.1 was binary compatible with 11, and so was release 11.2 and 11.3. I don't know if the same applies to Athens 12 and 12.1.
Please, my question is, is it possible to use the current version of Alcinoe Master (not Alcinoe SKIA) with Delphi 12.1?
If not, can we get a Delphi 12.1 compatible version. I know you're working hard to release it with support for SKIA, but while SKIA support is not yet ready, we would appreciate it, if a compatible version is made for delphi 12.1 while we wait for SKIA support so that we can successfully recompile our existing app for our clients with the new features in Delphi 12.1.
Thank you.

It works fine for me,

It worked fine for me too. Thanks
I only have a couple of issues. I used "TALVertScrollBox.AniCalculations.BoundsAnimation := False;" in 11.3 now I'm using 12.1 and I'm getting an error. I tried with "TALVertScrollBox.ScrollEngine...." but found no way to set BoundsAnimation. Any assistance please.

It works fine for me,

It worked fine for me too. Thanks
I only have a couple of issues. I used "TALVertScrollBox.AniCalculations.BoundsAnimation := False;" in 11.3 now I'm using 12.1 and I'm getting an error. I tried with "TALVertScrollBox.ScrollEngine...." but found no way to set BoundsAnimation. Any assistance please.


Setting up a Gauge with labels causes set_to_current_time() to complain

What did you do?
some_gauge = prometheus_client.Gauge("some_parameter",
                                      "An instantaneous parameter",
                                      labelnames = ("dim1","dim2","dim3"),
                                      namespace="somens",
                                      unit="some_unit")

...
...
...

some_gauge.set_to_current_time()
some_gauge.labels("Alpha", "Beta", "Gamma").set(current_gauge_value)

What did you expect to see?
The parameter to be logged as expected.
What did you see instead? Under which circumstances?
The whole instrumentation part does not work right now with error:
...
self._value.set(float(value))
AttributeError: 'Gauge' object has no attribute '_value'

That is, it does not even get to the point where the server is raised so that Prometheus can connect to it.
If however I define the gauge as:
some_gauge = prometheus_client.Gauge("some_parameter",
                                      "An instantaneous parameter")

Everything works as expected. The point is, I need to add the labels along with the measurement as well.
Environment
Linux, Python 3.8

System information:
Linux 5.3.0-1028-azure x86_64

Prometheus version:
prometheus, version 2.7.1+ds (branch: debian/sid, revision: 2.7.1+ds-3)
build user<EMAIL_ADDRESS>build date:       20190210-18:10:02
go version:       go1.10.4

I am sorry for the confusion, I believe this is a better fit to the Python client.


Cannot read property 'Menu' of undefined

I get an error every single time I try to use this even when I follow tutorials. I have done step-by-step tutorials, read docs, etc. and it still shows this error. What do I do??? Is this an issue with this package?

enable the remote module?

yes but I get the same error except instead of 'Menu' it's 'getElementByClass'

Is this an issue with this package?

No, it's not.
Can you share a bit of what you've tried so far?
And can you test this simple example (custom-electron-titlebar-minimal-example) and see if it works for you?

fwiw, use with remoteModuleEnabled: false, requires some rearchitecture, probably https://github.com/AlexTorresSk/custom-electron-titlebar/issues/136

yes but I get the same error except instead of 'Menu' it's 'getElementByClass'

I got it working by using
window.addEventListener('DOMContentLoaded', () => {
  new customTitleBar.Titlebar()
});


[frontent] use executable.id to compare executables in charts of edit…

…or v2
What changes were proposed in this pull request?

Compare on id instead of object when rendering charts in v2 editor

How was this patch tested?

Manually by executing a query and clicking the chart tab
Clicking on different statements in the editor will update the chart accordingly

Please review Hue Contributing Guide before opening a pull request.

Good catch! Also, temporary so all good without tests..
Nit: frontent -> frontend in commit message.

Thanks, fixed the spelling mistake.


Hacktoberfest 2022 contribituons

Hi.
I was trying to deploy the current project using vercel and mongodb atlas and needed to upgrade some libs and other stuff.
I also translated a few pages to pt-BR :)
I would love to open some PR's leveraging hacktoberfest open source contributions. So let me know if @maccyber have som interest, please add hacktoberfet label to the project or let me know.
So here is list of changes to see if they have use for this project

[x] Upgrade mongo connector to support mongo atlas
[x] Translate some pages
[x] Fix Brazilian Flag in i18n component
[ ] Translate say hallo footer (just a nice touch to play with translations)
[x] Add a dockerfile for easier development
I also needed to do some tricks to bypass the 50mb limit on vercel functions but I think they have no use for a PR right now

Thanks, I added some checkboxes to control progress and opened more PR´s, the mongo driver needs some special attention of yours so it don't break your current db connection if you do not use mongo 4 already, the others are pretty plug and play

Great work @Rovel.
I will check the PR's within this week


what hapend,why have no new version in md2 ?

Since Mr. John Wu encrypted his light versions of Magisk Manager apk package, modifying his app became impossible. He've already released his "newly" redesigned application.
Best regards!


Declaration emitter does not emit type predicate

For the source:
function f(x: any): x is string {
  return typeof x === "string";
}

The declaration output is:
declare function f(x: any): ;

But it should be:
declare function f(x: any): x is string;

thanks @tinganho


4 icons Added

• 4PDA
• CreativeApp
• MIUI Downloader
• SNOW

What software did you use to make these icons?


Update docs

This PR makes both the .NET Core and .NET Framework tutorials consistent, plus improves a few other things.

Ooh, netlify support in PR's? 🤤

@dustinsoftware Yeah I'm playing around with Netlify. An issue is that we have both the code and the site in the same repo, but I only want Netlify to post comments on PRs when they touch files in the site. Not sure if that's possible at the moment.


Login and signup UI

Hey  @priyam-03
The Responsiveness of UI for login and register page has been fixed

fixes #54
Kindly check and let me know

So @RohithNair27 any other issue you want to work? #62 or #58 I think will be good for you.

Ok @priyam-03