core: duplicate symbols coming from protobuf

Overview
With the latest upstream Envoy update, we're seeing quite a few duplicate symbols coming from the final Envoy.framework. These symbols seem to be coming from protobuf. Here are a few examples:
05:06:52.047624 Found symbol '__ZN6google8protobuf28UninterpretedOption_NamePartC1ERKS1_' in multiple binaries: Envoy, Envoy'
05:06:52.047630 Found symbol '__ZNK6google8protobuf19EnumDescriptorProto13IsInitializedEv' in multiple binaries: Envoy, Envoy'
05:06:52.047839 Found symbol '__ZN6google8protobuf12OneofOptions9MergeFromERKS1_' in multiple binaries: Envoy, Envoy'
05:06:52.047865 Found symbol '_descriptor_table_google_2fprotobuf_2fdescriptor_2eproto' in multiple binaries: Envoy, Envoy'
05:06:52.047873 Found symbol '__ZN6google8protobuf11UInt64Value9MergeFromERKS1_' in multiple binaries: Envoy, Envoy'
05:06:52.047880 Found symbol '__ZNK6google8protobuf19UninterpretedOption39InternalSerializeWithCachedSizesToArrayEPhPNS0_2io19EpsCopyOutputStreamE' in multiple binaries: Envoy, Envoy'
05:06:52.047886 Found symbol '__ZN6google8protobuf19FileDescriptorProto8CopyFromERKS1_' in multiple binaries: Envoy, Envoy'
05:06:52.047895 Found symbol '__ZN6google8protobuf29DescriptorProto_ReservedRangeC2EPNS0_5ArenaE' in multiple binaries: Envoy, Envoy'
05:06:52.047906 Found symbol '__ZNK6google8protobuf28GeneratedCodeInfo_Annotation12ByteSizeLongEv' in multiple binaries: Envoy, Envoy'
05:06:52.047972 Found symbol '__ZNK6google8protobuf20FieldDescriptorProto12ByteSizeLongEv' in multiple binaries: Envoy, Envoy'
05:06:52.048006 Found symbol '__ZN6google8protobuf12FieldOptions10JSType_MINE' in multiple binaries: Envoy, Envoy'
05:06:52.048015 Found symbol '__ZN6google8protobuf28UninterpretedOption_NamePartC1EPNS0_5ArenaE' in multiple binaries: Envoy, Envoy'
05:06:52.048060 Found symbol '__ZTSN6google8protobuf11UInt64ValueE' in multiple binaries: Envoy, Envoy'
05:06:52.048072 Found symbol '__ZN6google8protobuf20FieldDescriptorProto12TYPE_FIXED64E' in multiple binaries: Envoy, Envoy'
05:06:52.048164 Found symbol '_scc_info_Empty_google_2fprotobuf_2fempty_2eproto' in multiple binaries: Envoy, Envoy'
05:06:52.048184 Found symbol '_scc_info_OneofOptions_google_2fprotobuf_2fdescriptor_2eproto' in multiple binaries: Envoy, Envoy'
05:06:52.048201 Found symbol '__ZNK6google8protobuf16EnumValueOptions39InternalSerializeWithCachedSizesToArrayEPhPNS0_2io19EpsCopyOutputStreamE' in multiple binaries: Envoy, Envoy'
05:06:52.048218 Found symbol '__ZN6google8protobuf11UInt32Value5ClearEv' in multiple binaries: Envoy, Envoy'
05:06:52.048261 Found symbol '__ZNK6google8protobuf11DoubleValue13IsInitializedEv' in multiple binaries: Envoy, Envoy'
05:06:52.048406 Found symbol '__ZN6google8protobuf20OneofDescriptorProtoD2Ev' in multiple binaries: Envoy, Envoy'
05:06:52.048434 Found symbol '__ZN6google8protobuf29DescriptorProto_ReservedRange21InitAsDefaultInstanceEv' in multiple binaries: Envoy, Envoy'
05:06:52.048448 Found symbol '__ZN6google8protobuf28GeneratedCodeInfo_AnnotationD2Ev' in multiple binaries: Envoy, Envoy'
05:06:52.048455 Found symbol '__ZN6google8protobuf23SourceCodeInfo_Location5ClearEv' in multiple binaries: Envoy, Envoy'
05:06:52.048461 Found symbol '__ZN6google8protobuf5Arena18CreateMaybeMessageINS0_30DescriptorProto_ExtensionRangeEJEEEPT_PS1_DpOT0_' in multiple binaries: Envoy, Envoy'
05:06:52.048637 Found symbol '__ZNK6google8protobuf13MethodOptions12ByteSizeLongEv' in multiple binaries: Envoy, Envoy'
05:06:52.048657 Found symbol '__ZN6google8protobuf17GeneratedCodeInfoD2Ev' in multiple binaries: Envoy, Envoy'
05:06:52.048739 Found symbol '__ZN6google8protobuf28_BoolValue_default_instance_E' in multiple binaries: Envoy, Envoy'
05:06:52.048756 Found symbol '__ZN6google8protobuf8Duration8CopyFromERKNS0_7MessageE' in multiple binaries: Envoy, Envoy'
05:06:52.048763 Found symbol '__ZN6google8protobuf11EnumOptionsD2Ev' in multiple binaries: Envoy, Envoy'
05:06:52.048770 Found symbol '__ZN6google8protobuf13MethodOptions26IdempotencyLevel_ARRAYSIZEE' in multiple binaries: Envoy, Envoy'
05:06:52.048911 Found symbol '__ZNK6google8protobuf19FileDescriptorProto13SetCachedSizeEi' in multiple binaries: Envoy, Envoy'
05:06:52.048926 Found symbol '__ZTSN6google8protobuf10BytesValueE' in multiple binaries: Envoy, Envoy'
05:06:52.048933 Found symbol '__ZN6google8protobuf13MethodOptionsC1ERKS1_' in multiple binaries: Envoy, Envoy'
05:06:52.048940 Found symbol '__ZN6google8protobuf6StructC1ERKS1_' in multiple binaries: Envoy, Envoy'
05:06:52.048993 Found symbol '__ZNK6google8protobuf11EnumOptions39InternalSerializeWithCachedSizesToArrayEPhPNS0_2io19EpsCopyOutputStreamE' in multiple binaries: Envoy, Envoy'
05:06:52.049002 Found symbol '__ZN6google8protobuf36_GeneratedCodeInfo_default_instance_E' in multiple binaries: Envoy, Envoy'
05:06:52.049008 Found symbol '__ZNK6google8protobuf11DoubleValue13SetCachedSizeEi' in multiple binaries: Envoy, Envoy'
05:06:52.049015 Found symbol '__ZN6google8protobuf17FileDescriptorSet14_InternalParseEPKcPNS0_8internal12ParseContextE' in multiple binaries: Envoy, Envoy'
05:06:52.049021 Found symbol '__ZN6google8protobuf12OneofOptionsC2EPNS0_5ArenaE' in multiple binaries: Envoy, Envoy'

These symbols can easily be dumped and searched using:
$ nm -arch arm64 -WUgj /path/to/Envoy.framework/Envoy

I tried going back several versions of Envoy, and found that the commit prior to the last protobuf bump to v3.10.1 did not have duplicate symbols. This leads me to believe that the protobuf bump commit resulted in duplication of these symbols.
Fixing
It's not yet clear to me whether this issue has been fixed by upstream fixes to protobuf, as v3.11.2 is now the latest release. We should try updating to see if this resolves the problem.
Updating protobuf
I started updating protobuf in Envoy, but it appears that a change to protobuf resulted in deprecations being surfaced as warnings, which subsequently causes Envoy Mobile not to compile due to the fact that Envoy uses some of these deprecated entities.
The same change in protobuf that started surfacing these warnings also added -Wno-deprecated-declarations, effectively disabling the warnings in the protobuf library itself. Thus, we can either:

Silence these warnings in Envoy
Investigate what it'll take to migrate off of the deprecated entities

I wanted to surface another linking issue in iOS that @htuch and I discussed on an envoy PR: https://github.com/envoyproxy/envoy/pull/9191

Filed some upstream issues that I believe to be the cause of this:
https://github.com/protocolbuffers/protobuf/issues/7046
https://github.com/bazelbuild/bazel/issues/10484

Thanks so much @keith.
There's a fix that has been submitted to fix this issue in Bazel, after which we should hopefully be able to bump Bazel and update: https://github.com/bazelbuild/bazel/pull/10493


 Iirc it worked fine for me without it

character.updateAnimation() doesn't need to be called, it's something that FlxSprite already uses.
The only thing you could say I'm doing is just replacing the animation handlers.
Why does it not work for you? Are you using a class extending FlxAnimate and overriding update without adding super.update()?
that would be my guess

im not extending flxanimate, the updateAnimation function was necessary for me because it didn't play the animation

i made a file which basically prevents it from doing this, it just gets a spriteatlas group then pushes itself to that group, you can for loop in the update function on each spriteatlas in the current state you're in and by that i dont mean the spriteatlas itself and do the update function for it
SpriteAtlas.txt

i made a file which basically prevents it from doing this, it just gets a spriteatlas group then pushes itself to that group, you can for loop in the update function on each spriteatlas in the current state you're in and by that i dont mean the spriteatlas itself and do the update function for it SpriteAtlas.txt

But the thing is that this shouldn't happen at all. updateAnimation() should not be needed to be called, I have never needed to call it and I've been using FlxAnimate since like early 2022.
How do you intialise FlxAnimate? Are you sure you don't set active to false or something?

yes i'm sure of all of that.

I really can not merge this pull request, since this isn't what a dev who wants to implement FlxAnimate that doesn't want to touch much about the source code has to add nowhere.
updateAnimation() is an FlxSprite function that is already been called in update(). The only thing that FlxAnimate does to redirect the animation handler is overriding the function and call the update function of the animation handler in there.
But I do wanna know why you're having this issue, that's been bothering me for a while.

i honestly don't know but close this pull request if you want, if somebody else is having this problem i'll see if i can help


Sidecar proxy prototype

Summary
Prototype for #895
Details and comments
This PR is to share the prototype code for the issue within the team.

@Tansito @IceKhan13 @psschwei Hi! It is not working yet but here the code I have so far.  Please take a look.

I put the logs of proxy side car in gateway/proxy/proxy.log
Looks like the response header attribute correlation-id: cnfuhom6ll0enki0tmng for  GET /runtime/backends?provider=ibm-q%2Fopen%2F request is the one we need.

The middleware job id is necessary to issue the API call.

It is actually  "id":"cng91pej1613i2k2c8p0" in the response data for POST /runtime/jobs HTTP/1.1\r\nHost: api.quantum.ibm.com request.
data received from program
Received: b'POST /runtime/jobs HTTP/1.1\r\nHost: api.quantum.ibm.com\r\nUser-Agent: python-requests/2.31.0\r\nAccept-Encoding: gzip, deflate, br\r\nAccept: */*\r\nConnection: keep-alive\r\nX-Qx-Client-Application: qiskit-version-2/qiskit_ibm_runtime-0.18.0,qiskit_terra-0.45.2/qiskit_ibm_runtime~estimator.py\r\nContent-Length: 1965\r\nX-Access-Token: 4Y34kb1f5dkPrd5zohVOKzoF9EtgCSfqpwb7UAdnx6ztqO5zG1ZaO9D8lrEwSQg9\r\n\r\n'
data received from program
Received: b'{"program_id": "estimator", "params": {"circuits": [{"__type__": "QuantumCircuit", "__value__": "eJwL9Az29gzhYtBlYoAAxoJCBpY0Bg4gk5UBAUDSjFC2eKCjvyNMorq2kBGslpGxkAEVMCLpBQFmKM0CV8EGFWVkwA5Cjd0TS1LB5qZBhTgkdF1Cfiv+tM+ECcAUo6ngdCDBeEZyjGeHGs3EgB0ERUXBnQ+2JBUqkQelYe4y8C3N0XDLyU8s0VA30jNQ11EoKEpNzizOzM+zNTXW1FEIrsxNys/RUD+3OdogVl1Ts6wMbgnMciadfe8k3rE6XVt2YNkyPct+mB0M5zaDw4ERTzgERcDDgXInbsLtxL+S5nriio55Ew1O7Ci+w6AKd+ImEqKKiR5RxTT4o4oKTqR1VDHTI6qYB39UUcGJtI4qFnpEFcvgjyqGgYqqAalMDIkMy3yYHcCwHJCilB4OpUpBQo5D6Vw943QiWupUgztxE72rJdo6kSrFMW2dSIWSkj7FEFWKdNpmGqoU6UMguslxIgPDfyQA0wkAE2hD3Q=="}], "observables": [{"__type__": "settings", "__module__": "qiskit.quantum_info.operators.symplectic.sparse_pauli_op", "__class__": "SparsePauliOp", "__value__": {"data": {"__type__": "settings", "__module__": "qiskit.quantum_info.operators.symplectic.pauli_list", "__class__": "PauliList", "__value__": {"data": ["IIIZZ", "IIZIZ", "IZIIZ", "ZIIIZ"]}}, "coeffs": {"__type__": "ndarray", "__value__": "eJyb7BfqGxDJyFDGUK2eklqcXKRupaBuk2xop'
data received from program
Received: b'q6joJ6WX1RSlJgXn1+UkgqScEvMKU4FihdnJBakAvkaJjqaOgq1CuQDLgYw+GDPgAKI5wMAzRsgJw=="}}}], "parameters": [[{"__type__": "Parameter", "__value__": "AAX9GTcuFyFBbpEwyLhz3AAlzrJbMF0="}, {"__type__": "Parameter", "__value__": "AAX9GTcuFyFBbpEwyLhz3AAmzrJbMV0="}, {"__type__": "Parameter", "__value__": "AAUsvu4Y7gVC1qbApqYuOY9uzrNbMF0="}, {"__type__": "Parameter", "__value__": "AAUsvu4Y7gVC1qbApqYuOY9vzrNbMV0="}]], "parameter_values": [[1.2736114643252021, 1.7699802699954126, 5.0730499437842544, 3.6970486879700917]], "transpilation_settings": {"skip_transpilation": false, "optimization_settings": {"level": 3}, "coupling_map": null, "basis_gates": null}, "resilience_settings": {"level": 0}, "run_options": {"shots": 4000, "init_qubits": true, "noise_model": null, "seed_simulator": null}}, "log_level": "WARNING", "backend": "ibmq_qasm_simulator", "start_session": true, "session_time": null, "hub": "ibm-q", "group": "open", "project": "main"}'
data received from backend
Received header from backend: Date: Thu, 29 Feb 2024 14:12:53 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
content-security-policy: default-src 'self' https://cdnjs.cloudflare.com data:; frame-ancestors 'none'; form-action 'self'
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
x-dns-prefetch-control: off
x-frame-options: SAMEORIGIN
strict-transport-security: max-age=15724800; includeSubDomains
x-download-options: noopen
x-content-type-options: nosniff
origin-agent-cluster: ?1
x-permitted-cross-domain-policies: none
referrer-policy: no-referrer
x-xss-protection: 1
access-control-allow-origin: *
correlation-id: cng91pej1613i2k2c8og
x-envoy-upstream-service-time: 275
cf-cache-status: DYNAMIC
content-encoding: gzip
Server: cloudflare
CF-RAY: 85d1813acdeb054a-IAD
data received from backend
end of chunked data received from backend
b'{"id":"cng91pej1613i2k2c8p0","backend":"ibmq_qasm_simulator","session_id":"cng91pej1613i2k2c8p0"}'

The proxy still getting the following error after sending the first request to the backend.
Traceback (most recent call last):
  File "/usr/src/app/server.py", line 110, in <module>
    connection, client_address = server.accept()
  File "/usr/local/lib/python3.9/ssl.py", line 1356, in accept
    newsock = self.context.wrap_socket(newsock,
  File "/usr/local/lib/python3.9/ssl.py", line 501, in wrap_socket
    return self.sslsocket_class._create(
  File "/usr/local/lib/python3.9/ssl.py", line 1041, in _create
    self.do_handshake()
  File "/usr/local/lib/python3.9/ssl.py", line 1310, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1129)

I tried running your notebook (using my own token), but the job just hung (pods were running, but never got any results).
Will post logs in a bit (need to remove tokens, etc. from them)

@psschwei Thanks for looking at this.  It is still getting an certificate exception in the proxy.  So it stack in the running state.

It's in the proxy container running in the ray head node pod.

It seems like the WebSocket client created in qiskit-ibm-provider/qiskit_ibm_provider/job/ibm_circuit_job.py is verifying the server certificate.  I don't see any way to turn it off in the Qiskit API level. :-(

Awesome job anyway, @akihikokuroda . Thank you so much for this exploration, we can analyze it all of us next week

For the certification error,
run_forever function must be called with sslopt based on the verify option of QiskitRuntimeService object creation.
                self._ws.run_forever(

                    ping_interval=60, ping_timeout=10, **self._proxy_params

                )

it's in
qiskit-ibm-provider/qiskit_ibm_provider/api/clients/base.py

To pass the verify option of QiskitRuntimeService, qiskit_runtime_service.py, runtime_job.py, runtime_ws.py and base.py probably need to be updated

New proxy code httpserver.py is almost ready now.  Please take a look.

I still see some error.  I'll continue debugging.

Finally, the httpserver.py is working. :-).   I'll remove server.py later.  There are 2 issues in qiskit_ibm_runtime.  Here is one I've just opened. https://github.com/Qiskit/qiskit-ibm-runtime/issues/1508
I'll open another one soon.

There still is a test error but this is ready for review.  The iptables can be removed when we know how to change the backend api url.

One thing I noticed when trying this out locally: we log the circuit being sent to runtime. Here's a snippet from the logs:
DEBUG:root:New request: b'GET /runtime/backends/ibmq_qasm_simulator/configuration HTTP/1.1\r\n'
DEBUG:root:Passthrough none POST request: https://api.quantum.ibm.com/runtime/backends/ibmq_qasm_simulator/configuration
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): api.quantum.ibm.com:443
DEBUG:urllib3.connectionpool:https://api.quantum.ibm.com:443 "GET /runtime/backends/ibmq_qasm_simulator/configuration HTTP/1.1" 200 None
<IP_ADDRESS> - - [29/Mar/2024 13:30:21] "GET /runtime/backends/ibmq_qasm_simulator/configuration HTTP/1.1" 200 -
DEBUG:root:Recieved response content: {"backend_name":"ibmq_qasm_simulator","coupling_map":null,"backend_version":"0.1.547","n_qubits":32,"basis_gates":["u1","u2","u3","u","p","r","rx","ry","rz","id","x","y","z","h","s","sdg","sx","t","tdg","swap","cx","cy","cz","csx","cp","cu1","cu2","cu3","rxx","ryy","rzz","rzx","ccx","cswap","mcx","mcy","mcz","mcsx","mcp","mcu1","mcu2","mcu3","mcrx","mcry","mcrz","mcr","mcswap","unitary","diagonal","multiplexer","initialize","kraus","roerror","delay"],"gates":[{"name":"u1","parameters":["lam"],"conditional":true,"description":"Single-qubit gate [[1, 0], [0, exp(1j*lam)]]","qasm_def":"gate u1(lam) q { U(0,0,lam) q; }"},{"name":"u2","parameters":["phi","lam"],"conditional":true,"description":"Single-qubit gate [
<snip>

We should probably not log that info (though not sure exactly what the best way to go about that is either)
Another very minor thing... proxy logs don't have timestamps. I don't think this is a super big deal, as in LogDNA that will be appended, but if there's an easy switch to flip to add them might not be a bad idea.
Also, looks like the qaoa notebook launched about 50 jobs on IQP before reaching a result... assume that's expected, but noting just in case.

@psschwei Thanks for review.

We should probably not log that info (though not sure exactly what the best way to go about that is either)

I can take out some log statements not to log the circuits.

Another very minor thing... proxy logs don't have timestamps. I don't think this is a super big deal, as in LogDNA that will be appended, but if there's an easy switch to flip to add them might not be a bad idea.

I'll look into configuration of the logging

Also, looks like the qaoa notebook launched about 50 jobs on IQP before reaching a result... assume that's expected, but noting just in case.

I believe that expected.

This https://github.com/Qiskit/qiskit-ibm-runtime/issues/1508 must be fixed to make this work correctly.

@akihikokuroda is this ready for review?

@psschwei Yes, it is.  Thanks!

weird, looks like the head and worker nodes have different permissions on the certs:
$ k exec -it c-mockuser-ed758c49-head-7xn7g -- bash
Defaulted container "ray-head" out of: ray-head, proxy, ray-head-tls (init)
(base) root@c-mockuser-ed758c49-head-7xn7g:/# ll /etc/ray/tls/
total 36
drwxrwsrwx. 1 root  123  186 Apr 11 09:41 ./
drwxr-xr-x. 1 root root    6 Apr 11 09:41 ../
drwxr-sr-x. 1 root  123   24 Apr 11 09:41 ..2024_04_11_16_41_07.3713608326/
lrwxrwxrwx. 1 root  123   32 Apr 11 09:41 ..data -> ..2024_04_11_16_41_07.3713608326/
lrwxrwxrwx. 1 root  123   13 Apr 11 09:41 ca.crt -> ..data/ca.crt
-rw-r--r--. 1 root  123 1159 Apr 11 09:41 ca.csr
lrwxrwxrwx. 1 root  123   13 Apr 11 09:41 ca.key -> ..data/ca.key
-rw-r--r--. 1 root  123   41 Apr 11 09:41 ca.srl
-rw-r--r--. 1 root  123  301 Apr 11 09:41 cert.conf
-rw-r--r--. 1 root  123  370 Apr 11 09:41 csr.conf
-rw-r--r--. 1 root  123 1387 Apr 11 09:41 tls.crt
-rw-r--r--. 1 root  123 1679 Apr 11 09:41 tls.key
(base) root@c-mockuser-ed758c49-head-7xn7g:/# exit
exit

$ k exec -it c-mockuser-ed758c49-worker-g-jk6dz -- bash
Defaulted container "ray-worker" out of: ray-worker, proxy, ray-worker-tls (init), wait-gcs-ready (init)
(base) root@c-mockuser-ed758c49-worker-g-jk6dz:/# ll /etc/ray/tls
total 36
drwxrwsrwx. 1 root  123  186 Apr 11 09:41 ./
drwxr-xr-x. 1 root root    6 Apr 11 09:41 ../
drwxr-sr-x. 1 root  123   24 Apr 11 09:41 ..2024_04_11_16_41_07.2639855063/
lrwxrwxrwx. 1 root  123   32 Apr 11 09:41 ..data -> ..2024_04_11_16_41_07.2639855063/
lrwxrwxrwx. 1 root  123   13 Apr 11 09:41 ca.crt -> ..data/ca.crt
-rw-r--r--. 1 root  123 1086 Apr 11 09:41 ca.csr
lrwxrwxrwx. 1 root  123   13 Apr 11 09:41 ca.key -> ..data/ca.key
-rw-r--r--. 1 root  123   41 Apr 11 09:41 ca.srl
-rw-r--r--. 1 root  123  238 Apr 11 09:41 cert.conf
-rw-r--r--. 1 root  123  307 Apr 11 09:41 csr.conf
-rw-r--r--. 1 root  123 1306 Apr 11 09:41 tls.crt
-rw-------. 1 root  123 1679 Apr 11 09:41 tls.key

And since the proxy runs as nonroot (or at least it does on the head node), that would explain the error...

@psschwei I remember that I tweaked some file permission.  I'll look into it.  Thanks!

This is ready for review.  It's using gunicorn as the webserver (wsgi server) now.

I tried to remove the iptables but I couldn't find any other way without them.

Maybe has it sense to use istio for this?

@Tansito I'm not sure if istio can help for this.

Thanks!  I'll merge this finally!

Hahaha really good work @akihikokuroda , thank you ❤


bug: text recipe not generated in version 0.32.0

After updating to 0.32.0, the regenerated styled-system/recipes/index.mjs does not contain a text export, which makes Heading and Text not work.

@FlatMapIO
Thanks for taking your time to create this issue. A file a new release shortly.


Implement management command for importing surfaces

Before releasing the average functionality of #365 , it should be verified by applying it on a large surface like this one: https://contact.engineering/go/8sc7t/
In order to test this locally, we must be able to download and import surfaces. This import can simply be done via management command on the command line, it doesn't have to be a UI function for now (see #239 ).

This is also related to #552 .


there was wrong with tablib export to xlsx, is it a new bug??

ws.cell bug
###formats/_xlsx.py at line 122:
cell = ws.cell('%s%s' % (col_idx, row_number))
TypeError: cell() missing 1 required positional argument: 'column'

I have review the source code and change here from
cell = ws.cell('%s%s' % (col_idx, row_number))

    to

cell = ws['%s%s' % (col_idx, row_number)]

for anyone having this issue https://github.com/jieter/django-tables2/issues/641#issuecomment-450636458

Yes, this is an upstream issue in tablib. Until that's fixed, using tablib==0.11.4 should work.


resource: support resource id for generic resource update

//cc:@davidebbo.
Samples:
az resource update --id /subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/yugangw3/providers/Microsoft.Web/sites/yugangw3-webapp/logs --set properties.applicationLogs.fileSystem.level=Information
az resource update --id /subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/yugangw3/providers/Microsoft.Web/sites/yugangw3-webapp/config/web --set properties.phpVersion=5.6
az resource update --id /subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/yugangw3/providers/Microsoft.Network/virtualNetworks/yugangw3-vnet --set properties.addressSpace.addressPrefixes[0]=<IP_ADDRESS>/16

Great!
As I think about it, the one thing that's a little sticky is that using this requires hard coding the sub ID. e.g. today people write:
az account set --subscription MSDN

And then everything else magically works on that sub.  Not a deal breaker, but just a comment.

@davidebbo, you can still use individual args like resource group, parent, resource type to access and update any resources under current subscription. This PR let you copy and paste the id from any get/list operations and use it to update.
Are you talking about having the resource id arg be a bit flexible by not requiring the full path, rather a relative one and then the command will prefix it based on current active subscription?

Codecov Report

Merging #2640 into master will increase coverage by <.01%.
The diff coverage is 71.42%.

@@            Coverage Diff             @@
##           master    #2640      +/-   ##
==========================================
+ Coverage   71.89%   71.89%   +<.01%
==========================================
  Files         377      377
  Lines       20745    20752       +7
  Branches     3051     3051
==========================================
+ Hits        14914    14920       +6
+ Misses       4896     4893       -3
- Partials      935      939       +4

Impacted Files
Coverage Δ

...rce/azure/cli/command_modules/resource/commands.py
82.43% <ø> (+1.35%)
:arrow_up:

...ource/azure/cli/command_modules/resource/custom.py
55.06% <71.42%> (+0.26%)
:arrow_up:

src/azure-cli-core/azure/cli/core/_util.py
66.66% <0%> (ø)
:arrow_up:

...-cli-role/azure/cli/command_modules/role/custom.py
17.89% <0%> (ø)
:arrow_up:

...dback/azure/cli/command_modules/feedback/custom.py
34.69% <0%> (ø)
:arrow_up:

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 62342bb...9afee10. Read the comment docs.

@davidebbo, please also reference to az resource show -h for how to use individual args to access a resource. The resource update is updated to follow the same pattern. Let me know if you have any questions.

Are you talking about having the resource id arg be a bit flexible by not requiring the full path, rather a relative one and then the command will prefix it based on current active subscription?

Yes, I was thinking along those lines. It doesn't have to happen now, it can always be enhanced later. e.g. via some token replacement:
az resource update --id $sub/resourceGroups/yugangw3/providers/Microsoft.Web/sites/yugangw3-webapp/logs --set properties.applicationLogs.fileSystem.level=Information

Note that we can't always assume there is a sub in the path, as some resources exist outside of subs (e.g. /providers/Microsoft.Web/sourcecontrols/OneDrive).

Note that we can't always assume there is a sub in the path, as some resources exist outside of subs (e.g. /providers/Microsoft.Web/sourcecontrols/OneDrive).

@davidebbo, my understanding is this is not a resource, so az resource commands might not the right commands to handle this. I figure we can let #2607 to handle this?

Ok, if we're guaranteed that it only targets resources that have a sub, then it wouldn't be too farfetched to prepend the sub if it's not there (or maybe just in the starting slash is missing).

Yes,  and we should do it across all resource commands, delete, show, and update


Some Typescript Love

This is a great start but would love to see another project that utilizes TypeScript and highlights how to properly type some of the event and web client API objects.

Great suggestion, @devorbitus! I'd be interested in adding these sort of examples.
Are you looking for TypeScript examples using the Node SDK slackapi/node-slack-sdk or using the Bolt JS framework?

@devorbitus We're going to turn off this getting started app's issue tracker and redirect issues to https://github.com/slackapi/bolt-js/issues under the label area:examples. We think this will ensure that all the issues get the necessary attention and helps our team monitor fewer places.
You're not alone is wanting more Typescript love in the node-slack-sdk and bolt-js projects. If you have the time, I'd suggest creating an issue to create a discussion around what we can do. You may want want to checkout this pull request - I'm unsure if it'll be merged, but it was a team members attempt at adding more Typescript support:
https://github.com/slackapi/node-slack-sdk/pull/1078/files
Thanks again for submitting the first issue to the Getting Started App! 🙌🏻


Add release git tag

@tisimst Thank you for an extremely useful library. I am creating a conda recipe to build it for conda-forge: https://github.com/conda-forge
Would you consider adding tag for the newest version on github. Just add a git tag with the string 0.3.8. That would make it simpler to refer to a specific version on github, and simplify the recipe a bit.
You can see the proposed recipe here: https://github.com/conda-forge/staged-recipes/pull/1046

So. We ended up linking to the pypi source instead. I would rather point directly to the GitHub release, but this will do for now. So there is no rush here.
PyDOE is now on conda forge. See https://github.com/conda-forge/pydoe-feedstock
So with conda, installing is as easy as:
> conda config --add channels conda-forge
> conda install pydoe

@tisimst I will happily add you as maintainer/admin as well. Otherwise, I will just keep it updated.


⚠ Bofrost.de has degraded performance

In 52610b5, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1530 ms

Resolved: Bofrost.de performance has improved in 36044e4 after 28 minutes.


Fix/issue 630 platform dependent flat file implementation

What is this pull request?
Replace platform-dependent filesystem calls with boost::filesystem to improve the portability of the code.
Why do you implement it? Why do we need this pull request?
To improve the portability of the code and fix some issues discussed in the issue #630.
How to use the features provided in the pull request?
No interface change.
Details/Features

Remove unused private functions.
Overhaul of check_consistency(121fce6b)
Replace handwritten/platform-dependent filesystem calls with boost::filesystem.

P.S. (optional)
I have no way to confirm this PR to fix the memory related issue, but hopefully fix the memory leak related to scandir.
https://soramitsu.atlassian.net/browse/IR-409

Codecov Report

Merging #701 into develop will increase coverage by 0.02%.
The diff coverage is 37.5%.

@@             Coverage Diff             @@
##           develop     #701      +/-   ##
===========================================
+ Coverage    43.05%   43.08%   +0.02%
===========================================
  Files          302      302
  Lines        12372    12307      -65
  Branches      6860     6815      -45
===========================================
- Hits          5327     5302      -25
+ Misses         714      710       -4
+ Partials      6331     6295      -36

Impacted Files
Coverage Δ

irohad/ametsuchi/impl/flat_file/flat_file.cpp
35.44% <37.5%> (-4.15%)
:arrow_down:

irohad/ametsuchi/impl/redis_block_query.cpp
36.53% <0%> (-2.4%)
:arrow_down:

test/module/irohad/ametsuchi/ametsuchi_mocks.hpp
64.4% <0%> (+1.07%)
:arrow_up:

test/module/irohad/ametsuchi/block_query_test.cpp
26.82% <0%> (+1.51%)
:arrow_up:

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 078a176...eee9186. Read the comment docs.

Takeda-san, thanks for the contribution! According to Iroha working agreement, we should have at least two approvals, I will assign here additional reviewers

There's just been merged #705 and it's introduce common boost target, so may you rebase and replace the last commit so I can merge it?

I got kind of confused about how to fix CMakeLists.txt. After rabasing onto the latest develop, I use the new target boost. Is this a right correction?
Somehow circleci build failed 😰

@mitsutaka-takeda there was some minor turbulence with docker image. It should be OK now.

One more rebase and we can merge ^_^

Nevermind, I'll finish with that pr. Thanks for your contribution!

Merged in 15ffc45


eMTOC

FYPO:0004624	abolished equatorial microtubule organizing center assembly
Add synonym  "eMTOC absent"
Add comment
Consider also FYPO:0003126	post-anaphase array absent from cell
(post anaphase array is nucleated from the eMTOC)
or should that have a has_output?

"eMTOC absent" would be a structural description, and FYPO:0004624 is a process phenotype (usual distinctions and annotation advice apply), so if I do a synonym it'll be 'related' scope.

I think that is OK... its kins of both
First they show:
Notably, although mitotic cells contained a normal spindle, an EM- TOC was not detected in late anaphase cells (Figure 3, A and C). As a result, septating cells did not contain a PAA of microtubules.
then
Given that the EMTOC was not observed in mto2􏰁 cells, we analyzed the localization of individual 􏰀-TuC compo- nents in mto2􏰁 cells.
Hence, we conclude that mto2􏰁 cells are defective in the localization of the 􏰀-TuC to the EMTOC.
since emtoc=
A microtubule organizing center formed by a band of gamma-tubulin that is recruited to a circumferential band of F-actin at the midpoint of a cell and which nucleates microtubules from the cell division site at the end of mitosis.
PMID:11792817
it seems that assembly is abolished?

added new term
equatorial microtubule organizing center absent from cell FYPO:0005687
and link FYPO:0004624 has_output FYPO:000568
edit file: 774d5dd9b89cea0676a37c022a8b71b72d5d1585
release: e0bbc398974d9c8b721de72cddd6079c2c82ce6a


metadata for sharding-core and sharding-jdbc-core

Fixes #ISSUSE_ID.
Changes proposed in this pull request:

put the core metadata classes into sharding-core.
extends the ShardingMetaData class as JDBCShardingMetaData.

Codecov Report

Merging #741 into dev will decrease coverage by 0.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##              dev     #741      +/-   ##
==========================================
- Coverage   65.71%   65.69%   -0.02%
==========================================
  Files         478      479       +1
  Lines        9261     9262       +1
  Branches     1527     1527
==========================================
- Hits         6086     6085       -1
- Misses       2845     2848       +3
+ Partials      330      329       -1

Impacted Files
Coverage Δ

...ingjdbc/core/parsing/lexer/LexerEngineFactory.java
83.33% <ø> (ø)
:arrow_up:

...metadata/dialect/MySQLShardingMetaDataHandler.java
0% <ø> (ø)

...a/io/shardingjdbc/core/metadata/TableMetaData.java
0% <ø> (ø)

.../core/jdbc/core/datasource/ShardingDataSource.java
19.23% <ø> (ø)
:arrow_up:

.../io/shardingjdbc/core/metadata/ColumnMetaData.java
0% <ø> (ø)

.../jdbc/metadata/ShardingMetaDataHandlerFactory.java
0% <0%> (ø)

...gjdbc/core/jdbc/metadata/JDBCShardingMetaData.java
0% <0%> (ø)

...o/shardingjdbc/core/metadata/ShardingMetaData.java
0% <0%> (ø)

...jdbc/metadata/dialect/ShardingMetaDataHandler.java
0% <0%> (ø)

.../internal/config/ConfigurationListenerManager.java
71.42% <0%> (-3.58%)
:arrow_down:

... and 1 more

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 e5fec6f...ff0268f. Read the comment docs.


Slideshow: Refactors slides code and fixes multiple bugs

This PR splits code for the different slide types into multiple files (a file for each type, for now) and implements logic for managing when slides would stop/start based on whether they are hidden or displayed.
Changes

Splits the Slide.js file into Slide/* files for each type
Creates an inheritance structure with GenericSlide being the parent component and every other slide type inherits from it
Fix: The slideshow will now wait for a slide to finish loading before it starts the timer
Fix: Youtube videos will now restart every time they are displayed again

@p0wndizz7e @binicij From what I understand this creates one higher level of abstraction for the slides? Can this get some feedback from you guys as well

That's correct and I added the abstraction mostly because the Slide.js file got too big after I tried to a make it wait for each slide to load (since for example, photos have a different way of seeing whether they are done loading than say youtube)


investigate implications for the module set build of promoting modules to v2 on github

The public module set build scrapes all repos on github to check if they contain a module.yml on the master branch. Once we promote a module to v2, this will no longer be the case so the module set build will exclude that module. Investigate the implications for the docs and the RPM builds.

encapsulated in irt#806.


Updated master branch

Luckily with no sensitive information, I accidentally create a pull request to this original repository instead of our fork for the course of Green Lab at the Vu.


File descriptor leaked when opening an illegal file as sqlite database

Reproducer:

open a random .exe file as db (probably works with other non-sqlite files as well) using SQliteConfig.createConnection("jdbc:sqlite:path-to-file.exe")
catch the resulting Exception (Sqlite ErrorCode is NotADb) and keep the java process running

Result:

with a process inspector or similar you should be able to see, that the java process still has the db-file open
on windows it will not be possible to delete the file

I have tracked the problem down to the SQLiteConnection-constructor with code similar to this:
public SQLiteConnection(String url, String fileName, Properties prop) throws SQLException {
    this.db = open(url, fileName, prop);
    SQLiteConfig config = db.getConfig();
    this.connectionConfig = db.getConfig().newConnectionConfig();
    config.apply(this);
}

the file is opened in the open() call and the exception is thrown in config.apply(). Also there seems to be no GC finalizer that cleans up when the DB-instance is collected.

A possible fix could be:
    public SQLiteConnection(String url, String fileName, Properties prop) throws SQLException {
        try {
            this.db = open(url, fileName, prop);
            SQLiteConfig config = db.getConfig();
            this.connectionConfig = db.getConfig().newConnectionConfig();
            config.apply(this);
        } catch (Throwable t) {
            try {
                if (this.db != null) {
                    db.close();
                }
            } catch (Exception e) {
                t.addSuppressed(e);
            }
            throw t;
        }
    }

Hello World


[Programmatic Issue: Image Resizer]: Incorrect role is defined for 'Create new Size', Delete and Settings control as Hyperlink.

[File Explorer(System) > Settings > Image Resizer]
User Experience:
It will impact both keyboard and screen reader if the incorrect role is defined in code.
Test Environment:
OS Version: 20221.1000
App Name: Power Toy Preview
App Version: v0.23.0
Screen Reader: Narrator
Repro Steps:
"1. Open File Explorer using Win+E key.
2. Navigate to any photo and press right click.
3. Navigate to 'Image Resizer' and activate it. Image Resizer will open.
4. Navigate to Setings element and verify the issue.
Actual Result:
Incorrect role is defined for 'Create new Size', Delete and Settings control. Role is defined as hyperlink in code.
Expected Result:
Correct role should bed defined for 'Create new Size', Delete and Settings control. It should be defined as button for those controls.
MAS Reference:
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={248054a6-5e68-4771-9e1e-242fb5025730}
88_Image Resizer_MAS4.1.2_Delete.zip

Shipped with 0.27 release. https://github.com/microsoft/PowerToys/releases/tag/v0.27.0

Control is no longer available. Verified on OS version: 20257.1, App Version: v0.27.0


Write blog post about Dagster

Spend about 4 hours writing up our findings in #1487.
@zaneselvans should this be a "Prefect vs Dagster" post or just "Here's what we need from an orchestration tool and what we like about Dagster"?

I think probably more of a focus on what we like about Dagster and how we see it improving our system -- what will it make easier, what users might see from it, what problems it solves for us, etc.

See here: https://dagster.io/blog/catalyst-cooperative-case-study


How to SELECT a database?

I think selecting the database of the redis server should be an option in the configuration option. I cannot find any option for that. Is there a way to make it use a different one?
https://redis.io/commands/select
EDIT: My confusion comes from the fact that using the trailing slash notation e.g. <url>/1 only works when you use the protocol redis://<url>/1 in front. However this is surprising because we are using SSL, hence redis://should be rediss://
Maybe it can be improved that it always takes the /<dbnumber>?

@BSVogler, thank you for the suggestion. Redis Data Source based on the Radix client, which follows Redis schema: https://www.iana.org/assignments/uri-schemes/prov/redis.
Looking at the schema, rediss:// is supported by some clients to enable TLS  and is not a part of the standard. The Radix client controls TLS by using a special flag:
Apparently named by analogy to HTTPS (RFC 2818), the rediss: URI scheme (yes, two "s"es, not a typo) has been used by some clients to designate RESP over TLS. Other than the usage of TLS, the rediss: URI scheme is not known to have any differences from the redis: URI scheme.

Looking at the standard, db-number is specified as a part of the URI, and not simple notation.
I believe that using 'redis://ip:port/db-name` with TLS enabled is clear enough according to the standard.
Please let me know if it's clear. We can add an explanation in the documentation if required.

Thanks for clarifying that. It is fair that since rediss it is not officially part of the standard you wont't support it.
Since the connection string accepts the URI and it is clear that it a redis connection, why is redis://ip:port/db-name as well as ip:port okay,  but not ip:port/db-name? Whenever the protocol part is missing it could be automatically inferred.

@BSVogler, I prefer to avoid address manipulation in the Data Source and send it as is to the Radix client.
One of the reason, the Data Source supports Standalone, Socket, Cluster and Sentinel types of connections. I have not tested db-name functionality in all of those modes and it will require further investigation on how adding db-name behaves.
I can think of introducing the helper, which can recommend to add redis:// to support db-name so it will be transparent for the end-users.
Let me know.

I would very welcome any change which improves the UX when setting up the connection. When I tried to set up redis I initially thought that the plug-in is broken because neither the rediss protocol worked nor removing the protocol.

@BSVogler, I appreciate the feedback and will work on improving the UX.
Please let me know if there is anything else.

@BSVogler, I am thinking to add SELECT database functionality as a separate option and execute the SELECT command when opening a new connection. Let me know if you will be interested to try it.

yes, would be interested in that.

:wave: have been giving this plugin a go today so thought i'd share my UX feedback.  Caveat: fully appreciate it's probably just a product of the way we use redis.
We have a multi-tenant redis instance and make use of about 10 databases on it (for different domains).  I was hoping to just be able to pick the database as part of the explore or query, but I can't.  My only other option is to set up 10 datasources for each database, which seems somewhat overkill!

Hi @BSVogler @Stono, sorry for the delayed response.
Let me first start off by saying that generally speaking, using numbered databases in Redis is considered an anti-pattern, and their introduction is Salvatore's (the creator of Redis) biggest design regret about Redis.
WRT to support for it in the data source: IMO how it works now (as part of the data source configuration) is the correct behavior.
The command that switches between databases (SELECT), is a connection modifying command. After the connection runs it, it alters the state of the connection to point to the selected database. The connection will not switch back until it is instructed to do so. Since the data source pools and resues these connections, it means that you expose yourself to all sorts of undefined behaviors (misconfiguration, race conditions, etc. . .) It is a vital part of the operation of the connection to have a predictable database selected, consequentially it should be solely part of the data source's configuration. So I don't see us changing this.
The "Redis Way" to do what you are doing with databases @Stono - would be to namespace your keys to each domain - e.g.
domain-1:hash:12345
domain-2:hash:43216

It might be a design regret but it's a supported feature, and works well for us to isolate applications on multi tenant instances.
We used to be in redis/0 with key prefixes, but people ended up forgetting, using the same keys, etc.  Having isolated databases per application stops people using redis as a means of sharing data between microservices, which is something we don't encourage.   From an observability and alerting perspective, it's far easier to see things like usage by application when they're isolated by db, rather than by key prefix.
We've no intent on changing this strategy either :D so I'll likely look to fork this and try and implement the changes for my admittedly sufficiently unique use case, as it's most of the way towards what I need!
Ta

Sounds good - data source is under an Apache-2.0 license, Grafana supports privately signed/unsigned plugins so easy enough to fork and do your own thing - the dev guide is available here - I found it quite helpful.

Let me first start off by saying that generally speaking, using numbered databases in Redis is considered an anti-pattern, and their introduction is Salvatore's (the creator of Redis) biggest design regret about Redis.

I was aware of it being an antipattern but Salvatore overlooks some use-cases. Let me share my experience to explain why the support for multiple dbs is a good feature. We use it to split one instance to serve multiple non-production environments. This way the key space operates in isolation.
Prefixing can solve this but it expects that every client command in your application logic follows the prefix and you can easily bypass it. I. e. Some third-party libs that use redis would be colliding in key space then. Getting more instances per environment is not cost-efficient and wastes resources.
I have not used the redis with grafana in a while but I hope to go back to it soon and check it out. Thanks.


tweak to /matt/hmd-bake-spinner

please modify this scene's VR camera nested patch to include the boolean toggle:

... and resave. The camera should then stop responding to panning/motion.

done
http://vizor.io/matt/hmd-bake-spinner


[issue-question] PrintManagement module

Although PrintManagement module and get-CimInstance cmdlet use the same WMI class, the behavior is different.
Steps to reproduce
Membership of user account is just Domain Users.
> gcim MSFT_printer -Namespace ROOT/StandardCimv2 -comp ps1
Get-CimInstance : Access denied.

> get-printer -comp ps1

Name                           ComputerName    Type         DriverName                PortName        Shared
----                           ------------    ----         ----------                --------        ------
PF508-Konica454                ps1             Local        KONICA MINOLTA Univers... IP_192.168.1... True
PF505-Konica458-2              ps1             Local        KONICA MINOLTA Univers... IP_192.168.1... True
PF418-Konica300                ps1             Local        KONICA MINOLTA Univers... IP_192.168.1... True

Environment data
Name                           Value
----                           -----
PSVersion                      7.1.0
PSEdition                      Core
GitCommitId                    7.1.0
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

What's the "secret" of the PrintManagement module?

When you do Get-CimInstance ... -ComputerName ps1 you are connecting over WSMan to ps1 and running the CIM query on that host in question. It's very similar to doing
Invoke-Command -ComputerName ps1 -ScriptBlock {
    Get-CimInstance -ClassName MSFT_Printer -Namespace Root/StandardCimV2
}

Looking at the MSFT_Printer class I can see that ComputerName is an actual property of this class which states:

The name of the server which this printer resides on.

So my guess is that Get-Printer -ComputerName ps1 isn't actually using WSMan to connect to ps1 but is instead doing something like the following:
Get-CimInstance -ClassName MSFT_Printer -Namespace ROOT/StandardCimV2 -Filter "ComputerName='ps1'"

And this essentially is getting all the printers on the localhost that are shared through ps1 rather than connecting to ps1 and getting the printers on that host.

So my guess is that Get-Printer -ComputerName ps1 isn't actually using WSMan to connect to ps1 but is instead doing something like the following:

It is a technical nonsense, because expression Get-CimInstance -ClassName MSFT_Printer -Namespace ROOT/StandardCimV2 -Filter "ComputerName='ps1'" makes a local query and filter looks strange, and output is useless.

If it's a standard (non-admin) account then it might not have access to get the WMI info

Agree.
> gwmi MSFT_printer -Namespace ROOT/StandardCimv2 -comp ps1
gwmi : Access denied.

It might be technical nonsense but it is what is happening. The ComputerName parameter exposed by Get-Printer just relates to the ComputerName property on the CIM class. It's not like the ComputerName parameter on things like Get-Process, Get-Service, Invoke-Command which is designed to run on the remote host specified. The CDXML cmdlets are basically a cmdlet definition in XML that maps the CIM class specified in the XML to a cmdlet automatically.


Add logging

Issue type

[x] Enhancement/feature request

Expected Behavior

Create standard logs that can be appended to

[ ] Console
[ ] File
[ ] HTTP requests

Current Behavior

N/A.
Possible Solution: winston

winston appears to be the most popular logging solution for Nodejs. See NPMCompare's comparison of bunyan vs. log4js vs. winston.
Context

Your Environment

Version used:
Environment name and version (e.g. Chrome 39, node.js 5.4):
Operating System and version (desktop or mobile):
Link to your project:

I might reject this issue, since ESLint provides its own logging.

Added bunyan as part of #41 .


Figure out how to track the window size to show the annotation menu

We need to remove the annotationMenuPosition property from the components that have it.

I've tried doing this with the main window in electron but it only updates once and we need to know the updated width every time users resize the window.
mainWindow.once('resize', () => {
  settings.updateSettingsFromWindow(mainWindow!);
});

Ended up using window.innerWidth to get the window size in the annotation menu component.
Moved annotation menu window to the right of the screen so that it does not overlap any selections people are making.
Maybe for the output mode it's better that we show the errors in the menu right next to the cell so I left it as is for now.
Pushed to the development branch.


error with properties return value enum

Describe the bug
all mark return enum error because it have value.
To Reproduce
Steps to reproduce the behavior:

Go to Snoop family instance
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Yes, there is not a class to match Enum type now. I will add it.


Allow larger message sizes than 65k at own risk

I know you setup a max size to avoid small servers running out of memory, but for our case we need to store some messages briefly larger than 65k, so I made an option that will allow for large messages as an override. This way it defaults to your limit, but users who need the extra umph can go at their own risk

I would very much like to see this option included as well, I agree that it is good to keep things small but I don't see why it is strictly enforced.

I just pushed 0.8.0 that supports a maxsize=-1option.
https://www.npmjs.com/package/rsmq


sops metadata not found

I keep getting Error loading file metadata: sops metadata not found when trying to interact with any secret files using helm-wrapper (see output below). I wonder if it is an issue with sops v3, or using GCP KMS, or if I am missing any config. Any help would be appreciated!
>   sops -v                                                                                ---
sops 3.0.0 (latest)
------------------------------------------------------------
>   cat .sops.yaml                                                                                ---
creation_rules:
    - gcp-kms: 'projects/my-gcp-project/locations/global/keyRings/sops/cryptoKeys/my-app'
------------------------------------------------------------
>   cat k8s/my-app/secrets.yaml                                                                                ---
SECRET_1: ENC[AES256_GCM,data:<data>,iv:<iv>=,tag:<tag>==,type:str]
SECRET_2: ENC[AES256_GCM,data:<data>,iv:<iv>=,tag:<tag>==,type:str]
SECRET_3: ENC[AES256_GCM,data:<data>,iv:<iv>=,tag:<tag>==,type:str]
sops:
    kms: []
    gcp_kms:
    -   resource_id: projects/cz-kms/locations/global/keyRings/sops/cryptoKeys/my-app
        created_at: '2017-10-12T02:50:29Z'
        enc: <enc_data>
    lastmodified: '2017-10-12T02:50:48Z'
    mac: <enc_data>
    pgp: []
    unencrypted_suffix: _unencrypted
    version: 3.0.0
------------------------------------------------------------
>   sops -d k8s/my-app/secrets.yaml                                                            ---
[GCPKMS]	 WARN[0000] Decryption succeeded                          resourceID=projects/cz-kms/locations/global/keyRings/sops/cryptoKeys/my-app
[SOPS]	 INFO[0000] Data key recovered successfully
SECRET_1: foo
SECRET_2: bar
SECRET_3: baz
------------------------------------------------------------
>   helm-wrapper secrets view k8s/my-app/secrets.yaml                                          ---

Error loading file metadata: sops metadata not found
Error: plugin "secrets" exited with error

------------------------------------------------------------

I can't reproduce.
helm-wrapper secrets view example/helm_vars/secrets.yaml

[PGP]	 INFO[0000] Decryption succeeded                          fingerprint=4434EA5D05F10F59D0DF7399AF1D073646ED4927
[SOPS]	 INFO[0000] Data key recovered successfully
global_secret: global_bar

All files from test vars decrypting and tests are passing.
+++ Testing ./example/helm_vars/projectX/production/us-east-1/java-app/secrets.yaml
+++ Encrypt and Test
[OK] File properly encrypted
+++ Test if 'Already Encrypted' feature works
[OK] Already Encrypted
+++ View encrypted Test
[PGP]	 INFO[0000] Decryption succeeded                          fingerprint=4434EA5D05F10F59D0DF7399AF1D073646ED4927
[SOPS]	 INFO[0000] Data key recovered successfully
[OK] File decrypted and viewable
+++ Decrypt
[PGP]	 INFO[0000] Decryption succeeded                          fingerprint=4434EA5D05F10F59D0DF7399AF1D073646ED4927
[SOPS]	 INFO[0000] Data key recovered successfully
[OK] File decrypted
+++ Cleanup Test
[OK] Cleanup specified directory
[OK] Cleanup specified .dec file
[OK] Cleanup specified encrypted secret file
+++ Once again Encrypt and Test
[PGP]	 INFO[0001] Encryption succeeded                          fingerprint=4434EA5D05F10F59D0DF7399AF1D073646ED4927

cat  ./example/helm_vars/projectX/production/us-east-1/java-app/secrets.yaml
secret_production_projectx: ENC[AES256_GCM,data:q3OzzTF7IYAHIiDiz5U=,iv:hOrad3FgXdJEWvSFwcLApltEPU07fsNSzB6rHLp74oc=,tag:LFcngS1VSXZjxMMS4ue+sQ==,type:str]
sops:
    kms: []
    gcp_kms: []
    lastmodified: '2017-11-02T22:01:01Z'
    mac: ENC[AES256_GCM,data:MGvrYH/kXZEZuOS5hjTRWzhSaNbiaURDygwJcGJ9qW0Duv0WjoBs9Cm02dw+HNq+YhOG0rrqtA6r1CvTrI59tB2Xwq6s72brIZPsHkYp5bWD9+p7F3rVkxyVhF70/o+Q6cPxxkuNUpg0KdaujfsHcITYQkS7R4Vy+7NlSFP8UUk=,iv:t3y+9G0uHipF7VpuvNK2lzYGrfU5vRkd2/5ZRqIYz50=,tag:FZ9RTsyZTJTxkMDqsVQyLA==,type:str]
    pgp:
    -   created_at: '2017-11-02T22:01:00Z'
        enc: |-
            -----BEGIN PGP MESSAGE-----

            wcFMAxYpv4YXKfBAARAAhDNN4UXwq0FvWUX+S4Q15IeEb24efBpF7vP2zUz9UBAM
            SiHmToyB8FcOMeHIQACZxM8BGzuc0IDoZUfnsDrNMyNCxbiddXMMB+L8Z7T3QzfL
            IzDj20kVPSrsgzYmfQ1eZ/WIRonXSSQ/c4ZP/7dtRHZ38qFFwFua8JtEmTPWeSUq
            tIv6ZmKQ73Gzmbp06kVB412fMP8ZMIVzP5XOMX1uTUPl8hvOY/gqGI0qMpyZ4ZBk
            woFvby4BjkdHlCJZjFbWHwpIwYvSyOF6tm+Ew9Dp9OK7ogpDAdHhdPTHl+AGKPSB
            ov76E/pnEkJf10U7gEpPJWuNYGt5kQWqyCy4+hv8FlXCjXI+YV8ucI+vPvOBw6Ok
            OSsKOIWJNnS4ZxJbzZnHWT3b5HYIDVNLyPupwSNemNsEjSzxSjLIyYrbI2WfU+N+
            dhclW9nD1PWuhLAtvYAs1tjNiH7uG7gZqjieEDF0+muJ0PGdwxEdlFQ2ih71bfsZ
            ZyzUPuV8VVw0hIbUxev17zlJYV+ZTmVsPziOJQOB+/9zB8YjCybON6wXMUPVAv6f
            sNjbyCj4ub2mioCqdheWZphg0CAFMYnzK6fUYLPF+uRHPCHZrBhG5vVTbwPJrBkh
            HeFc2jfnNbZSFOWJyQ/Osll3oPAD3lEZZD6QzfiSR28ieWq/+qa2+BFATjDINejS
            4AHkE/bm/FCbM2YfJmGClGJ01eGR0OAc4EDhs4vgceINK5lT4C/lgCwI5jiFH+DV
            jYeiufTT0OE/88kwCTnEah3GzarCWILgx+S3OYj7eaT+lpRG9GDiGlRg4pC+oMjh
            g3kA
            =WURo
            -----END PGP MESSAGE-----
        fp: 4434EA5D05F10F59D0DF7399AF1D073646ED4927
    unencrypted_suffix: _unencrypted
    version: 3.0.0

Thanks for the response. In your example did it actually use GCPKMS or PGP? ([PGP]	 INFO[0000] Decryption succeeded ) I was able to get it working with PGP but with GCPKMS I still get Error loading file metadata: sops metadata not found Error: plugin "secrets" exited with error

Hi,
The TL; DR is rename gcp-kms to gcp_kms in your .sops.yaml file
I bet you encrypted that file using sops with gcp kms but not using the .sops.yaml file described above, then this was failing when trying to decrypt because of the wrong key being used, I was also using that wrong key name (I'm not sure why) and producing encrypted files without any metadata into the sop metadata section for that backend, then I realize of the silly mistake I was doing.
You can confirm the key name in both any encrypted file (even if is using other encryption backend, you will see it as empty however) and into this line within sops code itself
Also In general GCP kms is under documented in both this project and sops, I might create some PR to help documenting this now that I'm planing on start using this.
Bye

Thank you! Very much appreciated!

It is no longer needed since it is part of helm command now.
helm secrets edit secrets.yaml should be enough.


Fix C# single-job distribtests jobs when version has no suffix (on v1.44.x branch)

Spotted on the release branch:
https://source.cloud.google.com/results/invocations/dc324217-4104-4606-8c03-b647d9cd5ec9/targets/github%2Fgrpc%2Fbuild_packages/tests
+ sed -ibak 's/<\/GrpcCsharpVersion>/.singleplatform<\/GrpcCsharpVersion>/' build/dependencies.props
+ dotnet restore Grpc.sln
  Determining projects to restore...
/usr/share/dotnet/sdk/6.0.100/NuGet.targets(130,5): error : '2.44.0.singleplatform' is not a valid version string. (Parameter 'value') [/var/local/git/grpc/src/csharp/Grpc.sln]

it only affects the singleplatform C# distribtest (and thus it doesn't affect the "full" multiplatform C# nuget and distribtest",
but it should be fixed anyway.

ios binary size diff failure unrelated


make resource creation optional

If that looks good, will make a PR to in4it!

This looks good @ludov04 👍

I PRed ward :)


Do we need two separate instances of peer server?

Thank you, @lolaodelola for the tutorial!
I'm not sure we need to host the peerServer at the port 8000:
https://github.com/SamsungInternet/WebPhone/blob/e8717bab303a15e35651020437a349b4fbfe85f6/tutorial/server.js/final.js#L21
I think it's not necessary, because we create a separate instance of the peer server via CLI in this step:
peerjs --port 443 --key peerjs --path /myapp

The client peer instance https://github.com/SamsungInternet/WebPhone/blob/e8717bab303a15e35651020437a349b4fbfe85f6/tutorial/script.js/final.js#L9
connects to the peer server at port 443.
So, it seems that express server (8000) is needed only to host the web app.

@lolaodelola After thinking about it:
Perhaps we need an extra peerServer at 8000 to bypass possible "Symmetric NAT restriction", i.e. TURN?


Generate sighash.json file with valid raw transaction data

Description
src/test/data/sighash.json contains data for raw transactions (meaning unsigned txs that can be signed) and this is simulated during the unit test execution.
Because of the different hashing algorithm used (keccak instead of double sha256) in BGL (in comparison to BTC from where the code is derived), this file has to be regenerated for this tests section to pass.
The test section is commented out and located in src/test/sighash_tests.cpp
Solution direction
The only differences should be only hashing algorithm used for txs (keccak) and that transactions are required to be segwit ('new' type).

Check test section in sighash_tests.cpp;
Build and run unit test executable and see the section failing;
Create a dataset that will pass the test (there are keccak3 utils/online tools, etc.)
Fix transaction data that can be fixed, include new testing data if removed some to keep test robust enough;

Acceptance criteria

sighash_tests.cpp is running BOOST_AUTO_TEST_CASE(sighash_from_data) properly;
there are numerous test cases defined in the json file (maybe fewer than in original one, but not by order of magnitude);

@van-orton
./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768" --with-boost-unit-test-framework=boost_unit_test_framework-gcc
Please is the above configuration correct for the test? And which command should I use to run the unit test?

@gitcoinbot  I would PR within 36 hours .


Make cURL proxy header calculation bug workaround configurable

As discussed in #190, this PR adds a configuration option that is designed to be set by users with old cURL versions but where the vendor has backported a fix for the specific bug that was being worked around (again, see #190 for more detail). In that case, we need to allow users the option of disabling our workaround, since there is no reliable way to detect the presence of the fix at runtime.

This is only failing CI because of an unrelated issue - v1-master's autoload function is not conventionally named.

:+1: :ship: :it:

I tested this new configurable feature under RedHat 7.1 and 7.2 (latter has the patched libcurl). I found that using this new flag to disable the workaround, made our code functional again on both of our machines. Please do tell if there's anything more I can help with in order to get this to packagist.org.

This looks great! Thank you for the work and discussion on this. I have fixed the tests and will merge and tag once they pass.

@Gemmu  tagged in 1.1.7. Go forth and Packagist.


Training time

Hello, Thank you for your sharing codes.
Could you please tell me how long does it take you to train this model (TFC_TDF_Net (large))?
In my setup, one 2080ti, batch_size=8, it takes 12 minutes for every epoch. It means that I need to wait 17 days for 2000 epochs. It looks like unreasonable. Is this the same as your training time?
Looking forward to you.

Hi @ujscjj,
A large version of the TFC_TDF_Net is quite large.
I don't recall it exactly, but it takes at least four days to train on four 2080ti.
Unfortunately, if you are using a single 2080ti, you may wait more than two weeks for the convergence.

Got it. Thank you.


Save stdout contents to a file in trace mode

Implemenetation Ideas

Change the PyKhiopsLocalRunner's _run method so that it captures the stdout and save them to an specific log file

Implemented in #119


Add PFMERGE command.

https://redis.io/commands/pfmerge/
Depends on #167 which depends on #166

Round


NMSlib fails with > 10e6 samples

Hi all!
I'm trying to apply NMSlib to a very large dataset (1.3M samples) with the 'cosinesimil_sparse_fast' space metric. I've implemented a custom script to call NMSlib, and everything works neatly up to some hundred thousands of samples. Yet, when I try to analyze bigger datasets, I get the following error:
Check failed: resQty == pVal2 - val2
Check failed: resQty == pVal2 - val2
Check failed: resQty == pVal2 - val2
Check failed: resQty == pVal2 - val2
Check failed: resQty == pVal2 - val2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/davisidarta/anaconda3/lib/python3.7/site-packages/dbmap/diffusion.py", line 133, in fit  #This is my library
    verbose=self.verbose).fit(data)
  File "/home/davisidarta/anaconda3/lib/python3.7/site-packages/dbmap/ann.py", line 216, in fit      # This is my custom NMSlib script
    self.nmslib_.createIndex(index_time_params)
RuntimeError: Check failed: it's either a bug or inconsistent data!

Any insights on what might be happening here? I've checked and re-checked the input data, and subsampling it to 50% of its original size doesn't return the same error, neither does running the command with similar datasets. All inputs are csr sparse matrices. I'm running python 3.8 on a arch-based HPCC.

Is it sparse data? There's a bug that is fixed, but not pushed to master/pypi where an empty vector causes an exception.

Thank you for answering @searchivarius. Yes, I'm using sparse data. Yet, I don't think I have any empty vectors within this data. All my nmslib installations are through pypi.

@davisidarta which space do you use?

I used the 'cosinesimil_sparse_fast' space for this specific example. The same space runs flawlessly on subset data.

I was able to solve the problem after checking more carefully for empty AND near-empty vectors. Everything runs smoothly now. BTW: NMSlib takes about 15min to run on this data using 10 cores (biggest biological dataset available). What a fantastic library! Thank you for the help and attention, @searchivarius !

@davisidarta thanks a lot for checking, could you explain what near-empty vectors are?
PS: I wish we had a more production-ready library.

@searchivarius  By 'near-empty' vectors I meant vectors with <100 non-null observations. Removing those solved the problem. Apparently that can become an issue as the data grow larger, as I've never faced it before even when dealing with similarly sparse but smaller data with as few as 50 non-null observations per sample.

ohh no this isn't right. and it should be relatively easy to reproduce. could you share these vectors?


how can i get Japanese name?

I changed "await client.load_lang()" in  this code section to "await client.load_lang(lang='jp') and executed the code, but I could not get it in Japanese Properly.
How can i get it in Japanese?
i use python 3.12.1 in Windows10, VS Code 1.85.1, and ver. 1.2.1 enka.py.

Add client.lang='jp' before await client.load_lang('jp')

Add client.lang='jp' before await client.load_lang('jp')
Probably I should change this in future, let load_lang set the self.lang automatically

oh, thanks!
it worked!


Prevent duplicate pushes to same device by having uniqush store and handle device_id for subscriptions

Store device id in uniqush, with option to make it uniquely identify user's device+PSP.

e.g. identifierForVendor in APNS

If there is no device_id in a subscription request, do nothing (same as before)
Through a config option,
If there is a device_id in a registration request, and there is a mapping from that device_id to an older, different subscription (e.g. different regid or device token), then remove the device id.
Have a new redis HASH to store this mapping (PSP id + device ID -> unique DP id) . Remove the key from this hash if a subscription is removed (only manage the hash if the config is true)
Optionally, allow using device id (+ same filters on services) as an alternate identifier to unsubscribe

Duplicate subscriptions can be made (in APNS) if the app is uninstalled (without unsubscribing) and reinstalled. There end up being two different device tokens, both of which are valid.

Hi Tyson,
Is there a plan to do this case sooner?
-Karthik

Eventually, but probably after FCM support and APNS HTTP2 support

Hi Tyson,
Thanks for the reply.
-Karthik

https://github.com/uniqush/uniqush-push/pull/217/files will allow tracking device ids.
With that branch, clients can add device ids when subscribing, and then manually fetch subscriptions unsubscribe duplicate device ids.

Having uniqush-push automatically do this for the client still needs to be done


静态图相关待进一步优化LIST

静态图模式下存在以下问题，我们将持续优化：

trace 后的函数无法继续求导
jit.trace 和 jit.sideeffect 不支持复杂嵌套

TESTIMONY ON HOW I BECAME INSTANT MILLIONAIRE WITH THE HELP OF THE ILLUMINATI. MAIL THE COUNCIL AT<EMAIL_ADDRESS>)
Hello everyone, i have to write this testimony because of people out there who also will like to join the Illuminati, because i am really happy to be member of Illuminati cult society today, i have been searching for the right hand to join this organization of Illuminati i finally got this nice Prof.Monday and Barr. Mikhail ,who help me in joining even when i was asked to buy all the items my self which i did for the initiation. though it cost me some money, but every thing went out successfully, and an instant sum of 1,000,000,000.00 US dollars was given to me with a free home of my choice in CALIFORNIA USA. And also, power, influence, good position fame including $300,000,000.00 dollars monthly as a salary for me. If you are interested contact the Illuminati full membership council through this email address above . Today my family and i are  happy for following the Light. See you there. You may WHATSAPP CHAT HELPING MEMBERS  at +13252429274 for special information on how to be a full member


URL with ?amp query var unexpectedly fails AMP URL test

This URL is failing the AMP URL test: https://www.history101.com/vikingfacts/?amp
Results: https://ampbench.appspot.com/validate?url=https%3A%2F%2Fwww.history101.com%2Fvikingfacts%2F%3Famp

Nevertheless, this AMP URL also with ?amp is passing the AMP URL test:
https://make.xwp.co/2019/03/15/7-experiences-that-create-team/?amp
Results: https://ampbench.appspot.com/validate?url=https%3A%2F%2Fmake.xwp.co%2F2019%2F03%2F15%2F7-experiences-that-create-team%2F%3Famp

What's the difference? This is of concern for the AMP WordPress plugin because we are moving to ?amp for all paired AMP URLs.

I think the issue is that the "AMP URL" label is misleading. This is not validating the format of the URL, but actually checks whether that page is valid AMP.
The "FAIL" comes from the AMP validation output that you can see when scrolling down on https://ampbench.appspot.com/validate?url=https%3A%2F%2Fwww.history101.com%2Fvikingfacts%2F%3Famp:

tl;dr everything works correctly in AMP Bench

@swissspidy is correct: the "AMP URL" status is misleading. It doesn't do anything to validating the URL itself  (AMP has no requirements here) but whether the document itself is valid. I guess it should read "AMP valid?" or similar. Will create a PR to fix this.

@ithinkihaveacat Humm. The main validator doesn't report an error:
https://validator.ampproject.org/#url=https%3A%2F%2Fwww.history101.com%2Fvikingfacts%2F%3Famp
Is AMP Bench's validator stale?

Uh yes you're right, the validator was stale. Fixing that problem is #97…


Location.base should always be an include root

As far as I can tell, Location has always been busted in practice - base, intended to be a "root" of some kind, has always been the full path to a file's parent directory, and "path" (intended to be a path relative to base) has just been a file name.
This makes Location little better than a string with line numbers in it - not all that useful.  In this PR, we fix what turns out to be the sole location (outside of tests) where Locations are created.  We do this by, when loading files from disk to parse, cycling through all of our include-roots, looking for the one with the shortest relative distance between the root and the file being loaded.
This isn't bulletproof since thrift files can include relative paths, and so potentially include files that aren't contained in any of our roots.  In that case, we'll keep the current behavior of calling the file's directory the location base.
This also isn't ideal - you could argue that, if a file under root A relatively includes a file under root B, and that included file wouldn't have otherwise been part of the compilation, that maybe A is the more useful attribution.  In the name of implementation simplicity, I disclaim that use case :)
@jparise I'd be grateful for your thoughts, if you've got the time and inclination.
Fixes #237

Codecov Report

Merging #416 (e0e0cee) into master (84bd3f5) will increase coverage by 0.04%.
The diff coverage is 76.92%.

@@             Coverage Diff              @@
##             master     #416      +/-   ##
============================================
+ Coverage     59.71%   59.75%   +0.04%
- Complexity      789      793       +4
============================================
  Files            60       60
  Lines          5488     5499      +11
  Branches        860      863       +3
============================================
+ Hits           3277     3286       +9
- Misses         1967     1969       +2
  Partials        244      244

Impacted Files
Coverage Δ
Complexity Δ

...main/kotlin/com/microsoft/thrifty/schema/Loader.kt
73.21% <76.92%> (+0.93%)
32.00 <3.00> (+4.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 84bd3f5...e0e0cee. Read the comment docs.


Static site generation failing due to depreciated har-validator package.

See: https://github.com/cypress-io/cypress/issues/19102
tl;dr Cypress fails on CI due to deprecated har-validator dependency which causes the Upptime static site generation to fail.
This is a multi-stage bug as the CI step in within the Github Action is not failing despite the internal step failing (i.e. it is reporting the static website CI step is working when it is not.)

Snip:
><EMAIL_ADDRESS>postinstall /home/runner/work/upptime/upptime/site/node_modules/cypress
> node index.js --exec install

internal/modules/cjs/loader.js:905
  throw err;
  ^

Error: Cannot find module 'har-validator'

This may get fixed upstream before long.


Moving post analysis scripts to new folder

They should not be in src/qfit.

This was closed by #84 .


Per-realm notification settings (formerly "Fine grained notification settings")

At the highest level, per-ream notification settings seem like they would be pretty useful.
In a more specific use-case, per-stream or even per-topic settings would be nice. Specifically, we're looking to use Zulip as part of our alerting system for the devops team, and being able to "mute everything except this stream/topic" would help.

Yes it will be a good improvement, @borisyankov Should I start working on this ?

Though I don't think per topic notification would be good, but per stream would be nice

This feature can be given to a user as an option to choose from. This would be pretty sweet if implemented correctly. I would like to work on it, but I don't think this is anywhere on the priority list.

I don't have an update on per-realm notification settings, but there's been some work on stream-level notification settings.
When https://github.com/zulip/zulip-mobile/issues/3449 was closed with the merge of https://github.com/zulip/zulip-mobile/pull/3765 (commit https://github.com/zulip/zulip-mobile/commit/3b9246735d0f68b3bb14426fc4c73637ade5ed63), now, stream notifications without an explicit setting will default to the user's general push notification setting. So you could "mute everything except this stream" by setting your user-level setting to off, and explicitly marking one stream as on. Hope this helps. 🙂

Ah, actually, looking at the code and with some manual testing, it appears that "Notifications when offline" and "Notifications when online" are being correctly set per-realm, but "Stream notifications" are not. That'll be a quick PR that, I think, should close this issue. @gnprice, thoughts?
export default (state: SettingsState = initialState, action: Action): SettingsState => {
  switch (action.type) {
    case REALM_INIT:
      return {
        ...state,
        offlineNotification: action.data.enable_offline_push_notifications,
        onlineNotification: action.data.enable_online_push_notifications,
+        streamNotification: action.data.enable_stream_push_notifications,
      };

Opened as PR https://github.com/zulip/zulip-mobile/pull/3926.
About topic-specific notification controls, it's currently possible to mute topics in both web and mobile, but I do see from https://github.com/zulip/zulip/issues/6027 that the ability to "watch" topics, not just mute them, would be popular. I'll close this issue for now, as it's pretty old and I think I've answered its concerns. (I'll reopen if not.) But if/when https://github.com/zulip/zulip/issues/6027 is accomplished, let's plan to open a new, corresponding issue for mobile with an implementation plan at the top.


latest SDK failed with JDK 1.6 and JDK 1.7 , Connection reset error

Follow the SDK guide and try to run sdk samples in ssl_protocol folder,
In SDK spec it mentioned we need a JDK 6 or later , but I tried with JDK 1.6/1.7/1.8 and find it only work with JDK 1.8 with proper settings.
with JDK 1.8 , the connection could be successful with TLS v1.2,custom SSL and custom CLS
Below is the log
class:  com.splunk.examples.ssl_protocols.Program
Your Java version is: 8
Now trying to connect to Splunk using SSLv3
	 Failure!
Now trying to connect to Splunk using TLSv1
	 Failure!
Now trying to connect to Splunk using TLSv1.1
	 Failure!
Now trying to connect to Splunk using TLSv1.2
	 Success!
Now trying to connect to Splunk using a custom SSL only SSLSocketFactory
	 Success!
Now trying to connect to Splunk using a custom TLS only SSLSocketFactory
	 Success!

Process finished with exit code 0

with JDK 1.6 & JDK 1.7, I could not get any successful connection
below is the log:
Your Java version is: 6
Now trying to connect to Splunk using SSLv3
Failure!
Now trying to connect to Splunk using TLSv1
Failure!
Now trying to connect to Splunk using TLSv1.1
Failure!
Now trying to connect to Splunk using TLSv1.2
Failure!
Now trying to connect to Splunk using a custom SSL only SSLSocketFactory
Failure!
Now trying to connect to Splunk using a custom TLS only SSLSocketFactory
Failure!
Errors:
Basically got connection reset error
java.lang.RuntimeException: Remote host closed connection during handshake
at com.splunk.HttpService.send(HttpService.java from InputFileObject:451)
at com.splunk.Service.send(Service.java from InputFileObject:1295)
at com.splunk.HttpService.post(HttpService.java from InputFileObject:348)
at com.splunk.Service.login(Service.java from InputFileObject:1124)
at com.splunk.Service.login(Service.java from InputFileObject:1103)
at com.splunk.Service.connect(Service.java from InputFileObject:189)
at com.splunk.examples.ssl_protocols.Program.main(Program.java from InputFileObject:58)
Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:882)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1215)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1199)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1031)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at com.splunk.HttpService.send(HttpService.java from InputFileObject:445)
... 6 more
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:462)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863)
... 14 more
some other error with JDK 1.7
Your Java version is: 7
Now trying to connect to Splunk using SSLv3
java.lang.RuntimeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at com.splunk.HttpService.send(HttpService.java:451)
at com.splunk.Service.send(Service.java:1295)
at com.splunk.HttpService.post(HttpService.java:348)
at com.splunk.Service.login(Service.java:1124)
at com.splunk.Service.login(Service.java:1103)
at com.splunk.Service.connect(Service.java:189)
at com.splunk.examples.ssl_protocols.Program.main(Program.java:58)
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.Handshaker.activate(Handshaker.java:470)
at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1438)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1308)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1092)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
at com.splunk.HttpService.send(HttpService.java:445)
... 6 more

Closing this issue with recommended versions in above comment.


Updated OpenIddict version and Nuget sources

This PR fixes https://github.com/OrchardCMS/Orchard2/issues/770
It updates Openiddict versión and decrement the priority of aspnet-contrib package source. Cause we need ASOS dependency from Openiddict it is resolved from default Nuget source but Openiddict dependency needs to be resolved form aspnet-contrib source.

Cause we need ASOS dependency from Openiddict it is resolved from default Nuget source but Openiddict dependency needs to be resolved form aspnet-contrib source.

This is not necessary 'cause the packages are identical between the NuGet and MyGet feeds :smile:
That said, it's harmless, so why not? :+1:


Always fetch metadata from using https

Metadata is looked up with https later in the script anyway so if https
fails it will now just fail sooner. This is needed for new deployments
where we are having issues with metadata on http.

Hey @mikemrm any update on this one?

This should be closed, we can't use https:// in ensure_time since its whole reason for existence is to hack around time being wrong and not having NTP, and if thats the case then using https will likely lead to cert not-before validity issues.


Update Service Level Indicators guidance

Context
The published piece on service level indicators can be improved so teams can run their own SLI workshop.
Changes proposed in this pull request
Expand the guidance so GDS teams know how to run a workshop to develop their own SLIs and have a case study from the Observe team in Reliability Engineering as an example.
Guidance to review
Service Level Indicators - slis.html

Going to merge this and create a small PR for editing.


Support .NETStandard for SVG

Will library work with embedded resources in net standard?
Now whatever I do I get message

Call CacheImageRenderer.Init();

And yes, I did all steps from wiki and used earlier your library for usual cached images.
Thanks.

Will library work with embedded resources in net standard?

Yes.

Now whatever I do I get message
Call CacheImageRenderer.Init();

It's self explanatory - You need to put CacheImageRenderer.Init(); in a platform specific project. Could you elaborate what's your issue?


Drag and Drop transfer process abort itself around 25%

Hi, I've encountered an issue using your compontent.
If a file is dragged from an application using your library to another drag and drop compatible program trasfer abort itself around 25% of transferring process.
I'm experiencing this on a Windows 7 64bit machine.
The issue is easily reproducible  using your demo project "AsyncSource with Filestreams", if I run the project  and try to drag a large enough file (eg: from the default ftp specified in dropdownlist; "Index-bytime" 901Kb) the trasfer process stop without a deducible reason. I've tried to debug this behavior without finding a solution. Have you any ideas about it? How can it be solved?

Good morning.
I keep having this problem and can't find a solution.
Is here someone who managed to make it work properly and can tell me how?
Thank you in advance


GremlinFunction not appearing in Lambda of Perspective possible due to "Vertex with id already exists: "

Describe the bug
I have an account A we created just for AWS perspective based on the recommendation. So this account is a brand new AWS account. I launched the AWS CloudFormation template into this account. Then I imported account B which has all the resources/workloads we would like to generate the diagram from.
So now I was able to see the account B lambda functions listed when logging into the AWS Perspective link provided by account A but there was no GremlinFunction listed under account B lambda functions.
However, I could locate GremlinFunction within account A lambda functions. And I searched 400/500 in the latest Log streams under CloudWatch monitor which was able to return several entries.
It looks like this maybe the error that causing the account B is unable to display the GremlinFunction? Could you please help us confirm it?
2021-08-18T23:48:45.842-07:00

Copy
2021-08-19T06:48:45.842Z	8637c6c2-ab4e-4c69-aeb1-6cb4000b48c1	INFO	ResponseError: Server error:
{
    "code": "ConstraintViolationException",
    "requestId": "0a0fe863-aa17-44bf-aa01-1f6c7db4a780",
    "detailedMessage": "Vertex with id already exists: "
}
 (499)
    at Connection._handleMessage (/var/task/node_modules/gremlin/lib/driver/connection.js:282:9)
    at WebSocket.<anonymous> (/var/task/node_modules/gremlin/lib/driver/connection.js:130:43)
    at WebSocket.emit (events.js:314:20)
    at WebSocket.EventEmitter.emit (domain.js:483:12)
    at Receiver.receiverOnMessage (/var/task/node_modules/ws/lib/websocket.js:789:20)
    at Receiver.emit (events.js:314:20)
    at Receiver.EventEmitter.emit (domain.js:483:12)
    at Receiver.dataMessage (/var/task/node_modules/ws/lib/receiver.js:413:14)
    at /var/task/node_modules/ws/lib/receiver.js:379:23
    at /var/task/node_modules/ws/lib/permessage-deflate.js:298:9 {
  statusCode: 499,
  statusMessage: '{"code":"ConstraintViolationException","requestId":"0a0fe863-aa17-44bf-aa01-1f6c7db4a780","detailedMessage":"Vertex with id already exists: "}',
  statusAttributes: {}
}

To Reproduce
Steps to reproduce the behavior:
Import an account into AWS perspective
Expected behavior
Excepted the GremlinFunction to appear in Lambda functions of Perspective.
Screenshots
If applicable, add screenshots to help explain your problem.
Browser (please complete the following information):

Name [e.g. chrome, firefox]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Hey,
You will only see the GremlinFunction (which is deployed by the AWS Perspective stack) if you import the AWS Perspective deployment Region from Account A. Perspective will not automatically import its own resources.
You can import Account A using the same process as you used to import Account B, but without having to deploy the AWS CloudFormation templates. You will then see AWS Perspective resources appear in your UI.
Cheers,
Matt

@thebutler12 thanks for your apply. Like I mentioned, the account B is the one we would like to see the diagram generated from however it does not have the GremlinFunction listed under the Lambda. And I thought GremlinFunction is the one help us to generate the diagram by following Build an AWS Perspective architecture diagram
If I understand correctly, do you want me to import the A like what I did for B and then I should see GremlinFunction listed under B lambda?

Hi,
I am a bit lost as to what you are trying to do.
If you have imported the Account & Region that Perspective is deployed in you will see the resources that Perspective provisions (including the GremlinFunction). We do not import this Account & Region by default as we don't want to force this upon users.
The link you posted (https://docs.aws.amazon.com/solutions/latest/aws-perspective/web-ui-features-and-common-tasks.html#aws-perspective-architecture-diagrams) is there as an optional task to get users familiar with the UI and does require that you have imported the Perspective Account & Region
Matt

hey Mat,
To quote what you said above "If you have imported the Account & Region that Perspective is deployed in you will see the resources that Perspective provisions (including the GremlinFunction). " - this is something I could not see it happened in our account B which does not have the GremlinFunction. And I was able to see the error listed in the Describe the bug section at top, but not sure if that is the error causing us to not have the  GremlinFunction. @thebutler12

Have you imported both Account A and Account B into Perspective? You will only see the GremlinFunction Lambda function in the Perspective UI if you have imported the account that Perspective was deployed in (Account A).
What is your need to see the GremlinFunction Lambda function?

@thebutler12 yes, I did see GremlinFunction in account A which is the account I have AWS CloudFormation template(aws-perspective.template) launched.
But the diagram i would like to generate to show me all the resources relations are from account B which is the one I imported after I logged to AWS Perspective from account A's AWS CloudFormation console( i used the URL on the output tab of the following format: aws-perspective-- to log to AWS Perspective).
So I thought GremlinFunction is used to put all resources together and display them in a diagram. So I am trying to see why I cannot see GremlinFunction on account B. Please correct me if i understand incorrectly.

Thank you for clarifying. You will not see GremlinFunction in Account B as it is not deployed there. Perspective deploys a Role and some AWS Config resources in Region within Account B that you imported. There is a discovery process that runs in Account A that discovers the resources & relationships in Account B. You can just search for the resources in Account B that you want to visualize within the Perspective UI.

@thebutler12 so right now i have both Account A and Account B imported to AWS Perspective, so is there any way I could have all kinds of resources/services from account B displayed in one diagram?

Perspective does not have that functionality. We focused the UI on letting the user find the resources of interest via search or exploring resource types.
We are investigating ideas for how we could offer a feature that would let you "see all resources in an account/Region". This will hopefully make it into a future release.
In the meantime, you can use the Filters option to only see resources from Account B within the Perspective UI.

Thank you. Then I will close this bug. Again, thanks for the help @thebutler12


Github status check name changed?

Hi, I noticed GitHub blocked one of my pull requests because a certain status is not reported by semaphore. I checked the detail and realized that GitHub is expecting "Unit tests", while semaphore reported "ci/semaphoreci/push: Unit tests" success.
"Unit tests" is the block name we have in your semaphore config and it was good. And status are reported in this name at least before my last PR to this repos about 3 days ago.
I suspect did semaphore team has updated the naming rule of the status report to GitHub with some prefix like "ci/semaphoreci/: <block_name>". Is that the case? I think this is good in general but your users should be notified about this. Otherwise would be blocked down just like it happened to me.

Hi Guo Quan,
Thanks for the report.
We are currently working on support for tags and pull request. During that process, the names of status checks changed. Current ones are based on the webhooks we receive from GitHub.
Possible prefixes are ci/semaphoreci/push, ci/semaphoreci/tag, and ci/semaphoreci/pr.
In the future, we'll make sure to be more informative when such changes will be introduced.
I am truly sorry for any inconveniences caused by this change.
Kind regards,

A lot of changes have been made to v2.0. I understand those are many efforts have been made to improve v2.0. I hope to like semaphoreci again.


Menuentryswapper PoH Swapping "Enter" to "Friend's house" instead of "Home"

runelite-master\runelite-master\runelite-client\src\main\java\net\runelite\client\plugins\menuentryswapper
https://github.com/runelite/runelite/tree/master/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper
ctrl-f "home" you find the plugin
tried to change it to friends house with the 2 java files in that folder but couldnt do it would be nice if someone found a quick fix

Added in #3565


Update go lang version to 1.16.13

/lgtm

/lgtm

Coverage remained the same at 85.846% when pulling f641247afc79487424f5267a0b2acd2d3e97fac5 on sameshai:golang into 12c5e07648b0ad631f43b783d74b5ccc00016936 on kubernetes-sigs:master.

/approved


BOTW bloom shader not scaled properly when using 1080P resolution pack although 1440P and 4K work properly.

Just installed graphicPacks150 and in BOTW at 1080P the bloom effect is blocky/gridlike.

Here are some zoomed in captures displaying what I'm seeing.  Originally I thought it was the game's original built-in AA because of the jagged edges are seen on blades of grass and the edge of mountains/structures silhouetted against the sky.  The Anti Aliasing Disable/Enable/FXAA graphicspack doesn't seem to be working properly.  I also thought the AA disable graphicspack was made redundant a while back if using a resolution graphicspack.  It also may be worth mentioning that half of the Clarity Pack presets seem to turn this bloom effect off, but the other presets or removing Clarity altogether still shows the square banded bloom effect.

Another user on reddit posted a video of this issue:

https://youtu.be/wJdjwCJbZB8

Another user on Reddit posted a video of this issue:
https://youtu.be/wJdjwCJbZB8
https://www.reddit.com/r/cemu/comments/9w2zvq/botw_strange_stripey_gridlike_effect_appearing_on/

That's an unfortunate bug of Cemu 1.14c. Exzap is currently looking into it but for the time being use 14b.

Any idea where I can download a copy of version 1.14.0b?

umm if you google cemu 1.14b, you'll find some emulation websites still with a copy of it.

No luck.  Nothing but dead-end links or version 1.14.0c mislabeled as 1.14.0b.  I went through about two dozen sites/links before giving up.  I just hope Exzap releases this fix soon rather than holding it till the next monthly release.  1080p looks bad/pixelated and 1440p can't maintain 30FPS on my computer.

Your right I am having a hard time finding a mirror too. But for now let me share one from discord user who only uploaded the executable file.
https://cdn.discordapp.com/attachments/363128295631486977/508755232960938015/Cemu1140b.rar

Thanks for the download link.  Tested and appears to be working as you claimed.  I'm going to leave this issue open however because I don't believe downloading an executable from an unofficial\unknown source is an ideal fix.