Shallow defect analysis

Quoting @adair-nicolson's initial overview:

Added the ability to easily use pydefect to identify shallow defects. When parsing a single defect using DefectParser.from_paths(), if the user adds the tag load_phs_data=True additional data is loaded from the vasprun.xml i.e. projected eigenvalues. Then using dp.get_perturbed_host_state() information about the defect level is returned, including an automated attempt at PHS identification. Additionally a plot of the single-particle levels is generated for added verification. Added an example and some additional information to the tips and tricks section of the docs. I added the majority of the functions to the file doped.utils.phs.py to keep them out of the way and to allow easy changes to be made if needed when pydefect/vise are updated. Starting a draft pull request so can get feedback on if you would want me to rearrange some stuff, plus get those comments while I polish up the final bit.
Example:

Does this code also allow IPR analysis @adair-nicolson? (Can't remember what 'P ratio' is here)

Does this code also allow IPR analysis @adair-nicolson? (Can't remember what 'P ratio' is here)

So P-ratio is a similar-ish metric. P-ratio (participation ratio) is the ratio of the projected orbitals of the neighbouring atoms to the defects site to the sum of all atoms. So for a delocalised states/band states you would expect a small value. But there was a little bug, which is the last thing I need to fix today, related to setting the number of nearest neighbour.

@kavanase I'm going to set load_phs_data: Optional[bool] = False just to avoid having to redo all of the test case in test_analysis.py. But can work slowly on updating them all afterwards, and then change the default behaviour in a future update

Ok! Which part is it breaking in the analysis tests? (Shouldn't affect other properties being tested?)

Have got round the failed tests by settings the code to skip the trying to do the shallow defect analysis if you don't have the rights files/vise version and returns a warning rather that raising an error. E.g.
v_vise = version("vise")
if v_vise <= "0.8.1":
warnings.warn(
                f"You have version {v_vise} of the package `vise`,"
                f" which does not allow the parsing of non-collinear calculations."
                f" You can install the updated version of `vise` from the GitHub repo for this"
                f" functionality. Attempting to load the PHS data has been automatically skipped"
            )

so should be able to re-enable the shallow defect analysis as the default behaviour

Looking nice @adair-nicolson! When this gets to the near-completion stage, could you add a short section to the advanced analysis tutorial showing it in action? Thanks!

Docs page looks nice @adair-nicolson! (https://doped--50.org.readthedocs.build/en/50/Tips.html#perturbed-host-states)
Would be nice to include a plot or two (and the original TLD showing the position of the shallow defect level?) if possible! 🤩

@adair-nicolson small thing but just to flag, the plot legend seems to mix up occupied and unoccupied atm

@adair-nicolson I guess this is nearly ready to merge? 😄
Some things to mention/flag:

I was running into a few problems when trying this out which I couldn't figure out the issue for at first, but then realised the pydefect & vise versions both needed to be the most recent ones (Dec 2023) so have updated the requirements to match this.
pre-commit flagged some formatting issues before I could push, so I guess you mightn't have this installed for your local doped repo, just fyi!
I have some small updates to add just in terms of how the warnings are printed with DefectsParser when PHS data can't be parsed, and will update the tests accordingly. Will get this done asap and push.
I'll add one other test case with an interstitial or antisite/substitution. Good to test at least one other case, and also just to confirm my interpretation of the P-ratio is correct (original tips doc said this was orbitals from the defect neighbours, but should be neighbours plus defect (if defect isn't a vacancy) right? Have updated tips to this but would be good to confirm this).
Just to note so it doesn't go missing, I think two things left to do are those mentioned above; the addition of the PHS plot & TLD on the tips page and the addition of basically the same example to the advanced analysis tutorial, if you can get to those when you have a chance.
Tiny thing but on the tips code example dielectric was missing, so would fail if a user just copied this and tried with the example data. I updated but couldn't find the dielectric given in your Cu2SiSe3 paper. Doesn't really matter but good for consistency; could you update this value to the correct one for this system?

Ok! That's a bit odd; like in the case where you have an antisite that doesn't move or any interstitial, and the charge density is mostly localised on that atom, then you would get a low P ratio implying a delocalised state when in fact it's highly localised? 🤷
If it's possible, then yes it would be great if we could have that being consistent, and using the defect plus neighbours in each case. Thanks!

Just to check, I noticed this random statement lost in the code, which currently doesn't do anything. Deleted in the latest commit, but just to flag in case it was intended for anything!

@kavanase just a note I don't think this folder has been uploaded to the examples bulk_path = "CdTe/CdTe_bulk/vasp_gam/" so the interstitial part of the advanced analysis can not be completed.

Ah good spot! Was removed in a previous update because it wasn't used in any of the code/tests, but missed that it was still used in that part of the tutorials. Fixed now in develop!

Was playing around with some of this code @adair-nicolson. I noticed it seemed to be far slower at parsing when load_phs_data = True, and realise this is due to the Vasprun loading/handling being much slower when parse_projected_eigen = True (as needed for PHS analysis). E.g. from about 1 minute to ~10 minutes for loading the 7 example CdTe defects in the repository – actually with all example defects included, it seems like DefectsParser is just hanging due to memory overload (can be avoided by reducing processes, but waiting a long while...).
I have sped this up a little bit by adjusting the code so that the bulk vasprun should only be loaded once, but still v slow and memory intensive with parse_projected_eigen = True. Kind of annoying if the parsing is so slow when PHS data is being parsed – if this can't be improved, then maybe actually better not to parse by default, and make sure we have an easy convenience method to re-parse this data from a vasprun.xml later on at a DefectEntry level. From your knowledge of this, is there any easy ways to avoid the use of parse_projected_eigen = True in the vasprun loading here?
If this info can be pulled from the PROCAR(.gz) (which is quicker according to https://github.com/materialsproject/pymatgen/pull/88), then maybe we could add functionality to preferentially parse this data from it if present, otherwise from the vasprun.xml(.gz)?
In case it's useful, this is the code I use to profile bottlenecks in the code, which shows which underlying function calls are taking the most time etc:
from cProfile import Profile
from pstats import Stats

with Profile() as pr:
    dp = DefectParser.from_paths(
        defect_path="../../examples/CdTe/Int_Te_3_1/vasp_ncl",
        bulk_path="../../examples/CdTe/CdTe_bulk/vasp_ncl",
        skip_corrections=True,
    )

stats = Stats(pr)
stats.sort_stats("cumulative").print_stats(10)

Ok so some progress here at least, with that latest commit the CdTe example data is all parsed fine with no memory crash, taking 2 min 20 seconds on my laptop (compared to 1 minute 4 seconds with load_phs_data=False). Not the worst, but would ideally be a bit more efficient.
I think I can hack the _parse_projected_eigen() method for Vasprun to be a bit more efficient, so will also try that

Ok with this monkey patch update it drops that parsing time down to ~1 minute 50 seconds. Not the best, but def not the worst and a lot better than before. I think with this, it's good to stick with load_phs_data being True by default. And worth keeping it in mind if there's any potential improvements in parsing speed that could be achieved down the line.
Just to note, the docstring for load_phs_data in DefectsParser and DefectParser.from_paths doesn't seem to be totally accurate (just that it's actually just loading the necessary data for DefectEntry.get_perturbed_host_state() to work, rather than doing this). Could we add a short mention to this docstring portion that the default load_phs_data = True significantly increases the parsing time (~30-70%)(– depending on FNV/eFNV/no corrections) due to loading the projected eigenvalues?
load_phs_data (bool):
    Automatically determines the band edge states of the defect to determine
    if the defect is a PHS. Also returns single-particle levels and their
    occupation. cite: https://doi.org/10.1103/PhysRevMaterials.5.123803
    Default = True.

Yeah, I had noticed that as well. I can test an implementation that uses the PROCAR if the user has them and will see if that is significantly faster. The original intention of making it use the vasprun.xml was to avoid the user having to save an additional file.

@kavanase so using the PROCAR to get the projected eigenvalues I get a 50% speed (loading one defect, no corrections). Will implement a method something so it's tries using the PROCAR by default, then if it can't find one uses vasprun.xml but throws a warnings saying will be slower.

Ok cool! I think if the PROCAR(.gz) isn't present, but the vasprun.xml(.gz) is with the necessary data, then we don't need to throw a warning (probably enough as is 😅 ), but should not in the docstrings and docs that if PROCARs are present then this parsing will be a bit quicker. Thanks!

All tests passing I see @adair-nicolson, nice 😎
Is this ready for review or do you have more stuff to add?

Doing a final check today that everything works with the GitHub version of vise, then should be good for review. Will let you know!

@kavanase was thinking probably worth renaming it from phs.py to something more informative like shallow_defects.py or another suggestion if you have one. Will make more sense if we chose to add additional features such as simple models to calculate the binding energy as well

Some suggested refactoring of the function names etc. there @adair-nicolson, to reflect the more general usefulness of this analysis (and also then using parse_projected_eigen means we're consistent with pymatgen's terminology for this). Let me know if you're happy with this or have any changes!
Some small things I'll try adding:

I think we can make parsing of PROCAR.gz possible fairly easily, by directly using the Procar._read(fobj) function in easyunfold with monty.io.zopen (as done in pymatgen for loading vasp outputs); I'll try add this and then update that test (thanks for adding the PROCAR test too btw!)
For DefectEntry.get_perturbed_host_state(), I think it would be good for it to try parse available data in calculation_metadata["defect_path"] (& calculation_metadata["bulk_path"]) if the data isn't already loaded, before erroring out, so the user has the option to just selectively parse this data later on if only needed for a subset of cases.
I think I can update this so that bulk_outcar_phs is not necessary. I guess likely that this is present in most cases anyway, but in case it's not it'd be good to not require it. As far as I can see, it's just to feed nelect and total_magnetization to pydefect's BandEdgeProperties – neither of which are available via pymatgen's vasprun parser. I have a function already for getting the nelect value (get_neutral_nelect_from_vasprun) and I think I've figured a way to get total_magnetization too, so will try adding this

Ok I've updated easyunfold to be able to load PROCAR.gz files fine; https://github.com/SMTG-Bham/easyunfold/commit/45d0764cb66cb19be6384877b8a759e93c3ed169
It's not on conda, so I'll add its (and the additional vise/pydefect ones in doped.utils.eigenvalues) import calls into try/except catches that give an error message to the user about it not being installed if they try to load a PROCAR with it in doped (as done e.g. for the doped.corrections imports). Will see if we can just add it to conda-forge in the future.
Quick question @adair-nicolson, do you know if with the easyunfold procar (which supports SOC calculations), does this avoid the need for vise > 0.8.1 for SOC calculations for the eigenvalue analysis?

The reason you need to vise > 0.8.1 is for this addition where they add a way to find the ho_band_index in the case of a SOC calculation, which is a method belonging to BandEdgeProperties. Older versions miss the first if statement. I could add another monkey patch or do something else to get around it if you thought that best.
def _ho_band_index(self, spin):
        if self._is_non_collinear:
            return round(self._nelect) - 1

        if spin == Spin.up:
            num_occupied_band = (self._nelect + self._magnetization) / 2
        else:
            num_occupied_band = (self._nelect - self._magnetization) / 2

        return round(num_occupied_band) - 1

Also, an aside, can't you just use the Vasprun method .parameters.get("NELECT") to get the nelect.

Ah ok! If it's just one method that's causing the issue, then might be easiest to just monkey patch now so we have the functionality and don't have to worry about watching vise for a new release etc?
And yeah for the NELECT issue I've noticed that before and is annoying (why pymatgen and other codes all require the OUTCAR for getting NELECT), but I implemented a way of back-calculating this from the POTCARs in:
https://doped.readthedocs.io/en/latest/_modules/doped/utils/parsing.html#get_neutral_nelect_from_vasprun
and then if it's a charged defect supercell you just add -charge to the neutral NELECT as is done in doped – though not necessary for the eigenval analysis as this part is only used for the bulk state which should be a neutral calc.

Some updates here @adair-nicolson.
I've implemented most of the targets mentioned above, but still need to update so that the bulk OUTCAR isn't required, so I'll try push forward on that.
With all this updated parsing, for the CdTe example set of 7 defects on the repo, it takes 56 seconds to parse without the eigenvalue data (same as before), and only 60 seconds to parse with this data, so nearly negligible extra cost now in this case (whoop). Likewise with your Cu2SiSe3 defects, takes 26 seconds without eigenvalue data parsing, and 33 seconds with parsing – this is actually the same now, whether parsing PROCARs or vaspruns.

Ah ok! If it's just one method that's causing the issue, then might be easiest to just monkey patch now so we have the functionality and don't have to worry about watching vise for a new release etc?

Scratch that ☝  Kumagai just released a new vise version:
https://pypi.org/project/vise/#history 🎉

@adair-nicolson I think we're nearly there (finally... 😅 ).
One last (hopefully quick) thing:
One or two of the JSON dict comparison tests are failing when now when vasprun parsing is used instead of PROCAR parsing for Cu2SiSe3. I checked and the plots look ok, and apparently everything in the dict is the same except the orbital_diff values, but I can't see what the issue is. I tried adjusting normalise=True/False with the easyunfold PROCAR parsing which changed these values, but also didn't match with the vasprun parsing. Would you be able to look into this please? I saw you've set a custom _orbital_diff in eigenvalues.py. Not sure what's going on here / if it matters

Also a quick question just to confirm, P-ratio does (now) include the defect site itself yeah? Seems to from the outputs I saw, but wanted to confirm

Aaanndd one other last thing to check, I noticed for these plots there tends to be a lot of white space in the plot, as for some reason it only shows some bands close to the band gap, but the y-limits extend beyond this:

Would it be better to adjust y based on the eigenvalue range shown? You adjust ylim in your plotting code, is there any reason not to reduce it compared to the current range?

This stems from the fact that the vasprun.xml stores the data to more significant figures compared to the PROCAR (and also DOSCAR). The custom _orbital_diff was cause the test were failing half the time originally due to a floating point error. I.e sometimes orbital diff would be 0.15 vs 0.15000000001.

Yep it should be. The tag include_one_site=True controls that in _coordination account for that.

Oh, that wasn't working as intended, I can fix that quickly by changing how ylim is set to.

for ax in emp.axs:
    ax.set_ylim([ymin - 0.25, ymax + 0.75])

The aim was to leave enough white space at the top for the legend so it does not to cover too much data.

Ok!

For the orbital_diff differences in the band edge states dict output though, it seemed like bigger differences than just significant figures; like 0.012 vs 0.027? (So maybe not related to the significant figures issue but something else?)
This is what I get when I try to run the tests for this now:

I added the print statements to make these tests more verbose and a bit easier to debug. The output here is:
Testing MgO eigenvalue analysis
Testing Cu2SiSe3 eigenvalue analysis with PROCARs
Testing v_Cu_0 with plot = True
Testing v_Cu_0 with plot = False
Testing Si_i_-1 with plot = True
Testing Cu2SiSe3 parsing and eigenvalue analysis without bulk PROCAR
Testing v_Cu_0 with plot = True

So it's getting this failure when it has to fallback to using the bulk vasprun rather than the PROCAR. Would you be able to look into this and see what the issue is?

Ok cool!

Ok! I dug into this a bit. I've updated to set the y-axis limits to +/-5% of the y-range (matching the default matplotlib behaviour), which is better than a hard eV range just because this can be a bit small or large depending on what the band gap of the system is. I also adjusted the legend settings just a bit (but if you think better a different way lmk!) to account for this (as no longer guaranteed that sticking it in the upper right is best, as it mightn't just be white space). It now uses the default matplotlib best-placement, and I've decreased the opacity of the box to ensure that if there are any points behind it, they're still visible. Also added the ylims and legend_kwargs options to allow the user to easily customise these (or just have no legend if legend_kwargs=False), and added tests for these.

These are some of the default plot outputs now for the test cases:

Btw @adair-nicolson,  I updated orbital_diff to be normalised in those changes as this seems like the most robust way of doing the orbital comparisons (so either way the orb_diff in those JSON files needs to be updated), but maybe there's a reason not to do this?

Ok once that orb_diff issue is sorted and tests pass, then this is ready to merge!

@kavanase I'm still pretty sure it's due to the difference in significant figures. Although it's only the third decimal place, that's for each atom, so if you add up all the project eigenvalues for a single band that can make up a sizeable difference, especially in a very large supercell.
If you replace the project eigenvalues loaded with Vasprun with those loaded with Procar, you get the same result, showing it's not something related to the difference in how band edge states is calculated depending on the files you have saved, but is related to the initial input data.

Ok! Can you update the reference JSONs for this then?
Before it was passing for the PROCAR parsing but not the vaspruns. If this is the issue, is there some easy easy of fixing?

@adair-nicolson ok so I dug in and saw the significant figures issue you were talking about (I didn't really get the screenshot at first as it seemed it was just replacing the Vasprun data with the PROCAR data gives the same result as the PROCARs, but I got your point from looking closer); I forgot the PROCAR is only 3 decimal places which isn't much in this context and can make a significant difference as you say!
So I added some updates there, just to make the vasprun parsing as efficient as possible (now about 30% quicker overall), and to update the default behaviour to parse the projected eigenvalue data from the vaspruns preferentially rather than PROCARs, as it's more accurate with the 4 decimal places, more convenient for the user, and from testing over all test_analysis.py cases, seems to come out only ~5% slower than PROCAR parsing now. Also updated the eigenvalue test to use the one JSON file for vasprun/PROCAR parsed data and allow for small numerical differences, rather than using fixed individual JSON reference files. Seems to all be passing locally for me now, so will merge this once the tests above pass! 😃

All tests passing, merging now. Thanks for all your work with this @adair-nicolson! 💪
Will post a Slack PSA about this during the week too, so ppl know this is now available


Issue with provided Dataset and Package Compatibility

I've been trying to use this package, but I've been struggling to get the package in a usable state. As of the moment, the only way I can see this working is to more or less uproot the code from the ground up, and I doubt that should be necessary.
Firstly, I tried to verify the dataset by typing in the following:

python3 obb_anns/debugging/verify_dataset.py obb_anns/sample

and here is the result:

Checking file 1 of 1...
loading ann_info...
Traceback (most recent call last):
File "obb_anns/debugging/verify_dataset.py", line 24, in
a.load_annotations()
File "Project/obb_anns/obb_anns/obb_anns.py", line 116, in load_annotations
with open(self.ann_file, 'r') as ann_file:
FileNotFoundError: [Errno 2] No such file or directory: 'obb_anns/sample/obb_anns/sample/deepscores_v2_sample.json'

Obviously, there's a bit of an issue on how the code tries to find the file, so I changed the following lines (before is above, after is below):

line 23:

   a = OBBAnns(join(args.ROOT, dataset_ann_fp))

   a = OBBAnns((dataset_ann_fp))

line 36:

images_dir = root_dir / 'images_png'

images_dir = root_dir / 'images'

and the result was this instead, which I assume would mean that it indeed works:

Checking file 1 of 1...
loading ann_info...
done! t=0.00s
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 97.97imgs/s]
Checking if every image has its annotation in the dataset...
1imgs [00:00, 12945.38imgs/s]

I tried running this code for ds2_dense, and this has always been the output. I'm not sure why this happens for that package, but I do not have the knowledge to know what to do about this:

(This is done with images because the imagename.png is not in any JSON file error goes on for long enough that the start cannot be retraced.)
Then, since it appears to be that the program would need a proposals.json file from somewhere, though none of the datasets initially have a proposal file. Looking at the debugging tools, there appears to be a generate_test_proposals.py, so I tried the following:

python3 obb_anns/debugging/generate_test_proposals.py obb_anns/sample/deepscores_v2_sample.json

and this is the result:

loading ann_info...
done! t=0.01s
Traceback (most recent call last):
File "obb_anns/debugging/generate_test_proposals.py", line 56, in
main(args.GT)
File "obb_anns/debugging/generate_test_proposals.py", line 35, in main
bboxes = gt.ann_info[['bbox', 'cat_id', 'img_id']]
File ".local/lib/python3.8/site-packages/pandas/core/frame.py", line 2806, in getitem
indexer = self.loc._get_listlike_indexer(key, axis=1, raise_missing=True)[1]
File ".local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1550, in _get_listlike_indexer
self._validate_read_indexer(
File ".local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1644, in _validate_read_indexer
raise KeyError(f"{not_found} not in index")
KeyError: "['bbox'] not in index"

The problem here lies in how the dataset defines its bbox parameters. You can see here that the bbox is only one parameter, but in the json files they are split into two: a_bbox and o_bbox:

From here I could just replace all instances of bbox into a_bbox and o_bbox, but that also affects the entire rest of the code, where then obb_anns.py also only defines bbox as one parameter. Unless if there is another compatible dataset that I am unaware of, is there any particular solution that comes to mind?

Thank you for posting this; I have been struggling with this package myself, trying ti figure out how to use it.
By following the official instructions, I encounter errors like this one.
It is my guess that this package is abandoned and no longer maintained.
I am wondering if you could find a way to use the deep scores dataset in a usable manner by using modern systems like mmdetection or similar. I am spending a huge amount of time trying to understand how to use that dataset which is in a non-very-standard format.
Any thoughts on that are very welcome!
Thanks again.

I have stumbled across a particular change that may help with this issue.
What may be the case for this tool kit is that the debugging and sample dataset may be outdated, but the dataset can be visualized properly.

This is the exact code I used to render the image.

This is what happens when I try the code above, except that I refer to the sample dataset and change the img_idx to 0 (since there is only one image)

This is the resulting rendered image.

This is the resulting rendered image, if instances = False. Supposedly there should be a way to see the unique numerical id of each symbol instead of the recognized symbol name (i.e. noteheadBlackOnLine and timesig4)
This does mean that the dataset is usable to some capacity... but there does not appear to be a way to create proposals (are proposals actually necessary? I am not sure) nor how to train new models from scratch (or at least a means to input page(s) of sheet music and process it into a json file), at least from what I have seen. Let me know if there is something I have overseen, thanks!

This is awesome! Thank you so much!
I am researching a way to training a model from scratch as well, and I have some ideas to try. Mmdetection is one, detectron2 is another. I'll try them both and see which one gives better results.
It is my understanding that the main problem is that this dataset has its own format, and it should probably be converted into another format first (i.e. coco or YOLO?) and then treat it as any other "standard" set.
I'll post what I find out. Thanks again!

This is awesome! Thank you so much!
I am researching a way to training a model from scratch as well, and I have some ideas to try. Mmdetection is one, detectron2 is another. I'll try them both and see which one gives better results.
It is my understanding that the main problem is that this dataset has its own format, and it should probably be converted into another format first (i.e. coco or YOLO?) and then treat it as any other "standard" set.
I'll post what I find out. Thanks again!
Hello, I also want to convert the label of this data set to coco or yolo. Have you successfully converted

Not yet, unfortunately I had to take care of more urgent matters, but I plan to do it in the coming weeks. I'll keep you posted ;)

fablau

Thank you. Let me know if you succeed. Thank you so much


Fix icon visibility in status bar

In the first screenshot, the icon is there, but white.

@tzarebczan do you ever see this? @akinwale thinks it may only be OnePlus

Yep, I do see the same. Never noticed that before.

Fixed in https://github.com/lbryio/lbry-android/commit/a1bc3fcd7e9df18bb8b81088dcd63405ec649339.


Pre-Auction Notification for Participants

Summary :red_circle:
This issue aims to implement a notification feature to inform participating users who have placed bids about the upcoming scheduled auction. The notification needs to be triggered automatically 1 hour before the auction starts, requiring the integration of an email delivery system with precise timing logic.
The notification content should include essential details such as the exact date and time of the auction's commencement, direct links to the auction platform, and any pertinent information, such as rules or additional instructions.
Proposed / Possible solution :red_circle:
The project already has all the necessary convention and structure. We will only follow what is already established.
Checklist

[x] Create email template with corresponding content.
[x] Create a scheduled task after creating an auction to notify participants.

Related issues
#4

I underestimated this task, the email templates and tests, even though they are simple, require a little more work, which was reflected in the delivery time.


refactor: Faster copy loop

The cost of using a recursive function in copying some bytes is not negligible and actually shows up as a cost center in flamegraph.
The fix is simple: use a while loop to do the copy.

In case you wonder:


[BUG] Preferred escape menu version and Use advanced graphics quality selector missing on the list

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[X] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
2.8.1
What problem did you encounter?
So I went to settings and there is two missing options for me named
"Preferred escape menu version" and "Use advanced graphics quality selector"
because i need to get old escape menu back to not see the small open bars on top
Here is the proof:

Can anyone help?
Bloxstrap Log
No response

Roblox has removed these options

aww


Fail to download youtube videos when using proxy,  (got player response for video "M5t4UHllkUM" instead of "visRvIpMMFs");

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

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

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.09.24 (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 known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
US
Provide a description that is worded well enough to be understood
Since last week I can't download any videos via proxy, and before last week, it works well . I have upgraded yt-dlp to latest version 2023.09.24. When I use yt-dlp to download youtube video like "https://www.youtube.com/watch?v=imEYmxqSnY8",I got output log like this:
[youtube] Extracting URL: https://www.youtube.com/watch?v=imEYmxqSnY8
[youtube] imEYmxqSnY8: Downloading webpage
WARNING: [youtube] <urlopen error EOF occurred in violation of protocol (_ssl.c:1129)>. Retrying (1/3)...
[youtube] vBZRUUhiis0: Downloading ios player API JSON
WARNING: [youtube] Unable to download webpage: <urlopen error EOF occurred in violation of protocol (_ssl.c:1129)>
WARNING: [youtube] Unable to download webpage: <urlopen error EOF occurred in violation of protocol (_ssl.c:1129)>
[youtube] LWz0JC7afNQ: Downloading web player API JSON
[youtube] PjgMw4HQVcg: Downloading ios player API JSON
[youtube] PE1H5vXuH4E: Downloading ios player API JSON
WARNING: [youtube] Unable to download webpage: <urlopen error EOF occurred in violation of protocol (_ssl.c:1129)>
[youtube] imEYmxqSnY8: Downloading ios player API JSON
WARNING: [youtube] <urlopen error EOF occurred in violation of protocol (_ssl.c:1129)>. Retrying (2/3)...
[youtube] vBZRUUhiis0: Downloading ios player API JSON
[youtube] kZ76R3ctJn0: Downloading ios player API JSON
WARNING: [youtube] <urlopen error EOF occurred in violation of protocol (_ssl.c:1129)>. Retrying (1/3)...
[youtube] imEYmxqSnY8: Downloading ios player API JSON
[youtube] hMO_jbF1hgk: Downloading ios player API JSON
WARNING: [youtube] <urlopen error EOF occurred in violation of protocol (_ssl.c:1129)>. Retrying (2/3)...
[youtube] imEYmxqSnY8: Downloading ios player API JSON
WARNING: [youtube] Skipping player response from android client (got player response for video "M5t4UHllkUM" instead of "visRvIpMMFs"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: [youtube] Skipping player response from ios client (got player response for video "M5t4UHllkUM" instead of "PjgMw4HQVcg"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: [youtube] Skipping player response from web client (got player response for video "M5t4UHllkUM" instead of "visRvIpMMFs"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
When I use proxy to list available formats I got this:
[root@e32af93c0640 split_download_video_clips]# yt-dlp -vU https://www.youtube.com/watch?v=9ZmalMmyZRU --list-formats --proxy socks5://PdHShH:pyeHAw@<IP_ADDRESS>:11059/
[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=9ZmalMmyZRU', '--list-formats', '--proxy', 'socks5://PdHShH:pyeHAw@<IP_ADDRESS>:11059/']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[088add956] (pip)
[debug] Python 3.9.12 (CPython x86_64 64bit) - Linux-5.4.119-1-tlinux4-0010.2-x86_64-with-glibc2.28 (OpenSSL 1.1.1k  FIPS 25 Mar 2021, glibc 2.28)
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2021.10.08, mutagen-1.46.0, sqlite3-3.26.0, websockets-10.3
[debug] Proxy map: {'all': 'socks5://PdHShH:pyeHAw@<IP_ADDRESS>:11059/'}
[debug] Loaded 1886 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
ERROR: Unable to obtain version info (EOF occurred in violation of protocol (_ssl.c:1129)); Please try again later or visit  https://github.com/yt-dlp/yt-dlp/releases/latest
[youtube] Extracting URL: https://www.youtube.com/watch?v=9ZmalMmyZRU
[youtube] 9ZmalMmyZRU: Downloading webpage
[youtube] 9ZmalMmyZRU: Downloading ios player API JSON
WARNING: [youtube] Skipping player response from ios client (got player response for video "M5t4UHllkUM" instead of "9ZmalMmyZRU"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
[youtube] 9ZmalMmyZRU: Downloading android player API JSON
WARNING: [youtube] Skipping player response from android client (got player response for video "M5t4UHllkUM" instead of "9ZmalMmyZRU"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: [youtube] Skipping player response from web client (got player response for video "M5t4UHllkUM" instead of "9ZmalMmyZRU"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: Only images are available for download. use --list-formats to see them
[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, size, br, asr, vext, aext, hasaud, id
[info] Available formats for 9ZmalMmyZRU:
ID  EXT   RESOLUTION FPS │ PROTO │ VCODEC MORE INFO
────────────────────────────────────────────────────
sb2 mhtml 48x27        1 │ mhtml │ images storyboard
sb1 mhtml 72x45        1 │ mhtml │ images storyboard
sb0 mhtml 144x90       1 │ mhtml │ images storyboard
When I list available formats without using proxy I got this:
[root@e32af93c0640 split_download_video_clips]# yt-dlp -vU https://www.youtube.com/watch?v=9ZmalMmyZRU --list-formats[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=9ZmalMmyZRU', '--list-formats']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[088add956] (pip)
[debug] Python 3.9.12 (CPython x86_64 64bit) - Linux-5.4.119-1-tlinux4-0010.2-x86_64-with-glibc2.28 (OpenSSL 1.1.1k  FIPS 25 Mar 2021, glibc 2.28)
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2021.10.08, mutagen-1.46.0, sqlite3-3.26.0, websockets-10.3
[debug] Proxy map: {}
[debug] Loaded 1886 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>yt-dlp is up to date<EMAIL_ADDRESS>[youtube] Extracting URL: https://www.youtube.com/watch?v=9ZmalMmyZRU
[youtube] 9ZmalMmyZRU: Downloading webpage
[youtube] 9ZmalMmyZRU: Downloading ios player API JSON
[youtube] 9ZmalMmyZRU: Downloading android player API JSON
WARNING: [youtube] Skipping player response from web client (got player response for video "M5t4UHllkUM" instead of "9ZmalMmyZRU"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
[youtube] 9ZmalMmyZRU: Downloading m3u8 information
[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, size, br, asr, vext, aext, hasaud, id
[info] Available formats for 9ZmalMmyZRU:
ID  EXT   RESOLUTION FPS CH │  FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27        1    │                 mhtml │ images                                  storyboard
sb1 mhtml 72x45        1    │                 mhtml │ images                                  storyboard
sb0 mhtml 144x90       1    │                 mhtml │ images                                  storyboard
233 mp4   audio only        │                 m3u8  │ audio only          unknown             Default, IOS
234 mp4   audio only        │                 m3u8  │ audio only          unknown             Default, IOS
139 m4a   audio only      2 │   3.98MiB   49k https │ audio only          mp4a.40.5   49k 22k low, IOS, m4a_dash
140 m4a   audio only      2 │  10.57MiB  129k https │ audio only          mp4a.40.2  129k 44k medium, IOS, m4a_dash
251 webm  audio only      2 │  12.69MiB  155k https │ audio only          opus       155k 48k medium, ANDR, webm_dash
17  3gp   176x144     10  1 │   3.30MiB   40k https │ mp4v.20.3           mp4a.40.2       22k 144p, ANDR
269 mp4   256x144     30    │ ~ 1.44MiB  127k m3u8  │ avc1.4D400C    127k video only          IOS
160 mp4   256x144     30    │   1.54MiB   19k https │ avc1.4D400C     19k video only          144p, IOS, mp4_dash
230 mp4   640x360     30    │ ~ 5.36MiB  472k m3u8  │ avc1.4D401E    472k video only          IOS
134 mp4   640x360     30    │   5.47MiB   67k https │ avc1.4D401E     67k video only          360p, IOS, mp4_dash
18  mp4   640x360     30  2 │ ≈ 2.22MiB  195k https │ avc1.42001E         mp4a.40.2       44k 360p, ANDR
605 mp4   640x360     30    │ ~ 4.28MiB  377k m3u8  │ vp<IP_ADDRESS>  377k video only          IOS
22  mp4   1280x720    30  2 │ ≈ 3.75MiB  330k https │ avc1.64001F         mp4a.40.2       44k 720p, ANDR
232 mp4   1280x720    30    │ ~15.66MiB 1380k m3u8  │ avc1.64001F   1380k video only          IOS
136 mp4   1280x720    30    │  16.46MiB  202k https │ avc1.64001F    202k video only          720p, IOS, mp4_dash
270 mp4   1920x1080   30    │ ~28.15MiB 2480k m3u8  │ avc1.640028   2480k video only          IOS
137 mp4   1920x1080   30    │  27.47MiB  336k https │ avc1.640028    336k video only          1080p, IOS, mp4_dash
[root@e32af93c0640 split_download_video_clips]#
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] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=9ZmalMmyZRU', '--proxy', 'socks5://PdHShH:pyeHAw@<IP_ADDRESS>:11059/', '--download-sections', '*00:08:37.933-00:08:42.933', '-f', '134', '-o', '/apdcephfs/share_1016399/yunxincai/InternVideo/split_download_video_clips/dir37/9ZmalMmyZRU___00:08:37.933___00:08:42.933.mp4']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[088add956] (pip)
[debug] Python 3.9.12 (CPython x86_64 64bit) - Linux-5.4.119-1-tlinux4-0010.2-x86_64-with-glibc2.28 (OpenSSL 1.1.1k  FIPS 25 Mar 2021, glibc 2.28)
f[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2021.10.08, mutagen-1.46.0, sqlite3-3.26.0, websockets-10.3
[debug] Proxy map: {'all': 'socks5://PdHShH:pyeHAw@<IP_ADDRESS>:11059/'}
[debug] Loaded 1886 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
ERROR: Unable to obtain version info (EOF occurred in violation of protocol (_ssl.c:1129)); Please try again later or visit  https://github.com/yt-dlp/yt-dlp/releases/latest
[youtube] Extracting URL: https://www.youtube.com/watch?v=9ZmalMmyZRU
[youtube] 9ZmalMmyZRU: Downloading webpage
[youtube] 9ZmalMmyZRU: Downloading ios player API JSON
WARNING: [youtube] Skipping player response from ios client (got player response for video "M5t4UHllkUM" instead of "9ZmalMmyZRU"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
[youtube] 9ZmalMmyZRU: Downloading android player API JSON
WARNING: [youtube] EOF occurred in violation of protocol (_ssl.c:1129). Retrying (1/3)...
[youtube] 9ZmalMmyZRU: Downloading android player API JSON
WARNING: [youtube] Skipping player response from android client (got player response for video "M5t4UHllkUM" instead of "9ZmalMmyZRU"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: [youtube] Skipping player response from web client (got player response for video "M5t4UHllkUM" instead of "9ZmalMmyZRU"); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
WARNING: Only images are available for download. use --list-formats to see them
[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, size, br, asr, vext, aext, hasaud, id
ERROR: [youtube] 9ZmalMmyZRU: Requested format is not available. Use --list-formats for a list of available formats
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 1567, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 1723, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/lib/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 1782, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/lib/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 2883, in process_video_result
    raise ExtractorError(
yt_dlp.utils.ExtractorError: [youtube] 9ZmalMmyZRU: Requested format is not available. Use --list-formats for a list of available formats

Your proxy's IP address/es has/have been blocked by youtube
#7143


Add support for GKE node pools with GPUs attached

I have an app/container that uses a GPU for machine learning processes running on kubernetes in GCP. One cool feature about GPU node pools in GKE is that pods will only be placed on the node pool if the pod is requesting GPU resources. This is good in most scenarios, but in the case of this Sumo plugin, it means logs from pods on the GPU node pool never gets collected since the Sumo pod won't ever be scheduled on those nodes.
https://cloud.google.com/kubernetes-engine/docs/how-to/gpus

This causes only Pods requesting GPUs to be scheduled on GPU nodes, which enables more efficient autoscaling: your GPU nodes can quickly scale down if there are not enough Pods requesting GPUs.

I would love to see support added for scheduling the Sumo Flutentd pods on GPU node pools running in GCP.

@zanthorn you should be able to do this by simply adding a toleration to support the Taint GKE uses on the GPU nodes.  Can you try adding this to the tolerations in the YAML and see if they get scheduled?
      - operator: "Exists"
      - effect: "NoSchedule"
        key: "nvidia.com/gpu"

That did it, thanks for the fast response!


[CHORE] - Create HSK 1 sample sentences

Add the first several test characters and test sentences into the SQLite database for HSK 1.

Duplicate of comment in #4 since it should go here.
https://github.com/TAP327/I_Chinese/issues/4#issuecomment-2557986484
CREATE TABLE "sentence" (
   "id" TEXT,
   "chinese" TEXT,
   "pinyin" TEXT,
   "english" TEXT
)

Updated Word Table
CREATE TABLE "word" (
	"id"	INTEGER,
        "chinese" TEXT,
	"pinyin"	TEXT,
	"definition"	TEXT,
	"level"	INTEGER,
	"sentences"	TEXT,
	PRIMARY KEY("id" AUTOINCREMENT)
)

The new data has been added and the upload scripts have been fixed. Please take a look at Commit #46281f7 for more information.

@TAP327 Can we move to close this issue and move full HSK1 to issue #4 instead? This way we remove a duplication of issues.


How to run an executable in Terminal from a batch file

Is it possible to open the Terminal and run an executable via a batch file?
Or at least set the Terminal as default for bat/ps1 files.
Something like this Run.bat:
wt.exe myConsoleApp.exe

Which opens the Terminal and executes the MyConsoleApp.exe

/dup #492 #607


Why meet issues after remove "key = cv2.waitKey(1)"

Hi, @jkjung-avt
Thanks for your work! It helps me a lot. You are very kind!
I want to achieve that when the video detection is finished, stop the loop and exit directly. Instead of going through the loop until the 'ESC' key is pressed.
So I calculated the total number of frames in the video file, and remove "key = cv2.waitKey(1)". Just like this:
('total' is the total number of frames in the video file;
'frameIndex' is a variable of +1 after each loop detection )

In the end, I run python trt_ssd_async.py --model ssd_mobilenet_v1_coco --file --filename ./examples/test_video/IMG_8706.MP4
But the log is right, the detected video was not show.

When I added "key = cv2.waitKey(1)" again, everything was fine,
But after the video is finished, it loops again for a while (less than the second time) before it ends. May be the delay caused by "key = cv2.waitkey (1)"?
I do not know why I remove "key = cv2.waitKey(1)", and the detection video was not show.
Please give my some hints for modification, Sincere thanks for you!

Your question is just basic programming of opencv API.  It should be easy for your to find reference online and do the studying by yourself.  For example, you could reference this StackOverflow post.

Ok, Thank you all the same


Improved Efficiency of Sparse Model construction

The sparse model construction was very slow because of several for loops for building the sparse H and J matrices that contained setting sparse arrays with dense arrays (e.g., H[..., ...] = Q). This PR now builds the H and J matrices by instead building vectors for colptr, rowval, and nzval from the corresponding data, and then using the SparseMatrixCSC constructor to create the sparse array from these vectors. The colptr, rowval, and nzval for H and J are instantiated within the _build_sparse_lq_dynamic_model function. The _set_sparse_H! and _set_sparse_J! functions are then called to set this data. For large problems (N, ns, and nu ~100+), there is significant speedup from these changes.

Codecov Report

Merging #32 (641c280) into main (fe9901e) will increase coverage by 0.18%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #32      +/-   ##
==========================================
+ Coverage   97.79%   97.97%   +0.18%
==========================================
  Files           1        1
  Lines         724      790      +66
==========================================
+ Hits          708      774      +66
  Misses         16       16

Impacted Files
Coverage Δ

src/DynamicNLPModels.jl
97.97% <100.00%> (+0.18%)
:arrow_up:

Continue to review full report at Codecov.

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


python39Packages.flax build failure on x86_64-linux as of bdf1b57c

Issue description
Build of python39Packages.flax failed on x86_64-linux as of bdf1b57cd2cd2a27abadb6714c116f5777d56979. This is currently breaking python39Packages.flax.
error: builder for '/nix/store/mlj5r3966ylsv84jxakxzpxdiwyy53pw-python3.9-flax-0.5.2.drv' failed with exit code 1;
       last 10 log lines:
       > Executing pipInstallPhase
       > /build/source/dist /build/source
       > Processing ./flax-0.5.2-py3-none-any.whl
       > Requirement already satisfied: matplotlib in /nix/store/58h80xdq0ixjnw1hycxzscn64ywj80gm-python3.9-matplotlib-3.5.2/lib/python3.9/site-packages (from flax==0.5.2) (3.5.2)
       > Requirement already satisfied: PyYAML>=5.4.1 in /nix/store/bxkvp0p64x6fv513bf7wc4m5ff19gm8i-python3.9-pyyaml-6.0/lib/python3.9/site-packages (from flax==0.5.2) (6.0)
       > Requirement already satisfied: typing-extensions>=4.1.1 in /nix/store/24lcz74gkv09rdv7i07cp9n260bs52s8-python3.9-typing-extensions-4.3.0/lib/python3.9/site-packages (from flax==0.5.2) (4.3.0)
       > Requirement already satisfied: numpy>=1.12 in /nix/store/iwc6325ypybyfhsbvy8gpwr7ibisj9kb-python3.9-numpy-1.23.1/lib/python3.9/site-packages (from flax==0.5.2) (1.23.1)
       > ERROR: Could not find a version that satisfies the requirement rich~=11.1 (from flax) (from versions: none)
       > ERROR: No matching distribution found for rich~=11.1
       >
       For full logs, run 'nix log /nix/store/mlj5r3966ylsv84jxakxzpxdiwyy53pw-python3.9-flax-0.5.2.drv'.

full build log
python39Packages.flax maintainers cc: @ndl
python39Packages.flax maintainers cc: @ndl
Other cc: n/a
Steps to reproduce

Checkout nixpkgs at commit bdf1b57cd2cd2a27abadb6714c116f5777d56979
Run nix-build -A python39Packages.flax

Technical details
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.0-1017-azure, Ubuntu, 20.04.4 LTS (Focal Fossa), nobuild`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.10.3`
 - nixpkgs: `/nix/store/4z9klgabh35a7009wh8lh9qj0s9vh89b-source`

Misc.
This issue was automatically generated by nixpkgs-upkeep.

CI workflow that created this issue.
Internal tags:<PHONE_NUMBER>334496909<PHONE_NUMBER>747284195

@samuela Really nice bot, I like the concept of it :)
Possible fix for this https://github.com/NixOS/nixpkgs/pull/186937

this has been fixed, though i'm not sure where or how


Filename too long

Systeminfo:
OS Name:                   Microsoft Windows 11 Famille
OS Version:                10.0.22631 N/A Build 22631
From C:\home\athomme\work\athena-decision-systems\dev\athena-owl-agent, which is a reasonably short path I am running:
git clone https://github.com/AthenaDecisionSystems/athena-owl-demos.git
As a result, I am getting:
error: unable to create file IBU-insurance-demo/decisions/workspace/rules-insurance-pc-claims-nba/rules/Complaint Handling/Applied coverages/Targeted/Auto/AC-AUTO-SUBV-DISC - Discount on substitution vehicle.brl: Filename too long
error: unable to create file IBU-insurance-demo/decisions/workspace/rules-insurance-pc-claims-nba/rules/Complaint Handling/Applied coverages/Targeted/Auto/AC-AUTO-SUBV-UP - Upgrade policy with substitution vehicle.brl: Filename too long
error: unable to create file IBU-insurance-demo/decisions/workspace/rules-insurance-pc-claims-nba/rules/Complaint Handling/Applied coverages/Targeted/Auto/AC-AUTO-TPL - 3rd party policy and responsible for damage.dta: Filename too long
error: unable to create file IBU-insurance-demo/decisions/workspace/rules-insurance-pc-claims-nba/rules/Complaint Handling/Applied coverages/Targeted/Home/AC-HOME-CONT-UP - Upgrade policy to include content.brl: Filename too long
error: unable to create file IBU-insurance-demo/decisions/workspace/rules-insurance-pc-claims-nba/rules/Complaint Handling/Applied coverages/Targeted/Home/AC-HOME-CONT-VOUCHER - Propose voucher for extra service with affiliate provider.brl: Filename too long
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.

This is due to Windows limit imposed on  the maximum path length of files. Path length includes the full folder path and the file name and it is limited to 260 characters. The IBU insurance ODM project was created on a Mac where such a limit does not exist.
Possible solution is just to rename rule packages and rule names to make sure all path lengths are well under 260.

Exactly, this is a known issue with Windows/DOS. According to google the limit is 256.
Of course the problem will always happen if the repository is cloned in a directory deep in the file system, but we should avoid that risk and 210 character of 256 is too much.
I see no other solution that the one you propose. Best is to use git-mv rather than mv for tracking purpose.

We should probably shorten the name of the demo as well… IBU-insurance-demo is already a lot to type.
--
Harley
From: AlexanderThomme @.>
Date: Friday, 26 July 2024 at 16:18
To: AthenaDecisionSystems/athena-owl-demos @.>
Cc: Subscribed @.***>
Subject: Re: [AthenaDecisionSystems/athena-owl-demos] Filename too long (Issue #7)
Exactly, this is a known issue with Windows/DOS. According to google the limit is 256.
Of course the problem will always happen if the repository is cloned in a directory deep in the file system, but we should avoid that risk and 210 character of 256 is too much.
I see no other solution that the one you propose. Best is to use git-mv rather than mv for tracking purpose.
—
Reply to this email directly, view it on GitHubhttps://github.com/AthenaDecisionSystems/athena-owl-demos/issues/7#issuecomment-2252872389, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AELMBY2R2VVERM2RH6FY3QDZOJLCJAVCNFSM6AAAAABLQJUNK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJSHA3TEMZYHE.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

and if we could remove space in folder and file name it will be great too. we can remove -demo as we are in a demo repo anyway.

From: Harley Davis @.>
Sent: Friday, July 26, 2024 7:33 AM
To: AthenaDecisionSystems/athena-owl-demos @.>
Cc: Subscribed @.***>
Subject: Re: [AthenaDecisionSystems/athena-owl-demos] Filename too long (Issue #7)
We should probably shorten the name of the demo as well… IBU-insurance-demo is already a lot to type.
--
Harley
From: AlexanderThomme @.>
Date: Friday, 26 July 2024 at 16:18
To: AthenaDecisionSystems/athena-owl-demos @.>
Cc: Subscribed @.***>
Subject: Re: [AthenaDecisionSystems/athena-owl-demos] Filename too long (Issue #7)
Exactly, this is a known issue with Windows/DOS. According to google the limit is 256.
Of course the problem will always happen if the repository is cloned in a directory deep in the file system, but we should avoid that risk and 210 character of 256 is too much.
I see no other solution that the one you propose. Best is to use git-mv rather than mv for tracking purpose.
—
Reply to this email directly, view it on GitHubhttps://github.com/AthenaDecisionSystems/athena-owl-demos/issues/7#issuecomment-2252872389, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AELMBY2R2VVERM2RH6FY3QDZOJLCJAVCNFSM6AAAAABLQJUNK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJSHA3TEMZYHE.
You are receiving this because you are subscribed to this thread.Message ID: @.***>
—
Reply to this email directly, view it on GitHubhttps://github.com/AthenaDecisionSystems/athena-owl-demos/issues/7#issuecomment-2252899601, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BJCTVNT4HOWDQUDLJA7LIVTZOJM3FAVCNFSM6AAAAABLQJUNK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJSHA4TSNRQGE.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


android-file-transfer: fix hash of version 3.8

Motivation for this change
Fix the hash which was accidentally left unchanged in the update to version 3.8 (8857abb3b687be2bbf5381d7cb65b2d01426be16).
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Thanks for fixing this. Sometimes we can miss this.

A bot might watch for us and raise a warning: https://github.com/NixOS/ofborg/issues/363

Not that you should miss the hash being changed, ahh the security implications :rofl:
But having ofborg do that is a very important automatic check we should have.

Well its not a security issue obviously. The previous hash referenced "trustworthy" code ideally.

Perhaps he meant that a PR submitter could put any kind of hash in there, e.g. with a "typo" in URL that would lead to fake pages (so that it wouldn't be easy to notice by bots or humans).

Perhaps he meant

@worldofpeace goes by they/them


"Obârșia" is listed in the drop-down menu

Description:
When user writes "Obârșia" the location appears in the drop-down menu next to the comune and the county witch is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Obârșia"
Expected results
The location appears in the drop-down menu as "Comuna Obârșia, OLT"


Reken Developer Handbook as printed book

Non-kindle reader here.
Have you thought of publishing the Reken Developer Handbook as printed book?  It should be simple from the amazon kdp website.

@unuseless thanks for the suggestion. I have looked into that. I was actually working on creating the printed book via aamazon kdp and ordered some proofprints. Unfortunately all the source formatting was very cluttered looking and required a lot of additional manual work. If there is enough demand, I would consider oublishing the Reken Developer Handbook as a printed book.
I also found the cost price via Amazon publishig was a minimum of $19.95 and with some markup to support Reken would be close to 30 dollars, which would make the book pretty expensive. Would that be something you would be willing to pay?
I found using the kindle app on my tablet to be  close resemblances of a hardcopy book, would that be something that would work for you?
Best
Henry

Thanks @hbroek .
I was considering buying as a form of support for the project, not to make more work for you.  However I do not have access to a kindle app or reader.
Can you "sell a pdf" through e.g. https://tentary.com/ ? You could charge more than kindle.

Hi,
Thanks for the suggestion. I made a PDF with table of contents available on https://reken.tentary.com/p/0KlwE5
Best
Henry

Thanks, it worked!


Update of apt::source to support new version of puppetlabs-apt

This is needed for supporting new puppetlabs-apt module versions.

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

This is very similar to #301, does that PR not work for you?

Seems acceptable, closing this.


Fixing equality for metadata-decorated composite types

Describe the bug 🐞
The macro @withmetadata adds a metadata property to a defined struct. This becomes an issue when propsequal is called because this function evaluates equality of two symbolic objects by evaluating the equality of their properties. But we shouldn't care about metadata when evaluating equality, as that only contains information about the cached results from express.
Minimal Reproducible Example 👇
julia> state1 = XBasisState(1, SpinBasis(1//2))
|X₁⟩

julia> state2 = XBasisState(1, SpinBasis(1//2))
|X₁⟩

julia> isequal(state1, state2)
false

julia> QuantumSymbolics.propsequal(state1, state2)
false

julia> i1, b1, m1 = propertynames(state1)
(:idx, :basis, :metadata)

julia> i2, b2, m2 = propertynames(state2)
(:idx, :basis, :metadata)

julia> isequal(getproperty(state1, m1), getproperty(state2, m2))
false

Is it sufficient to just skip :metadata in propsequal?
Also, jeez, how did this not pop up in the past... It looks like a pretty bad issue.

Is it sufficient to just skip :metadata in propsequal?
That would be the most straightforward fix IMO, although I wasn't sure if this is the most efficient fix and whether or not we should consider a better way of evaluating equality. Perhaps this is OK for now. This is somewhat related, but it might also be good to clean up the withmetadata macro in the process, as it's pretty ugly at the moment. We could maybe use the capture features from MacroTools.jl or MLStyle.jl. Let me know your thoughts.
Also, jeez, how did this not pop up in the past... It looks like a pretty bad issue.
I was surprised about this too, but it's most likely because the past few PRs have not dealt with predefined objects like basis states, which is how I encountered the issue.

I would suggest a separate PR for the simple fix for this issue, which can be merged quickly, and then potentially a future PR that simplifies the macro, if that is reasonably easy to do with the tools you had suggested. There is also https://github.com/Roger-luo/Expronicon.jl which can be useful for this type of work.

OK, that sounds good.


Screenshots / 效果图

和post里的基本没区别。
Necessity / 必要性

Others / 其它
我10月3日才动工。
看在我这么有效率的份上给我150怎么样？
Checklist

[x] Run sh scripts/test.sh, no tests failed.

If you changed the html templates or css/js, you must:

[x] Paste screenshots.

If you changed the Python code, you must:

[x] Add tests that demonstrate the correct behavior of the change. Tests should fail without the change.

我去 Code Coverage又是什么鬼

那是个事故
我一开始不会搞
然后按flask-migrate的文档来搞
发现全没了


Add-Migration error: The key {'TempId'} contains properties in shadow state and is referenced by a relationship

In my following Model if I have the following the Add-Migration command works fine but if I replace datatype of StateName from string to List<SelectListItem> I get the error shown below. I'm using latest ASP.NET Core 1.0 and VS2015-Update 3 on win 8.1. I've just added the following class in the Model of this MSDN tutorial:
public class State
    {
        public int StateId { get; set; }
        public string StateCode { get; set; }
        public string StateName { set; get; } //Add-Migration works but does NOT work if datatype string is replaced with `List<SelectListItem>`
    }

Error:
[System.InvalidOperationException: The key {'TempId'} contains properties in shadow state and is referenced by a relationship from 'SelectListGroup' to 'SelectListItem.Group'. Configure a non-shadow principal key for this relationship.    at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.KeyConvention.Apply(InternalModelBuilder modelBuilder)     at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnModelBuilt(InternalModelBuilder modelBuilder)      at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder, IModelValidator validator)      at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)      at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()      at Microsoft.EntityFrameworkCore.Internal.LazyRef1.get_Value()
at Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.TransientCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.TransientCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.AddMigration(String name, String outputDir, String contextType)
at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsAddCommand.Execute(CommonOptions commonOptions, String name, String outputDir, String context, String environment, Action1 reporter)      at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsAddCommand.<>c__DisplayClass0_0.<Configure>b__0()      at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)      at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args)   The key {'TempId'} contains properties in shadow state and is referenced by a relationship from 'SelectListGroup' to 'SelectListItem.Group'. Configure a non-shadow principal key for this relationship. ](url)

You are trying to add SelectListItem to your model, that's not how it's supposed to work.
The error is because it can't create a shadow property with a key to the parent. (SelectListItem has string and your State Id is int)
Maybe you can make it somehow work by adding a key explicit using Fluent API. Still, adding a SelectList entity (class owned by MVC) into your database model is not a good idea.
disclaimer: I'm not very familiar with EF, so take everything said with a grain of salt.

When you include navigation of type List<SelectListItem> that will bring SelectListItem as entity type in model. And all other types referenced by properties in it will be also brought in the model (recursively). See https://ef.readthedocs.io/en/latest/modeling/included-types.html#id2 to know how conventions discover types through navigations.
Every entity type must have a non-shadow primary key defined on them and every relationship must be pointing to a non-shadow key. Since those classes discovered by conventions may not have a property named Id, shadow keys are created temporarily which are not replaced with non-shadow keys hence eventually it throws exception like above.
As @Bartmax said, it is really bad idea to bring in types which are not domain classes because you cannot be sure of their shapes as a proper entity type and related entity types they may discover further.

Given that SelectListItem doesn't have a property that can be used as a primary key, the best option would be to create an entity class that wraps SelectListItem and captures that data that needs to be saved/queried. In the future, something like our Flexible Mapping feature (https://github.com/aspnet/EntityFramework/issues/240) would make reading/writing from/to a SelectListItem property a possibility.


Use theme import for filterInactiveReferences

Bug/issue #, if applicable: 141015022
Summary
The theme import variant allows this behavior to be adjusted if desired.
Testing
Steps:

Verify that there are no changes in behavior to the existing logic for filtering external references.

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[ ] Added tests (minor syntax change that isn't directly testable)
[X] Ran npm test, and it succeeded
[X] Updated documentation if necessary

@swift-ci test


fix: 🐛 correction old links

performed the correction of links of the old repository
BREAKING CHANGE: 🧨 old links
✅ Closes:  old links

Can you add tests?

Help me please. I don't know how to send the tests.

Can you add tests?

@nandosangenetto Nando, Only changes in links. You have a teste for links?


When is video support coming?

I want to develop an app that uses Sam2 to segment videos on device. Is there going to be an update for video support?

+1

#25


bring back identifier-registration.yaml, strip commented stuff, rebuild embed.go

Description
konnectd/assets/identifier-registration.yaml was removed in #1390 but should have been moved to idp/assets/identifier-registration.yaml
This PR brings back the file, removes commented stuff from that file. In order to build the embed.go file in CI, also the Makefile and CI was fixed.
Related Issue

Motivation and Context

How Has This Been Tested?

local test -> login possible

Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

https://drone.owncloud.com/owncloud/ocis/3142/75/2
docker-arm: Error response from daemon: No such image: owncloudci/nodejs:12
It looks like https://hub.docker.com/r/owncloudci/nodejs/tags?page=1&ordering=last_updated is only amd64

https://drone.owncloud.com/owncloud/ocis/3142/75/2
docker-arm: Error response from daemon: No such image: owncloudci/nodejs:12
It looks like https://hub.docker.com/r/owncloudci/nodejs/tags?page=1&ordering=last_updated is only amd64

CI related part moved to #1580


MX Anywhere 2S doesn't actually change dpi?

For everything I've tried, I'm pretty certain that whatever I do, changing DPI for MX Anywhere 2S in bluetooth mode does not actually do anything..
First of all ratbagd --verbose gives:
ratbag debug: New device: MX Anywhere 2S
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: device assigned driver hidpp20
ratbag debug: hidraw info: bus 0x05 vendor 0x46d product 0xffffb01a
ratbag debug: MX Anywhere 2S is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: - HID report ID 11
ratbag debug: 'MX Anywhere 2S' is using protocol v4.5
ratbag debug: device battery level is 90% (next 50%), status 0
ratbag debug: device has programmable keys/buttons
ratbag debug: device has 8 buttons
ratbag debug: device has adjustable dpi
ratbag debug: device is at 1000 dpi (variable between 200 and 4000).
ratbag debug: device is at 1000 dpi (variable between 200 and 4000).
ratbag debug: device has 8 buttons
ratbag debug: driver match found: Logitech HID++2.0
hidraw0: "MX Anywhere 2S", 1 profiles

I do see these when commands are run:
$ ratbagctl "MX Anywhere 2S" resolution 0 get
0: 4000dpi (active)

$ ratbagctl "MX Anywhere 2S" profile 0 resolution 0 dpi set 200

$ ratbagctl "MX Anywhere 2S" resolution 0 get
0: 200dpi (active)

but nothing happends on on mouse behaviour at all..
and when I kill the ratbagd and run it again, it again says ratbag debug: device is at 1000 dpi (variable between 200 and 4000). and
$ ratbagctl "MX Anywhere 2S" resolution 0 get
0: 1000dpi (active)

So at least that doesn't seem to stick either. Don't I understand something, or does something woe?
OS: Ubuntu 19.04
ratbagd version is 0.10
longer version 0.10-1-201910232047~ubuntu19.04.1
Installed from PPA
EDIT/ADD:
When I try to use Piper to change, well, any setting whatsoever, it will say "Something went wrong. The device has been reset to previous state." when pressing apply. Also tried both ratbagd+ratbagctl and piper with sudo and same results.. So kind of "definately" something doesn't work here now...

i gave the same problem

Can you run with ratbagd --verbose=raw?

If not, that is probably also https://github.com/libratbag/libratbag/issues/716.

Indeed, no setting seem to work, so I believe you are right the case could then be same/similar as #716

Can you try #890?

Time to be newbie, how do I try this as so far I've just been happy to use the libratbad-piper-git PPA? :)

No problem!
git clone -b fix-hiddp20-no-report-rate https://github.com/FFY00/libratbag.git
cd libratbag
mkdir build
cd build
meson ..
ninja

Then make sure you the daemon is not running.
sudo systemctl stop ratbagd
sudo killall ratbagd

And finally run the daemon we just compiled.
./ratbagd --verbose

Now you can test with ratbagctl or piper.

I think there is something that Idon't have caught with compiling... with default python3.7 compiling seemed to work, but nothing ran... with python 3.8 I get million lines of similar /usr/bin/ld: /usr/local/lib/libpython3.8.a(abstract.o): relocation R_X86_64_PC32 against symbol _Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC`.
While this is obviously fail on my part I'm soon starting to feell stumped for such simple compilation turning sour =)

Try a clean build for python 3.8.
In the build directory
rm -rf *
meson ..
ninja

Nope... For this, and plenty of other indirectly related issues I think I'll need to redo this damned computer anyway, and do it good this time with proper rollback features enabled and whatnot... Unless I can figure out how to fix anything on this thing I'll report back later.. sorry for the delay

No problem :grin:.

Building the branch with python 3.7 worked (even though I got tons of errors) worked for me.
But after killing the daemon and launching the newly compiled one (sudo ./ratbagd --verbose), the device shows up but ratbagb can not locate its files for some reason. I get the following info after connecting the device and it does not show up when using ratbagctl list:
ratbag debug: New device: Logitech MX Master 2S
ratbag debug: Using data directory '/usr/local/share/libratbag'
ratbag error: Unable to locate device files in /usr/local/share/libratbag: No such file or directory

Ah, sorry. I forgot we are hardcoding the prefix.
In the build directory:
rm -rf *
meson .. --prefix=/usr
ninja

That worked, thanks.
Now, I can change settings via ratbagctl or piper and none of them complains about issues anymore. But the changes I make to the mouse button mapping are still not reflected on the mouse...

Not all mappings are supported. What are you trying to configure?
I tried a simple button remapping (forward to left click) in my MX Master 3 and it worked.

Weird, I am not sure what is happening here. It works for me :confused:.

Hmm, not sure what does not work here (I am on F31, do you see anything in the logs?). Maybe I am just missing something...

Do other settings work? Ex. change dpi.

No, I do not feel any notable difference between min (200 dpi) and max (4000 dpi).

Here we go, now all my changes get applied :smile:

Ah, great! That was weird.

Super weird, for some reason it needed a few minutes before accepting my changes.

Ok, something is definitely fishy here:
After changing my settings (e.g. ratbagctl 'MX Master 2S' dpi set 200) I have to execute a follow up ratbagctl 'MX Master 2S' dpi get to get the changes applied.

Ah, and all the changes I make are lost after disconnecting and reconnecting the mouse.

Okay, can you do the following:
git fetch
git rebase better-errors
ninja

Then re-run ./ratbagd --verbose and paste the log.

Sure, here you go.
 Some devices
    don't have report rate but hidpp20drv_update_report_rate is called
    in hidpp20drv_commit. This caused hidpp20drv_commit to fail.

     Can you confirm that sometimes when you run the command all you get is that message (no communication is made with the device)?

I do not getting any output after ratbagctl 'MX Master 2S' dpi set X, but the following output after ratbagctl 'MX Master 2S' dpi get when I changed the value to a different one with ratbagctl 'MX Master 2S' dpi set X before:
ratbag debug: commiting device
ratbag raw: dpi index: 0, profile 0
ratbag raw: hidpp write:  11 ff 0b 38 00 03 e8 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: hidpp read:   11 ff 0b 38 00 03 e8 00 00 00 00 00 00 00 00 00 00 00 00 00

I just cam across this thread today and everything works as expected on Fedora 32 and ratbagctl 0.13 🎉

For me it only updates once. I need to run sudo killall libratbag in order to set the same DPI value twice. Weirdly enough, If I set different DPI values after each other, it seems to work.
Rel: https://github.com/libratbag/libratbag/issues/596#issuecomment-985897351

Can confirm that it works. Most other functionality fails, though.


iOS - crashing when creating LocationMonitor.createiOSLocationManager

iOS 11
emulator
CLI: 4.1.0
Cross-platform modules: 4.1.0

Please, tell us how to recreate the issue in as much detail as possible.
Describe the steps to reproduce it.
When calling geolocation.enableLocationRequest() it creates LocationMonitor.createiOSLocationManager.
But when I acccess a short conditional branch clause  inside createiOSLocationManager the program was crashed and died.
in geolocation.ios.js
LocationMonitor.createiOSLocationManager = function (locListener, options) {
...
// original codes
//        iosLocManager.pausesLocationUpdatesAutomatically =
//            options && options.iosPausesLocationUpdatesAutomatically != null ?
//                options.iosPausesLocationUpdatesAutomatically : true;
// modified codes
if (options) {
if (options.iosPausesLocationUpdatesAutomatically != null) {
iosLocManager.pausesLocationUpdatesAutomatically = options.iosPausesLocationUpdatesAutomatically ;
}
else {
// Accessing below code raises crash
//                iosLocManager.pausesLocationUpdatesAutomatically = false;
}
}
return iosLocManager;
};

I think the code below is working not ok in my emulator.
iosLocManager.pausesLocationUpdatesAutomatically = options && options.iosPausesLocationUpdatesAutomatically != null ? options.iosPausesLocationUpdatesAutomatically : true;

I don't know why but after reinstalling platforms and refactoring my application code it worked.
My codes were not using Promise value returned from geolcation.getCurrentLocation().then()
So I changed to use returnValue.then() to use location and it worked.


util: update list_changes.py to support multiple Change-Ids

The original version of list_changes.py assumed no more than one Change-Id tag per commit. However, since transitioning to GitHub, the repository now contains some merge commits containing multiple Change-Ids.
This patch updates list_changes.py to support commits with any number of Change-Id tags.

Hi @powerjg. We could work around dropping the requirement, although the Change-Ids are nice to have. We will continue adding them on our side at least.
My understanding was that we'd already agreed to drop that requirement, and @BobbyRBruce was going to look into adding an optional-but-recommended alternative tag as a pre-commit step that we could use instead (with the understanding that not having the tag would not block a commit). Having said that, I think we could still work around having untagged commits.

@BobbyRBruce it would be great if we had a way to link the commits back to a PR (and more importantly the associated discussion), but I understand that would be very hard to automate.
The use case you described (cherry-picking) is the main one I am interested in, but I think we can make it work with Change-Ids only in our own commits.


Bump Ruby version for Netlify

Rather than specifying an old Ruby version, ~don't set any version. The site can build without Ruby~ pick something recent.
If we don't specify any version, Netlify tries to install an even older Ruby.

/retitle Bump Ruby version for Netlify

Seems like it can't hurt to use a newer version, even if we don't ourselves use Ruby.

The Ruby upgrade looks good.
2:11:10 PM: ruby-3.0.1 - #configure
2:11:10 PM: ruby-3.0.1 - #download
2:11:12 PM: No checksum for downloaded archive, recording checksum in user configuration.
2:11:12 PM: ruby-3.0.1 - #validate archive
2:11:18 PM: ruby-3.0.1 - #extract
2:11:21 PM: ruby-3.0.1 - #validate binary
2:11:21 PM: ruby-3.0.1 - #setup
2:11:22 PM: ruby-3.0.1 - #gemset created /opt/buildhome/.rvm/gems/ruby-3.0.1@global
2:11:22 PM: ruby-3.0.1 - #importing gemset /opt/buildhome/.rvm/gemsets/global.gems........................................
2:11:23 PM: ruby-3.0.1 - #generating global wrappers........
2:11:23 PM: ruby-3.0.1 - #gemset created /opt/buildhome/.rvm/gems/ruby-3.0.1
2:11:23 PM: ruby-3.0.1 - #importing gemsetfile /opt/buildhome/.rvm/gemsets/default.gems evaluated to empty gem list
2:11:24 PM: ruby-3.0.1 - #generating default wrappers........
2:11:24 PM: Using /opt/buildhome/.rvm/gems/ruby-3.0.1
2:11:25 PM: Using ruby version 3.0.1

Thanks @sftim .
/lgtm

/approve


net: sockets: Fix datagram AF_PACKET socket handling

This PR fixes the datagram AF_PACKET socket handling, which improperly received packet a packet before it was processed by L2 layer.
Additionally, fix the existing unit test to work correctly after update, so that the packets used in the test are not rejected by L2. Finally add two new unit tests for DGRAM sockets to improve test coverage.
Fixes #45514

CC @krish2718

LGTM, let me test and update.

I have ported this to ncs-zephyr (include/zephyr/net -> include/net) and tested with my app, the L2 packets are being dropped at subsys/net/l2/ethernet/ethernet.c: ethernet_recv because the type is not supported, my app is using a custom protocol for L2, so, I guess it needs to be patched as well?

In wpa_supplicant l2 packet  an arbitrary protocol will be passed, in this specific case its EAPOL 0x888e.

In wpa_supplicant l2 packet  an arbitrary protocol will be passed, in this specific case its EAPOL 0x888e.

Ok, in such case we need to handle EAPoL in ethernet_recv() specifically, or maybe we could change the default behaviour in case DGRAM packet sockets are enabled, i. e., pass unrecognized EtherTypes as well to the application in such case. @jukkar Do you have an opinion on that?

Yes, at Ethernet L2 level allow all packets, and then filter them at packet socket level based on protocol registered during socket open.

@krish2718 can you please approve if it fixes your issue?

@krish2718 can you please approve if it fixes your issue?

No, it doesn't fix my issue.
Before fix: packets received without L2 processsing
With fix: packets dropped during L2 processing, so, not received by app.

@krish2718 can you please approve if it fixes your issue?

No, it doesn't fix my issue.
Before fix: packets received without L2 processsing
With fix: packets dropped during L2 processing, so, not received by app.

I think that a broken datagram socket processing and unsupported EtherType are two separate topics (especially that there were no mention of it in the original report), but I have added an extra commit here which allows to forward any Ethernet frame type to the application. Please give it a try.

@krish2718 can you please approve if it fixes your issue?

No, it doesn't fix my issue.
Before fix: packets received without L2 processsing
With fix: packets dropped during L2 processing, so, not received by app.

I think that a broken datagram socket processing and unsupported EtherType are two separate topics (especially that there were no mention of it in the original report), but I have added an extra commit here which allows to forward any Ethernet frame type to the application. Please give it a try.

The packets are coming now, but they are being treated as RAW packets (proto = ETH_P_ALL: through conn_raw_socket) and hence no L2 processing is done, L2 header is still intact. You can easily test this by modifying the testcase to set protocol as 0x888e.

Apologies, I have picked up wrong ZEPHYR that didn't have your full changes, it works now.

Apologies, I have picked up wrong ZEPHYR that didn't have your full changes, it works now. Feel free to merge.

CC @carlescufi

I will close my PR https://github.com/zephyrproject-rtos/zephyr/pull/45513 as that test is covered here.


css function attr() support - Updated supported browsers with issues

Updated css attr function support information.
Partially supported browsers: IE11, chrome, firefox, safari.
Why no full support? : attr works only with content property in above browsers. As per specifications, it should work with any property like font-size, color etc.

This entry is explicitly for the CSS3 version of attr(), which requires it be usable anywhere.
http://caniuse.com/#feat=css-gencontent covers the content:-only version from CSS2.
(Maybe these should be reorganized? IDK.)

@cvrebert are you suggesting the changes needs to be made somewhere else? other than features-json/css3-attr.json ?

I have updated http://caniuse.com/#feat=css3-attr to make it more clear that it covers support specifically for attr() on any property, with a link to http://caniuse.com/#feat=css-gencontent in the notes. I think that should be sufficient.


Is there an example for setting options for liquid-spacer?

http://ef4.github.io/liquid-fire/#/helpers/liquid-spacer indicates I can set growDuration, but I have no idea where that would be set.

{{#liquid-spacer growDuration=100}}

Thanks, that actually is the first thing I tried, I think I was just animating the wrong block.  If it's something you want I can tweak the demo docs slightly to include this and do a PR.


T02.06-Solution-AddPolish Bug

i tried to make the GithubQueryTask AsyncTask to fetch the data every time it gets me error message.
when i tried to put "else" statment in the onPostExecute method like this
 @Override         protected void onPostExecute(String githubSearchResults) {             mLoadingIndicator.setVisibility(View.INVISIBLE);             if (githubSearchResults != null && !githubSearchResults.equals("")) {                 showJsonDataView();                 mSearchResultsTextView.setText(githubSearchResults);             }else             showErrorMessage();         }
the code worked correctly and it fetched the requested data

Isn't that the same as they show here:
https://classroom.udacity.com/courses/ud851/lessons/e5d74e43-743c-455e-9a70-7545a2da9783/concepts/591ff476-467a-4696-8501-3b6fa465118c
Starting at frame: 1:58

i think yeah it's the same in this video but in the code here i think they forgot to add "else" in it when i opened this issue but i think they fixed it now :)


Expose object_safe property on type Trait

Rustdoc as of format version 28 shows whether traits are object-safe or not: https://docs.rs/rustdoc-types/latest/rustdoc_types/struct.Trait.html#structfield.is_object_safe
We want to expose a new object_safe: Boolean! field on type Trait so we can query this information in cargo-semver-checks lints.

@obi1kenobi This is WeblWabl from the timclicks discord - we had a brief discussion about OSS contribs :D I think I'm going to take on this issue & https://github.com/obi1kenobi/cargo-semver-checks/issues/635 since they are dependencies.

@obi1kenobi Can I get permission to push to the github repository? I don't think I have read rights 🤔

Could you try forking the repo and opening a PR that way? The publishing
config is a bit sensitive here so I'd rather not mess with the permissions
if it's possible to avoid it right now.
On Fri, Feb 9, 2024, 10:19 PM WeblWabl @.***> wrote:

@obi1kenobi https://github.com/obi1kenobi Can I get permission to push
to the github repository? I don't think I have read rights 🤔
—
Reply to this email directly, view it on GitHub
https://github.com/obi1kenobi/trustfall-rustdoc-adapter/issues/320#issuecomment-1936835334,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAR5MSQEQRFEPM5S4M6UYILYS3RNDAVCNFSM6AAAAABBZCT2VGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZWHAZTKMZTGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

We could probably link this commit to the issue and close it out now :D https://github.com/obi1kenobi/trustfall-rustdoc-adapter/pull/323

Nice! Resolved in #323 and published in v28.0.2.


Functional Improvements to Today Widget

Requested by @chadsy on #1211
As an increment on this enhancement, I'd love to see:

The cells in the widget be "concentrated" to just maybe 2 lines: e.g. feature their name (which the user can shorten/mnemonize), status, and next N times (3 seems reasonable)
There be some indication of "freshness" of the fetch, which is sometimes crucial for widgets because they can be slow to update

I'm getting close on this. Couple more outstanding tasks:

[ ] Improve the display of the loading cells on TodayViewController. They look weird on the visual effect view background.
[ ] Implement the error version of the bookmarked route cell.
[ ] Finish up the 'last updated at' row on the today controller. include the ability to refresh the table data by tapping on the row.


how should i set the max velocity so that wall does not pass through the walls?

Initially

When I press the down key for a long time. Ball becomes so fast that it goes through the wall and reaches the bottom like shown below

Also if ball strikes the borders with a high speed  it disappears and cannot be brought back.

There are usually four parts...
https://brm.io/matter-js/docs/classes/Body.html#method_setVelocity

x:
the X value
y:
the Y value

{ x: xSpeed, y: ySpeed }
It looks like you're setting up 4-way controls. If the ball is moving left or right, why not change the "y" speed to "0" instead?
I use Hype and Matter.js, so it might be different for me, but I usually have be specific with both X & Y values. If I only want to change the Y value, I get (getVelocity) the current X value before using setVelocity. If I simply put "x" instead of "x: 0", I get this...

ReferenceError: Can't find variable: x

Anyway, that's how I do it. While matter.js doesn't have CCD, at least not yet, if the speeds are slow enough, it should be good. Here's an example that is very similar to your project...
https://photics.com/games/picopede/
Picopede's speed is set to 2.5. You're using 5, which is faster, but doesn't seem too fast — not for Picopede. I tried setting Picopede's speed to 5 and it was OK. Perhaps the problem is that the walls are too thin. 🤔

Initially

When I press the down key for a long time. Ball becomes so fast that it goes through the wall and reaches the bottom like shown below

Also if ball strikes the borders with a high speed  it disappears and cannot be brought back.
If I set a maximum value for the velocity what should should be the max velocity?
`document.addEventListener('keydown', event =>{
const {x,y} = ball.velocity;
if(event.keyCode === 87 || event.keyCode === 38){
console.log('Move the ball Up')
Body.setVelocity(ball, {x, y:y-5})
}
if(event.keyCode === 83 || event.keyCode === 40){
console.log('Move the ball down')
Body.setVelocity(ball, {x, y:y+5})
}
if(event.keyCode === 68 || event.keyCode === 39){
console.log('Move the ball right')
Body.setVelocity(ball, {x:x+5, y})
}
if(event.keyCode === 65 || event.keyCode === 37){
console.log('Move the ball left')
Body.setVelocity(ball, {x:x-5, y})
}
})`

Initially

When I press the down key for a long time. Ball becomes so fast that it goes through the wall and reaches the bottom like shown below

Also if ball strikes the borders with a high speed  it disappears and cannot be brought back.
If I set a maximum value for the velocity what should should be the max velocity?
`document.addEventListener('keydown', event =>{
const {x,y} = ball.velocity;
if(event.keyCode === 87 || event.keyCode === 38){
console.log('Move the ball Up')
Body.setVelocity(ball, {x, y:y-5})
}
if(event.keyCode === 83 || event.keyCode === 40){
console.log('Move the ball down')
Body.setVelocity(ball, {x, y:y+5})
}
if(event.keyCode === 68 || event.keyCode === 39){
console.log('Move the ball right')
Body.setVelocity(ball, {x:x+5, y})
}
if(event.keyCode === 65 || event.keyCode === 37){
console.log('Move the ball left')
Body.setVelocity(ball, {x:x-5, y})
}
})`

having the same problem

@michael-garofalo walls being a thin is not a problem i even tried of setting "x:0" for setting velocity when i am just moving in "y" direction but the problem mentioned by @kushal0406  still exists

@michael-garofalo walls being a thin is not a problem i even tried of setting "x:0" for setting velocity when i am just moving in "y" direction but the problem mentioned by @kushal0406  still exists
I am afraid that this is a famous problem called tunneling and still an open issue since 2014,
more on this issue here #5 , sad thing is @liabru is still trying to work this out, i hope he does it.
Simulating Physics in computational world is very hard

As mentioned it looks like your problem is most likely a combination of:

there's currently no CCD (I know, I know)
bodies are too thin (make them thicker)
bodies are too fast (slow them down)
timestep is too large (use a smaller timestep and multiple updates per frame)

You could should implement your own checks (e.g. do a ray cast) before letting the player move if possible.
I should say too though that most CCD implementations will still not be a magic bullet and will have edge cases, so unfortunately satisfying the above problems too is always recommended.

With a bit thicker walls, limiting the velocity may do the trick
For example:
        const limitMaxSpeed = () => {
            let maxSpeed = 1;
            if (body.velocity.x > maxSpeed) {
                Body.setVelocity(body, { x: maxSpeed, y: body.velocity.y });
            }

            if (body.velocity.x < -maxSpeed) {
                Body.setVelocity(body, { x: -maxSpeed, y: body.velocity.y });
            }

            if (body.velocity.y > maxSpeed) {
                Body.setVelocity(body, { x: body.velocity.x, y: maxSpeed });
            }

            if (body.velocity.y < -maxSpeed) {
                Body.setVelocity(body, { x: -body.velocity.x, y: -maxSpeed });
            }
        }
        Events.on(engine, 'beforeUpdate', limitMaxSpeed);

With a bit thicker walls, limiting the velocity may do the trick
For example:
        const limitMaxSpeed = () => {
            let maxSpeed = 1;
            if (body.velocity.x > maxSpeed) {
                Body.setVelocity(body, { x: maxSpeed, y: body.velocity.y });
            }

            if (body.velocity.x < -maxSpeed) {
                Body.setVelocity(body, { x: -maxSpeed, y: body.velocity.y });
            }

            if (body.velocity.y > maxSpeed) {
                Body.setVelocity(body, { x: body.velocity.x, y: maxSpeed });
            }

            if (body.velocity.y < -maxSpeed) {
                Body.setVelocity(body, { x: -body.velocity.x, y: -maxSpeed });
            }
        }
        Events.on(engine, 'beforeUpdate', limitMaxSpeed);

This solution without bug and simpler
const limitMaxSpeed = (event) => {
event.source.world.bodies.forEach((body) => {
let maxSpeed = 10
Matter.Body.setVelocity(body, {
x: Math.min(maxSpeed, Math.max(-maxSpeed, body.velocity.x)),
y: Math.min(maxSpeed, Math.max(-maxSpeed, body.velocity.y)),
})
})
}
Matter.Events.on(engine.current, 'beforeUpdate', limitMaxSpeed)