Reduce the number of threads, processes, & Redis connections used

This sets Sidekiq concurrency to 2, which is a significant decrease from the default (which I think is 10 and used to be 25). That's fine; we aren't really in a big rush to process our Sidekiq jobs. They can wait for each other. :)
This changes the fallback WEB_CONCURRENCY to 2, reflecting a change I have already made to the Heroku environment variable setting.

After this deploys, I am going to run ab -n 30 -c 10 'https://www.davidrunger.com/' (30 requests, with a concurrency of 10 requests at a time). Hopefully that won't cause errors in the application, like a similar series of commands did before (as I commented here).

It worked! 😄 I ran ab -n 30 -c 10 'https://www.davidrunger.com/' and didn't get any errors. :)
While we're talking about it, here are the results, for posterity:
❯ ab -n 30 -c 10 'https://www.davidrunger.com/'
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.davidrunger.com (be patient).....done

Server Software:        Cowboy
Server Hostname:        www.davidrunger.com
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
TLS Server Name:        www.davidrunger.com

Document Path:          /
Document Length:        14294 bytes

Concurrency Level:      10
Time taken for tests:   1.783 seconds
Complete requests:      30
Failed requests:        7
   (Connect: 0, Receive: 0, Length: 7, Exceptions: 0)
Total transferred:      460895 bytes
HTML transferred:       428815 bytes
Requests per second:    16.82 [#/sec] (mean)
Time per request:       594.435 [ms] (mean)
Time per request:       59.444 [ms] (mean, across all concurrent requests)
Transfer rate:          252.39 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      255  287  42.6    275     489
Processing:    96  109  11.7    104     139
Waiting:       96  108  11.7    104     139
Total:        351  395  43.2    383     591

Percentage of the requests served within a certain time (ms)
  50%    383
  66%    398
  75%    403
  80%    412
  90%    436
  95%    449
  98%    591
  99%    591
 100%    591 (longest request)

I guess it wasn't a total success; I am realizing now that it says Failed requests: 7. I wonder what exactly the nature of the failures was.


Ensure the Tracking Tokens are updated for ignored Event Messages

Especially the Messages for which no handler for the type of payload was available did not always cause the tokens to be updated. This commit changes that behavior, to ensure that tokens are updated based on every message received, whether handled or not.

This PR solves #1815


feat: cross join support

Turning off the datafusion logical optimizer breaks a lot of things. Specifically, datafusion CrossJoin is not converted to a optd representation. This PR turns off the datafusion logical optimizer and adds preliminary support to CrossJoin.

generally LGTM -- meanwhile, to avoid breaking other teams from working, it would be helpful to use flags to enable/disable logical optimizer.
i would recommend add some planner tests to see the logical plan produced by optd. see yaml files for more information.

LGTM


Update to bundle-lib 0.1.9 to fix net-policy issue

Fixes Bug 1613280 - only create netpolicy if one already exists

Coverage remained the same at 33.484% when pulling 7f21f75cb28c4e253ce753f269f6e8ca01948270 on 3.10-network-policy into c3824a4bf932014ec23552e9b6fae98cceabe3bc on release-1.2.

https://github.com/openshift/ansible-service-broker/blob/release-1.2/apb/templates/broker-auth.clusterrole.yaml#L20 if the same works for master.


Router - Internal Error

I 'm getting an Internal error with the router when I run vamp like this:
git clone https://github.com/magneticio/vamp-docker.git && cd vamp-docker/docker-compositions/vamp-marathon-mesos/ && docker-compose up
On the terminal, I get this warning message constantly

vampcorepulse_1 | 19:06:04.588 | WARN  | org.elasticsearch.cluster.action.shard
 |                                          | [Lady Killer] [vamp-pulse-router-
metric-2015-08-19][1] received shard failed for [vamp-pulse-router-metric-2015-0
8-19][1], node[YUP22g_vTFi5CrY1syoIcQ], [P], s[INITIALIZING], indexUUID [lnDU6HJ
eToWoyDIU6OCC7w], reason [shard failure [failed recovery][IndexShardGatewayRecov
eryException[[vamp-pulse-router-metric-2015-08-19][1] failed recovery]; nested:
EngineCreationFailureException[[vamp-pulse-router-metric-2015-08-19][1] failed t
o upgrade 3x segments]; nested: EOFException[read past EOF: NIOFSIndexInput(path
="/usr/share/vamp-pulse/target/elasticsearch/elasticsearch/nodes/0/indices/vamp-
pulse-router-metric-2015-08-19/1/index/segments_3")]; ]]
vampcorepulse_1 | 19:06:04.602 | WARN  | org.elasticsearch.indices.cluster
 |                                          | [Lady Killer] [[vamp-pulse-router
-metric-2015-08-19][0]] marking and sending shard failed due to [failed recovery
]

vamprouter_1    | 20:49:17.879 metr ERRO ==>  read unix /data/haproxy.stats.sock

@pkadetiloye we're checking this right now.

Looks like some kind of mounting problem inside docker. Both errors have to do with accessing certain files (or sockets) on disk. I just did a clean pull and start and had no issues running.
Are you using Boot2Docker or a native Docker install?
What does the status check say in the UI? Click the cogwheel in the top right corner. It should report any starting errors.

The router toggles between this two states:

@tnolet I'm running native docker

@pkadetiloye Wow. That's pretty weird. Could you run the vamp-router container used in the Docker compose file just by itself? Also pull it explicitly, just to be sure. i.e:
docker pull magneticio/vamp-router:0.7.9
docker run magneticio/vamp-router:0.7.9

You should see something like:
14:14:15.670 main INFO ==>
██╗   ██╗ █████╗ ███╗   ███╗██████╗
██║   ██║██╔══██╗████╗ ████║██╔══██╗
██║   ██║███████║██╔████╔██║██████╔╝
╚██╗ ██╔╝██╔══██║██║╚██╔╝██║██╔═══╝
 ╚████╔╝ ██║  ██║██║ ╚═╝ ██║██║
  ╚═══╝  ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝
                       router
                       version 0.7.9
                       by magnetic.io

14:14:15.671 main NOTI ==>  Attempting to load config at /configuration
14:14:15.677 main NOTI ==>  Did not find a config...initializing empty config
14:14:15.715 main NOTI ==>  Created new pidfile...
14:14:15.831 main NOTI ==>  Initializing metric streams...
14:14:15.834 main NOTI ==>  Initializing REST API...

Same details, can I run docker-compose up now ?
philip@mavnecode:~/vamp-docker$ docker pull magneticio/vamp-router:0.7.9
0.7.9: Pulling from magneticio/vamp-router

83e4dde6b9cf: Already exists
b670fb0c7ecd: Already exists
29460ac93442: Already exists
d2a0ecffe6fa: Already exists
9d58416ad6a3: Already exists
debe1deb87f4: Already exists
43d800f855d7: Already exists
d142e39b98fb: Already exists
f2a70bc28f3b: Already exists
853fc7cf1473: Already exists
a7481517fd84: Already exists
c389e0effe7f: Already exists
fb4becc98009: Already exists
Digest: sha256:2de9fd3f8222c6aa129a305f018622fe3d74102f51dc786838d5cde667814460
Status: Image is up to date for magneticio/vamp-router:0.7.9
philipa@mavencode:~/vamp-docker$ docker run magneticio/vamp-router:0.7.9
14:19:51.777 main INFO ==>
██╗   ██╗ █████╗ ███╗   ███╗██████╗
██║   ██║██╔══██╗████╗ ████║██╔══██╗
██║   ██║███████║██╔████╔██║██████╔╝
╚██╗ ██╔╝██╔══██║██║╚██╔╝██║██╔═══╝
 ╚████╔╝ ██║  ██║██║ ╚═╝ ██║██║
  ╚═══╝  ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝
                       router
                       version 0.7.9
                       by magnetic.io

14:19:51.777 main NOTI ==>  Attempting to load config at /configuration
14:19:51.777 main NOTI ==>  Did not find a config...initializing empty config
14:19:51.781 main NOTI ==>  Created new pidfile...
14:19:51.783 main NOTI ==>  Initializing metric streams...
14:19:51.783 main NOTI ==>  Initializing REST API...

@pkadetiloye Yeah, just run a kill first, just to be sure
docker-compose kill
docker-compose up

@tnolet I updated the logs, please see above.
Is /data and /configuration mounted volumes ?

@pkadetiloye No, the /data and /configuration are part of the container. It should run straightaway.
You clearly have an issue reading from the haproxy socket which is created in the /data folder.
Without that, we cannot read haproxy data and generate metrics. The weird thing is, all components inside the container run as root.

I just created a fresh Ubuntu 14.04 instance on GCE, installed Docker 1.8 and ran the container. I see no problems. A curl on the /v1/info endpoint shows a healthy haproxy connections.  How are you?","Version":"0.7.9","Status":{"Name":"HAProxy","Version":"1.5.3","Release_date":"2014/07/25","Nbproc":"1","Process_num":"1","Pid":"10","Uptime":"0d 0h00m55s","Uptime_sec":"55","Memmax_MB":"0","Ulimit-n":"8223","Maxsock":"8223","Maxconn":"4096","Hard_maxconn":"4096","CurrConns":"0","CumConns":"23","CumReq":"23","MaxSslConns":"","CurrSslConns":"","CumSslConns":"","Maxpipes":"0","PipesUsed":"0","PipesFree":"0","ConnRate":"0","ConnRateLimit":"0","MaxConnRate":"0","SessRate":"0","SessRateLimit":"0","MaxSessRate":"0","SslRate":"","SslRateLimit":"","MaxSslRate":"","SslFrontendKeyRate":"","SslFrontendMaxKeyRate":"","SslFrontendSessionReuse_pct":"","SslBackendKeyRate":"","SslBackendMaxKeyRate":"","SslCacheLookups":"","SslCacheMisses":"","CompressBpsIn":"0","CompressBpsOut":"0","CompressBpsRateLim":"0","ZlibMemUsage":"","MaxZlibMemUsage":"","Tasks":"5","Run_queue":"1","Idle_pct":"100"}}

@tnolet I tried running off on another box and still got the same error.

Let me try and update you

Maybe try to login to the container and do some simple checks on the file locations and permissions.
i.e.
docker exec -i -t <CONTAINER_ID> /bin/bash
root@7f72c4028765:/# ls -ltr /data/haproxy.stats.sock
srwxr-xr-x 1 root root 0 Aug 20 14:57 /data/haproxy.stats.sock
root@7f72c4028765:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 14:57 ?        00:00:00 /vamp-router
root        10     1  0 14:57 ?        00:00:00 /usr/sbin/haproxy -f /configuration/haproxy_new.cfg -p /data/haproxy-private.pid -D
root        12     0  0 15:05 ?        00:00:00 /bin/bash
root        29    12  0 15:05 ?        00:00:00 ps -ef

Same output
srwxr-xr-x 1 root root 0 Aug 20 15:14 /data/haproxy.stats.sock
root         1     0  0 15:14 ?        00:00:00 /vamp-router
root         8     1  0 15:14 ?        00:00:00 /usr/sbin/haproxy -f /configurat
root        10     0  0 15:17 ?        00:00:00 /bin/bash
root        25    10  0 15:18 ?        00:00:00 ps -ef

By the way, how do you clear the logs in the container to prevent it from filling up the host/container ?

@pkadetiloye I cannot explain from here why this doesn't work. An option is to just install Vamp Router and HAproxy outside of Docker, which is recommended for any serious work anyway. This also answers the question with regard to logging. The docker container is just for quick demo purposes, so we don't manage logging at all. The .deb and .rpm packages move the logging to /var/log/vamp-router from which point on you can manage it anyway you like. For more info, check the install and config docs, for instance: http://vamp.io/installation/ubuntu/

when in the container, you can also start another instance by just using a different port:
/vamp-router --port=10003

for me that works and start a separate instance. Kinda useless, but it's a good check to see if it can connect to haproxy.

Still getting the same error
root@e672e6d82eb5:~# /vamp-router --port 10003
15:37:21.372 main INFO ==>
██╗   ██╗ █████╗ ███╗   ███╗██████╗
██║   ██║██╔══██╗████╗ ████║██╔══██╗
██║   ██║███████║██╔████╔██║██████╔╝
╚██╗ ██╔╝██╔══██║██║╚██╔╝██║██╔═══╝
 ╚████╔╝ ██║  ██║██║ ╚═╝ ██║██║
  ╚═══╝  ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝
                       router
                       version 0.7.9
                       by magnetic.io

15:37:21.373 main NOTI ==>  Attempting to load config at /configuration
15:37:21.373 main NOTI ==>  Did not find a config...initializing empty config
15:37:21.376 main NOTI ==>  Pidfile exists at /data/haproxy-private.pid, proceeding...
15:37:21.378 main NOTI ==>  Initializing metric streams...
15:37:21.378 main NOTI ==>  Initializing REST API...
15:38:21.379 metr NOTI ==>  Metrics parsed in last minute: 360
15:38:39.405 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:39:09.414 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:39:21.378 metr NOTI ==>  Metrics parsed in last minute: 324
15:39:39.424 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:40:09.434 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:40:21.378 metr NOTI ==>  Metrics parsed in last minute: 324
15:40:39.444 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:41:09.453 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:41:21.378 metr NOTI ==>  Metrics parsed in last minute: 324
15:41:39.463 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:42:09.473 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:42:21.378 metr NOTI ==>  Metrics parsed in last minute: 324
15:42:39.483 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:43:09.493 metr ERRO ==>  read unix /data/haproxy.stats.sock.50.tmp: permission denied
15:43:21.378 metr NOTI ==>  Metrics parsed in last minute: 324

@pkadetiloye I have a really hard time explaining how the same Docker container can have such a different behaviour. We've been using Vamp Router in an Docker container for a fairly long time now and never had issues.

@tnolet is so weird, I tried it on 3 different servers in the office and were all the same error but I got home, I spinned off a VM on my Cloudstack and installed it. Guess what ? It works.
I can't explain either but will keep investigating it.
Thanks,

@pkadetiloye That's indeed strange. Please remember though that using the container is not strictly recommended. An install using yum or apt-get is a better solution in the end.

@tnolet I haven't tried that but will try apt-get and see.
Thank you Tim


feat(protocol): send worker info (id and pid) to broker

Summary
This is a feature that sends worker info to broker. This feature is needed for future PRs to implement worker id based broker queues (to replace worker connection based queues).

We can postpone this as a standalone job.

What does postponing as a standalone job mean? Do you mean we can cut a release without it? I completely agree. This PR just builds basis for future improvements that I will open ”soon”.

If it is not urgent, I intend to turn it to draft.

Question: what is the advantage of replacing connection with worker id? Could I get some explain?

Question: what is the advantage of replacing connection with worker id? Could I get some explain?

Workers can crash. So this code:
self._clients[worker_connection]:pop()

if it was something like:
QUEUES[worker_id]:pop()

We could make queues survive across worker crashes (and continue writing on them). We could also simplify a lot of loops to just:
for i=1, WORKER_COUNT do
end

I think that with this library we can and probably should assume that each worker connects to a broker.


Corrected copyright notices

Fixed as in this PR: https://github.com/opensearch-project/.github/pull/24
Signed-off-by: AmiStrn<EMAIL_ADDRESS>Description
aligning the copyright to the one in the main project repo
Issues Resolved
#10
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks! Noticed you self-merged - I'm happy to watch this repo and do regular CRs, 👀  is always better than 👁 . Also I am sure @saratvemulapalli would be happy to help.

Thanks! If it was any more than this in terms of code I would have asked for a CR for sure, this one just seemed super insignificant...


Add formater in CI

Given that has many contributors with different styling preferences, CI should ensure a more cohesive style.
Examples
From https://github.com/ethereum/consensus-specs/pull/3205 use of single or double quotes in YAML
https://github.com/ethereum/consensus-specs/blob/e8ce723abc5014b810a5b30c4e14aa6eebdad043/configs/mainnet.yaml#L3-L4
https://github.com/ethereum/consensus-specs/blob/84fcfa8b2fda2452ccd1e18d94f12f9bb526ab7c/configs/mainnet.yaml#L3-L4
From specs/_features/sharding/beacon-chain.md. Spaced out container declaration vs non spaced out. Field comments on same line vs on previous line
https://github.com/ethereum/consensus-specs/blob/84fcfa8b2fda2452ccd1e18d94f12f9bb526ab7c/specs/_features/sharding/beacon-chain.md?plain=1#L119-L127
https://github.com/ethereum/consensus-specs/blob/84fcfa8b2fda2452ccd1e18d94f12f9bb526ab7c/specs/_features/sharding/beacon-chain.md?plain=1#L143-L145
https://github.com/ethereum/consensus-specs/blob/84fcfa8b2fda2452ccd1e18d94f12f9bb526ab7c/specs/_features/sharding/beacon-chain.md?plain=1#L151-L155
While pedantic, this is common in most languages default tooling and exist in most implementation codebases

Hi @dapplion, do you know a tool that would reformat python code in a .md file ?


[now-cli][now-client] Add optional HTTP/2

This PR implements two things:

HTTP/2 optionality in now-client (now HTTP/2 is off by default)
Makes now-cli use HTTP/2 on ^10 Node versions that have stable support

HTTP/2 now-client API
import { createDeployment,createLegacyDeployment } from 'now-client'

const useHttp2 = true

for await(event for createDeployment(path, opts, useHttp2)) {
  // ...
}

for await(event for createLegacyDeployment(path, opts, useHttp2)) {
  // ...
}

Why isn't useHttp2 part of the opts?

@rdev Is this PR still necessary or does #3011 supersede it?

Closing this as we have decided not to implement HTTP/2 for now


Revert "Release for CP 5.3.0"

Reverts confluentinc/cp-ansible#114

Merged to wrong branch, correcting.


PATCH: better random for toggle

:tada: This PR is included in version 1.0.2-rc.1 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


configuration problem.

Configuration issue. I don't know why I have this error in the code. I was trying to solve it, but I can't find the solution.
imagen in this url:
https://ibb.co/9p2mhys

I get the same error:
The class 'TbContext' cannot define the field 'onPopInvoked' and have a method 'PopEntry.onPopInvoked' with the same name. Try converting the getter to a method or rename the field to a name that doesn't cause a conflict.
The error occurs with Flutter 3.19.6 as well as with Flutter 3.24.6.
With Flutter 3.24.6 I also use Dart 3.5.3 and DevTools 2.37.3 and work in the stable channel.

It's because you're using a non-supported Flutter version. Here, you can find more about which version you need: https://github.com/thingsboard/flutter_thingsboard_pe_app/releases/tag/v1.3.0.

Ah ok, thanks. I didn't know that it is recorded which Flutter version is required in each case.
It has now helped me to use Flutter version 3.22.0.
However, I have not yet integrated FVM. I'm still used to git checkout 3.22.0 and it works.

It's okay, FVM just for your convenience.


Distributed mining

It shall be possible to mine programs without creating PRs to loda-programs. Found programs shall be pushed to a central server and automatically validated and added. It shall be possible to automatically add your name to the mined programs, like "Mined by XYZ..."

done. separate issue for "Mined by..."


No option to configure which IP type to listen on for mDNS

Expected Behavior
User's can configure which IP type (IPv4/IPv6) they want Dapr to listen on for mDNS discovery. This should default to both as is done today using the zeroconf default but have an option to exclude either type.
Actual Behavior
Only supports listening on both, this causes issues if no interface is available.
Release Note

RELEASE NOTE: ADD Configuration to set which interface type mDNS listens on.

Uploading initial report for context

Looking into this more, the initial log when registering is expected as this behaviour was introduced in this change. However, when trying to resolve a service we currently use the default zeroconf value which is to use IPv4 and IPv6 which will fatally error if no IPv6 interface is available.
One option would be to add MDNS config that a user can use to disable either ipv4 or ipv6 but not both. This is straight forward enough for service resolution. On the service registration front we have 2 options. Leave the current default logic that registers a service on any interfaces it finds on the host machine (this leads to that log message when either IPv4 or IPv6 is not available) but will still work. Or in Dapr we fetch all the interfaces from the kernel, iterate through them and filter out interfaces without IPv4 or IPv6 addresses based on the provided MDNS configuration. In addition, we'd need to account for the MDNS configuration conflicting with the actual available interfaces. If a user disables IPv4 to listen on IPv6 but the kernel doesn't have an interface with an IPv6 address then we'll have to crash.
We could avoid this by simply not allowing the user any MDNS config and just checking upfront whether IPv4 or IPv6 is available and then registering and resolving based on that. This option should be much simpler but is a lot less flexible.
@yaron2 WDYT?

@jjcollinge Thanks for looking into this. Based on the code in zeroConf, there is a possibility of specifying which IP type to use on resolver creation. Similarly I think we can specify which IP to use during service registration also.
The main difference that I see between option 1 and 2 is that 2 chooses the interface if its there and uses it without any user intervention, whereas option 1 provides the user a choice to disable one of the IP types. I believe that providing the option for the user to configure while keeping existing behaviour intact is better.
In this case I would suggest option 1b.

Leave existing logic for registration and resolver creation as such if no config is provided from the user. (Preserving existing use behaviour).
Add a config disableIPv6 to disable IPv6 alone and have IPv4 as the default "always on" interface to listen for.
Change logic in code such that during registration and resolver creation, the disabled interfaces are filtered out.

/cc @yaron2 @berndverst @artursouza thoughts?


phone-ru.js

Hello! When connecting the phone-ru.js work masks are not stable , the field is loaded and processed for a long time . Can you solve this problem ?

https://jsfiddle.net/y2d07raL/

@Soul-git ,
I know It takes too long.
The russian phone codes contain alot of entries.  To make it really usefull I should rewrite the phone extension.  The idea would be to initially load only the generic regions and while entering data load the more specific region.  This will reduce the number of variations in the mask which means more speed.
But the question is when do I have some spare-time...

Yes, I know that you know about the problem . I wanted to ask , at what stage of the solution of this issue . Thank you. (sorry , I write through an online translator ).

I've adapted my plugin to latest inputmask. See [the demo] (http://andr-04.github.io/inputmask-multi/ru.html).

Thank you. But unfortunately , with the appearance of your plangina before its renovation took place 2 years . jquery.inputmask constantly updated , I want to be sure that your plangin will be maintained up to date , and will not cease to work at the next Major Upgrade jquery.inputmask.

@Soul-git, yes, I had no plans to adopt my plugin for inputmask v3.x, but recently I've got the [pull request] (https://github.com/andr-04/inputmask-multi/pull/18). It indicates that inputmask-multi plugin is needed so I decided to merge this and fix bugs after that. So if you like inputmask-multi you can always give pull requests -- it will help to maintain it to work with next Major Upgrades of jquery.inputmask.

Not very convenient to communicate in English . I wrote on a page of your plangin .

@andr-04 Thanks for your work, Andrey! Can you please update your webpage to indicate the version/release date, because people would probably miss the fact that you've updated your plugin. We've recently had to remove its old version, due to the upgrade of Inputmask. Doh, we've just finished, and here comes the update!)

@Soul-git ,
Ok, got some performance tweaks in a local branch, which can handle the many russian phone codes., ... but it has still some side effects I have to solve....  but it will come soon now

Updated fiddle https://jsfiddle.net/y2d07raL/4/

dear Robin, what exactly does this commit solve/enhance ?
BTW, I see that deleting the last digit from the region code still takes ~ a lot of time and CPU.

@ichepurnoy ,
Yes that I still need to investigate.  Entry performance should be alot better.  Also the caret placing is better.
Todo is the delete performance (in some cases) and define the correct placeholder according the entry (also for some cases)

@RobinHerbots , the demo of Andrey @andr-04 works fine, as it seems. http://andr-04.github.io/inputmask-multi/ru.html
I was able to immediately add and delete digits.
Try  the code +7(42352) , and compare your demo and his. Your demo, when deleting digits, deletes the hole code at once, when you reach it by Backspace. His demo deletes digits 1 by 1, I don't know , maybe you too have some setting to set it like this. Maybe you can try his solution, if he does not mind.

@ichepurnoy ,
I know the solution of @andr-04 works perfect, but for me it is about the alternation logic and not about a specific solution.  Working on this, and take the russian phone codes as test case, improves the generic alternation logic and the inputmask as a whole.

Thank you for working in this direction . Speed is already a lot better.
Work @ andr- 04 is good, but can not keep up with your updates . Besides not work when compressive html.

Hi! The second year waiting for this feature, really looking forward to, make a donation today, thank you!!!

@ichepurnoy ,  @andr-04
Have you ever tried to enter the following in the inputmask-multi
"+7(341)###-##-##",  //ok
"+7(3412)##-##-##",  //fails
"+7(34126)#-##-##",  //fails
"+7(34130)#-##-##",  //fails
In my opinion the generic mask ("+7(341)###-##-##",) need to be removed from the phonecodes.  I can give you also other examples where it doesn't work.

@Tuning-Soft ,
With the current on github there are 14 phones failing of the 2425

Performance update issue => see #750

@Soul-git ,  @Tuning-Soft , @ichepurnoy , @andr-04 ,
The performance of entry should be good now.  Can you have a try with the current version on github
Todo:
I need to refactor the getmetadata to retrieve the region etc and I need some tweaking for deletes.

@Tuning-Soft ,
Getmetadata also fixed.
Can you have a try.


Time since UNIX Epoch (%s and %Q).

Per Ruby strftime:

[ ] %s is seconds since UNIX epoch
[ ] %Q is milliseconds since UNIX epoch

Related mbostock/d3#2164.

Fixed in #17.


[FR] Setting for auto-expand unlinked mentions

Thank you for this useful plugin.
In the backlinks sidebar the unlinked mentions are always expanded when I click on a new note, which is great and I love.
However, inside a note, the unlinked mentions are always collapsed and that's annoying.
It's sad that that the Obsidian core backlink feature don't allow us to auto-expand this section.
May I ask if you could add a setting to your plugin which auto-expand the unlinked mentions when a note is opened?
That would really help my workflow, as I need the unlinked mentions very often to have a feedback what I didn't link recently.

I'm not a dev, but really would like to hear your opinion on that FR.
I would be using this auto-expanding feature specifically for my tag pages.
I think a lot of people would love such a setting in your addon.
No one else implemented such a feature in any backlink plugin.

I will add this feature if I can implement it. It will be developed in about April, I'm too busy in march. 🥲

Hi, this feature is supported in version 0.1.0-b2. It is a beta version. If you are interested, you can install the beta version by BRAT to have an early try :)

0.1.0 has been released.

Thank you very much!
I tested it in my vaults and the new settings are awesome!
I tested it via BRAT, but the new release is not showing up in the community browser.


Fix flaky system tests  on CI

They work fine on my box but randomly fail on CI.
https://app.circleci.com/pipelines/github/confio/tgrade/533/workflows/efc0cd0a-c6cc-4ae9-b4b0-eb9df5b89337/jobs/2002
Try sleep 5-10 seconds before starting nodes for example.

I had to solve some issues with system tests in #233 . node4 home dir was not removed proper.
I would keep this issue open for some more days to see if that was the root issue

How many times is this failing?
Often, less often?

Let's track how often they are failing and see how necessary it is to fix them


Return response and add knowledge about returned exceptions

Would it be possible to extend your fcm/apn senders logic with knowledge about provider responses as PushSharp library does?
GCM example reference:
https://github.com/Redth/PushSharp/blob/master/PushSharp.Google/GcmServiceConnection.cs
Thanks for your efforts!

First of all I'm not using GCM, instead it is FCM from Google. I think we can add some details about the response if data is available. Need to look into it. But keep in mind, current implementation of the library only sends notification to 1 sender at a time, it means, you have access to number of failed/succeeded calls and what not. Let me know what data you're interested in and I'll look into adding it to the result (return value of a SendAsync method).

Sure, I know you are using FCM, it's anyway the recommended one.
Setting GcmUrl propery, in the GcmConfiguration class, to fcm one, resolves the "issue" PushSharp has:
Reference:
https://github.com/Redth/PushSharp/blob/master/PushSharp.Google/GcmConfiguration.cs
I hope FCM returns more or less same success/error responses, since we are using FCM endpoint with PushSharp atm.
We are sending notifications to 1 sender also. Sending message to multiple registration would be also great to have (in future)!
I guess this class can help you with the responses I am interested in:
https://github.com/Redth/PushSharp/blob/master/PushSharp.Google/GcmMessageResult.cs
However, we should check official FCM/APN documentaiton regarding it.
I am think of switching to your library, but I am blocked untill we have more knowledge into it.

@kostebudinoski ok, thanks! I'll look into it, but it won't be today. You're welcome to open a PR just saying ;)

any update on this @andrei-m-code? Thanks!

@kostebudinoski thank you for your request. I have released v2.0.3 with Fcm response. Please try and let me know if it works for you.


refactor(syscall): split up the SyscallHandler trait

The syscall crate lib.rs grows bigger and bigger.
This patch splits up the syscalls and functions in sub-traits.
It does not change any functions and implementations.
Signed-off-by: Harald Hoyer<EMAIL_ADDRESS>

I factored out BaseSyscall because I was not splitting the gigantic match function.
Splitting that function would still include the pattern... but yeah... it's an idea, which might half it in the end.

Ah... I forgot... BaseSyscall is needed by all the other traits, because of e.g. trace and cursor.
And SyscallHandler collects all the components.

I also wonder if there would be a better way to organize the giant list of syscalls in SyscallHandler::syscall() based on how they are split up among the different handlers.

Well, there has to be one primary match... but you are right... we could also call to subcomponents for the final call with the casts.

I also wonder if there would be a better way to organize the giant list of syscalls in SyscallHandler::syscall() based on how they are split up among the different handlers.

Well, there has to be one primary match... but you are right... we could also call to subcomponents for the final call with the casts.

I was just thinking to reorder the lines and add comments maybe, not change any logic. But I also think it's okay the way it is.

I also wonder if there would be a better way to organize the giant list of syscalls in SyscallHandler::syscall() based on how they are split up among the different handlers.

Well, there has to be one primary match... but you are right... we could also call to subcomponents for the final call with the casts.

I was just thinking to reorder the lines and add comments maybe, not change any logic. But I also think it's okay the way it is.

@lkatalin reordered the lines


Update capacity-storage.md

Updated with the direct URL til Power Platform Admin center - https://admin.powerplatform.microsoft.com/

Updated doc with a direct link to the Power Platform Admin center.


Add local copies of icons

This PR adds local copies of icons, which were previously present on the forums site. This removes references to the forums site (which according to the linked issue, causing a not insignificant amount of traffic when visitors try to retrieve the non-existent files), and fixes the favicons of the docs site.
Addresses MinecraftForge#366.

It seems as though this doesn't address the favicon for android chrome or windows metro. It might be good to generate these as well since it is in the scope.

This now addresses all favicons, by copying from the master MinecraftForge/Web repository (specifically, the images/favicons directory).

Removed the 144x144 tile icon, as according to the Microsoft docs on the Browser configuration schema, specifically the section on "Specifying tile images and assets", there is no equivalent entry for a 144x144 icon.


Question regarding to 'Information about European Union funds'

We noticed the following issue.
 Moreover if we send a program more than once with different financing identifier it appears on the pdf only once. As a result we can't decide which ones (BT-722, BT-5011, BT-6110) belong to each other. We use SDK 1.11.1 (it works the same in SDK 1.7.2).

Is this an intened visualisation or is it a fault?
Could you please investigate the issue?
Thanks in advance!

Thank you for your question. Unfortunately, this is a fault in EFX1 that cannot be fixed. This fault will be corrected in EFX2, but we do not have a date for when EFX2 will be released.

Thanks a lot for the answer!


tabmat.from_df is not documented

in the docs https://tabmat.readthedocs.io/en/latest/api.html

Thanks for catching that!


Azure not s3 wire compatible

AzureBucket is intended to be an s3 compatible bucket abstraction Microsoft blob storage. However, blob storage isn't compatible with the S3 protocol. For local consumption we could run a s3 proxy as a sidecar, and for public consumption we could even run a proxy as a service.
Blog about using minio as an s3 proxy to blob storage

I don't think this is relevant anymore. We don't have a static strongly-typed Bucket CRD in core Crossplane now.


DL101 Week 1 interp.plot_top_losses plots only one image

Describe the bug
In the DL101 notebook, the interp.plot_top_losses(5, nrows=5) line will only return one image.
It is critical to the notebook running correctly for students.
To Reproduce
Steps to reproduce the behavior or code you have used
Run the notebook, train the model, then run this cell
interp.plot_top_losses(5, nrows=5)
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Ubuntu
Browser [e.g. chrome, safari]
Firefox
Version [e.g. 22]

Additional context
This has been mentioned by several students, and is important to their experience.

@Dennis-fast-ai
Could you put in the comments of this issue, the fix-up code that you found on fastai forums?
Thanks

@jfthuong Here is the code
#@title Getting a visual result for the top losses
def plot_top_losses_fix(interp, k, largest=True, **kwargs):
losses,idx = interp.top_losses(k, largest)
if not isinstance(interp.inputs, tuple): interp.inputs = (interp.inputs,)
if isinstance(interp.inputs[0], Tensor): inps = tuple(o[idx] for o in interp.inputs)
else: inps = interp.dl.create_batch(interp.dl.before_batch([tuple(o[i] for o in interp.inputs) for i in idx]))
b = inps + tuple(o[idx] for o in (interp.targs if is_listy(interp.targs) else (interp.targs,)))
x,y,its = interp.dl._pre_show_batch(b, max_n=k)
b_out = inps + tuple(o[idx] for o in (interp.decoded if is_listy(interp.decoded) else (interp.decoded,)))
x1,y1,outs = interp.dl._pre_show_batch(b_out, max_n=k)
if its is not None:
#plot_top_losses(x, y, its, outs.itemgot(slice(len(inps), None)), L(self.preds).itemgot(idx), losses,  **kwargs)
plot_top_losses(x, y, its, outs.itemgot(slice(len(inps), None)), interp.preds[idx], losses,  **kwargs)
#TODO: figure out if this is needed
#its None means that a batch knows how to show itself as a whole, so we pass x, x1
#else: show_results(x, x1, its, ctxs=ctxs, max_n=max_n, **kwargs)
plot_top_losses_fix(interp, 10, nrows=2)


1.2.12 "Ensure auditing is configured for Docker files and directories - /usr/sbin/runc" should  also check /usr/bin/runc

https://github.com/docker/docker-bench-security/blob/6d73492aab235840aa134878a079d6e4da328eed/tests/1_host_configuration.sh#L431-L466
containerd.io dpkg installs runc as /usr/bin/runc

containerd.io isn't a official Docker release so to say, and /usr/bin/runc isn't present in the CIS Docker benchmark.
Please see https://github.com/docker/docker.github.io/pull/7717 and https://github.com/moby/moby/issues/38185.

Closing due to inactivity.


chore: cherrypick payloadformatversion feature

Issue #, if available:
Description of changes:
cherry pick #1517 into release branch
Description of how you validated changes:
Checklist:

[ ] Write/update tests
[ ] make pr passes
[ ] Update documentation
[ ] Verify transformed template deploys and application functions as expected
[ ] Add/update example to examples/2016-10-31

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

Codecov Report

Merging #1520 into release/v1.22.0 will decrease coverage by 0.01%.
The diff coverage is 85.71%.

@@                 Coverage Diff                 @@
##           release/v1.22.0    #1520      +/-   ##
===================================================
- Coverage            94.11%   94.09%   -0.02%
===================================================
  Files                   78       78
  Lines                 4942     4949       +7
  Branches               996      999       +3
===================================================
+ Hits                  4651     4657       +6
  Misses                 135      135
- Partials               156      157       +1

Impacted Files
Coverage Δ

samtranslator/model/eventsources/push.py
90.87% <100%> (+0.03%)
:arrow_up:

samtranslator/open_api/open_api.py
91.6% <80%> (-0.24%)
:arrow_down:

Continue to review full report at Codecov.

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


Fix issue of wrong lables in MNISTcolor dataset

Codecov Report

Merging #84 (9b2e594) into master (6fa7ca8) will decrease coverage by 0.10%.
The diff coverage is 100.00%.

:exclamation: Current head 9b2e594 differs from pull request most recent head 9ba10fc. Consider uploading reports for the commit 9ba10fc to get more accurate results

@@            Coverage Diff             @@
##           master      #84      +/-   ##
==========================================
- Coverage   93.94%   93.84%   -0.10%
==========================================
  Files         101      101
  Lines        3105     3105
==========================================
- Hits         2917     2914       -3
- Misses        188      191       +3

Flag
Coverage Δ

unittests
93.84% <100.00%> (-0.10%)
:arrow_down:

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

Impacted Files
Coverage Δ

domainlab/dsets/a_dset_mnist_color_rgb_solo.py
93.02% <100.00%> (ø)

domainlab/algos/msels/c_msel.py
85.00% <0.00%> (-15.00%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Hi Xinyue and Carla, thanks for finding the bug and try to fix it! Great job! The codacy issues have not been fully resovled or?

I will solve them later!

I have put the file you deleted here:  @Car-la-F
https://github.com/marrlab/DomainLab/issues/83


chore(deps): update common-dev-assets digest to 09c3d8a

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
1c3409f -> 09c3d8a

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

:tada: This PR is included in version 1.31.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Media uploads to Backblaze B2 via S3 API fail randomly due to use of unsupported x-amz-checksum-algorithm header

I am experiencing sporadic issues uploading files while using the latest release of MMR.
I am using a Backblaze bucket to store all media types and some uploads seem to fail with an error like this:
time="2024-03-26 16:50:14.890 Z" level=error msg="Unexpected error uploading media: Unsupported header 'x-amz-checksum-algorithm' received for this API call." authUserId="snipped" contentLength=17163241 contentType=application/octet-stream filename=. host=nerdsin.space method=POST queryString="" remoteAddr="<IP_ADDRESS>:59712" requestId=REQ-4 resource=/_matrix/media/v3/upload userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Element/1.11.61 Chrome/120.0.6099.268 Electron/28.2.1 Safari/537.36"

Googling this error seems to indicate this is a Backblaze implementation limitation but other projects seem to have worked around it using a config option related to checksum algorithms (see https://github.com/grafana/mimir/issues/7270 for example). Would be great to have such a feature added to MMR in order for Backblaze to be a viable s3 provider.

I just noticed there was actually a PR opened to fix this exact problem (https://github.com/t2bot/matrix-media-repo/pull/414) but it was closed for some reason even though it's completely opt-in. Please re-consider merging the fix so myself and other users can avoid having to build parallel forks of the project just to make it usable with their storage provider.

It's not actually random, this happens when the upload size exceeds a certain threshold and the upload happens as a multipart upload
IIRC that PR was closed due to significant performance concerns on high-throughput scenarios. Another way to work around the x-amz-checksum-algorithm "issue" with B2 is to make the minimum size for mutipart uploads configurable. "Normally" this could be used for performance tuning, but in case of B2 one could just crank the value to maximum to effectively disable multipart uploads

Thanks!


Audit and update dependencies via 'npm audit fix'

Resolves some npm audit warnings.
Revives (and updates) #87.

Probably better to leave this to the local dependabot :robot:


Add build step to extract generated TokenKind enum

This adds a build step that creates a temp build targeting node.js, imports the TokenKind enum from it, then generates a new .ts file in src containing the enum, to be imported/exported by index.ts. It's a little bit convoluted, but does automatically generate the correct types in the end.

Why do you need this? I think it's easier to do something along the lines:
return tokens.map(t => WellTypedToken { kind: TokenKind[t.kind], ...t)

The main issue I was having was importing TokenKind in edgedb studio, as webpack needs there to be a dynamic import before the import of the .wasm file and TokenKind is exported from the same file as that wasm import.
So the tradeoff is to either leave the build as is and have a more awkward api, where the TokenKind const has to be loaded async through a dynamic import similar to the lexEdgeQL function, or have a better api where TokenKind can be imported normally, but adding an extra step in the build to extract the enum from wasm-pack generated code and move it to the other side of the dynamic import.
Whether it's an normal enum that you have to do the TokenKind[t.kind] mapping with, or a string enum doesn't really matter, either would work. I just made it a string enum as I was adding an extra build step anyway, and that makes it slightly easier to use.

Generally, I think it's quite unfortunate to be unable to use types generated by Rust. While lexer will not grow much, we may want to share other parts of query parser and code completion machinery with the Rust.
Are async imports too hard in typescript?

Are async imports too hard in typescript?

Yes, you basically can't use the stuff you import asynchronously to type top-level functions/types.

Are async imports too hard in typescript?

Yes, you basically can't use the stuff you import asynchronously to type top-level functions/types.

Actually, while generated type is at edgeql_wasm_bg.js, the typescript type definition is at edgeql_wasm.d.ts. So at least import type should work. Or am I misunderstanding something?

I had forgotten about import type, I've just checked and webpack is ok with it. However since it is no longer a runtime type, and the compile time type is not a string enum, typescript expects token.kind to be a number and you can't now map the string to the number it's expecting with something like TokenKind[token.kind]

So using the type in function signatures works fine. Then I expect something likes this to work:
export async function lexEdgeQL(str: string): Promise<Array<Token>> {
  const lib = await loadLib();
  return lib.lexEdgeQL(str).map(tok => Token { kind: lib.TokenKind[tok.kind], ...tok})
}

The function is already async and it already loads the type, so should probably be fine?

The function is already async and it already loads the type, so should probably be fine?

Hah, I totally forgot about import type. Your approach should work.

If I'm understanding correctly, I'm not sure how that would help, since all you would have then is lexEdgeQL returning tokens where .kind is a number. If there's still no good way to access the runtime TokenKind object to map that number back to a name, this is worse than an at least readable (but not typechecked) string.
The ultimate problem is that wasm-pack doesn't generate the correct enum type. If it output a string enum or even a string literal union type, then import type would be fine, since you could then do something like if (token.kind === 'Keyword') ... which is still readable and typescript can correctly typecheck it.

Yeah, so function signatures are fine. But every time you have to compare that for something you have to use:
async function do_something() {
   let TokenKind = (await import(...)).TokenKind;
   if(token == TokenKind.Keyword) {...}
}

It looks like there is an issue about that: https://github.com/rustwasm/wasm-bindgen/issues/2153


Remove ResourceDiscriminators (legacy approach)

With this PR: https://github.com/operator-framework/java-operator-sdk/pull/2252
we can handle this quite elegantly without the resource discriminators, is there are use case (also for external resources) when we need this former approach anymore? If we cannot think we should consider removing this for v5

The only case with is not handled now elegantly is the read-only dependent resource since that does not have the desired state by default. There are multiple choices regarding this:

the users will have still to provide the desired for read-only but just with the metadata only.  Maybe we can make this nicer, providing an API to override that just returns a ResourceID.
we keep the discriminators
the read only is resource is still a corner case, to by just overriding the DependentResource.getSecondaryResource the user can provide it's own implementation.

I think we should keep them for optimization purposes as well. If the desired state is costly to compute and there are better ways to decided which secondary resource needs to be used, I think it still makes sense to use a discriminator even if it shouldn't be needed in most cases. That said, we could indeed tell people to override getSecondaryResource in that situation.

indeed tell people to override getSecondaryResource in that situation

exactly, basically resource discriminator puts nothing on table now, as we discussed before the only reason to create was to have a class representing the concept explicitly, so it is settable explicitly on a resource. But it's API is basically just the context:
Optional<R> distinguish(Class<R> resource, P primary, Context<P> context);
On the other hand desired needs to be always computed, except in the read-only (what is already kinda exotic case https://javaoperatorsdk.io/docs/dependent-resources#read-only-dependent-resources-vs-event-source )
But will examine the problem more in depth.

On the other hand desired needs to be always computed, except in the read-only (what is already kinda exotic case https://javaoperatorsdk.io/docs/dependent-resources#read-only-dependent-resources-vs-event-source )

Yes but if it's costly to compute, we should try to avoid computing it several times… maybe we should record the computed desired state(s) in the Context so that they are available for downstream usage once they have been computed once?

But will examine the problem more in depth.

yes definitelly, that is something will be done even if the discriminators are not removed.

After using JOSDK for quite some time now, I think we only need discriminators for dependents because dependents currently have no identifiers. This is why @csviri proposes to evaluate the resource that the desired method returns.
To overcome this problem of missing identifier, I've added the following method to all of my dependent classes public static String getName(P primary) where P is the primary CRD type. This allows me to derive the name from the name of the primary in a consistent way throughout my code, e.g. I call getName in every discriminator and I am able to find the Kubernetes via fabric8 client even without the context (e.g. useful for test cases).
You could force users to define the identifier upfront (e.g. by an abstract method ResourceID getId(P primary, Context<P> context) that has to be implemented). This has several benefits:

You would have a way to determine the resource id even without calling desired
You would not need discriminators because you can rely on the getId method to distinguish resources of the same type
You could even enforce that the resource returned by desired always has the name/namespace returned by getId (today it is possible that I change the name of the resource between multiple calls of the desired method)


rule file selector

We will eventually hit the size limit of a single ConfigMap with alerting rules/recording rules therefore we need a mechanism to select multiple. I propose to instead of trying to mount a single ConfigMap to select ConfigMaps via a label selector.
This would be a breaking change to the current way we handle rule files.
Also cross referencing to #166, should we keep using ConfigMaps or use Secrets here as well. I would say Alertmanager and Prometheus configs should be Secrets but the rule files can remain to be ConfigMaps, but I'm happy to be convinced otherwise.
@fabxc
/cc @whereisaaron

All sounds good.
I don't know how big a rules collection might get (in number or size), but 'etcd' is I think not supposed to be bulk storage. If the collection could get very large, at some point you could instead have the option to configure a PV and path as the source for rules files, and mount that to provide the rules files rather than dozens of ConfigMaps. So you could decided to support one of:

A single ConfigMap by name
A label selector of ConfigMaps
A PV and path (path within the in PV)

Like ConfigMaps, many types of PVs can be shared (a least read-only).
But maybe a selector of ConfigMaps is more that enough for most use cases.

Looking at current rule sets I think we won't even hit the limit of a single ConfigMap for a while. For cluster monitoring I'm expecting an absolute max get up to 3 ConfigMaps (current volume for etcd and kubernetes rules is ~150kb including a large set of recording rules).


Auth module

Hi
I plan to use traefik on many instance of docker server.
Some on servers, in swarm cluster (or any other orchestrator)
And some on dev laptop (docker-toolbox) to let developpers run their own containers
When a dev run a set of containers in his laptop, traefik expose the web service to all the company, so others dev in team can test app
For some security reason, I would like to authenticate users when access to the traefik instance.
For the moment, I do the following :

Set traefik to listen only on localhost, on port != 80
Set an nginx reverse proxy with ldap auth configure to let access only to right people, listening on the external IP and redirect all traffic to traefik

The problem :
Those access rules are set for every containers globally
Can we imagine an auth config to traefik, tu plug with ldap for example, and then set some labels on containers to apply a security access rule to the frontend ? With that, each frontend can have its own access rule.
I think its a lot of work, so I want to know if others need that :D
Thanx

Maybe linked to #391 ?

Can you integrate https://github.com/weaveworks/ghost?

Any updates on LDAP support?

Linked to #764

@WTFKr0 do you have anything on backend that uses ldap auth as well? (I believe it should be passed to the tool from NGinx) I am curious, did you achieve stability? I am facing issue with continuous closed keepalive connection and client closed connection while waiting for request messages. Looking to Traefik to replace it.

For my case, I can set an nginx reverse proxy with auth ldap in front of my traefik.
It seems to work very well

Just for reference, I have a docker registry behind an nginx LDAP basic auth behind traefik, and I haven't had any problems. Not everything behind my traefik needs LDAP auth.
I would like to just do LDAP auth in traefik directly tho. Would remove one piece of my infra.

Has this gone anywhere? I'd love to see LDAP auth for the backend.

I bet on https://docs.traefik.io/v2.0/middlewares/forwardauth/

Hey, just to give a quick update on this rather old issue :)
As pointed out by @andypost I believe that LDAP can work with the ForwardAuth middleware for most use cases, there are a few discussions and references linked on this issue as well.
Also we now have a plugin system available as well, and lately we're encouraging contributors to write authentication middleware as plugins. It reduces the complexity of our code base, give more control to contributors and helps us to keep focused on other important subjects.
For those reasons I'm closing this, but as usual if you feel this is not right or want to discuss a specific proposal that does not fit as a plugin or and enhancement for the ForwardAuth don't hesitate to reach us in the comments or submit a new issue.


Capture pymemcache host & port

Overview
Capture pymemcache host & port to create AWS entity metric.

Codecov Report
Attention: Patch coverage is 0% with 7 lines in your changes missing coverage. Please review.

Project coverage is 81.35%. Comparing base (70e98a5) to head (137793c).

Files
Patch %
Lines

newrelic/hooks/datastore_pymemcache.py
0.00%
7 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1194      +/-   ##
==========================================
- Coverage   81.65%   81.35%   -0.30%
==========================================
  Files         197      197
  Lines       21773    21779       +6
  Branches     3802     3804       +2
==========================================
- Hits        17778    17719      -59
- Misses       2888     2953      +65
  Partials     1107     1107

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

It would be nice to add this information to the aiomcache database store as well.

It would be nice to add this information to the aiomcache database store as well.

I have chosen not to do this since aiomcache has not been updated since 2014. It appears to be dead. It also does not support past Python 3.4 (we only officially support down to Python 3.7 right now). If it is updated at some point in the future then we can do this at that time. Right now I don't see that's it's worth the effort.

I have chosen not to do this since aiomcache has not been updated since 2014. It appears to be dead. It also does not support past Python 3.4 (we only officially support down to Python 3.7 right now). If it is updated at some point in the future then we can do this at that time. Right now I don't see that it's worth the effort.

Maybe we are not talking about the same project. The latest version of aiomcache was released in May 2024. https://github.com/aio-libs/aiomcache/releases/tag/v0.8.2
I added the instrumentation in this pr.

I have chosen not to do this since aiomcache has not been updated since 2014. It appears to be dead. It also does not support past Python 3.4 (we only officially support down to Python 3.7 right now). If it is updated at some point in the future then we can do this at that time. Right now I don't see that it's worth the effort.

Maybe we are not talking about the same project. The latest version of aiomcache was released in May 2024. https://github.com/aio-libs/aiomcache/releases/tag/v0.8.2
I added the instrumentation in this pr.

 We were talking about different libraries! Sorry-yes I will add that in!


When you do a vertical full-screen page with swiper, there is an input box in the page, and when you type text, the page is out of order.

When I do a vertical full-screen page with swiper, there is an input box in the page, and when you type text, the page is out of order

Your issue is closed because it is not filled correctly. Before you open an issue please review the contributing guideline.
Please fill the issue template correctly and:

Clearly describe the issue including steps to reproduce when it is a bug.
Make sure you fill in the earliest version that you know has the issue.
Provide live link or JSFiddle/Codepen or website with isssue

It will save a lot of time for other contributors to check your issue and fix it.


⚠ Quirk Club Argentina (API endpoint) has degraded performance

In 96d26f8, Quirk Club Argentina (API endpoint) (https://us-central1-quirkclub-dev.cloudfunctions.net/api/check/api) experienced degraded performance:

HTTP code: 200
Response time: 7118 ms

Resolved: Quirk Club Argentina (API endpoint) performance has improved in c8f4289.


CardPointInquiry Response Struct

Hi, i just want to make sure the func CardPointInquiry its should be return struct like CardPointInquiryResponse instead of CardTokenResponse ?
type PointInquiryResponse struct {
	StatusCode         string `json:"status_code"`
	StatusMessage      string `json:"status_message"`
	PointBalance       int    `json:"point_balance"`
	TransactionTime    string `json:"transaction_time"`
	PointBalanceAmount string `json:"point_balance_amount"`
}

// CardPointInquiry : Do `/point_inquiry/{tokenId}` API request to Midtrans Core API return `coreapi.CardTokenResponse`,
// more detail refer to: https://api-docs.midtrans.com/#point-inquiry
func (c Client) CardPointInquiry(cardToken string) (*CardTokenResponse, *midtrans.Error) {
	resp := &CardTokenResponse{}
	err := c.HttpClient.Call(
		http.MethodGet,
		fmt.Sprintf("%s/v2/point_inquiry/%s", c.Env.BaseUrl(), cardToken),
		&c.ServerKey,
		c.Options,
		nil,
		resp,
	)

	if err != nil {
		return resp, err
	}
	return resp, nil
}

// CardPointInquiry : Do `/point_inquiry/{tokenId}` API request to Midtrans Core API return `coreapi.CardTokenResponse`,
// more detail refer to: https://api-docs.midtrans.com/#point-inquiry
func CardPointInquiry(cardToken string) (*CardTokenResponse, *midtrans.Error) {
	return getDefaultClient().CardPointInquiry(cardToken)
}

Hi @erwinwahyura thank you for reaching out to us. Yes, it should be returned to struct CardPointInquiryResponse. Seems valid issue. We will take a look at this and get back to you. But if you already have the changes or fix, do not hesitate to open pull request. Thank you

Hi @Xaxxis cool opened PR at #24

I'll help Zaki while he's currently away.
Approved, merged & published, thanks for reporting the issue & contributing mas @erwinwahyura ! 👍 appreciate it. Thanks!
Will close this for now. let us know if you find any other issues. Thanks


[UI] Change unfocused tab color

I've added 3 tab bars below. On the top is the Tor Browser, in the middle Bisq and on the bottom Sparrow in dark mode.
The first two use a tab color for unfocused tabs that blends with the background of the tab bar. Sparrow uses a really dark grey which looks so heavy that I have to wonder which one is focused every time I come back to it: the "normal" UI grey or the heavy dark one which catches the eye?! The stroke width of the light blue border is too subtile for a quick glance I would say.
As this is purely subjective it would be interesting to hear from others whether they also have this impression.

For comparison I've added the UI with a unfocused tab color that also blends in with the background, which makes it clearer where the focus lies imho:

I agree - have been meaning to look at this. The background color of the unselected tabs is now lighter than the selected tabs. 210d52c0.


Removing compass-system namespace kills CMP synchronization

Description
There are some resources in the compass system namespace that are applied by the KCP Provisioner that will not be recreated after they are removed. This includes secrets, configs, and certificates used by the Compass Runtime Agent. Removing those will result in the Runtime not being able to communicate with Compass via the Agent.
Mitigation Approach
We will provide a separate sub-reconciler only for Compass integration purposes.

Issue for Compass Reconciler: https://github.com/kyma-incubator/reconciler/issues/419


Validation in student enrollment form and improve UI of page

Describe the bug
no validation in email and image link
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

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

Desktop (please complete the following information):

OS: [windows11]
Browser [firefox]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@shivaniyuvrajyadav can you assign this issue to me

Hey @Shu12388y I'm also contributor not a project admin or mentor.

@TusharKesarwani  can you assign this issue to me


Docker Securitiy - Quick Reference book

Hi.
I would like to add a link.
Would you be interested in including my Docker Securitiy - Quick Reference book?
https://binarymist.io/publication/docker-security/
If so, I'll sub a PR.
Thanks.

Hi @binarymist,
Yes please make a PR, this is a really useful resources.
You add it there: https://github.com/veggiemonk/awesome-docker#security-1

In this podcast (http://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security/) I interviewed Docker Security Team Lead, it's also an excellent resource. Let me know if you would like it included and where, if you would.
Thanks.

@binarymist That's a valuable resource.
Thank you


ouroboros sets fixed IP addresses

Hi.
After rebooting my server, I've noticed that some containers were in a state of "Stopped (255)" and couldn't be restarted anymore. Trying to do so yielded an Error response from daemon: Address already in use. Recreating them did work, but I would rather like them to be automatically restarted after a reboot like all the other containers.
After some thinking about this I think I found the problem: ouroboros sets fixed IP adresses on containers it restarts. These persist even after a reboot of the server. But all containers that were not touched by ouroboros still don't have a fixed IP and will dynamically grep the first available one - which can happen to be one attached to a not-yet-running-but-about-to-be-started container. This will of course prevent that container from starting...
I did a docker inspect of a container after creating it and again after ouroboros updated it. A diff yielded (amongst other things like changed Id and Created values):
             "Networks": {
                 "ldap": {
-                    "IPAMConfig": {},
+                    "IPAMConfig": {
+                        "IPv4Address": "<IP_ADDRESS>"
+                    },
                     "Links": null,
                     "Aliases": [
-                        "1b32d47d1fef"
+                        "1b32d47d1fef",
+                        "2745cfe3c1c0"
                     ],
...
                 "mariadb": {
-                    "IPAMConfig": null,
+                    "IPAMConfig": {
+                        "IPv4Address": "<IP_ADDRESS>"
+                    },
                     "Links": null,
                     "Aliases": [
-                        "1b32d47d1fef"
+                        "1b32d47d1fef",
+                        "2745cfe3c1c0"
                     ],
...
                 "nginx": {
-                    "IPAMConfig": {},
+                    "IPAMConfig": {
+                        "IPv4Address": "<IP_ADDRESS>"
+                    },
                     "Links": null,
                     "Aliases": [
-                        "1b32d47d1fef"
+                        "1b32d47d1fef",
+                        "2745cfe3c1c0"
                     ],

I think this matches my hypothesis.
Expected behaviour would be that ouroboros doesn't set a fixed IP if there isn't a fixed IP to begin with.

This is by design:
https://github.com/pyouroboros/ouroboros/blob/master/pyouroboros/dockerclient.py#L153
We've seen several issues with keeping network configs for things that dynamically provision docker networks like docker-compose and I dont think there's a way to determine if the ip address was manually set or not.

Hm, watchtower does not exhibit this behavior. Whether that's a missing feature or intentional, I don't know. As is, ouroboros is pretty unusable for me as many containers break after reboot due to address collisions. If the address status of a container (explicit address assignment vs. automatic allocation) cannot be inferred, what about adding a label to identify containers with an explicitly allocated address? I'd expect these to be a minority.

I just did a small test:
$ docker run -d --name test --net nginx nginx ; sleep 10; docker inspect test > without_ip ; docker rm -f test
$ docker run -d --name test --net nginx --ip <IP_ADDRESS> nginx ; sleep 10; docker inspect test > with_ip ; docker rm -f test
$ diff -u without_ip with_ip

This diff contains:
         "NetworkSettings": {
...
             "Networks": {
                 "nginx": {
-                    "IPAMConfig": null,
+                    "IPAMConfig": {
+                        "IPv4Address": "<IP_ADDRESS>"
+                    },

I don't know about docker-compose and friends, but at least running a container "manually" (which is what I'm doing most of the time), the IPAMConfig: null seems to indicate a dynamically set IP, while a fixed IP would be indicated by something like IPAMConfig: { IPv4Address: <IP>}.

Ah, so we can probably do a check like so:
pseudocode:

how exactly is there address collisions. all its doing is reusing the ip address it used before. that makes no sense

Just ouroboros restarting a container isn't the problem. But restarting docker or even the server can lead to problem:
Assume you have a container, let's just say nginx. Of the four containers in it's network, nginx was started second. So it dynamically got the IP address <IP_ADDRESS>. An update for the nginx image leads to ouroboros pulling it ans recreating nginx, setting the IP to be statically set to <IP_ADDRESS>.
Later, the server gets rebooted. This time, the order in which the containers were started after boot is different - container_a is first and dynamically gets <IP_ADDRESS>, container_b dynamically gets <IP_ADDRESS>. Then it's nginx' turn - which can't be started because <IP_ADDRESS> is already being used...

@fabianonline after further reading through this while i had more time... you are in a very odd place. The code is written in such a way to only allow this in a circumstance that you have manually defined the network.
Correct me if i am wrong, but you are attaching these containers to a network that you have explicitly defined and created outside of compose with a subnet and a gateway... and then are dhcp'ing the containers correct?
If the above is true... why?

I'm not using docker-compose to deploy the Docker containers and networks, but Ansible, which creates the networks before attaching containers to them (via DHCP).
So, at least for me, this is a pretty standard scenario.

I have some containers running which need access to other containers. For example one single nginx container acting as reverse proxy for all other containers doing web stuff. Or an LDAP server providing the necessary data to be able to log into different services.
I was using the link feature of docker, but since that is deprecated for some time now, I switched over to using custom networks to allow inter-container-communication. https://docs.docker.com/network/links/
I'm not doing anything extremely fancy - basically just docker network create ldap followed by docker network connect ldap <container>. I don't care about which IP settings are set where and just use the IPs docker's managing.

Pushed the example above code. should be in develop tonight. let me know how it goes with testing people

I am also experiencing this issue.  I replaced Watchtower with Ouroboros this week and it has updated a total of 3 containers.  2 of those were created with Ansible, and those same 2 containers will not start after a host reboot.  I get the "Error response from daemon: Address already in use" when trying to start them.

@LckyLuciano is that with master or develop

Master, I believe.  I'm using the docker image:  pyouroboros/ouroboros:latest

no one confirmed that dev fix worked. if you can confirm its fixed in dev ill push to master tonight

Thanks. I switched over to the develop build.  No container updates today, but I'll follow up when I get one and restart the host.

@DirtyCajunRice I've tested the current develop image from dockerhub.
And I can confirm that the fix works. My other docker containers were updated correctly and no fixed IP was set on the newly created containers. A restart of the docker service or a whole server reboot works without any problems now.
Thanks, @circa10a

I can also confirm that this is working in the develop image.  Thank you.

Awesome. Closing and will merge soon.


Landscape Mode

In landscape mode the keyboard now longer takes the whole screen, but it works as in portrait mode, making some room for the suggestions to be displayed. How can i solve this mess?

Перевести
I have the same problem.
In landscape mode after tap on the search view - suggestions are showing, keyboard isn't showing.
After double tap - fullscreen editing mode, keyboard is showing, suggestions aren't showing.
android:imeOptions="actionSearch|flagNoExtractUi" doesn't help for me.
How can I fix that?

same problem here....


Add SS and LS intructions.

There is an existing problem with using union types (i.e: Identity) in storage.
For the Identity example, we need to store 2 slots; one for the tag and one for the b256 value. This is quite wasteful/expensive, and the cost grows even more if we consider storing/reading a struct with multiple fields.
We have an open issue we proposed one way to solve this for the specif case of the Identity type. It is very limited in scope as it doesn't unlock any other use-cases beyond a specific type.
It has been suggested by @adlerjohn that another solution to the problem of expensive storage for enums & structs would be to add instructions to allow reading & writing n consecutive storage slots in a single operation.
So, for reading 2 storage slots, this would be slightly more expensive than reading one slot, but not twice as expensive (I would expect the savings to increase linearly with respect to n, at least to a point).
We could add  "Store Slots" & "Load Slots" (or SNS/LNS` "Store N Words" & "Load N Words") instructions to allow this.
Something along these lines:
SS: Store slots

Description
The value of the $rC words starting at $rB are stored at the address $rA .

Operation
MEM[$rA, ($rC * 8)] = [$rB, $rB + ($rC * 8];

Syntax
ss $rA, $rB, $rC

Encoding
0x00 rA rB rC

LS: Load slots

Description
$rC words are loaded into $rA starting from $rB.

Operation
$rA = MEM[$rB, (`$rC` * 8)];

Syntax
lw $rA, $rB, $rC

Encoding
0x00 rA rB rC

Eliminates the need for #324
cc @adlerjohn

It is definitely more efficient at the DB layer if we can do a batch get, vs individual consecutive fetches. Even better than a multi-key get, is when the slot keys are neighbors when sorted lexicographically. Each key lookup in an LSM is a logarithmic operation while iterating over subsequent keys is O(1). This is because the database creates a linked list over all the sorted keys.

It's probably ok if we don't get quite the same benefit for write operations.
I suspect that the majority of cases will involve write once, read many times.
If we can get some savings for writing consecutive slots, that would be great though !

A couple notes:

Use "read" and "write" instead of "load" and "store" to be more consistent with other instructions.
Should this read/write a number of words or a number of storage slots?

@adlerjohn should we close this issue? Looks like we've opted to put this functionality into our existing quad-word opcodes rather than introducing new ones.
related: https://github.com/FuelLabs/fuel-specs/pull/422


Explicitly set byte order in new

I spent all day to find this problem :disappointed:. It was absolutely not obvious.
https://github.com/zhuangsirui/binpacker/commit/f1b53c477754cc3d873952fd6bc1b759aa01a464#commitcomment-24315680
Byte order is only one important option when you need work with binary. There are sense to add it directly to signature.
I propose explicitly add byte order to new functions. It's go way. It should be obvious.
func NewPacker(writer io.Writer, byteOrder binary.ByteOrder) *Packer{}

func NewUnpacker(reader io.Reader, byteOrder binary.ByteOrder) *Unpacker{}

I thought about NewPackerWithOrder but it's not good idea. binpacker single purpose package and it should be concise. SetByteOrder would be unused.
:warning:Comparability is broken. :warning: At least people will see immediately compilation error.

Compatibility instead comparability :grin:

Thanks for your advise. But I think use Semantic Versioning to handle this situation is a better idea.

@sturfee-petrl @im7mortal So sorry for this issue. I will use Semantic Versioning later.

I want to reassure you one more time.
There are only 2 options LittleEndian or BigEndian.
It's much more clear to set it in New. Then do redundant SetByteOrder.
There are no more important parameters for _ thebinpacker_.
Like I told before :point_right: go way is when code is ridiculously simple :point_left:. There no any clearance why it have LittleEndian by default. It's black box. :collision:
There a lot of examples when New function have important explicit parameters in standard library.
For example encoding/base32
    func NewDecoder(enc *Encoding, r io.Reader) io.Reader
    func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser

:warning: You can notice that Encoding even first parameter! :warning: Because it's important to tell people what they are going to do!! :exclamation:
LittleEndian and BigEndian are also encoding
People should first choose encoding. Nobody forgot about Reader or Writer. But everyone forgot about SetByteOrder.  :100:

@im7mortal I'm think about this again and I think your idea is the correct solution. I'm a little busy these days, can you send a PR for this please?


fix: remove default security context

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


cabal: upper bounds on hmatrix

compiles:
% stack install
hnn-<IP_ADDRESS>: unregistering (local file changes)
hnn-<IP_ADDRESS>: build
Preprocessing library hnn-<IP_ADDRESS>...
[2 of 2] Compiling AI.HNN.FF.Network ( AI/HNN/FF/Network.hs, .stack-work/dist/x86_64-linux/Cabal-<IP_ADDRESS>/build/AI/HNN/FF/Network.o )
In-place registering hnn-<IP_ADDRESS>...
hnn-<IP_ADDRESS>: install
Installing library in
/home/jchee/packages/hnn/.stack-work/install/x86_64-linux/lts-5.2/7.10.3/lib/x86_64-linux-ghc-7.10.3/hnn-<IP_ADDRESS>-DNbRjPeg2K4LOTEbyCmbeT
Registering hnn-<IP_ADDRESS>...

I've merged support for latest hmatrix in another PR.


Filtering in select queries

What would be a best way to filter over 1 or more columns? Since we don't have a query builder object to dynamically create the select query, do we have to write a select query for every possible filter combination that we and then select the correct query. Or would making a select query with big where clause with or's be a better approach?

can you give an example? I think I know what you're talking about but just want to make sure

it gets a little verbose when you have write all combination of filter query. But if you write one big where or query you have to specify every parameter and that can change results.
import java.lang.Boolean;
import java.util.Calendar;

CREATE TABLE IF NOT EXISTS message (
    _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    sendAt INTEGER AS Calendar NOT NULL,
    read INTEGER AS Boolean DEFAULT 0 NOT NULL,
    hasAttachments INTEGER AS Boolean DEFAULT 0 NOT NULL,
    archived INTEGER AS Boolean DEFAULT 0 NOT NULL,
    body TEXT NOT NULL
);

select_filter_read:
SELECT *
FROM message
WHERE read =?;

select_filter_attachment:
SELECT *
FROM message
WHERE hasAttachments =?;

....
etc for every combination of filter you want.

select_filter:
SELECT *
FROM message
WHERE read =?
OR hasAttachment=?
OR archived=?;

yea i've thought about this problem before and haven't settled on a good solution.
If you include an OR for each clause there is potential for returning bad results since something like null could be meaningful if the column is nullable. Writing separate queries is a lot of boilerplate, as you mentioned, and especially when the non-filter parts of your query get more complex (like adding an ORDER BY) then you're pretty much forced to make a view which all the queries share.
Another alternative is including an extra variable for each filter saying whether that filter is applied:
selectFilter:
SELECT *
FROM message
WHERE (:shouldCheckRead = 1 AND read =?)
OR (:shouldCheckHasAttachment = 1 AND hasAttachment=?)
OR (:shouldCheckArchived = 1 AND archived=?);

which generates this method:
public SqlDelightStatement selectFilter(long shouldCheckRead, boolean read,
    long shouldCheckHasAttachment, boolean hasAttachment, long shouldCheckArchived,
    boolean archived);

it solves the "meaningful null" problem but it still sort of sucks because now you still have to pass a value for an attribute you're not checking, and those "shouldCheck" parameters should really be booleans but SQLDelight doesn't let you do that yet.
This is one advantage of sorts that writing SQL in strings has. You can build a query as a series of parts:
StringBuilder query = new StringBuilder("SELECT * FROM table\n");
if (shouldCheckRead) {
  query.append("WHERE read = ?\n");
} else if (shouldCheckHasAttachment) {
  query.append("WHERE hasAttachment = ?\n");
}

if (orderById) {
  query.append("ORDER BY _id\n");
} else if (orderBySendAt) {
  query.append("ORDER BY sendAt\n");
}

This gets particularly ugly in SQLDelight because now you would need 9 sql queries to do the same thing entirely statically:
SELECT *
FROM table;

SELECT *
FROM table
WHERE read = ?;

SELECT *
FROM table
WHERE hasAttachment = ?;

SELECT *
FROM table
ORDER BY _id;

SELECT *
FROM table
ORDER BY sendAt;

SELECT *
FROM table
WHERE read = ?
ORDER BY _id;

SELECT *
FROM table
WHERE read = ?
ORDER BY sendAt;

SELECT *
FROM table
WHERE hasAttachment = ?
ORDER BY _id;

SELECT *
FROM table
WHERE hasAttachment = ?
ORDER BY sendAt;

and then you have to write java which checks the same predicates and selects the right query. And each time you want to add a new filter or order by you're adding another 3 queries at minimum.
The way I see it there are a few things that can be done:

Write a ton of boilerplate (above)
Write a ton of parameters (still boilerplate-y but easier to build off of)
Some existing way I haven't thought of
Add a feature to SQLDelight.

Ideally the answer is 3 because I cannot see a simple feature that would solve this problem in SQLDelight. The goal is to keep what you're writing in .sq files exact SQLite without compromise unless absolutely necessary (such as providing the java type in a column definition).
So I'm not sure! I'm all ears if anyone has any ideas because I haven't thought of anything yet and I've seen this in a lot of code - it needs a solution.

Going to close this and track any runtime filtering related feature in https://github.com/square/sqldelight/issues/626


Migrate JSON adapter to use Wire

This is the first phase to resolving #1634 .

@r3mariano your updates look good! Build failure is a flake.

@r3mariano your updates look good! Build failure is a flake.


Support multiple partition pieces in each process

There are a number of potential benefits to supporting execution of multiple partition pieces in each process, including at least

Improved usability, since a static n-way partition can be run on any number of processes
Potential to improve initial load balancing
Potential for in-process parallel execution
Potential to overlap communication and computation in parallel execution

Current behavior
Expected behavior
Steps to replicate behavior (include URLs)

Screenshots

@hellkite500 noted the usability benefit as we were discussing this.
He also pointed out that the current RemoteNexus instantiations on partition boundaries would need to be reconsidered if some of them end up being local inter-partition boundaries instead

This may make sense... it is however part of a much larger topic involving parallelization of multiple overlapping discretizations. We're so far only dealing with partitioning on the stream network, but we are going to have to start thinking about also partitioning and parallelizing e.g. regular grids, possibly unstructured grids, and maybe even additional networks (groundwater... or even overland diversions as an additional layer, maybe??). It strikes me that dividing up the network into more, smaller partitions than we need and having the ability to do what this issue asks for may help a lot to get optimal overlaps between different discretization partitions...maybe?


CODEOWNERS: remove use of commas

Commas are not allowed in this file and prevent parsing by github
Error introduced in
7c7db00a7759a44bbca414d5d1e943f211483190
Fixes #15998
Signed-off-by: Alberto Escolar Piedras<EMAIL_ADDRESS>

CC @cybertale


a bit confused

i added
  create ingress dashboard-via-cf-tunnel \
  --rule="klab.optimcloud.com/*=kubernetes-dashboard:443"\
  --class cloudflare-tunnel

which results in
│ 2024-05-13T13:41:15Z INF Updated to new configuration config="{"ingress":[{"hostname":"klab.optimcloud.com", "path":"/", "service":"http://<IP_ADDRESS>:443"}, {"service":"http_status:404"}], "originRequest":{}, \ │
however k8s says the svc is running
kubernetes-dashboard                   kubernetes-dashboard                        ClusterIP   <IP_ADDRESS>            443/TCP

Hi @outbackdingo, I assume that you have a little confusion about the last rule "http_status:404".
cloudflared accept configurations from cloudflare tunnel dashboard, and it looks like:
{
  "ingress":[
    {"hostname":"klab.optimcloud.com", "path":"/", "service":"http://<IP_ADDRESS>:443"},
    {"service":"http_status:404"}
  ]
}

here is a list of rules called ingress, and when request hits the cloudflared, it would try to resolve the request based on the rules, from top to down, one by one, and the last rule is a fallback rules.
So basically, in your situation, it means, cloudflare would redirect any request matched with header "HOST: klab.optimcloud.com" to the target http://<IP_ADDRESS>:443, and respond 404 for the rest requests which are not matched.

I am going to close this issue, feel free to reopen it if you still have concerns.


report test failures in CI

Split out from #46.
Fix CI to report test failures:

Ran into this issue helping with #45, where CI tests were silently failing when docker-compose had a non-zero exit code due to an incorrect docker build context path
npm run test <impl> now returns exit code 1 when any test fails, so CI doesn't silently fail

Signed-off-by: Phil Prasek<EMAIL_ADDRESS>

Obsolete with refactorings in the repo


samruddhikhandale/cpp-ts

Depends on [add a reference link here]

[x] Create a release (if necessary - which ensures images are up to date before deprecating )
[x] Open a PR
[x] Update templates (if necessary)
[x] Update https://github.com/devcontainers/images/issues/90
[x] Update Microsoft Artifact Registry docs

samruddhikhandale/cpp-ts

samruddhikhandale/cpp-ts

[ ]  @

Depends on [add a reference link here]

[x]  Create a release (if necessary - which ensures images are up to date before deprecating )
[x]  Open a PR
[x]  Update templates (if necessary)
[x]  Update [Tracking] Image support, deprecation / EOL dates #90
[x]  Update Microsoft Artifact Registry docs


Capital letters forbidden in username in Ubuntu 18.04 on W10

Hello,
In Ubuntu 16.04 on Windows 10, my username started with a capital letter. Patricia
In Ubuntu 18.04, the system doesn't allow me to use capital letters and returns the following message
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM} configuration variable. Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
So, I have to change my username to patricia.
Can you explain me what is the problem with capital letters in Ubuntu 18.04 ?

Interesting post. [goes looking....] Yep, that's adduser(1) 3.116ubuntu1 behaviour alright. With Bionic on Real Linux:
$ sudo adduser Foo
[sudo] password for ken:
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.

There is a related Debian thread here.
Work-around is to follow the directions in the error. Once you are in Ubuntu with a well formed name (let's say wsluser or lower case patricia) do:
$ sudo adduser --force-badname Patricia

After that do:
C:\ubuntu1804.exe config --default-user Patricia

And after that make sure all instances of WSL are closed because the new default doesn't take until the next ubuntu1804 WSL instance (this is nonobvious).
All of which is (regrettably) label linux-behavior and not a WSL actionable. I am not sure why/how the behaviour changed in 18.04 vs 16.04. Hopefully that gets addressed upstream. Place to ask would be in the Ask Ubuntu forum.

So you think the problem is in distribution Ubuntu 18.04 itself.

I know: It is the same behaviour with Bionic in a VM. First thing I checked. That surprised me a bit too. That means, nominally, this is a feature not a bug. I never noticed because I don't use uppercase user names. One could argue (convincingly) that ubuntu1804.exe (which is what calls adduser(1)) should be passing the --default-user option. But in the WSL install/distribution model, Canonical owns that program (the Store app) too.

Hello,
Thanks for explanations.
But in WSL Ubuntu 16.04, my username was Patricia, so that would be a new feature in Ubuntu 18.04.

so that would be a new feature in Ubuntu 18.04.

I have a 16.04 VM handy, so I just checked. adduser(1) gives the same error. So whatever changed, I suspect it was unintentional. Either the tarball Canonical is putting in Store changed, or the launcher changed. Given that Windows username convention is (at least historically) uppercase it seems like the Right Thing™ to allow this, natch. But WSL just does what it is told and dutifully executes adduser(1), which subsequently fails because of the "bad" name.

Hello,
Thanks for answer.
So the problem is not in Ubuntu 18.04 itself but in a change in WSL because on Ubuntu 16.04 in WSL, my username began with a capital letter.

Without getting into the weeds, yes, sort of. There was no change "in WSL" that is causing cap names to be rejected. But I doubt the change in behaviour from an end-user perspective (versus 16.04) is intentional, so I've dropped the linux-behavior tag (even though it is Linux behaviour). Ownership of the WSL launcher is (let's call it) complicated. Sit tight. I am sure this will sort itself.

Hello,
I catch the idea.
Thanks for your help.
So, let's wait and see. :)

Hello,
Up to now, nothing has changed and capital letters are still forbidden in usernames in WSL.
Has anybody got information about that bug or change ?

Hello,
Has anybody got information about why capital letters are now forbidden in usernames in WSL ?

Hello,
Up to now, nothing has changed and capital letters are still forbidden in usernames in WSL.
Has anybody got information about why capital letters are now forbidden in usernames in WSL ?
Could somebody give me an answer ?

Hello,
Thanks for your detailed answer and I do appreciate your humor.
I have already asked my question in the Ubuntu forums and they advised me to ask my question in Gitthub. :)
You're right, Nothing important about it.
From now on, I will only use small letters.
Have a nice day.

Hello,
Thanks for your help.
Here is the link of my thread in Ubuntu forums : https://forum.ubuntu-fr.org/viewtopic.php?id=2026738

Thanks. Translation here for those like me that are only good for high-school French (the fur trader kind not the city of lights kind at that). To the extent there's a snowballs chance, you might try posting to the link I sent a couple of messages back. You're just getting responses from the cheap seats in your linked thread, which devolved into etables noise. You may luck out and someone from Canonical might actually see your post in the other. But as they say en français, bonne chance.

Hello,
I think your last message refers to this link : https://askubuntu.com/
Anyway, I asked here in GitHub and  on French Ubuntu forums, that's enough.
I'm giving up.

Creation of the user account is entirely up to the distribution owners (in this case Canonical).  All that is needed is to add "--force-badname" to this line of the sample.

Hello,
The thread has been closed but the problem still persists.

@Pumafun - Correct. As I clarified above, the ball is in Canonical's court if they want to allow upper-case letters in usernames.  There is nothing actionable here for Microsoft.

Thanks for your answer.
So I will  use this solution that I already knew.
Have a nice day.

There is nothing actionable here for Microsoft.

It was marked linux-behavior out of the gate for that reason. But there is something unexplained going on here. Uppercase usernames work in Ubuntu 16.04 on WSL, even though they (surprisingly) are not allowed in a stock native Ubuntu 16.04 on bare metal. In other words, uppercase usernames worked in 16.04 on WSL either deliberately or by design. Something changed, and it wasn't Ubuntu userspace. Because both 16.04 and 18.04 Ubuntu does not allow uppercase usernames (by default).
If it isn't Ubuntu's userspace (and it sure as heck isn't the syscall emulation) that makes me point fingers at the launcher. I can't confirm that hypothesis, because the 16.04 launcher for Ubuntu is closed source, and (de facto) written by MSFT. If we are saying the launcher code is unambiguously now in the distro's wheelhouse, that works for me. But the behavioural change isn't explained; and cutting to the chase, I suspect not intended.

@therealkenc - Agreed with everything you said.  The 16.04 app does pass the --force-badname flag, because the previous version of the sample (I believe before it was open sourced) did so.  The sample was updated to not pass this flag and I suspect the 18.04 launcher is largly a copy / paste of the new sample.  Ideally Canonical's launcher(s) would also be open source, but again nothing Microsoft actionable there.

of the sample

Thanks. Appreciated. You do know copy-pasting "the sample" needs to end, right.

@therealkenc - preaching to the choir, brother.

Hello,
@benhillis
I Don't understand this part.

Agreed with everything you said. The 16.04 app does pass the --force-badname flag, because the previous version of the sample (I believe before it was open sourced) did so. The sample was updated to not pass this flag and I suspect the 18.04 launcher is largly a copy / paste of the new sample. Ideally Canonical's launcher(s) would also be open source, but again nothing Microsoft actionable there.
Could you explain ?

Hello
@benhillis
I politely asked for an explanation but I got no answer.
Could you please give me some details.

I almost tried after there was no response, but I am not sure how one would go about further explaining what Ben wrote that wouldn't involve repetition. The 16.04 launcher passed --force-badname to adduser(8). The 18.04 launcher doesn't. This changed because the template (sample) for the launcher changed. There is nothing for MSFT to act on here, because how the launcher behaves is up to Canonical. Microsoft does not ship Ubuntu in the Microsoft Store any more than they ship Candy Crush. This explanation is basically the same as the last paragraph of the first reply you got in the thread on June 1st.
If enough people ask Canonical to update their launcher, it is likely they will. Between you and me I suspect the launcher will get updated with the one-liner change next roll assuming Canonical has noticed the username case behavioural change (at all) and they don't consider it by-design, but who knows.

Hello,
Thanks for your fast answer. Now, it sound clear to me.
Have a nice day.


add & delete images on git (drag & drop)

This PR is not meant to be merged. It's demo work for drag&drop and sending data to github


Problem with __FUnloadDelayLoadedDLL2

Dear all,
I am trying to use __FUnloadDelayLoadedDLL2 with opengl32.dll.
I have already defined:
delayimp.lib /DELAYLOAD:OPENGL32.dll /DELAY:UNLOAD
in the linker options, and then
__FUnloadDelayLoadedDLL2("OPENGL32.dll")
but this returns false.
I got the name of the opengl32.dll from the DEPENDENTS table.
Is it possible to unload the delay loaded opengl32.dll?
Or are there any conflicts with gdi32.dll?
Thanks,
Dimitris

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

ID: a3aaf714-24f4-e60b-cf28-af7581f2b097
Version Independent ID: 19b7abbc-ec30-7af1-e1a1-b67e6e0dd959
Content: Explicitly Unloading a Delay-Loaded DLL
Content Source: docs/build/reference/explicitly-unloading-a-delay-loaded-dll.md
Product: visual-cpp
Technology: cpp-tools
GitHub Login: @corob-msft
Microsoft Alias: corob

Sorry you had trouble, and sorry I didn't respond at the time. I'm going to close this issue as not documentation specific. We recommend Visual Studio's Developer Community for support issues of this sort. And Stack Overflow is good too.


[DOCS]: remove unnecessary comment

This part of the code is not needed, delete it
click on this 👇🏾
https://github.com/Dun-sin/Code-Magic/blob/604333f641e3f4f6f5b91cf9194f368f77884397/src/main.ts#L8

Before contributing, read 👉🏾 this 👈🏾

It's great having you contribute to this project by creating an issue Make sure you are assigned to this before you work on it and you read the Contributing.md file, Thank you! Welcome to the community :nerd_face:

I want to contribute; can you assign me for this?

Sure

Can I work on this?

Can I work on this?

This is already done, my bad I will change the labels

:tada: This issue has been resolved in version 2.1.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[BUG] SummernoteAtMention isn't working as expected

Hi author, it's me again :)). It always has a whitespace between "@" and "username" if the element is not the first one in the array. See my video below for getting more information
https://user-images.githubusercontent.com/34902237/123768100-3bafe300-d8f2-11eb-8421-f7e7e0be6822.mov
](url)

I think it would be great if the keyboard still shows after the user tapped some element in the list suggestion

Let me see what I can do with these... Don't know why this behavior is so buggy lol. Thanks for reporting.

I fixed the main issue.... however the keyboard thing I cannot solve, it is an issue with the webview plugin. It thinks that the user is tapping away from the editor and the "editable" section so it wants to hide the keyboard. Really unfortunate :(

Thank you for your time. I think it would be great if I can add background color for text which is mention user

I will look into that though I don't think it will be possible because the mentions plugin simply inserts the text after the @ symbol, it doesn't add any coloring or border to the text.

I looked into this earlier and it is too complex to change the colors. I'm not experienced enough in JavaScript to be able to do this. If anyone seeing this feels they can do it, a PR would be gladly appreciated.