This request has been blocked; the content must be served over HTTPS.

The page at 'https://domain.com/auth/callback?code=&state=' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://domain.com/auth/oauth2/default-client'. This request has been blocked; the content must be served over HTTPS.

Repository moved and archived.
If problem is still there please open an issue on https://github.com/cortezaproject/corteza


feat(sample): support largest-triangle-three-buckets algo

Brief Information
This pull request is in the type of:

[ ] bug fixing
[x] new feature
[ ] others

What does this PR do?

Support largest-triangle-three-buckets sampling algorithm.
Fixed issues

#9403
Usage
Are there any API changes?

[x] The API has been changed.

sampling: 'lttb'
Related test cases or examples to use the new APIs
{
  type: 'line',
  sampling: 'lttb',
  data: data
}

See test/line-large.html line 101.
Others
Merging options

[ ] Please squash the commits into a single one when merge.

Other information

Thanks a lot for the work! Do you mind changing the pull request target to the next branch

Thanks a lot for the work! Do you mind changing the pull request target to the next branch

@pissang  OK, I will open a new pr.


Updating metadata songs

Hey,
I'm a happy user of your Google-Play-Music-Desktop-Player on a windows 10 PC. It's a wonderful tool by using Google play Music.
I'm missing one function. Now it is able to update the tag information one by one by accepting the suggested information and  to save the new tag information.
With a lot of songs there is al lot of work to do if you want to update the metadata of several songs. It would be great if it is able to automatically update the information of all the songs or a selection of a number of songs.
Maybe it is possible to program this function on your program. It would be great,
Greetings,
Bert Krale

OS:
Issue Descriptions:
Steps to Reproduce:

Unfortunately this wouldn't be easy to implement. The data for all of that is abstracted far away into Google's code, and the Polymer (google's UI lib) doesn't make it any easier to do things like this. This is something we probably won't implement into this project because of the amount of time it would take to implement, if it's even feasible.


x86_64 Dockerfile Fails to Build Arm Compute Library

...
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
 });
  ^
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’
src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.cpp:71:2: error: converting to ‘const std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allocator<unsigned int> > >’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&) [with _T1 = std::__cxx11::basic_string<char>; _T2 = std::vector<unsigned int>]’

...
scons: *** [build/src/gpu/cl/kernels/ClGemmMatrixMultiplyNativeKernel.o] Error 1

@james-conroy-arm ,
The patch on Gerrit builds successfully. I am using the Dockerfile for cross compilation.
Thanks!

Great to hear, no bother at all.
James


chore(deployment): separator causing api ref docs corruption (#1056)

Backport
This will backport the following commits from k8s-24/main to k8s-23/main:

chore(deployment): separator causing api ref docs corruption (#1056)

Questions ?
Please refer to the Backport tool documentation

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1084

Questions ?
Please refer to the Backport tool documentation


Serve kpow under subpath

Hello, I'm deploying kpow on my kubernetes cluster like this:
image:
  repository: factorhouse/kpow-ce
  tag: 91.4.1
env:
  LICENSE_ID: "XXXXXXXXXXXXXXXXXXXXXXX"
  LICENSE_CODE: "KPOW_COMMUNITY"
  LICENSEE: "XXXX"
  LICENSE_EXPIRY: "2024-05-31"
  LICENSE_SIGNATURE: "XXXXXXXXXXXXXXXXXXXXXXX"
  BOOTSTRAP: "http://cluster-kafka-bootstrap.kafka:9092"
  SECURITY_PROTOCOL: "PLAINTEXT"
  SASL_MECHANISM: "PLAIN"
  LICENSE_CREDITS: "1"

  SCHEMA_REGISTRY_URL: "http://schema-registry.kafka:8081"
  SCHEMA_REGISTRY_NAME: "schema-registry"

And if I port-forward the kpow pod, I can access the UI just fine.
However I want to present this under an api-gateway, so that people can access kpow under https://my-api-gateway.com/kpow but I do not see how I can make this possible.
Is this a feature that currently exists?

Hi @miguel-cardoso-mindera - we have documentation about how to configure a k8s ingress for your exact scenario.
https://docs.kpow.io/installation/deployment-notes/#k8s-ingress-configuration
This might be useful, but I'll have to investigate if our helm charts will need any code changes to support the above configuration.

Hey @wavejumper, I'm on GKE so an ingress would create a LoadBalancer which is not desirable. So I tried the nginx config like this:
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-conf
  namespace: kafka
data:
  nginx.conf: |
    user nginx;
    worker_processes  3;
    error_log  /var/log/nginx/error.log;
    events {
      worker_connections  10240;
    }
    http {
      server {
        listen       80;
        server_name  localhost;

        location /kpow/  {
            proxy_pass http://kpow.kafka:3000/;
            rewrite /kpow/(.*) /$1 break;
            proxy_redirect http://kpow.kafka:3000/ /kpow/;

            proxy_http_version 1.1;

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_cache_bypass $http_upgrade;
            proxy_headers_hash_max_size 512;
            proxy_headers_hash_bucket_size 128;
          }
      }
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: kafka
spec:
  replicas: 1
  selector:
    matchLabels:
       app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /etc/nginx # mount nginx-conf volumn to /etc/nginx
          readOnly: true
          name: nginx-conf
        - mountPath: /var/log/nginx
          name: log
      volumes:
      - name: nginx-conf
        configMap:
          name: nginx-conf # place ConfigMap `nginx-conf` on /etc/nginx
          items:
            - key: nginx.conf
              path: nginx.conf
      - name: log
        emptyDir: {}
---
kind: Service
apiVersion: v1
metadata:
  name: kpow-outside
  namespace: kafka
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 30027
    nodePort: 30027
    targetPort: 80

However when connecting I see the page title gets loaded correctly but the page content is empty

Hi @miguel-cardoso-mindera, it may be that your websocket upgrade is not succeeding, to debug, can you:

Click on one of the chsk entries in your network tab, then click Headers and show us the output, particularly I'm interested in seeing the request URL and the response headers, but all the info might help.

Then click on Messages, do you see something similar to:

These interactions are taken from https://demo.kpow.io and show a successful websocket handshake by Kpow.
When running with a reverse proxy the cause of any UI issues is often this websocket upgrade being successful through the proxy, you additionally have a subpath proxy applied, which complicates matters a bit more.
As a starter, I'd suggest running Kpow with the reverse proxy withouh a subpath rewrite to see if that succeeds, that also narrows down the problem somewhat.

Also just to add, these configurations fall outside the scope of our helm charts, the charts themselves just run Kpow in a pod with the UI on port 3000 - wiring up ingress differs per user and we don't offer an out-of-the-box chart config for that.

Thanks @miguel-cardoso-mindera.
Are there any WARN/ERROR logs in the Kpow application logs? It's possible we're logging a message send failure in Kpow itself, it would be useful to see them if so.
One thing that I notice, in your response headers you are missing this header:
Sec-Websocket-Extensions: permessage-deflate
That header is in the example I provided from our demo environment, it's pretty important because it tells the browser to decompress each websocket message that it receives.
I think it's possible nginx (or something else between you and Kpow) is stripping that from the response headers. That could cause the lack of messages, as they browser wont know to decompress them.
Similar to this: https://stackoverflow.com/questions/29106033/nginx-not-passing-headers-to-websocket-endpoint
I would expect them to remain in the websocket response, it could be a nginx version thing I guess, you might try adding this to your configuration:
        proxy_set_header Sec-WebSocket-Protocol $http_sec_websocket_protocol;
        proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
        proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
        proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;

I suspect you might find some logs related that either in Kpow or in nginx itself.

hey @d-t-w
Kpow does not have relevant logs I think, I'll paste an excerpt here just in case:
│ 16:00:30.108 INFO  [OperatrScheduler_Worker-12] operatr.compute.v3.materialization – 594a0086-0801-45f8-b165-5fe31269ea0f materializing [376] [:schema "confluent1-1bbd90dc73ac201b559b"]                                  │
│ 16:00:30.110 INFO  [OperatrScheduler_Worker-12] operatr.compute.v3.materialization – 594a0086-0801-45f8-b165-5fe31269ea0f materializing [375] [:schema "confluent1-1bbd90dc73ac201b559b"] :kafka/subject __kpow_global     │
│ 16:00:30.110 INFO  [OperatrScheduler_Worker-12] operatr.compute.v3.materialization – 594a0086-0801-45f8-b165-5fe31269ea0f materializing [1] [:schema "confluent1-1bbd90dc73ac201b559b"] :kafka/schema __kpow_global        │
│ 16:00:30.110 INFO  [OperatrScheduler_Worker-12] operatr.observe.schema – confluent1-1bbd90dc73ac201b559b: [376] :observe/schema telemetry snapshots captured in 105 / 5 ms                                                 │
│ 16:00:32.373 INFO  [pool-3-thread-5] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:00:38.086 INFO  [pool-3-thread-7] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:00:43.729 INFO  [pool-3-thread-1] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:00:49.449 INFO  [pool-3-thread-3] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:00:55.164 INFO  [pool-3-thread-5] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:01:00.852 INFO  [pool-3-thread-7] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:01:05.442 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c materialize [2867] {:id "JHK80z1ERWOpMx6yk0PVrA", :domain :cluster, :observation :observe/kafka- │
│ 16:01:05.608 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c produce [634] :cluster JHK80z1ERWOpMx6yk0PVrA simple metrics                                     │
│ 16:01:05.654 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c produce [1355] :cluster JHK80z1ERWOpMx6yk0PVrA simple metrics                                    │
│ 16:01:05.654 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c materializing [2867] [:cluster "JHK80z1ERWOpMx6yk0PVrA"]                                         │
│ 16:01:05.710 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c materializing [2500] [:cluster "JHK80z1ERWOpMx6yk0PVrA"] :kafka/topic-summary __kpow_global      │
│ 16:01:06.021 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c materializing [676] [:cluster "JHK80z1ERWOpMx6yk0PVrA"] :kafka/group-summary __kpow_global       │
│ 16:01:06.135 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c materializing [676] [:cluster "JHK80z1ERWOpMx6yk0PVrA"] :kafka/simple-consumer-summary __kpow_gl │
│ 16:01:06.135 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c materializing [1] [:cluster "JHK80z1ERWOpMx6yk0PVrA"] :kafka/cluster __kpow_global               │
│ 16:01:06.157 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c produce [646] [:cluster "JHK80z1ERWOpMx6yk0PVrA" :kafka/topic-summary] ["__kpow_global"] materia │
│ 16:01:06.158 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c produce [2] [:cluster "JHK80z1ERWOpMx6yk0PVrA" :kafka/simple-consumer-summary] ["__kpow_global"] │
│ 16:01:06.177 INFO  [OperatrScheduler_Worker-14] operatr.compute.v3.materialization – 67c96ffa-23b8-4a12-95ff-f00733349b8c produce [672] [:cluster "JHK80z1ERWOpMx6yk0PVrA" :kafka/group-summary] ["__kpow_global"] materia │
│ 16:01:06.178 INFO  [OperatrScheduler_Worker-14] operatr.observe.kafka – cluster JHK80z1ERWOpMx6yk0PVrA: [2867] :observe/kafka telemetry snapshots captured in 400 / 778 ms                                                 │
│ 16:01:06.726 INFO  [pool-3-thread-1] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:01:12.706 INFO  [pool-3-thread-3] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3                                                                                │
│ 16:01:18.720 INFO  [pool-3-thread-5] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3

As for nginx:
│ <IP_ADDRESS> - - [28/Jun/2023:16:00:43 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:00:49 [info] 21#21: *47 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:00:49 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:00:55 [info] 21#21: *49 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:00:55 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:00 [info] 21#21: *51 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:00 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:06 [info] 21#21: *53 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:06 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:12 [info] 21#21: *55 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:12 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:18 [info] 21#21: *57 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:18 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:24 [info] 21#21: *59 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=932 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:24 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 71 │
│ 2023/06/28 16:01:30 [info] 21#21: *61 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:30 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:36 [info] 21#21: *63 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:36 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:42 [info] 21#21: *65 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:42 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:48 [info] 21#21: *67 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:48 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:01:54 [info] 21#21: *69 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:01:54 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:02:00 [info] 22#22: *71 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=932 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:02:00 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 71 │
│ 2023/06/28 16:02:06 [info] 22#22: *73 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:02:06 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:02:12 [info] 22#22: *75 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:02:12 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:02:18 [info] 22#22: *77 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:02:18 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff-62a03cae8be3&csrf-token=BPRi5ejnm17XYlvd9VNRgJpzn4M0JgJ1L4HWONOb1rQw%2FpUpoWeA9LySDmR8dr4oj8VIdNTLTQrPkRa0 HTTP/1.1" 101 7 │
│ 2023/06/28 16:02:24 [info] 22#22: *79 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │
│ <IP_ADDRESS> - - [28/Jun/2023:16:02:24 +0000] "GET /kpow/chsk?client-id=9327dd85-fff2-4c71-b9ff

Regarding the websocket headers, I did found some in the Request Headers:

Hey @miguel-cardoso-mindera,
We can see in the Kpow logs that a new WS connection is attempted:
16:01:06.726 INFO  [pool-3-thread-1] operatr.server.query-handlers – New WS connection for client-id 9327dd85-fff2-4c71-b9ff-62a03cae8be3

Then from the nginx logs that the connection is dropped by client, your browser in this case I think
2023/06/28 16:00:49 [info] 21#21: *47 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: <IP_ADDRESS>, server: XXXXXXX.com, request: "GET /kpow/chsk?client-id=93 │

You are missing headers in the response, did you try setting the proxy_set_headers fields in your nginx? It's possible some other part of your network insfrastructure is stripping/adding headers or disallowing websocket traffic.

I'll close this ticket now because:

Kpow is starting and running correctly, with the UI served on the pod on port 3000
When you port-forward to the pod you can access the Kpow UI fine
There is some network / ingress issue causing the connection reset by peer seen in the nginx logs
This becomes a general "How do I allow access to a websocket UI in GCP/GKE" question

At a guess there will be some further networking required for you to configure external access to a kube pod in GKE that allows websocket connects beyond simply configuring nginx. I see you are trying to avoid the load balancer for GKE ingress but also websocket support is explicitly listed as pretty much the first item in their docs:
https://cloud.google.com/kubernetes-engine/docs/concepts/ingress-xlb

If you need further support on this one fire an email to<EMAIL_ADDRESS>


Style: Format src/redux

Codecov Report

Merging #33 (da13b2b) into main (06a36db) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #33   +/-   ##
=======================================
  Coverage   99.69%   99.69%
=======================================
  Files          21       21
  Lines         324      324
  Branches       35       35
=======================================
  Hits          323      323
  Misses          1        1

Flag
Coverage Δ

root
99.69% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/redux/findValue.ts
100.00% <ø> (ø)

src/redux/module.ts
100.00% <ø> (ø)

src/redux/spreadHelpers.ts
100.00% <ø> (ø)

Continue to review full report at Codecov.

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


Create integration tests without HTTP requests to server

Try to use the existing Ruby specifications.

This is done using Betamax.
Some known issues:

Betamax is not 100% compatible with VCR for which cassettes already exist in the currencycloud-ruby project. Most differences can be be fixed with a few search-and-replace actions.
I haven't yet been able to record new tapes/cassettes with Betamax (just use existing ones).
Some minor issues are marked with TODO in the code.


Would like to specify which materials should be on or off by default

cqid: VisIt00001981cqsubmitter: Hank Childscqsubmitdate: 01/15/02 Items from DDTS record HYPer03583User would like to be able to write out a list of bools that capturewhether materials should be on or off by default. For example, air is something that people typically don't want to lookat, but they have to apply material selection to take it out. User would like to write out a list of bools that postprocessors(graphics tools) can apply for any type of plot.
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 303
Status: Pending
Project: VisIt
Tracker: Feature
Priority: Normal
Subject: Would like to specify which materials should be on or off by default
Assigned to: -
Category: -
Target version: -
Author: Mark Miller
Start:
Due date:
% Done: 0%
Estimated time:
Created: 08/04/2010 01:26 pm
Updated:
Likelihood:
Severity:
Found in version:
Impact: 2 - Low
Expected Use: 3 - Occasional
OS: All
Support Group: DOE/ASC
Description:
cqid: VisIt00001981cqsubmitter: Hank Childscqsubmitdate: 01/15/02 Items from DDTS record HYPer03583User would like to be able to write out a list of bools that capturewhether materials should be on or off by default. For example, air is something that people typically don't want to lookat, but they have to apply material selection to take it out. User would like to write out a list of bools that postprocessors(graphics tools) can apply for any type of plot.
Comments:

closing, would be convenient in some cases, but would also cause confusion in others


compiled sass file with Koala, not working properly!

@Payam93 We are going to need full details of how you have everything setup etc in order to be able to help. Please can you provide more information?


Simpler, less chatty Makefile

This fixes several bugs and shortcomings in the Makefile, like the clean target wasn't working, the rootfs target didn't work twice in a row, and xbps-install is/was prone to fail to do its job, see https://github.com/void-linux/xbps/issues/166.

Hi, thanks for your help. I have simplified the Makefile to just 44 lines.


Add university email domain for Halla University

A year ago, I received student authorization in the following email format.
@hu.halla.co.kr
When I tried to renew the education pack this time, there was no information about the university I attended.

Halla University homepage
Pages of Computer Science, Halla University
Computer Science Curriculum Guide Page

@jang95 I have to close this request without merging, because you requested to add a non-existent domain to this repository: ;; connection timed out; no servers could be reached Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!

@jang95 Thank you for your patience while waiting for a review and processing your request. Pull request merged.


observation with lat/lon of 0,0 is being mapped to null island on related taxon details screen

this observation https://www.inaturalist.org/observations/2917998 shows "missing location" on the obs detail page, but is also getting mapped to null island on the taxon page for downy woodpecker here https://www.inaturalist.org/taxa/792988-Dryobates-pubescens.
To Reproduce
Steps to reproduce the behavior:

Go to https://www.inaturalist.org/taxa/792988-Dryobates-pubescens
Look at taxon map
See that it includes a presence on null island

Expected behavior
In my opinion, observations with locations at null island are bad data and shouldn't be mapped on the taxon details screen.
Screenshots

Context

OS: MacOS
Browser: Safari
Version: 16.3

Additional context
Ken-ichi says: "looks like it actually has lat/lon of 0,0, so i think this is a bug with 0 evaluating as false"

When we talked about this I forgot that we actually have a validation to prevent coordinates on null island, so I think this specific observation just predates that and we never did the cleanup.
IMO, todos here are

[ ] Ensure there are no obs made after 9d0dc64f42ec32ede670b7361fb8c33fbe54b34c that are on null island and if there are, file a new issue to fix that bug
[ ] Update all 0,0 observations to be null,null

someday I want to take a boat to 0,0 and make a bunch of genuine content on a variety of apps & sites, just to mess with everyone.

I don't think we have obs at 0,0 any longer?


inferred js projects do not get maxNodeModuleJsDepth set

mkdir test
cd test
npm init --y
npm install express3-handlebars
echo var exphbs = require('express3-handlebars'); > file.js
code .

now hover over exphbs, it shows any.
create an empty jsconfig.json and reload the project, hover over it is a function.
the issue seems to be that we do not set the maxNodeModuleJsDepthfor inferred projects.

We made it zero internationally. Consider users with allowjs who have a few JS files they want to transpile. If the default is 2 they suddenly get errors from their jquery package in npm-modules for instance. We have it set to 2 for jsconfig, but not offered projects.


need to delete this branch

Docs Build status updates of commit 885c21d:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch azure24 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Server is going down

Hello everyone, I ran into a problem using Ratchet as a websocket on a project. The project has clients in the form of users, as well as in the form of units with which users interact through the Central Server, all this communication is implemented using a websocket.
So, the problem: the server completely randomly starts to fall off (namely, the units with which users interact), the web socket lags and connecting to it via websocat takes 25+ seconds, which is a problem for units in getting a handshake with the server. Also, our database subsequently begins to be overloaded due to the large number of requests (I’m not sure that the websocket has anything to do with this, but rather my poor database setup). Also, one of the interesting phenomena is that after a drop, units begin to behave strangely, one drops, another connects, and so on in a circle, the only thing that helps us is rebooting the entire server, and even this does not always work, we have to reboot twice. When these problems are absent, if you reboot the machine, the units are connected back in a minute (about 100 units), and during the fall it doesn’t even take us 15 minutes to get everything back up. Below I attach a screenshot of what it looks like during the “fall”.

Thanks in advance everyone for the answers.
Info:
CentOS 7
php 7.4
mysql

I have the very same issue in production. I am experiencing it for over 6 months. After some random amount of time server performance degradation is noticeable with exactly same description. After throughly verifying my DB setup and server parameters during this performance drop, I can confirm that the issue is in the web socket layer itself. Another noticeable fact is that it happens randomly, not even on the peal load.
I have found similar issues with people experiencing same. For instance https://github.com/ratchetphp/Ratchet/issues/328. But there is not solution provided, just assumptions.
I really hope that contributors will react on this thread and give some advices. All these is making use of Ratchet really frustrating...

Have you tried a simple service deamon. We are using this for years now and no issues whatever. This is running on unbuntu 22.04 lts
[Unit]
#service description
Description=The ratchet socket server
#start at level 3, after booting the network target
After=network.target
[Service]
Type=simple
#what do we want to start
ExecStart=/usr/bin/php /path/to/socketserver/SocketServer.php
TimeoutStartSec=0
#always restart on failure
Restart=always
#to avoid to much stress on the server only restart every 5 seconds
RestartSec=5
[Install]
WantedBy=multi-user.target


protein-translation: FromCodon tests force less idiomatic solutions.

Please bear with me while I explain, as I'm still quite new to golang.
When solving protein-translation, my inclination was to use an error to signal that FromCodon had hit a stop codon (in the same way that io uses an error to signal EOF. If there were no tests for FromCodon, I could do that (or not, depending on my understanding of the language). But because there are tests for FromCodon that don’t collect (or ignore) error responses, I’m forced to treat STOP like any other response, which produces what feels like far less idiomatic code. (The effect cascades into how I write FromRNA as well.)
I asked about this on slack and @kytrinyx said "It would also provides an opportunity to implement something in the style of os.IsNotExist(err)." I looked up the function. Yup! Exactly! I was all set to stretch my wings and fly and ... grounded 😝

I think this is a cool idea! I think the best way around this is to just call out to a helper function of the same name. Usually when I'm creating packages I'll have a publicly exported version of the function, in this case FromCodon but just return the value from my helper version that obfustcates the actual content (just like your example doc ref -- https://golang.org/src/os/error.go?s=2154:2185#L65).
In this case, you can create the custom err value yourself and then just do something like this...
type customError error
var MyCustomError customError = errors.New("custom error")

func FromCodon(input string) string {
    str, err := fromCodon(input);
    if err != nil && isMyErr(err) {
        // do something here like return empty or STOP
    }
    return str
}

func fromCodon(input string) (string, error) {
    // do your stuff here and return string, error at the end
}

func isMyErr(err error) bool {
    switch err.(type) {
    case customError:
        return true
    }
    return false
}

And I could be completely incorrect too :D

It's a cool workaround, but a better solution would be to fix the implementation of the problem in the track.
Hey, golang track maintainers, I'm gonna take a pass at doing just that...

Fixed by #1134


CCMenuItemSprite images not visible (w/ fix)

Selected and disabled image not being displayed.  Visible flags not being set. See code below for my fix.  Maybe there's a better way though.
@Override
public void draw(GL10 gl) {
	if (isEnabled_) {
		if (isSelected_) {
			normalImage_.setVisible(false);
			selectedImage_.setVisible(true);
			selectedImage_.draw(gl);
		} else {
			normalImage_.setVisible(true);
			selectedImage_.setVisible(false);
			normalImage_.draw(gl);
		}
	} else {
		if (disabledImage_ != null) {
			normalImage_.setVisible(false);
			disabledImage_.setVisible(true);
			disabledImage_.draw(gl);

			// disabled image was not provided
		} else {
			normalImage_.setVisible(true);
			disabledImage_.setVisible(false);
			normalImage_.draw(gl);
		}
	}
}

In CCNode's visit, the visible flags has been taken into consideration,
isn't it?
for the draw function, it doesn't need to set the visibility, it just show
the visible objects..
2011/11/3 Kyle <
<EMAIL_ADDRESS>
Selected and disabled image not being displayed.  Visible flags not being
set. See code below for my fix.  Maybe there's a better way though.
   @Override
   public void draw(GL10 gl) {
           if (isEnabled_) {
                   if (isSelected_) {
                           normalImage_.setVisible(false);
                           selectedImage_.setVisible(true);
                           selectedImage_.draw(gl);
                   } else {
                           normalImage_.setVisible(true);
                           selectedImage_.setVisible(false);
                           normalImage_.draw(gl);
                   }
           } else {
                   if (disabledImage_ != null) {
                           normalImage_.setVisible(false);
                           disabledImage_.setVisible(true);
                           disabledImage_.draw(gl);

                           // disabled image was not provided
                   } else {
                           normalImage_.setVisible(true);
                           disabledImage_.setVisible(false);
                           normalImage_.draw(gl);
                   }
           }
   }

--
Reply to this email directly or view it on GitHub:
https://github.com/ZhouWeikuan/cocos2d/issues/46

--
This is Zhou, Weikuan(Ϊ)

Thanks for the (real) fix! =)


Impact in ALT when an existing application gets upgraded to new version

Note : Based on further discussion , milestone for this issue shall be decided.

ALT stores operation-clients and operation-servers of all the applications to,
•	establish connection between an operation-server to multiple operation-clients across applications.
•	provide correct uuids of operation-clients and operation-servers to OKM to set the operations keys for secured communication.
Assumption :
Not changing the operation-client uuids based when there is a change in the application-name and release-number.
Context :
(Taking EALT application and its “record-service-request” service for illustration purpose)
In ALT , the link between EATL “record-service-request” and its client looks as below ,

When EATL upgrades from version 4.0.0 to version 5.0.0 ,

RO will send regard-application to all subscription for “notify-approvals” including ALT and ALT creates a control-construct instance based on the responseBody of “redirect-topology-change-information”.
RO sends update-client to all application which updates the http-client-configuration/release-number but not the uuids.
RO sends disregard-application to all applications which removes the details of EATL version 4.0.0. Also, ALT removes the control-construct instance of eatl-4-0-0 from the list of CCs. But still , links will hold the same information as the above picture.

Consequence :
When OKM seeks for the end point details from ALT using the service /v1/list-end-points-of-link with the information of the link-uuid alt-4-0-0-op-link-3004 ,
•	ALT cannot be able to provide information for the OUTPUT “eatl-4-0-0-op-s-is-004” as the corresponding control-construct doesn’t exists. Even if the control-construct information exists , we are not pointing to a correct instance.
•	All the operation-clients will be updated with the latest operationKey.
•	But the new operation-server will not receive the latest operationKey.
Workaround :
Create new links for between the new application version to all the operation-clients.
Next step :
Finding a logic in the server-side code to not lose the already approved links.

Based on above example:
....
When EATL upgrades from version 4.0.0 to version 5.0.0 ,

RO will send regard-application to all subscription for “notify-approvals” including ALT and ...
a) ... ALT creates a control-construct for communicating with EATL version 5.0.0 in its CONFIG
b) ... ALT sends EaTL5.0.0://redirect-topology-change-information
c) ... ALT creates a control-construct for EATL version 5.0.0 based on the responseBody of “redirect-topology-change-information” in its application data
d) ... ALT creates a Link for every OperationServer at the newly created application in its application data
RO sends update-client to all applications, which results in ...
a) ... all "conventional" application to update the http-client-configuration/release-number, but not the uuids
b) ... ALT also to update the http-client-configuration/release-number (but not the UUIDs) in its CONFIG data, but not in its application data
Every update of an HttpClient or TcpClient either according to 2a) or 2b) results in...
a) ... the respective application calling ALT://v1/update-ltp
b) (... no calls to ALT://v1/update-fc or ALT://v1/update-fc-port, because, UUIDs of HttpClient and TcpClient are invariant and modifications of the FC or FcPort are not required)
Whenever calling ALT://v1/update-ltp is communicating new application name or release number of an HttpClient, ALT has to
a) ... update the corresponding values in the HttpClient in its application data
b) ... has to search through existing Links for UUIDs of the OperationClients, which are ClientLtp to the updated HttpClient
c) ... found OperationClient-UUIDs have to be ...

... deleted from the existing Links
... added to the newly created Links (see step 1d). Correct Link to be identified by searching Links for correct OperationServer-UUID. OperationServer-UUID to be found by searching for application name and release number in ServingLtp of OperationServer with same operation name as found in OperationClient with OperationClient-UUIDs .

RO sends disregard-application to all applications
a) ... all applications search for HttpClients with application name and release number and remove all associated objects like TcpClients, OperationClients, FC, FcPorts etc. . Presumably, they won't find anything to delete, since existing HttpClient has been updated by new application name and release number before.
b) ... same for ALT search its CONFIG
c) ... ALT searching application data for HttpServer with application name and release number and removes all associated objects like TcpServers, OperationServers, FCs, FcPorts etc.  and Links.

1 | RO will send regard-application   to all subscription for “notify-approvals” including ALT and … |
-- | -- | --
  | a)   ... ALT creates HttpClients, TcpClients and OperationClients for   communicating with EATL version 5.0.0 in its CONFIG | Yes
  | b)   ... ALT sends EaTL5.0.0://redirect-topology-change-information | Yes
  | c)   ... ALT creates a control-construct for EATL version 5.0.0 based on the   responseBody of EaTL5.0.0://redirect-topology-change-information in   its application data | Yes
  | d)   ... ALT creates a Link for every OperationServer at the newly created EATL   version 5.0.0 in its application data | Current implementation of ALT   server side code is not like so. Links will be created on demand based on the   service /v1/add-operation-client-to-link.     If a link is not available for an operation-server , then a link instance   will be created with OUTPUT link-port for the operation-server. We can   include the logic mentioned in 1.d in the implementation.     Example :      link {     OUTPUT : "op-s of EATL version 4.0.0 =   "v1/record-service-request"",     INPUT : "op-c of EATL version 4.0.0 in RO =   "v1/record-service-request"",     INPUT : "op-c of EATL version 4.0.0 in TAR =   "v1/record-service-request""     ...     }          link {     OUTPUT : "op-s of EATL version 5.0.0 =   "v1/record-service-request""     }
  |   |
  | Before point#2 , i.e the   /v1/update-client , there is one more flow is there in case of EATL. New   version of EATL 5.0.0 will send   "/v1/redirect-service-request-information" to all application. But   this will fail because still there is no approval available already | But by using update client this information shall be updated.
  |   |
2 | RO sends /v1/update-client to   all applications, which results in … |
  | a) ... all applications, which   do not yet comprise an EATL version 5.0.0 HttpClient to update the HttpClient   from EATL version 4.0.0 to 5.0.0, but not its UUID | yes
  | b) ... ALT not to update the   HttpClient from EATL version 4.0.0 to 5.0.0, because it already created an   EATL version 5.0.0 HttpClient after receiving /v1/regard-application | yes
  | c) ... ALT also not to update   any content in its application data | yes
  |   |
3 | Every update of an existing   HttpClient or TcpClient caused by 2a) in any other application results in... |
  | a) ... the respective   application calling ALT://v1/update-ltp | yes
  | b) ... no calls to   ALT://v1/update-fc or ALT://v1/update-fc-port, because, UUIDs of HttpClient   and TcpClient are invariant and FCs and FcPorts don't get modified | yes
  |   |
4 | Whenever ALT   receiving ALT://v1/update-ltp with new application name or release   number of an HttpClient, ALT has to |
  | a) ... update the corresponding   values in the HttpClient in its application data | yes
  | b) ... has to search through   existing Links for UUIDs of the OperationClients, which are ClientLtp to the   updated HttpClient |
  | c) ... found   OperationClient-UUIDs have to be ... |
  | o	... deleted from the existing   Links |
  | o	... added to the newly created   Links (see step 1d). |
  | Correct Link to be identified by   searching Links for correct OperationServer-UUID. | yes

1 | RO will send regard-application   to all subscription for “notify-approvals” including ALT and … |
-- | -- | --
  | a)   ... ALT creates HttpClients, TcpClients and OperationClients for   communicating with EATL version 5.0.0 in its CONFIG | Yes
  | b)   ... ALT sends EaTL5.0.0://redirect-topology-change-information | Yes
  | c)   ... ALT creates a control-construct for EATL version 5.0.0 based on the   responseBody of EaTL5.0.0://redirect-topology-change-information in   its application data | Yes
  | d)   ... ALT creates a Link for every OperationServer at the newly created EATL   version 5.0.0 in its application data | Current implementation of ALT   server side code is not like so. Links will be created on demand based on the   service /v1/add-operation-client-to-link.     If a link is not available for an operation-server , then a link instance   will be created with OUTPUT link-port for the operation-server. We can   include the logic mentioned in 1.d in the implementation.     Example :      link {     OUTPUT : "op-s of EATL version 4.0.0 =   "v1/record-service-request"",     INPUT : "op-c of EATL version 4.0.0 in RO =   "v1/record-service-request"",     INPUT : "op-c of EATL version 4.0.0 in TAR =   "v1/record-service-request""     ...     }          link {     OUTPUT : "op-s of EATL version 5.0.0 =   "v1/record-service-request""     }
  |   |
  | Before point#2 , i.e the   /v1/update-client , there is one more flow is there in case of EATL. New   version of EATL 5.0.0 will send   "/v1/redirect-service-request-information" to all application. But   this will fail because still there is no approval available already | But by using update client this information shall be updated.
  |   |
2 | RO sends /v1/update-client to   all applications, which results in … |
  | a) ... all applications, which   do not yet comprise an EATL version 5.0.0 HttpClient to update the HttpClient   from EATL version 4.0.0 to 5.0.0, but not its UUID | yes
  | b) ... ALT not to update the   HttpClient from EATL version 4.0.0 to 5.0.0, because it already created an   EATL version 5.0.0 HttpClient after receiving /v1/regard-application | yes
  | c) ... ALT also not to update   any content in its application data | yes
  |   |
3 | Every update of an existing   HttpClient or TcpClient caused by 2a) in any other application results in... |
  | a) ... the respective   application calling ALT://v1/update-ltp | yes
  | b) ... no calls to   ALT://v1/update-fc or ALT://v1/update-fc-port, because, UUIDs of HttpClient   and TcpClient are invariant and FCs and FcPorts don't get modified | yes
  |   |
4 | Whenever ALT   receiving ALT://v1/update-ltp with new application name or release   number of an HttpClient, ALT has to |
  | a) ... update the corresponding   values in the HttpClient in its application data | yes
  | b) ... has to search through   existing Links for UUIDs of the OperationClients, which are ClientLtp to the   updated HttpClient |
  | c) ... found   OperationClient-UUIDs have to be ... |
  | o	... deleted from the existing   Links |
  | o	... added to the newly created   Links (see step 1d). |
  | Correct Link to be identified by   searching Links for correct OperationServer-UUID. | yes

Aim : To transfer the operationClientUUIDs of a link from a previous release to a new release of an application (or) from a deprecated service name to a new service name.
In the provided comment, the main logic is in the point#4 and #5. And 1.d and 6.b makes sure to have enough data to support the logic in point#4 and #5.
Following scenarios are considered to validate this logic :

Existing application release number gets upgraded

Consuming applications receive the client upgrade via regard-application and update-client
Consuming applications that receives the client upgrade via only update-client

Existing application release number and operation-servers gets upgraded

Consuming applications that receives the operation-client upgrade via update-operation-client
Consuming applications that receives the operation-client upgrade via update-operation-client and subscription notification

Application that went down in port and container brought up in another port (no change required in links)

**Not validated the following scenario in detail: **
1. Application name is upgraded (when checked in high level, this will work. Didn’t check end to end as this is a rare scenario)
The mentioned logic will work and it requires some changes in the implementation as well as the spec(OAS,config).

1.d) ... ALT creates a Link for every OperationServer at the newly created EATL version 5.0.0 in its application data

Current implementation of ALT server side code is not like so. Links will be created on demand based on the service /v1/add-operation-client-to-link.
(If a link is not available for an operation-server , then a link instance will be created with OUTPUT link-port for the operation-server.)
Created the following issues to include this changes ,
specification issue: ApplicationLayerTopology/issues/192
Implementation issue : ApplicationLayerTopology/issues/193

6.b) Disregard-application should not delete the application data

specification issue: ApplicationLayerTopology/issues/196
Implementation issue : ApplicationLayerTopology/issues/197

To enhance the /v1/update-ltp logic mentioned in the point#4 and #5 , Instead of creating and deleting the links internally , we shall utilize the services /v1/add-operation-clients-to-link and /v1/remove-operation-clients-from-links to facilitate updating links and initiate corresponding forwardings. Mentioned this in the following Proposal#2.
specification issue: ApplicationLayerTopology/issues/194
Implementation issue : ApplicationLayerTopology/issues/195
Many thanks to @IswaryaaS for multiple discussion over teams call.

Moving the issue from the milestone v2.0.0_spec to v2.0.0_impl as the following child issues created to complement the specifications are closed ,
ApplicationLayerTopology/issues/192
ApplicationLayerTopology/issues/196
ApplicationLayerTopology/issues/194

Closing the issue as the child issues related to implementation mentioned below are closed :
https://github.com/openBackhaul/ApplicationLayerTopology/issues/193
https://github.com/openBackhaul/ApplicationLayerTopology/issues/197
https://github.com/openBackhaul/ApplicationLayerTopology/issues/195


double data trasmission rate to 2048

Fix https://github.com/mukund26/Server-client/issues/3

thanks for PR @alexandergraul


Curved text

Is it possible to create a curved text with MakerJS?
If not, is it possible to create a text SVG with another library and then combine it with the makerJS SVG variable? I need to convert the final result to DXF eventually

Is your curve a circular arc or a Bezier curve? The circular arc would be pretty straightforward. The Bezier curve will involve a little more math... Ultimately I am planning on being able to attach text to any chain, but that may not be implemented very soon.
If you create SVG in another library then you can import it with makerjs.importer.fromSVGPathData which will convert it into a model.

I only need a circula arc.

Here is an example I attempted. (For some reason it does not show the circle I draw, but it is there)
Used the example code of the D3 library to create a curved text and then added it to the circle path I already created, but when I get the dxf output, I only see the circle, neither the text nor the curved path is there.

Hi @davejack1, Maker.js does not currently import all types of SVG objects. The fromSVGPathData method only imports the "d" (data) part of an SVG path. So in your example, the only part that fromSVGPathData can accept would be "M 10,90 Q 100,15 200,70 Q 340,140 400,30". I'll work on an example of text on a circular arc.

I see. Would really appreciate it. Thank you.

Hey @davejack1 - here's an example: http://microsoft.github.io/maker.js/playground/?script=arc-text

Thanks a lot. Will look into it in detail.

I have one quick question;
Although you get the point on the arc for the given angle and set this point as the origin of the character, the whole text sits on top of the arc.
var p = makerjs.point.fromAngleOnCircle(angleFromEnd, arc);
char.origin = p;
How can I put the text exactly on the arc?

Isn't this the same behavior as SVG? The bottom of the character is on the path, as in this example http://apike.ca/prog_svg_path_text.html

This is what I am trying to do. Sorry for the bad image quality, but this is the only example I could find.
What actually I am trying to do is this. I tried to draw the lower part of this example. To do so, I simply rotated a half circle by 180 degrees. That way I don't get this effect because non-rotated arc holds the text above it, whereas a rotated arc holds it inside the arc, just like this example (imagine its a full circle)
Putting the text exactly on the arc would solve this problem, or being able to put the text under the arc in your very first example would also yield a solution. However, I don't know how can I get the position of the top point of a character.

So I think you are asking that the origin should be in the vertical center of the character. I've updated the sample to reverse the direction when it's on the bottom:

[on top example](http://microsoft.github.io/maker.js/playground/?script=arc-text#params=["allertastencil-regular","Hello world",72,1,200,20,160,true,true])
[on bottom example](http://microsoft.github.io/maker.js/playground/?script=arc-text#params=["allertastencil-regular","Hello world",72,1,200,200,-20,false,true])

Then you can try this code to bring it all together:
var makerjs = require('makerjs');
var ArcText= require('arc-text');

function EncircleText(font, topText, bottomText, fontSize, fontScale, arcRadius, topAngle, bottomAngle, showCircle) {

  	this.models = {
      topText: new ArcText(font, topText, fontSize, fontScale, arcRadius, topAngle, 180 - topAngle, true, showCircle),
      bottomText: new ArcText(font, bottomText, fontSize, fontScale, arcRadius, 180 + bottomAngle, 360 - bottomAngle, false, showCircle)
    }

}

EncircleText.metaParameters = [
    { title: "font", type: "font", value: '#stencil' },
    { title: "top text", type: "text", value: 'this is the top' },
    { title: "bottom text", type: "text", value: 'this is the bottom' },
    { title: "font size", type: "range", min: 10, max: 200, value: 72 },
    { title: "font scale", type: "range", min: .1, max: 2, step: .1, value: 1 },
    { title: "arc radius", type: "range", min: 1, max: 1000, value: 200 },
    { title: "top angle", type: "range", min: 5, max: 45, value: 15 },
    { title: "bottom angle", type: "range", min: 5, max: 45, value: 15 },
    { title: "show circle", type: "bool", value: true }
];

module.exports = EncircleText;

(this only will work in the playground because "arc-text" isn't actually published on NPM)
You can see that when the bottom text 'this is the bottom' is not quite perfect in this scenario because of the simplistic centering which does not account for the width differences of the 't' and the 'm' characters at the ends.

I've just checked in a fix for the character width issue, reload and give it a try.

Thanks a lot!
My solution for auto-adjusting in accordance with the text length is the following;
`LibraryObject.curvedText = function (font, text, fontSize, arcRadius, onTop) {
        //generate the text using a font
        var textModel = new makerjs.models.Text(font, text, fontSize, false, true);

        //measure height of the text from the baseline
        var measure = makerjs.measure.modelExtents(textModel);
        var height = measure.high[1];
        var h2 = height / 2;
        var left = measure.low[0];
        var right = measure.high[0];
        var textWidth = right - left;

        //Calculate the angles dynamically
        var alpha = (textWidth*360)/(2*Math.PI*arcRadius);
        var startAngle = (180 - alpha)/2;
        var endAngle = (alpha + (180 - alpha)/2);

        var arc = new makerjs.paths.Arc([0, 0], arcRadius, startAngle, endAngle);

        //save all of these in the model
        this.models = {text: textModel};

        //move each character to a percentage of the total arc
        var span = makerjs.angle.ofArcSpan(arc);
        for (var i = 0; i < text.length; i++) {
            var char = textModel.models[i];

            //get the x distance of each character as a percentage
            var distFromFirst = char.origin[0] - left;
            var center = distFromFirst / textWidth;

            //set a new origin at the center of the text
            var o = makerjs.point.add(char.origin, [0, h2]);
            makerjs.model.originate(char, o);

            //project the character x position into an angle
            var angle = center * span;
            var angleFromEnd = onTop ? endAngle - angle : startAngle + angle;
            var p = makerjs.point.fromAngleOnCircle(angleFromEnd, arc);
            char.origin = p;

            //rotate the char to 90 from tangent
            makerjs.model.rotate(char, onTop ? angleFromEnd - 90 : angleFromEnd + 90, p);
        }

        return textModel
    };`

FYI these are now built-in to makerjs.layout:
http://microsoft.github.io/maker.js/playground/?script=text-on-path
http://microsoft.github.io/maker.js/playground/?script=text-on-chain


Unclear how to escape a dot . in JSON keys

If a JSON key contains a . it's unclear how to escape it if possible.
package main

import (
	"fmt"

	"github.com/tidwall/sjson"
)

func main() {
	value, _ := sjson.Set(`{"app.token":"abc"}`, `app.token`, "cde")
	fmt.Println(value)

	value, _ = sjson.Set(`{"app.token":"abc"}`, `app\.token`, "cde")
	fmt.Println(value)

	value, _ = sjson.Set(`{"apptoken":"abc"}`, `apptoken`, "cde")
	fmt.Println(value)

	// README says "The dot and colon characters can be escaped with ''."
	value, _ = sjson.Set(`{"app.token":"abc"}`, `app''.token`, "cde")
	fmt.Println(value)
}

$ go run main.go
{"app":{"token":"cde"},"app.token":"abc"}
{"app.token":"cde","app.token":"abc"}
{"apptoken":"cde"}
{"app''":{"token":"cde"},"app.token":"abc"}

Expected app.token to be replaced with cde in the second example not created as a duplicate key

Looks like a bug. The second example should work.

I’ll investigate further and try to get a fix out ASAP. Thanks for reporting.

I just pushed a fix. Thanks for reporting.


Deleting foreign key constraints, wrong order and invalid syntax

When deleting foreign key constraints, two error appear:

DBDiff tries to delete the index key first and then to drop the constraint. But as MySQL still uses the constraints, it can't drop the key.

Wrong Syntax for dropping the constraint, see: http://stackoverflow.com/questions/14122031/how-to-remove-constraints-from-my-mysql-table

Example: create two tables and add a foreign key, create dbdiff and see what' wrong.
ALTER TABLE order ADD FOREIGN KEY ( user_id ) REFERENCES user( id )
(great work else, love the script, helps me save a lot of time.)

Similar to Issue #41. We will clean this up as part of the same feature that solves #41


add Android .apk build

I've tried a few ways to do this. Currently I use an Android App you make on gonative.io, and it works great for the most part, but the possible option I came across to do this ourselves was called Cordova

official median build is now in the readme.
https://median.co/share/exnwbx
(gonative got renamed to median, but is same thing)


Create travis or tests for common code patterns and practices.

Add tests for golint, govet, gofmt etc..
Basically, address things thrown by goreport: https://goreportcard.com/report/github.com/kubeflow/kubebench.

/priority p2


Visual story & exhibition resources signposting on Exhibition page

What
Re-design the way in which the exhibition-specific visual story and the exhibition guides/resources (highlight tour and exhibition text) are displayed on Exhibition pages eg. Jason.
Currently they sit together under 'Exhibition access content'

Why

To better signpost the pre-visit resources available for those who would benefit from a visual story (including a video version)
Provide access to the exhibition guides while reducing potential confusion about what they are (not a pre-visit resource or guide to what you'll see)
Be able to link to the highlight tour and exhibition text separately for exhibitions where we don't provide both resources

Background
Related to:

Visual stories
Exhibition Guides

Done when

[x] Success measures agreed
[ ] Designs complete
[ ] Which stakeholders need to review?
[ ]

Reviewed with stakeholders so closing.
Next step will be to work with Editorial team on copy and spec (what is hardcoded etc.).


Add resources page with downloadable content

Posting Sofanit's comment on the matter as is:

Most institutions back home will be downloading content to print & mass produce/put on walls, & that what we build should solve for that use case. So having a page where we can populate printable content would be ideal to service this majority. They (downloadable content) is already made.

We can probably host these documents either on AWS S3 or on Google docs, or any other option...whichever is better. We just don't want to make make them part of the project itself because

That is really unnecessary and not elegant.
These content could be make available in other apps as well if hosted outside this site.

Working on this.


Running test node

Hello I've successfully compiled eos. I'm now trying to run a node.
I've updated my build/programs/data-dir/config.ini based on the README, except swapping the genesis block json to the file downloaded form this repo:
genesis-json = /home/philip/eos/genesis.json

When I try running build/programs/eosiod/eosiod I get back this:
1227551ms thread-0   chain_plugin.cpp:93           plugin_initialize    ] initializing chain plugin
1227552ms thread-0   http_plugin.cpp:141           plugin_initialize    ] host: <IP_ADDRESS> port: 8888
1227552ms thread-0   http_plugin.cpp:144           plugin_initialize    ] configured http to listen on <IP_ADDRESS>:8888
1227552ms thread-0   net_plugin.cpp:2543           plugin_initialize    ] Initialize net plugin
1227552ms thread-0   net_plugin.cpp:2565           plugin_initialize    ] Setting net_plugin logging level to info
1227552ms thread-0   net_plugin.cpp:2593           plugin_initialize    ] host: <IP_ADDRESS> port: 9876
1227553ms thread-0   net_plugin.cpp:2669           plugin_initialize    ] my node_id is 071599180e17b5e993433401e79850c0b5455ce2b0d322d76564b6e1af886361
1227554ms thread-0   main.cpp:85                   main                 ] eosiod version a91940b8
1227554ms thread-0   main.cpp:89                   main                 ] 10 assert_exception: Assert Exception
fc::exists( my->genesis_file ): unable to find genesis file '', check --genesis-json argument
    {"f":""}
    thread-0  chain_plugin.cpp:172 plugin_startup

    {"my->genesis_file.generic_string()":""}
    thread-0  chain_plugin.cpp:201 plugin_startup

I got a bit further on this. I realized there are 2 data-dir folders /eos/build/programs/data-dir and /eos/build/programs/eosiod/data-dir.
I wasn't updating the one in the eosiod/ folder. Now I'm getting this error:
3056269ms thread-0   main.cpp:91                   main                 ] Throw location unknown (consider using BOOST_THROW_EXCEPTION)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::multiple_occurrences> >
std::exception::what: option 'enable-stale-production' cannot be specified more than once

Tried putting the path in quotes and without quotes both result in the same error message.

I guess for the second error I just had to remove a duplicate line. Seems to be running now.


Add github workflow

#27

According to https://docs.microsoft.com/en-us/office/dev/add-ins/reference/manifest/highresolutioniconurl svg is indeed not a valid image format (although it seems to work just fine). So I would propose to merge this PR as it is and then fix the image later.

You can use the 64.png variant (I zipped it, so that github does not compress it again)
JabRef-icon-64.png.zip


Can this widget enhanced to store the grid setting (column altered by user) in database?

Hi @mgroeneweg
It's really good to have this widget configured to store grid settings in user specific as a cookie. Can this be stored in database and reloaded each time when user logged in.Because it adds more power to widget as well as provide flexibility for individual user to have their home page configured as one time activity.

The widget does not use cookies but local storage in the browser. Storing it in the server database would probably degrade performance as the settings get saved quite often.


Log in with a managed application's identity

Is your feature request related to a problem? Please describe.
A managed application has a managed identity you can use to manage a customer's environment.
For this managed identity, you can get the access tokens by making a REST call with your account:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Solutions/applications/{applicationName}/listTokens?api-version=2018-09-01-preview HTTP/1.1

This issue now is that this token is only readily usable when doing REST calls to the resource manager. It's hard to use the Azure CLI to do anything using that token.
Describe the solution you'd like
I see 2 possible solutions to this problem:

We should be able to log in to the CLI by specifying the managed application, and also which credentials to use to request tokens from the managed application (either SP or user or..)
A more general solution is a way to 'import' or 'reuse' access tokens that we get from somewhere else.

Describe alternatives you've considered
Before the CLI used MSAL, I would have been able to put the accesstoken in ~/.azure/AccessTokens.json, but that's not possible anymore.

Additional context
Ideally, we want to use Terraform to deploy resources, and we need a 'logged in' Azure CLI to do that. However, even without TF this feature would be very useful in scenarios where we want to manage a managed resource group in a managed application.

@jiasli for awareness


Add XMPP anonymous connection

Needs #1547 and matterbridge/go-xmpp#8
Resolves #1354
This PR try to add XMPP anonymous because go-xmpp already include it.
It will add a parameter "Anonymous" which make "Jid" and "Password" not needed if true
Example of config:
I was making local testing with a prosody server
[xmpp]
[xmpp.localhost]
debug=true
Anonymous=true
Server="anon.localhost"
Muc="room.localhost"
Nick="Matterbridge"
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

Note: Nickname works

I'm new to golang, I'll fix it.

Fixed

Thanks! 👍


HOTFIX - Fix to logic in schema valiation

Last commit introduced a slight bug where it would complain about missing jsSplitStyle even when it should not be set. e.g it would complain for
platform:
name: jvm

Please squash on merge :octocat:

To avoid these kinds of things in the future we could create a CI action with https://github.com/InoUno/yaml-ls-check?

fancy! :)


Pending Tests

This includes #16 which updates the output view as PHPUnit runs. It also clears old data and displays the output panel immediately if notifications aren't used. And it adds a pending css class to give a visual indicator that the tests are still running.

I like the pending notification feature. Could you update now that I've merged in #16?

@Synapse791 I've updated my branch, but I'm sure I'll need to update one more time after the fix from #22 gets merged in.

@fuelingtheweb I've pulled this into release/1.3.0


Missing translations on user profile

As you can see on screenshot the translations on user profile are missing:
(screenshots are from https://www.laravel-enso.com/administration/users/1)

Indeed, still uses the mapGetter. FIxing it now.


Unable to bridge Eth-> Arbitrum (VM exception bug)

See https://www.awesomescreenshot.com/video/13492236?key=b4a4d2fcc4e1920e2776e79c456576ef
When I enter amount I see error:

call revert exception; VM Exception while processing transaction: reverted with panic code 17 [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (method="calculateSwap(bytes32,uint8,uint8,uint256)", data="0x4e487b710000000000000000000000000000000000000000000000000000000000000011", errorArgs=[{"type":"BigNumber","hex":"0x11"}], errorName="Panic", errorSignature="Panic(uint256)", reason=null, code=CALL_EXCEPTION, version=abi/5.7.0)

I just got this on BSC too but not every time
https://www.awesomescreenshot.com/video/13492402?key=72eb52a6a97251979dafa963a7cff149


Mean Episode Rewards Question

I've got a question on the mean episode rewards returned whilst running the DQN algorithm (and probably other algorithms) when playing against random bots, e.g.:
[1000] Mean episode rewards [0.542 0.336]
As far as I can tell the DQN algorithm implements two agents, which play against each other, and then both agents are tested against the random bot. The first score above is the performance of agent1, whilst the second score is agent2.
I let this run for 400 episodes of Connect4 and got the following results:
Agent 1
Max : 0.986
Min : 0.542
Average : 0.8883675
StdDev : 0.0811125295114757
Agent 2
Max : 0.9
Min : 0.174
Average : 0.72085
StdDev : 0.110491594702945
There's quite a difference between these, and Agent 1 has a better score than Agent 2 in 95% of episodes.
Am I reading this right, and is this because Agent 1 is always playing first or is there another reason for this behavior?

Hi @jamesdfrost , quick response (I will follow up when I have more time to thoroughly dig through the code)
You are almost surely right. I believe the agents will each hold a specific seat and Connect Four is a proven win for the first player hence unbalanced in that we can expect more first player wins in general


Set default optimize to 1

Set default optimize level to 1
Default optimize level with no optimize level set:

Set optimize level to 3 and it will overwrite the default level:

I'm not convinced this is a good idea. For example, consider this program (taken from doc/perf.md):
from "stdlib/io.jou" import printf, getchar

def main() -> int:
    printf("Crash this program? (y/n) ")
    if getchar() == 'y':
        foo: int* = NULL
        x = *foo
    return 0

It crashes as expected with -O0, but doesn't crash with -O1 because the compiler assumes you don't access a null pointer. I think this isn't the behaviour you should get, unless you specifically ask Jou to optimize the code.
As I mentioned in the issue, the generated LLVM IR is quite dumb (until optimized). It contains a lot of alloca instructions, even for things that clearly don't need an alloca.

After thinking about this a bit more, I think it is a good solution for now. I will make the self-hosted compiler so that it generates better LLVM IR, and for the compiler we have now, this is useful because it means bigger programs compile quickly.
But before merging, we should update doc/perf.md.

Maybe we can add a keyword to tell the compiler don't optmize here

Maybe...

After thinking about this a bit more, I think it is a good solution for now. I will make the self-hosted compiler so that it generates better LLVM IR, and for the compiler we have now, this is useful because it means bigger programs compile quickly.
But before merging, we should update .doc/perf.md

What should I changed in .doc/perf.md?

changed O1 to default in the table and add a ask & answer in perf.md

What should L do now?

I edited the documentation a bit more: there were still other parts of it that claimed -O0 is the default. I think this is ready to be merged once the checks are green.
That said, I plan to write the self-hosted compiler so that it works well with -O0, and then make -O0 the default again. This PR is still a good temporary solution.

Sorry about taking so long to get this merged! I was too excited about the self-hosted compiler :)


Downgrade helm-chart version for admission controller to work in EKS

Description
The Version 2.28.13 does not support admission controller on EKS. So we choose a version 2.10.3 from March 2021 that seems to work. Could it be a version between the two where things break? Definitely; since there are dozens of releases we'll go with 2.10.3 for now and determine where the issue lies before upgrading.
Safety checklist

[ X] This change is backwards compatible and safe to apply by existing users
[ X] This change will NOT lead to data loss
[ X] This change will NOT lead to downtime who already has an env/service setup

How has this change been tested, beside unit tests?
Manual testing

Are we planning to merge this PR? Ideally, we should debug what's wrong with the latest version instead of downgrading.

Are we planning to merge this PR? Ideally, we should debug what's wrong with the latest version instead of downgrading.

Yes, I have created a ticket in jira for RC. https://run-x.atlassian.net/browse/RUNX-1091; we know its the admission controller component of the cluster agent; dont know why its failing in the recent helm chart. So the new ticket covers

Determine where (which exact version) the helm chart becomes unusable
Compare the diffs of the helm chart version to try to Figure out the issue RC
Create GH issue and followup

sounds good!

Confirmed worked for @legalosLOTR repro cluster, merging for now with the larger RC finding tbd in  https://run-x.atlassian.net/browse/RUNX-1091


Error in depth estimation data preparation

Hi,
Thanks for the great work!
I am trying to finetune the depth estimation model on some other datasets. But I encountered errors preparing the downloaded datasets when I tried to train on the depth dataset you provided. Below are error information.
Thank you!
$ python prepare_demon_train.py
Converting rgbd_bugfix_10_to_20_3d_train.h5 ...
Processing sequence 0/1237
prepare_demon_train.py:67: DeprecationWarning: Starting with ImageIO v3 the behavior of this function will switch to that of iio.v3.imread. To keep the current behavior (and make this warning disappear) use `import imageio.v2 as imageio` or call `imageio.v2.imread` directly.
  img = imageio.imread(img.tobytes())
Traceback (most recent call last):
  File "prepare_demon_train.py", line 119, in <module>
    preparedata()
  File "prepare_demon_train.py", line 96, in preparedata
    dump_example(scene)
  File "prepare_demon_train.py", line 67, in dump_example
    img = imageio.imread(img.tobytes())
  File ".../lib/python3.8/site-packages/imageio/__init__.py", line 97, in imread
    return imread_v2(uri, format=format, **kwargs)
  File ".../lib/python3.8/site-packages/imageio/v2.py", line 226, in imread
    with imopen(uri, "ri", **imopen_args) as file:
  File ".../lib/python3.8/site-packages/imageio/core/imopen.py", line 303, in imopen
    raise err_type(err_msg)
ValueError: Could not find a backend to open `<bytes>`` with iomode `ri`.

Hi, thanks for reporting this issue.
You issue seems to be the version issue of imageio, you can downgrade imageio to 2.9.0 with pip install imageio=2.9.0.
BTW, I just updated the depth data downloading script, where a small issue is fixed. Please re-download the depth data using the latest commit, sorry for the inconvenience.

Hi @haofeixu,
Thank you for your reply. I will try it out.

Hi @haofeixu ,
Problem solved. Thank you!


Output formats

This adds intermediate representation for formatted output. I added basic output limiting, also plan to add JSON output so it's WIP right now

This change is

Finally some JSON output - https://gist.github.com/qrilka/30780734c430bd90c51dadb836f36c9a

Ready for a review, I will deal with "typed" JSON in a separate PR

Updated new syscall guide and straightened history a bit (but unfortunately not every commit is buildable).
Ready for a merge.

but unfortunately not every commit is buildable

@qrilka Then let's squash those that aren't buildable and don't necessarily need to be separate.
The motivation behind linear history is being able to bisect regressions automatically, and non-building commits prevent that.

Ok, I squashed it a bit so now every commit builds fine

Great, thanks!


Contract read errors with the wasm hash param

What version are you using?
$ soroban version
soroban 21.0.0-preview.1 (a643000a6cc15bf4bdf1e358881e5671834806b7)
soroban-env 21.0.1 (f2b734b6360ae04ba730307be3988619dd0f59a3)
soroban-env interface version<PHONE_NUMBER>6
stellar-xdr 21.0.1 (da0cbc6f75eaf03423810b8e9d730a03dfa8517e)
xdr curr (1a04392432dacc0092caaeae22a600ea1af3c6a5)

a643000a6cc15bf4bdf1e358881e5671834806b7
What did you do?
Setup:
$ soroban network add future \
    --rpc-url https://rpc-futurenet.stellar.org:443 \
    --network-passphrase 'Test SDF Future Network ; October 2022'
$ export SOROBAN_NETWORK=future
$ soroban keys generate me
$ SOROBAN_ACCOUNT=me

Reading with a wasm hash:
$ soroban contract read \
    --wasm-hash 390c0dc0c56b66db3847d1ab75d8bfda164bda5a7032a049921f5529202ddd95 \
    --durability persistent \
    --network future \
    --source me
error: Only contract data and code keys are allowed

What did you expect to see?
The ledger entry for the wasm hash.
What did you see instead?
Error.

One problem with us allowing the read command to output the key and value of contract code, is that the outputs are now of different types. Before the outputs were always keys and values for contract data. Now it's also contract code.
When I opened #1318 I was confused because I was thinking of the read command reading raw ledger entries, but that's not what the read command does, it's a contract read command and it is only reading contract data, not all artbirary ledger entries.
There exists contract fetch for reading wasm.
It's confusing that the read command has a --wasm-hash parameter. I'm not sure why that it needs a parameter for restoring the contract.
I think my expectations in #1318 are incorrect, and the expectation should be probably to:

Remove the --wasm-hash and --wasm options after understanding why they are present.
Fix the error to say that only contract data can be read instead of data and code.

Originally posted by @leighmcculloch in https://github.com/stellar/stellar-cli/pull/1372#discussion_r1692951351


Suppress warnings about deprecated rcParams in matplotlib>=3.0

[x] Fixes https://github.com/ioam/holoviews/issues/2963

Ready to merge.

Merging this myself since the warnings are driving me crazy and it's a pretty straightforward fix.

Please ho to fixe this error
matplotlib/init.py:886: MatplotlibDeprecationWarning:
examples.directory is deprecated; in the future, examples will be found relative to the 'datapath' directory.
"found relative to the 'datapath' directory.".format(key))

It should be fixed in the next release, coming next week.

Please how do i fix this, thanks in advance
python -m baselines.her.experiment.plot /tmp/openai-2018-12-19-12-21-56-179878
/home/gbenga/Downloads/abiona1008/envs/tensorflow/lib/python3.6/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning:
examples.directory is deprecated; in the future, examples will be found relative to the 'datapath' directory.
"found relative to the 'datapath' directory.".format(key))


idk why it show me this when i launch ps + my push font doesn't work at all

At C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1:125 char:25

if (( $+commands[nvim] )); then

                    ~

Missing statement block after if ( condition ).
+ CategoryInfo          : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : MissingStatementBlock

@HolakoNoob Chris has since updated his script, please re-pull it and try again.


Tus for task annotations import

Motivation and context

Continue TUS integration to provide chunk upload for large annotation files in Tasks and Jobs
Resolved #964
How has this been tested?

Checklist

[x] I submit my changes into the develop branch
[x] I have added a description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[x] I have linked related issues (read github docs)
[x] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[x] I have updated the license header for each file (see an example below)

# Copyright (C) 2022 Intel Corporation
#
# SPDX-License-Identifier: MIT

@bsekachev @nmanovic Could you please take a look at this patch?

I've encountered strange problem with test_tasks_delete cli test. After new functionality in this pr was added, self.mock_stdout.getvalue() in this test started returning:
on upload finished test_task
Task ID 1 deleted

instead of
Task ID 1 deleted

This test checked presence of test_task in those lines, so it failed. But eventually task was deleted, therefore I think it's better to check for Task ID 1 deleted, so I've changed the test too.

Hmm, uploading annotations to an empty task does not work for me. UI says "Annotations have been loaded", but the task is still empty.
Please, check.

@klakhov Could you please resolve conflicts?
Looks like the same issue is still reproducable for me, or maybe did I miss something? (pull, restart server, restart UI, ... ?)

@nmanovic I've removed data_type as we discussed and added several actions for each upload type


createBrowserHistory throws error in IE9

When using createBrowserHistory IE9 throws an error. Object doesn't support property or method 'replaceState'
This is likely because of the window.history.replaceState({ ...historyState, key }, null, path) call in getCurrentLocation method.
EDIT: this only tested with react-router

This is because IE9 does not support session history management, more here.
Also more docs about Histories in the React Router docs.

Yes i know, and i the docs it says that it will detect for this and fallback to page reloads only. Now you will get this JS error on load and all JS will break.


test_sparse_operator.py:test_sparse_mathematical_core fails under scipy v1.1

Description
Our CI systems pull in scipy via 'pip install scipy' and are now getting version 1.1 from the public server, rather than the previous 1.0.  The trouble with this is that the function scipy.special.psi() has a different behavior in the two versions when passed a 0 argument and this causes test_sparse_operator.py:test_sparse_mathematical_core to fail.
Environment info (Required)
----------Python Info----------
('Version      :', '2.7.12')
('Compiler     :', 'GCC 5.4.0 20160609')
('Build        :', ('default', 'Dec  4 2017 14:50:18'))
('Arch         :', ('64bit', 'ELF'))
------------Pip Info-----------
('Version      :', '10.0.1')
('Directory    :', '/home/dcarter/.local/lib/python2.7/site-packages/pip')
----------MXNet Info-----------
/home/dcarter/mxnet_dev/dgx/mxnet/python/mxnet/optimizer.py:136: UserWarning: WARNING: New optimizer mxnet.optimizer.NAG is overriding existing optimizer mxnet.optimizer.NAG
  Optimizer.opt_registry[name].__name__))
('Version      :', '1.1.0')
('Directory    :', '/home/dcarter/mxnet_dev/dgx/mxnet/python/mxnet')
Hashtag not found. Not installed from pre-built package.
----------System Info----------
('Platform     :', 'Linux-4.4.0-121-generic-x86_64-with-Ubuntu-16.04-xenial')
('system       :', 'Linux')
('node         :', 'DCARTER-DT')
('release      :', '4.4.0-121-generic')
('version      :', '#145-Ubuntu SMP Fri Apr 13 13:47:23 UTC 2018')
----------Hardware Info----------
('machine      :', 'x86_64')
('processor    :', 'x86_64')
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                12
On-line CPU(s) list:   0-11
Thread(s) per core:    2
Core(s) per socket:    6
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Model name:            Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz
Stepping:              2
CPU MHz:               1292.539
CPU max MHz:           3700.0000
CPU min MHz:           1200.0000
BogoMIPS:              6996.26
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              15360K
NUMA node0 CPU(s):     0-11
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb invpcid_single retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts

Error Message:
See the end of 'Steps to reproduce'
Steps to reproduce:
Normal/correct behavior:
$ python -c "import numpy; print(numpy.__version__)"
1.14.3
$ python -c "import scipy; print(scipy.__version__)"
1.0.0
$ python -c "import scipy.special; print(scipy.special.psi(0))"
inf
$ nosetests tests/python/unittest/test_sparse_operator.py:test_sparse_mathematical_core
 ...
OK

Problematic behavior:
$ sudo pip install scipy==1.1 --force-reinstall
$ python -c "import numpy; print(numpy.__version__)"
1.14.3
$ python -c "import scipy; print(scipy.__version__)"
1.1.0
$ python -c "import scipy.special; print(scipy.special.psi(0))"
-inf             <------------  Note minus inf, different than with scipy v1.0
$ nosetests tests/python/unittest/test_sparse_operator.py:test_sparse_mathematical_core
/home/dcarter/mxnet_dev/dgx/mxnet/python/mxnet/optimizer.py:136: UserWarning: WARNING: New optimizer mxnet.optimizer.NAG is overriding existing optimizer mxnet.optimizer.NAG
  Optimizer.opt_registry[name].__name__))
[INFO] Setting module np/mx/python random seeds, use MXNET_MODULE_SEED=900978872 to reproduce.
[INFO] Setting test np/mx/python random seeds, use MXNET_TEST_SEED=2040547495 to reproduce.
F
======================================================================
FAIL: test_sparse_operator.test_sparse_mathematical_core
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/dcarter/mxnet_dev/dgx/mxnet/tests/python/unittest/common.py", line 152, in test_new
    orig_test(*args, **kwargs)
  File "/home/dcarter/mxnet_dev/dgx/mxnet/tests/python/unittest/test_sparse_operator.py", line 1069, in test_sparse_mathematical_core
    density=density, ograd_density=ograd_density)
  File "/home/dcarter/mxnet_dev/dgx/mxnet/tests/python/unittest/test_sparse_operator.py", line 1044, in check_mathematical_core
    density=density, ograd_density=ograd_density)
  File "/home/dcarter/mxnet_dev/dgx/mxnet/tests/python/unittest/test_sparse_operator.py", line 687, in check_sparse_mathematical_core
    assert_almost_equal(arr_grad, input_grad, equal_nan=True)
  File "/home/dcarter/mxnet_dev/dgx/mxnet/python/mxnet/test_utils.py", line 493, in assert_almost_equal
    raise AssertionError(msg)
AssertionError:
Items are not equal:
Error nan exceeds tolerance rtol=0.000010, atol=0.000000.  Location of maximum error:(0, 0), a=inf, b=-inf
 a: array([[inf, inf],
       [inf, inf],
       [inf, inf],...
 b: array([[-inf, -inf],
       [-inf, -inf],
       [-inf, -inf],...
-------------------- >> begin captured stdout << ---------------------
('pass', 0)
0.0, 0.0, False

--------------------- >> end captured stdout << ----------------------
-------------------- >> begin captured logging << --------------------
common: INFO: Setting module np/mx/python random seeds, use MXNET_MODULE_SEED=900978872 to reproduce.
common: INFO: Setting test np/mx/python random seeds, use MXNET_TEST_SEED=2040547495 to reproduce.
--------------------- >> end captured logging << ---------------------

----------------------------------------------------------------------
Ran 1 test in 0.036s

FAILED (failures=1)

What have you tried to solve it?
We've hardcoded our scipy install command to grab the 1.0 version that works:
pip install scipy==1.0
As I dug into the test, I discovered that the psi operator was being passed an argument of 0.  The psi function is discontinuous at 0, and could be though of as having either a +inf or -inf value depending on whether 0 is approached from the positive or negative x-axis.  I felt the creator of the test would be the best one to adapt the test to the new behavior of psi() under scipy v1.1.  Note that the failure shown occurs for any seed.

Thanks for looking into this! Closed via https://github.com/apache/incubator-mxnet/pull/10961


Improve error reporting: suggest inlining when compiler constrains types to be less generic

Error messages on functions with generic type constraints can be quite misleading, especially when the solution is to mark a function as inline. Three different (but related) cases of poor messages are shown below:
Example 1
let averageBy (f : 'T -> ^U) (source : seq<'T>) : ^U =
    let inline acc (sum, count) el = (Checked.(+) sum (f el), count + 1)
    let (sum, count) = Seq.fold acc ((LanguagePrimitives.GenericZero< (^U) >), 0) source
    LanguagePrimitives.DivideByInt sum count

Expected behavior
Compiler warning: Checked.(+) is inferred to have default type of int rather than ^U because averageBy is not marked as inline.
Actual behavior
Compiler error on Checked.(+):
Type constraint mismatch when applying the default type 'int' for a type inference variable. The type 'int' does not support the operator 'DivideByInt' Consider adding further type constraints.

Example 2
let averageBy (f : 'T -> ^U) (source : seq<'T>) : ^U =
    let acc (sum, count) el = (Checked.(+) sum (f el), count + 1)
    let (sum, count) = Seq.fold acc ((LanguagePrimitives.GenericZero< (^U) >), 0) source
    LanguagePrimitives.DivideByInt sum count

Expected behavior
Compiler warning: Checked.(+) is inferred to have default type of int rather than ^U because averageBy and/or accare not marked as inline
Actual behavior
Compiler infers type ^U as obj without warnings or errors.
Example 3
let averageBy (f : 'T -> ^U) (source : seq<'T>) : ^U =
    let inline acc (sum, count) el = (Checked.(+) sum (f el), count + 1)
    let (sum, count) = Seq.fold acc ((LanguagePrimitives.GenericZero< (^U) >), 0) source
    Unchecked.defaultof<_> // TODO: finish implementation

Expected behavior
Compiler warning: Checked.(+) is inferred to have default type of int rather than ^U because averageBy and is not marked as inline
Actual behavior
Compiler warning on Checked.(+):
This construct causes code to be less generic than indicated by the type annotations. The type variable 'U has been constrained to be type 'int'.

Thanks for reporting this. Are you interested in improving the error messages. If yes we could work together on it if you want. Just ping me.

@forki, I've been bitten by this many times too, if we are not in a big hurry, I'm willing to have a look at this one.

@forki interesting as that sounds, I'm going to have to resist the temptation as I really need to work on my PhD thesis. Maybe in a few months though :-).

@forki I'd be interested in working with you on this one.

I'm on vacation for the next 10 days so I'm not really available. But if you give it a try I will try to look at it.

@taylorwood still interested? Anything where I can help?