Dual list/datagrid swapper component

[ ] bug
[x ] feature request
[ ] enhancement
I've seen this request - https://github.com/vmware/clarity/issues/1155 and I'd like to ask for something similar - the only difference is that in our case we have 2 datagrids, rather than lists.
If we have the swapper component - how we can use it if there is too much data in the rows?
Please check the provided screenshot - right now I'm using two multiselect datagrids, but probably it will be better to have a separate component with the ">>>" and "<<<" buttons available in between.
Thanks!

@s-rusev
This seems like a workflow that is very specific to what you are attempting to accomplish with your application. As such, it isn't a feature or pattern we feel Clarity should adopt for datagrids.
As for how you can implement this for your application, you can add buttons that switch records from one dataset to another like any other data-bound Angular component.


some quirks to make glibc work side by side with musl libc

Thank you for sharing your image! I am trying to install glibc on Alpine. Could you elaborate a bit on the quirks you applied? I followed instructionn at https://github.com/sgerrand/alpine-pkg-glibc and based on your dockerfile, it seems you are just installing glibc, glibc-bin and glibc-i18n package from the same repo. My image works ok so far but I'm new to building images so just want to make sure I'm not missing anything, and my image built from sgerrand's instruction won't give me any issues in the future.

There is no tricks, you can see all the instructions necessary to build the image in my Dockerfile.
Why do you need to build the image from scratch (this image has been pulled over 250k times and also used as a base for other images, which are pulled over 2M times, so it is stable and battle-tested)? If you need control over the changes, you can just fork this repo.


Update issuer value to default to the authorization_endpoint

I was confusing myself when running Hydra v1.11 (rather than v1.9) and decided that the issuer should be based on the token_endpoint rather than the authorization_endpoint.
In 1.11 it is possible to specify the SELF_PUBLIC_URL value to split between URLs that should be queried by the browser, and those queried by the hydra client (ie.. the rails app).  This helps with discovery, but ends up with the SELF_ISSUER_URL being docker.host.internal such that the other endpoints are correctly set.
This PR simplifies things back to match with v1.9 😅 meaning that we don't have to see the issuer by hand.

Definitely simpler, thanks Patrick! (and useful docs too)


Add possibility to reduce rotation flips in aruco marker pose estimation

Rotation flip is a known problem in aruco marker pose estimation resulting in outlier pose measurements from the ArucoDetector
This PR tries to handle the problem based on a reprojection error ratio test.
The logic is based on the works:

Infinitesimal Plane-Based Pose Estimation, reference repository https://github.com/tobycollins/IPPE

This logic has been successfully used in the work: Absolute humanoid localization and mapping based on IMU Lie group and fiducial markers
The user can now choose between the default aruco pose estimation and a solvePnP based estimation along with the reprojection error ratio test. The latter reduces the number of outliers in the form of rotation flips, however, reduces the number of detections as well since we mark the occurrence of an outlier as a no detection.
cc @traversaro @HosameldinMohamed @Giulero

After more than one year I'm going to merge this

On windows (Debug) the test fails with
Randomness seeded to: 757128568
[<EMAIL_ADDRESS>global C:\robotology\vcpkg\buildtrees\opencv4\src\4.5.5-923325adf5.clean\modules\core\src\parallel\registry_parallel.impl.hpp (96) cv::parallel::ParallelBackendRegistry::ParallelBackendRegistry core(parallel): Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)
[<EMAIL_ADDRESS>global C:\robotology\vcpkg\buildtrees\opencv4\src\4.5.5-923325adf5.clean\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\a\bipedal-locomotion-framework\bipedal-locomotion-framework\build\bin\Debug\opencv_core_parallel_onetbb455_64d.dll => FAILED
[<EMAIL_ADDRESS>global C:\robotology\vcpkg\buildtrees\opencv4\src\4.5.5-923325adf5.clean\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_onetbb455_64d.dll => FAILED
[<EMAIL_ADDRESS>global C:\robotology\vcpkg\buildtrees\opencv4\src\4.5.5-923325adf5.clean\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\a\bipedal-locomotion-framework\bipedal-locomotion-framework\build\bin\Debug\opencv_core_parallel_tbb455_64d.dll => FAILED
[<EMAIL_ADDRESS>global C:\robotology\vcpkg\buildtrees\opencv4\src\4.5.5-923325adf5.clean\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_tbb455_64d.dll => FAILED
[<EMAIL_ADDRESS>global C:\robotology\vcpkg\buildtrees\opencv4\src\4.5.5-923325adf5.clean\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\a\bipedal-locomotion-framework\bipedal-locomotion-framework\build\bin\Debug\opencv_core_parallel_openmp455_64d.dll => FAILED
[<EMAIL_ADDRESS>global C:\robotology\vcpkg\buildtrees\opencv4\src\4.5.5-923325adf5.clean\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_openmp455_64d.dll => FAILED
OpenCV(4.5.5) Error: Assertion failed (((0x28442211 >> ((traits::Depth<_Tp>::value) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in cv::Mat::at, file C:\robotology\vcpkg\installed\x64-windows\include\opencv2/core/mat.inl.hpp, line 900

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ArucoDetectorTestUnitTests.exe is a Catch2 v3.0.1 host application.
Run with -? for options

-------------------------------------------------------------------------------
Aruco Detector - SolvePnP
-------------------------------------------------------------------------------
D:\a\bipedal-locomotion-framework\bipedal-locomotion-framework\src\Perception\tests\Perception\Features\ArucoDetectorTest.cpp(60)
...............................................................................

D:\a\bipedal-locomotion-framework\bipedal-locomotion-framework\src\Perception\tests\Perception\Features\ArucoDetectorTest.cpp(73): FAILED:
  REQUIRE( detector.advance() )
due to unexpected exception with message:
  Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE

D:\a\bipedal-locomotion-framework\bipedal-locomotion-framework\src\Perception\tests\Perception\Features\ArucoDetectorTest.cpp(73): FAILED:
  {Unknown expression after the reported line}
due to unexpected exception with message:
  OpenCV(4.5.5) C:\robotology\vcpkg\installed\x64-windows\include\opencv2/core/
  mat.inl.hpp:900: error: (-215:Assertion failed) ((0x28442211 >> ((traits::
  Depth<_Tp>::value) & ((1 << 3) - 1))*4) & 15) == elemSize1() in function 'cv:
  :Mat::at'

This can be useful to @G-Cervettini. For the time being, I will close the PR still, it can be reopened as soon as required again


Delete embedded causes corruption

This is a follow up to this PR, as we've found more instances where setting the version is causing corrupted documents.
Additionally, in order to get around some line limits that are enforced on the repo, some code has been rearranged. A commit was created for each step in the process with an explanation of the motivation.

@cgriego, That makes the PR much smaller, but it does beg the question, why have the constraint in the first place? :)

Superceded by this PR

Superceded by this PR


vscode causes all files with mime video/* to have a .ts (typescript) file icon thumbnail

VSCode Version: 1.44.2
OS Version: Windows 10 1909 build 18363.815

Steps to Reproduce:

Install vscode with these options checklisted:

Add "Open with Code" action to Windows Explorer file context menu
Add "Open with Code" action to Windows Explorer directory context menu
Register Code as an editor for supported file types
Add to PATH (requires shell restart)

I think it is the third point that causes the problem

Does this issue occur when all extensions are disabled?: Yes

File association in Windows doesn't work at the mime level, but at the file extension level. So what file extensions are these video files?


ARP issue

Hi
We have a weird issue, when I create a pod it can't ping the IP of worker it belongs to but it can ping other workers also other pods rather than they located in the same worker or not. I changed  natoutgoing from true to false and the issue was the same. I checked proxy_arp and it's been set to 1. also we have default route on our hosts. I can ping my pod from the worker that it belongs to successfully. when I ping in both directions(ping node from inside the pod and vice versa at the same time) ping is successful from pod. but if  I cancel the ping from worker, ping from pod also fail.
would you please advice what can I do to solve the problem?

@Mutantt have you tried doing a TCP dump of the pod interface to see what packets are being sent? That would help diagnose the issue a bit further. It would be useful to see what the pod is trying to do, and what (if any) response it is getting from the node.

@caseydavenport Here is the information that you requested:
root@# tcpdump -i calif8322348b74 -vvv -e -nn
tcpdump: listening on calif8322348b74, link-type EN10MB (Ethernet), capture size 262144 bytes
11:17:01.071599 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 35054, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 1, length 64
11:17:02.092758 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 35126, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 2, length 64
11:17:03.116728 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 35366, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 3, length 64
11:17:04.140735 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 35404, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 4, length 64
11:17:05.164749 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 35486, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 5, length 64
11:17:06.188690 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
11:17:06.188751 ee:ee:ee:ee:ee:ee > 82:14:1f:8e:44:1d, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply <IP_ADDRESS> is-at ee:ee:ee:ee:ee:ee, length 28
11:17:06.188783 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 35729, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 6, length 64
11:17:07.212766 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 35832, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 7, length 64
11:17:08.236723 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 36036, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 8, length 64
11:17:09.260705 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 36044, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 9, length 64
11:17:10.284762 82:14:1f:8e:44:1d > ee:ee:ee:ee:ee:ee, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 36249, offset 0, flags [DF], proto ICMP (1), length 84)
<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 10, length 64

ICMP requests are being sent which means the ARP went through successfully.
I wonder if the packets are being dropped due to a firewall rule on the host?

@caseydavenport I sent tcpdump of node. I pinged from pod and tcpdump on corresponding node. Is it what you want?

Yep, that's what I asked for. However, there's nothing obviously wrong with ARP in that capture.

<IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 91, seq 9, length 64

Just to double-check, who is <IP_ADDRESS> in this scenario? The node hosting that pod?
I think the next step is to identify what is happening to the packets next. Could you check iptables-save -c | grep DROP on the host and see if any of the rules are being hit?

@caseydavenport Shouldn't there be two pairs of ARP request & reply?one pair for pod and one pair for node?when I ping the node from pod and check ARP cache with "ip neighbour",there is a record with my pod ip and the state is STALE,but when I ping the pod from my node the state change to REACHABLE and only then ping from pod is successful.

Hi @caseydavenport
Sorry for the late reply
when I ping any pod that has been scheduled to specific worker from that specific worker and doing tcpdump on the pod I see two pairs of ARP request & reply:
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
19:59:13.649719 eth0  B   ARP, Request who-has net-tools-6476cf44bd-4xxk8 tell 172-29-2-23.csi-rbdplugin-metrics.rook-ceph.svc.cluster.local, length 28
19:59:13.649733 eth0  Out ARP, Reply net-tools-6476cf44bd-4xxk8 is-at ca:4b:13:f8:b9:33 (oui Unknown), length 28
19:59:13.649738 eth0  In  IP 172-29-2-23.csi-rbdplugin-metrics.rook-ceph.svc.cluster.local > net-tools-6476cf44bd-4xxk8: ICMP echo request, id 10, seq 1, length 64
19:59:13.649753 eth0  Out ARP, Request who-has <IP_ADDRESS> tell net-tools-6476cf44bd-4xxk8, length 28
19:59:13.649755 eth0  In  ARP, Reply <IP_ADDRESS> is-at ee:ee:ee:ee:ee:ee (oui Unknown), length 28
but I see one pair of ARP request and reply when I ping the worker from that pod.I sent it's tcpdump before.
please advise if I've missed anything

The first request / reply appears to be from the host to the pod, asking for its mac address, which is then returned.
The second request / reply appears to be the reverse - the pod doing a lookup of its default gateway.
If you're only seeing the pod lookup its default gateway in the pod->host scenario, this could be because the host is populating its arp cache from the received packet, or it could potentially mean that the host is failing to ARP when trying to send the reply packet.
One thing you might check would be to flush the host's ARP table, snapshot it, and then ping from the pod to the host, snapshot the arp table again, and compare.
e.g.,

flush: ip -s -s neigh flush all
snapshot: ip neigh > arp-before.txt
ping
snapshot ip neigh > arp-after.txt

Might tell us if the cache is being populated without sending an ARP packet.

@caseydavenport thank you for you reply
these are the result:
arp-before.txt
arp-after.txt
The pod's IP is <IP_ADDRESS> and the host's IP is <IP_ADDRESS>
After I pinged the host from the pod,the record appeared but was in STALE state.It remains in that state until I ping the pod from the host.

After several weeks of struggling with this issue,finally we found out what cause this. we used Kubespray to deploy our k8s cluster. It has a parameter called  calico_endpoint_to_host_action.This variable takes accept and return values. The default value is "accept" but I don't know why it was set to return in our cluster. We changed it to accept and everything is ok for now.
@caseydavenport  thank you for your help.


Authentication api changed

Authentication api changed url? Anyone have the new one?

Trying to figure it out as well...

Same issue here... Kinda screwed because of it... any help is greatly appreciated it.

Same here- the previous url doesn't work to get a token

Trying to reverse engineer with Charles (http://charlesproxy.com) but it's not working out so far

what is the new url? I see a /mfa on the API- was that there before?

The web client seems to use https://api.robinhood.com/oauth2/token/ but I haven't gotten it to work

https://github.com/sanko/Robinhood/blob/master/Authentication.md#migrate-classic-auth-token-to-oauth2  I read about something here - but not sure if this is the answer

https://github.com/sanko/Robinhood/blob/master/Authentication.md#migrate-classic-auth-token-to-oauth2 I read about something here - but not sure if this is the answer

this might work, but I have not saved my classic token in plain-text anywhere to attempt to migrate it.

It's possible to get "access_token" from this with username/pwd: https://github.com/westonplatter/fast_arrow/issues/13#issuecomment-414080185
Not sure if that's same kind of token we used to get


bug with darwin

System information

Have I written custom code (as opposed to using zenbot vanilla):no
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):amd64
Zenbot version (commit ref, or version):latest
Zenbot branch:unstable
NodeJS version: 8.9.4
Python version (when using a python script):
Exact command to reproduce (include everything): ./scripts/genetic_backtester/darwin.js --selector=gdax.ETH-EUR --days=1 --currency_capital=80 --asset_capital=0 --use_strategies=bollinger --population=100
Did I make any changes to conf-sample.js?: no

Describe the problem
Morning !
An another bug with darwin if you want to use this amazing function:
with the last commits from unstable and if you run darwin, you have: "json2csv is not a function" and darwin crash.
i already know it is unstable but with latest commits, i hope bugs fixed.
same with fresh install...
if you clone from master branch and run npm install, you can't have a working version because of bugs during install.
please check the basics of the bot before to commit @DeviaVir , there is always something broken as the issues mentionned said
thank's for reply and your efforts
Source code / Error logs
TypeError: json2csv is not a function     at parallel (/root/Bureau/zenbot/scripts/genetic_backtester/darwin.js:1303:19)     at end (/root/Bureau/zenbot/node_modules/run-parallel-limit/index.js:17:15)     at done (/root/Bureau/zenbot/node_modules/run-parallel-limit/index.js:21:10)     at each (/root/Bureau/zenbot/node_modules/run-parallel-limit/index.js:28:7)     at /root/Bureau/zenbot/node_modules/run-parallel-limit/index.js:38:45     at ChildProcess.proc.on (/root/Bureau/zenbot/scripts/genetic_backtester/darwin.js:398:5)     at emitTwo (events.js:126:13)     at ChildProcess.emit (events.js:214:7)     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)

Cannot reproduce:
$ ./scripts/genetic_backtester/darwin.js --selector=gdax.ETH-EUR --days=1 --currency_capital=80 --asset_capital=0 --use_strategies=bollinger --population=100

--==Zenbot 4 Genetic Backtester v0.2.2==--
Thu, 01 Mar 2018 09:37:10 GMT

Backtesting strategy bollinger ...

Creating population of 100 ...

=== Simulating generation 0 ===

Backfilling (might take some time) ...
./zenbot.sh backfill --days=1 gdax.ETH-EUR

99: 21.7% ETA: 0m 2s
Done: 100, Active: 0, Remaining: 0, Completion: 100.0% Best Balance(26): 81.3156

Generation 0 completed at 2018-03-01 10:38:25, took 0m 24s, results saved to:
> Finished writing generation csv to simulations/backtest.gdax.eth-eur.20180301103710/gen_0/results.csv
> Finished writing generation json to simulations/backtest.gdax.eth-eur.20180301103710/gen_0/results.json

Generation's Best Results
(bollinger) Sim Fitness 0.025037166701407904, VS Buy and Hold:   1.2% BuyAndHold Balance: 80.310300  End Balance: 81.315671, Wins/Losses 1/0, ROI 1.645000.
./zenbot.sh sim gdax.ETH-EUR --avg_slippage_pct=0.045 --backtester_generation=26 --bollinger_lower_bound_pct=18.28733075353095 --bollinger_size=10 --bollinger_time=5.083683009584355 --bollinger_upper_bound_pct=2.5737634767738062 --buy_stop_pct=19 --markdown_buy_pct=0.7937310224321648 --markup_sell_pct=3.7889219541220793 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --min_periods=1 --order_poll_time=5000 --order_type=maker --period=20m --period_length=20m --profit_stop_enable_pct=20 --profit_stop_pct=15 --rsi_periods=14 --sell_stop_pct=2 --strategy=bollinger --start=201802280100 --asset_capital=0 --currency_capital=80

=== Simulating generation 1 ===

Backfilling (might take some time) ...
./zenbot.sh backfill --days=1 gdax.ETH-EUR

8: 60.0%
Done: 7, Active: 3, Remaining: 90, Completion:   7.6% Best Balance(1): 80.0000, Slowest(8) ETA: 0m 0s^CSIGINT
Resume this backtest later with:
./scripts/genetic_backtester/darwin.js --selector=gdax.ETH-EUR --days=1 --currency_capital=80 --asset_capital=0 --use_strategies=bollinger --population=100 --population_data=backtest.gdax.eth-eur.20180301103710

Make sure you have run something equivalent to:
# pull latest unstable
rm -rf node_modules
npm i

and retry. If the issue persists, please let me know if you have any other local changes.

I already used that before to post this issue:
pull latest unstable
rm -rf node_modules
npm i
Did you tested after a fresh install ?
The error is always here: json2csv is not a function ...

Same here. Even after :
rm -rf node_modules
npm i

Same here even with fresh reinstall

@glennfu since you've been active with darwin, is this something you've seen as well?

hello !
i found and solve the error:
don't forget to go to scripts/genetic_backtester folder and run npm install !
after all, it was inside the script doc and all is working for now ...
is there anyway to include this part with the "npm install" when you start with a fresh install of zenbot if someone forget it ?
have a nice evening !
@DeviaVir this issue is closed for me


Support excluding files by size

What does this PR change? What problem does it solve?
support specifying the max size of each file to be backed up.

Was the change discussed in an issue or in the forum before?
#2569

Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[x] I have added tests for all changes in this PR
[x] I have added documentation for the changes (in the manual)
[x] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

I cannot understand the error mesage of the failed testing in Windows

                                                                                Please see my previous comment regarding the naming och this flag.

Grr, I can't seem to add a comment in a place where you haven't made changes, so I'll add another comment here:
In the doc/040_backup.rst documentation file, right under the Excluding Files section, there's a paragraph You can exclude folders and files by specifying exclude patterns, currently the exclude options are followed by a list of exclude options.
I think we need to add this new option in that list, so can you add e.g. the following at the bottom of the list?
 -  ``--exclude-larger-than size`` Specified once to excludes files larger than the given size

Grr, I can't seem to add a comment in a place where you haven't made changes, so I'll add another comment here:
In the doc/040_backup.rst documentation file, right under the Excluding Files section, there's a paragraph You can exclude folders and files by specifying exclude patterns, currently the exclude options are followed by a list of exclude options.
I think we need to add this new option in that list, so can you add e.g. the following at the bottom of the list?
 -  ``--exclude-larger-than size`` Specified once to excludes files larger than the given size

I will be online for next several hours and resolve the comments asap. I will force-push the commit after i resolve all your commits. Thank you for your patient review.


Prevent worker processing more than 1 job type at a time

I am just investigating Kue as a job processor. However I am stuck with one concept:
Say I have a worker set to process 2 job types.
Code looks something like this:
queue.process("job1", 1, (job, done) => {
    console.log("processing job 1")
})
queue.process("job2", 1, (job, done) => {
    console.log("processing job 2")
})

The problem with this is that if a "job1" and a "job2" are added to the queue at the same time, the above process will start both in parrallel.
In reality I will have "N" job types, each with configurable parrallel runs. I don't want a separate process per job type, as this will be hard to scale. Each process should be able to handle any job type.
How can I make sure that only 1 batch of job types will be processed at a time by any one worker?

I have found a bit of a workaround, but it looses some of the native Kue functionality as it treats all jobs as a single type.
Basically I store all the jobs with a type of "job", and have the process watch this.  Each job has a "type" property in it's data, which can be checked at runtime and the relevant job run.
But would much prefer a solution that worked better with the way Kue is meant to be run.

@PaulGrimshaw I am not sure I understand your requirement. Do you mean that you want to place different job types in parallel, but that they are executed sequentially? (of course this will change if you have several workers or concurrency levels).

Basically i want all jobs in one queue, regardless of type.  I have mulitple workers watching this queue, and each worker should take the next job and run it.

so in other words, it should work as if you had only one process function where you switch to different process functions depending on the job type.

Yes exactly.  This way different job types could be added to the queue and prioritised accordingly, and multiple workers could pick jobs of the queue

In agenda, multiple processes watch one queue, and process one job at a time. You can restrict the job types that one process watches, and it will ignore other types.

I'm considering switching to Agenda just because of this. I need to process one job at a time, no matter what type is it.
Is there any way to achieve that?
My case is a little bit different. I have two types of jobs, let's say 'process contents' and 'build relations'. I need to run them one at a time, but they can be runned in any time and in any order. For example 2x process contents, 3x build relations, 1x process contents, etc.
I have decided to create only one generic job type called 'API job'. That means I have to change the .process function even is there is a job running. If I call .process twice, that makes another job added to the active queue, no matter its type nor if it's another job running.


set up Kanban board

github Project
There are only two people in our team.

STATUS: APPROVED ✔ ✔
Hi @GraceHtet and @joshualyngdoh,
✔ Tasks are complete and evenly assigned
Your project is complete!  There is nothing else to say other than... it's time to go ahead with the project :shipit:
Congratulations! 🎉
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the Issue thread if something is not 100% clear. And please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Added login feature and moved the add quote button to the center

Added login feature using Google OAuth, users can log in using their Google account and moved the add quote button to the center.

Hi @danishzayan, can you please review and merge my PR.


assert.h: Don't use UNUSED macro since it's very easy happen conflict

Summary
Improve the compatibility of assert
Impact
Minor change
Testing
Pass CI

I see that #  define UNUSED(a) ((void)(1 || (a))), so why this change is needed?

I see that # define UNUSED(a) ((void)(1 || (a))), so why this change is needed?

UNUSED is frequently redefined by many third party to something like this:
# define UNUSED __attribute__((unused))

Since assert(assert.h) is the most used macro, it's better to remove the dependence on UNUSED macro.

But assert.h includes #include <nuttx/compiler.h> and UNUSED is defined in compiler.h so the redefinition problem will still exists. I mean the problem will not be solved globally.

Maybe better to rename UNUSED to __UNUSED or something like this?

It's a chicken-egg problem. We meet similar with OpenSBI integration. Really do not know what is the best solution.

But assert.h includes #include <nuttx/compiler.h> and UNUSED is defined in compiler.h so the redefinition problem will still exists. I mean the problem will not be solved globally.

the third party code write like this:
#undef UNUSED
#define UNUSED __attribute__((unused))

Yeah, but that is include order dependant.
We can merge this change if that solves your issue, but in general I'm against some partial solutions.

The another option is to add #undef UNUSED at the beginning of nuttx/compiler.h

The another option is to add #undef UNUSED at the beginning of nuttx/compiler.h

It only work when we include the third party header file first and then assert.h, but the order is reverse in our case, that's why I create this patch. Since UNUSED is normally used inside source file. assert.h is the only exception by a recent change:
https://github.com/apache/incubator-nuttx/commit/5f3a98b5a8d39a7a9ee1823c6f7eaf05b1822ad7
It's always good to avoid reference UNUSED in header files.

@xiaoxiang781216 I think that we can drop dependency on nuttx/compiler.h now.


Need icons for button in Firefox browser toolbar

The current giving/getting icons are from the old days of up and down arrows, and nobody can seem to remember whether which direction arrow meant giving and which meant getting.
Going forward we should use different icons when the user is getting or giving access.  We have some icons from Creative Labs that could be good here (single down arrow means getting access, 3 arrows pointing in all directions mean giving), or we could come up with new icons.

Done here: https://github.com/uProxy/uproxy/pull/897


Missing a Letter of the command

et-VMIntegrationService -VMName<VMName>-Name VSS
Missing 'G' of this command.

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

ID: 40c6fe63-6087-c618-0a5b-beb87d237661
Version Independent ID: 5ead0108-96b5-8f13-9b4c-1bf1df18baaf
Content: Troubleshoot Hyper-V to Azure disaster recovery with Azure Site Recovery
Content Source: articles/site-recovery/hyper-v-azure-troubleshoot.md
Service: site-recovery
GitHub Login: @Rajani-Janaki-Ram
Microsoft Alias: rajanaki

@GraceZhangM
Thanks for your feedback! We will investigate and update as appropriate.

Thanks for your feedback. A PR has been successfully initiated to resolve this issue. The changes will reflected in 24 hours.
We will now close this issue. If there are further questions regarding this matter, please respondand we will gladly continue the discussion.


There should be a FakeTorino backend

What is the expected feature or enhancement?
There should be a FakeTorino backend
Acceptance criteria
There is a FakeTorino backend

https://github.com/Qiskit/qiskit-ibm-runtime/blob/main/qiskit_ibm_runtime/fake_provider/backends/torino/fake_torino.py#L21


improve pull request template

Describe the pull request

What does your PR fix?
Imho the current template is sometimes hard to read because the answers are behind the question.
I have also added the question if the person has executed ./vcpkg x-add-version --all because a lot of people misses that.

The download of cmake failed, can you rerun the pipeline? :)

/azp run

Currently blocked by the pipelines failures #16990, #17057, #17039 and #17005.
Can you theoretically merge this even if the pipeline fails? Because I am pretty sure that the failures are not caused by updating the pull request template (or I really really hope so)

LGTM.

The CI failures has gone after rerun. They are unrelate to this changes. @autoantwort, thanks for the PR!

Marking requires:discussion so we can go over the wording tomorrow just to make sure we don't have anything we want changed slightly.

What was the result. Should I change something? :)

Nope, we'll have a discuss.


opera support

Hi srobbin,
Are there any issue with Opera(latest version) known? I used your plugin without any problems except in opera, neither your demo runs as expected nor my previous scripts(which all runn fine in all other browsers i tested(FF, IE, safari....)). Do you have a hint how i can solve this?
thanks!!

Hi Fetz,
I think the issue had something to do with the img:last selector that I was using in the _adjustBG function. I've since removed it, and it appears to have fixed the problem. Can you please download the most recent version of Backstretch, and see if it's resolved for you as well?
Thanks,
Scott


Fix agent state machine occasional hangup

(IN PROGRESS -- 3 tests missing, other than that, good to go)
After bumping into a bug that would make the agent state machine freeze (in about 1 out of 3000 jobs from experimental data), and after trying to chase the bug down to the underlying Spring State Machine library, stop using the latter in favor of a simple homebrew solution.

Coverage decreased (-1.0%) to 91.721% when pulling 43d09c72221b78f3e7cfbef202aab2048bdffcc3 on mprimi:GENIE-588-agent-stuck into 5fea909008524874c11bee4d0349d92c397e6913 on Netflix:master.


Update docs to use pretty markdown

It would be nice to have the docs generate some nice looking markdown, ala the AWS provider docs: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones. Backticks for code, some bolding where necessary, etc.

I did a lit bit of this here and this is good enough for me for now. https://github.com/duffn/terraform-provider-alertlogic/pull/19


Change title

Hey.
How can i change the title of the application ?
It shows 'Webpack' in the electron window title.
Hope you reply soon.
Thanks

You can solve this by providing a template to html-webpack-plugin. In the code, there is a comment mentioning by default there is no template. In webpack.config add the following:
const helpers = require('./config/helpers');

Then change HtmlWebpackPlugin to:
new HtmlWebpackPlugin({
      template: helpers.root('public/index.html'),
      inject: 'body'
 }),

Now you need to create two files. First one is config/helpers with contents of:
const path = require('path');

// Helper functions
function root(args) {
  args = Array.prototype.slice.call(arguments, 0);
  return path.join.apply(path, [__dirname].concat('../', ...args));
}

exports.root = root;

Then create the public/index.html. This is where you set the title name.
<!DOCTYPE html>

  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>Blockbox</title>

I have id=app. They add div with id="root". So your body tags should be empty. So  modify it to be:

This can now be closed.

I've created a fork of this repo that contains the title attributes (https://github.com/keithweaver/basic-electron-react-boilerplate)

@pbarbiero this can be closed.

Thanks alot @keithweaver.
I have one question. How can we integrate electron-builder instead of using electron-packager ?

I don't know off the top of my head. I would have to do some digging. I will look into publishing a medium post or Youtube video about it. But for now, this would be all out of the scope of this ticket and issues isn't the place to ask.

Thanks for replying @keithweaver.
Hope you make a Youtube video or a medium post. Where can i find you to talk to you ?

http://keithweaver.ca

In the webpack config files add new HtmlWebpackPlugin({title: 'Your Title Here'}),

I was able to just add document.title = "My Title" in the index.js


Stub4testtool adapter receiver-stub copies active attribute

Describe the issue
When stubbing an adapter on which all receivers have an active attribute that is not locally set, the resulting adapter has no stub-receiver. In 7.5 this was not a problem as the stub created a new receiver, while in >7.6 (https://github.com/ibissource/iaf/commit/edd3ab8488dbd2ea151d9be235142b45bcf7936a) it takes those attributes from the first receiver. Because of this, the active attribute is copied, resulting in no receiver being created.
Reporter
Ricardo/Laura

To Reproduce
Steps to reproduce the behavior:

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

Screenshots
If applicable, add screenshots to help explain your problem.
Configuration
Please provide the configuration of the Pipe or Receiver with the problem.

Input
Please provide an example of the input message.
Alternatively, provide a Ladybug report.

Environment
Please go to the console of your Frank, click on 'Information' and copy-paste the results here.

Additional Environment

DBMS: [e.g. Oracle, MSSQL, MariaDB, MySql, PostgreSQL]
Browser: [e.g. Chrome, Safari, Edge, Firefox]

Additional Context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)

Can you try to fix this yourself?


Question: Is it possible in a request to limit the number of fields that will be returned?

For instance, what if I only want the name of the polygon containing a point, not its actual boundaries? Could I instruct the API to exclude the shape from the response?

Closing as stale.


android loaded onto test devices

Crystal, Mike and Brian need to upload the android onto the tablets via the test store.
And crystal to get list of all current androids used by user group.

closing so we don't have to look at it (its a forever task even when it is working) - we'll do lots of android, ios, and web testing again when rob as the keycloak stuff working for it again.  should be over next sprint.


try jit=True

[ ] test on gpu
[ ] test on other pytorch version
[ ] check if it affects results

works, moved to #105


I have just started playing around with this project using electronjs, and i have a basic issue where every call to wp does not respond untill i send another call to wp
var WPAPI = require( 'wpapi' );
var blah = ''
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
var apiRootJSON = require( './SHCLobbyRESTAPI.json' );
var wp = new WPAPI({
    endpoint: 'http://localhost/SHCLobby/wp-json',
    routes: apiRootJSON.routes
});
function getLobbies(){
    wp.lobbies().get().then(function( response ) {
        console.log( response );
        blah = response;
    });
}

Thats the webpage js code.
I then open my console and type "getLobbies()", and get nothing, blah is still "".
After waiting for ages, and still nothing, I type "getLobbies()" again, and immediately get a console response, and blah is set.
With a breakpoint in the then() function, it does not trigger untill the second call.
After further experimentation, i can get it to run by calling "wp.lobbies().get()" and then the previous getLobbies() then function gets called.

Any ideas on why this is happening? Id obviously prefer for the then function to be called immediately.

If anyone comes accross the same issue, i got it to work by moving the "then" function into its own function.
function getLobbies(){
    wp.lobbies().get().then(recieveLobbies);
}
function recieveLobbies(response){
    console.log( response );
        blah = response;
}

Well now that doesnt work, not sure what changed, havent really worked on it since i got it working.
so to reiterate the issue:
wp.lobbies().get().then(recieveLobbies);
function recieveLobbies(response){
    console.log( response );
        blah = response;
}```
this works as expected

```js
function getLobbies(){
    wp.lobbies().get().then(recieveLobbies);
}
function recieveLobbies(response){
    console.log( response );
        blah = response;
}
getLobbies();

This does not work, the response is not recieved untill the second time the wp-api is called.


[#3683] - escape resource title in recently visited

I missed the title in the recently visited section

Pull Request Checklist:

[x] Positive Test Case Written by Dev

[x] Automated Testing

[x] Sufficient User and Developer Documentation

[x] Passing Jenkins Build

[ ] Peer Code review and approval

Positive Test Case

Put an HTML snippet in a resource title and navigate to home.  Verify the title doesn't render in the recently visited section.

METRIC
VALUE

NEW DUPLICATED LINES DENSITY
0.0

NEW BUGS
0

NEW VULNERABILITIES
0

NEW SECURITY HOTSPOTS
0

NEW CODE SMELLS
0

https://sonarqube.cuahsi-workstation.com:9000/dashboard?id=hydroshare-4348


replacing unicode arrows

#296
Rebased from master, new PR to trigger TravisCI

@BenFradet rebased and passing now, thanks!

sorry, forgot about this one, you'll have to re-rebase :grimacing:

@BenFradet 👍


WIP: Integrate cuteci intaller

Enhancement for #236
Signed-off-by: Hiroshi Miura<EMAIL_ADDRESS>

@PibePlayer can you test it and give feedback?


use gh CLI to get OAuth token

There are a few ways that the gh CLI represents a token, including via an environment variable GH_TOKEN
In my development environment
gh auth status --show-token

displays the the token.
However:
$ git-spr --version
> git rev-parse --show-toplevel
4:48PM WRN ../../Users/runner/work/spr/spr/github/githubclient/client.go:89 > failed to read gh cli config file error="failed to open gh cli config file: open /home/ggoretkin/.config/gh/hosts.yml: no such file or directory"
4:48PM WRN ../../Users/runner/work/spr/spr/github/githubclient/client.go:101 > failed to read hub config file error="failed to open hub config file: open /home/ggoretkin/.config/hub: no such file or directory"

No GitHub OAuth token found! You can either create one
at https://github.com/settings/tokens and set the GITHUB_TOKEN environment variable,
or use the official "gh" CLI (https://cli.github.com) config to log in:

	$ gh auth login

Alternatively, configure a token manually in ~/.config/hub:

	github.com:
	- user: <your username>
	  oauth_token: <your token>
	  protocol: https

This configuration file is shared with GitHub's "hub" CLI (https://hub.github.com/),
so if you already use that, spr will automatically pick up your token.

Note that as of https://github.com/cli/cli/releases/tag/v2.24.0 , the hosts.yml file is not used anymore.

new user here, I'm confused by this as well, I did gh auth login however git spr status still says no token found

I am trying to connect to our Github Enterprise server, and observe the same behaviour: Logged in fine when using gh auth status, but spr does not pick it up. I am unable to set up ~/.config/hub such that it would show any effect – perhaps the message here is not correct?
Setting the token in GITHUB_TOKEN as suggested in the help message works fine. (Not the one mentioned by @eko-wibowo.)

TL;DR: gh auth login --insecure-storage let's you use gh as the source of the OAuth token.
For anyone struggling with this, spr tries to get the OAuth token from three sources:

Environment variable GITHUB_TOKEN
~/.config/gh/hosts.yml
~/.config/hub

After gh release v2.26.0 logging in using gh auth login will no longer store the OAuth token as plain-text unless the --insecure-storage parameter is passed.

Hello everyone,
First off, I'd like to say that this tool is fantastic—great work!
I have a question regarding the selection options for scopes. Specifically, how many options should I select to appropriately define the access level for personal tokens?
Thank you for your assistance!


[js] Incorrect colorization after properties called new

The colorization for new Instance() is incorrectly used on and after properties called .new until the current block ends, it seems like.
Version 0.10.8, not using Salsa, on Windows 10.

This issue was moved to Microsoft/TypeScript-TmLanguage#87


Issue with inadequate documentation

I am having issues running this library with a common setup containing a raspberry pi pico w and 240*320 lcd TFT display.
Please write an example code that tests all the functionality of the widgets or simply just gets a few buttons and labels working.
I am getting a blank screen and memory allocation issue for a long time of debugging and decided to give up.
Please help.

Please check out the example scripts in gui/demos/. These can be run with (for example):
$ mpremote mount . exec "import gui.demos.simple"

There are scripts to test every widget.

These scripts are listed here in the main README. If you still think there are omissions in the docs, please detail these in a new issue.

I mean I need a working example code that I can upload and test and learn from it. I cannot make it working with the existing documentation.

If you work through the setup doc then all the scripts listed will work. They are designed to be studied and to help in writing applications, starting with simple.py. I'm not sure what else you want me to provide.


ID within python is still needed, [WARNING] Deprecated property "" of object

Versions

Python: 3.6.7
OS: 18.04.3 LTS
Kivy: 1.11.0
Kivy installation method: pip

Description
I know there is a lot of confusion with "object'.ids and "object".id. I already know that they are different, the first one only works for widgets created in kivy language. The second one, only works within python language. It is very confusing I agree, I dedicated a lot of time to see the difference and to be able to understand them and how to use it in different contexts. That's why I think that the id in python side must be kept. Maybe "id" could be changed for something else but the behaviour and the property should remain. I'll give examples of the use next.
Code and Logs
################################ EXAMPLE 1 #################################
''' This is an example when the id is very useful for the related callback function. By having the id of
   an unknown number of added checkboxes in unknown places I can get where and which one is
   called
'''
for loop_index in range(0. unknown_number):
    my_widget.add_widget(CheckBox(id='_'.join((valuable_info1, valuable_info2, int(for_loop_index)),
                                                            size_hint_x=0.6,
                                                            on_release=check_box_callback))

def check_box_callback(instance):
        # Variables to extract information and perform stuff later within the function
        instance_valuable_info1, instance_valuable_info2, check_box_number = instance.id.split('_')

################################ EXAMPLE 2 #################################
''' How are we supposed to get some filtered child widgets in an unknown generation of them, where
   we only know the parent widget ??
'''

certain_checkboxes = [checkbox for checkbox in my_root_widget.children if checkbox.id == 'myString']

You're using the property of kivy widgets named id in a way unrelated to its original meaning, rather you're using it just as an ordinary Python attribute.
Your code should look like:
for loop_index in range(0. unknown_number):
    checkbox = CheckBox(size_hint_x=0.6, on_release=check_box_callback))
    my_widget.filter_prop = '_'.join((valuable_info1, valuable_info2, int(for_loop_index))
    my_widget.add_widget(checkbox)

def check_box_callback(instance):
        # Variables to extract information and perform stuff later within the function
        instance_valuable_info1, instance_valuable_info2, check_box_number = instance.filter_prop.split('_')

Please ask on Discord for follow up questions, because we use github primarily for bug reports, and this would be more a general Python question :)


Password expiration policy reset not required anymore

I just redeployed the ASDK to update 1804 and the password expiration is now set to 364 days by default. So there is no need to reset it to 180 days anymore

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

ID: be299a6e-e10b-ae65-a59d-e5730e33a54d
Version Independent ID: 5e7e99e2-4d26-c869-fdd8-1012acc29604
Content: Post deployment configurations for the Azure Stack Development Kit (ASDK)
Content Source: articles/azure-stack/asdk/asdk-post-deploy.md
Service: azure-stack
Product: unspecified
GitHub Login: @jeffgilb
Microsoft Alias: jeffgilb

Thank you for your feedback, I'll verify in my lab and make any necessary doc updates.

#please-close


issue#193: switch statement

made modifications to the DirectxLexer.py and DirectxParser.py in the backed to to properly parse and translate switch statement, added SwitchNode, CaseNode in DirectxAst.py and added the repective tokens in DIrectxlexer.py and the parser fucntion in DirectxParser.py
PR Description

Related Issue

shader Sample

Checklist

[ ] Have you added the necessary tests?
[ ] Only modified the files mentioned in the related issue(s)?
[ ] Are all tests passing?


Magento Installation with 7.0 w/o ext-mcrypt installed

I just wanted to note that if there is no mcrypt extension installed and you use the mcrypt polyfill you will need to patch app/code/core/Mage/Install/etc/install.xml and remove mcrypt from the checked extensions. otherwise you won't get past the language configuration. It will then, if the polyfill is installed, install w/o problems.
I don't know if we want to write this down somewhere for interested ppls. which want to initially install Magento in a PHP7 environment.
In Theory we could also provide a Composer-Hook, check the stuff above and do the patching of the install.xml if we detect no mcrypt extension, but the polyfill exists.

Your note added to wiki.


The MSI loci in output.prefix_germline file

What's the difference between output.prefix_germline file and output.prefix_somatic file, and why some of their MSI loci are same.How did you get the MSI loci in the output.prefix_germline file?

I would like to know also


Is the symbols t & u aligned with the 1982 paper?

I notice in the code that t_squared=u/(1+u), however, in (27) of the 1982 paper, it is t_squared=u/(rho + u). But the other parts, i.e. the recursion relations as I verified are aligned with the paper. Am I missing anything here?

Ah, I understand the confusion here. It's just from the chaos of the notations among these papers and packages.
The u here follows the notation from libcint package, which - I guess - follows the notation from a 1976 paper that only deals with the Rys polynomials. Soo u is indeed u = t^2 / (1-t^2) for the Rys roots and this gives correct result for ERIs.
But hmmm.... admittedly in ERI u is reserved for the integral transform of 1/r12, and we barely touch the numerical background of Rys polynomials. To make it a better tutorial, maybe it's a better idea to replace u with some other names or at least add some comments.
Thank you for pointing it out!

Ah, I see, that makes everything clear.
BTW, thank you for the great code, C++ is much easier to read compared to C code.


Q: Recommended BVH node layout/

What is the recommended BVH node layout for BLAS and TLAS levels?
What are the guidelines?

There is some information in the README.md, but not really a recommendation. This information should ultimately end up in the wiki. In short:

WALD_32BYTE is what the builders produce: a 2-wide BVH with a compact node layout. This is also the default for Intersect calls and should get you decent performance with no overhead caused by any BVH conversion or optimization.
If you expect to trace lots of rays, you can convert the 2-wide BVH into a ALT_SOA. This is a quick conversion; after this, tracing rays will be a bit faster. Run speedtest to get an idea of the speed benefit on your machine.
For even more rays, you can convert the 2-wide BVH to a 4-wide BVH (BVH4_BASIC), and then to a BVH4_AFRA. So, two conversions. This gets you the format that is currently the fastest option in tiny_bvh, at the expense of more conversion work.
If you're serious about performance, there is one more option. Convert to VERBOSE, then optimize the BVH. Convert it back to WALD_32BYTE. The optimized tree will be substantially better, and can still be converted to BVH4_AFRA. The optimization takes a while though - this will improve in a future version of the library, but it will never be free.

On the GPU other options exist. The basic GPU layout is AILA_LAINE, which is quickly obtained by converting WALD_32BYTE. Faster options (that take longer to convert to) are BVH4_GPU and the ultimate format, CWBVH. You will find that CWBVH is often not the fastest option for primary rays (which are very coherent) but it should do relatively well on reflected rays.
Hope this helps!

For TLAS you can probably just use WALD_32BYTE on CPU and AILA_LANE on GPU. Traversal should not spend too much time in the TLAS; since it is typically rebuilt each frame build time becomes the bottleneck. Keep it simple.

Thanks!


The project name .go confuses the compiler a lot

I recently discovered that if one forks this repo and adds a new package that uses some of the IOTA library internals - the compilation/tests are failing.
Some investigation / help from #go-nuts@freenode channel revealed that the suffix .go in the package name confuses the go tool in certain cases.
if len(args) > 0 && strings.HasSuffix(args[0], ".go") {
...

As a test, I renamed my local copy into iota.lib.golang - and the problem vanished.
Not sure whether it's a good idea to rename this package and what how many packages depend on this one, but just to keep this problem in mind.

Just renamed it to giota again.


framework-laptop-kmod: 0-unstable-2024-01-02 -> 0-unstable-2024-05-06

Description of changes
Tested the new changes wrt previous version:

tested /sys/devices/platform/framework_laptop/framework_privacy : working as expected
tested: /sys/devices/platform/framework_laptop/hwmon/* fan control

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[X] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@gaykitty :)

Duplicate of https://github.com/NixOS/nixpkgs/pull/335482


Need to specify alarm code pin to set up addon

Hi,
Just did a fresh install of the hass.io add on on my Home Assistant OS. I'm using mosquitto add on.
There was a parsing error preventing the parameters i had set up in the configuration tab to be used.
Once i specified a random value for "alarm pin code", which is supposed to be optionnal and is by default hidden, there was no more parsing error and i was able to complete the install.
Either the add on documentation should specify to set an alarm pin code, or the parameter should be given a default value to prevent this parsing error ?

Hi,
This issue is around for far too long => I'm gonna fix it ^^.


TxListener

Get transaction listener working with block-tracker.
Use block tracker to read blocks for txHash.
Return TX receipt.
Separate process to monitor for failed to mine transaction.
rpc call with txHash should return 0

TxListener has been added.
TxListener does not use the block tracker. It instead makes a txReceipt request every 5s.
There's no way to see if a transaction has been dropped, so the listener just rejects if it can't find a receipt after 30 minutes.


Command to delete transactions

Create a command to delete transactions, the documentation for this endpoint can be found here.
Just a quick tip on how this command could work:
$ organizze delete-transaction --id=101 # should prompt the user to confirm the action

Working also on it :smile:


Claim owner can delete comment in claims, but not in livestreams

I think it used to work. Now it say "unable to verify signature".

Close
wait, now both sides can't delete.  Checking with others first to confirm the issue


Requested image's type 'virtual-machine' doesn't match instance type 'container'

Required information

Distribution: ubuntu
Distribution version: 20.04
The output of "lxc info" or if that fails:
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:

tls
environment:
addresses: []
architectures:

x86_64
i686
certificate: |
-----BEGIN CERTIFICATE-----
MIICADCCAYegAwIBAgIRAJY/Om1FMKn+PVgq2twn41YwCgYIKoZIzj0EAwMwMzEc
MBoGA1UEChMTbGludXhjb250YWluZXJzLm9yZzETMBEGA1UEAwwKcm9vdEBub2Rl
MzAeFw0yMDExMDMwODA1MTRaFw0zMDExMDEwODA1MTRaMDMxHDAaBgNVBAoTE2xp
bnV4Y29udGFpbmVycy5vcmcxEzARBgNVBAMMCnJvb3RAbm9kZTMwdjAQBgcqhkjO
PQIBBgUrgQQAIgNiAAQ33SDFRxU9XrrlUZBZy56bWBnebUjLuWSqJNKaYiBdQqYJ
NSlf623/7tRFaJJhW9W/mdFL5bCuvYxIdv2Uqwm+gYf/dce6OGXzfFgiIEszYVRk
W6CZYUwt1RfaO6i5+6+jXzBdMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggr
BgEFBQcDATAMBgNVHRMBAf8EAjAAMCgGA1UdEQQhMB+CBW5vZGUzhwR/AAABhxAA
AAAAAAAAAAAAAAAAAAABMAoGCCqGSM49BAMDA2cAMGQCMAp9Ev+JY7hwKOB0eYE8
Z8PW4TrjRnpdceq8Ov2vWXgQzygP0pF231g2CHgoPQ5huwIwfucjcC7RomcN3150
OsRNOpE7mkTGmishf+6mbkJMyiGGdBkblTRGaC0kULXuKINc
-----END CERTIFICATE-----
certificate_fingerprint: b4d341664a3cf634d0d2a183fe72a45897e100105cd5bcc4c241f7eec92f1701
driver: lxc
driver_version: 4.0.5
firewall: nftables
kernel: Linux
kernel_architecture: x86_64
kernel_features:
netnsid_getifaddrs: "true"
seccomp_listener: "true"
seccomp_listener_continue: "true"
shiftfs: "false"
uevent_injection: "true"
unpriv_fscaps: "true"
kernel_version: 5.4.0-52-generic
lxc_features:
cgroup2: "true"
devpts_fd: "true"
mount_injection_file: "true"
network_gateway_device_route: "true"
network_ipvlan: "true"
network_l2proxy: "true"
network_phys_macvlan_mtu: "true"
network_veth_router: "true"
pidfd: "true"
seccomp_allow_deny_syntax: "true"
seccomp_notify: "true"
seccomp_proxy_send_notify_fd: "true"
os_name: Ubuntu
os_version: "20.04"
project: default
server: lxd
server_clustered: false
server_name: node3
server_pid: 1621
server_version: "4.7"
storage: dir
storage_version: "1"
ubuntu@node3:~$ sudo lxc info |grep kernel

kernel_limits

kernel_features
kernel: Linux
kernel_architecture: x86_64
kernel_features:
kernel_version: 5.4.0-52-generic
ubuntu@node3:~$ sudo lxc info |grep version
api_version: "1.0"
driver_version: 4.0.5
kernel_version: 5.4.0-52-generic
os_version: "20.04"
server_version: "4.7"
storage_version: "1"

Kernel version: 5.4.0-52-generic
LXC version: 4.7
LXD version: 4.7
Storage backend in use:

Issue description
Deploying ceph-base bundle on a virutal MaaS running on KVMs. 'juju status' shows error :Requested image's type 'virtual-machine' doesn't match instance type 'container'
Node summary:
Five KVMs running on baremetal node-flyer in Ruxton lab:
1 KVMs to install MaaS and juju client
1 KVM for juju controller (2 CPUs, 8G RAM, 1 NIC, 1 disk)
3 KVMs to deploy ceph-base/openstack-base (each node 2 CPUs, 8G RAM, 2 NICs, 3 disks)
buntu@ruxton-maas:~$ juju status
Model      Controller       Cloud/Region    Version  SLA          Timestamp
openstack  maas-controller  mymaas/default  2.8.6    unsupported  02:05:01-05:00
App       Version  Status   Scale  Charm     Store       Rev  OS      Notes
ceph-mon           waiting    0/3  ceph-mon  jujucharms   49  ubuntu
ceph-osd  15.2.3   waiting      3  ceph-osd  jujucharms  304  ubuntu
Unit         Workload  Agent       Machine  Public address  Ports  Message
ceph-mon/0   waiting   allocating  0/lxd/0                         waiting for machine
ceph-mon/1   waiting   allocating  1/lxd/0                         waiting for machine
ceph-mon/2   waiting   allocating  2/lxd/0                         waiting for machine
ceph-osd/0*  waiting   idle        0        <IP_ADDRESS>           Incomplete relation: monitor
ceph-osd/1   waiting   idle        1        <IP_ADDRESS>           Incomplete relation: monitor
ceph-osd/2   waiting   idle        2        <IP_ADDRESS>           Incomplete relation: monitor
Machine  State    DNS           Inst id  Series  AZ       Message
0        started  <IP_ADDRESS>  node2    focal   default  Deployed
0/lxd/0  down                   pending  focal            Requested image's type 'virtual-machine' doesn't match instance type 'container'
1        started  <IP_ADDRESS>  node3    focal   default  Deployed
1/lxd/0  down                   pending  focal            Requested image's type 'virtual-machine' doesn't match instance type 'container'
2        started  <IP_ADDRESS>  node4    focal   default  Deployed
2/lxd/0  down                   pending  focal            Requested image's type 'virtual-machine' doesn't match instance type 'container'
==================bundle file
ubuntu@ruxton-maas:~$ cat ceph-base-bundle.yaml
machines:
'0':
series: focal
'1':
series: focal
'2':
series: focal
relations:

ceph-osd:mon
ceph-mon:osd
series: focal
services:
ceph-mon:
annotations:
gui-x: '750'
gui-y: '500'
charm: cs:ceph-mon-49
num_units: 3
options:
expected-osd-count: 3
source: distro
to:

lxd:0
lxd:1
lxd:2
ceph-osd:
annotations:
gui-x: '1000'
gui-y: '500'
charm: cs:ceph-osd-304
num_units: 3
options:
osd-devices: /dev/vdb
source: distro
to:
'0'
'1'
'2'

Steps to reproduce

Step one
Step two
Step three

Information to attach
https://pastebin.canonical.com/p/wyHqmWG5H8/

[ ] Any relevant kernel output (dmesg)
[ ] Container log (lxc info NAME --show-log)
[ ] Container configuration (lxc config show NAME --expanded)
[ ] Main daemon log (at /var/log/lxd/lxd.log or /var/snap/lxd/common/lxd/logs/lxd.log)
[ ] Output of the client with --debug
[ ] Output of the daemon with --debug (alternatively output of lxc monitor while reproducing the issue)

Can you do:

snap set lxd daemon.debug=true
systemctl reload snap.lxd.daemon

Then repeat what you were doing and after you hit the error, send us /var/snap/lxd/common/lxd/logs/lxd.log?
This should get us the full REST call done by Juju so we can see exactly what was requested.

thanks, I have set the config for lxd. The issue happens occasionally, I will upload the log when I see it again.

@mullumaus any luck getting this to happen again?

No, I ran the test many times over these weeks but it didn't happpen again.

Ok. There was bad image ordering logic in LXD which we fixed a little while back. This shouldn't have affected your LXD daemon because it was recent enough to get the fix in theory, however Juju uses the LXD library and so may have been using an older version internally.
Let's hope that this was the issue and call it good. If this shows up again, hopefully your system will still have the debugging enabled to catch it :)

Hello,
I think I am having a similar issue on a similar environment mentioned in the first comment, let me quickly summarize and give some information about my test environment :
I am trying to deploy the openstack-base bundle in an environment with MAAS v2.9.1 (9153-g.66318f531) provisioned juju v2.8.7-focal-amd64, I have 3 compute VM nodes (Ubuntu 20.04) and 1 juju controller (Ubuntu 18.04) all being hosted on a 16GB RAM 8vCPU qemu-kvm virtualized Ubuntu 20.04 droplet.
So after issuing the juju deploy command, I observe the same error message in juju status output on 2 of my compute nodes when juju is trying to create some lxd containers as they are some parts of the openstack deployment like neutron-api or rabbitmq-server etc. containers so deployment fails.
The error message I get against the containers  :
"Requested image's type 'virtual-machine' doesn't match instance type 'container'"
I enabled the lxd debug logs on one of my compute hosts which is having the issue as you advised so here's the repeated error log : https://paste.ubuntu.com/p/dq4Jh3Dmhw/
Please let me know in case of you want me to upload the whole lxd.log file or a sosreport from one of the failed nodes many thanks!

Hello,
I think I am having a similar issue on a similar environment mentioned in the first comment, let me quickly summarize and give some information about my test environment :
I am trying to deploy the openstack-base bundle in an environment with MAAS v2.9.1 (9153-g.66318f531) provisioned juju v2.8.7-focal-amd64, I have 3 compute VM nodes (Ubuntu 20.04) and 1 juju controller (Ubuntu 18.04) all being hosted on a 16GB RAM 8vCPU qemu-kvm virtualized Ubuntu 20.04 droplet.
So after issuing the juju deploy command, I observe the same error message in juju status output on 2 of my compute nodes when juju is trying to create some lxd containers as they are some parts of the openstack deployment like neutron-api or rabbitmq-server etc. containers so deployment fails.
The error message I get against the containers  :
"Requested image's type 'virtual-machine' doesn't match instance type 'container'"
I enabled the lxd debug logs on one of my compute hosts which is having the issue as you advised so here's the repeated error log : https://paste.ubuntu.com/p/dq4Jh3Dmhw/
Please let me know in case of you want me to upload the whole lxd.log file or a sosreport from one of the failed nodes many thanks!

@aydintd I believe this is a Juju issue actually.
As your log shows, Juju directly interacts with LXD by using an image fingerprint, it doesn't request LXD do the simplestreams image lookup, this is done by Juju itself.
So I suspect it's broken/missing logic in Juju itself that should filter out VM images when looking up a suitable Ubuntu image from simplestreams.

@aydintd I believe this is a Juju issue actually.
As your log shows, Juju directly interacts with LXD by using an image fingerprint, it doesn't request LXD do the simplestreams image lookup, this is done by Juju itself.
So I suspect it's broken/missing logic in Juju itself that should filter out VM images when looking up a suitable Ubuntu image from simplestreams.


Add styling hooks to facilitate opening and closing animations

The behaviour when opening and closing the dialog is not very intuitive or meaningful and could be improved by animation.
A couple of styling hooks on the dialog would be great to allow devs to add their own animation to the opening and closing of the dialog.
Hooks like .is-open .is-opening .is-closed .is-closing would be awesome.

Would be pretty easy to implement now the script dispatches events on show/hide.
el.addEventListener('dialog:show', function () {
    this.classList.add('is-shown');
});

el.addEventListener('dialog:hide', function () {
    this.classList.remove('is-shown');
});

I’m closing this then! :)

Note that events have been modified in v3. Would now be:
dialog.on('show', function (el) {
    el.classList.add('is-shown');
}).on('hide', function (el) {
    el.classList.remove('is-shown');
});


Windows builds do not have correct version number

PhoneGap CLI, node & npm versions

phonegap-cli: 6.5.0
node: 6.10.3
npm: 5.0.3

Expected Behaviour
When building an app and specifying the following in config.xml:
<widget xmlns="http://www.w3.org/ns/widgets"
        xmlns:gap="http://phonegap.com/ns/1.0"
        windows-packageVersion="2.0.47"
        version="2.0.47"
        versionCode="2047000">

we expect to build a 2.0.47 version of the app.
Actual Behaviour
A version 2.0.47 build is created for Android and iOS, but for Windows 10 a <IP_ADDRESS> build is created instead of a 2.0.47. The build app works, but versioning is wrong. Adding or removing windows-packageVersion does not change the outcome.
This issue is also described in the forums.
Steps to Reproduce
Build an app with major/minor/patch versioning. Apps for Android and iOS will be build as expected, Windows apps will have a wrong version number.
Sample Code that illustrates the problem
See our configuration in 'Expected Behaviour'.
Error messages
Builds don't produce any errors.

Hey @MeirBon,
Sorry for the late reply, I started looking into this and then was running into network issues as I was testing. Are you seeing this error when using the CLI or from Build?

Hi @surajpindoria,
No problem, thanks for looking into this. At the time of creating this issue there was no error from both the CLI and Build. I also opened an issue in phonegap/build where I was told it was supposed to be fixed. But where apps would be build before this 'fix', they now produce the following error:
COMPILE OUTPUT
--------------------------------------------------------------------------------
CertUtil: -importPFX command FAILED: 0x80070002 (WIN32: 2 ERROR_FILE_NOT_FOUND)
CertUtil: The system cannot find the file specified.
My "Personal"
CertUtil: -delstore command completed successfully.

At first the builds would come through fine, but would have wrong versioning (e.g. 2.0.4 instead of 2.0.47). Now any build we run fails.

Did you manage to get this resolved? @MeirBon

@surajpindoria Sort of. Cordova Windows 4.4.3 has some bugs with image sizes that it supports (4.4.3 only accepts WP8 images, so we end up with Cordova images in Windows 10 builds..). This seemed to be fixed in 5.0.0, but I forgot to check if Phonegap actually supports 5.0.0.
So we figured out why building wasn't working, but we can't distribute our apps yet due to bugs in Cordova. I guess we will just have to wait for support for the new Cordova version.


Updates to getResponseHandler

Without looking at the status of all lights, the state really just depends on the state of the last bulb in the response from LIFX. Changes to only update the on/off status of the group if all the bulbs are on. If all bulbs in the group are not on, the state remains off and the lightStatus shows the number of lights online vs always saying 'x of x'.
Also fixed some typos.

Thanks, will take a look soon.

I've made further changes to the DH and Sync SmartApp, and will submit another PR.


Fix dse bind by name

 Here is an overview of what got changed by this pull request:

Clones added
============
- persistence-dse-6.8/src/main/java/io/stargate/db/dse/impl/DsePersistence.java  2

See the complete overview on Codacy


About the Contact us

The Contact us section mentions: "Report a bug or a make a feature request using the blue button at the bottom right of every App Center portal page and the product team will respond to you. ".
Either I'm really not seeing what's right in front of me or this isn't accurate anymore because I can't find a blue button and at the bottom right of any App Center pages.
It might also be helpful to link to whatever page or email address this button links to so a person searching for this doesn't have to leave this page to search for this somewhere else.

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

ID: 45dd71a0-a249-a87b-e4eb-e4da0a20472f
Version Independent ID: 450c26f5-ab13-8df5-d45a-6086f5391b23
Content: App Center Support - Visual Studio App Center
Content Source: docs/general/support-center.md
Service: vs-appcenter
GitHub Login: @joemellin
Microsoft Alias: joemel

@gilles-leblanc  Good point, I'll add a link to this page: https://intercom.help/appcenter/getting-started/getting-help-with-app-center which shows how it works.
You won't see the blue chat button in the Docs, only in App Center. If you don't see it, then you're having other issues. Do you have a pop-up blocker enabled in the browser?

I disabled all add-ons (ublock origin, privacy badger, https everywhere, greasemonkey, etc.) and I now see the button. My bad.

@nol13 it feels like your message was incomplete, were you asking a question?

no, just fyi that it doesn't work

@nol13 I see that now, checking into this. thanks for letting us know.


Suggestion for improving performance

At the moment, when a client request an image, a php process on the server must be started to transfer the image to the client.
For a low traffic website this won't be a problem, but for a high traffic site the server might get flooded with requests to transfer images.
One possible way to avoid invoking php when an image gets requested is to create the image on the path of the request url.
Let me clarify that a bit. Instead of using get parameters to specify how an image should be manipulated, a regular url should be used. Eg: https://glide.herokuapp.com/height/100/with/500/sharp/2/kayaks.jpg
If this manipulation does not already exist in cache, create it in the public folder of the server using path "/height/100/with/500/sharp/2/kayaks.jpg" and return the image via php. The next client that comes by to retrieve that manipulation won't trigger php on the server as the webserver will return the cached file on the filesystem.
I hope this suggestion is a bit clear.

I don't like this for three reasons:

You're going to clutter the filesystem of your webserver with images and folders
It won't work if you've got distributed webservers (only one webserver would have the cached image)
The cache filesystem + caching in league/flystem (with Redis/Memcache) should (at least this is the case in my testing) result in a speedy response to the second request.

There is a genuine flood problem however if a second request is made for an image whilst the first request is still processing:
   Client 1             Client 2             Server

+------+-------+     +------+-------+    +------+------+
       |                    |                   |
       |    First           |                   |
       |    request         |                   |
       |                    |                   |
       | +------------------------------------> | +-------+
       |                    |                   |         |
       |                    |   Second          |         |
       |                    |   request         |         |
       |                    | +---------------> | +----+  |  Processing
       |                    |                   |      |  |  first
       |                    |                   |      |  |  request
       |   Return first     |                   |      |  |
       |   response         |                   |      |  |
       | <------------------------------------+ | <-------+
       |                    |                   |      |
       |                    |    Return second  |      |  Duplicated work
       |                    | <--response-----+ | <----+  by server
       +                    +                   +

Yes, the flooding issue @alexbilbie notes is real. I'm personally a little less concerned about outputting images with PHP. Yes, it's certainly not as fast at Apache or Nginx, but still fine for most projects. And if you have a really high traffic site, then working out the flooding issue is probably more of a priority.
Having said that, I know that you can use Nginx's X-accel functionality to still output the image using Nginx. This is done by basically passing the file path to Nginx using headers in your PHP script. Nginx then picks up those headers and takes care of the rest.
I believe Apache has similar functionality, called X-Sendfile.

@alexbilbie Curious how you saw the "processing flag" being set. Something like Redis of MySQL?

I'd use Redis or Memcached

Personally I think that a caching layer BETWEEN the client and glide would be better. Thinking about either a CDN or something like Varnish. This solves the too-much-files problem mentioned by @alexbilbie. However this still leaves the flood question open.
These kind of performance related issues should be collected under one, where all possible problems can be addressed, so that issues mentioning one segment of the problem can be closed.

I really like your idea @alexbilbie. I'm thinking of creating a standalone limiter library that can handle this. Essentially it has to be able to limit tasks across all users. So unlike many other rate limiters out there, this would be an application layer limiter. Really rough, it would look something like this:
// Create limiter
// Possible adapters: Disk, APC, Memcached, MySQL
$limiter = new Limiter(new APCAdapter());

// Check if cache exists
if (!$glide->cacheFileExists()) {

    // Add task to the limiter
    $limiter->addTask(function () use ($glide, $request) {
        $glide->makeImage($request);
    });
}

// Output the image
$glide->outputImage($request);

This would all occur synchronously, and the limiter would restrict the tasks at an application level, using a flag (set via the adapter) and the sleep() function. The limiter could have an option to determine how often the flag is checked. Like:
$limiter->setRefresh(500); // in milliseconds

@sagikazarmark By the way I think Varnish is an excellent idea as well for caching purposes. The less PHP does, the faster. But yeah, it doesn't really solve the bigger flooding problem.

@reinink Look at the proposed library metaphore which solves a similar use case.

@sagikazarmark Almost! Good thinking, except that still works a little different. What we need for Glide is something that literally delays (sleeps) a request, where metaphore on the other hand returns old cached content. Since Glide doesn't have any available cache, this won't really work.

Didn't say it is perfect, however the two cases are very similar, probably that package could be improved to solve several use cases related to dogpile effect, like this one.

Good point.

/cc @sobstel for comment. :)

// Possible adapters: Disk, APC, Memcached, Redis, MySQL

I suggest you avoiding implementing this logic zillions+1 time. ;) We talked about @sobstel that his package could also use BlackBox which is going to be an abstraction layer for storage. Hope we can make it something standard-like.

@reinink metaphore handles this case, there's NoStaleCache callback which could be used to delay a request.
https://github.com/sobstel/metaphore#no-stale-cache
$cache->onNoStaleCache(function (NoStaleCacheEvent $event) {
    sleep(100);
});

If you delay other requests, your web server will quickly die flooded by too many hanging requests.

How real is this problem? For example, if you had a web server with 100 delayed requests like this, would it crash?
The reason I ask is because return a 404 response is not really an option in this sort of setup, since image are generated on the fly. Seeing a whole bunch of broken image links isn't really ideal.

@reinink It really depends on a server you have and use scenario. We had a delay strategy for regular cache for high-traffic site and it made web servers going down. The whole problem is that if you have one request to page with 100 images, it makes possibly 100 hanging requests. You'll hit max connections limit quickly and next requests might be simply completely dropped.

Yeah, when I was considering this strategy I hadn't really thought about the max connections limit. Hmm....

Obviously no stale cache also needs some sort of storage to make sure the cache is being generated or is completely missing. What if we add a max connection to be handled by the cache strategy itself. So it can return with timed out or something like that when 20-30 requests are incoming at the same time.

I do believe it's more wider problem that cannot be solved easily by this library itself (like using before-mentioned varnish or anything else that suits someone's current setup and/or infrastructure).
 It's just better to send 404 then. When you have high-load website you cannot afford waiting (hanging web server requests) or wasting resources (many processes generating the same).

@sobstel you are probably right. But if you have a high-load website, your environment is probably powerful enough to generate the content quickly. If not, you obviously have to either scale your environment or choose another strategy (like varnish).

@sobstel That all makes sense. I sort of feeling if you have a really heavy traffic website, then using something like Glide may not be appropriate. Or maybe it even still is, but it might make more sense to actually setup Glide on it's own web server. That way if it happens to go down, it won't take the whole website down with it.
If it was setup on it's own serve you could max connections limit, while having something in place to prevent dog-piling (like your library).
And I agree with using Varnish in front of Glide in a situation like this, but that doesn't really help with the initial generating of the images, which would bypass Varnish.

@sagikazarmark it's not that easy I'm afraid. You can be prepared for high load, but sometimes you get 100x traffic more unexpectedly, even if you have automated scripts to scale quickly in the cloud, it still might be an issue. But, I think it's out of scope of this library. When doing high-load apps there are so many challenges that you usually need to handle specifically for app. It's just not responsibility of lib like this.

@sobstel Of course there is a point where you cannot use a library like this anymore. But it is very hard to find that point, so starting with a solution like this and migrating to a distributed caching system when needed is the path I would choose.
@reinink It seems to me that Varnish is smart enough to handle the situation. It will queue the rest of the requests for a while and only passes them to the backend if it turns out it cannot be cached. (Reference, but not the best though)

Came account this package by @davedevelopment recently, which might help with throttling as well:
https://github.com/davedevelopment/stiphle
Doesn't look like it's in active development anymore though.

'tis true it's not really active, purely because I'm no longer using it and it served it purpose as is. If it is something you want to pursue, ping me and I'll be happy to help explain things or help with a new implementation etc.

Stiphle looks interesting but I think we need something slightly more specific that releases requests when a lock is removed.
When I get some free time I will try and create a proof of concept.

Hey all, I'm going to close this ticket. Thanks for participating in this discussion and sharing your ideas on how to avoid server flooding.
One other solution I recently thought of is eager manipulations. See #72 for more on that.
Overall, I'm just not sure this is a problem that Glide shouldn't try to solve itself.

A bit late to the party, but here's how I implemented this:
A script that resizes images using Glide is mounted onto /img-resized/$width/$height/$crop/$filename.$ext. The script uses a custom ResponseFactory StreamResponseFactory which does nothing but returning the stream (which itself contains the resized image data).
The stream returned by the StreamResponseFactory is then:

dumped onto the filesystem into /img-resized/$width/$height/$crop/$filename.$ext
returned as a response

Since the file is dumped onto disk at the location/path where it was originally requested, a successive request to the same /img-resized/$width/$height/$crop/$filename.$ext will return said dumped version directly via the webserver instead of going through another PHP + Glide cycle :)

A common problem with this approach is that you are not protected against the dogpile effect: what if there are 10 simultaneous requests to the same image?
Do you have some kind of rate limiting for the requests? Because if you expose Glide directly you are also exposed to attacks which sends thousands of conversion requests (which of course only work if you have a lot of images).


<EMAIL_ADDRESS>Fixed broken link

Closes #6610.

Does not make sense to add completely not related changes to this PR

Yes! Sorry about that.


Tweak documentation

Description of changes:

Markdown tweaks to existing documentation

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Regular contributors should join the org to skip this step.

Prow is very flattering here.

This is what I get for authoring vim without spellcheck 🤦
/ok-to-test
/lgtm
/approve

set spelllang=en_us @micahhausler :wink:


[Do not merge] Dispatcher sends update when task run time spec changes

From issue #1209 @aluzzardi's comment:

The dispatcher sends tasks down to the agent for ANY reason, including task status change. There's no point in sending tasks down to the agent if the status changes since it's the agent updating the status in the first place. Every time the agent updates the status of a task (e.g. From PREPARING to READY), it sends an update to the dispatcher which in turn sends back the list of tasks which is pointless

This change uses TasksEqual to decide if a task change should trigger a dispatcher notification to agent. TasksEqual is moved from agent to dispatcher to deal with a circular import problem.
This change is based on #1216.
cc @aluzzardi @runshenzhu @stevvooe @aaronlehmann.

[Current coverage][cc-pull] is 55.05% (diff: 91.17%)

Merging [#1218][cc-pull] into [master][cc-base-branch] will increase coverage by 0.07%

@@             master      #1218   diff @@
==========================================
  Files            77         77
  Lines         12368      12383    +15
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           6799       6817    +18
+ Misses         4632       4628     -4
- Partials        937        938     +1

[][cc-pull]

Powered by Codecov. Last update [4d7e443...dd50eef][cc-compare]
[cc-base-branch]: https://codecov.io/gh/docker/swarmkit/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/docker/swarmkit/compare/4d7e44321726f011d010cdb72d2230f5db2b604e...dd50eeff6339f2b3f6ff289dc1538e698295986b?src=pr
[cc-pull]: https://codecov.io/gh/docker/swarmkit/pull/1218?src=pr

LGTM

ping @stevvooe @LK4D4 for review (agent/dispatcher)

Does this actually result in less total CPU usage over the cluster? Seems like we are just moving the problem into the dispatcher. Theoretically, there should be a little less total CPU, since the agent doesn't have to parse and debounce.

Does this actually result in less total CPU usage over the cluster? Seems like we are just moving the problem into the dispatcher. Theoretically, there should be a little less total CPU, since the agent doesn't have to parse and debounce.

I expect we avoid a lot of serialization and TLS overhead (these showed up in the profiles that were taken), but that's a good question.

@dongluochen How confident are you with shipping this in 1.12?

@aluzzardi I ran v1 (first commit) in a 5 node cluster for 2 days. And the latest commit for past 3 hours with service add/remove/update operations. I feel comfortable of it.

LGTM

LGTM


Provide way of transitioning from -argument to --argument

I have an application that uses a single prefix '-' for all arguments even though they are long arguments.
usage: test [-h] [-lang {PYTHON,JAVA,CPP}]

optional arguments:
  -h, --help             show this help message and exit
  -lang {PYTHON,JAVA,CPP}

I want to transition this to using the more appropriate double prefix '--' without breaking the command line API as it's being called in the old style from other applications.
The naive approach is to add both options, but then the deprecated form ends up showing in the help.
usage: test [-h] [--lang {PYTHON,JAVA,CPP}]

optional arguments:
  -h, --help             show this help message and exit
  --lang {PYTHON,JAVA,CPP}, -lang {PYTHON,JAVA,CPP}

It would be nice to have some way of suppressing the old flag.
I can achieve it by splitting the single and double prefix into two different arguments, and using FeatureControl.SUPPRESS on the single prefix, but some of the arguments have complex choices and types configured that either end up duplicated or abstracted away in a rather ugly manner.

Perhaps, we can add something like suppressedAliases method to Argument interface, and given names are alias of the argument, but hidden from the help.  The usage is like this:
parser.addArgument("--lang").suppressedAliases("-lang");

There may be better name for this method.

That's a lot more ergonomic than the designs I've been coming up with. The name seems fine to me.

I've been working on tidying up the code I wrote a little while ago for this. I can make a pull request when I'm done if you're interested?
We decided that we would like some of the applications to show the old aliases. To that end, I've added a flag deprecatedHelp that functions in a similar way to defaultHelp.
ArgumentParser parser = ArgumentParsers.newArgumentParser("My Prog")
    .defaultHelp(true).deprecatedHelp(true);

parser.addArgument("--aflag").deprecatedAliases("-aflag")
    .choices("A", "B", "C").help("A handy dandy flag");
parser.addArgument("-deprecatedflag")
    .choices("A", "B", "C").setDefault("A").deprecated().help("An entirely deprecated flag");

parser.printHelp();

With deprecatedHelp=true:
usage: My Prog [-h] [--aflag {A,B,C}]

optional arguments:
  -h, --help             show this help message and exit
  --aflag {A,B,C}, -aflag {A,B,C} (deprecated)
                         A handy dandy flag
  -deprecatedflag {A,B,C} (deprecated)
                         An entirely deprecated flag (default: A)

With deprecatedHelp=false:
usage: My Prog [-h] [--aflag {A,B,C}]

optional arguments:
  -h, --help             show this help message and exit
  --aflag {A,B,C}        A handy dandy flag

Notice that whatever deprecatedHelp is set to, they never show up in the one line summary.
Only prefixed flags can have deprecated aliases.
I've ended up changing the Impl classes in backwards incompatible ways. Is that acceptable or do I need to find ways to make them compatible?

This is interesting.
We'd like to preserve compatibility as much as possible.  Since Java is dynamically linked (except for static const stuff), just adding methods should be fine (or I may be wrong).
I'd like to see your work.
  --aflag {A,B,C}, -aflag {A,B,C} (deprecated)
                         A handy dandy flag

It looks to me that both "--aflag" and "-aflag" are deprecated.
I have no idea how to improve this, but this is my first impression.

The work-in-progress is on my deprecated branch. It's not been comprehensively tested yet though.
I was thinking that rather than creating new dedicated methods, it might be better to use feature controls:
ArgumentParser parser = ArgumentParsers.newArgumentParser("My Prog")
    .defaultHelp(true).deprecatedHelp(true);

parser.addArgument("--aflag").addAlias("-aflag", FeatureControl.DEPRECATED)
    .choices("A", "B", "C").help("A handy dandy flag");
parser.addArgument("-deprecatedflag")
    .choices("A", "B", "C").setDefault("A").help(FeatureControl.DEPRECATED).help("An entirely deprecated flag");

The downsides are:

There is now multiple ways to create an alias: addArgument("--flag", "--alias" and addAlias("--alias"). I don't think this is a huge issue though.
The same FeatureControl enum is used for setDefault, and a deprecated default value doesn't make a lot of sense. This could be mitigated by introducing HelpFeatureControl and DefaultFeatureControl and having the current FeatureControl overloads translate into Help/DefaultFeatureControl.SUPPRESS.

Thank you.  I'd like to make this feature as small as possible, since this feature handles deprecated options, and we don't want to create many things on that.
I imagined that we can do the similar thing when we do adding alias for sub command.  With that in mind, and based on your observation, I can think of the following usage example:
ArgumentParser parser = ArgumentParsers.newArgumentParser("My Prog")
    .defaultHelp(true).deprecatedHelp(true);

This is the same as you suggested above
parser.addArgument("--aflag").deprecatedAliases("-aflag");
parser.addArgument("-deprecatedflag").help(FeatureControl.DEPRECATED);

Adding alias, which is not deprecated, does not make sense, so just use dedicated method to add deprecated alias flags.
FeatureControl.DEPRECATED works like FeatureControl.SUPPRESS, but when ArgumentParser.deprecatedHelp(true), is used, its help message is displayed.
For deprecatedAliases, it may be easier to read to print deprecated flags by another line, like so:
  --aflag {A,B,C} Do something
  -aflag {A,B,C}  Deprecated in favor of --flag

Will do some experiment in my own branch.

I just realized help(FeatureContro.DEPRECATED) doesn't fly since we cannot provide help message.  Argument.deprecated(bool) would be better.

The API in my deprecated branch matches what you've suggested.
The trickest part is that currently addArgument adds the various aliases to bookkeeping data structures inside ArgumentParser, but deprecatedAlias doesn't have access to ArgumentParser at that point. I solved it by refactoring the bookkeeping data structures into an ArgumentStore data structure that gets passed into the Argument.

Yes, we are reaching in consensus.
Here is my experimental version based on your work: https://github.com/tatsuhiro-t/argparse4j/commit/c9d058d4441f134f096291d4fc7d89b82803955a
Largely based on your work, just tweak how the deprecated options are printed, and pass ArgumentParserImpl to ArgumentImpl to make adding aliases easier.


Docker

Current coverage is 64.29%

Merging #7 into master will decrease coverage by -0.10% as of 361322a

@@            master      #7   diff @@
======================================
  Files           56      56
  Stmts         1556    1560     +4
  Branches        98     101     +3
  Methods          0       0
======================================
+ Hit           1002    1003     +1
  Partial          0       0
- Missed         554     557     +3

Review entire Coverage Diff as of 361322a

Powered by Codecov. Updated on successful CI builds.


Uploader larger than 2.3 G file

Larger raw file (>~2.3 G) can only upload through the browser, not the uploader. It will just skip, won't even start. Most likely library or file system or something issue.

upgrade Restsharp to V108 solved this issue


refactor: removes openapi controller and related

Description
This PR removes all deprecated elements of OpenAPIConfig and the OpenAPIController, removes any obsolete tests and refactors tests that were parametrized to test both OpenAPIController and the router-based approach.

Closes

Hey @JacobCoffee - this PR gets rid of all of the type errors coming from the removal of OpenAPIController and the other deprecated things. I can't run the tests yet though b/c of unrelated failures.
If you are working through those other errors, then I can keep merging those changes into this branch until its just openapi stuff remaining? Or, just merge this - up to you!

Do you think it a bad idea to merge this and if something else pops up make a new pr from this branch to continue on if I cant resolve it? not sure. i dont want to delay fixing so maybe bulk-trying-to-fix-all-the-things-at-once is a bad idea :D

Do you think it a bad idea to merge this and if something else pops up make a new pr from this branch to continue on if I cant resolve it? not sure. i dont want to delay fixing so maybe bulk-trying-to-fix-all-the-things-at-once is a bad idea :D

I think it might be easier to break the work into logical chunks and merge them into 3.0 one at a time. That will make it easier to git blame backward through the work if we need to, and also will mean we can green-light the test suite one block at a time. Thoughts?

Sounds good to me, i can cherry pick off or something

Want to leave this one to me? I'll rebase on 3.0 and PR into that instead?

Want to leave this one to me? I'll rebase on 3.0 and PR into that instead?

I like this approach more tbh :eyes:

Want to leave this one to me? I'll rebase on 3.0 and PR into that instead?

I like this approach more tbh :eyes:

Can you clarify? Do you mean you'd prefer a single PR into 3.0 with all the depreciations removed?

Can you clarify? Do you mean you'd prefer a single PR into 3.0 with all the depreciations removed?

Ah, sorry for the confusion! I just wanted to express that I liked your suggestion of doing things incrementally in smaller PRs instead of having a single big one!

Closed in favor of #3297


15.1 Update not available for some devices

Hello!
Not sure if this is accurate, but based on the feed found here: https://sofafeed.macadmins.io/v1/macos_data_feed.json some models appear to be missing for eligible devices. Specifically, I noticed that my tester iMac which is model MGPJ3LL/A is not displayed there so is only receiving Nudge prompts to 15.0.1.
Let me know if you need any further information.
Thanks for a great tool!

gdmf's PublicAssetSets:macOS has two entries for 15.1, the forked M4 build 24B2083 and the regular 24B83:

SOFA only picks up the forked M4 build and presents that as 15.1, with its rather limited list of supported devices.

The logic for forked builds must be improved, 4th the moment this issue is currently only addressed with a hot-fix #204 .


Just wanted to say thanks❤

Back earlier this year, I studied a UNSW course that not only uses Moodle, but also is structured terribly (you'll never know what to do, and what marks have you likely lost, due to missing a weird PDF in a weird submenu etc). I found your solution and it worked beautifully. Luckily finished my studies now entirely
Just wanted to say big THANKS to you guys ❤❤. I it wasn't for you, I probably would've failed the bloody course like many did.
P.S. Already subscribed to @harsilspatel here on Github

Hi @TAbdiukov,
I am very pleased to learn that my efforts in developing this extension contributed towards successful completion your course! It is stories like yours that motivates me to continue developing open source applications. I thank you for sharing your experience, you post made my day :D
Wishing you all the best moving forwards! ^_^
Regards,
H


Rename main method to get_setting

Unrelated = fixing the missing imports of DotenvBackend?  I wanted to make a separate commit for that (but in this same PR, I don’t see the point of making micro PRs for small things) but it went all together since I had to fix the SettingNotFoundException imports too.