Intake System

This issue will span picking up and placing samples.

Side roller intake: Using two gears, two sprockets would be rotated with surgical tubing extending from them. When they rotate, they would be able to pull blocks in and push them out. For into the deep, a ramp would need to be placed below the design.

Pros:

Side roller intakes can generally grab and release items quickly and efficiently

Cons:

Given how wide the design needs to be in order to take in blocks and fit a roller on each side, it may be difficult to fit within the size constraints
The side rollers have many components, which would weigh down the arm significantly
The design is expensive component-wise, as it would require two motors. It could be adjusted to use gears, but given how much space is in between the rollers, that would be difficult.

Overall:
A side roller intake would not be a good option, because although it may be good at grabbing blocks, it poses too much of a design-headache given all the components it requires and the weight that it would add to the robot.

Multi-roller intake: Using one motor attached to a hex shaft which is lined with flap wheels, the hex shaft is rotated letting the flap wheels spin either to pull objects in or push them out. To hold the object, a ramp and walls would be needed.

Pros:

Relatively light-weight and low cost component-wise, only requiring one motor, a hex shaft, flap wheels, and a few structure pieces
Able to grab and release items quickly and efficiently
Doesn't care about orientation of block

Cons:

A separate system would be needed for hanging specimens

Overall:
A multi-roller intake would be a viable option, as it is efficient and reliable, as well as conservative of resources.

Claw: Using one servo and gears to have 2 gears rotating in opposite directions, extensions open and close around an object.

Pros:

Very light-weight
Does not take up a motor slot
Would be able to grab and hang specimens as well as

Cons:

Not as efficient at picking up objects as roller systems
Requires more precision than a roller system
May drop the object

Overall:
A claw would be a passable option, but has a number of flaws. A claw is too much slower than rollers, and requires too much precision on the part of the driver. As a result, while we will likely need a claw to hang specimens, it should not be our primary intake method.


problem fetching emails

i am not receiving any email on my installation. smtp works fine and double checked conf for imap. i have setup a cron job to fetch every half an hour to be on the safe side.
i am using handesk on a subdomain, so my site is helpdesk.mysite.com
email for sending and fetching i am using main domain, so<EMAIL_ADDRESS>- don't know if this affects the fetching but tried same installation on the main domain and a sub folder and still not getting any email.
/usr/local/bin/php /home/myhost/public_html/helpdesk.mysite.com/artisan schedule:run >> /dev/null 2>&1
with path recommended on my cpanel and tried
php /home/myhost/public_html/helpdesk.mysite.com/artisan schedule:run >> /dev/null 2>&1
but still no luck. checked with host and they confirmed there is not issue on the server mailing. i do receive emails on client regularly. anybody who could put me in the right direction? thank you.
my .env
MAIL_FETCH_HOST=mail.myaddress.com
MAIL_FETCH_PORT=993
<EMAIL_ADDRESS>MAIL_FETCH_PASSWORD=xxxxxxxxx
MAIL_FETCH_OPTIONS=/imap
MAIL_FETCH_USE_SSL=true
unfortunately i have no way to access by ssh to test the cron

I'm having an issue that maybe is related to this. I've configured the .env file with this parameters:
MAIL_FETCH_HOST=xxxx.zoho.com
MAIL_FETCH_PORT=995
<EMAIL_ADDRESS>MAIL_FETCH_PASSWORD=zzzz
MAIL_FETCH_OPTIONS=/pop3
MAIL_FETCH_USE_SSL=true

But I'm getting this error message:
Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required

While trying to execute the following command:
php artisan handesk:parseNewEmails

Are you getting the same error @satellouk ?
Best regards

this is something about authorization, check out the  https://secure.php.net/manual/de/function.imap-open.php to see if any option might help you


Rewrite for Laravel 5.x with new methods

Rewrite the whole package for Laravel 5.x with more helpful methods that better integrate into FatSecret.
I'm open to suggestions and help 😄

I can take this one!

@namelivia Go for it! I was thinking of adding a few more helper methods and refactoring what's already there down a bit.

Ok! I'll include some of that in the PR aswell

Thanks @namelivia for all of your help, I've added a new release!


BUG: Resample on empty Period-Indexed Series returns Datetime-Indexed Series

Code Sample, a copy-pastable example if possible
In [7]: pd.Series([], pd.period_range(start='2000', periods=0)).resample('W').mean().index Out[7]: DatetimeIndex([], dtype='datetime64[ns]', freq='W-SUN')
Expected Output
PeriodIndex([], dtype='int64', freq='W-SUN')
On pandas: 0.18.0

@jreback Lots of issues with PeriodIndex & resample. ref: https://github.com/pydata/pandas/issues/12774 & ERR: Resample pad on existing freq causes recursion error
I didn't really follow the resample refactor so I don't know the genesis of these. I had a look through the code but can't find easy fixes. Looks like a lot is reliant on the kind attribute, but it's not completely consistent (i.e. a resampled PeriodIndex at times changes kind from period to timestamp, etc).
Do you have any ideas for an overarching strategy for these?
For example, should we just convert every PeriodIndex to a DatetimeIndex, resample it, and then convert back?

@MaximilianR I commented on this in #12774 . The logic from < 0.18.0 is exactly the same. The problem is the period is not systematically tested and there are quite a few edge cases. Further compounding this is the kind kw, which I think we could just totally eliminate. Now the obstacle is that its often easier to change the DTI to a PI, resample then change it back. The code paths are there, just the kind thing really perverts the logic.
So what we need is a fair amount of systematic testing. Then remove the kind (well you don't actually remove it, but deprecate it and we'll remove it later).

I'll make a master Period Resample issue I think.

Now the obstacle is that its often easier to change the DTI to a PI, resample then change it back.

OK - can I confirm that you think this is the best path forward, for all PeriodIndex resampling?

The logic from < 0.18.0 is exactly the same.

OK, these are regressions though (from our unit tests failing on our upgrade)

if u have failing tests then they must be things that are not tested in pandas - nothing regressed AFAICT


Update documentation on bell_inequality.py example

Hi @vtomole
Check the documentation update on bell inequality example as discussed in #3032. Thanks

Thanks for opening this @SamarthVadia , I'll review it tomorrow.

@vtomole Thanks for the quick feedback, changes are done!


RJD_RESULT: static assert on compile-time string

Right now the interface of RJD_RESULT lets you pass a runtime string, but we should assert it's of the form "Some error" to avoid this mistake.

resolved by 2493e12


Set hard requirement on python version for release.

Fails

:no_entry_sign:
The first line of each commit should ends with the issue number

  Generated by :no_entry_sign: dangerJS against c671c504ebb654eec549651a9124230510ccd3d7

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

4.0.0
GitHub release

Your semantic-release bot :package::rocket:


Regression Testing MSL 3.2.2-beta.2

Reported by leo.gall on 25 Feb 2016 09:17 UTC
This ticket collects result deviations of MSL 3.2.2-beta.2.
Library officers please inspect.
Reference:

MSL v3.2.1+build.4
Dymola 2014 FD01

To be tested:

MSL v3.2.2+build.0-beta.2
Dymola 2017 Dev 4

Methods for regression testing: Own mos-scripting + MA compare.exe for comparison.
Number of test cases:

Modelica: 366 compared to 278 (88 added)
ModelicaTest: 543 compared to 440 (106 added, 3 removed)
For new test cases, results have been generated, which can be used as a baseline for comparing to other tools.

Blocks
ModelicaTest.Blocks.Mean

Deviation for Mean.mean.x
compare report

Electrical.Machines
Modelica.Electrical.Analog.Examples.AmplifierWithOpAmpDetailed

deviation in third oscillation
compare report

Magnetic
Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL

No stop time annotation. Please add experiment(StopTime=1.0)

Mechanics
Modelica.MultiBody.Joints.JointUSP2

slight phase deviation for JointUSP2.revolute.phi
compare report

Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.fullRobot

compare.exe stopped working, due to problems when comparing discrete variables:

2016-01-28Z15:55:32 [     Warning ] axis1.gear.bearingFriction.startBackward is invalid! 2 errors have been found during validation.
2016-01-28Z10:34:05 [       Error ] Exception during run: Der Index war außerhalb des Arraybereichs.”

Comparing continuous variables manually, no big deviations could be found.
Visible differences for mode signals
Maybe differences originate from new Dymola version?

Modelica.Mechanics.Rotational.Examples.HeatLosses

compare.exe stopped working, due to problems when comparing discrete variables:

2016-01-28Z10:46:41 [     Warning ] brake.startForward is invalid! 30 errors have been found during validation.
2016-01-28Z10:46:41 [       Error ] Exception during run: Der Index war außerhalb des Arraybereichs.

Comparing continuous variables manually, no big deviations could be found.
Visible differences also for oneWayClutch.stuck at 0.035 s
Maybe differences originate from new Dymola version?

Fluid
ModelicaTest.Fluid.Dissipation.Verifications.HeatTransfer.Plate.kc_overall

No stop time annotation. Please add experiment(StopTime=1.0)
ModelicaTest.Fluid.Dissipation.Verifications.HeatTransfer.StraightPipe.kc_laminar_KC
No stop time annotation. Please add experiment(StopTime=1.0)

Access to full comparison reports
Access comparison reports of all test cases (HTML generated by MA/ITI compare.exe v2.0.0-rel):
Modelica
ModelicaTest
Basic documentation of the testing process is available here:
https://trac.modelica.org/Modelica/wiki/HowTo/MAP-LIB/ModelicaStandardLibrary/RegressionTesting
Access to result files
MA file server (including mat files):
[sftp://modelica.org:20022/files/RegressionTesting/ReferenceResults/MSL/tags/v3.2.2%2Bbuild.0-beta.2/]
Readme for accessing file server:
https://svn.modelica.org/projects/RegressionTesting/AccessInfo/read-access/README.html
SVN (csv files, r9071)
https://svn.modelica.org/projects/RegressionTesting/ReferenceResults/MSL/trunk
Attention: I only added results of new test models.
I did not yet replace old results, because it seems awkward to use beta.2 as a new reference.
If you have any questions replicating the test results, please don't hesitate to contact<EMAIL_ADDRESS>me]!

Migrated-From: https://trac.modelica.org/Modelica/ticket/1924

Comment by beutlich on 25 Feb 2016 10:52 UTC
I really wonder why I provide you the signals under test for Modelica tables if you do not use them in the end? See comment 2 of #1867.

Comment by leo.gall on 25 Feb 2016 13:38 UTC
Replying to [comment:1 beutlich]:

I really wonder why I provide you the signals under test for Modelica tables if you do not use them in the end? See comment 2 of #1867.

My fault, I missed your attachment! I downloaded it now and it will be used for the next run.

Comment by ahaumer on 25 Feb 2016 21:46 UTC
ModelicaTest.Fluid.Dissipation.Verifications.HeatTransfer.Plate.kc_overall and ModelicaTest.Fluid.Dissipation.Verifications.HeatTransfer.StraightPipe.kc_laminar_KC already have an annotation(experiment(StopTime=1.01, Tolerance=1e-005)).
Added an annotation(experiment(StopTime=1.5, Interval=0.001) to Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_DOL (1904de39a7e3e535e51b4f45d4d8cbd2b5c5f28d)

Comment by ahaumer on 25 Feb 2016 21:59 UTC
ModelicaTest.Blocks.Mean is clear:
The signal source has been changed from sine to cosine (and new blocks have been added for testing: rectifiedMean, rootMeanSquare, harmonic).
Please produce new reference results - thanks in advance!

Comment by ahaumer on 25 Feb 2016 22:02 UTC
Just summarizing the 4 issues left:

Modelica.Electrical.Analog.Examples.AmplifierWithOpAmpDetailed
Modelica.MultiBody.Joints.JointUSP2
Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.fullRobot
Modelica.Mechanics.Rotational.Examples.HeatLosses

Comment by otter on 26 Feb 2016 01:27 UTC
Modelica.Electrical.Analog.Examples.AmplifierWithOpAmpDetailed is discussed in #1741 (model is sensitive to tolerances). When comparing the results it is obvious that the new simulation results with Dymola 2017 Dev.4 and MSL 3.2.2 is the correct one: The result should give three (identical) periods and with Dymoal 2014 FD01, MSL 3.2.1, there is a small devication in the third period leading to the regression failure, whereas with Dymola 2017 Dev.4 and MSL 3.2.2 the three periods are identical.
To summarize, the new reference files are correct and this issue is clarified

Comment by otter on 26 Feb 2016 01:32 UTC
Modelica.Mechanics.Rotational.Examples.HeatLosses is discussed in https://trac.modelica.org/Modelica/ticket/1741#comment:4
Short summary: The issue is the friction element where the internal discrete state of the friction is sensitive to small deviations (the continuous-time variables are o.k.).
To summarize: This issue is clarified.

Comment by otter on 26 Feb 2016 01:33 UTC
Replying to [comment:3 ahaumer]:

ModelicaTest.Fluid.Dissipation.Verifications.HeatTransfer.Plate.kc_overall and ModelicaTest.Fluid.Dissipation.Verifications.HeatTransfer.StraightPipe.kc_laminar_KC already have an annotation(experiment(StopTime=1.01, Tolerance=1e-005)).

This was already added after Beta.2 was released (so was already fixed).

Comment by otter on 26 Feb 2016 01:35 UTC
Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.fullRobot is discussed in https://trac.modelica.org/Modelica/ticket/1741#comment:14
Again, the issue is the friction element, where the internal discrete state "mode" is sensitive to small deviations (however, the continuous-time signals are fine).
To summarize: This issue is clarified.

Comment by otter on 26 Feb 2016 01:49 UTC
Modelica.MultiBody.Joints.JointUSP2:
compare.exe reports a relative error of 1e-5 (and the tolerance is 1e-4, so the deviation is uncrictical; in the compare.exe plot the deviation is also not visible). I compared with the two Dymola versions and MSL versions and could not reproduce this tiny deviation (anyway it is uncritical if the relative error is 1e-5; since this occurs around phi=0, this might be an issue with the compare.exe tool).
To summarize: This issue is clarified.

Comment by otter on 26 Feb 2016 01:50 UTC
Since all issues are explained, regression testing is successful and I close this ticket.

Changelog modified by otter on 26 Feb 2016 01:50 UTC
Regression testing issues have been all explained

Comment by sjoelund.se on 26 Feb 2016 21:08 UTC
I was a bit unsure where to put OM testing results against these reference files. I guess they can go here:
Modelica:
BuildModel Results: 342/366 succeeded
Simulation Results: 329/366 succeeded
Verified Results: 310/366 succeeded
ModelicaTest:
BuildModel Results: 502/515 succeeded
Simulation Results: 485/515 succeeded
Verified Results: 450/515 succeeded
Still a few problems with impure functions (Component x of variability PARAM has binding ... of higher variability VAR usually means ... is impure). And I saw a few things that are OM problems for sure.
I guess DoublePendulumInitTip revolute2.phi is one of the variables that does not make much sense to compare.

Comment by hubertus on 26 Feb 2016 21:40 UTC
These are good numbers, but the really interesting part would be to see models that worked in 3.2.1, but did not in 3.2.2, and also an overview over newly added models that don't work.

Comment by beutlich on 1 Mar 2016 10:42 UTC
Replying to [ticket:1924 leo.gall]:

2016-01-28Z10:34:05 [       Error ] Exception during run: Der Index war außerhalb des Arraybereichs.

FYI: I fixed the exception. As long as it's not merged yet you might want to use https://github.com/tbeu/csv-compare/tree/issue16 for a repeated run.


Cannot assign requested address

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2023.01.06 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
Hello,
I'm trying to use project like TurbeSync and TubeArchivist, and I realized than the origin of my problem for both of them is related to yt-dlp.
TubeSync and TubeArchivist run in Docker containers on a Synology NAS and access to the internet through a bridge network.
I tried to SSH on my NAS, download yt-dlp and run the exact same command, it works as expected, here is the output to compare:
[debug] Command-line config: ['https://www.youtube.com/watch?v=aeWyp2vXxqA', '-vU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.01.06 [6becd25] (zip)
[debug] Python 3.8.12 (CPython x86_64 64bit) - Linux-4.4.180+-x86_64-with-glibc2.2.5 (OpenSSL 1.1.1o  3 May 2022, glibc 2.26)
[debug] exe versions: ffmpeg 4.1.8
[debug] Optional libraries: sqlite3-2.6.0
[debug] Proxy map: {}
[debug] Loaded 1760 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2023.01.06, Current version: 2023.01.06
yt-dlp is up to date (2023.01.06)
[youtube] Extracting URL: https://www.youtube.com/watch?v=aeWyp2vXxqA
[youtube] aeWyp2vXxqA: Downloading webpage
[youtube] aeWyp2vXxqA: Downloading android player API JSON
[debug] Loading youtube-nsig.4248d311 from cache
[debug] [youtube] Decrypted nsig txB7ct4JWiYjF4- => nxQZtV69DvIC-A
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] aeWyp2vXxqA: Downloading 1 format(s): 303+251
[debug] Invoking http downloader on "https://rr5---sn-4gxx-25gel.googlevideo.com/videoplayback?expire=1674266526&ei=PvPKY9S5O76NvdIP8dSIqAc&ip=[MY PUBLIC IP ADDRESS V6]&id=o-AAbMjz-DUfBpqgA1Z98lFdtVaLWLbcm7rjkkFerth4hk&itag=303&source=youtube&requiressl=yes&mh=uh&mm=31%2C26&mn=sn-4gxx-25gel%2Csn-5hnednsz&ms=au%2Conr&mv=m&mvi=5&nh=EAE%2C&pl=50&initcwndbps=771250&spc=zIddbDpGkGUFxdx-H0kpIh0OCO0r7lM&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=233520616&dur=742.916&lmt=1671328445556791&mt=1674244420&fvip=1&keepalive=yes&fexp=24007246&c=ANDROID&txp=453D434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAJjFDwcRg2i6fRJbWvaN9wv8houy5Ydbwly6MYzSew6eAiEAkOlMaVtawMIsZ5YabyGgacg1cGBWroONEMB-deyYY9Q%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cnh%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAIxtYqumwZvB_znrN-NjnD5urz_YoLdaDRxRStCUVuiNAiEAh4QZbsNLtE42FwTPbZIsz8vbivdQgFTJK4zLprqNHXw%3D"
[download] Destination: Black Hole Star – The Star That Shouldn't Exist [aeWyp2vXxqA].f303.webm
[download] 100% of  222.70MiB in 00:00:05 at 42.70MiB/s
[debug] Invoking http downloader on "https://rr5---sn-4gxx-25gel.googlevideo.com/videoplayback?expire=1674266526&ei=PvPKY9S5O76NvdIP8dSIqAc&ip=[MY PUBLIC IP ADDRESS V6]&id=o-AAbMjz-DUfBpqgA1Z98lFdtVaLWLbcm7rjkkFerth4hk&itag=251&source=youtube&requiressl=yes&mh=uh&mm=31%2C26&mn=sn-4gxx-25gel%2Csn-5hnednsz&ms=au%2Conr&mv=m&mvi=5&nh=EAE%2C&pl=50&initcwndbps=771250&spc=zIddbDpGkGUFxdx-H0kpIh0OCO0r7lM&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=12405721&dur=742.941&lmt=1671322787015568&mt=1674244420&fvip=1&keepalive=yes&fexp=24007246&c=ANDROID&txp=4532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgB0JF359mV7BpAsfUqoCk5qSxf8IT0SETDejJAc23HSQCIDMR9FI3v_6TIPRQvwiqZXTJ_fKnB3lULL8GhL3w8aBe&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cnh%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAIxtYqumwZvB_znrN-NjnD5urz_YoLdaDRxRStCUVuiNAiEAh4QZbsNLtE42FwTPbZIsz8vbivdQgFTJK4zLprqNHXw%3D"
[download] Destination: Black Hole Star – The Star That Shouldn't Exist [aeWyp2vXxqA].f251.webm
[download] 100% of   11.83MiB in 00:00:00 at 32.24MiB/s
[Merger] Merging formats into "Black Hole Star – The Star That Shouldn't Exist [aeWyp2vXxqA].webm"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Black Hole Star – The Star That Shouldn'"'"'t Exist [aeWyp2vXxqA].f303.webm' -i 'file:Black Hole Star – The Star That Shouldn'"'"'t Exist [aeWyp2vXxqA].f251.webm' -c copy -map 0:v:0 -map 1:a:0 -movflags +faststart 'file:Black Hole Star – The Star That Shouldn'"'"'t Exist [aeWyp2vXxqA].temp.webm'
Deleting original file Black Hole Star – The Star That Shouldn't Exist [aeWyp2vXxqA].f303.webm (pass -k to keep)
Deleting original file Black Hole Star – The Star That Shouldn't Exist [aeWyp2vXxqA].f251.webm (pass -k to keep)

I also tried to SSH into TubeSync Docker container (docker exec -it tubesync /bin/bash) and install curl then execute the following command:
curl https://www.youtube.com

And it works, I output the content in a HTML file and I can see the homepage of Youtube.
I don't understand what is happening, do you have an idea of something I can test to have more details of my issue?
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['https://www.youtube.com/watch?v=btKuH6-5M3Y', '-vU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.01.06 [6becd25] (pip)
[debug] Python 3.9.2 (CPython x86_64 64bit) - Linux-4.4.180+-x86_64-with-glibc2.31 (OpenSSL 1.1.1n  15 Mar 2022, glibc 2.31)
[debug] exe versions: ffmpeg N-109474-gc94988a781-20230103 (setts), ffprobe N-109474-gc94988a781-20230103
[debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1760 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2023.01.06, Current version: 2023.01.06
yt-dlp is up to date (2023.01.06)
[youtube] Extracting URL: https://www.youtube.com/watch?v=btKuH6-5M3Y
[youtube] btKuH6-5M3Y: Downloading webpage
[youtube] btKuH6-5M3Y: Downloading android player API JSON
[debug] Loading youtube-nsig.4248d311 from cache
[debug] [youtube] Decrypted nsig UEsLsaWdLzoClkH => fQYQThX03GxXeQ
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] btKuH6-5M3Y: Downloading 1 format(s): 303+251
[debug] Invoking http downloader on "https://rr5---sn-4gxx-hgns.googlevideo.com/videoplayback?expire=1674266435&ei=4_LKY_uFOvf5xN8Pj_CPoAE&ip=[MY PUBLIC IP ADDRESS v4]&id=o-AOPrg5jZN_YCkoXiQQ9amsa4EdjOHGabRKzEsxIS1N6Q&itag=303&source=youtube&requiressl=yes&mh=I2&mm=31%2C29&mn=sn-4gxx-hgns%2Csn-4gxx-25gee&ms=au%2Crdu&mv=m&mvi=5&pl=11&nh=%2CEAE&initcwndbps=2038750&spc=zIddbHdvuXgpl4Niohi_heqc-5cIYRY&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=410766472&dur=1867.182&lmt=1650051723466027&mt=1674244420&fvip=1&keepalive=yes&fexp=24007246&c=ANDROID&txp=5535434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgDyzfNnq6o_87EkeBcRBRDg7X17wPSnHpJHyNcl8NEUICIQDT_nmhVZIz42FoNmWGZgMlInwLo5CmT3tolqH967jiag%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cnh%2Cinitcwndbps&lsig=AG3C_xAwRQIhAJ-pDZMWPEL44XLTcNj7WG9C4CtRmzG3lTt9eUWeBaFBAiBFa2aHS2USJD9T2iyUrpWOAeCw3k9icS8RdJ4fOo9aXQ%3D%3D"
[download] Got error: <urlopen error [Errno 99] Cannot assign requested address>. Retrying (1/10)...
[download] Got error: <urlopen error [Errno 99] Cannot assign requested address>. Retrying (2/10)...

see this guide here - https://drfrankenstein.co.uk/2022/03/11/tubesync-in-docker-on-a-synology-nas/

see this guide here - https://drfrankenstein.co.uk/2022/03/11/tubesync-in-docker-on-a-synology-nas/ there's a section for youtube-dl / yt-dlp called youtube-dl material.

Thank you for the link, I followed the steps to install Youtube DL Material using the GUI of Synology like they do in the guide, but it just added a new services that still can't download a single video from Youtube neither:

And the log for Youtube DL Material service doesn't give more info, in fact it gives no info, it's just stuck...
From the guide, I saw than if you have a firewall enabled from Synology, you need to give an exception, but:

I don't have the Synolgy firewall enabled on my NAS
I still can use yt-dlp by SSHing on my NAS directly, it just doesn't work in a Docker container

try this setup under DOCKER - https://github.com/Tzahi12345/YoutubeDL-Material

ip=[MY PUBLIC IP ADDRESS V6]

ip=[MY PUBLIC IP ADDRESS v4]

maybe try disabling ipv6 on your NAS?

Closed due to inactivity


Adjust header button styling

Description
Fixes loss of green background on Login/Register buttons in header.
Inserted 3 blank divs in header to push Community & About Us buttons a bit left per the figma design.
Removed unused AccountEventCard import to fix build warning message.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Change Status

[x] Complete, tested, ready to review and merge

How Has This Been Tested?

[x] Manually tested locally

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] There are no merge conflicts

 RC2: Work on Header components (account button, search, notifications, title)


use HF pipelines in REST APIs

Pipelines can remove a lot of boilerplate code potentially from the inference engine.

Per discussion with @Eli-Goldner today, this may not apply to any of the models we currently have APIs for. It may apply if some of the models he is building get added in the future, but we can table it for now.


Tune llama-2-7b with RLHF.

These changes switch the tuned model from text-bison to llama2. (We'll release an updated notebook with instructions to tune bison in the future.)
We also revised text in some sections to improve clarity.

/gcbrun


Issue 2678 : The VAPOR cache size is unintuitive and should be made unlimited by default

Fixes #2678

@clyne  It seems this PR handles the dealing of 0, but doesn't set the default value to be 0. I.e., when clicking on that "Restore Default" button, the value goes back to 8000.

Good catch, @shaomeng . Fixed.


Upgrade web sdk

Purpose
Upgrade SDK dependency to beta version. I've tested by going through:

Create ID
Create account
Transfer CCD/wCCD
Manage tokens
Configure baking/delegation (add, change, remove)
Restore wallet
Create ID 2.0 proof
Add Web3 ID credentials
Create Web3 ID proof
Wrap/unwrap CCD (wccd.testnet.concordium.com)

Changes

Removes JSON RPC
Hide GRPC by removing from wallet API interface (legacy version still accessible through implementation layer for compatibility reasons)
Add compatibility helpers for wallet API to ensure backwards compatibility with old versions of the API

Checklist

[x] My code follows the style of this project.
[x] The code compiles without warnings.
[x] I have performed a self-review of the changes.
[x] I have documented my code, in particular the intent of the
hard-to-understand areas.
[x] (If necessary) I have updated the CHANGELOG.

@orhoj Prior to releasing a version of the wallet with the SDK upgrade included in this PR, a regression test of some form should be done.

Also just caught that the README for the browser-wallet-api-helper has not been updated to the reflect the changes. We need to remove mentions of JSON-RPC, and it should instead have a description of how to use the new way of connecting through the wallet.


Exclude test recording files.

Contributing to the Azure SDK
Resolve https://github.com/Azure/azure-sdk-tools/issues/3126
The Pr is to speed up the generate-job-matrix step by minimizing the checkout files.
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1647589&view=results
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

Can you update the description with a link to the issue you are fixing?

/check-enforcer override


Proper way of creating a hook for network devices?

Issue description
What is the proper way in  NixOS to create a hook for network devices or more specifically for my builtin WWAN modem?
Background:
I do not want SpiderOak to sync when I am using my mobile broadband. Since SpiderOak does not have a way of pausing or halting the sync via CLI, at least what I am aware of, I simply want to kill SpiderOak when the modem gets connected and start SpiderOak when the modem gets disconnected. This way I ensure syncing with WiFi only.
Steps to reproduce
N/A
Technical details
Hardware: Lenovo X1 Carbon

System: (NixOS: nixos-version, Ubuntu/Fedora: lsb_release -a, ...)
16.09.1445.e9a8853 (Flounder)

Nix version: (run nix-env --version)
nix-env (Nix) 1.11.4

Nixpkgs version: (run nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion)
"16.09.1445.e9a8853"

One way would be to create a udev rule to stop spideroak, but I don't know if events are triggered for virtual interfaces such as ppp are creates. It is probably easier to just to use iptables and block the oakport port + interface

I have now googled and experimented a bit and found out that it seems to work well to put a script in '/etc/ModemManager/dispatcher.d'. The first argument that is received by the script is the name of the interface and the second argument can be either 'up' or 'down'. One strange thing is that the interface names are different depending on if it is an up or down event. Anyhow, that is not a big issue for me.
Since I am not so keen on explicitly creating scripts or even symbolic links in /etc/ModemManager/dispatcher.d, I would rather have it as part of the NixOS configuration. Could we add this support?
I am thinking about adding the following attributes in some kind of format for NixOS configuration:
interface-name user-name execute-script
state user-name execute-script
interface-name state user-name execute-script
user-name execute-script
I suppose it is rather self explaining, but I will explain anyhow. :)
The user-name specifies what user should run the script.
The interface-name specifies what interface to execute the script for.
The state specifies the interface's state to execute the script for.
Feedback on this is very welcome.

you mean something like this? https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/networkmanager.nix#L143

Thanks, I was unaware of this, but does it really work? I am not able to get it to work.
When I add something like this to my configuration.nix:
networking.networkmanager.dispatcherScripts = [ { source = "path to script 1"; } { source = "path to script 2"; } ];
ll /etc/NetworkManager/dispatcher.d/ gives:
lrwxr-xr-x 1 root root 53 Jan 21 00:20 01nixos-ip-up -> /etc/static/NetworkManager/dispatcher.d/01nixos-ip-up
lrwxr-xr-x 1 root root 53 Jan 21 00:20 02overridedns -> /etc/static/NetworkManager/dispatcher.d/02overridedns
lrwxr-xr-x 1 root root 56 Jan 21 00:20 03userscript0001 -> /etc/static/NetworkManager/dispatcher.d/03userscript0001
lrwxr-xr-x 1 root root 56 Jan 21 00:20 03userscript0002 -> /etc/static/NetworkManager/dispatcher.d/03userscript0002
ll /etc/static/NetworkManager/dispatcher.d/ gives:
lrwxr-xr-x 1 root root 57 Jan  1  1970 01nixos-ip-up -> /nix/store/as1jk3pfb5ldhdfpkd0dqfv01yr15ak1-01nixos-ip-up
lrwxr-xr-x 1 root root 57 Jan  1  1970 02overridedns -> /nix/store/ma4242p8r8ffvbwjavkg1q8yk60gyhzx-02overridedns
lrwxr-xr-x 1 root root 60 Jan  1  1970 03userscript0001 -> /nix/store/jsydpkqrfbywb20w93f34yzddq9ln2p9-etc-unnamed-12.9
lrwxr-xr-x 1 root root 61 Jan  1  1970 03userscript0002 -> /nix/store/0y91ndjiiy16i9mhvwlf572zgn44fa2b-etc-unnamed-12.10
ll /nix/store/as1jk3pfb5ldhdfpkd0dqfv01yr15ak1-01nixos-ip-up gives:
-r-xr-xr-x 1 root root 230 Jan  1  1970 /nix/store/as1jk3pfb5ldhdfpkd0dqfv01yr15ak1-01nixos-ip-up
However, ll /nix/store/jsydpkqrfbywb20w93f34yzddq9ln2p9-etc-unnamed-12.9 gives:
-r--r--r-- 1 root root 62 Jan  1  1970 /nix/store/jsydpkqrfbywb20w93f34yzddq9ln2p9-etc-unnamed-12.9
The latter does not have the executable flag set. Am I doing or thinking wrong or is it actually wrong?

The script has to be executable in the first place. You can take overrideNameserversScript as an example:
overrideNameserversScript = writeScript "02overridedns" ''
# ...
'';

The secret source here is to use: writeScript

Hmm, sorry, I still do not quite get this.
My scripts are executable and are working fine if I explicitly create symbolic links to them in the dispatcher.d folder.
I thought I could have a complete script ready to just give the path to 'source'. Do I need to define the script's source code in my configuration.nix?
When trying to do in a similar manner as the overrideNameserversScript and uses that as the value for the attribute 'source', I just get:
error: undefined variable ‘overrideTestScript’
I googled a bit but could not find how to solve this.

you can also leave the scripts where they are and use:
overrideNameserversScript = writeScript "02overridedns" (builtins.readFile "/path/to/script");

Sorry for the late reply.
Do you really mean that I should add my stuff to the existing 02overridedns script? I prefer not to do that since my stuff has nothing to do with DNS.
Anyhow, here is how I solved it. You are very welcome to give me feedback. I suspect there is a simpler way of doing it.
I added this to my configuration.nix
{ config, pkgs, lib, ... }:

let
  wwan-upScript = pkgs.writeScript "wwan-up" (builtins.readFile "/home/mikael/Scripts/ModemManager/dispatcher.d/wwan-up");
  wwan-downScript = pkgs.writeScript "wwan-down" (builtins.readFile "/home/mikael/Scripts/ModemManager/dispatcher.d/wwan-down");
in
{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];
...
  environment.etc = with config.networking.networkmanager.basePackages; [
    { source = wwan-upScript; target = "NetworkManager/dispatcher.d/wwan-up"; }
    { source = wwan-downScript; target = "NetworkManager/dispatcher.d/wwan-down"; }
  ];
...

I could of course have used only one script instead of two. Maybe I will change that.

Hi,
It would be great if you could answer my question, thanks.
Kind regards,
Mikael

Hi,
I a had a similar hardship to setup dispatcher scripts, but modifying mikael-andersson code I solved it in a slightly different way:
Since I am newbie (just switched from Gentoo) please take it with a grain of salt.
{ config, pkgs, ... }:

let synergy_dispatcher = (builtins.readFile /etc/nixos/scripts/attila-notebook/dispatchers/synergy_client.sh);
in
{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];
...
networking = {
    wireless.enable = false; # disable wpa supplicant in favor of network manager
    networkmanager = {
      enable = true;
      dispatcherScripts = [ { source = synergy_dispatcher; } ];
    };
...

It works for me fine.
The effect:
A symbolic link become available at /run/current-system/etc/NetworkManager/dispatcher.d
which refers to my script in /nix/store
which has the permision: 444 So it is not executable. but still works
And I agree: Extending the included 02overridedns script to "append" other scripts is exactly the same kind of dirty fix, which I never want to do again in my systems, this is the very reason why I switched to NixOS.

Is the issue resolved?

I do not know. Unfortunately I have not been using NixOS for quite a while. Any comments from @AttilaVM who seems to have poked with this most recently?

Looks like he solved it so. So let's close this.


CMake toolchain files are not indexed/recognized by the extension

I'm assuming this issue belongs here, based upon the [Unspecified] option in the drop-down menu.

[Unspecified] Unspecified (Let CMake guess what compilers and environment to use)

Expected Behavior:
I don't care to see this drop-down menu when I have a toolchain file specified in my repository.

We can take this as a feature request, though I'm uncertain at this time how we would detect that your repo is already configured with a toolchain.  Is the drop down showing up more than once for you or is it just a one-time thing for a new repository?

It has been a while since I made this post, but I believe it is every time.

I just confirmed, it is every time I open the folder.


TypeError: styles.makeStyles is not a function

I am using Material-UI v5.0 beta and mui-datatables is not completable yet with this version. Getting the following error. Could you please update the packages to make it compatible? Thank you so much!
TypeError: styles.makeStyles is not a function
./node_modules/mui-datatables/dist/index.js
src/components/TableBodyCell.js:6
  3 | import TableCell from '@material-ui/core/TableCell';
  4 | import { makeStyles } from '@material-ui/core/styles';
  5 |
> 6 | const useStyles = makeStyles(
  7 |   theme => ({
  8 |     root: {},
  9 |     cellHide: {

Tech
Version

Material-UI
"@material-ui/core": "^5.0.0-beta.1

"@material-ui/icons"
^4.11.2

@material-ui/lab
^5.0.0-alpha.40

@material-ui/styles
^5.0.0-beta.1

@material-ui/utils
^5.0.0-beta.0

MUI-datatables
^3.7.7

React
^17.0.2

Same issue here.

Facing the same issue as well. Any updates on this?

Same issue here. Any updates ?
import { Button, makeStyles } from '@mui/material'
const useStyles = makeStyles((theme: { spacing: (arg0: number) => any; }) => ({
container: {
padding: theme.spacing(4),
display: "flex",
justifyContent: "flex-end",
gap: theme.spacing(1)
},
}))
const classes = useStyles()
Error:
const useStyles: never
This expression is not callable.
Type 'never' has no call signatures.ts(2349)

I tried importing it as "@mui/styles"

Same issue

Guys, makeStyle is deprecated in v5, try to use: styled() or that solution tss-react


User analytics page - UserView show case recommendations from ListRecommendations API on UI

Showcasing recommendations for each deployment selected by the user. This would call ListRecommendation API

@rbadagandi The User Analytics view had been created and is hidden in the current ui. We can close this issue


missing callback if error returned

Right now the after_save and other related callbacks are cancelled if an error is returned.  This creates an issue if we are trying to catch these situations and act on them in our models.
For example, I'd like to call this after attempting to save in Rails 5:
 def check_for_errors
    if self.response_errors.any?
      self.response_errors.each do |attribute, errors|
        errors.each do |error|
          self.errors.add(attribute, error)
        end
      end
    end
  end

to convert the response_errors into Rails errors but cannot because of this issue.

For anyone else curious, I'm overriding the save method based on a method provided in #178 using a concern:
module Her
  module Overridable
    extend ActiveSupport::Concern

    def save
      callback = new? ? :create : :update
      method = self.class.method_for(callback)

      run_callbacks :save do
        run_callbacks callback do
          self.class.request(to_params.merge(:_method => method, :_path => request_path)) do |parsed_data, response|
            load_from_parsed_data(parsed_data)
            add_errors_to_base if @response_errors.any?

            return false if !response.success? || @response_errors.any?
            changes_applied
          end
        end
      end

      self
    end

    private

    def add_errors_to_base
      @response_errors.each do |attr, messages|
        [*messages].map { |msg| self.errors.add(attr, msg) }
      end
    end
  end
end

which is placed in concerns/her/overridable.rb and calling it in my models like such:
class Site
  include Her::Model
  include Her::Overridable

Not the best solution since it will break if the save method changes, but it does work.

You could try following #101 and see if that helps. The method's been renamed as store_response_errors


Make note that SWAPI will be not possible without Alan Dean Foster & George Lucas

I think it is worth noting these two people who gave an amazing foundation for creating SWAPI. Without a doubt, without their contribution to the world, it would not have been possible to create SWAPI.

IMO both dudes got enough recognition and attribution for making their fictious universe a mainstream. However there are hundreds mode people involved into it, and swapi - is a great tribute to all of them, not just abovementioned two.
Suggestion: close the MR


fix: add xcb library

Add missing xcb-util-cursor library during build process for linux platform

I'm modifying this PR as the xcb library is not correctly bundled yet.
( PR Currently on WIP )


Add state jacobian

So, it turns out, many algorithms will inherently need access to the jacobian of the abstract plus() operation. For Lie groups that use the exponential map, it turns out this is exactly the "group Jacobians" we are already familiar with. However, for something like, say, the CompositeState, this is a little more abstract. Nevertheless, here it is!
As a TODO, the IteratedEKF needs to be updated to take advantage of this. It currently assumes the jacobian to be identity.
Also, i have added a finite-difference version to the abstract state class, which can be used as both a test and a default implementation

Recommend integration tests that use the new jacobians. As commented on the other PR, useful to a) See that there's no weird bugs in interactions with other functions b) See exactly what the usage is.
Both for the left and right jacobians.

The IEKF has now been modified to use this jacobian


Font-end for Advanced Search Criteria #50

Font-end for #50

@Geoskar do you to grab this? Or should I?

I will do it man today or tomorrow


There is no way to change Login Url when using UseIdentity()?

Is there no way to change login url when using UseIdentity()? It always redirect to "Account/Login". This is very inconvenient. Please advise. Thanks

In ConfigureServices() something like this:
services.Configure<CookieAuthenticationOptions>(options =>
{
    options.LoginPath = new PathString("/login");
});

This will likely be addressed in a PR that's coming soon as we are exposing the individual cookie options.  It will look something like
 options.Cookies.AppliationCookie.LoginPath = new PathString("/login");

2113ef5abcb64bf1c49d8485bcfae45b703f4b78

Note to others looking at this as it is not evident but
this worked in beta7 and is no longer how you set the login path.
services.Configure<Microsoft.AspNet.Authentication.Cookies.CookieAuthenticationOptions>(options =>
            {
                options.LoginPath = new Microsoft.AspNet.Http.PathString(loginSafe);
            });

This seems to work for setting the login path
            services.Configure<IdentityOptions>(options=>
            {
                options.Cookies.ApplicationCookie.LoginPath = new Microsoft.AspNet.Http.PathString(loginSafe);
            });

@runxc1 Thanks for the tip.
Now I see that Identity team removed the Notifications, and then I cannot access to OnApplyRedirect. Do you have any idea how to get this back?
Thanks!

@kennyrulez can you get to that property from the IdentityOptions?
 services.Configure<IdentityOptions>(options=>
            {
                    options....

@runxc1 nope. Does not exist anymore...


[FEAT] pull to refresh

Is your feature request related to a problem? Please describe.
Trying to make a home feed with your pager. Is it possible to add a refresh control when you try to drag down from page 1?
Describe the solution you'd like
UIRefreshControl above the pager when pulling down from page 1
Describe alternatives you've considered
Tried many hacky ways to do some "onPageChanged" refresh
Additional context
Let me know what you think. I tried searching your closed pull requests and issues but couldn't find anything related to this. (Building on iOS 13.7, project is mostly SwiftUI)
Also
Thanks for always being so responsive!! You're awesome :o

Hi @yyl0 , thanks for the kind words.
I’m trying to think of what you need, it doesn’t seem something generic at first glance but rather something specific to your use-case.
So say you have a horizontal Pager. You’d like a UIRefreshControl on pull down. Shouldn’t this be part of your page? I meant this:
Pager(...) {
    MyPage() // has a UIRefreshControl off the screen `.offset(...)`
        .gesture(
            DragGesture()
         )
         .onChanged {
             // modify offset if your page
         }
}

I can’t modify the page itself and add elements to it. Pager merely serves as an indexed scroll.
Let me know your thoughts.

Thanks for the fast response! I will try that.

worked fine ! thanks @fermoya


Fixed broken link

This PR solves the issue https://github.com/kubernetes/website/issues/40042 , where Mounted Secrets are updated automatically link does not refer to this topic. it is referring to the whole Secret page again. I changed the link to route it towards the topic using secrets as files from a pod

@rghdrizzle : I appreciate that you've fixed it on one page. However per the comment by @sftim on the issue, there are potentially a few more pages that have the wrong subsection linked and might need to be changed. Ideally, I'd have liked it to be one issue addressing all the pages. However, since that's not possible now, would you/@NitishKumar06 be open to opening up a new issue for tracking that change?


No progress shown when network is slow

Using a slow network connection (but not terrible, between 3-8 Mbps down, 0.75-1 Mbps up), with 29 devDependencies & 4 dependencies, I measured a wait time of 30 seconds with no visual indication of progress.
Consider something to let the user know Things Are Happening™. Could be very simple, or a package like https://www.npmjs.com/package/cli-progress

Great idea, I'll try to add this at some point when I have some free time.

Made some progress on this today.  Just want you to know I am planning on finishing this, I've just been pretty busy lately!

Just gave it a try, very nice, thanks @mskelton!!! 👍👍


Remove clouds for double the FPS

When I open 3 instances, on the UI menu (host/join) I get 106-120 FPS on each instance.
Once I remove the 16 cloud instances and the AABB movement of the clouds, I get 204-212 FPS
Since this is a demo for netfox, I think the clouds should be removed OR keep very few. I find them useful for example, because I didn't know about aura mesh, which I will use for a smoke grenade of sorts. Anyway, low FPS for a demo is just worrying for any new user, because it makes the new users think its the netfox plugin instead of the scene setup.

Hi @TheYellowArchitect,
I'm not sure I follow what's the issue, since based on your report, the example game runs at 100ish fps in three instances, which sounds pretty ok since 60Hz displays are the most common afaik.
 So I think the example game is in a good balance here, but I'd like to stress that I'm open for discussion on this.

the example game runs at 100ish fps in three instances, which sounds pretty ok since 60Hz displays are the most common afaik.

Low-end pcs won't have 100 FPS with 3 or 4 instances, but lower. My pc isn't high-end, but I assume a thinkpad laptop would get sub-60 FPS.

but also having a demo that looks bland / ugly

I agree. Filmic tonemap (below)

is superior to linear tonemap (below)

But this doesn't mean you can't strike a balance with both. The clouds being AABB is overkill. They don't enter the game area at all, so there is no reason to have volume. Could be billboard sprites. The clouds alone are heavier than the entire netfox code logic, and that is injustice to this addon.
Like, I cannot believe I found this randomly. I was planning to make my own state rollback engine, thinking it would take a month, but reading the code (e.g. latency compensation), I realize I would fall in many pitfalls I never considered. I am still reading the logic (and will be reading) as I plan to start using this next month for my game (tl;dr: topdown scifi but with rare timetravel via rollback), and the demo initially looks underwhelming to the new user who hasn't seen the code. Also no video series or anything intuitive, so the demo must shine. Seeing around 100 FPS on such a basic scene is just bad first impressions :(
Anyway, kinda went off-topic there. To return on-topic, tl;dr: I suggest transparent billboard cloud sprites, same visual results, higher FPS.

The clouds are not AABB's - there's a cloud area script that moves the clouds around in an AABB, making sure to respawn them at the other end as they exit. The reason for that is to easily adjust the cloud area from the editor.

You are right, I just checked :+1:
No idea why AuraSphereMesh tanks the framerate so hard, ah well it's outside the scope of this project

I'm also dogfooding with netfox and building my own game on top of it 🙂 I'm planning to put that game on hold a bit soon to apply some upgrades to netfox.

idk what dogfooding is, but I'm glad to hear it. The main reason open-source projects created by a single person die, is when the creator does not benefit from them, aka does not use them or wants them improved. Godot is the obvious example (initially a recycleable game engine) but there are so many others. Generally I'm happy to hear this is still getting attention from its very creator, as it's already complete and functional :)

Could you please elaborate on this?

The FPS issue mostly xaxaxa
Also, the rollback is not obvious to the user, e.g. RTT and other tags aren't intuitive, as in, it's not clear what they are until some1 looks at the code. This can be solved by a tooltip or full-name. As for rollback, I guess have a phantom VFX, ala symphony of the night? It would highlight visually. Though not sure on this, haven't yet got into the part where there is a literal state rollback on the client-side
For the "instant local action" part (prediction), a bomb is required for example to be crystal clear to the user (even at 100+ ms its instant!),  and even jumping isn't intuitive since the game is top-down and there is no spacebar prompt

It would be a shame if there was no documentation, especially one that goes through concepts, guides for major systems, and even some tutorials to get started 🙂

I never said there is no documentation. What exists is surely appreciative (I wouldn't use netfox if I saw there is no documentation)
Even having read the existing documentation, I am not confident enough to make my own tweaks on it (rollback while a game is going on, basically dynamic replay system) or implement netfox as is on my game (even with documentation, I do not know how to rollback a destroyed projectile)
I have to admit I am spoiled because I came from snopek's rollback addon https://www.youtube.com/watch?v=zvqQPbT8rAE&list=PLCBLMvLIundBXwTa6gwlOUNc29_9btoir
Previous framework I used to release a game on steam was https://github.com/BeardedManStudios/ForgeNetworkingRemastered which had this video-guide https://www.youtube.com/watch?v=feLUmzaogCk&list=PLm1w78-UUlMIi5Vfwy6ckJQIQMHMT-QS5&index=3
Generally, video-guides (atop documentation for specific stuff) are great to get started and avoid some trial&error.
Anyway, I know it takes time to create these, but it would attract tons of users. Think of Jolt, it wouldn't be "the default 3D physics engine" if not for the multiple videos reporting the insane performance gains (and no jitter), alongside multiple installation guides.

I thought of this more. The solution is simple. When the label value hits the cap (240), append the string "(Capped)"
So the label value doesn't show "240" but "240 (capped)" and that's it.

No idea why AuraSphereMesh tanks the framerate so hard, ah well it's outside the scope of this project

From what I've found, it's probably a combination of polycount and overdraw. I suspected proximity fade on the material too, but that did not have much effect.

idk what dogfooding is, but I'm glad to hear you are using netfox.

It's just that :slightly_smiling_face: Dogfooding is using your own product.

I lost months of work as that netcoding framework got archived by its creator... So I'm beyond happy to hear this is still getting attention from its very creator

Really sorry to hear about that :disappointed: Yeah, netfox is guaranteed to get attention for this year, as I need it to finish my game! Probably more, since I don't intend to abandon the addon, and there's also more games I plan to build with it.

Also, the rollback is not obvious to the user, e.g. RTT and other tags aren't intuitive, as in, it's not clear what they are until some1 looks at the code

Yeah, these were built with the expectation of the user already being somewhat familiar with networking, and they are looking for a higher level solution. Hence no explanation on what RTT is, as I expected the target audience to be familiar with it. Same for rollback. But it's also true that less experienced people can also engage with the addons. Let's see if this comes up with more people too - if there's a need from potential users, a toggleable history visualization mode can work.

Even having read the existing documentation, I am not confident enough to make my own tweaks on it (rollback while a game is going on, basically dynamic replay system) or implement netfox as is on my game (even with documentation, I do not know how to rollback a destroyed projectile)

You're always welcome to post a question under the Discussions tab if you get stuck with something! I still don't follow tho, is there something you did not find in the documentation? Is something missing? Even if there were video tutorials, they would contain the same info as the docs, just in a different format.

I have to admit I am spoiled because I came from snopek's rollback addon

Thanks for mentioning Snopek! I've seen his addon while researching, I'm not even aware of any other alternatives to his work.

Even having read the existing documentation, I am not confident enough to make my own tweaks on it (rollback while a game is going on, basically dynamic replay system)

still don't follow tho, is there something you did not find in the documentation? Is something missing?

I want this https://www.youtube.com/watch?v=VOas6EFJ9X4&pp=ygUJY2hyb25vY2Ft but online/realtime.
The above also requires rollback on animation tree/player, and sound effects.
Also, for all rollback ticks which are considered old and to delete, to instead store them in a byte array (both input, and states)
Anyway, still experimenting, hacking away at code :P


Feature/improvements

[x] Improve dataset processing with :ets
[x] Fix report timeout
[x] Improve report exporter with streams
[x] Update readme and config files
[x] Update dependencies

Local comparison between dataset as list and :ets

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


Add caching for geocoding requests

Is your feature request related to a problem? Please describe.
We are doing the import of the eak data once a week. With #439 we introduce geocoding which needs lots of requests to our geocoding backend, which needs lots of time and resources.
Describe the solution you'd like
Since the data and therefore the responses in our geocoding backend is mostly static, we could introduce client side caching to reduce the necessary time and resources needed to sanitize the data.
Options

Manual caching with a cache dir (was implemented partially already but removed here again https://github.com/digitalfabrik/ehrenamtskarte/pull/439/commits/0507bbef71c61f49c322c14447cc016c69750bb6)
Implement the following interface: https://api.ktor.io/ktor-client/ktor-client-core/io.ktor.client.plugins.cache.storage/-http-cache-storage/index.html
Move the caching to the database

Things to keep in mind

Maximum cache size (max. files and max. size in bytes)
Invalidation
Handling errors like: Out of Storage, No permission etc.
Safe file names (no special characters)

See discussion:
https://github.com/digitalfabrik/ehrenamtskarte/pull/439#discussion_r782013444

Closing because the geocoding finishes within 1-3 minutes on the server.


CentOS-HPC 7.9 Image availability

Hi,
as CentOS 7.9 is the final and long-term CentOS7 release, I'm asking to also provide CentOS-HPC 7.9 image.
Q: Is this the correct project to ask about CentOS-HPC Images or is it rather the openlogic https://github.com/openlogic/AzureBuildCentOS repo?

Hi @tbugfinder !
Yes, this is the correct venue. 😃
At https://github.com/openlogic/AzureBuildCentOS , we can only build the CentOS-HPC images for the CentOS versions that the https://github.com/Azure/azhpc-images project provides support for.

@tbugfinder : Could you also provide your view on how you're looking at 7.9? Is it "long-term", or simply a short-term migration from 7.x to 7.9 while awaiting where the ecosystem moves to? In other words, would 7.9 be a replacement for other 7.x VMI for you?

@vermagit
We'll migrate onprem to 7.9 and would require 7.9 environment within Azure, too. Ideally cloud show be even ahead of onprem. As 7.9 is "supported" for several months, this is a mid-term :-) decision while we are indeed figuring out next major OS upgrade.
Personally, I'm in favour of rocky-linux 8.x.

I'd like to add some emphasis to this request.
Any chance to get a pre-built HPC image?

@tbugfinder We're considering the path ahead, and at the moment, it is aligned with yours as expressed above.
As a data point, where would you be migration from, to 7.9? In other words, could 7.9 be a substitute for 7.8, say?

In our case 7.9 can certainly replace 7.8.

Hi @anshuljainansja ,
your CentOS7.9 changes got integrated into the repo. Is it ready to build CentOS 7.9 Images?
FYI: @N3WWN

@tbugfinder Indeed, we are now initiating working towards a 7.9 going forward.

@tbugfinder  @N3WWN
I am testing the new ks file for Centos79-hpc. Will add the new ks file to the AzureBuildCentOS repo once done.

Is there any estimated release date?

ETA close to end of month right now due to some publishing delays.
Anyway, the docs will be updated: https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/hpc/configure#vm-sizes-supported-by-the-hpc-vm-images
and so will the linked blog post: https://techcommunity.microsoft.com/t5/azure-compute/azure-hpc-vm-images/ba-p/977094


"'EmptyConstraint' object has no attribute 'allows'" when dealing with SQL Alchemy

Package ecosystem
Poetry
Package manager version
Poetry version 1.1.7
Language version
Python 3.9.6
Manifest location and content prior to update
/pyproject.toml and /poetry.lock
lds-data-redactor.tar.gz
dependabot.yml content
dependabot.yml.tar.gz
Updated dependency
N/A
What you expected to see, versus what you actually saw
Dependabot should run without issue on the files above.
Native package manager behavior
poetry lock runs fine, and updates packages fine, including SQL Alchemy itself.
🕹 Bonus points: Smallest manifest that reproduces the issue
This file should do it:
[tool.poetry]
name = "PROJECT"
version = "0.1.0"
description = ""
authors = ["NAME <USER@HOST>"]
license = "LICENSE"

[tool.poetry.dependencies]
python = "^3.9"
SQLAlchemy = "*"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

I attempted to work around the issue by changing the package name to all lowercase sqlalchemy in pyproject.toml, but that didn't help.

👋 Sorry for the slow followup here... Is this still happening? Do you have a traceback or logs from the failing job?

Too late, I'm no longer on this project. Closing.

Actually I think I might see the issue... We should test with the wildcard constraint as I suspect we don't account for that.


Exporting array to Excel

function exportData() {
alasql("SELECT * INTO XLSX('cities.xlsx',{headers:true}) FROM ? ",[data]);
}
can we give a save as option while exporting to excel. and when the data got exported to excel when a file is opened there is prompt saying "we found a promblem in .xlsx file do you want to recover as much as can?if you trust the workbook , click yes". how can i avoid this

We have not found a fix for this:-/


Debian packaging

Hi, I've been trying out efihelper on my Debian system and have made a few tweaks which may be of interest?

Fix to EFISTUB support - it was inserting a literal $1 into the initramfs path instead of the kernel version
Hook for initramfs to copy over the kernel and initrd again when they are rebuilt and new update mode to support it
Remove empty version directory when removing EFISTUB files
Hide efibootmgr output
Fixed some space/tab inconsistencies
Don't recreate the hooks if they already exist (needed for next item!)
debian/ directory so it can be packaged to a .deb file

Thanks!

Thank you for your contribution <3


Merge commit label should be removed automatically

When someone pushes merge commits, the merge commits label is added. But when they then push those merge commits away, the label is not removed, making it more annoying for the author or the reviewer to remove it. This is something that could and should be automated too.
cc @pitaj

Also if possible minimize the previous comments about the removed merge commits.


pull

Thanks. Please use updated version
This repo is outdated and not supported anymore. Core contributors moved development to the new repo:
https://github.com/matter-labs/web3swift
Feel free continue discussion in the new repository.


Tooltip mode x on pie chart gives error

Expected behavior
The library lets me add scales and tooltip mode X on a pie/doughnut chart... which is odd in the first place.
If I don't get a compilation error when using TS, I would at least expect it to fail silently and do nothing. Instead I get console errors.
I also tried to use the chart as:
chartOptions: ChartOptions<'pie'> = { ... }

hoping to get some useful compilation errors for properties that don't make sense to be applied on a pie chart, but I run into this bug instead: https://github.com/chartjs/Chart.js/issues/10896
Current behavior
Errors in the console:
Uncaught TypeError: t[a] is not a function
at chart.umd.js:13:36114
at Hi (chart.umd.js:13:34956)
at Ui (chart.umd.js:13:36090)
at x (chart.umd.js:13:37004)
at An.getElementsAtEventForMode (chart.umd.js:13:98586)
at Va._getActiveElements (chart.umd.js:13:195021)
at Va.handleEvent (chart.umd.js:13:194589)
at Object.afterEvent (chart.umd.js:13:195693)
at d (chart.umd.js:7:1113)
at sn._notify (chart.umd.js:13:83179)
Reproducible sample
https://codepen.io/teodorachiosa/pen/OJeQQgj
Optional extra steps/info to reproduce

Hover over the chart in the reproducible sample
Check the console errors

Possible solution
No response
Context
We're working on a wrapper component over Chart.js which has a few look & feel customizations.
While testing the component out, we found that we can combine some properties even if they don't make sense (e.g. cartesian grid on pie/doughnuts charts).
chart.js version
4.4.3
Browser name and version
Chrome 127.0.6533.120
Link to your project
No response

You can combine properties because you can combine multiple chart types.
If you don't want this you can make it so that your wrapper component does not accept that kind of input.
In the version (4.4.4) that just got released it won't throw an error anymore.


Add Documentation for Programming Fundamentals

Description:
We are building a comprehensive set of documentation for Programming Fundamentals. This includes topics like Language Syntax, Control Structures, Functions, Object-Oriented Programming (OOP) Basics, and Pseudo Code. Each section should be documented in detail, with examples and key concepts clearly explained.
The following steps outline how contributors can set up the folder structure and write documentation for each of the topics listed below.
Project Structure:
The structure will include a main folder named fundamentals/, with subfolders for each section. Here's an example of how the folder structure should look:
docs/
└── fundamentals/
    ├── language-syntax/
    │   ├── variables.md
    │   ├── operators.md
    │   ├── functions.md
    │   └── ... (other topics)
    ├── control-structures/
    │   ├── If-else.md
    │   ├── switch.md
    │   ├── for-loop.md
    │   └── ... (other topics)
    ├── functions/
    │   ├── function-declaration.md
    │   ├── function-call.md
    │   ├── function-parameters.md
    │   └── ... (other topics)
    ├── opp-basics/
    │   ├── classes.md
    │   ├── objects.md
    │   ├── inheritance.md
    │   └── ... (other topics)
    ├── pseudo-code/
    │   ├── introduction.md
    │   ├── variables.md
    │   ├── operators.md
    │   └── ... (other topics)

Steps to Contribute:

Create Folder Structure:

Inside the docs/ directory, create a folder named fundamentals/.
For each of the categories listed below, create a subfolder (e.g., language-syntax/, control-structures/, functions/, etc.).
Inside each subfolder, create markdown files (.md) for each topic in the section.

Write Documentation:

Each .md file should include a concise explanation of the topic, syntax (where applicable), examples, and key points.
Follow this template for each topic:---
id: ___ <!-- Unique identifier for the route. -->
title: ___ <!-- Title of the topic. -->
sidebar_label: ___ <!-- Topic label for the sidebar. -->
sidebar_position: ___ <!-- Topic number for the sidebar. -->
description: ___ <!--  A short SEO-friendly description. No HTML tags. -->
tags: [___, __, ] <!-- Relevant tags for the problem. -->
---

## Overview
A brief introduction to the topic.

## Syntax
Provide the syntax or structure of the concept (if applicable).

## Example
Demonstrate the concept with examples.

## Key Points
- List any important notes or tips related to the topic.

Categories & Topics:

[ ] Language Syntax:

Topics: Variables, Operators, Functions, Loops, Conditionals, Arrays, Strings, Classes, Objects, Inheritance, Polymorphism, Interfaces

[ ] Control Structures:

Topics: If-else, Switch, For Loop, While Loop, Do-While Loop, Break, Continue, Return, Try-Catch, Throw, Finally

[ ] Functions:

Topics: Function Declaration, Function Call, Function Parameters, Function Return, Function Scope, Function Overloading, Function Recursion, Function Closures, Function Currying, Function Composition, Function Memoization

[ ] OOP Basics:

Topics: Classes, Objects, Inheritance, Polymorphism, Encapsulation, Abstraction, Interfaces, Abstract Classes, Composition, Delegation, Mixins

[ ] Pseudo Code:

Topics: Introduction, Variables, Operators, Functions, Loops, Conditionals, Arrays, Strings, Classes, Objects, Inheritance, Polymorphism

Commit Your Changes:

Once you have written documentation for a specific category or topic, commit your changes with a proper commit message.
Use the following format for commit messages:[Category] Add documentation for [Topic]
Example: language-syntax Add documentation for variables

Submit a Pull Request:

After committing your changes, submit a pull request with the title: Add [Category] Documentation.
In the description, mention the specific topics you worked on.

Expected Outcome:
By the end of this task, the project should have comprehensive, beginner-friendly documentation for the core programming fundamentals, covering language syntax, control structures, functions, and OOP principles.
Important Notes:

Keep the language simple and accessible, especially for beginners.
If contributing to multiple sections, feel free to do so in separate pull requests.

Need Help?:
If you have any questions or need guidance, feel free to comment on this issue or consult our CONTRIBUTING.md guide.
Thank you for contributing to the project! Your efforts help improve the learning experience for everyone. 🚀
📧 Contact
Have questions or suggestions? Feel free to reach out by opening an issue or connecting via GitHub Discussions.

Hey @ajay-dhangar ,
I am interested in this issue, can you assign it to me?

Hey @Ruksina01, thanks for your interest in this issue. You can work on any topic that interests you, but please focus on one topic at a time. Also, please mention which topic you'd like to work on, as selecting multiple topics may create complexity for both of us.

Hey @ajay-dhangar
I’m choosing to work on Language Syntax in C++, covering topics like Variables, Operators, Functions, Loops, Conditionals, Arrays, Strings, Classes, Objects, Inheritance, Polymorphism, and Interfaces. I’ll focus on one topic at a time.

Hey @ajay-dhangar I’m choosing to work on Language Syntax in C++, covering topics like Variables, Operators, Functions, Loops, Conditionals, Arrays, Strings, Classes, Objects, Inheritance, Polymorphism, and Interfaces. I’ll focus on one topic at a time.

Sure, @Ruksina01. You can go ahead and start working on this issue. Please let me know if you have any questions.

Hey @ajay-dhangar I’m choosing to work on Language Syntax in C++, covering topics like Variables, Operators, Functions, Loops, Conditionals, Arrays, Strings, Classes, Objects, Inheritance, Polymorphism, and Interfaces. I’ll focus on one topic at a time.

I think you need to work on the https://github.com/ajay-dhangar/algo/issues/550  issues because C++ language is on #550. This issue is based on fundamentals with all languages.

I am interested to contribute.

I am interested to contribute.

which topic

Documentation for fundamentals of programming, given it is not yet done. I am also interested in working on problems based on LLMs and NLP, Please suggest and share your views also.

I would like to work on Programming Fundamentals of Java. Kindly assign me this issue @ajay-dhangar

Hey @ajay-dhangar I’m choosing to work on Language Syntax in C++, covering topics like Variables, Operators, Functions, Loops, Conditionals, Arrays, Strings, Classes, Objects, Inheritance, Polymorphism, and Interfaces. I’ll focus on one topic at a time.

I think you need to work on the #550 issues because C++ language is on #550. This issue is based on fundamentals with all languages.

Yes, I can work with that issue in C++, can you assign that to me?

I would like to work on Programming Fundamentals.
Topics - OOPS Basics and Pseudo Code.
Kindly assign me this issue @ajay-dhangar

Documentation for fundamentals of programming, given it is not yet done. I am also interested in working on problems based on LLMs and NLP, Please suggest and share your views also.

sure you can work on this

I would like to work on Programming Fundamentals. Categories- OOP Basics. Kindly assign me this issue @ajay-dhangar I checked website and repository, I want to contribute to this website to help newbie programmers.

sure

Hey ,
I would like to contribute on the topic Pseudo Code since it has not been taken by anyone . Can you please assign me this issue under gsoc-ext ?


Can't bind to 'options' since it isn't a known property of 'ngx-gallery'.

on Angular ^5.0.1

Hi @sushrest pls give me more information: code example, angular version, gallery version etc. Maybe you can create example project or use plunker to reproduce it?
I need more info to help you.


Set nodeName for TestKubelet

This fixes #10036

/cc @dchen1107 @justinsb

lgtm. Thanks for the fix.

This time shippable really complains
# github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet
_output/local/go/src/github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/kubelet_test.go:96: kubelet.nodeName undefined (type *Kubelet has no field or method nodeName)
_output/local/go/src/github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/kubelet_test.go:208: kubelet.nodeName undefined (type *Kubelet has no field or method nodeName)
FAIL	github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet [build failed]

We reverted Justin's cl, which removes nodeName :-)

LGTM also - thank you so much for fixing my mistake.  I have #10057 running in testing, where I cherry-picked the commits of 9728 and added a similar/identical fix.

@yujuhong Thanks for the fixing, but @justinsb has patched his pr with the same fix as what you had here. I am closing this PR.


EVP_PKEY_get_utf8_string_param(): ensure the string is NUL terminated

A check is added to fail this function if the string buffer isn't
large enough to accomodate a terminating NUL byte.
Checklist

[x] documentation is added or updated
[x] tests are added or updated

Tests added for the updated behavior.

24 hours has passed since 'approval: done' was set, but this PR has failing CI tests.  Once the tests pass it will get moved to 'approval: ready to merge' automatically, alternatively please review and set the label manually.

Uhmmmm, @openssl-machine seems to misunderstand something...

4e92d5c79d501d09a978fd896c715da07902d8b7 EVP_PKEY_get_utf8_string_param(): ensure the string is NUL terminated
d68820d95634322108316f3051a1746ead88adaf Add tests for EVP_PKEY_get_utf8_string_param(), both positive and negative


added getObjectSize

The 'content-length' header is read from the response to determine the size. For some strange reason, some tiny files are showing negative values for the total bytes. This method can be used to handle such cases. It has been kept separate, as the user might only want to check the size and display it, allowing them to decide whether to download or not.
 try {
      final fileSize = await CloudFlareR2.getObjectSize(
        bucket: 'flightcanvas',
        objectName: 'tiles/us_tiles/$tiles',
      );

      if (fileSize <= 0) {
        throw Exception('Invalid file size: $fileSize');
      }

      await CloudFlareR2.getObject(
        bucket: 'flightcanvas',
        objectName: 'tiles/us_tiles/$tiles',
        pathToSave: filePath,
        onReceiveProgress: (received, total) {
          final progress = received / fileSize;
          final percentage = (progress * 100).clamp(0.0, 100.0);
          print(
              'Downloaded: $received of $fileSize bytes (${percentage.toStringAsFixed(2)}%)');

        },
      );

    } catch (e) {
      print('Download failed: $e');

    }

Looks good, I will merge and test


Trivia not accepting answers

As it says, the poketrivia is currently not accepting the correct answers.

I need a bit more information - is it all questions or specific ones?

Seems to be fixed.


Replace System.Data.SqlClient dependency with Microsoft.Data.SqlClient

See also https://devblogs.microsoft.com/dotnet/introducing-the-new-microsoftdatasqlclient/ - System.Data.SqlClient will not implement any new features, so Microsoft.Data.SqlClient should be used instead (current version is 1.1.0, version 2.0.0 is in preview)

So in summary:
Install package: https://www.nuget.org/packages/Microsoft.Data.SqlClient/
and use in the database target:
dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient"


Issue #9: gnupg type autorequires its user

Details in #9
Have run the following to check if I have introduced regressions:

rake test
rake beaker

All tests appear to pass.

Hey @TimAtLassian tnx for the commit. Yeah you are right it make sense to add that.


Forcemerge and deleted graph nodes

This plugin rocks! Thank you!
I have a question regarding graph nodes marked for deletion. From reading HNSW's Github issues, I understand that nodes are discoverable even if their neighbors are all deleted. However, I assume that the kNN recall would drop as the deleted nodes pile up. I'd want to periodically rebuild the graphs to maintain high recall.
The recommendation in OpenDistro documentation is to forcemerge to 1 segment. However, I don't want to do this since

the index should be read-only / not actively written to (according to the warning in ES documentation)
if the resulting segment is greater than 5 GB and nodes in the corresponding graphs later get marked for deletion, they will not be actually deleted as house keeping ignores segments > 5GB

Assuming the above points are correct,

Is a full merge required or will setting only_expunge_deletes to True achieve the same result? i.e, delete the marked nodes and "fix" links. I'm assuming no, since graphs are rebuilt only when segments are merged.
Is there a way to run forcemerge without the risk of ending up with a big segment that will be ignored during future merges?
If I dont force merge, will the graphs get rebuilt when ES "periodically" merges the segments? Unfortunately, I can't find much info about what "periodically" means. If I dont write to the index, but there are some deleted nodes, will the cleanup eventually happen?
Is it possible to estimate how much the recall will be affected as the number of marked nodes increase?

Hi @neo-anderson
Is a full merge required or will setting only_expunge_deletes to True achieve the same result? i.e, delete the marked nodes and "fix" links. I'm assuming no, since graphs are rebuilt only when segments are merged.

Your understanding is right. Graphs will be rebuilt when segments are merged or number of segments in a shard reach a particular threshold. In case of deletes, I think setting only_expunge_deletes seems like a good idea. You can define threshold beyond which expunge should be considered. I find this thread useful

Is there a way to run forcemerge without the risk of ending up with a big segment that will be ignored during future merges?

Possible. You can scale horizontally by adding more shards and this way you wont end up with huge shards and inturn huge segments.  Also you do not have to forcemerge to single segment, having around 5 segments per shard should be decent enough definitely at the cost of some latency.

If I dont force merge, will the graphs get rebuilt when ES "periodically" merges the segments? Unfortunately, I can't find much info about what "periodically" means. If I dont write to the index, but there are some deleted nodes, will the cleanup eventually happen?

Correct. Graphs get rebuilt when ES merges the segment.  To understand about merges, I find this blog useful

Is it possible to estimate how much the recall will be affected as the number of marked nodes increase?

Hard to determine as there are multiple variables here in terms of algo params. But if you are worried about delete docs, set the expunge threshold to a very low value, so that lucene would trigger merges. You may want to run some experiments to get an estimate.

If graphs are only rebuilt when segments are merged, what would happen when forcemerge is run with only_expunge_deletes ? Will it delete the marked nodes in each graph AND rebuild the graphs?
Also, do you think my concern of nodes marked for deletion impacting ANN recall is not valid? According to this post, search wouldn't be affected even if a lot of nodes are marked for deletion. If so, will recall of say top 10 neighbors also not be affected?

If graphs are only rebuilt when segments are merged, what would happen when forcemerge is run with only_expunge_deletes ? Will it delete the marked nodes in each graph AND rebuild the graphs?

only_expunge_deletes also triggers forcemerge on the segments that contain deleted documents over a certain threshold. New graphs would be constructed only for these segments with out deleted nodes/documents.

Also, do you think my concern of nodes marked for deletion impacting ANN recall is not valid? According to this post, search wouldn't be affected even if a lot of nodes are marked for deletion. If so, will recall of say top 10 neighbors also not be affected?

Recall could be impacted based on the percentage of deleted docs/nodes in the graph. Its hard to exactly determine the impact on recall. If the deleted nodes happen to be the nearest neighbors to the query, then recall could be impacted.
One solution for this problem is to consider large k, and have size attribute determine final neighbors. This way each segment would consider more neighbors and as a result you would still possibly end up with nodes that are behind the deleted nodes and closest to the query
For Example: If I would like to get 5 neighbors to my query, I would chose size=5 and k=a*5 (a>=1). magnitude of 'a' really depends on possibility of number of deleted docs. If your use case has higher number of deleted docs, then chose large a. Note, large 'a' does not have great impact on search latency. You may want to experiment at your side.
Query to retrieve 5 nearest neighbors would look something like
GET my-knn-index-1/_search
{
  "size": 5,
  "query": {
    "knn": {
      "my_vector2": {
        "vector": [2, 3, 5, 6],
        "k": 50
      }
    }
  }
}


Full Sort Option Support (Feature Request)

I have what I hope is a "quick win" of a feature request. Currently the only sort hotkeys are Date, Priority, Assignee, and Name. It'd be great to have the others (Date added, Project, and "Default") supported with keybindings too, as well as an option to toggle ascending/descending sort (if possible). Probably a low priority feature, but I would certainly find it valuable!

That would be cool!  In retrospect something kinda like the g navigate shortcut would be nice - something that pops open the sort menu and shows which keys to press for the different sorting options.
No plan to work on it anytime soon unfortunately.


Lifx Z aiolifx errors

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.43.0
Python release (python3 --version):
Python 3.4.2
Component/platform:
light.lifx
Description of problem:
Lifx Z won't update sometimes
Traceback (if applicable):
17-04-22 18:02:05 ERROR (MainThread) [homeassistant.core] Error doing job: Exception in callback _SelectorDatagramTransport._read_ready()
Traceback (most recent call last):
  File "/usr/lib/python3.4/asyncio/events.py", line 120, in _run
    self._callback(*self._args)
  File "/usr/lib/python3.4/asyncio/selector_events.py", line 932, in _read_ready
    self._protocol.datagram_received(data, addr)
  File "/home/hass/hass/deps/aiolifx/aiolifx34.py", line 556, in datagram_received
    response = unpack_lifx_message(data)
  File "/home/hass/hass/deps/aiolifx/unpack.py", line 225, in unpack_lifx_message
    message = MultiZoneStateMultiZone(target_addr, source_id, seq_num, payload, ack_requested, response_requested)
  File "/home/hass/hass/deps/aiolifx/msgtypes.py", line 462, in __init__
    ack_requested, response_requested)
  File "/home/hass/hass/deps/aiolifx/message.py", line 43, in __init__
    self.packed_message = self.generate_packed_message()
  File "/home/hass/hass/deps/aiolifx/message.py", line 46, in generate_packed_message
    self.payload = self.get_payload()
  File "/home/hass/hass/deps/aiolifx/msgtypes.py", line 472, in get_payload
    payload += "".join(little_endian(bitstring.pack("16", field)) for field in color)
TypeError: sequence item 0: expected str instance, bytes found
17-04-22 18:02:05 ERROR (MainThread) [homeassistant.core] Error doing job: Exception in callback _SelectorDatagramTransport._read_ready()
Traceback (most recent call last):
  File "/usr/lib/python3.4/asyncio/events.py", line 120, in _run
    self._callback(*self._args)
  File "/usr/lib/python3.4/asyncio/selector_events.py", line 932, in _read_ready
    self._protocol.datagram_received(data, addr)
  File "/home/hass/hass/deps/aiolifx/aiolifx34.py", line 556, in datagram_received
    response = unpack_lifx_message(data)
  File "/home/hass/hass/deps/aiolifx/unpack.py", line 225, in unpack_lifx_message
    message = MultiZoneStateMultiZone(target_addr, source_id, seq_num, payload, ack_requested, response_requested)
  File "/home/hass/hass/deps/aiolifx/msgtypes.py", line 462, in __init__
    ack_requested, response_requested)
  File "/home/hass/hass/deps/aiolifx/message.py", line 43, in __init__
    self.packed_message = self.generate_packed_message()
  File "/home/hass/hass/deps/aiolifx/message.py", line 46, in generate_packed_message
    self.payload = self.get_payload()
  File "/home/hass/hass/deps/aiolifx/msgtypes.py", line 472, in get_payload
    payload += "".join(little_endian(bitstring.pack("16", field)) for field in color)
TypeError: sequence item 0: expected str instance, bytes found

Additional info:

Thanks for reporting this. Unfortunately, I do not have a LIFX Z to test but the problem seems obvious from the traceback. Can you test the change in frawau/aiolifx#6 ?

I've tested the new library for a couple of hours and I haven't got any problem.
Thanks

Cool, thanks for sharing 👍


Not possible to run fastlane - dependency aws-sdk-ruby error - aws new version is ready!

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
Just executing fastlane fails. Not on all my projects but one after one they start failing.
It is because of this aws-sdk-ruby error https://github.com/aws/aws-sdk-ruby/issues/2327
(https://github.com/aws/aws-sdk-ruby/issues/2330) with was fixed yesterday. It was introduced in aws-sdk-ruby 1.33.0 but fixed in 1.34.1.
I can't figure out if I could do anything locally that would fix it or it requires a new fastlane release?
Command executed
bundle exec fastlane

Complete output when running fastlane, including the stack trace and command used

$ bundle exec fastlane
[✔] 🚀
Traceback (most recent call last):
19: from C:/tools/ruby26/bin/fastlane:23:in <main>'         18: from C:/tools/ruby26/bin/fastlane:23:in load'
17: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/bin/fastlane:23:in <top (required)>'         16: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in take_off'
15: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/commands_generator.rb:33:in start'         14: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane.rb:38:in load_actions'
13: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/actions/actions_helper.rb:93:in load_default_actions'         12: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/actions/actions_helper.rb:93:in each'
11: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/actions/actions_helper.rb:94:in block in load_default_actions'         10: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/actions/actions_helper.rb:94:in require'
9: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/actions/s3.rb:2:in <top (required)>'          8: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/actions/s3.rb:2:in require'
7: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/helper/s3_client_helper.rb:1:in <top (required)>'          6: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/fastlane-2.149.1/fastlane/lib/fastlane/helper/s3_client_helper.rb:1:in require'
5: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/aws-sdk-s3-1.67.1/lib/aws-sdk-s3.rb:8:in <top (required)>'          4: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/aws-sdk-s3-1.67.1/lib/aws-sdk-s3.rb:8:in require'
3: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/aws-sdk-kms-1.34.0/lib/aws-sdk-kms.rb:13:in `<top (required)>'
     2: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/aws-sdk-kms-1.34.0/lib/aws-sdk-kms.rb:13:in `require_relative'

     1: from C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/aws-sdk-kms-1.34.0/lib/aws-sdk-kms/client.rb:27:in `<top (required)>'

C:/tools/ruby26/lib/ruby/gems/2.6.0/gems/aws-sdk-kms-1.34.0/lib/aws-sdk-kms/client.rb:27:in `require': cannot load such file -- aws-sdk-core/plugins/http_checksum.rb (LoadError)

Environment
fastlane env fails as well but I have manually include some details

fastlane version: 2.149.1
ruby 2.6.3p62 (2019-04-16 revision 67580)

Ping @joshdholtz

Manually adding gem "aws-sdk-kms", ">= 1.34.1" to Gemfile and bundle update to update the Gemfile.lock file seems to do the trick.


Update to latest HTTP Working Group spec

The latest version of the spec is quite a bit different:

https://www.ietf.org/archive/id/draft-ietf-httpbis-message-signatures-08.html
https://httpsig.org/

I'm trying to use this with a js library (https://github.com/dhensby/node-http-message-signatures/), but can't since the specs don't agree.
I can try to work on a PR if I have time, but wanted to check in and see if this project was still maintained and if you'd be open to supporting the newer spec.

/cc @msporny

+1 to upgrading to the latest spec. It'll be up to @pda if he wants to accept a new PR (and what it should entail), there is quite a bit that's new in the RFC (and it's a good idea to implement the "new stuff").
Thanks for volunteering to attempt an update PR @timkelty. I suggest it should be done as a breaking major change (v5.0.0) with a complete shift over to the new spec (no need to provide backwards-compatability since everything up to the v4.0.0 release supported the older specs)... but again, defer to @pda on the right way to do this.
/cc @jricher

@pda let me know what you think, and if this project is still considered "active" on your end.
I moved on from 99designs and PHP about seven years ago, so I'm afraid there won't be any input from myself.
Based on the five years since last commit, I suspect there's no internal usage of this anymore within 99designs.
Best hope is probably somebody else forking it.

+1 to upgrading to the latest spec, which is now an official IETF RFC:
https://www.rfc-editor.org/rfc/rfc9421.html

Wow, I had missed that.
Congratulations @msporny, epic work over many years 👌🏼
I think an open standard for signing HTTP is really important, so it's great to see it out there.

Thanks @pda – I'll work on a fork and post here


replace raise StopIteration with return pep-0479

Needed for python 3.7 compatibility

Codecov Report

Merging #779 into master will not change coverage.
The diff coverage is 50%.

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


Bug with selections and what might be a caching issue with atomsets generated selestrings

I've noticed a strange bug related to successive selection operations and maybe the use of seleStrings.
Here is the test case procedure to replicate the bug:

open page embedded.html in example folder
paste in the console the following script

stage.removeAllComponents()
stage.loadFile('rcsb://1GZX').then((comp) => {

comp = stage.compList[0]
    comp.addRepresentation('ball+stick',
          {
            sele: 'all'
          })
    repr0AS = comp.structure.getAtomSet() //all atoms
    console.log('Whole set size:', repr0AS.size())

    as = comp.structure.getAtomSet(new NGL.Selection('protein')) //protein atoms only
    console.log('Protein set size:', as.size())

    sel = comp.structure.getAtomSet(new NGL.Selection(':B')) //chain B atoms only

    as.difference(sel) //protein and not chain B
    console.log('Protein and not chain B set size:', as.size())

    repr0AS.difference(as) //chain B or not protein

    comp.reprList[0].setSelection(repr0AS.toString())
    console.log('Chain B or not protein set size:', repr0AS.size())

    comp.reprList[0].setSelection('protein') //should be protein but is protein and not chain B
    console.log('Protein set size:', comp.structure.getAtomSet(new NGL.Selection('protein')).size())

})

The output from the script is :
Whole set size: 4769
Protein set size: 4384 <--
Protein and not chain B set size: 3261
Chain B or not protein set size: 1508
Protein set size: 3261 <--

After the script has performed, each command using the protein set returns a wrong set (eg: setSelection('protein'), structure.getAtomSet(new NGL.Selection('protein')) )

A further insight: when the string in the line comp.reprList[0].setSelection(repr0AS.toString()) is replaced by a string such as :B and not protein, the correct behaviour is observed.
I've checked also with a reduced selestring such as @0,1,2,4383 in case it is related to the previous bug with cartoon/tube representations and extrapolation. I've noticed that the expected atomSet size is returned (4), but the representation displays the whole protein...
stage.removeAllComponents()
stage.loadFile('rcsb://1GZX').then((comp) => {

comp = stage.compList[0]
    comp.addRepresentation('ball+stick',
          {
            sele: 'all'
          })
    repr0AS = comp.structure.getAtomSet() //all atoms
    console.log('Whole set size:', repr0AS.size())

    as = comp.structure.getAtomSet(new NGL.Selection('protein')) //protein atoms only
    console.log('Protein set size:', as.size())

    sel = comp.structure.getAtomSet(new NGL.Selection(':B')) //chain B atoms only

    /*as.difference(sel) //protein and not chain B
    console.log('Protein and not chain B set size:', as.size())

    repr0AS.difference(as) //chain B or not protein
*/
    sel = comp.structure.getAtomSet(new NGL.Selection('@0,1,2,4383'))
    comp.reprList[0].setSelection(sel.toSeleString())
    console.log('Four atoms encompassing chains A and D:', sel.size())

    comp.reprList[0].setSelection('protein') //should be protein but is protein and not chain B
    console.log('Protein set size:', comp.structure.getAtomSet(new NGL.Selection('protein')).size())

})

the "bug" is in fact an artifact of the caching mechanism in structure.js
when a selection such as structure.getAtomSet('protein') is performed, the atom set returned is also cached in the structure.atomSetCache object under the key "protein".
In my code, I made changes to the returned atomSet as.difference(sel) so it also made changes to the "protein" cached atomSet (as javascript transfers objects by reference). When the protein set is queried at the end of the request, it's the altered cached atomSet that is returned.
I can prevent this artifact in my code by using the "clone()" method on atom sets.
To prevent this for future users, I suggest that either the atomSetCache contains only clone() atomSets and queries from it return a clone() or that the structure.getAtomSet() returns a cloned() as object.

To prevent this for future users, I suggest that either the atomSetCache contains only clone() atomSets and queries from it return a clone() or that the structure.getAtomSet() returns a cloned() as object.

I see, that is what you did in #279. There are other place where the user is responsible to clone an object when needed for performance reasons. Most of the time when getAtomSet is called, no copy is needed, so providing a clone all the time seems overkill. Maybe documenting is sufficient?

I understand that cloning partly defeats the performance gained in caching.
From the user perspective as the caching mechanism is transparent and probably unexpected, it introduces a really hard to debug feature.
Documenting might be sufficient. In this case, the question is how this information could be made accessible? The current documentation provides usefull insights into NGL, but for example the Structure.getAtomSet() method is not yet documented. Do you have plans for this? (I understand that you'd rather spend time on NGL features than on documenting them)
Anyway, feel free to remove the aforementioned commit from #279

Structure.getAtomSet() method is not yet documented. Do you have plans for this?

I try to document methods that are more user facing and where I think to API is stable enough

close this, but will keep it in mind for documenting when I consider this as a public API method