Setting extra headers with ETag

I implemented a REST backend that must serve different apps so I need
res.header("Access-Control-Allow-Origin", "*");

and I want to use ETag header to improve performances.
My issue is that when an ETag response is sent, all the others custom headers are not sent.
Here my implementation:
var app = express();
...
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Access-Control-Allow-Origin, Authorization, Origin, X-Requested-With, Content-Type, Accept, ETag, Cache-Control, If-None-Match");
  res.header("Access-Control-Expose-Headers", "Etag, Authorization, Origin, X-Requested-With, Content-Type, Accept, If-None-Match, Access-Control-Allow-Origin");
  res.header("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS");
  next();
});

app.get('/something', function(req, res){
  ...
  res.send(result);
});

...
var server = app.listen(port, ipaddress, function() {
  console.log((new Date()) + ' Server is listening on ' + ipaddress + ':' + port);
});

Hi! Can you describe what exactly " My issue is that when an ETag response is sent, all the others custom headers are not sent." means? Perhaps paste in a fully runnable app that I can run to reproduce the issue such that I can see what's happening?
I tried to simply "fill in the blanks" to what you pasted, but there is no issue:
$ cat app.js
var express = require('express');
var app = express();
var port = 4000;
var ipaddress = '<IP_ADDRESS>';

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Access-Control-Allow-Origin, Authorization, Origin, X-Requested-With, Content-Type, Accept, ETag, Cache-Control, If-None-Match");
  res.header("Access-Control-Expose-Headers", "Etag, Authorization, Origin, X-Requested-With, Content-Type, Accept, If-None-Match, Access-Control-Allow-Origin");
  res.header("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS");
  next();
});

app.get('/something', function(req, res){
  res.send('hello!');
});

var server = app.listen(port, ipaddress, function() {
  console.log((new Date()) + ' Server is listening on ' + ipaddress + ':' + port);
});

$ node app $

$ curl -XGET -I http://<IP_ADDRESS>:4000/something
HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Access-Control-Allow-Origin, Authorization, Origin, X-Requested-With, Content-Type, Accept, ETag, Cache-Control, If-None-Match
Access-Control-Expose-Headers: Etag, Authorization, Origin, X-Requested-With, Content-Type, Accept, If-None-Match, Access-Control-Allow-Origin
Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
Content-Type: text/html; charset=utf-8
Content-Length: 6
ETag: W/"6-9a86c960"
Date: Thu, 28 May 2015 19:44:53 GMT
Connection: keep-alive

Hi,
Your code server side is ok, but you have to execute in a browser to obtain the "cache" effect (the request must have the If-None-Match header) to reproduce the issue.
So here the code client side: http://s.codepen.io/fairsayan/debug/mJRVwW? (you have to run it at least twice to obtain a 304 response).
Here I attach the response that hasn't all the nice headers I need.

This is simply because Chrome is lying to you. If you right-click on the entry in the Network tab and select "Copy as cURL" and then run it with -v, you'll see your server is definitely including the headers:
$ curl -v "http://timeshift-wink.rhcloud.com/test" -H "Origin: http://s.codepen.io" -H "Accept-Encoding: gzip, deflate, sdch" -H "Accept-Language: en-US,en;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36" -H "Accept: application/json, text/plain, */*" -H "Referer: http://s.codepen.io/fairsayan/debug/mJRVwW" -H "If-None-Match: W/""c-127c6c07""" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" --compressed
* Adding handle: conn: 0x21341d8
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x21341d8) send_pipe: 1, recv_pipe: 0
* About to connect() to timeshift-wink.rhcloud.com port 80 (#0)
*   Trying <IP_ADDRESS>...
* Connected to timeshift-wink.rhcloud.com (<IP_ADDRESS>) port 80 (#0)
> GET /test HTTP/1.1
> Host: timeshift-wink.rhcloud.com
> Origin: http://s.codepen.io
> Accept-Encoding: gzip, deflate, sdch
> Accept-Language: en-US,en;q=0.8
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
> Accept: application/json, text/plain, */*
> Referer: http://s.codepen.io/fairsayan/debug/mJRVwW
> If-None-Match: W/c-127c6c07
> Connection: keep-alive
> Cache-Control: max-age=0
>
< HTTP/1.1 200 OK
< Date: Thu, 28 May 2015 21:01:04 GMT
< X-Powered-By: Express
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: Access-Control-Allow-Origin, Authorization, Origin, X-Requested-With, Content-Type, Accept, ETag, Cache-Control, If-None-Match
< Access-Control-Expose-Headers: Etag, Authorization, Origin, X-Requested-With,Content-Type, Accept, If-None-Match, Access-Control-Allow-Origin
< Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
< Content-Type: text/html; charset=utf-8
< ETag: W/"c-127c6c07"
< Vary: Accept-Encoding
< Content-Encoding: gzip
< Content-Length: 32
< Keep-Alive: timeout=15, max=100
< Connection: Keep-Alive
<
here a test!* Connection #0 to host timeshift-wink.rhcloud.com left intact

You can also use Fiddler or Wireshark to confirm the headers are really there and Chrome's UI is simply not displaying them (this happens a lot with various things, as both Firefox and Chrome have quirks where in certain situations they do not display certain response headers or request header in their UI dev consoles).

Oops, I didn't confirm that the cURL resulted in the 304; let me re-open to try something else.

Ok, so it was a shell quoting issue on the command. I fixed it and from your server I see this:
> GET /test HTTP/1.1
> Host: timeshift-wink.rhcloud.com
> Origin: http://s.codepen.io
> Accept-Encoding: gzip, deflate, sdch
> Accept-Language: en-US,en;q=0.8
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
> Accept: application/json, text/plain, */*
> Referer: http://s.codepen.io/fairsayan/debug/mJRVwW
> If-None-Match: W/"c-127c6c07"
> Connection: keep-alive
> Cache-Control: max-age=0
>
< HTTP/1.1 304 Not Modified
< Date: Thu, 28 May 2015 21:05:50 GMT
< Connection: Keep-Alive
< Keep-Alive: timeout=15, max=100
< ETag: W/"c-127c6c07"
<

Here comes the bad news: it works just fine on the server I pasted above, so as far as I know, there is something in your Node.js app you haven't shared with me to be able to reproduce the issue or there is something between us and your server that is altering things.
Here is the command you can run against the app.js file I posted above to see that your custom headers are included just fine in a 304 response:
$ curl -v "http://<IP_ADDRESS>:4000/something" -H "Origin: http://s.codepen.io" -H  "Accept-Encoding: gzip, deflate, sdch" -H "Accept-Language: en-US,en;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36" -H "Accept: application/json, text/plain, */*" -H "Referer: http://s.codepen.io/fairsayan/debug/mJRVwW" -H 'If-None-Match: W/"6-9a86c960"' -H "Connection: keep-alive" -H "Cache-Control: max-age=0" --compressed
* About to connect() to <IP_ADDRESS> port 4000 (#0)
*   Trying <IP_ADDRESS>...
* Adding handle: conn: 0x1fe4188
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1fe4188) send_pipe: 1, recv_pipe: 0
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 4000 (#0)
> GET /something HTTP/1.1
> Host: <IP_ADDRESS>:4000
> Origin: http://s.codepen.io
> Accept-Encoding: gzip, deflate, sdch
> Accept-Language: en-US,en;q=0.8
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
> Accept: application/json, text/plain, */*
> Referer: http://s.codepen.io/fairsayan/debug/mJRVwW
> If-None-Match: W/"6-9a86c960"
> Connection: keep-alive
> Cache-Control: max-age=0
>
< HTTP/1.1 304 Not Modified
< X-Powered-By: Express
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: Access-Control-Allow-Origin, Authorization, Origin, X-Requested-With, Content-Type, Accept, ETag, Cache-Control, If-None-Match
< Access-Control-Expose-Headers: Etag, Authorization, Origin, X-Requested-With,Content-Type, Accept, If-None-Match, Access-Control-Allow-Origin
< Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
< ETag: W/"6-9a86c960"
< Date: Thu, 28 May 2015 21:07:02 GMT
< Connection: keep-alive
<
* Connection #0 to host <IP_ADDRESS> left intact

If you can step through the debugger in your code to determine why your headers are not being sent, that would probably be the best course of action. And if a PR to us comes from that, awesome! But without being able to reproduce locally (so I can debug the server-side code), there isn't much more I can really do.


Inotify events being dropped for EDS files.

Missing inotify notifications
Description:
I am trying to use envoy as a front proxy for 3 grpc services. I have static configuration for everthing, except for EDS. For EDS I am attempting to use consul-template to render yaml files. They are rendered into a tmp directory and then are moved into the location configured for the corresponding cluster (mv eds-tmp/<service-name>/conf.yaml eds/<service-name>/conf.yaml).
This works well, and I can see debug logs for file notifications when a new instance is registered. However for reasons unknown to me, envoy will stop responding to newly rendered files being moved into these directories. Nothing is logged when this happens.
Some relevant logs from before this happens
[ 039ab0b837fd ] 10-24 21:10:47 ERROR - [2019-10-25 04:10:47.758][39][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:50] added watch for directory: '/envoy/eds/results' file: 'conf.yaml' fd: 1
[ 039ab0b837fd ] 10-24 21:10:47 ERROR - [2019-10-25 04:10:47.758][39][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:50] added watch for directory: '/envoy/eds/scanning' file: 'conf.yaml' fd: 1
[ 039ab0b837fd ] 10-24 21:10:47 ERROR - [2019-10-25 04:10:47.759][39][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:50] added watch for directory: '/envoy/eds/printing' file: 'conf.yaml' fd: 1
[ 039ab0b837fd ] 10-24 21:10:47 ERROR - [2019-10-25 04:10:47.760][39][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:50] added watch for directory: '/envoy/lds' file: 'conf.yaml' fd: 1
[ 039ab0b837fd ] 10-24 21:10:47 ERROR - [2019-10-25 04:10:47.760][39][debug][init] [source/common/init/manager_impl.cc:20] added target LDS to init manager Server
[ 039ab0b837fd ] 10-25 03:47:17 ERROR - [2019-10-25 10:47:17.040][39][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster printing added 1 removed 0
[ 039ab0b837fd ] 10-25 03:47:17 ERROR - [2019-10-25 10:47:17.040][45][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster printing added 1 removed 0
[ 039ab0b837fd ] 10-25 03:47:17 ERROR - [2019-10-25 10:47:17.040][47][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster printing added 1 removed 0
[ 039ab0b837fd ] 10-25 03:49:36 ERROR - [2019-10-25 10:49:36.023][39][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster scanning added 1 removed 0
[ 039ab0b837fd ] 10-25 03:49:36 ERROR - [2019-10-25 10:49:36.023][45][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster scanning added 1 removed 0
[ 039ab0b837fd ] 10-25 03:49:36 ERROR - [2019-10-25 10:49:36.023][47][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster scanning added 1 removed 0
[ 039ab0b837fd ] 10-25 03:56:58 ERROR - [2019-10-25 10:56:58.640][39][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster results added 1 removed 0
[ 039ab0b837fd ] 10-25 03:56:58 ERROR - [2019-10-25 10:56:58.640][47][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster results added 1 removed 0
[ 039ab0b837fd ] 10-25 03:56:58 ERROR - [2019-10-25 10:56:58.640][45][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster results added 1 removed 0
[ 039ab0b837fd ] 10-25 21:00:33 ERROR - [2019-10-26 04:00:33.319][39][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster results added 0 removed 1
[ 039ab0b837fd ] 10-25 21:00:33 ERROR - [2019-10-26 04:00:33.319][45][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster results added 0 removed 1
[ 039ab0b837fd ] 10-25 21:00:33 ERROR - [2019-10-26 04:00:33.321][47][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster results added 0 removed 1
[ 039ab0b837fd ] 10-25 21:01:19 ERROR - [2019-10-26 04:01:19.741][39][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster scanning added 0 removed 1
[ 039ab0b837fd ] 10-25 21:01:19 ERROR - [2019-10-26 04:01:19.741][47][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster scanning added 0 removed 1
[ 039ab0b837fd ] 10-25 21:01:19 ERROR - [2019-10-26 04:01:19.741][45][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster scanning added 0 removed 1
[ 039ab0b837fd ] 10-25 21:01:28 ERROR - [2019-10-26 04:01:28.604][39][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster printing added 0 removed 1
[ 039ab0b837fd ] 10-25 21:01:28 ERROR - [2019-10-26 04:01:28.604][45][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster printing added 0 removed 1
[ 039ab0b837fd ] 10-25 21:01:28 ERROR - [2019-10-26 04:01:28.604][47][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:999] membership update for TLS cluster printing added 0 removed 1

Configuration:
node:
  id: front-proxy
  cluster: front-proxy
dynamic_resources:
  lds_config:
    path: /envoy/lds/conf.yaml
static_resources:
  clusters:
  - name: results
    connect_timeout: 2s
    http2_protocol_options: { }
    lb_policy: ROUND_ROBIN
    type: EDS
    eds_cluster_config:
      eds_config:
        path: /envoy/eds/results/conf.yaml
  - name: scanning
    connect_timeout: 2s
    http2_protocol_options: { }
    lb_policy: ROUND_ROBIN
    type: EDS
    eds_cluster_config:
      eds_config:
        path: /envoy/eds/scanning/conf.yaml
  - name: printing
    connect_timeout: 2s
    http2_protocol_options: { }
    lb_policy: ROUND_ROBIN
    type: EDS
    eds_cluster_config:
      eds_config:
        path: /envoy/eds/printing/conf.yaml
admin:
  access_log_path: "/dev/null"
  address:
    socket_address:
      address: <IP_ADDRESS>
      port_value: 8002

one of the EDS templates
version_info: "0"
resources:
- "@type": type.googleapis.com/envoy.api.v2.ClusterLoadAssignment
  cluster_name: "results"
  endpoints:
  - lb_endpoints:{{ range service "results" }}
    - endpoint:
        address:
          socket_address:
            address: {{.Address}}
            port_value: {{.Port}}
{{end}}

One potential factor is that this seems to happen when envoy starts and there are no instances of the services (staging environment where things scale to 0 at night). EDS files are still rendered with no endpoints under lb_endpoints. When the service does come online the EDS file gets rerendered, but envoy does not load the new endpoints (No endpoints show up in /clusters).

NOTE: I'd love to use SRV records instead of file based EDS. It seems that pull request is stalled for the time being though.

Not sure what is going on here. I will mark this help wanted in case someone wants to take a look in more detail.

I can maybe try to come up with a minimum viable reproduction this week, depending on time.

@shidel-dev thanks that would be really helpful


How to customize ghost elements

Sortable needs to be exported, otherwise static variables such as Sortable.ghost cannot be set.
version: v4.1.0

As of today (version 4.1.0), you can use the ghost-class and the drag-class properties to style the items.


openssl x509 command does not decode S/MIME capabilites

Hi Everyone.
I'm using OpenSSL 3.1.0 built from sources on Ubuntu 22.04. I'm trying to examine a TLS cert and its S/MIME Capabilities. It looks like S/MIME capabilities are not decoded:
$ openssl s_client -connect example.com:443 -servername example.com | openssl x509 -text -noout
        ...
        X509v3 extensions:
            X509v3 Key Usage:
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
            S/MIME Capabilities:
                ......0...`.H.e...*0...`.H.e...-0...`.H.e....0...`.H.e....0...+....0...*.H..

Here's the data from Gutmann's dumpasn1:
575  120:         SEQUENCE {
577    9:           OBJECT IDENTIFIER sMIMECapabilities (1 2 840 113549 1 9 15)
588  107:           OCTET STRING
         :             30 69 30 0E 06 08 2A 86 48 86 F7 0D 03 02 02 02
         :             00 80 30 0E 06 08 2A 86 48 86 F7 0D 03 04 02 02
         :             00 80 30 0B 06 09 60 86 48 01 65 03 04 01 2A 30
         :             0B 06 09 60 86 48 01 65 03 04 01 2D 30 0B 06 09
         :             60 86 48 01 65 03 04 01 02 30 0B 06 09 60 86 48
         :             01 65 03 04 01 05 30 07 06 05 2B 0E 03 02 07 30
         :             0A 06 08 2A 86 48 86 F7 0D 03 07
         :           }

Sorry I don't have more info on decoding the S/MIME capabilities. I checked in RFC 5280, 6818, 8398, 8399 (the last three updated 5280), but I don't see a discussion of S/MIME extensions. I also checked the CA/B Baseline Requirements, but no discussion either. Google is also failing with typical unrelated results.
This may be related to (or part of) https://github.com/openssl/openssl/issues/15254 .

This is an RFE, not a bug.


Inconsistent headers transport (SQS specific issue?)

Is this a bug report?
YES.
Can you also reproduce the problem with the latest version?
YES.
Steps to Reproduce

Create a typical message customer throwing exception.
Add .UseScheduledRedelivery() filter.
Send a message. It should fail several times and then be moved on the error queue.

Expected Behavior
MT adds a tone of useful headers to the message, all starting with the prefix MT-*. They should all appear in message's payload Headers property as well as in SQS's "message attributes" unless this newly added AllowTransportHeader filter states otherwise.
Actual Behavior
Actual message on the queue has some headers only in message body and some only in message attributes:
Payload:

{
  "messageId": "eb800000-857f-0205-2274-08d7822ceb48",
  "conversationId": "eb800000-857f-0205-3ea1-08d7822ce6fd",
  "sourceAddress": "amazonsqs://eu-central-1/my-tmp?durable=false&autodelete=true",
  "destinationAddress": "amazonsqs://eu-central-1/dev-krzlab-plgrd-rec",
  "messageType": [
    "urn:message:WebApp:MyMsg"
  ],
  "message": {
    "payload": "throw"
  },
  "sentTime": "2019-12-16T13:36:13.3759604Z",
  "headers": {
    "MT-Scheduling-DeliveredAddress": "amazonsqs://eu-central-1/dev-krzlab-plgrd-rec",
    "MT-Redelivery-Count": 3
  },
  "host": {
    ...
  }
}

Message Attributes:

Content-Type: application/vnd.masstransit+json
MT-Fault-Message: EXCEPTION MESSAGE
MT-Reason: fault

Reproducible Demo
c.AddBus(provider => Bus.Factory.CreateUsingAmazonSqs(bfc =>
{
    bfc.UseAmazonSqsMessageScheduler();

    bfc.Host("eu-central-1", hc =>
    {
        hc.AccessKey("...");
        hc.SecretKey("...");
    });

    bfc.ReceiveEndpoint("dev-krzlab-plgrd-rec", rec =>
    {
        rec.UseScheduledRedelivery(r => r.Interval(3, TimeSpan.FromSeconds(2)));
        rec.UseInMemoryOutbox();
        rec.Consumer<MyMsgConsumer>(provider);
    });
}));

public class MyMsgConsumer : IConsumer<MyMsg>
{
    public async Task Consume(ConsumeContext<MyMsg> context)
    {
        throw new Exception("EXCEPTION MESSAGE");
    }
}

Because there are too many and it exceeds the 10 header limit. You can see what's included for SQS:
https://github.com/MassTransit/MassTransit/commit/83c2fdb0d7faf338a1e01044e6ead36cc77ad76b#diff-fdf4d1879487c0a53707c8381f15619e
You can see for SQS/SNS it doesn't include the fault detail or the host, because that would easily exceed the 10 headers allowed. If you thing certain specific headers add value, I can look at adding them back, but I don't see how they add value and they're in the message envelope for MassTransit to consume.
https://github.com/MassTransit/MassTransit/commit/83c2fdb0d7faf338a1e01044e6ead36cc77ad76b#diff-7632172e0b8d12ae8df4a4e0d3e63404R48

But from the example I've posted you can see the envelope misses MT-Fault-Message and MT-Reason headers which are available only through SQS's message attributes.

In the error queue, the message body is unmodified. So the only option there is transport headers. This has always been the case, they were never in the envelope.
The only reason this came up is because SQS only allows ten message attributes. If there are additional attributes that should be included with an faulted message, that's fine, but the count was reduced to avoid errors moving to the error queue with too many attributes.
And it should just work, out of the box, without requiring the developer to filter them out. A solution that requires developers to take action is not helpful.
Perhaps an order of precedence would be useful, so that when the message is sent, if more than ten attributes are present, it removes them until the count is within the limit.

OK, everything is clear and quite reasonable now. I'm wondering maybe we could combine MT headers into a single header (configurable?) that transports all of that information using serialized (JSON?) object? This would vastly limit number of attributes used by the framework itself leaving some space for application specific headers. We wouldn't lose any information as well.
BTW Why Content-Type and CorrelationId out of all headers don't contain MT- prefix? I presume there is some valid motivation in other transport systems where those headers actually have some sort of support in the transport layer itself?

I don't know – I didn't create the original transport so it was up to whomever created it. Some transports have built-in support for those, and therefore don't use a generic header for it.
As for the single JSON header, how does that help? And what's the maximum length of a message attribute?

As for the single JSON header, how does that help? And what's the maximum length of a message attribute?

SQS/SNS is limited to 10 attributes (headers) in total, but their length is as far as I remember not restricted. Only the total limit of 256 KiB per message (payload + attributes, probably underlying XML actually) might kick in. So grouping everything into a single attribute might save us up to 9 slots - preferably for custom attributes (like in my case).


[azure] expiration tag

What problem does this PR solve?:
create tag entry so that cloud cleaner does not destroy the new image.
Which issue(s) does this PR fix?:

https://d2iq.atlassian.net/browse/D2IQ-92884

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

closing this as we have another method to do this.


add axios client

encapsulated an HTTP client, so it would be easier to make HTTP requests

Is process.env.NODE_ENV set to something other than 'development' when this is going to be deployed on heroku? Just checking since I'm not sure if that's being done yet. Was able to test it locally though and it works, this will be very helpful for future HTTP requests.

Is process.env.NODE_ENV set to something other than 'development' when this is deployed on heroku? Just checking since I'm not sure if that is being done yet (or how that will be done). Was able to test it locally though and it works, this will be very helpful for future HTTP requests.

Yes, NODE_ENV will be automatically set to production when we deploy


 KnownNat n
        => Vector v n a
        -> v a

I can confirm that GHC 8.6 will compile that without trouble. Is this another haskell-src-exts issue?

Anytime there's a parse error it's almost always a haskell-src-exts thing... Care to raise a ticket to haskell-src-exts and link it here?

@ndmitchell What would I report this under? I don't know if haskell-src-exts has issues with pattern synonyms or view patterns (I've never dealt with it), and what they might be, so I'm really not sure what to put in my report.

Just file it under https://github.com/haskell-suite/haskell-src-exts/issues with a small snippet of code that works with GHC but fails with haskell-src-exts. No need to determine what the root cause of the failure is, just that it's a parsing difference. And no need to event test with haskell-src-exts - HLint will serve as a perfectly good proxy.

It seems something that was done to the latest version of haskell-src-exts fixes this. Closing now.

Awesome, thanks for double checking!


Option to disable tap navigation

Describe your suggested feature
A option to disable the tap navigation would be great because I always accidentally trigger it by simply scrolling the page
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.

Duplicated issue #54


Visitors are incorrectly generated

For example, PyGeneratorExpr in for_each_py_expr is missing the proc(node.generator.expr) part in the Python CST.

This issue was fixed a while ago.


Installation instructions

@xjensen @aaronhans I think we still need to do some thinking on the sample markup vs demo. I think the markup that the demo is showing is confusing when taken on a per-component basis. For instance, the accordion demo references /builds/accordion-esm.js. which would not be available if one was using npm to install the component.
I think I may need to go back to my original idea of referencing the component's template.html or equivalent file.
Als @xjensen I commented out the build command from the pre-commit hook since it was preventing me from committing (build command not found ) and  I wasn't sure what the --workspaces flag does.

Yep, good observations re: /builds/accordion-esm.js on the Accordion readme. As discussed earlier this morning, that's not something we want in the final document.
Here's an explanation of what's happening with the workspaces.
The --workspaces command works in tandem with a flag in the package.json file...
"workspaces": [
    "./components/*"
],

This defines the "workspaces" for this project as all the subfolders of components. Then when we run a --workspaces command, it'll run the given command across every available package.json files in those component folders.
For example: npm run build --workspaces would run npm run build across every component folder.
When we see that error, build command not found, usually we can bypass by just adding an empty 'buildscript into thepackage.json` file for that component. Something like this.
"scripts": {
    "build": "echo \"WARN: no build specified\" && exit 0"
},

Hopefully that makes sense, and hopefully the example works. Please do let me know if I can clarify anything.
For the record, I'm not a huge fan of this approach. It's slow, and it breaks easily as you've seen. I'd rather centralize the build and test activities into unified scripts/processes if possible.

@xjensen Thank you for the thorough explanation. I see what you mean though. That's a massive a lot of work for a pre-commit hook. My GUI (SourceTree) doesn't like it at all. Were you by-passing the hook locally by putting  "build": "echo \"WARN: no build specified\" && exit 0" in package.json and not committing it?

@zakiya We added that bypass hook into a lot of the per-component package.json files while we were working on the big lint/test PR a couple months back. But I haven't needed to add it to anything locally since then. It all works okay, just so slowly.
Oddly enough, the npm run build --workspaces command works fine for me when I check out your branch. Does it work when you run it in terminal vs. your GUI? Just curious for troubleshooting purposes; I want to ensure we can support all kinds of git tooling.


Split unit and integration tests

This looks good to me.  @mcred ?

@fbiville @jnewton03 Looks good to me!

@fbiville go ahead and merge this in and then we'll re-sync the reusable workflows PR to make sure it's all working.  Thanks for your help on this!


Update README and the poem example.

Add an improved example in the README that helps understand curator better.
Remove lots of documentation that is in poem.py, which can be moved to our docs.

Actually reviewing now 😄

Something fishy in UI display, I'll fix it

Ahh, need to escape this \\n instead of \n

Look like this now


Add "Find a Job" Link to the Mobile Nav.

Add "Find A Job" link that goes to the job board (same location as the desktop link).
Requirements:

[x] Add the link to the mobile nav.
[x] Text should read "Find a Job"
[x] Should go to the Job Board
[x] Should be First in the list, above "Learning Resources"

Below you'll see the link is missing.

Everything looks great, merging in!


Rename LinkFactory to Posterior

Rename all LinkFactory references to Posterior to better fit in Bayesian framework.

Closing with https://github.com/mikkelbue/tinyDA/pull/27


kunskap:0.1.0

I am submitting

[x] a new package
[ ] an update for a package

Description: A template intended for shorter academic documents such as reports, assignments, course documents, etc.
I tested it locally and also checked that the default fonts include ones that are available on the Typst web app.

I have read and followed the submission guidelines and, in particular, I

[X] selected a name that isn't the most obvious or canonical name for what the package does
[X] added a typst.toml file with all required keys
[X] added a README.md with documentation for my package
[X] have chosen a license and added a LICENSE file or linked one in my README.md
[X] tested my package locally on my system and it worked
[X] excluded PDFs or README images, if any, but not the LICENSE

[X] ensured that my package is licensed such that users can use and distribute the contents of its template directory without restriction, after modifying them through normal use.

Thanks!


[Suggestion] Lock/Unlock command

It would be a really nice feature to have a lock/unlock command. Maybe a new Component?
It would lock/unlock the last cart in the specified direction.
So maybe
lockFront(number?)
unlockFront(number?)
lockBack(number?)
unlockBack(number?)
The number would be the number of carts to lock/unlock. So one could have 5 carts on an OCCart an unlock them all from the OCCart, while leaving them locked to themself.
For that you would maybe have a function getCartCountFront() and getCartCountBack() so one can check how many carts he is pulling.
That would make the OCCarts much more usefull for Trains and shunting of carts

DONE
released version 0.8-beta


[macOS] Sometimes the path is not available in a change event.

Problem
The file path in the watch event is coming out to be null for certain file operations on macOS.
Details
The API used in the code https://github.com/e-dant/watcher/blob/release/devel/include/detail/wtr/watcher/adapter/darwin/watch.hpp#L114 is CFStringGetCStringPtr
The official documentation clearly states that this method may return null if the internal implementation in macOS cannot provide a no allocation pointer and should not be relied on.
https://developer.apple.com/documentation/corefoundation/1542133-cfstringgetcstringptr?language=objc
Alternate function that works for me:
inline auto path_from_event_at(void* event_recv_paths, unsigned long i)
  -> std::filesystem::path
{
  if (event_recv_paths)
    if (
      void const* from_arr = CFArrayGetValueAtIndex(
        static_cast<CFArrayRef>(event_recv_paths),
        static_cast<CFIndex>(i)))
      if (
        void const* from_dict = CFDictionaryGetValue(
          static_cast<CFDictionaryRef>(from_arr),
          kFSEventStreamEventExtendedDataPathKey)) {

        auto cfString = static_cast<CFStringRef>(from_dict);

        CFIndex length = CFStringGetLength(cfString);
        CFIndex maxSize = CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8);
        char *buffer = new char[static_cast<size_t>(maxSize)];

        if (CFStringGetCString(cfString, buffer, maxSize, kCFStringEncodingUTF8)) {
            std::string result(buffer);
            delete[] buffer;
            return result;
        } else {
            delete[] buffer;
            return std::string(); // Return an empty string if conversion fails
        }
    }

  return {};
}

While I don't doubt that this is a bug (and we'll fix it), I'm very curious the story behind how you stumbled across it.

Should be fixed around here: https://github.com/e-dant/watcher/commit/d9d9d8ba0d8019cf9ab1b90f9139e3630b1b9f22#diff-5e556a082ae9130c476cd18ad3e9e7fba7ca7ff2b18810917c7550e1964ce84eL101-R107 and https://github.com/e-dant/watcher/commit/d9d9d8ba0d8019cf9ab1b90f9139e3630b1b9f22#diff-5e556a082ae9130c476cd18ad3e9e7fba7ca7ff2b18810917c7550e1964ce84eL29-R30
Thank you


prefer deflate only as last resort

Sending conforming DEFLATE responses are not accepted by any version of IE (IE 11 is current as of this writing); see some convo in #25. DEFLATE is still useful for clients that only support it and there's no real reason not to support it, but may as well send gzip even if the client says it prefers deflate more, as long as the client lists that it can accept gzip.

why not just not support it and not encode it?

vs. lying

How would this be lying? The server is allowed to negotiate just like the client.

why not just not support it and not encode it?

I looked at requests to our APIs and there are some Java and other non-browser clients that are only accepting deflate.

oh sorry read it wrong. thought the clients were only sending DEFLATE. SGTM :D

But yea, I think this is the best solution for the long term support :) I'm really surprised that IE 11 still doesn't work right w.r.t deflate, but LOL. I certainly don't really want to add UA sniffing in here though :D


Using remodal with ajax (pjax)

This line says that all content will be executed only once, when the page is loaded.
So $(document).find(..) isn't executed when navigating by ajax (pjax in my case).
My temporary solution is to wrap every non-event function inside of $(document).ready(..) in $(document).on('click', ...), but I think this should be the core.

my fix was to use classes instead of id's for placing ajax fetched content inside divs.

do you load new items with AJAX (pjax)?
My solution is (add code into ajax success):
     $('.grid').append(html).find('[data-remodal-id]').remodal();


Changes to static init have caused some regressions in js-release mode

the change to 'accessor' implementations for static initializations has caused some issues with minified code no longer working (which did work previously).
Example:
	public class BrokenStatics
	{

		public static var myStaticObject:Object = {'value':'myStaticObjInstance'};

		public static var myStaticArray:Array = new Array(20);

		public static var staticQName:QName = new QName('staticQName');

		public static var myStaticNamespace:Namespace = new Namespace('myStaticNamespace');

		public function BrokenStatics() {
			COMPILE::JS{
				//these work
				console.log('BrokenStatics checking myStaticVar:' , myStaticObject );
				console.log('BrokenStatics checking myStaticArray:' , myStaticArray );
				//these don't work (they used to work)
				console.log('BrokenStatics checking staticQName:' , staticQName );
				console.log('BrokenStatics checking myStaticNamespace:' , myStaticNamespace );
				//this will work:
				console.log('BrokenStatics checking BrokenStatics[\'myStaticNamespace\']:' , BrokenStatics['myStaticNamespace'] );
			}
		}
	}

In the above class, the first two static inits do not have the accessor implementation applied in js-debug code and continue to work in release mode. The next two do have the accessor wrapping applied, but now the direct access to them does not work in minified code. (the value is available via the non-minified variable names, so BrokenStatics['myStaticNamespace'] will work for example)
output of 'new BrokenStatics()' :
BrokenStatics checking myStaticVar: {value: "myStaticObjInstance"}
BrokenStatics checking myStaticArray: (20) [empty × 20]
BrokenStatics checking staticQName: undefined
BrokenStatics checking myStaticNamespace: undefined
BrokenStatics checking BrokenStatics['myStaticNamespace']: Rp {Za: "myStaticNamespace", Eb: undefined}

Based on my testing, this issue is now fixed.

Based on my testing, this issue is now fixed.


[Bug]: DLM archiving task, Oceanbase421 archive to Oceanbase410 version failed, Incorrect value appeared

ODC version
ODC424
OB version
independent
What happened?
DLM archiving task, Oceanbase421 archive to Oceanbase410 version failed, Incorrect value appeared

What did you expect to happen?
。。
How can we reproduce it (as minimally and precisely as possible)?
。。
Anything else we need to know?
No response
Cloud
No response

dev: mysql422测试环境新
database:dlm2
table: tone_101


DOCS-security-events-management-update

Product Version(s):
CE 3.18
Issue:

Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

Merge checklist:

[ ] Deploy preview inspected wherever changes were made
[ ] Build completed successfully
[ ] Test have passed

Closing out this PR in lieu of this one: https://github.com/tigera/docs/pull/888.


Support for external PRs

The events push and pull_request are not compatible with external pull requests. The former is never triggered, and the latter has no secrets when coming from an external repo, and thus cannot be published.
The best way to move forward is likely to build and test on pr.synchronize, and publish on pr.merged

https://docs.github.com/en/actions/learn-github-actions/contexts#github-context


Non-random draw_grid

I can create a grid of images to show what happens to an image if you apply a particular augmentation with random parameters.
Example:
import cv2
from imgaug import augmenters as iaa

img = cv2.imread('cat.png')
aug = iaa.Sharpen(alpha=(0.0, 1.0), lightness=(1.0, 1.0))
grid_img = aug.draw_grid(images=[img], rows=5, cols=5)
cv2.imwrite('preview.png', img=grid_img)

This is convenient for getting a general idea of what the augmentation is doing, but it is hard to identify what the image will look like at the "strongest" augmentation setting, as well as what the image will look like at the "weakest" augmentation setting.
It would help me a lot when I'm tweaking each individual augmentation's parameters before training my model if I could see a grid whose cells are ordered from the "weakest" setting to the "strongest" setting. My ultimate goal is to ensure that the objects that I am training my model to detect is still identifiable by a human after augmentation.
I understand that it can get complicated to fit everything on one grid when there are multiple parameters to step through, but if you specify which parameter you want to look at I think it would be feasible.
For example:
aug = iaa.Sharpen(alpha=(0.0, 1.0), lightness=(0.0, 1.0))
grid_img = aug.draw_grid(
    images=[img],
    rows=5, cols=5,
    strength_dict={
        'alpha': 'weak',
        'lightness': 'variable'
    }
)

In the above example, the 'alpha' parameter would be fixed at the weak value 0.0, while the 'lightness' parameter would be stepped through in order from 'weakest' (0.0) to 'strongest' (1.0).
I realize that this can be done using brute force like this:
row_img_list = []
for val in [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]:
    aug = iaa.Sharpen(alpha=(0.0, 0.0), lightness=(val, val))
    aug_img = aug(images=[image])[0]
    row_img_list.append(aug_img)
row = cv2.hconcat(row_img_list)

But this feels too tedious, and it becomes a hassle when there are a lot of parameters that need to be looked at and compared.
Is there a more efficient and elegant way to achieve what I am looking for?

I feel like you coul use imgaug.parameters.DeterministicList for this purpose.
https://imgaug.readthedocs.io/en/latest/source/api_parameters.html?highlight=choice#imgaug.parameters.DeterministicList
You could set the max and min parameters to the elements of the list and you would generate them one after another.
something like this perhaps ...
import cv2
from imgaug import augmenters as iaa
import imgaug.parameters as iap

test_params = iap.DeterministicList([0.0, 0.2, 0.4, 0.6, 0.8, 1.0])
aug = iaa.Sharpen(alpha=(0.0, 0.0), lightness=test_params )

row_img_list = aug(images = len(test_params)*[image])
row = cv2.hconcat(row_img_list)


Ok, I just tested with my encrypted door lock and it works.  Now I'm 99.9% convinced the plugin is fine.  My front door lock is identical in just about every possible way to your Z-wave garage door as it's a Z-wave on/off device using the same Indigo Z-wave built-in plugin and when I made it a garage door it locked and unlocked without any problems and the HomeKit app properly represented the entire operation.

I'm just as baffled.....With this unit its history was a nightmare. It always worked in Vera Bridge but when it was officially supported by indigo I was still unable to get it to include. After maybe 20-25 attempts I could get it to go in but never work. After I moved to the 5Gen stick I thought it was worth a try on the new stick and it went in on the first try which lead me to think the old stick was the problem. It has worked flawless on the 5Gen through Indigo since.
When I included it today in HomeKit I did invert On/off for the closed and open to match. Now I'm thinking about trying to not invert it when its in Garage Door mode....

Inversion shouldn't make any difference but by all means try.  If there was going to be a fail point it would be there since the plugin has to lie to HomeKit and reverse everything HomeKit asks for but, again, it's working for a ton of devices right now of various types so I doubt that's the issue.

And, while not ideal, you could always use it as a switch until things get figured out.  Hell, try it as a door lock and see what happens.

as a door lock failed here is the end of the log part I think that matters
[2018-3-15 13:34:54] Homebridge is running on port 51826.
[2018-3-15 13:34:55] [HomeKit Bridge Server] Garage Door Controller (GD00Z-4): get(LockCurrentState) => 1
[2018-3-15 13:34:55] [HomeKit Bridge Server] Garage Door Controller (GD00Z-4): get(LockTargetState) => 1
[2018-3-15 13:35:05] [HomeKit Bridge Server] Garage Door Controller (GD00Z-4): set(LockTargetState) 1 -> 0
[2018-3-15 13:35:05] [HomeKit Bridge Server] HomeKit Bridge request: http://<IP_ADDRESS>:8558/HomeKit?objId=731407337&serverId=434356390&jkey=f1367b6ba60d6035a179b73a1dee62ab08f60de1cdc1054ae95a075020c83a58&cmd=setCharacteristic&LockTargetState=0
[2018-3-15 13:35:05] [HomeKit Bridge Server] Garage Door Controller (GD00Z-4): updateCharacteristicValue(LockTargetState): 0 -> 1

But I think I got it.......
As a Garage door Opener not inverted it works but its backwards open is closed closed is open

Ok, I'll test things inverted to see if I can reproduce the problem.

When I switched it back to inverted it doesn't work again

Invert was never intended to operate a garage door, it's intended for sensors and switches - very simple devices.  I can now reproduce the problem using my door lock as a garage door and can confirm that inverted switches do work as planned but garage doors do not.  I'll see if there's anything that can be done.

Awesome thank you for baring with me on it

This issue is resolved in the next release.

I don’t understand why, I tested it 500 ways from Sunday and it worked on my door lock inverted and regular.


JavaScript API wrappers

DO NOT MERGE
Putting this in as (a) placeholder, (b) help debugging coverage reporting issues.

Current coverage is 62.54%

Merging #92 into develop will decrease coverage by -0.39% as of 5deb181

@@            develop     #92   diff @@
=======================================
  Files            14      14
  Stmts          2142    2157    +15
  Branches          0       0
  Methods           0       0
=======================================
+ Hit            1348    1349     +1
  Partial           0       0
- Missed          794     808    +14

Review entire Coverage Diff as of 5deb181

Powered by Codecov. Updated on successful CI builds.

I would like to merge this so all these little changes don't have to be re-merged later.

Changes Unknown when pulling 68e305f20e9ec186fd7c81f60489783efe87065c on dangunter:dev-jsapi into ** on kbase:develop**.


Fix string serialization to tensor to allow null characters

Fixes the TRTISTF_TensorSetString function to also use string length to include intermediate null characters.
PS: This does not have any test coverage Should I add the same.

@CoderHam Can you file a ticket for 19.11 to add a test case for string containing a null character. We should be able to leverage some test we already have.

@CoderHam Can you file a ticket for 19.11 to add a test case for string containing a null character. We should be able to leverage some test we already have.
Done


watchLocation()

Found that when use the plugin background service to track gps is not capturing gps if device is idle and inside vehicle.. like plugin cannot detect vehicle movement..any idea?

To replicate .. 1- leave device with app open to capture gps inside vehicle.
2- vehicle not moving for more than 30min.
3- vehicle start to move :)
No gps will be collected

Is this on iOS or Android?

This is android 10...the issue that the plugin not able to detect vehicle movements after a 30+min of inactivity

I'll try this out myself and see if I can recreate the problem.  Earlier today I noticed that my android device will disconnect after about 10 minutes of inactivity, but then reconnect once I start moving again.  Do you, by chance, have any firebase disconnect calls?


[just a recommand] plugins.cordova.io will be deprecated in the near future

hi @gbenvenuti
according to these
http://phonegap.com/blog/2015/05/26/npm-plugins-available/
http://cordova.apache.org/announcements/2015/04/21/plugins-release-and-move-to-npm.html
so...just want to inform you that your plugin should be move to npm in the future...

This was done about 2 weeks ago for this plugin.

thanks @gbenvenuti
got it


WebGL blacklisted in some Qt versions

If I use PyWWT with PyQt5 5.14 and PyQtWebEngine 5.14, the following example:
from pywwt.qt import WWTQtClient
wwt = WWTQtClient(block_until_ready=True)
wwt.wait()

raises the following warnings/errors:
[11741:48899:0721/165650.545296:ERROR:context_group.cc(151)] ContextResult::kFatalFailure: WebGL2 blacklisted
This browser does not support WebGL 2.0. Some features will work suboptimally. To get the full AAS WWT experience, consider using the latest version of Chrome, Firefox or Edge. In case you would like to use Safari, we recommend that you enable WebGL 2.0 (level=1, line_number=35419, source_id=https://web.wwtassets.org/engine/7/wwtsdk.js)
[11741:48899:0721/165650.549528:ERROR:context_group.cc(143)] ContextResult::kFatalFailure: WebGL1 blacklisted
[11741:48899:0721/165650.550852:ERROR:context_group.cc(143)] ContextResult::kFatalFailure: WebGL1 blacklisted

It would be good to figure out why this is happening and what users can do to fix this (maybe even mention this in the PyWWT Qt docs section)

In case it is related: https://bugreports.qt.io/browse/QTBUG-75262

Agreed. Some help here would be very appreciated seeing as I don't own Mac hardware! In the CI, I need to set
QTWEBENGINE_CHROMIUM_FLAGS=--ignore-gpu-blacklist

in order to get the tests to run.

Yes setting that fixes the issue I think. I am still left with a warning mentioning ES3 in case you have any ideas for that, but maybe not critical:
[12199:51459:0721/201656.500021:ERROR:context_group.cc(179)] ContextResult::kFatalFailure: ES3 is blacklisted/disabled/unsupported by driver.

I haven't seen that one before. This is all probably related to the fact that the latest version of the engine now tries to use WebGL 2.0 (basically needed for accelerated FITS rendering), although it is intended to still work with WebGL 1.0 if 2.0 isn't available.

PKGW  Thank you so much for the answer in Linux.
Astrofrog , perhaps,  might check out Astro-Robbie, sometimes known as April @ https://www.youtube.com/@SatansAstrologyAndroid/streams.    A work in progress ...


[FIX] Run common directory before custom

I originally submitted this as a question in #58, but in hindsight it should have been a PR.
Unless there is a specific reasoning for running the custom directory before common, I think we should reverse these. It stands to reason that custom logic should be able to override built-in, which is not the case here currently.

This has a reason: since the image has a lot of ONBUILD triggers, that get run just after the FROM clause always, we needed a way to add some customizations before anything else happened. That's why we have the custom/build.d and that's why we need it before anything else.
Besides, in a custom/build.d script you can remove a file from common/build.d if you need it.
If you still need further customizations to happen after the triggers, you can append those to your Dockerfile as usual:
FROM tecnativa/odoo-base:10.0
USER root
RUN chown -R odoo:odoo /opt/odoo
USER odoo

Another option is to add ONBUILD ARG ODOO_OWNER=root:odoo to be used in the chown parts, so you can override that in your builds with odoo:odoo to get what you desire.
All that said, do we still need this?
BTW, Travis is ❌

Hmmmm that makes sense, thanks for the explanation. I wonder if it makes sense to maybe have a before-build.d and an after-build.d or something? I've run against this a few times, and while changing to root in the Dockerfile is an option - it sets off my linter.
I thought about some sort of file similar to the dependency ones that would allow you to list out directories that needed to be owned by Odoo, but that seemed like it was getting a bit into the over engineered side.
It should also be noted that I do not want all of the Odoo install owned by Odoo, only the Runbot static directory - that's where all the builds and stuff are stored. I think you have done the permissions well otherwise, Odoo really shouldn't be able to write to anywhere other than its filestore without being granted explicit permission - particularly because you then need to mount that folder as a volume in order to preserve the changes Odoo makes.

OK, then we can get to a better solution: sort alphabetically all build.d/* files, no matter if they're under common or custom. This way if you want to run something before, after, or in between some common scripts, you will just need to put the right order. We'd have to make our own run-parts implementation I guess, although the good thing is that it could allow file extensions.
What do you think?

I think that your's is the best solution & it's honestly how I thought it worked in the first place.  You may not know, however, that I'm probably worse at reading them 😉
Ima hit up good ol' Google and see if someone else has made a run-parts implementation meeting our spec. I bet we're not the first needing this. Otherwise, shouldn't be too difficult to write.

On second thought, writing it from scratch was easier than Google 🚀

This one's gtg now too

Still missing file extensions for common/build.d/* scripts, please add 😊

I really don't like this. Executables shouldn't have an extension IMO. Google seems to agree with me here, most of the top answers for "should executable scripts have an extension" explicitly say that it is bad practice.

I took the freedom to amend your commit to squash it with the suggestions I made, and added a test. I hope you don't mind. This one should fix the master branch too.


Improved route decorator model and more standardized operation emit

This change introduces an improved model for defining operation routes, especially with respect to an operation's containing namespaces and interfaces.
Changes to @route
Previously it was only possible to use the @route decorator on namespaces, but now you can use them on all levels of the type hierarchy: namespace, interface, and op.
Usage of @route along the hierarchy will result in a path composed of the following, in order:

All route fragments defined in parent scopes
The route fragment applied to the operation
Any path parameters in the operation that were not included in the preceding @route decorators (this pattern was already being used in a few of our samples)

New decorator: @autoRoute
I've also factored out the automatic route generation logic that I added for the new resource modelling approach so that it can be used for any type of operation, not just resource operations.  The downside to this is that I needed a way to conditionally turn it on so that it doesn't conflict with the aforementioned route composition logic, so I added a new decorator to help with this:
The new @autoRoute decorator can be applied at any level of the namespace/interface/op hierarchy to indicate that any operations in the marked scope should have routes automatically generated based on path parameters alone.  However, you can still add prefixes to all auto-generated paths by using @route on a higher level namespace (useful for paths like /v1/... etc).  I'm interested to hear what you think about this approach and if you have any suggestions on how it can be improved.
Some interesting files to look at:

test-routes.ts: shows some examples of how this is supposed to work in a few different cases, will add more examples here before merging
simple.cadl: The most simple possible spec with a couple of operations that aren't even defined in a namespace
rest/petstore.cadl: An example of the @autoRoute decorator being used on a blockless namespace

Renamed REST CRUD decorators
A few of us were seeing annoying namespace conflicts between Cadl.Http and Cadl.Rest because of duplicated decorator names like @delete.  In this PR I've renamed the REST CRUD decorators as follows:

@read -> @readsResource
@create -> @createsResource
@update -> @updatesResource
@delete -> @deletesResource
@list -> @listsResource

I know this naming convention is a bit more verbose but I'm hoping that it is readable and clear when applied to operations (basically describing what the operation does).  Let me know if you have any suggestions for a better naming convention here.
I'm creating this as a draft PR at first because I still need to add a few more tests and diagnostics, but I would really appreciate some feedback on the approach to see what people think so far.

I know this naming convention is a bit more verbose but I'm hoping that it is readable and clear when applied to operations

I like it. It reads well and conveys the difference perfectly! Good choice.

Regarding duplicated decorator names, could we simply enforce namespaces for decorator names: @rest.read, @rest.create, etc. ?

Regarding duplicated decorator names, could we simply enforce namespaces for decorator names: @rest.read, @rest.create, etc. ?

See #79. Right now, the experience is really bad. As soon as you have a conflict between namespaces you can't having using of both namespace even if you never use the overlapping types or only use them with enough disambiguating qualification. I think we should fix this. But my experience with C# is that even with the better experiences where you could do the disambiguation only where needed and otherwise have using, people will still get confused and complain. So if we have namespaces we expect to be usinged together, the types should still have unique names.

If using the same namespace twice should we either error on the usings or else be a no op? For duplicate names usinged from different namespaces, erroring on use and requiring disambiguation makes sense

If using the same namespace twice should we either error on the usings or else be a no op?

In C#, it is a warning. I'm fine with it being an error, but the error should be "you already have this using" and not a bunch of duplicate type errors. Right now, we merge everything and blame the definitions rather than the ambiguous references or redundant usings as C# does.

This is ready to review!  I'm working on the corresponding cadl-azure PR now.


gradle_7: 7.6.1 -> 7.6.2

Description of changes
New release of the 7 series fixes CVE-2023-35947 and GHSA-2h6c-rv6q-494v.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

gradle (8) still needs attention and I guess we might need to mark gradle_6 with knownVulnerabilities?


refactor(library/data/set/basic): standardize intro and elim theorem names

(This will be helpful for logic and proof course materials.)

Wait -- hold off on this for a moment -- I forgot to run the tests.

O.k., the tests check out. I added a small fix to lean-syntax.


Comments

You're probably already aware that we're using your grammar in wdlTools (https://github.com/dnanexus-rnd/wdlTools). Among other tools, I am working on a WDL code formatter. For this to work correctly, I need to be able to preserve the comments that are in the source file. Does it make sense for you to add comment support here first, or should I just figure out how to do it myself in wdlTools?
Thanks!

hey @jdidion did you end up figuring out the comments on your own?

Yep - sorry, should have closed this. I borrowed the idea from Mike Lin in miniwdl. The code is here if you want to use it: https://github.com/dnanexus-rnd/wdlTools/blob/master/src/main/scala/wdlTools/syntax/Antlr4Util.scala


Fixed type definition ToastOptions.icon

Hope this will be merged soon.

@shakee93 do you plan to make a new release soon?
this bugfix is merged since some time but latest release doesnt contain it.


Update kubernetes.md

Fix inconsistent documentation as it creates confusion on which option to use.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


feat(controller): Allow to configure main container resources

Some clusters require explicit resources in all containers. This would allow us to configure the resources for the main container.
Signed-off-by: terrytangyuan<EMAIL_ADDRESS>Checklist:

[x] My organization is added to USERS.md.

podSpecPatch?

Thanks for the suggestion. It's definitely an option. However, podSpecPatch requires all of our existing users to modify their workflow spec which is not trivial (especially when we have long-running workflows and established usage patterns). Configuring this in the config of controller seems to be a better option for now.


Update !url.startsWith condition in file.ts

Signed-off-by: lancelot<EMAIL_ADDRESS>Hey, I just made a Pull Request!
Fixes #5236

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ :heavy_check_mark:] All your commits have a Signed-off-by line in the message. (more info)

@rugvip i seem to remember you mentioning something that was caused by this somewhere, can you remember what it was?
@lancelot1337 looks like theres some tests failing though 👍

Ah sorry, I actually ended up looking at this but didn't get around to trying out the tests on Windows. Tests were a bit tricky to fix, so pushed it up straight to this PR branch.

Thanks for quickly reviewing the PR! :smiley:


Does Canny have a balance mode, otherwise the generated graph will have lines or dots

like this

@starinskycc Balance is the default mode in Comfy while "My prompt is more impotant" == Scaled Soft Controlnet Weights with default weight 0.825


compared the output results of acceleration schemes from both the deepcache and onediff versions

Describe the bug
I compared the output results of acceleration schemes from both the deepcache and onediff versions, and found that typically, the deepcache version produces lower quality images, with a greater tendency to exhibit malformed hands and legs, as well as peculiar color blocks displaying abrupt transitions. These issues are particularly pronounced when the generated images have an aspect ratio other than 1:1, specifically in the case of a 9:21 ratio.
Your environment
Ubuntu 20.04.6 LTS

OneDiff git commit id
Building wheels for collected packages: onediff
  Building editable for onediff (pyproject.toml) ... done
  Created wheel for onediff: filename=onediff-0.13.0.dev1-0.editable-py3-none-any.whl size=5365 sha256=672b46d89c4cde6bd23e818a3694e9c3f8e9bc3593beb1f7c1bc7671638697c2
  Stored in directory: /tmp/pip-ephem-wheel-cache-sup957_q/wheels/01/30/ea/6d3fee7612e410bc7ccd7c32f1cd929ab8930caa0fec1c256b
Successfully built onediff
Installing collected packages: onediff
  Attempting uninstall: onediff
    Found existing installation: onediff 0.13.0.dev1
    Uninstalling onediff-0.13.0.dev1:
      Successfully uninstalled onediff-0.13.0.dev1
Successfully installed onediff-0.13.0.dev1

OneFlow version info
libibverbs not available, ibv_fork_init skipped
Ignoring PCI device with non-16bit domain.
Pass --enable-32bits-pci-domain to configure to support such devices
(warning: it would break the library ABI, don't enable unless really needed).
path: ['/opt/conda/lib/python3.10/site-packages/oneflow']
version: 0.9.1.dev20240125+cu121
git_commit: 6458a12
cmake_build_type: Release
rdma: True
mlir: True
enterprise: False

How To Reproduce
workflow_compare.json
The output results of acceleration schemes from both the deepcache and onediff versions

add several examples of anomalies for the deepcache
@w=200h=100

Thanks @onefish51
How many steps are you using? Seems that  deepcache is not woking well with little steps( less than 30)

@onefish51  Deepcache is a lossy algorithm. If you want to be close to the original algorithm, you can adjust cache_interval to a smaller value, or adjust cache_layer_id and cache_block_id to larger values.

Thanks @onefish51
How many steps are you using? Seems that deepcache is not woking well with little steps( less than 30)

as the workflow shown "20 steps"
workflow_compare.json


Further speed improvements possible with confusion matrix?

You could still offer the pre-calculated confusion matrix as an optional parameter on other metrics based on it, e.g.;
https://github.com/talboger/fastdist/blob/f23199f8703e4169931eb5f81fad3d820bf8d48b/fastdist/fastdist.py#L147
https://github.com/talboger/fastdist/blob/f23199f8703e4169931eb5f81fad3d820bf8d48b/fastdist/fastdist.py#L610
https://github.com/talboger/fastdist/blob/f23199f8703e4169931eb5f81fad3d820bf8d48b/fastdist/fastdist.py#L1309

I finally got my PR done: https://github.com/talboger/fastdist/pull/13


Incremental highlighting constantly changes color of unrelated lines

I’m not sure if it's a tree-sitter, elisp-tree-sitter, or tree-sitter-langs problem, but while typing new code the highlighting changes way too often.
For instance consider the following Javascript code with tree-sitter-hl-mode enabled
const f = () => {
    // <- Point here before the comment
    const n = 3;
}

and type const a = new Array(); in order to obtain
const f = () => {
    const a = new Array(); // <- Point here before the comment
    const n = 3;
}

Note that while typing, the line below the point (const n = 3;) changes color a total of 8 times (!), which is pretty distracting for the eyes. In comparison, with the built-in js-mode that same line does not change color at all.
I guess this is due to the fact that the tree is constantly being parsed and new (weird/erroneous) interpretations are being found, but I wonder if there is a way it could be fixed somehow?

I checked js2-mode (which also does highlighting based on an AST), and it seems that the difference there is that it waits for 0.2 s of inactivity before updating the highlighting. So if you type fast enough, the line below does not have time to keep changing colors and it’s much less annoying. On the other hand, it also means that the current line does not get any highlighting until you're finished typing it (unless with js-mode).
Maybe it would be worth having such a (configurable) delay here as well?

Maybe it would be worth having such a (configurable) delay here as well?

I think you can try setting jit-lock-defer-time (locally in buffers that need it), since tree-sitter-hl-mode reuses font-lock and jit-lock underneath.
You can even make it "smarter", by setting it only when typing (i.e. self-insert-command) and not when pasting/formatting code. I'm open to adding that behavior behind a customizable option.

I guess this is due to the fact that the tree is constantly being parsed and new (weird/erroneous) interpretations are being found, but I wonder if there is a way it could be fixed somehow?

Yes, this is how tree-sitter does error recovery. When a piece of code cannot be fully parsed, it will pick the "most reasonable" parse tree (and mark where parsing fails). How it scores the candidate trees depends on multiple factors, including precedence rules in the grammar. I think you can report these "unexpected parse results" to the js grammar repo.

It looks like the unexpected parse results cannot be fixed at the moment, unfortunately (already reported as https://github.com/tree-sitter/tree-sitter-javascript/issues/204, and it will hopefully be possible to fix them once https://github.com/tree-sitter/tree-sitter/pull/246 is merged)
Setting jit-lock-defer-time to 0.2 works, but unfortunately it also defers highlighting while scrolling. Making it smarter might be a bit tricky as well given that it doesn’t seem possible to change jit-lock-defer-time while font-lock is running (it doesn’t restart the timer…).


Potential memory leak in generation with @types/lodash

Describe the Bug
The generation with npx prisma generate hangs and results in a fatal error.
To Reproduce
The issue started to occur after installing<EMAIL_ADDRESS>which also installs<EMAIL_ADDRESS>$ npm ls @types/lodash
my-project
└─┬<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    └──<EMAIL_ADDRESS>
Expected Behavior
Generation should not be affected by installation of graphql-shield / @types/lodash.
Logs
$ npx prisma generate
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Error:
✔ Generated Prisma Client (4.15.0 | library) to ./node_modules/@prisma/client in 54ms

Generator "typegraphql-prisma" failed:

<--- Last few GCs --->
[104011:0x680b1f0]    68084 ms: Mark-sweep (reduce) 2041.6 (2083.4) -> 2040.5 (2083.6) MB, 646.4 / 0.0 ms  (average mu = 0.222, current mu = 0.130) allocation failure; scavenge might not succeed
[104011:0x680b1f0]    68777 ms: Mark-sweep (reduce) 2041.5 (2083.6) -> 2040.8 (2084.1) MB, 663.1 / 0.0 ms  (average mu = 0.141, current mu = 0.043) allocation failure; scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
 1: 0xb83f50 node::Abort() [node]
 2: 0xa94834  [node]
 3: 0xd647c0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
 4: 0xd64b67 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
 5: 0xf42265  [node]
 6: 0xf5474d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
 7: 0xf2ee4e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
 8: 0xf30217 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
 9: 0xf113ea v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
10: 0x12d674f v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
11: 0x17035b9  [node]
Aborted (core dumped)

Environment:

OS: Ubuntu 23.04
Node: 18.17.1
typegraphql-prisma: 0.26.0
Prisma: 4.15.0
TypeScript: 5.1.3

Additional Context
I have traced the issue to the file<EMAIL_ADDRESS>The generation works again without any issues after removing this specific file. I also noticed, that the generation is faster after removing @types/lodash completely (~ 8 -> 3 seconds for one defined simple model).

Possibly related to #382

Can you play with skipLibCheck: true, in src/generator/generate-code.ts#L55?

@MichalLytek Thanks for your fast reply. The issue is fixed when I add skipLibCheck: true to the baseCompilerOptions object. Can I set this also in my schema.prisma as a temporary workaround?

Is there any reason why skipLibCheck is not enabled by default? Adding it takes our gen times on an M1 Pro macbook from 90s -> 30s (Prisma 5.5.) In GitHub actions the runner runs out of memory. @dahaupt could you share your patch-package?
@MichalLytek on a similar note, we (https://github.com/withprimer) are interested in sponsoring work to speed up gen times here - lmk if interested.

skipLibCheck enabled in 9c87cdb 🔒


chore: correct typo

Hope this helps streamline the project!
Best regards,
Bilogweb3

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


A General Purpose Dialog

I noticed that the INPUT DIALOG generates a new web page and returned to the previous one when OK was pressed.
I just wondered if there could be a general purpose 'DIALOG'. It would have OK and Cancel buttons. It would be able to have any of the Widgets that the main gui page has (maybe with exceptions). The values of the widgets would be read by App when the OK button is pressed in the on_confirm event method using the read_value method for each of the widgets. The values would not be returned as a list as in the InputDialog.

Hi Ken,
I built a GeneralDialog as you suggested.
You can:

add_field(fieldName, fieldWidget) : this function allows to add custom field to the dialog. The dialog is automatically resized (vertically) to contain the new widget;

add_field_with_label(fieldName, fieldWidget) : this function allows to add custom field to the dialog, adding a label on the left. The dialog is automatically resized (vertically) to contain the new widget;

get_field(fieldName): to get back the field after an on_confirm event. I can't implement a "get_value" function because the dialog can contain different kind of widgets.

Can we close this issue? ;-)

Just checking that my app works with the latest gui before trying a GenericDialog. InputDialog and other dialogs which is based on GenericDialog have lost their on_cancel_value_listener methods (name has been changed from on_abort_cancel_listener)

I forgot to inform you. For the GeneralDialog, I have changed the register functions to:
*set_on_cancel_dialog_listener
*set_on_confirm_dialog_listener
For the InputDialog and the FileSelectionDialog, we have the same functions as per the GeneralDialog, and also:
*set_on_confirm_value_listener
The names are changed, but the functionality is the same.

I understand now about confirm and cancel. However I think it would be more understandable for beginners if sub-classes of Generic Dialog had their own cancel and confirm methods.

I have tested the GenericDialog with text, label and dropdown fields. It works well except if two fields have the same label (fieldName), then one of the fields is not displayed because the label is being used as the key for a dictionary. Looks like fieldName is really the key, and could be renamed to this, and the add_field_with_label can have an additional label field.
generic_object.get_field(key).get_text() works for InputText but some other types of field do not have get_value() methods.
I wonder if get_text should be changed to get_value so it is the same for all fields.

Now TextInput has get_value function to make it compliant to other widgets. You can now do generic_object.get_field(key).get_value().
GeneralDialog functions add_field and add_field_with_label now have the parameter key. For add_field_with_label it is an additional parameter.

I understand now about confirm and cancel. However I think it would be more understandable for beginners if sub-classes of Generic Dialog had their own cancel and confirm methods.

This will be more clear with the documentation. It is not elegant to replicate the functions inherited by the superclass only for readability. ;-)
Please feedback the changes in order to close the issue.

Works a treat now, thanks


spi: clarify flushing/blocking behavior.

Fixes #455.

I like this addition, thank you!
However, I do not think it completely fixes #455 as that also refers to a similar situation for I2C.


Please invite me to this organization.

I'd like to be part of this great organization and reach out my full potential while contributing all my effort and skill set to this organization. The professional background of your organization caught my eye and I love here.
If you could accept me here, I'd be very happy.
My github user name is 0xdeity.

Hello there, welcome to openAOD, I have sent an invite to join the org. Happy to have you here : )


Normalize practice exercise names

We have added explicit exercise titles to the metadata.toml
files in problem-specifications.
This updates the exercise names to match the values
in this field.
Ref: https://github.com/exercism/exercism/issues/6579

This is failing CI, but it looks like main is also failing. Should we admin-merge?

It is not even GHA that fail but an external CI service. I was not even aware that CircleCI is enabled for any of the repositories. I always though all repos moved from Travis to GHA back then.

Seems as if a circle.yml exists at the repo root and hasn't been touched in the last 6 years.
I think this is the CircleCI v1 location and is not supported anymore for many years.
Personally I'd just disable the CircleCI integration for this repository.

I've disabled Circle CI and opened a PR to delete the config #286
Once that's been merged I'll rebase and this PR should end up in a good state.


mimxrt10xx series use flexram-control but does not support magic feature

Describe the bug
mimxrt10xx series use flexram-control but does not support magic feature.
Please also mention any information which could help others to understand
the problem you're facing:

What target platform are you using?
mimxrt1040/ and all other mimxrt10xx series platforms
What have you tried to diagnose or workaround this issue?
code check
Is this a regression? If yes, have you been able to "git bisect" it to a
specific commit?
19155bdb26736cc50898a249428e2d7caba443b7

To Reproduce
scripts/twister -p mimxrt1040_evk -T samples/boards/nxp/mimxrt1170_evk_cm7/magic_addr/ --build-only

Expected behavior
the case is not supported need skip
Impact
CI report
Logs and console output
build on not support platform
Environment (please complete the following information):

OS: (e.g. Linux, MacOS, Windows)
Toolchain (e.g Zephyr SDK, ...)
Commit SHA or Version used: 29208fe7c45c43997c5099718958f3535f33465b

triaging as low, esp. as a fix is already on its way


feat(studyPrefetcher): Study Prefetcher

Added support for a Study Prefetcher responsible for loading the next display sets. The following settings are available:
  studyPrefetcher: {
    /* Enable/disable study prefetching service (default: false) */
    enabled: true,
    /* Number of displaysets to be prefetched  (default: 2)*/
    displaySetCount: 2,
    /**
     * Max number of concurrent prefetch requests (default: 10)
     * High numbers may impact on the time to load a new dropped series because
     * the browser will be busy with all prefetching requests. As soon as the
     * prefetch requests get fulfilled the new ones from the new dropped series
     * are sent to the server.
     *
     * TODO: abort all prefetch requests when a new series is loaded on a viewport.
     * (need to add support for `AbortController` on Cornerstone)
     * */
    maxNumPrefetchRequests: 10,
    /* Display sets loading order (closest (deafult), downward or upward) */
    order: 'closest',
  },

Testing

Disable the StudyPrefetcher and make sure it does not prefetch the next display sets (1).
Enable the StudyPrefetcher and make sure the next display sets are loaded (1) based on the configuration provided.
Load a new series, change the viewport layout (eg: 1x1 to 1x2), change the active viewport and see if the displaysets are loaded as expected based on the display set loaded on the active viewport (eg: making viewport 2 as active should stop loading the series based on viewport 1 and start loading the ones related to viewport 2).

(1) The progress is displayed while a series is being prefetched underneath its thumbnail (eg: "P: 47%") but the design will change soon (the text will be replaced by a progress bar).

Seems like the current display set does not have the cache icon, also can we make the icon aligned to the right see the misalignment below

Updated


implement os volume encryption status retrieval for linux

Description:
azure vm show-disk-encryption-status is not reporting accurate os volume encryption status on linux
Steps to reproduce:

Create a VM with data drives and encrypt only the data drives (using --volume-type Data):

azure vm enable-disk-encryption --resource-group $ADE_RG_NAME --name $ADE_VM_NAME --aad-client-id $ADE_ADSP_APPID --aad-client-secret $ADE_ADAPP_SECRET --disk-encryption-key-vault-url $ADE_KV_URL --disk-encryption-key-vault-id $ADE_KV_ID --volume-type Data -q

Run azure vm show-disk-encryption-status against the VM once disk encryption has completed.

Actual JSON result:
{"osVolumeEncrypted":"Encrypted", ...
Expected JSON result:
{"osVolumeEncrypted":"Not Encrypted", ...
Note there is a separate fix underway to change this to "Unknown" in both cases so at least it is not wrong data.   However this issue is to provide ability to report true OS encryption state at any time, not just "Unknown".

https://github.com/ejarvi/azure-xplat-cli/commit/5e1c122f6ed77240d3a9c36ee1872b161f7b724b


Added re-search

re-search fixes the problem described in
https://github.com/fish-shell/fish-shell/issues/602 that the fish
history search is inflexible and non-standard and provides a
readline-like search as good as possible with an external tool.

@hupfdule Nice, thanks!


Does async-std support framed streams?

I want a feature like tokio framed streams( https://tokio.rs/docs/going-deeper/frames/ ), does async-std support this?

I wrote about how to author codecs using the base stream traits here: https://blog.yoshuawuyts.com/rust-streams/#writing-codecs -- this should work with async-std without a problem (:


Skip Building on incompatible Python Versions

The method behind this is pretty straightforward:

for every package we build, examine the classifiers
If the classifier's major python version matches the major version that we are executing, we include the package in the set we are building/testing
If the classifiers do not match, testing the target package will be skipped.

Can one of the admins verify this patch?

/azp run python - storage - ci


Improved ReadMe / Documentation requests:

Could you answer these questions in the ReadMe file?

Whisper model was used for comparison? whisper-v3-turbo?
What languages does moonshine support?
If I wanted to train more languages, what data do I need?
What is the file size of the model?

Added this info to the README and merged.


can't upload on external save via SFTP

Hello,
on my most recent install of FP my "monitor file: upload on external save" doesn't work in SFTP (sublime plugin). It used to be that when I saved a linked css file the main one would compile and upload automatically. Now on my new build that has stopped working. In my sublime directory I see foundation.css and foundation.css.map slide in and out which seems to suggest that they are being closed and reopened- this doesn't happen on any of my earlier installs. I think that the closing is stopping the monitoring so it's not being saved after compilation. Does anyone know if there is a setting somewhere to fix this?
Thanks in advance
Andi

same issue.

@shawnnaquin -- if you figure this out please hit me up...

so its because of the clean css and clean JS tasks.
gulp.task('clean:css', function() {
  return del([
      'assets/stylesheets/foundation.css',
      'assets/stylesheets/foundation.css.map'
    ]);
});

since the file is being deleted SFTP sees it as a new file and not an edited and currently monitored file.
I ended up using the gulp.watch task and gulp-sftp to reupload the file on create.
gulp.task('watch-scss', function() {
  sequence(['clean:css', 'sass'], 'sftp-css');
});

Perfect, that worked! Thanks


Update beyond_bacteria_000009544.md

Added italics to Roseburia. Just one change now for testing purposes.

i think you can merge directly as well, which is fine too


fix component

Hello,
Great software and paper! I was wondering if you have implemented the ability to fix some of the parameters of one of the components (mean and covariance) while estimating the parameters of the others via EM. This would be very useful for one of my research projects.
see https://github.com/jobovy/extreme-deconvolution/issues/9
Thank you,
Joe

Yeah, it's doable and implemented, but I haven't exposed the functionality to the fit method yet. I'll have a go at it.

Thank you!

You can now set an iterable of component indices with the frozen keyword. Make sure you initialize them properly before ...

Thats great! Just to be clear I was hoping to fix the mean and covariance matrix of a single component (not the mixture proportion). Is that doable within the iterable you setup?

That exactly what will happen. The mixture amplitudes will be adjusted but not the means or covariances of the frozen components

great. Thanks @pmelchior.

@pmelchior last question. For some components I also need to just fix the means and estimate the covariance matrices and mixture proportions. Would that possible with the frozen argument? I can also dig into the code if this too specific of an application. I appreciate the help.

It's not possible yet, but it at least doesn't break the correctness of the EM. It shouldn't be hard. Hang on.

frozen can now be a dictionary: frozen = {'mean': [1,2,3], 'covar': []} should do what you want.

perfect thank you so much!

hmm I don't think the mixture proportions are being updated ... see the run em section here:
https://github.com/jhmarcus/pashpy/blob/master/notebooks/pyggmis_example.ipynb

That's because of your setup. initFromDataAtRandomFixed yields three identical components, with one exception: the covariance of component 0. This renders components 1 and 2 indistinguishable. You shouldn't do that because they will receive identical updates.
Because you freeze the means of all, and the covariance of 0, the amplitude of component 0 won't be changed under the current scheme (I'm about to change that). Because components 1 and 2 are identical, they can only move in unison, but their sum is fixed. Hence nothing changes.
I'll have a new version where you can set freeze the amplitudes as well as desired. That takes away my assumption on which ones are to be updated in special cases like yours. In the meantime, modify you init function to do something like:
def initFromDataAtRandomFixed(gmm, data, covar=None, rng=np.random):
    gmm.amp[:] = 1./gmm.K
    gmm.mean[:,:] = 0
    gmm.covar[0,:,:] = 1e-6 * np.eye(gmm.D)
    gmm.covar[1,:,:] = 1 * np.eye(gmm.D)
    gmm.covar[1,:,:] = 2 * np.eye(gmm.D)

Also, in your case, you seem to only do one run, so you can avoid all the lists of gmms and likelihoods and simple do
frozen={'mean':[0,1,2], 'covar':[0]}
fitted = pygmmis.GMM(K=K, D=D)
cutoff = None
l, u = pygmmis.fit(fitted, data, init_callback=initFromDataAtRandomFixed, w=w, cutoff=cutoff, rng=rng, frozen=frozen)

Try frozen={'mean':[0,1,2], 'covar':[0], 'amp': []} now.


[Feat] URL per newsflash

Is your feature request related to a problem? Please describe.
Each newsflash should have its own URL that could be linked to, sent, bookmarked...
Describe the solution you'd like
Our main page should have a path with a variable (/:id) that represents the newsflash.
When the page loads or the path changes, the page will launch a request to fetch the relevant newsflash's data, then display it.
This will replace the current behavior of loading the data in an onClick callback.
Additional context
This should work with the implementation for issue #71.

solved by #96


Replace Gulp and JSHint with ESLint/Webpack using nwb

Using nwb cli tool build project with Babel and Webpack with minimal configuration.
Tried using https://github.com/insin/eslint-config-jonnybuchanan for eslint but that version of babel-eslint is currently broken so I just copied that eslint configuration.
Update: Latest version fixes this issue.
We should probably also update the demo to follow the convention that nwb expects but wasn't sure if I should include it in this PR.

Dang that was fast. I’ve got a busy week yet and then I’ll get this reviewed for you. Thanks so much @bpugh

Would you have time to give this a quick attempt with<EMAIL_ADDRESS>and eslint-config-jonnybuchanan again? Looks solid. :clap:

Sure thing!

Ok I've updated the PR to use the current version of nwb and eslint-config-johnnybuchanan.
I started updating the demo to follow nwb's convention of being in demo/src/index.js which works well except there isn't an easy way to add the custom styles to the demo html template so hopefully I can get that in as a separate PR.

thanks you!


Bug: UserManager.signoutCallback's type specifies a return type of 'SignoutResponse | void' instead of 'SignoutResponse | undefined' (PR Available)

The typing for UserManager.signoutCallback currently makes this method return SignoutResponse | void.
Although legal, variables should not be of type void, from the typescript specifications:

NOTE: We might consider disallowing declaring variables of type Void as they serve no useful purpose. However, because Void is permitted as a type argument to a generic type or function it is not feasible to disallow Void properties or parameters.

Additionally, attempting to use a variable of type SignoutResponse | void won't let us treat it as null or undefined like in the next example:
const response: SignoutResponse | void = await userManager.signoutCallback(window.location.href);
doSomething(response?.state?.someStateItem);
// This lints 'state' with : TS2339 (TS) Property 'state' does not exist on type 'void | SignoutResponse'.

Using undefined or null for UserManager.signoutCallback works for the above example and is semantically correct because there is a chance SignoutResponse or nothing is returned (undefined).
Using void here is not semantically correct because UserManager.signoutCallback can return something, even if that something is undefined.
Also, using void forces developers to hack around userManager.signoutCallback's return type in order to use strict typing.

A PR to fix this issue is available: https://github.com/IdentityModel/oidc-client-js/pull/1189

Hey @brockallen would you be able to take a look at my PR? Or do you now who I can ping?
https://github.com/IdentityModel/oidc-client-js/pull/1189

Pull request #1189 merged.

Pull request #1189 merged.


cell providing ability

Now CellProvider slightly differs from ToCellMapping. Should I make them one?
Is the way I create ByTargetIndex at CellProviders.fromMapper() OK?

Unfortunately, there're still problems.

CellProviders.sort shouldn't be public It has nothing to with cell providers.
HasParentWrapper makes our code not model agnostic. Need to make everything in a way which is applicable to any model independently of whether we can implement interfaces in it. Is it possible to use mappers hierarchy instead of model hierarchy to find object which we need?

P.S. The code in this pull request isn't compilable.


2 TS quick fixes that do the same thing to implement abstract class

Bit confusing having the second one considering there is only 1 class that needs the fix.

Please share example code?

Does not reproduce:
abstract class A {
	abstract b(): void;
}
class B extends A {
}

Does reproduce:
abstract class A {
	abstract b(): void;
	abstract c(): void;
}
class B extends A {
}

Thanks
The root cause is that there are two errors reported at the exact same location:

This is the only case that I know of where we have multiple errors at the same location with a single quick fix that fixes both errors
One fix would be to have a single error that says something like: B does not implement all members of abstract class A, with related diagnostics for the specific missing properties. This is what we do for interfaces:
interface A {
	b(): void;
    c(): void;

}

class B implements A {
}

Marking as august for investigation

After thinking about this more, I think the correct fix would be to have TS use related spans: https://github.com/microsoft/TypeScript/issues/32848
I don't think adding special logic to handle this specific case is worth it in VS Code. Using related spans would also make the error more clear and let us link to specific abstract methods that not implemented


test perf of jawn compared to jackson

@sphereio/backend I check the perf of jawn compared to what we are currently using (jackson).
And jawn seems much faster than jackson for this particular test json.
It may be worth a try.

👍

@yanns Can this PR be closed?


TypeError: enrichr() got an unexpected keyword argument 'description'

Hi !
Thank you for developing PyWGCNA !
Running the command pyWGCNA_5xFAD.analyseWGCNA(geneList=geneList) in the Quick start notebook, I get the following error.

TypeError: enrichr() got an unexpected keyword argument 'description'

So, I checked the source code in the file PyWGCNA-main/PyWGCNA/wgcna.py, and I found that the above argument is used at the method gp.enrichr() in line3019.
However, in reading the official GSEApy web documentation, I could not find "description='' as an optional argument to the gp.enrichr() method. In my environment, gseapy==0.14.0 is installed through pypi.
Do I need to install another version of gseapy to solve this problem? Or do I just modify PyWGCNA.py? Which is better? Also, if I modify PyWGCNA.py, how should I install it?
Lastly... it's much easier to use than the R version of WGCNA, and I'm impressed!
Sincerely,

After modifying wgcna.py as above, I can install it according to the description "Install with the most recent commits"?

This approach wasn't able to dissolve  the problem.

Hi,
I Gald you liked it!
The version of gseapy I have is 0.10.5 but I'm working on a new release! hopefully, it will be out by mid of next week and I will address this problem! Thanks for letting me know

Hi !
Thank you for your response.
Looking forward to your new release!
There are a lot of Python users in this field, so I know lots of people will like it!


how to add animation flip page

https://i.stack.imgur.com/2VV54.gif

We have no plan to support it recently, you can refer http://www.turnjs.com/ to solve this problem.

@ArrayZoneYour  how to use turnJs for react-native?


Add hackerearth contests

Is your feature request related to a problem? Please describe.
I want to add hacker earth contest to the platform
Please assign me the issue

Hey @pratikkumar399, we had plans of this but HackerEarth has long challenges like 7days.


Drawing app using JS

closes issue #14
Added Drawing App folder which contains:

index.html
Readme.MD
script.js
Assets folder -> CSS folder and media folder
CSS folder has style.css and media folder has a screenshot of the app

Good job @chandu6111


Fix for broken android notifications

Fixes #7
Taken from https://community.home-assistant.io/t/advanced-medication-reminder/300137/118

thank you, I edited the file to juste fix, no format


In 0.4.0 after upgrading to terraform 0.13 cannot successfully create 'replica_force_ssl' policy.

When running terraform for the first time, getting this error:
Error: Error putting S3 policy: OperationAborted: A conflicting conditional operation is currently in progress against this resource. Please try again.
	status code: 409, request id: hexadecimalNumber, host id: base64string

Terraform succeeds on subsequent run, this resource is reported as being created:
  # module.remote_state.aws_s3_bucket_policy.replica_force_ssl will be created
  + resource "aws_s3_bucket_policy" "replica_force_ssl" {
      + bucket = "tf-remote-state-replica-20000"
      + id     = (known after apply)
      + policy = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "s3:*"
                      + Condition = {
                          + Bool = {
                              + aws:SecureTransport = "false"
                            }
                        }
                      + Effect    = "Deny"
                      + Principal = "*"
                      + Resource  = [
                          + "arn:aws:s3:::tf-remote-state-replica-20000/*",
                          + "arn:aws:s3:::tf-remote-state-replica-20000",
                        ]
                      + Sid       = "AllowSSLRequestsOnly"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
    }

This is resolved in v1.0.0!


⚠ TorrentLeech has degraded performance

In 03d1762, TorrentLeech ($TL) experienced degraded performance:

HTTP code: 200
Response time: 2055 ms

Resolved: TorrentLeech performance has improved in 789bfef after 6 minutes.


Absolute time label of fake span

Hi,
Thank you for sharing your amazing work. I am trying to use your work in my research. I have taken a look at your data, the fake labels are at the segment level. May I ask whether you have the absolute time label of the fake span (e.g. from 1.2 seconds to 2.8 seconds)  in each utterance?
Thank you for your support!

@ductuantruong
Sorry for the late reply. I've been in an extremely busy period recently ><
Are you referring to the database_vad.tar.gz?
After uncompressing, you will see:
===./database/vad/{train,dev,eval} ===
This vad folder contains the timestamp annotation for each set.
For each <uttid>.vad file, the format of each line is:
<start_time> <end_time> <label>

<start_time> and <end_time> are in second.
<label> includes: '0' for spoof, '1' for bona fide, and '2' for non-speech

Please let me know if this answers your question or if there is anything specific annotation you need. Thanks!

Thank you for your reply and sharing this amazing work! No worry about the late response. I have found the timestamp label with your guide.

@ductuantruong Hi, I just realized that you asked about this issue with timestamp annotations. To avoid any confusion, I want to clarify that I have provided two types of timestamp annotations, depending on how I categorize nonspeech region. There are three types of nonspeech to consider:
(i) nonspeech from bona fide sources,
(ii) nonspeech from spoofed sources, and
(iii) the concatenated part (the nonspeech used for overlap-add).
Based on this, the annotations are as follows:

spoof, bona fide:
In this type, (and all my currently published papers), I treat (i) as bona fide, while (ii) and (iii) as spoof.
database_segment_labels_v1.2.tar.gz
PS_data.tar.gz

spoof, bonafide, nonspeech (nonspeech includes i, ii, iii)
database_vad.tar.gz


feat: expose MediaContext to be used with useContext hook

Exports MediaContext along with HOC and Provider (so it can be used with useContext).
Also sets a default value of {} for the context.

:shipit:

nice one @gabrielmeridadomain - can you add a unit test ?

nice one @gabrielmeridadomain - can you add a unit test and ill merge then

Updated @jooj123

thanks heaps @gabrielmeridadomain !!


Support both -h, --help on spirv-as, spirv-val

The spirv-dis command already supports both.

LGTM

Rebased


[RESOLVED] High CPU utilization (over 90% for 5m)

Problem started at 21:44:28 on 2023.05.22
Problem name: High CPU utilization (over 90% for 5m)
Host: Zabbix server
Severity: Warning
Operational data: Current utilization: 97.88 %
Original problem ID: 21604
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=22384&eventid=21604

Problem has been resolved in 56s at 21:45:24 on 2023.05.22
Problem name: High CPU utilization (over 90% for 5m)
Host: Zabbix server
Severity: Warning
Original problem ID: 21604