text:
Document Review Web App updates on UX, performance optimization

Title of ticket:
Description
When a requeust having hundreds of files, that are heavy we need measure the performance of UX, Front end and Client side  memory utilization. Technically, there can be multiple child tasks spliting given estimate - not a single task, hence a bulk estimate!! There are CASES that involves REDACTING, REDLINING all documents in a single GO and Saving it - There are high chances of issues here!! Design / Arch updates ??
Note - this likely needs to be split up in smaller tickets. This is essentially a load test for the records review to ensure we understand the performance as we try to simulate a live environment.
Dependencies
Are there any dependencies?
The request on test-marshal for this ticket is EDU-2023-1319
https://test-reviewer-web-marshal.apps.silver.devops.gov.bc.ca/foi/558
DOD

[ ] Analyze, Prepare stats on current state on FOI Doc Reviewer for bulk actions - Search(Comments, Content) , REDLINE SAVE, RESPONSE
[ ]  Decide on the stats and go forward!
[ ]
[ ]

Tentatively in Sprint June 21-July 5

Needs to fix this issue as its happening for a large number of pages in the package https://app.zenhub.com/workspaces/foi-flow-607f0ab6ae54b700111dc733/issues/gh/bcgov/foi-flow/4244

Section search not working on  10k pages

Did some performance tests on saving redline over test-marshal. For over 10 thousand pages (https://test-reviewer-web-marshal.apps.silver.devops.gov.bc.ca/foi/558), it took about 4 - 5 minutes to save all the redline documents to object storage.

Private Zenhub Image

Private Zenhub Image

Private Zenhub Image
Refer ticket

This activity cannot be taken for huge files with 3X of annotations. Created tech debt 4509; to resolve before this task continues.

Occasionally getting this, need to analyze , Private Zenhub Image

This request mentioned above which was not loading in test-marshal is loading now (Resolution as part of 4509) https://test-reviewer-web-marshal.apps.silver.devops.gov.bc.ca/foi/558 (10878 pages in 42 seconds)

Observation#2 : Error on Zipper Service POD/ or with any POD that talks with Notification REDIS or service . Private Zenhub Image

test-marshal request with 1000 files, 1 page each with text only:
https://test-reviewer-web-marshal.apps.silver.devops.gov.bc.ca/foi/681
docreviewer takes a very long time to load, I haven't been able to actually load it yet. Browser runs really slowly when tab is open as well, and chrome dev tools become nearly unresponsive.

I got @milosdes link to load - https://test-reviewer-web-marshal.apps.silver.devops.gov.bc.ca/foi/681
But it took hours...

Some more testing with simple text-only pdf files. It looks like docreviewer breaks if there are more than 999 files??
Loading times:
100 files - takes about 30 seconds to load.
200 files - just under a minute
400 files - under two minutes
800 files - about 5 minutes
999 files - 7 minutes
1001 files - error and does not load
Other notes:
When it gets close to 1000 files, clicking on the "records" tab, it takes a few seconds to load files, and shows "No records are available to list, please confirm whether records are uploaded or not" while loading.

I am having similar issues with docviewer (over 1000 files does not load) however there are no console errors for me and it is still loading fine in the records tab in foi flow. This is using test-marshal

500 pdf files with simple text (created with the script milos sent) -> took 3.5 to 4mins to load. No errors or anything so far. Will edit this message if any future errors are found.
Link to request:
https://test-reviewer-web-marshal.apps.silver.devops.gov.bc.ca/foi/688

I tried loading the same request a three times with removing/adding files to change from 999 to 1001, and each time was able to load it with 999 files, and got the error with 1001 files, so it looks like that is indeed causing an issue.
In general, I'm thinking that it might make sense to combine single-page pdf files at some point in the upload process. Performance between 100 or 200 files vs 900 seems to be quite drastic.

https://test-marshal-foirequest.apps.silver.devops.gov.bc.ca/foi/foirequests/689/ministryrequest/689, or EDU-2023-12101643 on TEST-Marshal, uploaded ~3000 pdf records with only 1 page , size of 2KB each, means less than 4MB in total. Seems like Document count is problem, lets see with @nkan-aot PR merge to Test-marshal

For this request that Aman created https://test-reviewer-web-marshal.apps.silver.devops.gov.bc.ca/foi/688 redaction box is missing on the page if we select from the left panel.(500 pages as 500 individual document)
Private Zenhub Image

If we have more than 10 k pages, then getting unresponsive message and also 'Total pages' is blank.
[Uploading... image.png]

To Summarize,
The first level of performance optimization and bench marking of Document Reviewer web has been done and its been decided to go ahead with this level of loading time. ie around 2 minutes for a request with 235 files uploaded, that has 1000 pages and 148 MB size in total. Refer this request, https://test-marshal-foirequest.apps.silver.devops.gov.bc.ca/foi/foirequests/655/ministryrequest/655  At the time of bench marking this was the records details
Private Zenhub Image
Private Zenhub Image
This load was decided and explained to the entire team on OCT-25th Sprint planning and it was decided based on the below stats from FOI FLOW after gathering records release and team know that this stats wont cover CFD personals - Scanning scenario for that we are planning an another approach of perf. optimization and there is a ticket (999+ single page doc. stitch issue) PDFTON open to get this fixed. Also, @abin-aot suggested an option to use DOCUMENT SET style or a kind of PAGINATED approach to load only a max up to 900 documents/ a max count of combination with file, page at a given point of time.
Private Zenhub Image

The above stats need to be reconfirmed  by @abin-aot after PDFTRON upgrade to 10.5

authors: Aman-Hundal abin-aot antsand lmullane m-prodan milosdes nimya-aot nkan-aot richard-aot sumathi-thirumani-aot

repo: bcgov/foi-flow


text:
BCMOHAD-13391 || removed value from picklist

removed value from picklist

Closing this PR as no change is needed here as the value is already deactivated in the qa

source: gharchive/pull-request

repo: bcgov/moh-maid

license_type: permissive

license_source: github-api


text:
[Snyk] Security upgrade eslint from 8.57.0 to 9.0.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

frontend/package.json

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Breaking Change
Exploit Maturity

141/1000  Why? Confidentiality impact: None, Integrity impact: None, Availability impact: High, Scope: Unchanged, Exploit Maturity: Proof of Concept, User Interaction (UI): None, Privileges Required (PR): None, Attack Complexity: Low, Attack Vector: Local, EPSS: 0.01055, Social Trends: No, Days since published: 128, Reachable: No, Transitive dependency: Yes, Is Malicious: No, Business Criticality: High, Provider Urgency: Medium, Package Popularity Score: 99, Impact: 5.99, Likelihood: 2.35, Score Version: V5
Missing Release of Resource after Effective Lifetime SNYK-JS-INFLIGHT-6095116
Yes
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.

Commit messages

Package name: eslint
    The new version differs by 231 commits.

e0cbc50 9.0.0
75cb5f4 Build: changelog update for 9.0.0
19f9a89 chore: Update dependencies for v9.0.0 (#18275)
7c957f2 chore: package.json update for @ eslint/js release
d73a33c chore: ignore `/docs/v8.x` in link checker (#18274)
d54a412 feat: Add --inspect-config CLI flag (#18270)
e151050 docs: update get-started to the new `@ eslint/create-config` (#18217)
610c148 fix: Support `using` declarations in no-lone-blocks (#18269)
44a81c6 chore: upgrade knip (#18272)
94178ad docs: mention about `name` field in flat config (#18252)
1765c24 docs: add Troubleshooting page (#18181)
e80b60c chore: remove code for testing version selectors (#18266)
96607d0 docs: version selectors synchronization (#18260)
e508800 fix: rule tester ignore irrelevant test case properties (#18235)
a129acb fix: flat config name on ignores object (#18258)
97ce45b feat: Add `reportUsedIgnorePattern` option to `no-unused-vars` rule (#17662)
651ec91 docs: remove `/* eslint-env */` comments from rule examples (#18249)
950c4f1 docs: Update README
3e9fcea feat: Show config names in error messages (#18256)
b7cf3bd fix!: correct `camelcase` rule schema for `allow` option (#18232)
12f5746 docs: add info about dot files and dir in flat config (#18239)
b93f408 docs: update shared settings example (#18251)
26384d3 docs: fix `ecmaVersion` in one example, add checks (#18241)
7747097 docs: Update PR review process (#18233)

See the full diff

Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

Thanks for the PR!
Deployments, as required, will be available below:

Frontend
Backend

Please create PRs in draft mode.  Mark as ready to enable:

Analysis Workflow

After merge, new images are promoted to:

Merge Workflow

Held back by @typescript-eslint/parser.  Since this is a dev dependency we can afford to wait.

authors: DerekRoberts bcgov-devops

repo: bcgov/nr-results-exam


text:
feat: create favourite openings api

Description
Create APIs to handle User Favourite Openings.
Fixes Jira task SILVA-358
Type of change

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Tested locally on Swagger-UI and with unit tests.
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have already been accepted and merged

Further comments

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend: https://nr-silva-266-backend.apps.silver.devops.gov.bc.ca/actuator/health
Frontend: https://nr-silva-16-frontend.apps.silver.devops.gov.bc.ca
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

@DerekRoberts  code coverage on the way. I'll be pushing more unit tests tomorrow 🚀

@DerekRoberts much better now 😄

repo: bcgov/nr-silva


text:
Improve cypress performance

Cypress tests currently pass but come at a cost of time.
Each test requires a login process which takes at least 10 seconds, this will not scale well.
This ticket will try to implement the cy.session() feature so the whole E2E test process should only require 1 login
https://docs.cypress.io/api/commands/session

Logged in cookie:

Logged out:

source: gharchive/issue

repo: bcgov/nr-spar


text:
Bulk cancel Day Passes in Admin

Description
As a BC Parks Staff (sysadmin role) I want to cancel all selected passes on a given facility so that its easy to apply a park or facility closure.
This ticket is to add bulk cancel functionality to DUP admin so that BC parks staff do not have to individually cancel each user for a given time range. The scenario where this would be useful is when a facility closes and we need to cancel all passes on Facility A for today, tomorrow, and the next day.
Acceptance Criteria
Notes
Linked issues
blocks

[ ] https://bcparksdigital.atlassian.net/browse/BRS-703

relates to

[x] ~https://bcparksdigital.atlassian.net/browse/BRS-1156~

Jane Mountain
August 11, 2022 at 12:24 PM
@JLWade Thanks for the context on that. I understand now.
Jessica Wade
August 10, 2022 at 5:17 PM
@Jane Mountain The original purpose of the Pass Management page was to have it be used by operators on the ground to check in passses or for a DUP admin user to search for any pass within all the parks to find a specific one for some reason. Instead of by facility first.
If we added bulk cancel to this page we would need to enable all of the search functionalities first so that a user could search within a park and facility then down to whichever ones need to be cancelled.
One use case for bulk cancel is when a facility closes and a DUP admin user goes in and can search all passes with status = reserved and all passes on a specific day on X facility and then click bulk cancel. Or if a bunch of passes are moved into “overbooked” status then a DUP admin user could search within that facility for status = overbooked.
I’m not sure the best location for this functionality but hope that provides some insight?
Edit
Delete
Jane Mountain
August 10, 2022 at 4:14 PM
@Jessica Wade @Nicole.DelRaye @Meredith Olsen-Maier I wonder if now is the time to figure out what the Pass Management tab is going to be used for. I feel like this function might be a natural fit in there (e.g., we could have a filterable list of all passes with the ability to take bulk actions on that list).
I’m not actually aware of what was initially intended for the Pass Management page, so maybe we need a quick convo on this?
Edit
Delete
:thumbsup:
1
Jessica Wade
August 4, 2022 at 12:16 PM
@Nicole.DelRaye @Jane Mountain @Meredith Olsen-Maier tagging for UX perspective and AC

repo: bcgov/parks-reso-admin


text:
update devops security considerations

Updated a few links to content.

Thanks Nick, these changes look good to me. In the 'support' section there is mention of 'several rocket chat channels'. Do you think it's worth mentioning some of these here?

For now I have a reference to RocketChat sign-up.  I'm not sure I want to name specific channels here, but maybe in a future update.  Thanks for taking a look @mtspn .

authors: NickCorcoran mtspn

repo: bcgov/platform-developer-docs


text:
feat: only run greeter on opened or reopened PRs (try 2)

Save resources and prevent duplication by running the PR greeter only on opened or reopened.

This is being replaced by an overhaul of action-pr-description-add.

repo: bcgov/pubcode


text:
feat: add common module to create viewer role

create a viewer role in the master realm to assign read-only privileges for other default realms.

does those space/new line left there in purpose?

are you referring output.tf file?

the main.tf. Also i've double checked the namings are matching, so no problems

authors: junminahn kurokn

repo: bcgov/sso-terraform-modules


text:
xss_clean() should deal with "`", acute accent character.

These two line are equivalent:
eval("Vulnerable")
eval`Vulnerable`

or
confirm("Vulnerable")
confirm`Vulnerable`

Solution
File: system/core/Security.php
Line: 540
Change
(alert|prompt|confirm|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si',

to
(alert|prompt|confirm|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)[\(`](.*?)[\)`]#si',

And I thought I wouldn't find another reason to hate JavaScript ...
Is this part of the language, or just one browser does it?

@narfbg This is a new feature of javascript called template literals (specifically what you're seeing here is what's called tag functions)... Its supported by all browsers with the exception IE (shocker).

@kylefarris Thanks for the clarification.
I want to get #5431 too and will then release.

But on another, serious note: please don't post security-sensitive stuff here.
We have a security@ email and a H1 page, both linked in the readme file.

authors: WillyYeh kylefarris narfbg

repo: bcit-ci/CodeIgniter

license: MIT


text:
Use session cookie name in gc check

I noticed this check in the session gc code isn't particularly reliable. First, it ignores the cookie name which is the obvious thing to use to check if the file is a CI session file. Secondly it assumes the session id is a 40 character hex string which is not a valid assumption.

It is a very valid assumption.
I don't mind including the cookie name in there as well, but your solution currently isn't more reliable either ... If you take for example a CI session cookie named 'foo', your solution will also delete sessions for cookies named 'foobar'.

Ah, I didn't notice that. My apologies.
I have put back the regex check, but the foo/foobar problem remains.

You might as well eliminate the strpos() call and combine the two in a single regular expression. :) But yes ... the foo, foobar issue remains regardless of that.
There is a 100% sane way - combining all the factors (cookie name, match_ip dependency, session ID pattern) in one. Truth is, I intended to that in the first place but wasn't sure how match_ip would fit in back when I wrote this, so I just left the bits that won't break if anything changes.
Give it a try if you wish so, I'll commit it in a few days if you don't.

To avoid repetition and improve clarity, it would be great to assign the following (3 occurrences) to a variable:
$this->_config['save_path'].DIRECTORY_SEPARATOR.$file

Agreed on assigning to a variable, but about the regular expression. Should be something like this:
$pattern = sprintf(
    '/^%s[0-9a-f]{%d}$/',
    preg_quote($this->_config['cookie_name'], '/'),
    ($this->_config['match_ip'] === TRUE ? 72 : 40)
);

The $this->_config['save_path'].DIRECTORY_SEPARATOR.$file part on the other hand is constructed inside a loop, so I'm not sure about that ... I personally find it clear enough and not really that long. It's the regular expression that becomes barely readable at this point.

I don't really like this sprintf proposal :\
"The (...) part on the other hand is constructed inside a loop"... are you talking about performances? 1) irrelevant. 2) saves property accesses so might be faster actually. 3) don't even care to benchmark that. 4) irrelevant, seriously.

Additional notes:

We can simplify '(?:[0-9a-f]{32})' to '[0-9a-f]{32}'

Then, I would rather suggest:
  $pattern = '/^'.$cookie_name
      .($this->_config['match_ip'] ? '[0-9a-f]{32}' : '')
      .'[0-9a-f]{40}$/i';

I don't care that much about performance, but it always rings a bell when I'd have to change code inside a loop for readability alone ... the more important part was that it's currently readable enough IMO. Either way, I don't care that much about it.
And speaking of readability, I'm not a sprintf() fan either and my initial thought was what you're now suggesting (except you're missing a preg_quote() call), but you have to admit ... it's just ugly.

Looks like we have different perceptions. But whatever, it's just about coding style. I leave the rest up to you to decide, you have all the elements.

This is the cleanest way I can see. Using the = character as separator because it's not valid for the cookie name but still valid as a file name.

It still needs a regular expression ... why do you not want it to be just a single regexp?

I don't understand why the regular expression is required.

Because that's the only way to match a random hex-encoded string that is the session ID ... :)

Why do you want to match the random part? Checking the prefix tells us it's a CI session file and that's all we need to know.

It's less of a chance to destroy another app's valid session, but still incomplete logic. If somebody reports a bug that the GC will erase a file that they named 'foo=bar.txt' in that dir, it will be a valid bug report.

Changed to use the sprintf suggestion.

Great, thanks.

authors: Nibbler999 narfbg vlakoff


text:
Corrected typo in worker preventing custom 'prefix' from being used.

Bugfix: Allows custom prefixes to be used once the job has been received.

:+1: I'll get this merged shortly and a release out the door.

@seratonik thanks for the patch \o/ things should now be fixed in thumbd@2.16.3.
Let me know if things work for you.

authors: bcoe seratonik

repo: bcoe/thumbd

license: mit

license_source: bigquery


text:
[Feature]: De-couple positional encoding & persisted KV cache

Check AttentionStore paper and see if the performance would be good or not.

AttentionStore: Cost-effective Attention Reuse across Multi-turn Conversations in Large Language Model Serving https://arxiv.org/pdf/2403.19708v2

Understood how decoupling positional encoding works.

Design and implement a PoC for getting numbers

Try to run ShareGPT and understand the flow of multi-turn conversations.
Design and implement

Started looking into how to reproduce the multi-turn truncation and kv$ reuse for reproducing decoupling positional encoding.

Tony and I went through the experiment and implementation together. Currently, the fastest way to get end-to-end results is the version where we preserve the pre- and post-ROPE KV cache, which we previously considered for a patent. So we started with this approach, and the code is in this branch: https://github.com/bd-iaas-us/vllm/tree/horenc/as-patent-double-kvbuffer. My current results show that duplicating the KV cache adds an additional 5% slowdown, but it avoids the need to recalculate ROPE each time. Compared to the 30-40% overhead we observed for ROPE calculations in previous microbenchmarking, this is a significant improvement. Additionally, other implementations are more complex than initially anticipated and will require more in-depth work to modify:

https://github.com/bd-iaas-us/vllm/issues/38
https://github.com/bd-iaas-us/vllm/issues/39

repo: bd-iaas-us/vllm


text:
make bdlib compile on 1.7.10 again

Hope this helps a little! Don't have time to dig into the code unfortunately, and I wouldn't understand how it affects the various dependants of bdlib regardless.

Thanks!

authors: asiekierka bdew

repo: bdew-minecraft/bdlib


text:
Filter option for Pressurized Input Valve

A filter option for the Pressurized Input Valve would be less cumbersome, especially with multiple possible fuels on the same pressure pipe "network".

You can do filtering using either a router or a pressure output block (into a fluid intake).
I don't think doing the filtering on the side of a generator makes much sense.

repo: bdew/generators


text:
Revert "Merged from trunk sources as public interfaces of many units are changed"

Reverts beNative/TBCEditor#20

I do not support the current development on http://github.com/bonecode/BCEditor as it violates the license and copyright by the original author:

The MIT License (MIT)
Copyright (c) 2017 Lasse Markus Rautiainen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

repo: beNative/TBCEditor


text:
[Feat] side icons to he webapp

Description
https://github.com/user-attachments/assets/dc868065-c3fb-4cdd-9afc-6cbb6090c316
https://github.com/user-attachments/assets/272a59a8-20a6-4fc4-b71c-95385a9c4bfa
responsive side icons to the right of the website which makes it more interactive and makes connecting easier. the socials in the bottom is often ignored and with the help of these side icons this will be easier to the user to connect with.
@beRajeevKumar
Screenshots
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[x] I'm a Hacktoberfest'24 contributor
[X] I am willing to work on this issue (optional)

@beRajeevKumar


text:
Fixed the bugs in project "12-Huddle-comm-page".#51

I fixed three bugs and enhanced the responsive UI. For Bug 01, I optimized social icons by reducing load time. For Bug 02, I adjusted the footer text positioning to ensure it stays at the bottom, maintaining the original design layout. For Bug 03, I refined the mobile version to match the exact mobile design provided in the design directory. Additionally, I improved the CSS to create a more responsive and user-friendly interface across all devices.#51

@beRajeevKumar Sir, I have fixd bugs and all, Can you please checkout once?  #78

@pranjalee30, the website has undergone some UI updates. Please update your branch and resolve any conflicts. I’ll review the PR once it's ready.

@pranjalee30, the website has undergone some UI updates. Please update your branch and resolve any conflicts. I’ll review the PR once it's ready.

Its all up to date, Kindly merge it

Nope its not. You are 39 commits behind the main branch of this repo.

And also, solve issues by making a new branch instead of working on the main branch.


text:
[DOOR Bug] Tuple and Any Comparision

Hey @leycec,
I hope you're doing well! I might have run into another freaky edge case.
This results into an error:
>>> from beartype.door import TypeHint

>>> import typing

>>> TypeHint(typing.Tuple[object, ...]) <= TypeHint(typing.Any)
...
TypeError: typing.Any cannot be used with issubclass()

During handling of the above exception, another exception occurred:

...
TypeError: typing.Any cannot be used with issubclass()

Possibly the recursion in beartype/door/_proposal/pep484585/doorpep484585tuple.py might need to make use of TypeHint.__le__ rather than issubclass?

Doin' so swell! Thanks so much for asking. The eroded swamp flats "hills" have erupted with filth-encysted snow. My wife and I have taken the fight for fitness to the backwoods trails of Ontario with our trusty rusty cross-country skis, heated gloves that glow in the dark like lithium ion gauntlets of power, and ski masks that make us look creepy. The good times are copious.
And thanks so much for this detailed report that is almost certainly correct about everything. I should probably grep the DOOR API for other highly suspicious calls to issubclass() – but chronic laziness and bad habits suggests that I'll instead play Hollow Knight until my head pulsates with a migraine at 5:57AM and I quietly admit to myself that the week is off to a rougher start than usual.

Success strikes back! Surprisingly, it turns out that this is sorta a duplicate of #198. We already resolved this without even knowing we were resolving this. To guarantee that I am not lying, I've added yet another unit test exercising this. But... yeah. It's mostly worky from what I can tell. 2023: things are already looking up.
We really need to excrete a new stable release. I promise delivery of beartype 0.12.0 with all these fixes and more by this Friday-ish. Of course, you can trust nothing I say. If you'd like to continue thrashing the DOOR API with hard-hitting edge cases, please consider installing the live GitHub-hosted version of @beartype as a temporary measure: e.g.,
python3 -m pip install git+https://github.com/beartype/beartype.git@784b779289f6ea52c88d8b7dbf014084f790d2e3

So sorry for the gruesome delays – and thanks yet again for being so attentive to all our failures. We will nail this down to the floor for you and everyone else soon. Would @leycec lie? :face_exhaling:

Whoa, cross-country skiing through the backwood trails of Ontario sounds absolutely blissful. 😌
Thank you so much for the super rapid investigation! I definitely should have tested the latest master first. Once I get home I’ll try it out right away, though I have no doubts at all that things will be working beautifully. A good start of 2023 indeed!

authors: leycec wesselb

repo: beartype/beartype


text:
Add Coveralls

[x] Adds coveralls configuration

Changes Unknown when pulling 7bd5e7b80e34bf68a6a7f2cb8300ec7ec7656a0e on add-coveralls into ** on master**.

Changes Unknown when pulling 8946e862fde734618cb1332f0db48134918a902d on add-coveralls into ** on master**.

authors: beauallison coveralls


text:
MediaQueryList. addEventListener not working in Safari <= 13.1

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
use useMediaQuery in any component
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Desktop (please complete the following information):

OS: iOS
Browser safari
Version <=13.1

Smartphone (please complete the following information):

Device: iPhone11
OS: iOS<14
Browser safari
Version <=13.1

Fixed by #248


text:
es6 destructuring

function takeThing({prop}) {
    console.log("inner prop", prop)
}

is being reformatted to
function takeThing({
    prop
}) {
    console.log("inner prop", prop)
}

I don't think this is intentional.

Will there be support for the new ECMAScript syntax ?

Eventually.   It will probably happen as people point out specific cases that need doing.

I'm trying to come up with a good way of doing this right now, but it's going to be a bit of a challenge. Part of the trouble is that destructuring identifiers can occur in various surrounding contexts:
var <destructuring> = input; // or let or const

var <destructuring> = input, <destructuring> = input_2; // possibly on separate lines

var a = 1,
    <destructuring> = input;

function(<destructuring>) {
  // implementation
};

<destructuring> => returnValue; // an arrow function

(<destructuring>, <destructuring>) => returnValue; // multi-param arrow function

I might even be missing a few right now. And then the destructuring form itself can be nested:
let functions = [
  [a, {b, [c, {d, e}, f]}] => [a, b, c, d, e, f] // this is totally valid, people
  {a, [{b}, {c}, {d}, {e, f}]} => [a, b, c, d, e, f] // so is this, and so on
];

It's a small blessing that you can't nest objects directly in a destructuring form.

Fixed.

@bitwiseman I still seeing this issue? Is there an option for enabling the fix?

@JoyceBabu Please file an issue with the details.

@bitwiseman  I found out the option name from another issue. Fixed by setting "brace_style": "collapse-preserve-inline". Thank you.

@JoyceBabu
Glad you found it.  😄  Please use "collapse,preserve-inline".

authors: JoyceBabu amacdougall bitwiseman iksose mvpspl619

repo: beautify-web/js-beautify


text:
get error with package

flutter: Sign in failed: The operation couldn’t be completed. (com.apple.AuthenticationServices.AuthorizationError error 1000.)

I have the same issue any solution?


text:
optimize withdraw flow old fbeets

Assumption: a user will have either staked old fBEETS, old fBEETSin wallet or the Fidelio Duetto BPT in wallet and not a combination of these.
User goes to the Fidelio Duetto pool page and:

user has the Fidelio Duetto BPT in wallet: user can withdraw proportional or single asset from the BPT

user has either old fBEETS staked or in wallet: withdraw button is disabled and a toast pops up pointing the user to the maBEETS page where they can migrate (and if they want, withdraw from there)

Only real nit is with the copy comment. Can you work with Naly on that?

repo: beethovenxfi/beets-frontend


text:
Leave curl maybe?

I see at least one derived image in ASR installing wget, and I'm about to re-add curl in mine.

As a super-upstream to several projects, it can assumed this will update slower than the child derived images, which would leave curl in a vulnerable state if it was included at this level.

authors: bryanlatten grinnery

repo: behance/docker-base


text:
Feature/custom html slide

ChromeView: hide the controls when the user's mouse leaves the document
ChromeView: Add support for a custom HTML slide

LGTM

authors: mmase nemtsov

repo: behance/lightbox


text:
[subset] Desubroutinize subroutines that are only used once

We already have that information.  Use it?

If it shaves off a few bytes without any functional loss, definitely.

Correct.
Looks like if you are doing WOFF or WOFF2, desubroutinizing works better.

authors: behdad twardoch

repo: behdad/fonttools


text:
data-bind, каша

https://ru.bem.info/technology/bemhtml/v2/rationale/#data-bind
не до конца понял, почему knockout так выделили..
и что значит тогда data-bind?
если live-data-bind  описан как "отличается тем, что в шаблоне можно декларировать связь не со статическими, а изменяющимися данными", тогда наверно и angular стоит выделить также

@kriku просто angular появился много позже

@zxqfox он есть в списке как пример подхода обычного data-bind

@Guria так вот это и смутило
но обычный data-bind скорее односторонний, судя по библиотекам, указанным в списке
ну кроме angular

authors: Guria kriku zxqfox

repo: bem/bem-forum-content-ru


text:
BrowserslistError: Unknown browser kaios

Just ran into this unrevertible error. Could this be you guys?
https://github.com/browserslist/browserslist/issues/365

Fixed by a yarn upgrade

repo: ben-eb/caniuse-lite


text:
Create a little chat

It would be cool to have a kind of chat inside the web page in some place.

Sorry, I've seen the pull request from another guy, but I can't see this features(0fcd3ef8dd9f3949740bf937221f0e5df4ac7f3f , 3301e6e7976aa5e7bfa103cbb5be096dd52ef95c, 5a15fb08e15c7dfba186fae79dc0f35ad17d6817 )  in the web page

Hi, the pull request adding chat support has not been merged into the mater branch yet.
I'll do it asap and update the online demo.
You can still download the patch and apply it to your local repository.

authors: LucasLencinas benas


text:
Fixed transalation to portuguese on word audio.

On portuguese the word audio have accent: áudio.

Please create PR into staging and not new-design.

authors: ermalsh shyvesCCD

repo: benawad/dogehouse


text:
Issue with exact equality and roundtrip of lat/lng coordinates

Something I ran into while testing https://github.com/benbovy/spherely/pull/20 (xref https://github.com/benbovy/spherely/pull/20#discussion_r1141150124), is that it is not that easy to pass an exact equality test with equals().
Illustration:
# construct a point through centroid to get something that is not exactly Point(1, 0)
>>> point = spherely.centroid(spherely.LineString([(0, 0), (0, 2)]))
>>> point
POINT (0.9999999999999998 0)

# reconstruct this point through its lat/long coordinates
>>> point2 = spherely.Point(spherely.get_y(point), spherely.get_x(point))
>>> point2
POINT (0.9999999999999998 0)

# those two points (with the same WKT repr and equal coordinates in degrees) are not considered equal
>>> spherely.equals(point, point2)
False

What I assume is happening here is that the roundtrip from S2Point to S2LatLng and back is not exact (the conversion from S2Point to LatLng essentially happens in the WKT repr or in get_x/get_y, and the conversion from S2LatLng to S2Point is essentially happening in the Point(..) constructor.
While that might be expected based on knowledge of the S2 internals (how a S2Point is stored, which is not as its lon/lat coords), I suppose this will not be expected in general by users? And it also gives some usability issues (also when testing)
For equals() specifically, it might be possible to have an option there to snap round coordinates while checking equality.

The implementation of equals ultimately relies on s2geometry's S2BooleanOperation::Equals, which provides a precision option. Unfortunately Precision.SNAPPED is not yet implemented, but I guess it would still be possible to add some tolerance by passing a snap function to the Options constructor (e.g., IntLatLngSnapFunction or IdentitySnapFunction with a given snap_radius). We could do that in Spherely by customizing
https://github.com/benbovy/spherely/blob/38d3bf9df81e86140dacb962b573fc95e44f9316/src/predicates.cpp#L33
In terms of API, I see that shapely also provides equals_exact. I'm not sure how they behave exactly for point geometries, though. Would it make sense in spherely for equals to have some internal minimal tolerance set by default so that the example above works and provide an equals_exact function that accepts a user-defined tolerance?

authors: benbovy jorisvandenbossche

repo: benbovy/spherely


text:
Feat: add Tooltip component

Description

Changes

Linked issues
Closes #22
Notes

Very good! Some suggestions about the namings:

The file Tooltip.typings.ts should be rename Tooltip.types.ts
The Scss file should not start with a capital letter, it should be named tooltip.module.scss

repo: benchttp/desktop


text:
Add glob input to override default globstar

Adds the ability to set the glob pattern for matching Terraform directories. Now, users can match a glob pattern to customize which Terraform module directories are returned. For example, if you put your test modules in a __tests__ dir a la Jest and wanted to match that:
glob: '**/__tests__/*'

This option will match any Terraform module directory whose parent directory is named __tests__ at any level.
It could also be used to disable globstar (recursive) matching:
working-directory: 'tests'
glob: '*'

This matches only direct child directories of tests/, and will not match tests/a/b.
The definition of a Terraform module directory is unchanged and remains non-customizable (anything with .tf and .tf.json files).

Is there any way to exclude certain directories?

Open an issue and describe your use case for feature requests.

authors: bendrucker jantomgid

repo: bendrucker/find-terraform-modules


text:
When aligning audio and video files the default script fails

As user I have multiple recording devices. Practically a camera, and two rode wireless go II devices. I would like to achieve alignment between the different recordings. The source data of each device may be assumed to sequential in nature, but the recordings of different devices may not have been continous, thus have a different overlap.
What I would like to see is something happening where blocks within the same folder are not correlated, but different folders are. In addition, given that the input sequence is not a 'bag of files' but a 'sorted list of files' this knowledge should be used in the alignment proces: a forward search given the last prior.
At this moment I notice after the fingerprinting process the following error when I try to add my video folder. I have also attempted to make a wav file out of all the videos. The same error applied.
From the description above I could do a iterative approach which would sequentially align files single files, by initial finger print. My preference would obviously be an unsupervised method.
VID_20220409_115501.mp4: Finding Matches...  Aligning matches
Traceback (most recent call last):
  File "/mnt/storage/home/skinkie/Sources/audalign/run_align.py", line 284, in <module>
    main(args=args)
  File "/mnt/storage/home/skinkie/Sources/audalign/run_align.py", line 196, in main
    results = ad.align(
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/__init__.py", line 36, in wrapper_decorator
    results = func(*args, **kwargs)
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/__init__.py", line 91, in align
    return aligner._align(
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/align/__init__.py", line 48, in _align
    files_shifts = calc_final_alignments(
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/align/__init__.py", line 169, in calc_final_alignments
    files_shifts = find_matches_not_in_file_shifts(
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/align/__init__.py", line 290, in find_matches_not_in_file_shifts
    nmatch_wt_most[main_name][audalign.Audalign.OFFSET_SECS] = None
AttributeError: module 'audalign' has no attribute 'Audalign'. Did you mean: 'datalign'?

Thanks for the suggestion!
This error seems to be an oversight in the last refactoring. The current set of test audio files doesn't have a case where find_matches_not_in_file_shifts gets called because it's a bit complex. That function is for the case where the most matched file matches with files that don't match with the most matched file. I can fix that bug and do a new release in the next couple of days.
The current align methods treat all input audio files as a bag of files. The list of filenames as input is a way to only choose certain audio files or specify files in multiple locations. Are you suggesting that I add a new align_sequentials method where each folder or file is one set of sequential files with no overlap? You could even specify lists of files that are ordered like results = align_sequentials([["one_file.mp3"], ["second/one.mp3", "second/two.mp3"]]) ?
Or could I get more clarity on what this feature would look like?
Audalign currently supports the situation where file1 only overlaps with file2, which only overlaps with file1 and file3, but file3 doesn't overlap with file1. The situation where file3 overlaps with file4, which doesn't overlap with file1 or file2 is not currently supported. Is this another feature that you are asking for?

Thanks for the suggestion! This error seems to be an oversight in the last refactoring. The current set of test audio files doesn't have a case where find_matches_not_in_file_shifts gets called because it's a bit complex. That function is for the case where the most matched file matches with files that don't match with the most matched file. I can fix that bug and do a new release in the next couple of days.

Great.

The current align methods treat all input audio files as a bag of files. The list of filenames as input is a way to only choose certain audio files or specify files in multiple locations. Are you suggesting that I add a new align_sequentials method where each folder or file is one set of sequential files with no overlap? You could even specify lists of files that are ordered like results = align_sequentials([["one_file.mp3"], ["second/one.mp3", "second/two.mp3"]]) ?
Or could I get more clarity on what this feature would look like?

Ok, to be very exhausive.
The current Rode Wireless Go II has two microphones that are recording, and unless someone is marking (by a button on the receiver) explicitly the offset is equal to the time the devices are powered on. I have not seen any thing in the original software that retrains the timingcode or start time of recording (asked Rode for that feature). The second problem is that the devices creates files with the same filename (or one or two numbers apart). This is a snafu. You can't just place it in a single folder, and by the filename you don't know from which device it came...
So in my case the two recording devices produce files that in general overlap. So the first file on device A will be typically the first file on device B. Now I guess the fingerprinting process is cheap enough to estimate that via a bag of recordings approach. But I guess the heuristic approach that could take in account the file sequence. So if the first file in the directory matches, lets not match the second file with the first again, and only try to match it in the forward direction. I do understand if you would have a patern like below, this should be supported / warned about.
AA CC
 BBB

To me the above would be 'phase one', because I already know that these files overlap. After this step I would like to have the results fingerprinted, and aligned with the video files. The video files are typically broken in pieces, so there is no need for scene detection. It may be expected that a sequential recording does not have internal gaps. I obviously understand that this causes drifts due to different time crystals etc.
Via a github issue here I noticed another thing called "ground truth creation". In the most ideal alignment software there would be some sort of "time" recovery. I provide a closed word where a sequence of events are happening. The events would be actually [empty1][event1][empty2][event2] and so on. The events may be grouped by recording device which provides a sequence of events, and may report something like a timecode, but it only can be stated: the input files are sequential. For all the other tracks the alignment should be done in relationship to eachother. For a single perspective (a graph without forks) this looks doable to me. But in the case where there is a multicam recording which start in a shared view, divert, and end up in the same place again... that feels like a bit more difficult challenge. Since that would suggest that aligment may happen between tracks, but is still continious in time.
audio 1
VIDEO 1

    cc
    CC
  /    \
aa     ee
AA     EE
---------
BB     FF
bb     ff
  \    /
    DD
    dd

VIDEO 2
audio 2

Audalign currently supports the situation where file1 only overlaps with file2, which only overlaps with file1 and file3, but file3 doesn't overlap with file1. The situation where file3 overlaps with file4, which doesn't overlap with file1 or file2 is not currently supported. Is this another feature that you are asking for?

Maybe :-) But this is like the advanced of advanced case where you would place everything on a graph. For the simple multicam recordings with independent audio, that should be aligned, forks are not really relevant.

I think I'm understanding a little better, but I'm still not quite getting the whole picture.
For just the audio files, are you suggesting the heuristic approach as an optimization or are there improper alignments resulting from the bag of files approach?
The heuristic approach would be: Given a folder with audio files sorted by filename (which are ordered by recording start time), align file 1 with 2, 3, 4 ..., then align 2 with 3, 4 ..., then 3 with 4 and accumulate the previous alignments?

The alignment from 'Phase one' could result in a single file output in the multichannel format from issue #32, which would then be aligned with the video files?
audio device 1 = a
audio device 2= b
video device 1=v

aaaa.  aaaaaa.
  bbbbbb.  bbbbbb
gives output file "c"

Then
ccccccccccccccccccc
   vvvvv.     vvvvvvvvv

Audalign will currently fail to properly align
aaaa.   aaaaa.  aaaa.  aaaa
    bbbbb.   bbbbb. bbbb

It would only find at most
aaaa. aaaaa
    bbbbb.  bbbb

The multicam graph case certainly seems a bit more difficult!

I think I'm understanding a little better, but I'm still not quite getting the whole picture.
For just the audio files, are you suggesting the heuristic approach as an optimization or are there improper alignments resulting from the bag of files approach?

The improper alignment does occur if I throw everthing in one folder with single video file. And obviously the error message that I reported here, when I threw everything in one folder. ;)

The heuristic approach would be: Given a folder with audio files sorted by filename (which are ordered by recording start time), align file 1 with 2, 3, 4 ..., then align 2 with 3, 4 ..., then 3 with 4 and accumulate the previous alignments?

I think the accumulate part is the tricky stuff. Because I think you should view what you have aligned as independent "groups" of data. The problem with accumalting is that if you would have a video segment that would extend beyond the initial audio recording aa, it can not be matched if EEE is longer than aa/bb, but does overlap with ccc/ddd.
bb ddd
aa ccc
 EEE

The alignment from 'Phase one' could result in a single file output in the multichannel format from issue #32, which would then be aligned with the video files? Or could you include a snapshot of what the timeline would look like?

I think his is the most trivial editing case, with a single scene but independently recorded.
audio 1: bb ddddddd  hhhh
audio 2: aa ccc fff ggg
video 1:  EEE  JJJJJJJ
video 2:  KKKKKKKKK

I would heuristically appoarch it as:
Phase 1
part 1: aa+bb
part 2: ccc+ddddddd+fff
part 3: ggg+hhhh

Phase 2 is I think the hard part. So E_1 would overlap with part1 where E_3 would overlap with part 2. For J constraining part 2 and 3. And video 2 not introducing an extra contraint.
There are several heuristic approaches which may give an initial timeline, and the bag of input being the ultimate challenge.

audio device 1 = a
audio device 2= b
video device 1=v

aaaa.  aaaaaa.
  bbbbbb.  bbbbbb
gives output file "c"

Then
ccccccccccccccccccc
   vvvvv.     vvvvvvvvv

Your ccc example will only work if you can establish the combined is o continious recording (part 2 in my example).

The multicam graph case certainly seems a bit more difficult!

You could also see it as a way to escape a constraint that the software can't find. Hence: "I know how these distinct parts are combined, but I don't have a clue how they relate, therefore I output two segments, how they join you can figure that out..."

From another life :-)
https://navitia-io.medium.com/what-are-time-tables-5b110c5ee3f4

Interesting read!
Audalign was originally developed for aligning forensic audio files. Typically there would be one main audio event or several events, that were captured in all or most of the recordings. The audio files are all recognized against each other so that the file with the strongest matches can act as a sort of source of truth. From there, the step of aligning files that didn't match with the source of truth file is kind of superfluous because they don't match strongly enough to add much value to the total alignment.
This multiphase alignment process you're describing does make a lot more sense for the type of audio scenario you're dealing with. When I was refactoring the recognizers into separate recognizer objects a few months ago, I didn't also refactor the aligner into a separate object. I think this type of alignment process would work very well if we were to separate the alignment techniques into separate objects. I could put this feature on the backlog, though! Probably get to it in a few months. I'm always open to PRs, though!
The default script should be working now, though! Could you verify that the new version in the main branch is working before I publish a release to PyPI?

Starting with requirements.txt, I think you can easily see where you could improve :)
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
label-studio 1.4.1.post1 requires python-dateutil==2.8.1, but you have python-dateutil 2.8.2 which is incompatible.
label-studio-converter 0.0.39 requires Pillow==9.0.0, but you have pillow 9.1.0 which is incompatible.
azure-core 1.23.0 requires typing-extensions>=4.0.1, but you have typing-extensions 3.7.4.3 which is incompatible.
audalign 1.0.1 requires attrs==20.3.0, but you have attrs 21.4.0 which is incompatible.
audalign 1.0.1 requires certifi==2020.12.5, but you have certifi 2021.10.8 which is incompatible.
audalign 1.0.1 requires cffi==1.14.4, but you have cffi 1.15.0 which is incompatible.
audalign 1.0.1 requires cycler==0.10.0, but you have cycler 0.11.0 which is incompatible.
audalign 1.0.1 requires decorator==4.4.2, but you have decorator 5.1.1 which is incompatible.
audalign 1.0.1 requires idna==2.10, but you have idna 3.3 which is incompatible.
audalign 1.0.1 requires imageio==2.9.0, but you have imageio 2.18.0 which is incompatible.
audalign 1.0.1 requires joblib==1.0.0, but you have joblib 1.1.0 which is incompatible.
audalign 1.0.1 requires kiwisolver==1.3.1, but you have kiwisolver 1.4.2 which is incompatible.
audalign 1.0.1 requires matplotlib==3.3.3, but you have matplotlib 3.5.1 which is incompatible.
audalign 1.0.1 requires networkx==2.5, but you have networkx 2.8 which is incompatible.
audalign 1.0.1 requires noisereduce==1.1.0, but you have noisereduce 2.0.0 which is incompatible.
audalign 1.0.1 requires packaging==20.8, but you have packaging 21.3 which is incompatible.
audalign 1.0.1 requires pluggy==0.13.1, but you have pluggy 1.0.0 which is incompatible.
audalign 1.0.1 requires pooch==1.3.0, but you have pooch 1.6.0 which is incompatible.
audalign 1.0.1 requires py==1.10.0, but you have py 1.11.0 which is incompatible.
audalign 1.0.1 requires pycparser==2.20, but you have pycparser 2.21 which is incompatible.
audalign 1.0.1 requires pydub==0.24.1, but you have pydub 0.25.1 which is incompatible.
audalign 1.0.1 requires pyparsing==2.4.7, but you have pyparsing 3.0.8 which is incompatible.
audalign 1.0.1 requires pytest==6.2.0, but you have pytest 7.1.2 which is incompatible.
audalign 1.0.1 requires pytest-xdist==2.2.1, but you have pytest-xdist 2.5.0 which is incompatible.
audalign 1.0.1 requires python-dateutil==2.8.1, but you have python-dateutil 2.8.2 which is incompatible.
audalign 1.0.1 requires PyWavelets==1.1.1, but you have pywavelets 1.3.0 which is incompatible.
audalign 1.0.1 requires requests==2.25.0, but you have requests 2.27.1 which is incompatible.
audalign 1.0.1 requires six==1.15.0, but you have six 1.16.0 which is incompatible.
audalign 1.0.1 requires threadpoolctl==2.1.0, but you have threadpoolctl 3.1.0 which is incompatible.
audalign 1.0.1 requires tifffile==2020.12.8, but you have tifffile 2022.4.26 which is incompatible.
audalign 1.0.1 requires tqdm==4.54.1, but you have tqdm 4.64.0 which is incompatible.
audalign 1.0.1 requires urllib3==1.26.5, but you have urllib3 1.26.9 which is incompatible.
virtualenv 20.14.1 requires filelock<4,>=3.2, but you have filelock 3.0.12 which is incompatible.
nltk 3.6.7 requires regex>=2021.8.3, but you have regex 2020.11.13 which is incompatible.
httplib2 0.19.1 requires pyparsing<3,>=2.4.2, but you have pyparsing 3.0.8 which is incompatible.

The new version will be 1.1.0
to test out the changes, you will have to pull down the recent merge in main from Github.
Create a virtual environment with python -m venv venv and source it with source ./venv/bin/activate
This allows you to have environment separation between separate projects or versions.
Then run pip install -r requirements.txt to install the updated requirements to the current virtual environment.

@benfmiller my point being; you are still including older versions of packages.

@skinkie I'm unsure what you're trying to accomplish here.
Yes. The old version uses older versions of dependencies.
No. The new version does not use older versions of dependencies.
version 1.1.0 is not published yet.
Are you trying to say that the new dependencies are still outdated?
They are the latest versions of the dependencies that still support python 3.8.

@skinkie I'm unsure what you're trying to accomplish here. Yes. The old version uses older versions of dependencies. No. The new version does not use older versions of dependencies.

I spotted what went wrong at my side after your comment regarding older versions. My currently installed version of audalign was what was prompted. Issue resolved.
I cannot yet tell you if it works, because I have ended up in this mess (again).
Traceback (most recent call last):
  File "/mnt/storage/home/skinkie/Sources/audalign/run_align.py", line 301, in <module>
    main(args=args)
  File "/mnt/storage/home/skinkie/Sources/audalign/run_align.py", line 171, in main
    import audalign as ad
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/__init__.py", line 21, in <module>
    import audalign.align as aligner
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/align/__init__.py", line 8, in <module>
    import audalign.filehandler as filehandler
  File "/mnt/storage/home/skinkie/Sources/audalign/audalign/filehandler.py", line 8, in <module>
    import noisereduce
  File "/home/skinkie/.local/lib/python3.10/site-packages/noisereduce/__init__.py", line 1, in <module>
    from noisereduce.noisereduce import reduce_noise
  File "/home/skinkie/.local/lib/python3.10/site-packages/noisereduce/noisereduce.py", line 3, in <module>
    import librosa
  File "/home/skinkie/.local/lib/python3.10/site-packages/librosa/__init__.py", line 211, in <module>
    from . import decompose
  File "/home/skinkie/.local/lib/python3.10/site-packages/librosa/decompose.py", line 19, in <module>
    import sklearn.decomposition
  File "/usr/lib/python3.10/site-packages/sklearn/__init__.py", line 82, in <module>
    from .base import clone
  File "/usr/lib/python3.10/site-packages/sklearn/base.py", line 17, in <module>
    from .utils import _IS_32BIT
  File "/usr/lib/python3.10/site-packages/sklearn/utils/__init__.py", line 23, in <module>
    from .murmurhash import murmurhash3_32
  File "sklearn/utils/murmurhash.pyx", line 1, in init sklearn.utils.murmurhash
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

Awesome!
I've never seen this type of issue. You've resolved it before? Did you say you're running this on Gentoo?
Should I go ahead and do a release to PyPI?

I've never seen this type of issue. You've resolved it before?

Yes, it was actually the first issue I have opened here. But this time it is more difficult to resolve since I trew away LLVM-11, which is at this moment the maximum installable version for llvmlite.

Did you say you're running this on Gentoo? Should I go ahead and do a release to PyPI?

I'll try to check audalign on ubuntu today.

v1.1.0 was published several weeks ago which should fix this issue.
I'll close this issue if there aren't any more updates in a week

authors: benfmiller skinkie

repo: benfmiller/audalign


text:
🛑 tilde news is down

In 3b2de17, tilde news (https://tilde.news) was down:

HTTP code: 500
Response time: 551 ms

Resolved: tilde news is back up in 0303053 after 14 minutes.

repo: benharri/upptime


text:
Externalized config

We might want to support multiple sources of config for things like pipeline args and step prototypes.  Currently we support:

defaults in the pipeline spec
"--args" passed on the cli

We might want to accept args and/or prototypes from several sources, with some documented precedence order to be determined:

"--args" passed on the cli
args defaults in the pipeline spec
proptotype(s) in the pipeline spec
a host-specific "set and forget" config file with args defaults and prototype(s)
existing host environment variables?
additional pipeline specs from which we take the union of args and prototypes, and apply these to the steps being run?

For existing host environment variables, I think we'd want to capture and record these in a way that's explicit and shows up in the execution record.  For example, only existing env vars if they match arg names declared in the pipeline, and then include them along with command line args.  Maybe allow case-insensitive matching for env vars?

This is all in place, except for environment variables.  I'll make a separate issue for that, in case we want to revisit it.

For env vars: https://github.com/benjamin-heasly/proceed/issues/18

repo: benjamin-heasly/proceed

license: Unlicense


text:
Async Twenty

Now that IAsyncDisposable is a thing, can we use it to support an async API for Twenty?

Does IAsyncDisposable work with netstandard2.0 or do you want to change the Target?

authors: benjamin-hodgson najlot

repo: benjamin-hodgson/Eighty


text:
Refactor of Python _unique_schemas for ordered=True

Currently the Python OAS2 implementation has a bug (lines 571-574, python\src\derek\_parse\_oas2.py):
        for i, s in enumerate(map(json.dumps, schemas)):
            schema = schemas[i]
            if schema not in unique:
                unique.append(schema)

This doesn't actually check for duplicates using json.dumps. In Python, list.__contains__ will check if something is in the list by doing an equality check, not an identity check.
I think the equality check (==) should pass for different schemas, even if the identity check (is) fails.

I'm going to refactor this to use the following instead, for brevity:
        for s in schemas:
            if s not in unique:
                unique.append(s)

repo: benjaminwoods/derek


text:
Check if field exists

Hi, I'm trying to check if a field exists in a neo block. I'm following this suggestion (but for a matrix field) and I can't get it to work:
{% for block in blocks.level(1) %}
  {% if block['foo'] is defined %}
    yep
  {% else %}
    nope
  {% endif %}
{% endfor %}

It will output 'true' if the field exists anywhere in Craft, even if its not present in the block. Am I missing something?
Thanks in advance.

How Craft works is that every element is given a field as a property as long as that field is in the same context of the element. What this means is that because Neo fields use existing fields (the "global" context) each block is implicitly given the property of every globally defined field. This sounds weird, but it's how entries, categories, etc. all work as well. And there's likely good reasons for this - for example, you might have noticed unassigning a field from an entry type still lets you access the values those fields once stored. It's an opportunity to undo what you've done without losing data in the process.
The reason this works for Matrix blocks though, is that they're a special case - each block type is given it's own context. For Neo, the easiest way would be to change if block['foo'] is defined to if block.foo is not empty. This is not exactly one-to-one but practically it shouldn't make a difference.

Aha! This actually answers some questions I had regarding Craft (like why all CP fields appear in the logs). Thanks for that, and thanks for your work on all your plugins, great stuff.

@benjamminf Wondering if there is another solution to checking if a Neo block can use a field? Checking if the field is not empty errors out for me because the field doesn't exist (callout here is a lightswitch field).
Code:
{% set isCallout = item.callout is not empty and item.callout %}

Result:
Craft\MatrixBlockModel and its behaviors do not have a method or closure named "callout".

authors: benjamminf missmatsuko pl-mnm

repo: benjamminf/craft-neo


text:
Hide buttons in AdonisWindow according to ResizeMode

The default WPF window hides the minimize and maximize buttons if ResizeMode is set to NoResize. Also, the maximize button is disabled if it's set to CanMinimize [link].
This PR adds this behaviour for AdonisWindow.
PS: Thanks for your great work on this library!

We should also check if the window buttons are the only things that need to respect the ResizeMode. Maximizing can also be done using shortcuts, double-clicking the title bar and dragging the window to the top of the screen. Maybe these things need to be adressed as well. I will look into that soon.

@benruehl Thanks for your feedback.

I think the solution could be improved by moving the setter of the disabled foreground to the WindowButton style.

I did try this before, but somehow could not get it to work. It seems the triggers in the WindowButton style are overriden by the values of the control template. The current is the only solution I could think of.

Maximizing can also be done using shortcuts, double-clicking the title bar and dragging the window to the top of the screen.

Made a quick check for those and everything already seems to behave as expected. Looks like someone already thought about that :)
https://github.com/benruehl/adonis-ui/blob/bb2bfbe09ed509e0f9f2e39dcf5d4eeef717d7f6/AdonisUI/Controls/AdonisWindow.cs#L225-L229

You are right, I see what you mean, sorry!
The only alternative I can think of is a trigger in the WindowButton style which sets the foreground of an inner control in the template. That way the foreground is no longer overridden because the inheritance is cut off.
Something like this:
<ControlTemplate.Triggers>
    <Trigger Property="IsEnabled" Value="False">
        <Setter Property="TextElement.Foreground" TargetName="ContentPresenter" Value="{DynamicResource {x:Static adonisUi:Brushes.DisabledForegroundBrush}}"/>
    </Trigger>
</ControlTemplate.Triggers>

(Assuming the ContentPresenter in the WindowButton control template is named 'ContentPresenter')
This solution has the disadvantage that it is built directly into the template which means the behavior cannot be customized from the outside anymore.
What do you think? If you don't like the idea, we can use your current solution as well.

@benruehl You're alternative solution makes more sense to me as it is more generic. However, setting TextElement.Foreground on the ContentPresenter does not seem to have an effect on the window button icons as they are canvas elements which use the foreground color of the surrounding ContentControl. Have I overseen something important here?

Seems like I forgot to mention that the button's Content needs to go into the ContentTemplate instead.
<Button x:Name="PART_MaximizeRestoreButton"
        Grid.Column="1"
        Style="{DynamicResource {x:Static adonisUi:Styles.WindowButton}}"
        Foreground="{TemplateBinding TitleBarForeground}"
        Background="{TemplateBinding WindowButtonHighlightBrush}">
    <Button.ContentTemplate>
        <DataTemplate>
            <ContentControl ContentTemplate="{DynamicResource {x:Static adonisUi:Icons.WindowMaximize}}"
                            Width="10"
                            Height="10"/>
        </DataTemplate>
    </Button.ContentTemplate>
</Button>

I am not sure why this changes the behavior though. Read about it in punker76's blog.
Does it work for you now?

Thanks, this does work for me now. I pushed the changes.

Awesome. Again, thanks a lot for this contribution. Appreciate it.

authors: alxnull benruehl

repo: benruehl/adonis-ui


text:
NotReadableError: Could not start video source

Hi,
I'm having trouble using the library for some Android devices, and it throws NotReadableError: Could not start video source error message in Chrome even though all permissions are provided.
Chrome ver. 92.0.4515
Samsung Note 10+

Thank you.

Hello, same error here. Have you found a solution ?

authors: Barbouy pasankg

repo: bensonruan/webcam-easy


text:
Update jackson-databind to 2.17.0

About this PR
📦 Updates com.fasterxml.jackson.core:jackson-databind from 2.11.4 to 2.17.0
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.fasterxml.jackson.core", artifactId = "jackson-databind" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.fasterxml.jackson.core", artifactId = "jackson-databind" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #136.

repo: benthecarman/OP-RETURN-Bot


text:
1.12.2 Exceptions Reading Molang

This gets thrown, over and over, during initialization:
19:14:51] [Client thread/INFO] [minecraft/SimpleReloadableResourceManager]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Dungeon Mobs, FMLFileResourcePack:Doomlike Dungeons, FMLFileResourcePack:Thaumcraft, FMLFileResourcePack:Baubles, FMLFileResourcePack:GeckoLib
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: java.lang.IndexOutOfBoundsException: Index: -1, Size: 4
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.util.ArrayList$SubList.rangeCheck(ArrayList.java:1227)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.util.ArrayList$SubList.get(ArrayList.java:1044)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.mclib.math.MathBuilder.parseSymbols(MathBuilder.java:332)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.mclib.math.MathBuilder.parseSymbols(MathBuilder.java:334)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseSymbolsMolang(MolangParser.java:232)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseOneLine(MolangParser.java:217)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseExpression(MolangParser.java:158)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseJson(MolangParser.java:119)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonKeyFrameUtils.parseExpression(JsonKeyFrameUtils.java:185)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonKeyFrameUtils.convertJson(JsonKeyFrameUtils.java:51)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonKeyFrameUtils.convertJsonToKeyFrames(JsonKeyFrameUtils.java:162)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonAnimationUtils.deserializeJsonToAnimation(JsonAnimationUtils.java:280)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.file.AnimationFileLoader.loadAllAnimations(AnimationFileLoader.java:36)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.resource.GeckoLibCache.onResourceManagerReload(GeckoLibCache.java:99)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:132)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:112)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:869)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:247)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.Minecraft.init(Minecraft.java:514)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.Minecraft.run(Minecraft.java:422)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.main.Main.main(Main.java:118)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.lang.reflect.Method.invoke(Method.java:498)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.lang.reflect.Method.invoke(Method.java:498)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at GradleStart.main(GradleStart.java:25)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: java.lang.IndexOutOfBoundsException: Index: -1, Size: 4
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.util.ArrayList$SubList.rangeCheck(ArrayList.java:1227)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.util.ArrayList$SubList.get(ArrayList.java:1044)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.mclib.math.MathBuilder.parseSymbols(MathBuilder.java:332)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.mclib.math.MathBuilder.parseSymbols(MathBuilder.java:334)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseSymbolsMolang(MolangParser.java:232)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseOneLine(MolangParser.java:217)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseExpression(MolangParser.java:158)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.shadowed.eliotlash.molang.MolangParser.parseJson(MolangParser.java:119)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonKeyFrameUtils.parseExpression(JsonKeyFrameUtils.java:185)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonKeyFrameUtils.convertJson(JsonKeyFrameUtils.java:51)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonKeyFrameUtils.convertJsonToKeyFrames(JsonKeyFrameUtils.java:162)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.util.json.JsonAnimationUtils.deserializeJsonToAnimation(JsonAnimationUtils.java:280)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.file.AnimationFileLoader.loadAllAnimations(AnimationFileLoader.java:36)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at software.bernie.geckolib3.resource.GeckoLibCache.onResourceManagerReload(GeckoLibCache.java:99)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:132)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:112)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:869)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:247)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.Minecraft.init(Minecraft.java:514)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.Minecraft.run(Minecraft.java:422)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.client.main.Main.main(Main.java:118)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.lang.reflect.Method.invoke(Method.java:498)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at java.lang.reflect.Method.invoke(Method.java:498)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: 	at GradleStart.main(GradleStart.java:25)
[19:14:51] [Client thread/INFO] [STDERR]: [software.bernie.shadowed.eliotlash.molang.MolangParser:parseSymbolsMolang:236]: java.lang.IndexOutOfBoundsException: Index: -1, Size: 4
As a side note, I also get an error before this for
"[19:14:51] [Client thread/INFO] [STDERR]: [java.lang.Throwable:printStackTrace:635]: Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: geckolib3:geo/wolf_armor.geo.json" which probably isn't related but I thought I'd bring it up.
I later gett a crash when checking the animation status or current animation, possibly actually related.

1.12.2 is honestly out of support, unless Gecko himself fixes but I wouldn't hold out for it.

repo: bernie-g/geckolib


text:
Create briar

Signed-off-by: pierreboc 31745588+pierreboc@users.noreply.github.com

The phone required field is deabtable. There is Briar-GTK https://code.briarproject.org/briar/briar-gtk
But it is not feature complete yet.

authors: besendorf pierreboc


text:
Improving logic for "Load Next Seed"

This logic update allows the next seed function to handle ROM names with leading zeros (e.g. "Rom001", "Rom002"). It also handles the weird case of having spaces and/or underscores in the Rom file name, which bizhawk makes difficult. There is a minor amount of error checking done here to report when a "next seed file" doesn't exist, to help with troubleshooting.

@bdjeffyp Tagging you directly to see if you can help with this merge, no worries otherwise.
I wanted to improve on the ability to soft reset and load the next seed in sequence. This is one of the most common issues brought up in the IronMON discord help channel. These fixes should handle a lot of use-cases that people are running into where it breaks the tracker. I tested these myself, here's a example set of seeds I worked with (attached).

Dude! This is badass!! I'll review the code tonight after work! Thanks so much!

Unsure where else to mention this, but the Readme can be updated to remove the requirements for filenames without spaces and with leading zeros.

Features
Quick loading seeds: You can create a bunch of seeds ahead of time, and then use a button combination to load the next seed. Seeds must be in a numerical order without leading zeroes.
For example: you can start at 13 with a file name like kaizo13.gba. Pressing the button combination would then load kaizo14.gba. Press it again and kaizo15.gba is loaded. If you tried kaizo00014.gba, the quick load feature won't work. Remove the leading zeroes.

becomes:

Features
Quick loading seeds: You can create a bunch of seeds ahead of time, and then use a button combination to load the next seed.
For example: you can start at 13 with a file name like kaizo13.gba. Pressing the button combination would then load kaizo14.gba. Press it again and kaizo15.gba is loaded.

And the FAQ common error can get updated to:

Error: NullHawk does not implement memory domains NLua.Exceptions.LuaException: unprotected error in call to Lua API (0)
Cause: The ROMS_FOLDER path specified in Settings.ini is not correct, or you are out of roms and there is no next seed available.
Fix: Make sure you have specified a ROMS_FOLDER location. This can be done through the gear icon on the tracker itself.

Sounds good. We can update the README when we next make a pull request. If you want to make the update, go for it. If I try to do it, I have to bug Besteon, who is super busy right now and I won't be able to make a change until a week from now.

authors: UTDZac bdjeffyp

repo: besteon/Ironmon-Tracker


text:
7.1 seemingly not working anymore

Describe the bug
It seems like the extension isn't unlocking sub VOD, I linked the one that is not working for me...
VOD / Channel link
The url where you encountered the error
Browser
Chrome (Vivaldi)

Can confirm. None of the VODs work anymore.

Same here, even after deleting cookies or cache still doesn't work.

still no problem here (edge / firefox)

Also good for me after upgrading to 0.7.1

hi me too same problem on chrome I can no longer watch vod with version 0.7.1

hi me too same problem on chrome I can no longer watch vod with version 0.7.1

I removed and re instaled the 0.7.1 and it seems to work now (i'm on chrome)

it's good for also everything works correctly

repo: besuper/TwitchNoSub


text:
Matomo v2

Le but de cette PR est d'améliorer notre tracking matomo en utilisant des balises permettant de capter des évenements un peu partout où l'on estime cela nécessaire.
Problème:
Les formulaires objectif/funnel de matomo ne permettent pas un suivi très fin: il n'est par exemple pas possible de faire des regex sur les urls dans nos funnels --> pas pratique pour nous qui en fonction des questions et suivant notre logique actuelle avons besoin de tracker des urls de type "propriétaire occupant=oui|non" avec l'astérisque en plus pour savoir si la question est définitivement validée.
C'est plus pratique de tracker le clic effectif sur le bouton Suivant en loguant la "currentQuestion", ce qui est bien plus simple en utilisant les évenements Matomo.
Un autre intérêt est de mieux tracker le parcours utilisateur: grâce au évenement, j'espère qu'on pourra suivre d'autre type de comportement, par exemple l'utilisateur qui va sur le parcours d'ampleur, puis fait précédent et va voir le parcours par geste

Besoin de merger en prod pour tester

repo: betagouv/reno


text:
As a User I want to see current product inventory report so that I can get a whole picture of what action is needed for the products.

Written by @xqliu
Created at 2015-03-07T12:31:12.000+0800
Link to http://betterlife.atlassian.net/browse/BE-105

There should be a one time operation button to make the inventory adjust form take effective and put all the adjustments to the inventory table.

Create an inventory translation when creating purchase order and add up new inventory to (in-transit quantity)

Create an inventory transaction when creating sales order and minus inventory from the system(available quantity).

When creating inventory transaction from UI, create the accordingly record in the system(reduce or increase available quantity).

Calculate current inventory fore each product and display it in the product list and edit page.

Add a receive operation to purchase order and when receive the purchase order, move quantity from in-transit quantity to available quantity.

Update the inventory change record when there's any update to the purchase order if the there's no receive receipt created

Update the inventory change record when there's any update to the sales  order.

Written by @xqliu
Created at 2015-08-14T09:56:20.298+0800

repo: betterlife/psi


text:
TS Bebop views are shared which leads to difficult to diagnose bugs

Describe the bug
Okay, this might technically be a feature, but it was undocumented and so I spent a good bit of time assuming my code was wrong only to find out it had to do with serialization logic assumptions not holding up.
To Reproduce
This test passes
it("correctly encodes and decodes datagrams", () => {
    const data = new Uint8Array([7, 0, 0, 0, 75, 86, 83, 116, 111, 114, 101]);
    const dgram1: IRpcDatagram = {
        discriminator: RpcResponseOk.discriminator,
        value: {
            header: {id: 1},
            data,
        }
    };
    // this is the current state at runtime
    // {"discriminator":2,"value":{"header":{"id":1},"data":{"0":7,"1":0,"2":0,"3":0,"4":75,"5":86,"6":83,"7":116,"8":111,"9":114,"10":101}}}
    // 17,0,0,0,2,1,0,11,0,0,0,7,0,0,0,75,86,83,116,111,114,101
    const raw = RpcDatagram.encode(dgram1);
    const dgram2 = RpcDatagram.decode(raw);
    expect(dgram2.discriminator).toBe(RpcResponseOk.discriminator);
    if (dgram2.discriminator == RpcResponseOk.discriminator)
        expect(dgram2.value.data).toEqual(data)

    expect(dgram2).toEqual(dgram1);
    expect(dgram2).not.toBe(dgram1);
})

And this test fails
it("correctly encodes and decodes datagrams and data", () => {
    const name1: I_HelloServiceNameReturn = {value: "KVStore"};
    // this line would fix it
    // const data = new Uint8Array(_HelloServiceNameReturn.encode(name1));
    const data = _HelloServiceNameReturn.encode(name1);
    expect(data).toEqual(new Uint8Array([7, 0, 0, 0, 75, 86, 83, 116, 111, 114, 101]));

    const dgram1: IRpcDatagram = {
        discriminator: RpcResponseOk.discriminator,
        value: {
            header: { id: 1 },
            data
        }
    };
    // this is the current state at runtime
    // {"discriminator":2,"value":{"header":{"id":1},"data":{"0":7,"1":0,"2":0,"3":0,"4":75,"5":86,"6":83,"7":116,"8":111,"9":114,"10":101}}}
    // 17,0,0,0,2,1,0,11,0,0,0,7,0,0,0,2,1,0,11,0,0,0
    // As you can see the buffer ^ is not the same as when we used our own buffer even though we confirmed the data was the same
    const raw = RpcDatagram.encode(dgram1);
    const dgram2 = RpcDatagram.decode(raw);
    expect(dgram2.discriminator).toBe(RpcResponseOk.discriminator);
    if (dgram2.discriminator == RpcResponseOk.discriminator) {
        expect(dgram2.value.data).toEqual(data); // <-- Fails on this line
        const name3 = _HelloServiceNameReturn.decode(dgram2.value.data);
        expect(name3).toEqual(name1);
    }

    expect(dgram2).toEqual(dgram1);
    expect(dgram2).not.toBe(dgram1);
})

Basically just use the serialized data from one type as a byte[] value for another and serialize and then weird things happen.
There is another case where this can and will pop up, which is if you serialize data, and then for ANY reason await before using the buffer. This could happen in networking or subtle code logic, like if you were to have
async myFn() {
  const buf = MyType.encode(obj)
  await doThing(buf)
  await doOtherThing(buf)
}

because it is very possible, depending on what triggers myFn, to have buf change before doOtherThing is called.
This is also an issue where you call say a function for a database to do a thing with buf and, without you even knowing, it chooses to await something before it uses your provided buffer. At that point it would be almost impossible to debug without knowing about this behavior why the data in your database is not the data that was submitted to the function.
You will likely only run into this secondary case if you are writing network code which triggers sterilization as multiple concurrent operations may occur naturally. What is worse about this, is that it is effectively a race condition that is very subtle and almost impossible to reproduce and debug.
Expected behavior
When I get the serialized data, I expect it to continue living until I drop the last reference to it unless otherwise documented.
IMO, in a language like C++, it makes some sense to do this and expect the user to know and proceed with caution, but you would also probably use a mutex on the buffer. In TS there is NO mutex which is fine as long as you don't run into that secondary case of await-before-use because JS is single-threaded. At minimum this needs to be documented, but JS is not a language focused on performance so I think it would be better to make a new BebopView for every time encode is called by default as it is the least likely to cause weird results. We should allow the user to bring their own view and that would allow more efficient serialization where they know what they are doing.
Bebop info:

Version: 2.4.2-ish (rpc-ts branch)
Runtime: TS

Desktop (please complete the following information):

OS: Windows
Version: 10

Additional context
Working on RPC and for this we have a datagram which contains a raw data field which is another bebop serialized type. This is how this behavior was discovered by I, @Eadword, a person who was not particularly familiar with the serialization implementation and made what I thought were reasonable assumptions about behavior.

I’ll provide a more thoughtful response later this evening but to comment quickly:

JS is not a language focused on performance so I think it would be better to make a new BebopView

Bebop is focused on performance across every language precisely because for us every millisecond spent allocating or wasting cpu cycles impacts end-user performance. To state otherwise runs counter to why we made Bebop, and isn’t a mindset that is productive for us to subscribe to. Browsers can be slow and it’s our job to make Bebop resilient

When you have a chance to review more closely, I do think the bring-your-own BebopView would be a good middle ground to prevent the default from being hard-to-understand behavior but also not blocking users from optimizing.

When you have a chance to review more closely, I do think the bring-your-own BebopView would be a good middle ground to prevent the default from being hard-to-understand behavior but also not blocking users from optimizing.

For sure. We do “bring your own buffer” in C# too so you can leverage array pooling. I have notes from our initial BebopView designs laying around, so i’ll include those and @lynn chime in once she’s back.

I implemented a fix for this in #225 but I’m holding off on merging. Copying memory, even on small data structures, reduces performance substantially:
Bebop (subarray)   encode Song x 7,225,130 ops/sec ±0.08% (101 runs sampled)
Bebop (subarray)   decode Song x 2,861,336 ops/sec ±0.11% (100 runs sampled)
Bebop (slice)   encode Song x 2,259,026 ops/sec ±2.66% (80 runs sampled)
Bebop (slice)  decode Song x 2,823,515 ops/sec ±0.28% (94 runs sampled)

The encode method creates the illusion and promise that the buffer returned to you is unique and safe to access at anytime and that the data will remain the same; this is of course, not true, and it’s possible for Bebop to partially decode corrupted data which could lead to all sorts of issues. If the decode function simply blew up, I’d be less worried, but given the circumstances this requires deeper discussion.

I would lean towards making the change out of the "principle of least surprise", and then exposing the old fast-but-dangerous behavior as encodeUnsafe(). 👍

authors: AndrewMD5 Eadword lynn mattiecnvr

repo: betwixt-labs/bebop


text:
AssetServer returns invalid handle after entity despawned (in the same frame)

Bevy version
0.13
`AdapterInfo { name: "NVIDIA GeForce RTX 2070", vendor: 4318, device: 7938, device_type: DiscreteGpu, backend: Vulkan }`

What you did
I use OnExit and OnEnter to switch between UI pages. During OnExit I use commands to despawn entities recursively from the root node and then OnEnter to generate new content. My issue is with entities that have UiImage components despawned via commands and new entities with their UiImage handle set via a custom command that refer to the same image. I assume all asset types would have the same issue though.
What went wrong
I am using images for UI icons and if an icon that was used in the despawned page is fetched from with AssetServer.load(path) I can't see the icon rendered. This happens even if I add an apply_deferred before spawning the new page content.
Additional information
There doesn't seem to be an issue with loading the image if I depsawn the entity ahead of the switch of the pages. I assume it works because the frame ends with the asset cleaned up and then the loads it again correctly in a later frame.
Here is the command I use to set images:
struct SetImage {
    path: String,
}

impl EntityCommand for SetImage {
    fn apply(self, entity: Entity, world: &mut World) {
        let handle = if self.path == "" {
            Handle::default()
        } else {
            world.resource::<AssetServer>().load(self.path)
        };

        let mut q_ui_image = world.query::<&mut UiImage>();
        let Ok(mut image) = q_ui_image.get_mut(world, entity) else {
            warn!(
                "Failed to set image on entity {:?}: No UiImage component found!",
                entity
            );
            return;
        };

        if image.texture != handle {
            image.texture = handle;
        }
    }
}

I think I just ran into this same issue, for the same reasons listed. I likewise use OnExit(SomeState) to despawn entities that are re-spawned in the next state, OnEnter(OtherState). In my game, I observe that the textures fail to load (using TextureAtlasLayout in my case) but all of the normal entity logic behaves the same.
I've tried tinkering with apply_deferred before or after the state transitions (as well as splitting up my teardown despawner into a separate system, and using chain to pair them w/ auto apply_deferred in 0.13), but no luck.

I think this should have been fixed by https://github.com/bevyengine/bevy/pull/12459 as well. Seems to be the same issue.

authors: eidloi mgmarlow

repo: bevyengine/bevy