Pending on Ingress

Hey folks. I am trying to deploy my standard test app with Acorn and I am failing to see the Ingress to stabilize (err .. work at all).
I am using an EKS cluster (1.21) with the AWS LB Controller.
I know the controller works because if I deploy my K8s YAML file it works just fine. This is the (pretty verbose) YAML I am using (also available here in the repo):
apiVersion: v1
kind: Service
metadata:
  name: redis-server
  labels:
    app: redis-server
    tier: cache
spec:
  type: ClusterIP
  ports:
  - port: 6379
  selector:
    app: redis-server
    tier: cache
---
apiVersion: v1
kind: Service
metadata:
  name: yelb-db
  labels:
    app: yelb-db
    tier: backenddb
spec:
  type: ClusterIP
  ports:
  - port: 5432
  selector:
    app: yelb-db
    tier: backenddb
---
apiVersion: v1
kind: Service
metadata:
  name: yelb-appserver
  labels:
    app: yelb-appserver
    tier: middletier
spec:
  type: ClusterIP
  ports:
  - port: 4567
  selector:
    app: yelb-appserver
    tier: middletier
---
apiVersion: v1
kind: Service
metadata:
  name: yelb-ui
  labels:
    app: yelb-ui
    tier: frontend
spec:
  type: NodePort
  ports:
  - port: 80
  selector:
    app: yelb-ui
    tier: frontend
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: "yelb-ui"
  annotations:
    kubernetes.io/ingress.class: alb # check this, your ingress.class may be different
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
  labels:
    app: "yelb-ui"
spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: "yelb-ui"
              servicePort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: yelb-ui
spec:
  replicas: 1
  selector:
    matchLabels:
      app: yelb-ui
      tier: frontend
  template:
    metadata:
      labels:
        app: yelb-ui
        tier: frontend
    spec:
      containers:
      - name: yelb-ui
        image:  mreferre/yelb-ui:0.7
        ports:
        - containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis-server
      tier: cache
  template:
    metadata:
      labels:
        app: redis-server
        tier: cache
    spec:
      containers:
      - name: redis-server
        image: redis:4.0.2
        ports:
        - containerPort: 6379
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: yelb-db
spec:
  replicas: 1
  selector:
    matchLabels:
      app: yelb-db
      tier: backenddb
  template:
    metadata:
      labels:
        app: yelb-db
        tier: backenddb
    spec:
      containers:
      - name: yelb-db
        image:  mreferre/yelb-db:0.5
        ports:
        - containerPort: 5432
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: yelb-appserver
spec:
  replicas: 1
  selector:
    matchLabels:
      app: yelb-appserver
      tier: middletier
  template:
    metadata:
      labels:
        app: yelb-appserver
        tier: middletier
    spec:
      containers:
      - name: yelb-appserver
        image:  mreferre/yelb-appserver:0.5
        ports:
        - containerPort: 4567

This is the Acornfile I am trying to shape off of the above:
args: {
  scale_ui: 2
  scale_appserver: 3
}

containers: {
  "yelb-ui": {
      image: "mreferre/yelb-ui:0.7"
      scale: args.scale_ui
      ports:
        publish: "80/http"
      dependsOn: "yelb-appserver"
      }
  "yelb-appserver": {
      image: "mreferre/yelb-appserver:0.5"
      scale: args.scale_appserver
      ports: "4567/tcp"
      dependsOn: [
        "redis-server",
        "yelb-db"
      ]
  }
  "redis-server": {
      image: "redis:4.0.2"
      ports: "6379/tcp"
  }
  "yelb-db": {
      image: "mreferre/yelb-db:0.5"
      ports: "5432/tcp"
  }
}

The stack seems to come up fine and all containers in the Acorn seem operational but I fail to see the Ingress being configured. This is how the two ingresses look like (one for the "native YAML" and one from the Acornfile):
$ kubectl get ingress -A
NAMESPACE                 NAME      CLASS    HOSTS                                         ADDRESS                                                                PORTS   AGE
default                   yelb-ui   <none>   *                                             k8s-default-yelbui-9a80765730-1696724264.us-west-2.elb.amazonaws.com   80      8m7s
red-flower-1efda903-e8c   yelb-ui   <none>   yelb-ui.red-flower.pm64pd.alpha.on-acorn.io                                                                          80      104m
$

Am I doing something wrong in the Acornfile?

Can you give us the output of kubectl get ingress -A -o yaml? I want to compare the yaml for the two ingresses.

The fact that you got as far as you did means nothing is wrong with your acornfile. It created a proper ingress resource:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: "yelb-ui"
  annotations:
    kubernetes.io/ingress.class: alb # check this, your ingress.class may be different
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
  labels:
    app: "yelb-ui"
spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: "yelb-ui"
              servicePort: 80

...but that should have a status field with a loadbalancer object. The fact that it doesn't means that the ingress controller isn't picking it up.
Normally, I would suspect you need to set the ingress class via:
acorn install --ingress-class-name alb

but your function ingress in the default namespace doesnt have a class set either. So that's why I want to compare the two. I suspect it has some annotations set on it that is allowing your ingress controller to pick it up.

Oooh, my bad, I misread your original post. That ingress is from your working version.
Everything still holds true except this part:
The fact that you got as far as you did means nothing is wrong with your acornfile. It created a proper ingress resource:

Can you still share the yaml output of both ingresses? I'm fairly certain it is going to be the abscense of these annotations:
  annotations:
    kubernetes.io/ingress.class: alb # check this, your ingress.class may be different
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip

And you can still try to see if
acorn install --ingress-class-name alb

resolves it, but that sets a field on the ingress called ingressClassName and your ingress controller's documentation indicates it uses the older annotation kubernetes.io/ingress.class, so I don't know if it will respect the ingressClassName field or not.

Thanks! Here is the output of the command:
$ kubectl get ingress -A -o yaml
apiVersion: v1
items:
- apiVersion: networking.k8s.io/v1
  kind: Ingress
  metadata:
    annotations:
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/target-type: ip
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"alb.ingress.kubernetes.io/scheme":"internet-facing","alb.ingress.kubernetes.io/target-type":"ip","kubernetes.io/ingress.class":"alb"},"labels":{"app":"yelb-ui"},"name":"yelb-ui","namespace":"default"},"spec":{"rules":[{"http":{"paths":[{"backend":{"serviceName":"yelb-ui","servicePort":80},"path":"/*"}]}}]}}
      kubernetes.io/ingress.class: alb
    creationTimestamp: "2022-08-17T18:53:41Z"
    finalizers:
    - ingress.k8s.aws/resources
    generation: 1
    labels:
      app: yelb-ui
    name: yelb-ui
    namespace: default
    resourceVersion: "74707"
    uid: 416614cd-f889-45df-a39c-7d70d8cedcc3
  spec:
    rules:
    - http:
        paths:
        - backend:
            service:
              name: yelb-ui
              port:
                number: 80
          path: /*
          pathType: ImplementationSpecific
  status:
    loadBalancer:
      ingress:
      - hostname: k8s-default-yelbui-9a80765730-1696724264.us-west-2.elb.amazonaws.com
- apiVersion: networking.k8s.io/v1
  kind: Ingress
  metadata:
    annotations:
      acorn.io/targets: '{"yelb-ui.red-flower.pm64pd.alpha.on-acorn.io":{"port":80,"service":"yelb-ui"}}'
      apply.acorn.io/applied: H4sIAAAAAAAA/4xSzW7bPBB8lQ97lpQ4+olN4Du0t6KXHnKrcliSa0sIRRLkyokh8N0LKnGd1k3RG6WZHc4sZ4GJGDUyglgArXWMPDob10/lgq1Gd8MYDsQRBCw9nMjIch6rQLrcG/dMofJT13hdofEDVs6W58EexNKDd4F7ENvboodI4ThCAei9OVU/L3DPlkJ5OD6BgNEyBYvmgh43xX9fR6v//+T9FxsZraKPNCxOBAIu5v5GjB5VZq/QR8Q4y1I5y/TCIABSASrQuqSHcaLIOHkQdjamAIOSzK+rQ+//7Ol3wpWXM2FCiwfSIIDDTO+RdZmKzvpvD3OdY8A4gID7TjZNfddp2naSdCu7u2bbtLVsd5t9e6+7VtdyV3c54pXke4uXIOWG9hp3t3VJW5XnoieV84fZUATxfYHBRb4o/UtroICB2WcZjzy8ykhUT2R1/vkWOx+vbOaurcA8SQq5dCmlYtUBATfwenw4+Tz2LdB+fIH0mNJj9s7I8/p6xqH+jCb3LIBYUko/AgAA//+uR/tTKAMAAA
      apply.acorn.io/owner-gvk: internal.acorn.io/v1, Kind=AppInstance
      apply.acorn.io/owner-name: red-flower
      apply.acorn.io/owner-namespace: acorn
      apply.acorn.io/owner-sub-context: ""
    creationTimestamp: "2022-08-17T17:09:01Z"
    generation: 1
    labels:
      acorn.io/app-name: red-flower
      acorn.io/app-namespace: acorn
      acorn.io/managed: "true"
      acorn.io/service-name: yelb-ui
      apply.acorn.io/hash: 76b44326de86bed5b6248453b591f57d65d3b936
    name: yelb-ui
    namespace: red-flower-1efda903-e8c
    resourceVersion: "50442"
    uid: 93ee9a37-7e23-4f65-900a-ede9a5f202a1
  spec:
    rules:
    - host: yelb-ui.red-flower.pm64pd.alpha.on-acorn.io
      http:
        paths:
        - backend:
            service:
              name: yelb-ui
              port:
                number: 80
          path: /
          pathType: Prefix
  status:
    loadBalancer: {}
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

Note that I am using the YAML that configures the ALB to work with native pods IPs (a requirements for EKS/Fargate but it also works with EKS/EC2). I have another yaml (here) that does the same thing but leverages the traditional communication path through the EC2 host). I haven't tested it right now (but I can).
I assume that both annotations alb.ingress.kubernetes.io/target-type: ip and alb.ingress.kubernetes.io/scheme: internet-facing (default) are optional but perhaps Acorn needs to set the kubernetes.io/ingress.class: alb as a minimum?

Yep, it's because kubernetes.io/ingress.class: alb is missing.
AWS's docs:

The AWS Load Balancer Controller creates ALBs and the necessary supporting AWS resources whenever a Kubernetes ingress resource is created on the cluster with the kubernetes.io/ingress.class: alb annotation
https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html

Only chance of it working right now is if their ingress controller also happens to support the ingressClassName field that we set when you do acorn install --ingress-class-name alb. If that doesn't work, you'll need a code fix from us.
I am working on a feature to let you add arbitrary annotations to the resources created by an acorn app. But I might add a quicker/shorter-term fix to just set the kubernetes.io/ingress.class annotation if do --ingress-class-name.

Does your cluster have an ingressClass object?
kubectl get ingressclass -A -o yaml

It does.
$ kubectl get ingressclass -o yaml
apiVersion: v1
items:
- apiVersion: networking.k8s.io/v1
  kind: IngressClass
  metadata:
    annotations:
      meta.helm.sh/release-name: aws-load-balancer-controller
      meta.helm.sh/release-namespace: kube-system
    creationTimestamp: "2022-08-17T13:45:53Z"
    generation: 1
    labels:
      app.kubernetes.io/instance: aws-load-balancer-controller
      app.kubernetes.io/managed-by: Helm
      app.kubernetes.io/name: aws-load-balancer-controller
      app.kubernetes.io/version: v2.4.3
      helm.sh/chart: aws-load-balancer-controller-1.4.4
    name: alb
    resourceVersion: "2664"
    uid: 60a8e226-b1ed-4a69-b1d0-b57f421e6948
  spec:
    controller: ingress.k8s.aws/alb
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

I will play more tomorrow with acorn install --ingress-class-name alb and see what happens. Will report on this thread on the outcome.

I might add a quicker/shorter-term fix to just set the kubernetes.io/ingress.class annotation if do --ingress-class-name

Would that be a flag for the acorn run?
Thanks!

No, I was thinking that as part of acorn install --ingress-class-name alb, i would set both the ingressClassName field and the annotation. But after a little more reading, they arent quite equivalent, so I am now hesitant to do that.
Fortunately, it looks like acorn install --ingress-class-name alb will work since that IngressClass exists. ...or at least it will get further. Then we will discover whether the other alb.ingress.kubernetes.io annotations are required or optional :-)

Ah ok that makes sense, thanks. So a few updates.
First I have verified that the native YAML could work without the alb.ingress.kubernetes.io/target-type: ip so we know that annotation is not required.
I ran the acorn install --ingress-class-name alb which gave me all green BUT it did not move the needle on our problem. That is, if I try to deploy the app again the ingress remains pending as before.
I also went a step further by trying to patch the ingress and adding the two other annotations:
            "kubernetes.io/ingress.class": "alb",
            "alb.ingress.kubernetes.io/scheme": "internet-facing",

This did not change anything either. I suspect the two ingress (the one generated by Acorn and the one deployed with the native K8s YAML) are still different even after adding these two annotations (for example the Acorn spec section is different from the native spec section - below is the new Acorn output of the ingress with the two new annotations):
{
    "apiVersion": "networking.k8s.io/v1",
    "kind": "Ingress",
    "metadata": {
        "annotations": {
            "kubernetes.io/ingress.class": "alb",
            "alb.ingress.kubernetes.io/scheme": "internet-facing",
            "acorn.io/targets": "{\"yelb-ui.misty-night.pm64pd.alpha.on-acorn.io\":{\"port\":80,\"service\":\"yelb-ui\"}}",
            "apply.acorn.io/applied": "H4sIAAAAAAAA/4xSwY7TMBD9FTTnJNuyaUkscQBOCAlx2Bvdw9iZJtY6tmVPylaR/x053bKFqmhvTubNm3lv3gwjMXbICGIGtNYxsnY2Lp/KBVtpd8cYeuIIAuYdHMnIctLVqCMfS6v7gSs/bmvfVWj8gJWz5blzB2LegXeBdyCaVbGDSOEABaD35lj9GeB+WQplf3gCAdoyBYvmtXpYF+++adt9/OT9VxsZraJbHBZHAgEXy/0PGT2qDF9Kt4BxkqVylumZQQCkAlSgxaUHPVJkHD0IOxlTgEFJ5m/v0PsbS/2LuFrmDBjRYk8dCOAw0WUlu6kVnQe8nOZayIBxAAH7tsE9yVZJrFdt26z3uO3Upq337zfbbfuh3mzk/Wq1yhqvKC9XvFBS1mtZb5r7dSmbJjdGTyo7oG0fKMYvBmP8fiJDI6GAMBmKIH7OMLjIrzPelCgoYGD2eYBHHk48EtUT2S7/fHEkP68U5BwuhWmUFHIgU0rFwgMC7uD0fDj63PYj0F4/Q3pM6TGrYuRpuaxx2H1Gk0MYQMwppd8BAAD//zYIxCdFAwAA",
            "apply.acorn.io/owner-gvk": "internal.acorn.io/v1, Kind=AppInstance",
            "apply.acorn.io/owner-name": "misty-night",
            "apply.acorn.io/owner-namespace": "acorn",
            "apply.acorn.io/owner-sub-context": ""
        },
        "creationTimestamp": "2022-08-18T09:13:03Z",
        "finalizers": [
            "ingress.k8s.aws/resources"
        ],
        "generation": 1,
        "labels": {
            "acorn.io/app-name": "misty-night",
            "acorn.io/app-namespace": "acorn",
            "acorn.io/managed": "true",
            "acorn.io/service-name": "yelb-ui",
            "apply.acorn.io/hash": "f98afeb9cba409981fa6dc594f256697455b3000"
        },
        "name": "yelb-ui",
        "namespace": "misty-night-41b45831-b88",
        "resourceVersion": "269264",
        "uid": "ca84eceb-b279-427a-b8a6-fd8425a65449"
    },
    "spec": {
        "ingressClassName": "alb",
        "rules": [
            {
                "host": "yelb-ui.misty-night.pm64pd.alpha.on-acorn.io",
                "http": {
                    "paths": [
                        {
                            "backend": {
                                "service": {
                                    "name": "yelb-ui",
                                    "port": {
                                        "number": 80
                                    }
                                }
                            },
                            "path": "/",
                            "pathType": "Prefix"
                        }
                    ]
                }
            }
        ]
    },
    "status": {
        "loadBalancer": {}
    }
}

I have tried to patch the spec but I ended up in a rat-hole and I gave up.

Thanks. I have deployed my cluster using this CDK Blueprint: https://github.com/aws-quickstart/cdk-eks-blueprints (simply because I needed an ingress and the Blueprint install the AWS LB ingress - along other things we probably don't need for this).

Never got testing this, but I'd like to see us revisit this sometime in october

Closing due to age. If you're still tracking this, please re-open


Assigning Volume ID's

Hello,
As I know that you can start many Volume nodes:
Start Volume Servers

weed volume -dir="/tmp/data1" -max=5  -mserver="localhost:9333" -port=8080 &
weed volume -dir="/tmp/data2" -max=10 -mserver="localhost:9333" -port=8081 &

and query the assign command to get the volume to write to:

curl http://localhost:9333/dir/assign
{"count":1,"fid":"3,01637037d6","url":"<IP_ADDRESS>:8080","publicUrl":"localhost:8080"}

I am wondering if when starting up each volume, can I assign a Volume ID on the CLI such that when I call the "/dir/assign" command with Curl, then I can write to a specific volume that I have already assigned and ID?
Or, can I query a volume to have it return just the ID that it was assigned when the server was started?
These will be useful when I need to have specific files stored on specific volumes.
Any thoughts on this?

(Moving to discussion)
There are no checking when writing to volumes. So you can write to any volume id, any file key, and any cookie, as long as you can be sure about the volume having enough capacity.
One minor thing is that if the file key is not monotonically increasing, changing volume servers to use leveldb index, i.e.,weed volume -index=leveldb, can be more efficient.


Fix markup in nutshell headers

These headers had incorrect markup and were not displaying as such. Now they are fixed, but the is the content up to date, or should it be marked as TODO?

Looks good to me :+1:


[ja] Use apiversion networking.k8s.io/v1 for ingress

There is a warning deprecation message for kubernetes v1.19:
Warning: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress

Switched apiversion in the example to networking.k8s.io/v1
Related PRs https://github.com/kubernetes/website/pull/24075 and https://github.com/kubernetes/website/pull/24225
Current English version
Current Japanese version

@miry Hello, we are currently tracking diffs on 1.18 doc milestone. Therefore, the English diff will be merged when it's all up to date for 1.18.

@inductor I see.
FYI: 2 others PRs for EN and ZH were merged. pls check if it requires revert.

@inductor I have rebased against master.

@inductor I have rebased against master.

:wave: @miry ,
Is this PR still active?
/cc @kubernetes/sig-docs-ja-reviews

@kbhawkey let me rebase against the master and check.

@kbhawkey Yep. it is still actual and should be merged, because 2 other languages had already merged.
(left new, right current)

I see there are a slight new changes in other languages.
Let me sync with a new way to show code snippets.

@kbhawkey Pls review https://deploy-preview-24224--kubernetes-io-master-staging.netlify.app/ja/docs/tasks/access-application-cluster/ingress-minikube/

Thanks for doing this.
I confirmed this updates ja content for catching the latest en content.
/remove-lifecycle rotten
/lgtm


Allow for other CE instance + create URL

This should fix #1 and #3 .
I've also took the liberty of using a different mecanism for building JSON that is sent over the POST. It had the advantage to be easily copy/pasted across the python and shell script I'm already using :D

rebased and pushed !

Excellent, thank you! I will merge once CI go green.

I've added a single commit for updating the README (very basic).

Thank you so much!

Thanks for merging :)
For my information, how did you merge it ? Usually, merging PR maintains original commits (and authorship -- in this case, github changed the mail), but it seems that in this case all my commits were squashed before merging ? It's not really a problem in this case as it's rather small, but more by curiosity.

There is an option to squash and merge on Github if you hit the arrow next to the merge button. It's the default several other projects I work on use, so its somewhat become habit for me :)
FWIW authorship stays the same, it just mentions I committed.

Ok 😃 But authorship is changed. In my case, my workmail has been changed by my personnal mail. It's good to know as it can be an issue for attribution (ie. when work being contributed is paid by my employer, he wants to be credited).

Ah, well if you want I wouldn't be opposed to adding an ACKS file for acknowledgements.

No no, that's fine 😃


MINOR: Add topic config to PartitionsSpec

LGTM. Thanks Colin, this is gonna be useful for me.

Should the tests check the config somehow?

I added another test.


Add fake time

In order to avoid sketchy unit test results on bursted or slow CI
machines, it makes sense to provide mocked time functionality.
This should fix the CI troubles introduced by #134.
Should fix #43 for good.

Coverage increased (+0.3%) to 55.45% when pulling<PHONE_NUMBER>00cf6529d254f837515224486284a0 on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Note to self. It should probably called fake time.
Also, this doesn't actually work yet because the fake is selected at compile time, however, the library is not compiled with the unit test flags but only the unit test part is. Therefore, part of the time API is still using the real time. Something like dependency injection could fix this.

Coverage decreased (-0.9%) to 54.194% when pulling 3c57e829c058da3ef41d233ff4cadbaaa04ad0ed on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-1.9%) to 53.233% when pulling 3c57e829c058da3ef41d233ff4cadbaaa04ad0ed on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-1.9%) to 53.233% when pulling e546c1c83a8e7738edce995aefe646b2e66bcc1d on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-37.6%) to 17.571% when pulling fc49906f0b19120725e92ea457708dc8774264e3 on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-37.6%) to 17.571% when pulling dd55567eb5c1bced24af110ff96e74d35d6c390b on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-37.6%) to 17.571% when pulling 2b8d549626735db094bc2937851153f4c7385f94 on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-37.6%) to 17.571% when pulling aed9283db16b9842ebf6e4f51e596a964899e0ff on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-37.6%) to 17.571% when pulling fbf1917a68e2de9c04a7627c9d76a38dceb79620 on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Coverage decreased (-37.6%) to 17.571% when pulling fbf1917a68e2de9c04a7627c9d76a38dceb79620 on add-mock-time into 50a09fce5e17208280472a48e55c7505bf4ce952 on develop.

Note: I have local changes and an updated docker image for this that I could not push yet.

I'm merging this now because I need to rebase other PRs on top of it that are failing because of the flaky unit tests.


Volume slide (Axy) does not work on triangle channel

Volume doesn't seem to be implemented at all in the driver?

Axy is implemented now, here: https://github.com/zeta0134/bhop/blob/master/bhop/commands.asm#L356
and here: https://github.com/zeta0134/bhop/blob/master/bhop/effects.asm#L528
Let's see...
The triangle channel should be calling all of that logic, so it has channel+instrument volume and all relevant effects being applied: https://github.com/zeta0134/bhop/blob/master/bhop.s#L1581
... and Triangle should in theory correctly mute itself when either volume is set to 0: https://github.com/zeta0134/bhop/blob/master/bhop.s#L2396
Admittedly I don't have a test module handy. Is this bug still valid?


After naming a temporary asset in the asset tab, simulator doesn't reflect changes

Describe the bug

To Reproduce
Steps to reproduce the behavior:

Make a new project, make a temporary (unnamed) asset
Switch to the Asset tab
Edit the asset, see that the changes show up
Name the asset, make a change
Simulator does not show updated image

Fixed!


Add C# course and fix hyperlinks, check_urls=free-programming-books-id.md

What does this PR do?
Add resource | Improve repo
For resources
Description

Fix #3977

Add C# book
Fix C++ heading
Add C# heading

Why is this valuable (or not)?

Fixes PR; improves repo

How do we know it's really free?

Requires email for free e-book

For book lists, is it a book?

Yes

Checklist:

[x] Read our contributing guidelines
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists  in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction)

Followup

Check the output of Travis-CI for linter errors!

I haven't seen an argument that Mahirkoding.id or this book is worthy of an exception to our no-required-emails for book lists policy. Let's see if @TedoHarisC is still around to comment, otherwise we won't add it.

Closing since merged and fixed already by @eshellman


Keto summary

#8
Adding a summary of Keto Diet to readme. Let me know if this is what you had in mind and any other modifications I can make.

Welp, didnt see this is already addressed in #10. Use whichever is more readable to new Keto-ers.


Stop gradient

Why is this necessary?
https://github.com/XifengGuo/CapsNet-Keras/blob/0ca571cb6c0fb465befebcb4e1fccef6efaecda3/capsulelayers.py#L152

@chrislybaer In my understanding, the routing is just to search best connections c between capsules from one layer and capsules from next layer in a dynamic way. So when we have found the best connections in forward, we should only use the best connections to formulate the relationship between inputs_hat and outputs. That is, we just need to consider the gradient backpropagated through the best connections (i.e. the b used in the last iteration) and ignore gradients from inner iterations.
Therefore, we use inputs_hat_stopped = K.stop_gradient(inputs_hat) to stop gradients from inner iterations flowing back to inputs_hat.

Okay thank you, this explanation sounds intuitive!

I'm not 100% percent sure if that what you are argue is right. In the paper of Hinton they described the routing algorithm as a procedure returning v_j after the whole iterations. If it would be the intention to use the gradient flow just over the final setting of the coupling coefficients c. They would propose the algorithm as returning c and using the c's  out-of-the-box in the routing of the neural network. But that's not the case. Thus, I have some concerns that this is 'right' in the sense of the paper. Furthermore, you find implementations where the authors implement the method without gradient_stop (e.g. https://github.com/InnerPeace-Wu/CapsNet-tensorflow/blob/master/code/CapsNet.py). Moreover, in my understanding the most Pytorch implementations also not using the gradient_stop idea (but I'm not so familiar with the Pytorch coding).
From my point of view it is just a minor change and both implementations should be fine. Using gradient_stop will focus the gradient back flow to the final c's and hiding the information how we built the c's. So there is no information back propagation that the c's where built by the values of u.
Another comment: In the paper they proposed that the initial values for b could be trained by the neural network (again, see: https://github.com/InnerPeace-Wu/CapsNet-tensorflow/blob/master/code/CapsNet.py). Which seems as one more point that the gradient_stop might be 'wrong'.
Maybe an experiment and comparison of both methods could help to clarify the initial question of @chrislybaer ?

@saralajew I have tested both of them, stopping gradient leads to similar accuracy and better efficiency. More discussions are welcome.

@saralajew regarding the "... In the paper they proposed that the initial values for b could be trained ...":
I wrote an email to the authors and they said they did not use this for the MNIST dataset and expect improvements for broader capsule networks (networks with more than 100 capsule types).
I also tested both and accuracy-wise there is not much difference. I personally do not really like the stop_gradient command because it makes the code a little bit harder to read and to imagine what is going on.
20 epochs without stop_gradient: val_capsnet_acc: 0.9952
20 epochs with stop_gradient:       val_capsnet_acc: 0.9950

The aim of my comment was just to clarify the statement of @XifengGuo and, further, to avoid that the issue#26 provide some 'theoretical' wrong understandings :smile:
@chrislybaer: see page 3 footnote 2: The authors state they use fixed initial b's.
Moreover, it seems intuitive that the computational efficiency should be better with gradient stop (less gradient back flow).
Thanks for the comments and @chrislybaer for providing some results!

@chrislybaer @saralajew
I still insist my understanding explained before. But I find some problems of using gradient_stop.
I conducted an experiment with a small capsnet structure and found that removing gradient_stop performs better in terms of acc, though it took a little more time.
Furthermore, gradient_stop tends to lead to insufficient training for transformation (prediction) matrices, i.e. some capsules in the lower layer cannot predict correct capsule in the higher layer. But we expect transformation matrices to be trained perfectly in order to benefit routing algorithms (Standing on giant's shoulder sees further?)
One possible way to solve this issue is to train the capsnet with one iteration of routing for some epochs and then to train with 3 iterations of routings. The pretraining step can help the transformation matrices be well trained.
But since removing gradient_stop can overcome this, I decide to just abandon gradient_stop.

Based on my understanding, both tensors b and c are constant, because b is initialized as tf.zeros and c is just a softmax on b. As such, both are not trainable. Also, u^hat is the output of a matrix multiplication and thus a constant tensor. Therefore, applying stop_gradient on these tensors seems unnecessary. Please correct me if I'm wrong.


Remove credit for ubsan (and in general) from two C++ files.

After I talked to ubsan and told her about the C++ style decisions, she requested me to remove her name from the C++ files, that contain her name.
So this PR does exactly that.
It also removes the credit in general, if you (@leios ) don't want that, feel free to tell me, then I re-add it again.

This is fine, I just wish she would talk to me about this.


Confusing compiler message with mapped type

Bug Report

🔎 Search Terms
mapped type incorrect error
🕗 Version & Regression Information

This is the behavior in every version I tried, including nightly and I reviewed the FAQ for entries about mapped type 'bugs which are not bugs'

⏯ Playground Link

Playground link with relevant code
💻 Code

export enum SupportedFilterables {
    ASSIGNEE = 'assignee',
    DUE_DATE = 'dueDate',
    TAGS = 'tags',
}

export enum ENTITY_TYPE {
    A = 'A',
    B = 'B',
}

export type KeysAndValues_A = {
    [SupportedFilterables.ASSIGNEE] : {personId: number}[],
    [SupportedFilterables.DUE_DATE] : {startDate: string, endDate: string},
}

export type KeysAndValues_B = {
    [SupportedFilterables.ASSIGNEE] : {personId: number}[],
    [SupportedFilterables.TAGS] : {tagId: string, name: string},
}

export type EntityTypeToFilterKeysAndValues = {
    [ENTITY_TYPE.A] : KeysAndValues_A
    [ENTITY_TYPE.B] : KeysAndValues_B
}

type ValidCombinations<MAP> = {
    [ET in keyof MAP]: {entityType: ET, keyValue: keyof MAP[ET], filters: {[key in keyof MAP[ET]] : MAP[ET][key]} }
}[keyof MAP]

declare function nonGenericFun(payload: ValidCombinations<EntityTypeToFilterKeysAndValues>) : any

nonGenericFun({
    entityType: ENTITY_TYPE.A,
     keyValue: SupportedFilterables.ASSIGNEE, // good type: keyof KeysAndValues_A
      filters: {
          [SupportedFilterables.ASSIGNEE]: [{personId: 1}],
        // here compiler says that TAGS are missing even though they don't belong to to ENTITY_TYPE.A's  KeysAndValues_A
        // but... if you do try to provide them, compiler says that it should not be here
        //   [SupportedFilterables.TAGS]: {tagId: '', name: ''}
          }
          })

🙁 Actual behavior
Compiler getting confused as to what key is missing in 'filters' even though 'keyValue' is evaluated correctly.
🙂 Expected behavior
We get correct hints for the filters keys in nonGenericFun.
The generic one (from sandbox) works but some use cases (e.g. https://github.com/reduxjs/redux-toolkit/issues/1598) require resorting to other ways.

Some clarification, the error message is a little misleading but it starts with Type '{ assignee: { personId: number; }[]; }' is not assignable to type 'KeysAndValues_A | KeysAndValues_B'. and then typescript demonstrates that it isn't equal for the last case in the union it checked that didn't pass. if you use the entity type that is the last one in the union it shows the same error that just happens to be more helpful.
As well if you specify the TAGS entry the original error suggested it gives the better message saying that that wasn't valid to begin with since it doesn't satisfy the actual constraint.
Argument of type '{ entityType: ENTITY_TYPE.A; keyValue: SupportedFilterables.ASSIGNEE; filters: { assignee: { personId: number; }[]; tags: { tagId: string; name: string; }; }; }' is not assignable to parameter of type 'ValidCombinations<EntityTypeToFilterKeysAndValues>'.
  Types of property 'filters' are incompatible.
    Type '{ assignee: { personId: number; }[]; tags: { tagId: string; name: string; }; }' is not assignable to type 'KeysAndValues_A'.
      Object literal may only specify known properties, and '[SupportedFilterables.TAGS]' does not exist in type 'KeysAndValues_A'.(2345)

So what is actually happening is that typescript is making multiple passes over the data structure, on the first pass it checks if the filters is compatible with any of the valid targets for it, determines it isn't and gives the error which specifically mentions KeysAndValues_B, if it was a valid then on another pass it determines that actually the filters had to be set to KeysAndValues_A and may give a more accurate error message.  I'm not sure how actionable this would require basically detecting an error but checking a bit more details to possibly give a better error message.

Likely a duplicate of https://github.com/microsoft/TypeScript/issues/46374. If you could make this repro a lot smaller and simpler, that would help make sure it is addressed along with #46374. I’m pretty sure you can get rid of a lot of the complexity here by inlining the type generated by ValidCombinations.

@tadhgmister So in the first pass of the compiler the generic value of Entity_Type is not yet resolved and taken into account, right?
When matching against the union type is it always the last type that will be used to produce error message (playground)?
Thank you for the explanation of the inner works - it helps to understand the 'whys'!
I am just surprised that the generic version of that function doesn't suffer from the same problem?
@andrewbranch
As you suggested, I've inlined that type and removed some non-essential bits. (playground)

I cleaned up the example a little further
The reason it works in the generic case is that the type of filters depends on resolving the generic first so it never gets the chance to validate against a wider union.


Extremely sluggish scrolling

What version of WebTorrent Desktop? d0733d33705c4cbf5dee26c43cda2e8febc80419 (after 0.8.1)
What operating system and version? Mac OS El Capitan
What did you do? Opened the detail view on this torrent (Huckleberry Finn), which contains 701 files.
What did you expect to happen? A long list of files with smooth scrolling.
What actually happened? Very choppy, nearly unusable scrolling and increased CPU load.
The app just froze for ~1 second at a time and became mostly unresponsive to inputs.
Collapsing the detail view made the app fast again.
The torrent wasn't finished downloading, so torrent progress events were causing the whole file list to redraw with new % complete for each file. Updating 700 <divs> once per second shouldn't be a problem, though.
It looks like HyperX has poor performance.
Here's the result of profiling during the situation described above:

The biggest time sinks are all inside hyperx. It's parsing our HTML templates not only at runtime, but every single time they're called --- in this case, that means it's parsing the hyperx template in renderFileRow() 700+ times per call to update(). The parser is written in Javascript and is not particularly efficient.
The original and most popular virtual DOM library, React, parses its templates at compile time (JSX). That seems more reasonable.
(React also has other advantages. For example, our virtualdom + hyperx setup replaces every event listener in the app on every call to update() by default. We've partially worked around that by memoizing the event handlers using dispatcher(...). In general React is a lot more widely used and more actively developed.)
--
WebTorrent Desktop needs to feel snappy and reliable. I suggest we do one of two things:

Remove hyperx and go back to using virtualdom directly. (See https://github.com/feross/webtorrent-desktop/commit/b5561f13b4181e8ad9144fd882af0c7b5df5aac9)
Switch to React

Thoughts?

I've never used React on a project before, so I have no idea if I'll like it. At a high level, I agree with your reasoning. I'm happy to switch to it if it solves the perf issues.

fixed!
switching from hyperx to React helped, but the biggest cause was really stupid. turns out the download button CSS animation was making the entire list slow.
i saved the app UI to a static HTML file, using the devtools inspector. then i opened that in browser and observed the same slow scrolling and slow hover highlights with no javascript running at all.
some stats:

the file, torrent-details.html, is only 97KB
the expanded torrent only has 350 files
the table was already optimized

using table-layout: fixed, so no autosizing columns
fixed pixel height for rows
fixed pixel width for all but one column, which takes up the remaining width

... and despite that, here it is running at a blazing 10FPS:

notice how chrome isn't even doing anything for most of the 100ms it takes to render each frame. the devtools Timeline view has a useful, detailed breakdown of where time is spent--in the main thread, rasterizer threads, GPU, etc. but you can see most of the frame time, all of those are idle.
turns out that purple bar across the top is the continuously animating download button, the green arrow that bounces up and down. CSS animation, zero javascript. this is confined to a small element and has nothing to do with the file details table, and yet it makes the whole page very slow.
tldr; the DOM is heavy, CSS is complicated, and chrome has a bug :)

👏


Edge: Code editor window has a lot of empty space

You mean the fact that you can scroll past the end of the file?

Is just Monaco behavior on Edge.


Add PHP 8.4 nightly to tests

So we can find problems with time.
PHP 8.4 Timetable
https://wiki.php.net/todo/php84
WIP

Pest still don't work with PHP 8.4
https://github.com/pestphp/pest/issues/1199

We still have deprecated messages from the Mockery 2 lib.
Mockery 1.6 is fixed for PHP 8.4, but we use v2.0.x that it isn't updated for the last 7 months.
We need to check the differences and change to v1.6.

We have another problem.
Workerman v4.1 also have deprecations:

explicit nullable type  is only fixable with PHP 7.1 and now only require PHP 7.0
Constant E_STRICT is deprecated in /home/runner/work/AdapterMan/AdapterMan/vendor/workerman/workerman/Worker.php on line 518

We have another problem. Workerman v4.1 also have deprecations:

explicit nullable type  is only fixable with PHP 7.1 and now only require PHP 7.0
Constant E_STRICT is deprecated in /home/runner/work/AdapterMan/AdapterMan/vendor/workerman/workerman/Worker.php on line 518

Perhaps we should raise the minimum PHP version for Workerman v4.1 to 8.0.

Never for 4.1, but of course for v4.2
We need to change the composer json, and is ready.


godot rejects keyboard input

Godot version:

3.1.1 and 3.2
OS/device including version:

OS: Manjaro Linux x86_64
Kernel: 5.2.8-1-MANJARO
WM: bspwm
Issue description:

why does godot keep on not accepting keyboard input?
one minute im tying up a script, and the next it just doesnt let me type in anything (not ever keyboard shortcuts) unless if i restart godot, and thats annoying to have to keep on doing.
i know its godot cuz my keyboard still works perfectly fine everywhere else on my computer.
Steps to reproduce:
copy something from outside of godot, then paste it into godot using xdotool key ctrl+v

I've experienced the same behavior on Manjaro too.

Can you both try a different window manager. Also @felaugmar what wm you use?

@santouits xfwm

i figured out the cause. i updated the main post

Can anyone still reproduce this bug in Godot 3.2.3 rc6 or any later release?

No answer, so closing. Please comment if you can still reproduce it, and make sure that an up-to-date reproduction project is included.


arm.content module not installing via pip

pip install reaches a snag --
 Collecting armstrong.core.arm-content<1.1,>=1.3.1 (from armstrong)
 Could not find a version that satisfies the requirement armstrong.core.arm-content

Could this be a misplaced hypen?

The hyphen is okay.  My installation attempt fails at:
Downloading/unpacking django-reversion==1.4 (from armstrong.core.arm-content<1.1,>=1.3.1->armstrong)
  Could not find a version that satisfies the requirement django-reversion==1.4 (from armstrong.core.arm-content<1.1,>=1.3.1->armstrong) (from versions: 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6, 1.5.7, 1.6.0, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.7.1, 1.7, 1.8.0, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5)
  Some externally hosted files were ignored (use --allow-external to allow).
Cleaning up...
No distributions matching the version for django-reversion==1.4 (from armstrong.core.arm-content<1.1,>=1.3.1->armstrong)

That's because django-reversion 1.4 is ancient and no longer available on PyPi. You can install it from our github "mirror" with this command:
pip install https://github.com/armstrong/pypi.armstrongcms.org/raw/gh-pages/files/django-reversion-1.4.tar.gz
Then it dies on PIL; to compensate: pip install https://github.com/armstrong/pypi.armstrongcms.org/raw/gh-pages/files/PIL-1.1.7.tar.gz
All the packages Armstrong needs are there on our Github (make sure to pip install with the raw link). But there's a larger issue and that is the armstrong bundle is unmaintained. The last full bundle release was April 2, 2012. You should use a newer Django Reversion, Pillow not PIL, current release of Django, etc. There is still life to Armstrong, which is awesomely modular, and its components are still alive. Anything recently updated (see parent Github page) is worth considering. You'll also recognize maintained Armstrong components because they have badges (for PyPi, test coverage, etc).

Thanks for your comprehensive reply! Will have a go at the above.

I'll close this. Let me know if I can help with any of the individual components.


404 at /compose/compose-file/compse-file

I found a broken link : https://docs.docker.com/compose/compose-file/compse-file-v3

@wutongsh, thanks for reporting the issue. Where did you find this link?
The link you're looking for is probably https://docs.docker.com/compose/compose-file/compose-file-v3/

Closing as stale. If the broken link still exists, please share more details about the source.


difference-of-squares: test problem

Hi. The issue is:
That's the first and(so far) only test with this kind of message.
C:\Users\LENOVO\Desktop\funcional-programming\Haskel-exercises\exercism\haskell\difference-of-squares>stack test
difference-of-squares-0.0.0: build (lib + test)
Preprocessing library difference-of-squares-0.0.0...
Preprocessing test suite 'test' for difference-of-squares-0.0.0...
[1 of 1] Compiling Main             ( test\Tests.hs, .stack-work\dist\b7fec021\build\test\test-tmp\Main.o )
Linking .stack-work\dist\b7fec021\build\test\test.exe ...
difference-of-squares-0.0.0: copy/register
Installing library in
C:\Users\LENOVO\Desktop\funcional-programming\Haskel-exercises\exercism\haskell\difference-of-squares.stack-work\install\4eba3826\lib\x86_64-windows-ghc-8.0.1\difference-of-squares-0.0.0-i6De56LKW04sg4yY7d7KT
copyFile: does not exist (System nie mo?e odnale?? okre?lonej ?cie?ki.) (system couldn't find path)
'cabal copy' failed.  Error message:
--  While building package difference-of-squares-0.0.0 using:
C:\Users\LENOVO\AppData\Roaming\stack\setup-exe-cache\x86_64-windows\setup-Simple-Cabal-<IP_ADDRESS>-ghc-8.0.1.exe --builddir=.stack-work\dist\b7fec021 copy
Process exited with code: ExitFailure 1
One possible cause of this issue is:

No module named "Main". The 'main-is' source file should usually have a header indicating that it's a 'Main' module.

I just run stack test in my machine, using the stub solution, and here it works.
Are you running the exercise unaltered or have you changed anything?
One important question. Are you running the latest Stack version?

Try to reproduce your problem in a clean subdirectory outside of exercism's folder.
You will need the following directory structure:
stack.yaml
package.yaml
src/Squares.hs
test/Tests.hs

Are you able to reproduce the error in these conditions?
If yes, please share the source of your Square.hs file.

I tried and problem is gone. My best guess is that path to some file was too long.

In that case I'll close this issue for now.
If the problem show up again, we can certainly reopen it. :+1:


Framework choice

What framework do we want to use? And can be bootstrap it quickly? @fvdb

I feel most comfortable with Symfony, but it's not that important to me. We can start with the domain anyway. Perhaps just focus on the domain first and have a simple CLI for adding PRs and seeing whether the importing actually works. Then later we can build an API and a JS client to do it in the browser.

We can do that, but I think we can better yet just choose for Symfony in that case. Since we can create those implementations the right way directly then, instead of prototyping it first in some CLI scripts.
If there would be a basic symfony setup, I can go nuts and implement a few usecases.
Must be me, but for Symfony, I always wonder how to bootstrap such a project. Just composer require symfony/symfony ? Or do you need to create the directory structure yourself? You could copy a complete hello world tutorial thingy, but that would leave some mess. This has always been unclear to me with symfony.

There are instructions here: http://symfony.com/doc/current/best_practices/creating-the-project.html
Or if you'd like, I can set up the basic structure and create a PR for it.

Let's see who's faster :) I'm off to FOSDEM this weekend, so I can't say for sure if i have time for this.
But thanks for the link!

I setup the basics, configured travis-ci and phpunit structure, and made you a project collaborator.
If you could review this lonely PR, and merge it if ack'ed, that would be awesome! :D


[wf] bind_back

[wf] bind_back
Similar to bind_front, but expand ttps and args after operator() parameters.
Like std::bind_back, but according to the csl::wf design philosophy.

WIP : https://godbolt.org/z/7Gb1E4afY


raftstore: record write durations into tracker

What is changed and how it works?

Issue Number: Ref https://github.com/tikv/tikv/issues/12362
What's Changed:

This commit replaces the request_times in the raftstore callback with a
tracker token. Then, the waterfall metrics of a raft command will be
recorded into the tracker.

Check List
Tests

Manual test (add detailed scripts or steps below)

Release note
None

Overall CPU cost is 0.3%. Looks acceptable...


PHP code generation support

Hello,
I'm doing a short investigation about AsyncApi and PHP language support. In my current company I would like to introduce AsyncApi idea for developing and documenting async communication. Is it any way to generacje PHP classes, enums etc. from asyncApi json or yaml file? Or do you have any information about current work on it? If no, could I get some more information how to jump into the modelina and design/implement code generation to PHP?
Best regards,
Marcin

Hey @marcinbos92, until some official documentation is made, I suggest you take a look at this PR as it has all the right components to add a new generator: https://github.com/asyncapi/modelina/pull/818
Also make sure you target the next branch 🙂
Let me know if you have any questions 👍

I have added an initial set of template for new generators and added documentation how to create new generators. Checkout https://github.com/asyncapi/modelina/pull/850

Duplicate issue of https://github.com/asyncapi/modelina/issues/744


150%+ CPU usage while screensaver is active from VTDecoderXPCService

Required information
In order to help us sort your issue, we ask that you provide the following information:

[x] Mac model: MacBook Pro (Retina, 15-inch, Mid 2015)
[x] macOS version: 10.15.7 (19H2)
[x] Monitor setup: N/A

Description of issue / Feature request
All SDR 4K HEVC videos use too much CPU, specifically in VTDecoderXPCService

Hi @ReagentX
Yes, your Mac CPU doesn't support the hardware decoding of those 10 bit HEVC videos, that's why you get high usage. On that Mac (Mid 2015), I'd recommend 1080p H.264. There's a help bubble next to the video format choice in Settings > Advanced that will tell you more about what your Mac supports.


[SPARK-35177][SQL] Fix arithmetic overflow in parsing the minimal interval by IntervalUtils.fromYearMonthString

What changes were proposed in this pull request?
IntervalUtils.fromYearMonthString should handle Int.MinValue months correctly.
In current logic, just use Math.addExact(Math.multiplyExact(years, 12), months) to calculate  negative total months will overflow when actual total months is Int.MinValue, this pr fixes this bug.
Why are the changes needed?
IntervalUtils.fromYearMonthString should handle Int.MinValue months correctly
Does this PR introduce any user-facing change?
No
How was this patch tested?
Added UT

FYI @MaxGekk

Test build #137756 has started for PR 32281 at commit 20fdef3.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42283/

Test build #137756 has finished for PR 32281 at commit 20fdef3.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

@AngersZhuuuu JIRA ID seems to be wrong. Could you confirm it?

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/137756/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/42283/

@AngersZhuuuu JIRA ID seems to be wrong. Could you confirm it?

Done.

retest this please

Test build #137765 has started for PR 32281 at commit 20fdef3.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42293/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42293/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/42293/

Could you make PR's title more precise, for example:
[SPARK-35177][SQL] Fix arithmetic overflow in parsing the minimal interval by IntervalUtils.fromYearMonthString

Done

Test build #137779 has started for PR 32281 at commit 70e9e0a.

Test build #137786 has started for PR 32281 at commit 325549e.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42308/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42308/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/42308/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42315/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42315/

+1, LGTM. GA passed. Merging to master.

Thank you, @AngersZhuuuu .

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/42315/

Test build #137765 has finished for PR 32281 at commit 20fdef3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/137765/

Test build #137786 has finished for PR 32281 at commit 325549e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/137786/

Test build #137779 has finished for PR 32281 at commit 70e9e0a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/137779/


[New Port Request] websocketpp-standalone

Library name: websocketpp-standalone
Library description:  Library that implements RFC6455 The WebSocket Protocol using standalone version of ASIO
Source repository URL: https://github.com/zaphoyd/websocketpp
Project homepage (if different from the source repository):
Anything else that is useful to know when adding (such as optional features the library may have that should be included):
This is effectively the same as the websocketpp package, except the build-depends has to change boost-asio -> asio
This removes the dependency on the boost libs for those that do not require them.

If you wish to add this port in the future, you can reopen this issue, but we're closing it for now.


jenkins admin user broken in new release

the admin user dir has moved to a randomly numbered directory in a recent release.
instance userdata must now discover and pass this directory, or create a symlink, in ansible bootstrapping:
ln -sfv /var/lib/jenkins/users/admin_8253647996753921952 /var/lib/jenkins/users/admin

merged. https://github.com/stelligent/aws-devsecops-workshop/pull/33


How to check is WC link was already rejected?

How to understand is WC connect link is not actual anymore?
For example: copy WC connect link, than reject a proposal and try to pair to the same link again. How i can catch some exception about the link is not valid anymore?

Sometimes you can't.
You can wait for the proposal to be rejected, and respond to that.
But that only works if the wallet has correctly implemented rejection logic, which may not be the case.
My suggestion would be to always create a new URI to pair with.


Visible Children ValueResolver

From reviewing @BarryFogarty's Merchello Workshop code, there are various part of navigation that call on an extension method content.VisibleChildren().
Essentially it is this code...
content.Children.Where(x => x.IsVisible())

Current in Ditto if you want to map the child nodes to a model's property, you can use [UmbracoProperty("Children")], which is fine... but it doesn't take into account the "umbracoNaviHide" convention.
What are your thoughts about having a "Visible Children" value-resolver in Ditto core?
public class VisibleChildrenResolver : DittoValueResolver
{
    public override object ResolveValue()
    {
        return  Content != null && Content.Children != null
            ? Content.Children.Where(x => x.IsVisible())
            : Enumerable.Empty<IPublishedContent>();
    }
}

I'm not a fan. You'd need ones for all the other navigation properties and once you start adding all that stuff you might as well start using PublishedContentModel and the factory.
In my projects I use base classes with the properties I need and use a strong typed wrapper for UmbracoHelper to grab things when I need them.

The only thing I'd be tempted to introduce, though I haven't really thought it through, is maybe some kind of IEnumerable filter attributes, so if you are resolving IEnumerables, we could provide an easy mechanism for filtering the result. I think this differs enough from a value resolver, and it's not a type converter, so could be something we look into?

I'm unsure about this too, hence starting a discussion (as opposed to a PR).

@JimBobSquarePants The IsVisible extension method is part of Umbraco core, with the "umbracoNaviHide" property alias as a built-in convention. Which is the only reason I'd propose this type of custom ValueResolver.
I have this nagging feeling that we still need to persuade you about the merits of ValueResolvers :heart: (alas I think we covered it in #97).
I'd be interesting in seeing more on how you develop sites with Ditto. I'm curious how it all pieces together :+1:

@mattbrailsford I'd thought about filters too, not sure though - feels too much.  If a developer was to write a custom DittoFilter, then they might as well write a custom ValueResolver, (or use a conversion handler).

Yea, I must admit, at the start of this whole discussion, I just though "use DittoIgnore and a conversion handler to populate it yourself". Ultimately, conversion handlers are to allow you to do custom logic so I'd say these would probably be the right solution.

@leekelleher

I have this nagging feeling that we still need to persuade you about the merits of ValueResolvers :heart: (alas I think we covered it in #97).

Truth be told chum I wish we'd used something like the ValueResolvers throughout albeit with the logic that allows you to attach the attributes to both the class and properties as we do the TypeConverters. Having both now causes nothing but confusion plus you get issues with other libraries picking up on the TypeConverters.
Here's a copy of base classes I use in projects to wire things up. There's a few hacks in there but on the whole it works really well for keeping sites under control and extensible.
https://dl.dropboxusercontent.com/u/78716633/DittoExample.zip


styleActiveLine option breaks arrow key movement on iPad Pros

I know that full mobile support is not an explicit goal of this project, but I think iPad pros are pretty close to desktops in some ways and that this particular bug is surprising enough to warrant a look.
This bug is pretty easy to duplicate and kind of surprising.

Open an IOS simulator or a physical iPad if you have one.
Navigate in mobile safari to https://codemirror.net/demo/activeline.html
Attempt to use the up arrow. It won't work (the cursor kind of vibrates and stays in place). The left arrow won't be able to go through the line boundary, either.

This cm.operation call in active-line.js appears to be the cause of the problem - for some reason, trying to change the css classes on the active line in the middle of the selection change messes up the arrow key movement.
Interestingly, I found that if you put a setTimeout on the operation, you can move the cursor normally as long as the highlighted active line has not yet caught up with the actual active line.

hey vincent .. what does up arrow means on ipad ? touch above ?

If you use an ipad pro with hardware keyboard on you can literally use a keyboard. In this case, I am talking about a normal up/down arrow that appears on a keyboard.

ah ok didn't know you can do that :)

That is very strange. Unfortunately, I can't directly test it, not having an Apple machine to run an emulator on, and not having a keyboard for my iPad.
One thing that might be happening is that the display update somehow ends up messing with Safari's selection in a problematic way. But I don't really see why that would happen.

Yeah, I ended up just disabling that addon for mobile users. I'm not sure how to proceed so I'm happy to just leave this issue here as a warning to future users.

@marijnh I have used browserstack's ipad emulator as a stand-in for these sort of things.
Interestingly when I load https://codemirror.net/demo/activeline.html I can get all arrow keys to work except up, except where the cursor is on the left hand end of the line, where the left arrow key would move the up to the line above anyway.

Could you see if attached patch helps at all here?

Will try hopefully in the coming days, need to get on an OSX machine w/ simulator! Anyone else is welcome to try too (using browserstack et al).

The up arrow seems to work for me, however the back arrow doesn't go to the previous line when you are at the beginning of the next line.


DEPLOYMENT

Deployment
User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
Acceptance Criteria
GIVEN a Prework Study Guide website,
WHEN I visit the website using the URL,
THEN I can access my website from any browser

Project has been deployed to github pages at https://talanvord.github.io/prework-study-guide/


32 Bit System Support

This PR fixes big integer issues on 32 bit systems. PHPs intval() returns systems highest possible integer representation of the given numerical string. long2ip() bypasses the 32 bit limitation by supporting negative values .

Thanks!


Improved performance.

The use of file in second parameter of exists improves search performance.

This function is very expensive, since it check for file existence in every call. The use of a pool of classifiers is very frequent. So, the ideal form to do this checking is before the classification process start.


[New Port Request] ONNX Runtime - ACL

Library name: ONNX Runtime - ACL
Library description: ONNX Runtime is a cross-platform inference and training machine-learning accelerator.
Source repository URL: https://github.com/microsoft/onnxruntime
need to onnxruntime-acl a use acl library

@rinechran, Thanks for posting this issue, currently, vcpkg have onnxruntime-gpu port, I notice ONNX Runtime - ACL and onnxruntime-gpu have same Source repository, is there any essential difference between them?

Currently, onnxrunte-gpu only works with Windows and does not work with CPU
the ACL is a library that uses an arm-only CPU compute acceleration library
be completely different in nature


Add differential flame graph generator to converter.jar

Differential flame graphs can be used to quickly compare two sets of collapsed stacks which can be really use if you want to see the impact of a change or contrast different profiles using different configurations (see http://www.brendangregg.com/blog/2014-11-09/differential-flame-graphs.html for more info on the basic idea). I've added a differential flame graph generator to the converter.jar. It is based on FlameGraph.java with added logic to parse the two files, add the comparison data to each frame and colour each frame.
The size and shape of the differential flame graph will be the same size and shape as the normal flame graph from the first profile, but it will be coloured to show areas of difference with the second profile: gold stack traces do not appear in the second profile, red traces appear more and blue traces appear less. The intensity of the red/blue reflects the size of the difference. This 'diff' value is calculated by normalising both sample counts for each trace, e.g. for a frame x which appears in both graphs: diff value for x = (samples of x in data set 1 / data set 1 total samples) - (samples of x in data set 2 / data set 2 total samples). Note that the diff values are also then normalised to the colour space i.e. there will always be a frame that is the reddest red. This means you can’t make visual comparisons between differential graphs (but you can compare the raw diff values).
Because some stack traces appear in one profile but not the other, its best to generate a pair of differential graphs - one based on each normal flamegraph (you do this by just switching the order you pass input1.collapsed and input2.collapsed).

Thank you for the PR.
The feature is indeed useful, but I'm afraid, the proposed implementation has too much duplicated code. In particular, anyone who wants to improve the Flame Graph UI, will need to make changes separately in two places (or even in 3 places, since there is also a C++ generator). I'd suggest to refactor the code in order to reduce maintenance overhead. I can try to do it myself, but not in the nearest future, as there are other priority tasks on my list.

Hi Andrei,
Thank you for the feedback, I've refactored so that the diff graphs can be generated by passing a --diff flag to FlameGraph. If there are any more implementation changes you'd prefer let me know and I'll take a look :)


Comment in hashtab.c may be inaccurate

in https://github.com/vim/vim/blob/master/src/hashtab.c#L157
"Need to search through the table to find the key.  The algorithm
* to step through the table starts with large steps, gradually becoming
* smaller down to (1/4 table size + 1).  This means it goes through all
* table entries in the end."
But the algorithm does not seem to take the 1/4 table-size - steps.
It does the "j = j * 5 + 1" (from the phython dictionary implementation).
Am I correct?

in https://github.com/vim/vim/blob/master/src/hashtab.c#L157
"Need to search through the table to find the key.  The algorithm
* to step through the table starts with large steps, gradually becoming
* smaller down to (1/4 table size + 1).  This means it goes through all
* table entries in the end."
But the algorithm does not seem to take the 1/4 table-size - steps.
It does the "j = j * 5 + 1" (from the phython dictionary implementation).
Am I correct?

I'm not sure how to describe the algorithm.  You forgot to include
"perturb", which starts as the hash value, and since "idx" is also the
hash value (AND mask), and perturb is divided by 32 each round, what
does that get you?
Perhaps we can link to a page that explains the algorithm rather then
trying to explain it here.
--
"Hit any key to continue" does not mean you can hit the on/off button!
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


Change database to Names and IDs only

I created a script that uses the tmp/.targetinfo file to generate a file called names.json looking like below. This could be used to load specific device information on demand instead of all together. Using target and id can be combined as { release }/{ target }/{ id }.json.
Would you be willing to change the current script to that?
{
  "FriendlyARM NanoPi NEO2": {
    "target": "sunxi/cortexa53",
    "id": "friendlyarm_nanopi-neo2"
  },
  "Pine64 Pine64+": {
    "target": "sunxi/cortexa53",
    "id": "pine64_pine64-plus"
  },
  "Pine64 SoPine": {
    "target": "sunxi/cortexa53",
    "id": "pine64_sopine-baseboard"
  },
  "Xunlong Orange Pi PC 2": {
    "target": "sunxi/cortexa53",
    "id": "xunlong_orangepi-pc2"
  },
  "Xunlong Orange Pi Zero Plus": {
    "target": "sunxi/cortexa53",
    "id": "xunlong_orangepi-zero-plus"
  },
  "CompuLab TrimSlice": {
    "target": "tegra",
    "id": "compulab_trimslice"
  },
  "Generic x86": {
    "target": "x86/generic",
    "id": ""
  },
  "Generic x86/legacy": {
    "target": "x86/legacy",
    "id": ""
  },
  "Geos": {
    "target": "x86/geode",
    "id": ""
  },
  "Generic x86/64": {
    "target": "x86/64",
    "id": ""
  },
  "Avnet ZedBoard": {
    "target": "zynq",
    "id": "avnet_zynq-zed"
  },
  "Digilent Zybo": {
    "target": "zynq",
    "id": "digilent_zynq-zybo"
  },
  "Digilent Zybo Z7": {
    "target": "zynq",
    "id": "digilent_zynq-zybo-z7"
  },
  "Xilinx ZC702": {
    "target": "zynq",
    "id": "xlnx_zynq-zc702"
  }
}

Why use tmp/.targetinfo as another source when the json files are available as well?

A for splitting up the data in a quick to load json - that might be a good idea. But I like to keep things simple and the current size of the data does not seem to require this (the data.json is only <40KB compressed).

Your proposed format is ok, but we would need to extend that to different releases.

Why use tmp/.targetinfo as another source when the json files are supposed to be available as well?

Using targetinfo allows you to get all available models without building all. When you want to parse the online JSON files, then you also have to download about 1500 json files with details to get the model names.
However it has the disadvantage that we need to do this for every distro version we want to support. So run <script>.py for master, 19.07, etc ...
The JSON files would actually be called %distro-%version-%target-%profile.json, where %version is skipped on master builds and %target uses - instead of /.

@aparcar I am more or less finished with the restructuring. But

I cannot use %target to mean ../.. in one place, and ..-.. in another place. I could split target into %target and %subtarget. But then %target would have two conflicting definitions. => we need a different variable name. Ideas?
Your example JSON uses 'id', but you also call it 'profile'. We should only use one name. Which one?

Hm, but when I would define something like %maintarget-$subtarget in the link, and $subtarget is empty, then the link would break, because the - would not supposed to be there.

@aparcar I changed the json format to something yet simpler. Feel free to submit a PR to change it.. :-)


Improve locking granularity

I'm going to close this for now: I'm not convinced these changes actually improve performance and we can revisit this in the future should there be interest.


[Automation] Generate Fluent Lite from Swagger mediaservices#package-account-2023-01

[Automation] Generate Fluent Lite from Swagger mediaservices#package-account-2023-01

API change check
APIView has identified API level changes in this PR and created following API reviews.
com.azure.resourcemanager:azure-resourcemanager-mediaservices

/azp run java - mediaservices - mgmt - tests

/azp run java - mediaservices - mgmt - tests


Feature Request: SSO

Preferably with https://auth0.com/ for good support from a large variety of service providers.

Sure thinking of oauth


Issue with transformers 4.30.0 and Tutorial Fine-tune BERT for Text Classification on AWS Trainium

Running the Tutorial to fine-tune bert with optimum-neuron hits an error "Found no NVIDIA driver on your system." when using transformers=4.30.0
Tutorial
https://www.philschmid.de/getting-started-trainium
when downgrading transformers to 4.28.0 the issue doesn't happen.
The packages versions are the same ones suggested to follow in the tutorial
transformers                  4.30.0
aws-neuronx-runtime-discovery 2.9
libneuronxla                  0.5.326
neuronx-cc                    <IP_ADDRESS>+f7c6cf2a3
neuronx-hwm                   <IP_ADDRESS>+0092b9d34
optimum-neuron                0.0.7
tensorboard-plugin-neuronx    <IP_ADDRESS>
torch-neuronx                 <IP_ADDRESS>.8.0
torch-xla                     1.13.1+torchneuron7

error
Traceback (most recent call last):
  File "/home/ubuntu/train.py", line 147, in <module>
    main()
  File "/home/ubuntu/train.py", line 143, in main
    training_function(args)
  File "/home/ubuntu/train.py", line 93, in training_function
    training_args = TrainingArguments(
  File "<string>", line 111, in __init__
  File "/home/ubuntu/.local/lib/python3.10/site-packages/transformers/training_args.py", line 1340, in __post_init__
    and (self.device.type != "cuda")
  File "/home/ubuntu/.local/lib/python3.10/site-packages/transformers/training_args.py", line 1764, in device
    return self._setup_devices
  File "/home/ubuntu/.local/lib/python3.10/site-packages/transformers/utils/generic.py", line 54, in __get__
    cached = self.fget(obj)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/transformers/training_args.py", line 1695, in _setup_devices
    self.distributed_state = PartialState(backend=self.ddp_backend)
  File "/usr/local/lib/python3.10/dist-packages/accelerate/state.py", line 197, in __init__
    torch.cuda.set_device(self.device)
  File "/usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py", line 326, in set_device
    torch._C._cuda_setDevice(device)
  File "/usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py", line 229, in _lazy_init
    torch._C._cuda_init()
RuntimeError: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 39526) of binary: /usr/bin/python3
Traceback (most recent call last):
  File "/usr/local/bin/torchrun", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/torch/distributed/elastic/multiprocessing/errors/__init__.py", line 346, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/distributed/run.py", line 762, in main
    run(args)
  File "/usr/local/lib/python3.10/dist-packages/torch/distributed/run.py", line 753, in run
    elastic_launch(
  File "/usr/local/lib/python3.10/dist-packages/torch/distributed/launcher/api.py", line 132, in __call__
    return launch_agent(self._config, self._entrypoint, list(args))
  File "/usr/local/lib/python3.10/dist-packages/torch/distributed/launcher/api.py", line 246, in launch_agent
    raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
============================================================

Can you try with the main branch?
And if it fails, can you try with transformers >= 4.31 please?

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!


Does the computer compilation environment have an impact on external controllers?

Hello everyone,
I encountered the following error message, but: I am sure the path to the DLL is correct; And the DLL can run normally on my computer using OpenFAST-v3.4.0 (which proves that it is indeed 64bit). Once it is copied to a high-performance server next to me, an error will be reported. I am considering whether the reason for the error is that the high-performance server lacks some compilation environment required for the program to run normally.
FAST_InitializeAll:SrvD_Init:BladedInterface_Init:The dynamic library .\..\CE1.5MW\ServoData\20230420_fore.dll could not be loaded. Check that the file exists in the specified location and that it is compiled for 64-bit applications.

Dear @jjonkman ,
That server is indeed running on a Windows system.
I have encountered this situation before, but at that time, I only recompiled the external controller and the error message disappeared. But this solution doesn't work this time (even though I started using the previously compiled controller).
This issue is not fatal because I am running programs on three servers at the same time, and all other servers are functioning normally. (I have enabled parallel computing and this high-performance server can run 160 threads simultaneously, while other servers only have a maximum of 48 threads)
Anyway, thank you for your help.
Best wishes!

I'm not sure.  Perhaps someone else can comment.

@shipors , when this has happened to me in the past, it has been due to missing shared libraries on which your DLL depends. Is Visual Studio installed on the server where the DLL doesn't run? I'm guessing that you compiled it using the Intel oneAPI, sometimes the executables and DLLs built with it will link to shared libraries that aren't on all computers. On the computer where you built the DLL, you can run the following command to show all dependencies and then check that they exist on the server (dumpbin is part of VS):
dumpbin /dependents 20230420_fore.dll

Dear @Slaughter,
Thank you for your reply.
I used Visual Studio to generate the DLL on my computer. Then used its copy to run on a high-performance server. Visual studio is not installed on the high- performance server.
As for the solution you mentioned, I will also try it. (I have been busy with other things these two days)
Best Wishes!
邵茂峰
@.***
---Original---
From: "Derek @.>
Date: Sat, Apr 22, 2023 01:30 AM
To: @.>;
Cc<EMAIL_ADDRESS>Subject: Re: [OpenFAST/openfast] Does the computer compilation environmenthave an impact on external controllers? (Issue #1539)
@shipors , when this has happened to me in the past, it has been due to missing shared libraries on which your DLL depends. Is Visual Studio installed on the server where the DLL doesn't run? I'm guessing that you compiled it using the Intel oneAPI, sometimes the executables and DLLs built with it will link to shared libraries that aren't on all computers. On the computer where you built the DLL, you can run the following command to show all dependencies and then check that they exist on the server (dumpbin is part of VS):
dumpbin /dependents 20230420_fore.dll
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Dear @deslaughter , @jjonkman
Thank you for your help. I already know how to solve this problem. As mentioned in @deslaughter , I checked the shared libraries that the DLL relies on and found that these files do not exist on high-performance servers. I downloaded VISUAL STUDIO on the server, and after completing the installation, my DLL can be used normally.
Best Wishes!


Log sum exp signed

Summary
This PR introduces a function for performing log_sum_exp while respecting the signs of the input variables and tracking the sign of the returned sum. The function returns a two-element tuple, where the first element is the sum (on the log-scale) and the second is the sign. This isn't intended to be exposed to users, so I think the tuple return is fine.
We currently have to exponentiate and apply the signs to each argument (so that the values are correctly added or subtracted) and then extract the sign of the result and return the log(fabs()) of the sum:
double a = 2.1;
double b = 54.21;
int a_sign = 1;
int b_sign = -1;

double sum_exp_scale = a_sign * exp(a) + b_sign * exp(b);
double sum_log_scale = log(fabs(sum_exp_scale));
int sum_log_scale_sign = sign(sum_exp_scale);

However, this means that we lose the over-/under-flow robustness of the log_sum_exp and log_diff_exp functions. The log_sum_exp_signed function uses the provided signs to determine whether a log_sum_exp or log_diff_exp should be applied and also what the returned sign should be:
std::tuple<double, int> sum_new = log_sum_exp_signed(a, a_sign, b, b_sign);

This will be used in the hypergeometric_* functions and their derivatives which accumulate an infinite sum on the log-scale while tracking the input and output signs.
Tests
prim tests are added to ensure that different combinations of positive and negative arguments, as well as different magnitudes of arguments (i.e., a > b vs b > a) are correctly handled, as well as mix tests for the gradients
Side Effects
N/A
Release notes
Added log_sum_exp_signed function for computing log_sum_exp while respecting signs of arguments and tracking the sign of the result
Checklist

[x] Math issue #2592

[x] Copyright holder: Andrew Johnson
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[x] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

thanks @andrjohns, this will be nice to have!


iwd: 0.2 -> 0.3

https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/ChangeLog
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

cc @Mic92

Success on x86_64-linux (full log)
Attempted: iwd
Partial log (click to expand)
wrapping `/nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3/bin/wps-push-button'...
shrinking RPATHs of ELF executables and libraries in /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3
shrinking /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3/bin/iwctl
shrinking /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3/bin/iwmon
shrinking /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3/libexec/iwd
strip is /nix/store/4qvrxzxa535y8304mk195x50b6p9607d-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3/libexec  /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3/bin
patching script interpreter paths in /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3
checking for references to /build in /nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3...
/nix/store/0dws832fjqfy82xrglsghbhxd3nq5fgz-iwd-0.3

Success on aarch64-linux (full log)
Attempted: iwd
Partial log (click to expand)
wrapping `/nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3/bin/connect-network'...
shrinking RPATHs of ELF executables and libraries in /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3
shrinking /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3/libexec/iwd
shrinking /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3/bin/iwmon
shrinking /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3/bin/iwctl
strip is /nix/store/0pjsgkxz0rp5baycq5sp2s72lrr5q9sg-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3/libexec  /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3/bin
patching script interpreter paths in /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3
checking for references to /build in /nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3...
/nix/store/jw5xx8dbi1113kzbqm3phkscxak4dkag-iwd-0.3

(sorry, didn't mean to edit anything above, I accidentally clicked on a checkbox)


Overhaul of the WASM backend

This PR is the companion to https://github.com/project-everest/hacl-star/pull/547 and does the following.

Allow for heap allocations using a custom malloc that does nothing but allocate
Dump the layout of structs to a JSON file to be consumed by api.js on the HACL side

I fixed up a few more tidbits to make tests pass, and I intend to merge this fairly soon. My next item is to make loading .wasm lazy (as opposed to loading them all in succession unconditionally) but that can happen as part of a separate PR. Thanks for the review!


[Feira de Santana] Cloud Expert / DevOps Engineer at AdMobilize

Job Description
We're looking for a very passionate developer, with high level skills in DevOps Engineering. If you like challenges and have a willingness to learn and share knowledge this job is for you. Those are the main responsibilities:

Lead Google Cloud Platform based architecture and deployment strategies for a wide variety of micro services and applications.
Continuously leverage modern application development tools and frameworks and identify key strategies for cost effective application deployment.
Continuously identify and implement key strategies for containerized application deployment on top of Kubernetes.
Lead and implement service mesh strategies that improve service reliability and security across the service ecosystem.
Automate and maintain application deployments .

Location
Feira de Santana - Bahia
Benefits

Flexible Schedule
Growing company, you'll grow with us.
Payment set in dollars

Requirements

5-7 years of experience deploying applications on Amazon Web Services / Google Cloud Platform.
2-4 years minimum experience working with Docker containers and Kubernetes.
2-4 years minimum experience working with CI systems such as Drone CI, Circle CI, Travis CI, Spinnaker.
Experience working with gRPC a plus.
Experience with Google IoT core is a plus.
Working knowledge in Agile methodology.
Strong leadership, communication and collaboration skills.
Professional level English knowledge.

Our company
We're global team of 40 determined to give everyone in the world access to building technology-driven solutions for challenges they and others face. We speak over 10 languages and we're revolutionising the way Out-Of-Home Advertising works through of digitalising the physical world and bringing to advertisers analytical data so they can take better decision and have the best return of investment.
How to apply
Please send a email with you resume to<EMAIL_ADDRESS>with the subject: Cloud Expert / DevOps Engineer

A vaga ainda está disponível?
Se não tiver, encerre a issue, por favor ;)
Obrigado!

Não me recordava que essa issue ainda estava aberta. Obrigado por lembrar e me notificar. Vou encerrar aqui. 👍


Move pre-commit from Travis to GitHub actions

Let's try this ?
This should give a faster feedback build for those who ensure that pre-commit is green before pushing.
And this will test that the merge bot works correctly with GitHub actions.

@sbidoul wanna release v1.1.0 now?

@Yajo If you like. At least we can test it by deploying it manually on some repos. I'd like to be sure that ocabot merge works with GitHub actions checks before pushing it to all repos.

We can release an alpha tag if you wish. You can update the repos you want with copier --prerelease update, while others won't be affected.

Ah, good to know.

There you have it: https://github.com/OCA/oca-addons-repo-template/releases/tag/v1.1.0a0

Do you know a v14 PR somewhere that is ready to merge ?

This one if we solve the SVG thing: https://github.com/OCA/partner-contact/pull/1024

@pedrobaeza unfortunately #25 is not done yet.

This one can be merged fixing the website in the manifest:
https://github.com/OCA/partner-contact/pull/1006
And this raises another problem: the hooks seems to not be working when the rebased branch fails.

@pedrobaeza I've applied the new template in OCA/partner-contact 14.0. You can rebase and ocabot merge.

And this raises another problem: the hooks seems to not be working when the rebased branch fails.

Note sure what you mean by that?

Interesting, GitHub actions does not support [ci skip] by default.

I mean that there's no message in the PR that the PR can't be merged, and the label "Bot is merging" is not removed.

https://github.community/t/github-actions-does-not-respect-skip-ci/17325/18

The failed message has worked in https://github.com/OCA/commission/pull/271#issuecomment-738843963, but not in the other.

Done a rebase of the PR in https://github.com/OCA/partner-contact/pull/1031 and pre-commit has failed not doing the change in the manifest website. Now I have fixed that. Should I trigger the merge command?

@pedrobaeza Yes please do the merge command. I'll check the bot log.

Travis has finished in the PR and no merging has done.

It went through correctly. I think it was waiting on the status of the makepot commit: https://github.com/OCA/partner-contact/commit/11392cbc3a807266cd48e5dd6a12aec54ccf7941

So looks good. I'd do #25 before deploying again to 14.0.

Great!


Bombs & Aircraft

Outline
Add bomber-type aircraft that will have different bomb weights. They can be dropped using the spacebar like on tanks and machine guns can be added to aircraft
This would greatly add advantages for fighters and it would be possible to conduct battles in the air
I would also like to see trains in the plugin .. You can put them on rails and go on a trip on them
How?
tried to describe above
Photos, videos, sketches (optional)
in original plugin Vehicles

Added, configurable in the config :)


REST API documentation not rendering

The Admin REST API docs (Swagger UI) are not rendering:

Environment
Browse: Firefox 50.x

It is something related to blocking trackers. When I allow cdn.rawgit.com the Swagger UI renders.


[#120368533] Add set_mtu job [WIP]

What
Story: Reduce MTU of VMs to 1500
Add a bosh addon job to set the MTU on the VMs.
How to review
Review with MTU PR on paas-cf
Note
Once this is merged, update MTU on paas-cf to point to merge commit id
Who can review
Anyone but @jimconner or me

Could you PR this against a gds_master branch rather than master?
ref: https://government-paas-team-manual.readthedocs.io/en/latest/team/working_practices/#creating-and-forking-repos

Closed in favour of https://github.com/alphagov/paas-os-conf-release/pull/2


update OWNER_ALIASES with respect to sig-cluster-lifecycle

Added a couple of separate aliases:

sig-cluster-lifecycle-kubeadm-approvers
sig-cluster-lifecycle-kubeadm-reviewers

At the same time update the list SIG participants.

refs: https://github.com/kubernetes/website/pull/8506
the discussion in the above thread suggested that sig-docs prefer not to give approval access to sig-cluster lifecycle. sadly, right now we don't have the mechanic to have separate /approve docs, /approve tech, which leaves us with approval in the hands of sig-docs and the maintaners of k/website.
if the above functionality is eventually added the sig-cluster-lifecycle-kubeadm-approvers alias will come into play.
until then, we can use these 2 aliases as reviewers in OWNER files in kubeadm related folders, as confirmed yesterday by @steveperry-53 . this will remove the need to have separate reviewers in each file.
@kubernetes/sig-docs-pr-reviews
@kubernetes/sig-cluster-lifecycle-pr-reviews
@zacharysarah @steveperry-53 @Bradamant3
please, wait on LGTM from @timothysc @fabriziopandini @luxas .
/hold

LGTM for docs. 👍

rebased to resolve conflicts.
ping @zacharysarah @steveperry-53 for /lgtm /approve.

/hold cancel

/approve
/lgtm


Bump Istio to v1.14.1

In Draft, depends on https://github.com/knative-sandbox/net-gateway-api/pull/329?w=1.

/hold
/lgtm

I wonder if the manifests in the third_party dir need additions. I will look at it tomorrow.

/test all

/lgtm

whoa flaky much? 😬
/retest

/hold cancel

/lgtm


Collection: Short-circuit rendering in Collection

Motivation
For a long time the largest performance impact for Masonry has been the time to render items (such as a Pin). While this is typically fast, minor differences in timings is noticable when frame/interaction boundaries are ~16ms (60fps).
Prior this PR, the approach has generally been "make the Pin faster to render" and that's yielded a lot of benefits. However, I believe that overlooks and obvious improvement.
Description
This PR introduces a memoized <Viewport> that short-circuits rendering child elements unless the set of visible items in the viewport changes.
Most scroll events don't actually change the items being rendered. <Collection> is wasting CPU time re-rendering items that have no actual change. This means each render is consistent, however it can also mean the CPU gets saturated quickly. By only rendering when an item enters/leaves the viewport, this change trades timing consitency with more CPU availability when rendering new items.
 ┌┐ ┌┐ ┌┐ ┌┐ ┌┐ ┌┐ ┌┐ ┌┐ ┌┐
 ││ ││ ││ ││ ││ ││ ││ ││ ││
 ││ ││ ││ ││ ││ ││ ││ ││ ││
 └┘ └┘ └┘ └┘ └┘ └┘ └┘ └┘ └┘

vs.
 ┌┐
 ││          ┌┐       ┌┐
 ││ ┌┐ ┌┐ ┌┐ ││ ┌┐ ┌┐ ││ ┌┐
 └┘ └┘ └┘ └┘ └┘ └┘ └┘ └┘ └┘

In addition, I've added a few memoizations of expensive calulations (figuring out the layout bounds + the actual windowing).
Followups
This PR doesn't introduce any changes to Collection's interface, but I believe it's worth experimenting with other changes such as:

Adding contains: strict (or similar) to all parts of Collection seeing as the layout is fixed. This would allow for removing layoutStyles.relative too.
Changing the layout type to be like: {[id: string]: Rect} instead of relying on array indexes as identity. This means it's easier to reuse prior layouts when computing new layouts and React will have more efficient diffs.
Having Masonry use Collection.

Test plan
Well... you're going to have to trust me on this one ;) Obviously CI passes but any performance claims requires real world testing that lives outside of the Gestalt project. Also now that Masonry doesn't use Collection (it should) it's harder to test. YMMV and please run an experiment or something.

I think it’s just because the snapshots are shallow and now there’s an intermediate component there. It might be a little while before I can fix but should be straightforward if you have time.Also, 👋On Oct 11, 2022, at 17:42, Ryan James @.***> wrote:
@dangerismycat commented on this pull request.
Hi Chris! 👋 Thanks for the PR — looks interesting. Are the snapshot failures on Collage expected? Are those items that are now outside of the viewport?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>


Update release info for 5.22.0

Look good to me! :)

Assuming we mentioned Zeebe user tasks in the previous release notes, this looks good to me, too!

@crobbins215 @nikku @lmbateman I updated the proposal based on the Forms new features. Please check the screenshot now.

Thank you for your suggestions. The "the" issue is fixed now.
I will change it to sentence case as in the example: https://github.com/bpmn-io/internal-docs/blob/main/releases/modeler/CAMUNDA_MODELER.md#whats-new-communication
It looks like we introduced title case in the previous release.

I updated the screenshot accordingly.


Relative date slicer in chrome

In chrome the relative date filter is not working correctly anymore.  A cannot switch between Years days or weeks or change the time period (this,last or next) In edge it is working.
Regards,
Ronald Mussche

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

ID: 753770c6-5424-85a6-1bd7-963e2c1c7e64
Version Independent ID: 09a4403f-9fbd-535a-4b45-83e89f380ba0
Content: Supported browsers for Power BI - Power BI
Content Source: powerbi-docs/service-browser-support.md
Service: powerbi
GitHub Login: @maggiesMSFT
Microsoft Alias: maggies

Hi @RonaldMussche
This is more of a product question than a doc question.  The fastest way to get an answer is to post this on community.powerbi.com.  The product team monitor the community forum very closely. If you this is a bug, then submit it on support.powerbi.com instead.
Take care,
Michele


Match children before and after interpolation

Proposed fix for #508.

I think this LGTM, pending another contrib's OK, and a rebase.

I'm not sure yet if this is a patch or a minor.

Probably better to be on a safe side by making it a minor version instead of a patch.

That's not really safer, since neither is supposed to have a breaking change :-)

Ah, that came out wrong. I was thinking of a versioning scenario that doesn't apply here and in the case where it does cause a breaking change accidentally by slipping through existing tests. Flip a coin or use your best judgement then. ;)

@ljharb if we define majors for enzyme as some tests that passed/failed with the previous version now will, respectively, fail/pass then this is a major. if not it's a patch I think

LGTM pending my minor comment being addressed

@nfcampos it's a minor if it's a new feature, but that suggests it's an intentional change which makes tests have different results, which makes it major. If tests were never supposed to have the current results and this fixes it, it's a patch. So, as you say - just very fuzzy :-/

LGTM after the changes, now we just need to decide on what kind of change this is

Has there been any consensus on whether to release this under minor, major or patch release?

@eronisko are you able to rebase this on top of latest master? it'd be great to get this in.

@ljharb done


[BUG] select command works incorrectly

Describe the bug
fyCursor.select() method throws a "no such column: {column_name}FROM" error if deleting column_name column (likely it just doesn't insert a whitespace between column_name and FROM keyword).
To Reproduce
Steps to reproduce the behavior:

Try to launch any program containing fyCursor.select().
Get your running program to the line with this method.

Expected behavior
The select() method should've selected a value from the database and return it. So, select("column", "table") should've executed the "SELECT column FROM table" query but instead executed "SELECT columnFROM table" (without a whitespace between column name and FROM).
Desktop (please complete the following information):

OS: Windows 10
Python Version [Python 3.11.4]
FyCursor Version [<IP_ADDRESS>]

Additional context
The problem appeared after one of the latest updates of fyCursor. FyCursor 0.1.3 definitely didn't have that problem.

fixed in commit #8fdb8b3