RLN in the Browser

Meta issue: https://github.com/vacp2p/research/issues/129
Breakdown
We want (1) , (2) and (3) for DevCon. Order on the other user stories in loose.
1. As a user, I want to join the group

[x] Generate RLN credentials

[x] Integrate zerokit in js-rln

[x] Call the contract to join the group

[x] Using web wallet

2. As a user, I want to send a message that includes a proof
Would probably use Light Push (but does not really matter)

[x] Retrieve state of group (must be latest to be secured)

[x] Call contract (every time?)
[x] Listen to contract events

[x] Generate the proof using zerokit
[x] Attach the proof to Waku Message

[x] Need to design API/interface so messages are attached every time relay.send or  lightpush.push is used.

3. As a end user, I want to use RLN in the web

[x] ~Create rln-web-chat (clone web-chat)~ New example https://examples.waku.org/rln-js/ https://github.com/waku-org/js-waku-examples/tree/master/rln-js

4. As a rln-js user, I want to my RLN credentials to be securely saved in the browser storage

[ ] ~Credentials are saved in the browser~

[x] Credentials derived from Ethereum Wallet signature

This is a nice feature for web-chat users

Also an example for developers

See how eth-pm saves encryption key

5. As a rln-js user, I want to be able to export and import my RLN credentials

[x] Can import text credentials
[x] Can export credentials by copy-pasting
[ ] Can export/import credentials in file format, blocked by https://github.com/vacp2p/rfc/issues/543

6. As a user, I want my node to check proofs on messages

[x] Expose interface to verify proof
[ ] Provide an easy API to automatically drop messages with invalid proofs
[ ] Provide an easy API to track seen epochs

The message could be received via store, filter or relay.
Note: This could be pass as a generalized "validation callback" method to filter and store. Maybe some helper to avoid too much code.
7. As a user, I want Waku Relay to check proofs on messages and drop them if invalid
Useful once Relay scalability #905 is ready.
Preferably use pubsub validator.
8. As a user, I want to be able to slash spammers
Review if slashing makes sense in the browser once #905 is progressed.
Other requirements

create js-rln repo under waku-org
Use Apache 2.0 - MIT Licence
Use similar tech stake than js-waku:

language: TypeScript
ESM Only package
package manager: npm or pnpm
Docs: Typedoc
TypeScript to JavaScript: tsc or parcel or vite
Bundling (to enable direct usage in <script> tag): rollup or vite
Format: prettier + eslint
Testing:

mocha/chai is used for js-waku, ok to consider more modern alternative, consider aegir
Browser run: karma, ok to consider better alternative or aegir (js-waku uses webpack for karma, best to try rollup or whichever bundler is used for prod code).
NodeJS: 16 or 18 (js-waku uses 16, tests can't run with 18 due to ESM loader changes, fine to use 18 and backport config fix to js-waku)

Dependencies: aim to use similar deps to js-waku for similar purposes (ie, noble, etc). Avoid polyfills.

2 Sep
Attendees

@staheri14
@richard-ramos
@fryorcraken

Minutes
JS-RLN Status

@richard-ramos has started the work in getting zerokit working in JavaScript:

[x] compiling zerokit in wasm
[x] Using wasm API in JavaScript
[x] Generate witness
[x] Generate proof
[ ] Verify proof

Issue encountered: a wasm function cannot load a wasm payload of more than 4.0KB.
Worked around by loading the payload in JS and passing it to the wasm API.
The PoC is local JS code in one file. Next steps:

Verify proof
Tidy up the code
Move the code to js-rln repo, use TypeScript

JS-RLN RAID
Merkle tree size download
It was discussed whether a browser can handle 60-100MB in memory. From testing, this is possible.
However, downloading 60MB/100MB would be a UX issue:

data plan restriction
download speed (could take several minutes)

Hence, we may need to have strategies in place such as:

Light mode: Trust a remote node to provide the minimum information required to generate proof (similar how a remote is trusted to deliver a message when using light push)
Heavy mode: Trustless setup (proof is downloaded) but this comes with UX drawbacks. This could also be done with a browser extension that starts downloading the merkle tree when the browser is started. (similar to Waku Relay scability https://github.com/status-im/js-waku/issues/905)
Hybrid mode: Light mode at first while merkle tree is downloaded in the background.

Do note that for now the Merkle tree is few kB so it's not an issue just yet.
It was discussed that the size of the tree comes to the fact that we need to be able to delete members.
Another note is that to download the Merkle tree from the smart contract, the stack involves several components:

etherjs library
Browser Wallet Extension (e.g. MetaMask) or dApp browser (e.g. Status)
Web3 API provider (e.g. infura)

We may face issue with any of this step due to data size limits or timeout due to the length of time taken to download the data.
Usage of zerokit in go-waku
@richard-ramos did some build experiments with zerokit (go-waku currently uses kilic/rln) and the static library results are 100s of MB large: https://github.com/vacp2p/zerokit/issues/37.
This is not ideal for mobile environment (large app) and can be blocker for Waku React Native (uses go-waku) as there are timeout and size limits to upload packages to npmjs.com (that's how waku react native is currently distributed).
@staheri14 mentioned that there are two versions of the zerokit library in the repo, with one being lighter.

[ ] @richard-ramos to check with @s1fr0

@staheri14 mentioned that there are two versions of the zerokit library in the repo, with one being lighter.

Not sure about this tbh, my point was about the tree size, which may/may not have an impact on the lib size, @s1fr0 can confirm better.

Related to the tree size, fyi, we have published a forum post covering some initial analysis of the storage overhead of the membership Merkle tree  https://forum.vac.dev/t/waku-rln-relay-evaluating-storage-overhead-of-membership-merkle-tree/151
Feel free to comment and share concerns

compiling zerokit in wasm

Why are we doing this? Seems like a wasted effort for no reason. Why are we not using the existing JS implementation of RLN that works? cc @staheri14

:( I did not know about the existence of https://github.com/njofce/zk-chat/blob/main/zk-chat-client-lib/

In regards of using zerokit (wasm) vs the JS library used by zk-chat
Zerokit
Benefits

Long term, better to use a library that we are maintainers of so that we can better influence the quality and features present in the library
One Rust library to serve all implementations (nim, go, js) reduces maintenance, research & development effort

This includes decreased chance of interoperabiity issues, or delta in the features/development available across platforms

Risks

The current size of the wasm blobs are ~7MB (5.7MB for the circom circuit, 838kB for zerokit), this is too large to build a responsive Web app (should target 100kb or under).
Circuit: currently passed base64 encoded, we could reduce the size by trying different encoding and zipping. Actual size are:

3.1M rln_final.zkey
1.2M rln.wasm

Circom: @s1fr0 has already done work to reduce the shared library object size (by using different/smaller dependencies), there is chance that this could impact the wasm size

In summary, we don't know if it's possible to reach an ideal library size for the web, and how effort would be involved (e.g. Forking dependencies, upstream feature flags, more library split, etc).
zk-kit
Benefits

Smaller library size: unsure, npm displays

https://www.npmjs.com/package/@zk-kit/protocols 55kB
https://www.npmjs.com/package/@zk-kit/identity 24.6kB (but readme shows 1.59MB)
The full client: https://www.npmjs.com/package/zk-chat-client 282kB

But, zk-kit does not provide the circom circuit, so we would still need to pass ours or find theirs.
Cons

Uncertainty if there are differences with zerokit and how would we manage them (upstream feature flags? for repo?)
The risk around circom size remain. Also, if their circom circuit is smaller then can we replicate the technique to make it smaller on our circuit?

Other project:
https://github.com/Rate-Limiting-Nullifier/zk-keeper
uses the same library than zk-chat actually:
"@zk-kit/identity": "^1.4.1",
"@zk-kit/protocols": "^1.8.2",
"circomlibjs": "^0.0.8",

Not sure why they would need circomlibjs. Circuit generation on the fly? Maybe something to check out @richard-ramos  as circom circuit size is one of the challenges.

@fryorcraken Thanks for the breakdown from your POV! This is exactly the kind of discussion we should've had at the beginning of this work, but glad we are doing it properly now! Would like to hear @richard-ramos and @staheri14 thoughts on this too.

But, zk-kit does not provide the circom circuit, so we would still need to pass ours or find theirs.

We are using the same and they are here: https://github.com/privacy-scaling-explorations/rln

Uncertainty if there are differences with zerokit and how would we manage them

My intuition is that they are not that big (especially compared to initial WASM blocker, which might be addressed now?), but I could be wrong and to give a qualified answer you'd have to look at RLN Relay API, MT algo etc and do a more thorough diff, something I think @richard-ramos @staheri14 @staheri14 are able to do.

The risk around circom size remain. Also, if their circom circuit is smaller then can we replicate the technique to make it smaller on our circuit?

That's not a risk relevant to zk-kit, it is the same for both.

https://github.com/njofce/zk-chat uses a client/server model (see zk-chat-server-lib), whie we would use the @zk-kit libraries, it does mean that there some unknowns unknowns here (does some of the code work only in NodeJS? etc) as they do not run the JS code only in the browser.

While this is true and it is a different model, IIRC there's no Node specific code that does the core RLN operations we care about. Could be wrong though, so requires looking a bit more.

Long term I agree we probably want to use Zerokit for everything, if possible. The most immediate goal now is to get this working end-to-end for testnet2 and Devcon, so the question right now is what would be the fastest reasonable path towards that? What do you think @richard-ramos

It was non-trivial to find the commit version of the repo in which the rln module existed (it is now deleted from the zk-kit master branch), but finally found it:

The implementation of the rln part https://github.com/privacy-scaling-explorations/zk-kit/blob/9c8c2723229ef7ea9e1b90568efbf2622c2b67fa/packages/protocols/src/rln.ts
The corresponding tests https://github.com/privacy-scaling-explorations/zk-kit/blob/9c8c2723229ef7ea9e1b90568efbf2622c2b67fa/packages/protocols/tests/rln.test.ts#L31
The wasm files reside in https://github.com/privacy-scaling-explorations/zk-kit/blob/fdede4d9b587c0aa8c895f17b700b6c08f06f766/packages/protocols/zkeyFiles.zip

My thoughts and findings so far:
Their public and private inputs for the rln proofs LOOK SIMILAR to the zero-kit (but not killic library). zk-kit/rln seems to support secret sharing, and slashing, and also utilize a rlnIdentifier for secret sharing, which matches the vac/zero-kit.  But we need to have the circuit file to be sure about the underlying computations.

The rln-related APIs of zk-kit differ from zero-kit, so I need to play more with both repos to figure out the mapping between the two, the data sterilization/deserialization, and their parameters, etc.
The  rln witness generation seems inefficient (see generateMerkleProof function call and the actual implementation) for EACH rln witness generation, the entire tree needs to be reconstructed from the set of leaves and then the MerkleProof object is extracted from that tree. It is perceivable that this would slow down the proof generation a lot. In zero-kit, the tree is constructed once and is used for the subsequent rln witness generations.
Regarding the item above, my understanding is that we might be able to benefit from the IncrementalMerkleTree class in the same repo to construct the tree once and then use createProof function to populate the required MerkleProof object.

ATM, there is no absolute answer re whether the two libs are the same or not, the more time we invest the more certainty we get about this. I am still investigating.

Apparently, the rln relevant functionality is moved to this repo  https://github.com/Rate-Limiting-Nullifier/rlnjs/

16 Sep - @staheri14 / @fryorcraken catch-up

Note that https://github.com/waku-org/js-rln/issues/1#issuecomment-1246067128 was written with @richard-ramos so I believe we are on the same page

Will cancel this meeting to attend Monday/Tuesday Vac PM instead

Regarding zerokit risks: The main risk the bundle size, see https://github.com/waku-org/js-rln/issues/1#issuecomment-1246067128 for breakdown

838kB library: Note that js-waku was 1.1MB 2 months ago, 838kB is manageable for a demo/PoC
Circuit size: Using binary blob (instead of base64) and gzip enables a reduction by 50%. We can play around with other method. Also need to clarify if this asset download can be done separately so it's done while the user connect their wallets, etc.

Hence, for now let's keep focus on zerokit. No need to spend more time investigating difference with rlnjs (@richard-ramos, do you agree?)

rln-js update:

@fryorcraken had to prepare js-waku to enable RLN to be plugged in. Spend the past week on this. The change is almost ready: https://github.com/waku-org/js-waku/pull/935

Had to do other refactoring, which are now merged and released
Had to ensure examples are up to date, especially web-chat
Next steps:

finish update of examples with latest js-waku release
Wrap up & mergehttps://github.com/waku-org/js-waku/pull/935 (rebase + some minor changes)
Integrate these changes in examples

@richard-ramos to implement the new js-waku's Encoder interface in RLN to append the proof to the proto message.

Then, @fryorcraken will clone web-chat and start integration of Web wallet.
Risks: web-chat uses a React framework for the chat component, uncertain how to fit new buttons/options with this framework.
Currently thinking about a sidebar with the following options:

Connect Wallet Button
Sign transaction to send to RLN contract (contains RLN credentials) Button
Display RLN credentials
Button to export RLN credentials
Form to import RLN credentials

@oskarth:  The most immediate goal now is to get this working end-to-end for testnet2 and Devcon, so the question right now is what would be the fastest reasonable path towards that? What do you think @richard-ramos

After discussing this with @fryorcraken, we concluded that continuing the zerokit/wasm approach is the path we should take, since in practice most of the work required in js-rln for usage in js-waku is complete (besides bugs that might be reported in the PR and the size of zerokit output .wasm file).

When starting on export/import, best to talk with zk-keepers team.

FYI @oskarth @staheri14 I am not sure we'll have time to integrate it in web-chat.
Instead, we are focusing on examples.waku.org/rln-js/
This will still demonstrate sending messages with proof, receiving messages with proof and verifying them
It's a bit more raw. The upside is that it's just javascript and HTML in a single page, hence more readable to any developer than if it was a React app

Latest demos:

https://www.youtube.com/watch?v=Xz5q2ZhkFYs
https://www.youtube.com/watch?v=-vVrJWW0fls

Need to tidy up the issue, close it and open new issues for follow up if needed.

I suggest to close this for now:

As a rln-js user, I want to be able to export and import my RLN credentials

New issue to be opened once https://github.com/vacp2p/rfc/issues/543 is ready

As a user, I want my node to check proofs on messages

Interface exposed to check proof. Other API improvement can be tracked as we push for adoption and look at improving devex

As a user, I want Waku Relay to check proofs on messages and drop them if invalid

For now light client protocols are recommended from the browser, we can leave relay validation to nwaku nodes

As a user, I want to be able to slash spammers

Slashing is not ready, new issue can be open if and wehn we want to be able to slash from the browser.


No pre-built download available

Expected behaviour:
Caddy can be downloaded from https://caddyserver.com/download with this plugin included
Actual behaviour:
The plugin isn't present. Trying to download using the URL https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com%2Fcaddy-dns%2Flego-deprecated returns an error saying
github.com/caddy-dns/lego-deprecated is not a registered Caddy module package path.

We don't really support this plugin anymore due to its deprecated status. It also takes so many resources to build that it hogs our build server. So you can build.it from source if you want to, but it's not available on our site. Sorry!


Document self reporting feature introduced in 1.4

Document self reporting feature introduced in 1.4
Introduced via
https://github.com/NationalSecurityAgency/skills-service/issues/152

Skills Display presents "I did it" button for the self-reporting enabled skills
project admins can configure self reported skills as either Honor System or Requires Approval
implemented new Self Report project page to manage requests
sent email notifications when points are requested, approved and rejected

PR: https://github.com/NationalSecurityAgency/skills-docs/pull/87


Optimization Make only one request to retrieve price for orchestrator for user connectors

Actually each orchestrator for each cloud is added as a full component node, to optimize we will merge all orchestrator nodes in one component. This will simplify and clean up the code and enhance the overall performance

hot patched nuvla


Issue with drawWsgSimpleScaled()

Description
Issue with drawWsgSimpleScaled()
Expected behavior
Rendering a sprite with slightly negative y should render a cropped portion onto the screen similar to rendering a sprite with a slightly negative x. It seems the issue is only in the y direction.
Reproduction Steps
Scale up a sprite rendered to a slightly negative y position. The sprite is pushed down to start at y=0 instead of being clipped.
Screenshots
See sprites in the big bug video that are going off the left side of the screen clip correctly. But sprites going off the top of the screen are pushed down. Issue is only with scaled sprites.
(https://github.com/AEFeinstein/Super-2024-Swadge-FW/issues/221#issuecomment-2119533918)
Logs
n/a
Affected Version

Platform: Windows
git branch: main
git commit: b36f6fe
git full sha: b36f6fe8b5cd21ad33f164a8498ce63d4fe0fc41

Additional Notes
n/a

Interesting. It looks like when this happens it does actually clip the sprite, but it does it at the bottom instead.

There ended up being another issue here which I resolved in 7f160072febdaaff1edd98b21afdf132e6416ec2


Launch the GOV.UK Prototype Kit extensions feature

What
We have been working with HMRC to build and trial an extension feature that will allow teams working in departments to easily use components and styles that are widely used in those departments but are not in GOV.UK Frontend. We'd now like to roll out this feature to a wider audience.
Why
To enable people to use components, patterns and styles that are not in GOV.UK Frontend.
This means

It's less likely for people to make a different version of the Prototype Kit in order to do this
Components and patterns are easier to test and possibly then contribute to GOV.UK Frontend.
It's easier for people to use the Prototype Kit who can't use GOV.UK Frontend branding

Done when

[x] discover from HMRC whether any changes are needed
[x] recruit 2 more partners to test
[ ] get some user research for authors and end users
[ ] add documentation about making and installing extensions
[ ] add a 'currently installed extensions' list
[ ] fix potential namespace clashing in components (alphagov/govuk-frontend#1218, alphagov/govuk-frontend#870) - important to do partly because people will copy what Frontend does
[ ] provide a way to import all components
[ ] Investigate the issue of updating the Prototype Kit and losing custom node modules

Raised by users

[ ] Extensions - Is logging possible if the extension fails?
[ ] Extensions - loading assets doesn't work with just config

Not relevant for this repo, the Prototype Kit is making progress on this - see https://github.com/alphagov/govuk-prototype-kit/issues


Code cleanup

This PR removes redundant modifiers and initializations, unused variables, incorrect javadoc references, etc.
The static modifiers in inner interfaces are removed since they are static by default, and removing them should not break binary compatibility (the md5sums are the same). Let me know if those are preferred to be kept.

Codecov Report

Merging #1070 into master will increase coverage by 0.02%.
The diff coverage is 91.17%.

@@             Coverage Diff              @@
##             master    #1070      +/-   ##
============================================
+ Coverage     94.41%   94.43%   +0.02%
  Complexity      448      448
============================================
  Files             2        2
  Lines          6591     6563      -28
  Branches       1763     1761       -2
============================================
- Hits           6223     6198      -25
  Misses           94       94
+ Partials        274      271       -3

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/picocli/CommandLine.java
94.28% <91.04%> (+0.02%)
309.00 <12.00> (ø)

src/main/java/picocli/AutoComplete.java
96.98% <100.00%> (-0.06%)
139.00 <0.00> (ø)

Continue to review full report at Codecov.

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

Also there are a lot of @SuppressWarnings("deprecation") removed since we're at language level 1.5 and should not trigger any warnings.

I have checked the other removed @SuppressWarnings does not introduce any new warning when compiled with OpenJDK 11.0.7 and -Xlint:all.

The added final modifiers seem to break the codegen graalvm-aot tests, since the generated fields have an entra "allowWrite" : true.

On a side note, I think we should also remove the broken kloudtek logo (HTTPS cert expired) and machine-translated article (从Commons CLI迁移到Picocli) from README.

I have checked the other removed @SuppressWarnings does not introduce any new warning when compiled with OpenJDK 11.0.7 and -Xlint:all.

Thank you!

The added final modifiers seem to break the codegen graalvm-aot tests, since the generated fields have an entra "allowWrite" : true.
Edit: The field should not be made final, reverted.

Interesting! I’ll take a look tomorrow.

On a side note, I think we should also remove the broken kloudtek logo (HTTPS cert expired) and machine-translated article (从Commons CLI迁移到Picocli) from README.

Is the translation that bad? :-)
Even if it is, does it reflect badly on picocli?
I was thinking it’s better to have more links than fewer, to spread awareness of the library.

The added final modifiers seem to break the codegen graalvm-aot tests, since the generated fields have an entra "allowWrite" : true.
Edit: The field should not be made final, reverted.

Interesting! I’ll take a look tomorrow.

This is due to a private field being made final, but it is accessed by reflection from annotations. I have removed the final modifier that caused the issue.

On a side note, I think we should also remove the broken kloudtek logo (HTTPS cert expired) and machine-translated article (从Commons CLI迁移到Picocli) from README.

Is the translation that bad? :-)
Even if it is, does it reflect badly on picocli?
I was thinking it’s better to have more links than fewer, to spread awareness of the library.

The translation is simply google translate I think. It is not unreadable tho, but some code snippets are being 'translated', and it is also not the original post. The original post is here (the content is the same): https://blog.csdn.net/Tybyqi/article/details/85787550

Can these be final too?

Made the fields final.

When I tried compiling on java 11 with -Xlint:all, I saw deprecation warnings for method.isAccessible.
You did not get this?

No.. probably due to difference in build options (different distro, etc), I have added the @SupressWarnings annotation anyway.

Please revert this one; the warning that this condition is always false should go away with the latest master.

Done.

Merged into master.
Thank you for the contribution! Much appreciated!


Feature request: Ability to specify domains via command line argument

This would be useful in a CI environment, where the domain of the current build changes regularly (such as with a feature branch workflow).
Instead of using the 'domains' values from the yaml file, it'd be great if domains could be specified on the command line at the point of running wraith capture.

Generally it would be great to use properties from command line, which could be referenced within th yaml.


API Docs for SingularityDeploy should include defaults

I.e. it would be helpful if there were a "default" column in the table.  Examples might also be handy in cases where there are no defaults.

:+1:

Fixed in #1350. Since there are a number of fields that fall back to Singularity-wide configuration values. I made this a separate page of the docs.


Hero Section on Gift Page Not Fitting Screen Size

Description:
The hero section on the Gift page does not properly fit the screen size as expected. The section either overflows or leaves excess space on different screen sizes, which results in a poor user experience.
Steps to Reproduce:
1.	Navigate to the Gift page on any device.
2.	Observe the hero section’s alignment and size.
3.	Test across different screen sizes (e.g., desktop, tablet, mobile).

Expected Behavior:
The hero section should properly adapt to different screen sizes, ensuring that the content fits without overflowing or leaving excess space.
Actual Behavior:
On various screen sizes, the hero section does not fit correctly:
•	On smaller screens, the content overflows.
•	On larger screens, there’s excess space around the content.

Screenshots/Visuals:

Environment:
•	Browser: (e.g., Chrome, Firefox, Safari)
•	Device: (e.g., Desktop, iPhone, Android)
•	Screen Resolution: (e.g., 1920x1080, 375x667)

Additional Context:
Please ensure that the hero section is fully responsive and adjusts appropriately across all screen sizes.

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."


[Bug]: Clicking "Set Current" throws an exception

Summary Description
Clicking "Set Current" on the config screen produces an exception (trace bwlo). This is with the k40 plugged in, m2nano board, and jogging around manually works.
Additional Details
No response
Crash logs
MeerK40t crash log. Version: 0.8.0007 RC6 git on Darwin:x86_64 - 4.1.1 osx-cocoa (phoenix) wxWidgets 3.1.5
Traceback (most recent call last):
  File "/Users/jared/clone/fork/meerk40t/meerk40t/lihuiyu/gui/lhystudiosdrivergui.py", line 419, in on_button_set_home_current
    native_x = self.context.device.native_x
AttributeError: 'LihuiyuDevice' object has no attribute 'native_x'

MeerK40t Version
0.8.0007 RC6
MeerK40t Type
Git
Your Operating System
Mac (M1/Bigsur)

Okay. Easy fix. It's running older code for that. Might be a lot of other little things like that in 0.8.x but I need to finish up the corrections to rasterwizard and go down the list looking for them.

This is fixed in latest main. I'll close this next RC.


Hide frontmatter metadata box

Hi, many thanks for sharing the theme!
I only have a minor qualm, which is that the theme does not respect Settings > Editor > Show frontmatter. It shows a Metadata box despite this toggled off.I suppose it's because it is consider a feature of the theme. However, is there some way this can be hide completely, or maybe just for specific notes? For the metadata I have, most of the time it's obvious and seeing it disturbs the clean view a bit.

Also fixed in some versions ago


Update httpx integration for compatibility with v0.12.x API

What kind of change does this PR introduce? (check at least one)

[X] Bugfix

[ ] Feature

[ ] Code style update

[X] Refactor

[X] Other, please describe:

Modifies rebuild_request to remove usage of httpx private API.

Bumps httpx version in tox to 0.12.1

[ ] You consent that the copyright of your pull request source code belongs to Authlib's author.

In lieu of copyright assignment, is CC0 acceptable? For various reasons, I would prefer such terms.

Please see https://github.com/lepture/authlib/issues/210#issuecomment-612311003

Please lock your httpx==0.12.0. I'm not going to fix it soon, because httpx has changed a lot of times.

And please don't change the code style with "black", we are not using it.


python311Packages.fontparts: 0.11.0 -> 0.12.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.fontparts is: An API for interacting with the parts of fonts during the font development process.
meta.homepage for python311Packages.fontparts is: https://github.com/robotools/fontParts
meta.changelog for python311Packages.fontparts is: https://github.com/robotools/fontParts/releases/tag/0.12.1
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.12.1 with grep in /nix/store/pc5zgdd10bf4qsbfb3mlz7k6czxv6nc7-python3.11-fontParts-0.12.1
found 0.12.1 in filename of file in /nix/store/pc5zgdd10bf4qsbfb3mlz7k6czxv6nc7-python3.11-fontParts-0.12.1

Rebuild report (if merged into master) (click to expand)

11 total rebuild path(s)

11 package rebuild(s)

First fifty rebuilds by attrpath
deltachat-desktop
nomnatong
noto-fonts-color-emoji
python311Packages.afdko
python311Packages.fontparts
python311Packages.nototools
python311Packages.ufoprocessor
python312Packages.fontparts
python312Packages.ufoprocessor
twitter-color-emoji
whatsapp-emoji-font

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/pc5zgdd10bf4qsbfb3mlz7k6czxv6nc7-python3.11-fontParts-0.12.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python311Packages.fontparts https://github.com/r-ryantm/nixpkgs/archive/e31a2f99a604bbafd57877f427c2124937aa7795.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/e31a2f99a604bbafd57877f427c2124937aa7795#python311Packages.fontparts

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/pc5zgdd10bf4qsbfb3mlz7k6czxv6nc7-python3.11-fontParts-0.12.1
ls -la /nix/store/pc5zgdd10bf4qsbfb3mlz7k6czxv6nc7-python3.11-fontParts-0.12.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages failed to build:

deltachat-desktop
python312Packages.fontparts
python312Packages.ufoprocessor

8 packages built:

nomnatong
noto-fonts-color-emoji
python311Packages.afdko
python311Packages.fontparts
python311Packages.nototools
python311Packages.ufoprocessor
twitter-color-emoji
whatsapp-emoji-font

Maintainer pings
cc @sternenseemann for testing.

@ofborg build deltachat-desktop

Looks like the only regression is gone?


Worldbank title timescale

Also changed the button name on the css  since I have used the button also on the timescale and I needed a better descriptive word than logout-btn.

The branch is already up to date


When the APK file is large, clicking on the search text  decompiling will jam

@MissGongYi
The search dialog will stay unfrozen when decompilation is finished. If it's not, try to follow advises to increase memory: https://github.com/skylot/jadx#out-of-memory-error


Trigger build when a new Plex version is released

A cron Job could periodically check for new versions of Plex and trigger the build of the dockerized version via a web hook.

There is a new build available version <IP_ADDRESS>66


Parse time zone from Nikon images

This partially addresses https://github.com/josephfrazier/Reported-Web/issues/318

XXX Try parsing MakerNote, but it has its own format, see https://gomfunkel.tumblr.com/post/5768232136/navigating-the-makernote-hell
Might be able to use https://github.com/mattburns/exiftool.js/ instead,
looks like it may have support

exiftool.js isn't working either:


Add CMakeLists.txt file. Remove warnings for SFML 2.6.1

Changelogs:

Add CMakeLists.txt file(https://github.com/SFML/cmake-sfml-project).
Remove warnings for SFML 2.6.1

Hi, thanks for contributing! Sorry for late response, I believe no one from PiGames is active anymore :(. Great pull request, merging right away :)


Few base images updates

This PR contains the following changes:
- Add Golang v1.5 and v1.14.7.
- Add l4t-core workaround for all Jetson images.
- Add repo.download.nvidia.com/jetson sources to Ubuntu base images.

@shaunmulligan, yup, I already added the workaround for the ubuntu base images


Inherited Padding, Margin and spacing

Use case
Flutter is a bit inconsistent with paddings. Some widgets have padding (such as SingleChildScrollView, others, don't, such as CustomScrollView (although both are for scrolling)).
Also, Card is the only component with a margin property.
When working with Column or Row we often use a const SizedBox() for spacing, because Padding makes a new ident on our code, making it a bit more hard to head. Also, it is also inconsistent (for example, if Text accepts a non-named parameter, why not Padding? i.e. Why is Text("string") instead of Text(text: "String") and Padding(padding: const EdgeInsets.all(16)) instead of Padding(const EdgeInsets.all(16)) or, better yet, Padding.all(16, child: ...)?
Proposal
To fix some of the issues about padding and margin, it would be nice if the Widget class had two properties: EdgeInsets? margin and EdgeInsets? padding, applying the margins and paddings if they are not null.
For Column and Row would be nice some extra info about spacing (assuming we want a 16 pixels margin in all sides of a column and each widget inside a column spaced by 16 pixels as well, it's pretty nasty to accomplish that with Padding (because of indentation) and a bit messy with extra SizedBox(height: 16), specially if we are talking about responsive layouts.
So, as Column and Row both inherit from Flex, it would be nice such a double spacing = 0, specially with mainAxisSize: MainAxisSize.min.
Layouts would be a lot cleaner that way.

Hello @JCKodel. I will focus on the margin and padding inheritance you mentioned. I think the proposal for Flex to have spacing should be it's own issue.
Flutter is a UI toolkit that promotes composition over inheritance. Sure this leads to a bit more verbose code, but it allows for much more control to the developer. For use cases where inheritance makes more sense, Flutter provides an InheritedWidget, which allows you to do just that. You can define default margins and paddings in that widget and use them via InheritedWidget.of(context) in the widgets below.
Also an issue with changing the way margin and padding work currently, would break a lot of UI that is reliant on these "inconsistent" paddings throughout the framework. This extends to changing the behavior of Padding to have a positional argument instead of a named one. Again, with the Padding.all feature you mentioned, I think that too should be it's own issue.
Due to inherited padding both being "hidden" from the developer rather than a clear "Padding" widget or "SizedBox" for spacing, which is a common pattern you see in a lot of Flutter code, and the fact that this change would be a major breaking change for most, if not all code out there, I am closing this issue as invalid. If you disagree, please comment and I can reopen it. Thank you.


problem with Alert?

in a new empty directory on Windows 10 with RStudio 1.3.1056 and R blogdown package 0.20 (without modifying between new site and the build..):

blogdown::new_site(theme = "wowchemy/starter-academic")
Congratulations! Your new Hugo site is created in C:\Users\thewa\Documents\Projects\myegregiouswebsite.

Just a few more steps and you're ready to go:

Download a theme into the same-named folder.
Choose a theme from https://themes.gohugo.io/ or
create your own with the "hugo new theme " command.
Perhaps you want to add some content. You can add single files
with "hugo new <FILENAME>.".
Start the built-in live server via "hugo server".

Visit https://gohugo.io/ for quickstart guide and full documentation.
trying URL 'https://github.com/wowchemy/starter-academic/archive/master.tar.gz'
Content length 133 bytes
downloaded 4.8 MB
hugo: collected modules in 1523 ms
Error: "C:\Users\thewa\Documents\Projects\myegregiouswebsite\content\home\demo.md:39:1": failed to extract shortcode: template for shortcode "alert" not found
hugo: collected modules in 897 ms
Error: "C:\Users\thewa\Documents\Projects\myegregiouswebsite\content\home\demo.md:39:1": failed to extract shortcode: template for shortcode "alert" not found
hugo: collected modules in 965 ms
Error: "C:\Users\thewa\Documents\Projects\myegregiouswebsite\content\home\demo.md:39:1": failed to extract shortcode: template for shortcode "alert" not found
Error in shell(cmd, mustWork = TRUE, intern = intern) :
'"C:\Users\thewa\AppData\Roaming\Hugo\hugo.exe" convert toYAML --unsafe' execution failed with error code 65535

The official installation guide is at https://wowchemy.com/docs/install/
If you think you have found a bug with Blogdown, report it in the Blogdown GitHub repo.


Load ScopedValues symbols from their source

Loading @with from Base is accessing internals because @with is not a public symbol in Base.
See also: https://github.com/JuliaLang/julia/pull/55095#issuecomment-2226254429

You forgot a comma :slightly_smiling_face:. Is this good to merge before the PR you linked is resolved?

Yes. This is good to merge before that. Indeed, I don't think the linked PR should merge because I want folks to use ScopedValues.with, not Base.with.

@tecosaur, is this good with you to merge?

Yup, it's just been waiting for me to be sitting down at the right computer with a little spare time :slightly_smiling_face:


OSD-6070 patch clusterdeployment instead of update

What type of PR is this?
Refactor
What this PR does / why we need it?
This PR changes the logic of the certman-operator to perform a Patch() of the clusterdeployment CR when adding or removing finalizers, rather than an Update(), in order to eliminate the possibility that the Update() call will drop data from the CR.
Which Jira/Github issue(s) this PR fixes?
OSD-6070
Special notes for your reviewer:
I've tested this with a local deployment of certman-operator and verified that finalizers are still created and removed as expected. I have also verified that - if the Hive clusterdeployment CRD introduces a new field and sets that value in a clusterdeployment CR - the currently running operator does not remove that new field when it performs the Patch(), as per the goals of OSD-6070.
Related PRs:

pagerduty-operator
deadmanssnitch-operator

Pre-checks (if applicable):

[X] Tested latest changes against a cluster

shouldn't this be done the same way when removing the finalizer?

Thanks a lot for the review, @NautiluX . The original commit was focused solely on updates to the ClusterDeployment, but I agree that there should be consistency in how finalizers for CertificateRequests are handled. I've addressed that in the latest commit.

/uncc @c-e-brumm @mbarnes
/assign @dustman9000
Would you mind having a look at this, Dustin?

Hi @mrbarge - This looks good in general. Would it be possible to add a couple tests to certificaterequest_controller_test.go to test update vs patch?

Thanks for the review @dustman9000 !
I've updated the clusterdeployment controller test suite to now verify either the presence (or lack) of the Certman finalizer in the resulting clusterdeployment for each of the tests that get run. I feel that this exercises the logic around the finalizer's addition or removal pretty well. Hopefully this is the sort of thing you were after!

Awesome, thanks Matt!

/lgtm

/approve


fyne-cross  command

when i use fyne-cross command ,i can not download golang.org/x often.but i have download the package in my local computer.
so i think ,if fyne-cross  command  can use docker "- v",i can use local  gopath  by "-v",like:
fyne-cross -v=/home/gopath
then we  don’t need to download packages often,Is this method feasible？
thanks

it support already:
fyne-cross --help
Usage: fyne-cross [parameters] package
Cross compile a Fyne application
Package is the relative path to main.go file or main package. Default to '.'
Optional parameters:
-dir string
The package root directory. Default current dir
-dist
If set will also prepare an application for distribution
-gopath string
The local GOPATH to mount into container, used to share/cache sources and dependencies. Default to system cache directory (i.e. $HOME/.cache/fyne-cross)
-icon string
Application icon used for distribution. Default to Icon.png (default "Icon.png")
-ldflags string
Flags to pass to the external linker
-no-strip
If set will not strip debug information from binaries
-output string
The named output file. Default to package name
-targets string
The list of targets to build separated by comma. Default to current GOOS/GOARCH linux/amd64 (default "linux/amd64")
-v    Enable verbosity flag for go commands. Default to false
-version
Print fyne-cross version
Supported targets:

android/386
darwin/amd64
darwin/386
linux/amd64
linux/arm
linux/arm64
windows/amd64
windows/386
linux/386
android/amd64
android/arm
android/arm64

Default ldflags per target:

windows/amd64 -H windowsgui
windows/386 -H windowsgui


Dragonbane v1.6: Fix issue with dropping non-monsters (aka npcs)

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[ ] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[ ] The pull request makes changes to files in only one sub-folder.
[ ] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: <   >  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: <   > (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: <   > (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[ ] This sheet has been made on behalf of, or by, the game's publisher.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description

Bug Fixes

Fixed an issue that caused NPCs (aka non-monsters) to not drop their data correctly

Character Sheet Info Roll20 Internal Use only.


Adding Enterprise support

Currently, we are able to create & attach GitHub runners in the organization and repository levels, however, there's also the enterprise level (from which orgs & repos can inherit runners).
Adding support for Enterprise level runners. Tested provisioning enterprise, organization, and repository level runners on CentOS Linux release 7.7.1908 virtual machines.
Updated README.md to reflect the code changes.

Ping.

Thanks for this contribution!
It would be perfect if you could add a couple of tests to check when enteprise_name is set and also when there is neither org_name nor enteprise_name that it should fail.
As an example to follow, those tests should be similar to this one:
https://github.com/Telefonica/puppet-github-actions-runner/blob/master/spec/classes/github_actions_runner_spec.rb#L317-L342

Awesome, I'll try and get around to this sooner rather than later :)

Thanks for this contribution!
It would be perfect if you could add a couple of tests to check when enteprise_name is set and also when there is neither org_name nor enteprise_name that it should fail.
As an example to follow, those tests should be similar to this one:
https://github.com/Telefonica/puppet-github-actions-runner/blob/master/spec/classes/github_actions_runner_spec.rb#L317-L342

Added some tests. Still pending approval for the workflow to run. I'll add/update anything else that may be missing.
We are also working on Windows support internally, so I'd be happy to contribute that here too (separate PR ofcourse).

Thanks for this contribution!
It would be perfect if you could add a couple of tests to check when enteprise_name is set and also when there is neither org_name nor enteprise_name that it should fail.
As an example to follow, those tests should be similar to this one:
https://github.com/Telefonica/puppet-github-actions-runner/blob/master/spec/classes/github_actions_runner_spec.rb#L317-L342

Added some tests. Still pending approval for the workflow to run. I'll add/update anything else that may be missing.

Thanks for these updates!
It has been approved the workflow to run

We are also working on Windows support internally, so I'd be happy to contribute that here too (separate PR of course).

That would be perfect!!

Fixed all rubcop warnings and updated test cases to pass.

Fixed all rubcop warnings and updated test cases to pass. The "about" section of the repo should probably be updated too, since it states that the runners can be provisioned only on Debian and we are currently running on CentOS without any issues.

Good catch! we'll review and update the about section after this PR is integrated.
Glad to hear that this module is also working on CentOs hosts without any issues !
Thanks for this contribution!  We'll merge and release a new version soon


Dart2.3: Enable const flag in SDK

https://dart-review.googlesource.com/c/sdk/+/99169 landed to enable const flag.


Remove "BETA" label on collections search as part of requesting toggle

Remove the "BETA" label and associated "Find out more" text link as part of going live with requesting (e.g. as part of requesting toggle)

Out of interest - why not just remove it?

This was raised based on a conversation in slack that Jonathan initiated:
"Suggestion: should we put removing the beta label behind the requesting toggle? Seems like the last remaining piece to me."
I assume requesting going live is the last remaining element of why it's currently perceived to be in "beta" mode and thus why it makes sense to remove it when requesting goes in.

Makes sense, I was just asking as it seems to be specific for search, which has been the primary search for ages.

And actually, reading the link, it is specific to search.
https://wellcomecollection.org/works/progress

I think the general ask is that it's removed around the time requesting goes in - which I think will be good as it has been there for quite some time now.
I guess this means it doesn't strictly have to be tied to the requesting toggle (and in fact, it might be better not to be tied to the toggle in case we ever need to switch requesting off for any reason - we wouldn't want this label to re-appear) but it needs to go live when we put in the requesting work.


Thread on simple server

Load testing
Use Boom as load testing tool. Apache Bench sometimes just hangs there.
Test script I use:
$ boom http://localhost:3000/ -n 100000 -c 100

And I put
if t.vm.threadCount % 100 == 0 {
    log.Println("-------------------Start Sleeping-------------------------")
    time.Sleep(10 * time.Second)
    log.Println("###################Stop Sleeping########################")
}

for testing if it's really running concurrently or one slow request blocks others.
Profiling
Use gcvis for monitoring memory usage. Run
$ env GOMAXPROCS=4 gcvis go run goby.go samples/server.gb

Conclusion

It turns out create a new thread on every requests works pretty well (at least for now).
The final i in server.gb will match the total request number, which means there's no obvious race condition 😁.
The blocking test's result is as I expected: just the selected threads sleeps (and will recover later) and we can still serve other requests at the same time.

@adlerhsieh @hachi8833 I'll merge this first because current server is fragile, but I still recommend you to test it yourself to see if I miss anything.


layers/meta-balena: Update to v2.52.6

Update meta-balena from 2.51.8 to 2.52.6
Changelog-entry: Update meta-balena from v2.51.8 to v2.52.6
Signed-off-by: Florin Sarbu<EMAIL_ADDRESS>

@balena-ci I self-certify!

Superseded by https://github.com/balena-os/balena-intel/pull/318


moved examples under 'examples/c'

I think  examples/CMakeLists.txt should define cmake_minimum_required(VERSION 3.4) at the first line as well (just to stay consistent with the remaining CMake files). The rest of your pr looks fine.

Actually, it should be removed everywhere except the top-level CMake: https://cmake.org/cmake/help/v3.3/command/cmake_minimum_required.html

Actually, it should be removed everywhere except the top-level CMake: https://cmake.org/cmake/help/v3.3/command/cmake_minimum_required.html

Nice to know.


For JSX text, construct a single literal node "foo bar" instead of "foo" + " " + "bar"

Is there an issue tracking this?

This is not a bug. The output was just unnecessarily complicated.

FWIW Babel used to emit the "foo" + " " + "bar" but now emits "foo bar" as well

@andy-ms there are some failing tests in this PR.

CI's failing again


feat(Nav): add career center link

Overview

Add a link to Career Center in our header and footer

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: DISC-248
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

🚀 Styleguide deploy preview ready!https://615f54367fd6f3750bb133ab--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.5.108-alpha.d6ee5c.0@codecademy/gamut-labs@24.4.6-alpha.d6ee5c.0@codecademy/styleguide@47.5.4-alpha.d6ee5c.0


Change Copy of Silk Arts

Clarify definition of Silk Arts. Also follow the character count.

Description: The current definition of Silk Arts provided states that it is a wide range of human practices of creative expression, storytelling, and cultural participation that encompass multiple diverse and plural modes of thinking, doing, and being. However, this definition may be overly broad and lack specificity in terms of the types of creative expressions and cultural practices that are considered Silk Arts. Additionally, the definition may benefit from further elaboration on the historical and cultural contexts in which Silk Arts originated, as well as their significance and impact on society. Therefore, it is recommended that the definition of Silk Arts be reviewed and revised to ensure accuracy and comprehensiveness.

silkarts.org

I am working on this issue.
https://github.com/Aiko-Kawamura/Silk-Corp-Guide/commit/a5db32738e2bf5ffdc29838574a41260eedf69ab

I am going to make changes in this issue #26. There were some mistakes like "They" and "There" used instead of "We" and "Our".I am going to fix these mistakes now.


Added deviation for adding vlan for all subinterfaces

Changes:
For dutPort2 and atePort2, unit 0 subinterface is configured without vlan(vlan-id 0). Added deviation to configure vlan for all subinterfaces to avoid mix of tagged and untagged subinterfaces.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 57.219%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1181

Relevant Lines:
2064

💛  - Coveralls

/gcbrun

Google internal confirmation in b/b/262666507

/gcbrun

Google internal confirmation in b/263306234

/gcbrun


Move towards more consistent naming

Nodejstools (github)
node.js tools (installed program)
NTVS (web)
NT4VS (twitter)

Thanks for the feedback! Just changed our twitter handle to @nodejstools.

Nicely done. Have followed.


openfl process error - Invalid field access : length

I am trying to process a SWF file to use with OpenFL. All my AS2 SWFs worked fine, but when I tried to convert this example AS3 file (https://icer.ink/media1.clubpenguin.com/play/v2/client/puffle/care/assetLibraryBlue.swf) I get
>openfl process assetLibraryBlue.swf blue.bundle
Called from ? line 1
Called from Tools.hx line 617
Called from Tools.hx line 648
Called from format/swf/exporters/SWFLiteExporter.hx line 62
Called from format/swf/exporters/SWFLiteExporter.hx line 99
Called from format/swf/exporters/SWFLiteExporter.hx line 915
Uncaught exception - Invalid field access : length

There should be an option to use openfl process command without generating scripts for it , but I couldn't find one.

Just checked and this issue seems to be fixed in the git master version of openfl.

We are creating a new intermediate format and changes to the runtime code for SWF-based assets -- in GIT the openfl process command uses this new format which may have some issues of its own but I think it will be quite promising
Would you be interested in sharing SWFs we could use to test the quality and performance of the new format?

Yes, of course!
Current stable OpenFL version has some issues with rendering in low quality and missing some shapes in more complex SWFs.
An example could be seen here: https://icer.ink/media1.clubpenguin.com/play/v2/content/global/rooms/dock.swf
you can also test using any other SWFs in this directory (the listing is enabled)
https://icer.ink/media1.clubpenguin.com/play/v2/content/global/rooms
A small comparison:

Ah! Yes
That looks like the "seams" issue caused by how canvas and cairo handle smoothing:
https://stackoverflow.com/questions/19319963/how-to-avoid-seams-between-filled-areas-in-canvas
I noticed that HTML5 canvas exports from Adobe Animate also have this problem :sweat:
Another goal we have with the new format is to make it so the Flash target uses the same format as other targets so that we can isolate issues related to the SWF conversion or related to how OpenFL and Flash Player have different renderer implementations.


hw/drivers/lps33hw:Added support to FIFO

Add support to FIFO on LPS33HW/LPS22HB driver
FIFO supports the following features:
 - configurable FIFO watermark
 - interrupt on FIFO watermark
 - reading mode [polling, stream]

Driver tested on STM32F4-Discovery board as "off board" device
connected to I2C master interface.

Signed-off-by: tesimari<EMAIL_ADDRESS>

Thanks for doing this Mario, however, I think the changes should be put in the earlier PR itself. You do not need a separate PR for this.

@ vrahane the PR is related to lps33thw driver already merged in master, I rewrote the  message replacing lps33thw in place of wrong device lps33wh, sorry for mistake (those devices have almost the same name and I got confused)

@mariotesi So, you are actually fixing a bug, can you please update the comment above ?

ok, done


Docker Build fails

Get:1 http://nginx.org jessie InRelease [2856 B]
Get:2 http://security.debian.org jessie/updates InRelease [44.9 kB]
Ign http://deb.debian.org jessie InRelease
Get:3 http://deb.debian.org jessie-updates InRelease [7340 B]
Get:4 http://deb.debian.org jessie Release.gpg [2420 B]
Get:5 http://deb.debian.org jessie Release [148 kB]
Get:6 http://nginx.org jessie/nginx amd64 Packages [18.1 kB]
Get:7 http://security.debian.org jessie/updates/main amd64 Packages [831 kB]
Get:8 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
Fetched 10.2 MB in 7s (1308 kB/s)
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead.
The command '/bin/sh -c apt-get-install.sh git     redis-server supervisor libpq-dev gcc &&     ln -s /usr/bin/nodejs /usr/bin/node' returned a non-zero code: 100

Perhaps bumping from debian jessie to stretch?

Solved by https://github.com/praekeltfoundation/casepro/pull/228


[SPARK-45496][CORE][DSTREAM] Fix the compilation warning related to other-pure-statement

What changes were proposed in this pull request?
This PR fixes two compilation warnings related to other-pure-statement
[error] /Users/yangjie01/SourceCode/git/spark-mine-sbt/core/src/test/scala/org/apache/spark/scheduler/OutputCommitCoordinatorSuite.scala:164:54: a pure expression does nothing in statement position
[error] Applicable -Wconf / @nowarn filters for this fatal warning: msg=<part of the message>, cat=other-pure-statement, site=org.apache.spark.scheduler.OutputCommitCoordinatorSuite
[error]       0 until rdd.partitions.size, resultHandler, () => ())

[error] /Users/yangjie01/SourceCode/git/spark-mine-sbt/streaming/src/main/scala/org/apache/spark/streaming/util/FileBasedWriteAheadLog.scala:142:71: a pure expression does nothing in statement position
[error] Applicable -Wconf / @nowarn filters for this fatal warning: msg=<part of the message>, cat=other-pure-statement, site=org.apache.spark.streaming.util.FileBasedWriteAheadLog.readAll.readFile
[error]       CompletionIterator[ByteBuffer, Iterator[ByteBuffer]](reader, () => reader.close())

and removes the corresponding suppression rules from the compilation options
"-Wconf:cat=other-pure-statement&site=org.apache.spark.streaming.util.FileBasedWriteAheadLog.readAll.readFile:wv",
"-Wconf:cat=other-pure-statement&site=org.apache.spark.scheduler.OutputCommitCoordinatorSuite:wv",

On the other hand, the code corresponding to the following two suppression rules no longer exists, so the corresponding suppression rules were also cleaned up in this pr.
"-Wconf:cat=other-match-analysis&site=org.apache.spark.sql.catalyst.catalog.SessionCatalog.lookupFunction.catalogFunction:wv",
"-Wconf:cat=other-pure-statement&site=org.apache.spark.sql.streaming.sources.StreamingDataSourceV2Suite.testPositiveCase.\\$anonfun:wv",

Why are the changes needed?
Code clean up.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass GitHub Actions
Was this patch authored or co-authored using generative AI tooling?
No

Test first, will create new Jira later

Merged to master

Thanks @srowen


Can i use pattern Regex in non-persistent mode?

Describe the bug
i use java client to subscribe pattern  topic(like: non-persistent://iot/yy/hu/.*), when i publish a message by "non-persistent://iot/yy/hu/2" , i cannot get the message. but in persistent mdoe i can receive.
To Reproduce
Steps to reproduce the behavior:
use this command to publish message
./pulsar-client produce non-persistent://iot/yy/hu/2 --messages "message1"
Screenshots
i got the message from broker log:

maybe is due to :
[pulsar-io-50-17] WARN  org.apache.pulsar.broker.service.BrokerService - No autoTopicCreateOverride policy found for non-persistent://iot/yy/hu/2

@zhijianfree I think the feature should work. It seems that you are using a v1 naming pattern that contains the cluster component.  Can you try the v2 naming pattern? http://pulsar.apache.org/docs/en/pulsar-2.0/#no-cluster-component

i try  to subscribe this public topic to receive message :
non-persistent://public/default/hu/.*"
and publish message:

but it's still not work.

The v2 naming pattern is :////. For example: persistent://public/default/test_1

eh..., i show pictures about non-persistent and persisent.
when i use persistent v2 naming parttern works well. look like this:
use persisent command :

result is :

but when i use non-persisent command:

@zhijianfree I have pushed a PR to clarify subscription to a non-persistent topic with a topic name pattern. The root cause is only matched persistent topic by default because of the subscriptionTopicsMode is PersistentOnly. A little confused here, use "persistent://xx/xx" or "non-persistent://xx/xx" are same as use "xx/xx" as the topic name pattern. The right way is specifying the subscriptionTopicsMode of the consumer.


ns-export: command not found

Describe the bug
after training the first model, cannot export the point cloud
To Reproduce
Steps to reproduce the behavior:

train the model by "ns-train nerfacto --data data/nerfstudio/poster"
tried "ns-export --help"
3.see the error "bash: ns-export: command not found"

Expected behavior
should provide subcommands
Screenshots

What version of nerfstudio are you using?

(nerfstudio) pip show nerfstudio
Name: nerfstudio
Version: 0.1.8
Summary: All-in-one repository for state-of-the-art NeRFs
Home-page:
Author:
Author-email:
License: Apache 2.0
Location: /home/thhuang/anaconda3/envs/nerfstudio/lib/python3.8/site-packages
Requires: aiohttp, aiortc, appdirs, av, functorch, gdown, h5py, imageio, ipywidgets, jupyterlab, matplotlib, mediapy, msgpack, msgpack-numpy, nerfacc, ninja, opencv-python, plotly, protobuf, pyngrok, python-socketio, requests, rich, tensorboard, torch, torchmetrics, torchtyping, torchvision, tyro, u-msgpack-python, wandb
Required-by:

can't install nerfstudio/0.2.2, since no matching version of open3d package

open3d 0.17.0 exists - https://pypi.org/project/open3d/
For some reason it looks like your environment isn't properly searching pypi


PINNED: Co-Maintainers wanted! Commit bits here!

As noted in https://github.com/haskellnews/haskellnews/issues/65#issuecomment-365112572, co-maintainers are needed!
Please weigh in here and let's see what we can do!

Can you provide some context about  what's involved? Like, do you just want someone to help add text files each week (which i could do that :)? Or also fixing the server if something's wrong, developing new features, etc?


i'm a rookie of robotium,and i'm a little confused on how to end a call with robotium code

From<EMAIL_ADDRESS>on December 05, 2013 21:58:59
What steps will reproduce the problem? 1.when i want to end the call
2.are this code:" endCall " working?
3.what the code is to make this "end code " work ? What is the expected output? What do you see instead? i want end the call       it can't end the call What version of the product are you using? On what operating system? Android version is 4.2.2 Please provide any additional information below. i've seen a lot information on the internet,it seem'd that Robotium has no way to ending the call,if it is true,just let me know.
Original issue: http://code.google.com/p/robotium/issues/detail?id=561

From<EMAIL_ADDRESS>on December 06, 2013 06:37:33
Its not possible to end call.
Status: Invalid
Owner<EMAIL_ADDRESS>


Add run id as a join to signup table view.

Expose that field to allow different things to be input.
cc @deadlybutter
view setup

what it looks like

since stage doesn't have language/multiple runs I don't know what this will do if there's more than one run for a node.
Refs #6007

:ship: :it:
:ship: :it:
get it..


File management questions

Dear Developer!
I am in testing Your app. It is great, but pls. help me in a few questions.

how can i change working drive on the victim pc?
must the app started with admin rights, on first execution?
Thx!

Hello, I think the only way to change the working path for now is manually replacing fragments of code, and there is no need for admin rights, even on first execution

Oh I see. You want to change the affected patr of running program. I thought that you mean directory, where malware is deployed. I will add drive changing in near future


ValueError raised for generate_verification_questions in Chain of Verification example notebook

@bitsnaps
https://github.com/jackmpcollins/magentic/issues/31#issuecomment-1737785037

I wouldn't fire a new issue for this error:
ValueError: String was returned by model but not expected. You may need to update your prompt to encourage the model to return a specific type.

at this line:
verification_questions = await generate_verification_questions(query, baseline_response)

is this issue related to that one? P.S. Here is the output of the previous Notebook cell:
Sure, here are a few politicians born in New York, New York:
1. Hillary Clinton
2. Donald Trump
3. Franklin D. Roosevelt
4. Rudy Giuliani
5. Theodore Roosevelt

@bitsnaps A few questions to help debug

Have you made any changes to the example notebook or are you running it as-is?
Was this a one-off error, happens some times but not others, or happens every time?
Have you changed the model by setting the MAGENTIC_OPENAI_MODEL environment variable or setting the model parameter in the prompt decorator?

I made some changes to the previous example (weather), (execution on Google's colab)
Tried it 3 times, it'll happens on every one (using GPT-3.5-turbo)
I did mess with any var env.

Can you share a small amount of code that reproduces the issue please so I can run it myself.
This error should only be possible for functions with a union return type that doesn't include str e.g. list[str] | bool. So it should only happen with generate_verification_questions if the return type has been changed from list[str].
Also it's worth restarting your notebook and running it top-to-bottom to make sure this is not due to the notebook using a cached version of these functions.

Can you share a small amount of code that reproduces the issue please so I can run it myself.
This error should only be possible for functions with a union return type that doesn't include str e.g. list[str] | bool or that have functions provided. So it should only happen with generate_verification_questions if the return type has been changed from list[str].
Also it's worth restarting your notebook and running it top-to-bottom to make sure this is not due to the notebook using a cached version of these functions.

Here is simplest reproducible code in colab, the only thing different I did is to uninstall the pre-installed tensorflow before installing magnetic just to avoid a potential conflicting with some peer-dependencies (of course you'll need to provide the openai key...)

@bitsnaps The colab notebook works for me! I've restarted+run it several times with no issues.
The original error message String was returned by model but not expected. when it comes from function
@prompt("Create a Superhero named {name}.")
def create_superhero(name: str) -> Superhero:
    ...

indicates that the model being used does not support function calling, because when there is a single structured output type magentic forces function calling to return this.
I notice you have openai.api_base commented out. If you set this, for example to use Azure OpenAI Service, make sure you are using a model that supports function calling.
Maybe it's worth you trying the OpenAI weather function calling example using the openai python package directly to ensure that function calling is working at that level.

I tried the same notebook now using GPT-4 and it worked from the first shot, here is the output:
Superhero(name='Garden Man', age=30, power='Control over plants', enemies=['Pollution Man', 'Concrete Beast'])


TypeError: forward() got an unexpected keyword argument 'encoder_hidden_states'

I am trying to run any of the jupyter notebooks to test the code but I am facing this error in the line where the prompts are passed to the model. The code cell and the error are the following:
g_cpu = torch.Generator().manual_seed(8888)
prompts = ["A painting of a squirrel eating a burger"]
controller = AttentionStore()
image, x_t = run_and_display(prompts, controller, latent=None, run_baseline=False, generator=g_cpu)
show_cross_attention(controller, res=16, from_where=("up", "down"))

TypeError                                 Traceback (most recent call last)
Cell In[9], line 4
2 prompts = ["A painting of a squirrel eating a burger"]
3 controller = AttentionStore()
----> 4 image, x_t = run_and_display(prompts, controller, latent=None, run_baseline=False, generator=g_cpu)
5 show_cross_attention(controller, res=16, from_where=("up", "down"))
Cell In[6], line 6, in run_and_display(prompts, controller, latent, run_baseline, generator)
4     images, latent = run_and_display(prompts, EmptyControl(), latent=latent, run_baseline=False, generator=generator)
5     print("with prompt-to-prompt")
----> 6 images, x_t = ptp_utils.text2image_ldm_stable(ldm_stable, prompts, controller, latent=latent, num_inference_steps=NUM_DIFFUSION_STEPS, guidance_scale=GUIDANCE_SCALE, generator=generator, low_resource=LOW_RESOURCE)
7 ptp_utils.view_images(images)
8 return images, x_t
File ~/.conda/envs/prompt/lib/python3.8/site-packages/torch/autograd/grad_mode.py:27, in _DecoratorContextManager.call..decorate_context(*args, **kwargs)
24 @functools.wraps(func)
25 def decorate_context(*args, **kwargs):
26     with self.clone():
---> 27         return func(*args, **kwargs)
File ~/Downloads/prompt-to-prompt/ptp_utils.py:167, in text2image_ldm_stable(model, prompt, controller, num_inference_steps, guidance_scale, generator, latent, low_resource)
165 model.scheduler.set_timesteps(num_inference_steps)
166 for t in tqdm(model.scheduler.timesteps):
--> 167     latents = diffusion_step(model, controller, latents, context, t, guidance_scale, low_resource)
...
-> 1110     return forward_call(*input, **kwargs)
1111 # Do not call functions when jit is used
1112 full_backward_hooks, non_full_backward_hooks = [], []
TypeError: forward() got an unexpected keyword argument 'encoder_hidden_states'
Any suggestions?

Did you solve the problem, I had the same problem but didn't know how to solve it

Here :wave:
Maintainer of the diffusers library here - should we try to add a prompt-to-prompt pipeline to diffusers to make sure things are actively maintained?

@HosamGen  This error happens because you are using a newer version of diffusers library. If you downgrade to diffusers==0.3.0 it should solve the problem. But when I downgrade, and run this line: ldm_stable = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=MY_TOKEN, scheduler=scheduler).to(device) it does not proceed and gets stock there.

@aliasgharkhani For the latent model notebook this would fix it, but for the stable model this does not proceed as I face the same issue you mentioned.

@patrickvonplaten
Sure, that would be great.

I manage to find a work around using diffusers==0.14.0. Reason of failure: in the new diffusers library, the forward function signature of CrossAttention class changes. In the old 0.3.0 version, the default forward function does not leverage the mask input (requried by Prompt2Prompt), hence Prompt2Prompt modify the forward function in ptp_utils.py with the register_attention_control function. Yet this modified forward conflicts with the updated forward signature in the new diffusion library (0.14.0).

In ptp_utils.py, in def register_attention_control(model, controller):, change def forward(x, context=None, mask=None): to def forward(hidden_states, encoder_hidden_states=None, attention_mask=None, **cross_attention_kwargs):. Then add x = hidden_states,  context = encoder_hidden_states and mask = attention_mask inside the function.
In diffusers.models.cross_attention.py, add the following functions in CrossAttention class. This is because the two functions are called inside the registered forward function, yet they are removed from the CrossAttention class in the newer diffusers library.

    def reshape_heads_to_batch_dim(self, tensor):
        batch_size, seq_len, dim = tensor.shape
        head_size = self.heads
        tensor = tensor.reshape(batch_size, seq_len, head_size, dim // head_size)
        tensor = tensor.permute(0, 2, 1, 3).reshape(batch_size * head_size, seq_len, dim // head_size)
        return tensor

    def reshape_batch_dim_to_heads(self, tensor):
        batch_size, seq_len, dim = tensor.shape
        head_size = self.heads
        tensor = tensor.reshape(batch_size // head_size, head_size, seq_len, dim)
        tensor = tensor.permute(0, 2, 1, 3).reshape(batch_size // head_size, seq_len, dim * head_size)
        return tensor

Alternatively, one can define the two functions in ptp_utils.py and modify the forward function defined in register_attention_control to call them instead.

@yue-zhongqi This works, thank you very much.

that's works

의 제안@yue-zhongqi일하다. CrossAttention그러나 에서 클래스를 직접 변경하는 대신 공식 함수를 재사용 하고 의 최신 버전에서 및 를 대체 diffusers.models.cross_attention.py할 수도 있습니다 . 즉, 원래 함수를 다음 코드로 직접 대체할 수 있습니다.head_to_batch_dim``batch_to_head_dim``diffuser``reshape_heads_to_batch_dim``reshape_batch_dim_to_heads``def forward(x, context=None, mask=None)``def register_attention_control(model, controller)``ptp_utils.py
  def forward(hidden_states, encoder_hidden_states=None, attention_mask=None, **cross_attention_kwargs):
      x = hidden_states
      context = encoder_hidden_states
      mask = attention_mask
      batch_size, sequence_length, dim = x.shape
      h = self.heads
      q = self.to_q(x)
      is_cross = context is not None
      context = context if is_cross else x
      k = self.to_k(context)
      v = self.to_v(context)
      q = self.head_to_batch_dim(q)
      k = self.head_to_batch_dim(k)
      v = self.head_to_batch_dim(v)

      sim = torch.einsum("b i d, b j d -> b i j", q, k) * self.scale

      if mask is not None:
          mask = mask.reshape(batch_size, -1)
          max_neg_value = -torch.finfo(sim.dtype).max
          mask = mask[:, None, :].repeat(h, 1, 1)
          sim.masked_fill_(~mask, max_neg_value)

      # attention, what we cannot get enough of
      attn = sim.softmax(dim=-1)
      attn = controller(attn, is_cross, place_in_unet)
      out = torch.einsum("b i j, b j d -> b i d", attn, v)
      out = self.batch_to_head_dim(out)
      return to_out(out)


Social Mixing Score - Validated

Social mixing score for any time period calculated based on maximum RSSI in each minute, or number of devices in the vicinity in each minute
UI update to enable presentation of social mixing score
Social mixing score display on UI shows score for recent time periods
Time period unit set by tapping time unit under score display
Tested on iPhone 6S (iOS 12.1.4) and iPhone X (iOS 14.0.1)

Interactions log and analysis - Validated

Interactions log offers simple implementation of on-device storage and analysis
Records encounters (time, proximity, payload) and includes function for enforcing retention period
Analysis functions for reducing encounters by time window, payload, or proximity
Provides basis for implementing on-device matching for contract tracing app
Combine with payload matcher to filter encounters, then use analysis functions to compute basis for risk score estimation

Bloom filter - Validated

Bloom filter for probabilistic matching of payload data

Closes #7
Signed-off-by: c19x<EMAIL_ADDRESS>

XXH3.swift uses code from xxHash-Swift created by Daisuke T. This too is MIT licensed, so accepted as a contribution. Attribution included in the file.


HP NFC/Wireless 1200w – Mobile Print Accessory: Small glitches in generated PPD file

The Mobile Print Accessory is an add-on module for legacy HP laser printers which is connected to the USB of the printer and adds AirPrint support, accepting the Apple Raster format. So I tried it on my HP Color LaserJet CM3530 MFP running the command (URI found with "ippfind"):
lpadmin -p hp1200wtest -E -v ipp://NPIE8F64A.local:631/ipp/print -m everywhere
and the resulting PPD file passes "cupstestppd" without warnings. Printing works perfectly with current GIT CUPS using the Apple Raster format.
There are only some small glitches in the PPD file which do not break actual printing:
Manufacturer and model information comes out this way:
*Manufacturer: "CLJ3530:HP"
*ModelName: "1200w Mobile Print Accy"
*Product: "(1200w Mobile Print Accy)"
*NickName: "1200w Mobile Print Accy"
*ShortNickName: "1200w Mobile Print Accy"
The manufacturer looks strange. Should be "HP" (both printer and adapter are from HP).
The *Product entry does not match the product TXT record entry of the Bonjour record of the adapter ("(CLJ3530:HP 1200w Mobile Print Accy)"), it would match if the *Manufacturer entry is added.
Looking into the code there is no mechanism to assure that the *ShortNickName is not longer than 31 characters.
The filter lines are the following:
*cupsFilter2: "image/urf image/urf 10 -"
*cupsFilter2: "application/PCLm application/PCLm 10 -"
*cupsFilter2: "image/jpeg image/jpeg 10 -"
There are correctly added lines for Apple Raster and JPEG, but the PCLm line looks wrong for me, as CUPS does not support PCLm (or does it now?). Note that PCLm is a proprietary format used by HP and others which has nothing to do with PCL 5c/e or PCL-XL. So it is not relevant for printing with CUPS and cups-filters.
Output of
ipptool -tv ipp://NPIE8F64A.local:631/ipp/print get-printer-attributes.test
attached.
HP-1200w-CM3530-ipp-attr.txt

We should probably filter out application/PCLm since it isn't supported on macOS or Linux.
As for the product/nickname strings, I specifically want to avoid doing extra processing on them - that's something we could end up adding a tremendous amount of code to clean up every buggy implementation for very little gain. Both CUPS and Windows have no problem with long "ShortNickName" values (cupstestppd is pendantic about it, but that's about it) so I don't see the point in making sure the ShortNickName value is limited to 31 characters...

The problem of PCLm appearing is caused that to sort out which cupsFilter2 lines the PPDs should get you name the formats you do not want, and this allows any new proprietary format which gets a nice name to get in. Better name the formats you want to have, as there you know what CUPS, Mac OS X, and cups-filters are capable to generate.

[master 07428f6] Only list supported PDLs (Issue #4923)

Now Apple Raster is missing. Is that correct? Only PDF, PWG Raster, and JPEG?

No, you should still see Apple raster in the list of filters.

I have checked again and Apple Raster is there. You're right.


Use DetourCrowd with external physics

dtCrowd handles movement for agents internally. After each update there is new position for each actor. Calculation of a new positon includes maximum velocity and acceleration of agent. Also there is specific logic how to change agent speed.
Is there some way how can I use external physics to update agent position for given time interval and use custom logic for agent speed?
For example agent speed is constant, there is no acceleration, so in each moment of time agent could move in specific direction or stay. Agent can change direction instantly.
I see this as customization point for dtCrowd class. Probably add an interface class and default implementation with current logic. Will you approve this kind of change or is there any other way? Thanks.

I believe the main thing is that keeping the agent on mesh can be a problem if the Detour does not have full control over the movement, and if the agent gets off mesh then that causes a bunch of problems. @memononen has posted more details about it somewhere I'm sure, but I can't find it at the moment.
Unfortunately DetourCrowd is the area of R&D I am the least familiar with so I am not able to provide much feedback on eventual PRs/work. Maybe @hymerman @grahamboree could help out?

Just to close the loop on this, there's no prescribed method to drop-in a new physics engine into DetourCrowd.  IMO there's probably some work that could be done to separate the code that does the simple physics to move the agent and the code that's driving that motion.  That would better support use cases like this.


Update Card.cs

How about now

Made small change to test pull

Ken's single change to test the pull request process


Type: optimize storage of variants tags

As we know the number of variants, we can optimise the storage space
for tag IDs statically.

This will make the chunks headers use less space (1 bit instead of 1 byte).


Missing data sources for managed rulesets and rule ids for the new WAF

Current Terraform and Cloudflare provider version
Terraform version: 1.3.1
Cloudflare provider: 3.24.0 (~> 3.0)
Description
At the moment there are no data sources available for the managed rulesets and rules for the new WAF.
This makes the code less readable / maintainable. Requested change is to add data sources for this, so you can loop over and filter them by name / category. This is available for the legacy waf_groups or waf_rules (https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/data-sources/cloudflare_waf_groups)
Use cases
Making exceptions for specific rules for a specific url.
Example:
URL A is getting false positives for some of the OWASP rules. Eg. sqli rules are triggered, but there is no sql database behind the service. So you could make exceptions specificly for the rules that are triggered.
Potential Terraform configuration
Managed ruleset id
data "cloudflare_ruleset" "owasp_ruleset" {
  filter {
    name   = ".*OWASP.*"
  }
}

Managed rule id
data "cloudflare_rule" "invalid_character" {
  filter {
    name = ".*920272.*"
  }
}

You can then more readable add exceptions to your managed ruleset.
# Exceptions
  rules {
    action  = "skip"
    enabled = true

    action_parameters {
      rules = {
        "${data.owasp_ruleset.id}" = "${data.invalid_character.id},..."
      }
    }

Even better would be, to make the value for the rule id in the exception part of the cloudflare_ruleset resource a list instead of a comma separated list. You then get something like this:
"${data.owasp_ruleset.id}" = [
    "${data.invalid_character.id},",
    "${data.other_data_source.id}",
]

References
No response

When I find myself curling for IDs... I remember we are losing the data resources we had previously.

Awesome! Will try this out in the coming weeks.

@jacobbednarz Thanks for this! How did you see this being implemented for getting the rules of a ruleset? Considering we need to skip certain rules in de managed rulesets? Right now I would need to do the following:

data "cloudflare_rulesets" "example" {
  zone_id = var.zone_id
  filter {
    name = ".*OWASP.*"

  }
  include_rules = true
}

specific_rule = [for rule in data.cloudflare_rulesets.example.rulesets[0].rules : rule.id if rule.id == "2380cd409b604c2a9273042f3eb29c4e"] # rule 942490

Or do I see something completely wrong?
TLDR: I can filter based on ruleset but not yet on rule within a ruleset base on a rule name correct?

This part is tricky. I could not solve it 100% yet. Each rule has versions also. So I wanted to get one rule. but ended up having two, version "79" and "81" of the same rule. Let me see if I have the code around...

Ok, found it.
Based on this code:
locals {
  owasp_data_rules = flatten([
    {
      for r in data.cloudflare_rulesets.owasp.rulesets[0].rules :
      r.description => r...
    }
  ])
}

data "cloudflare_rulesets" "owasp" {
  zone_id       = var.zone_id
  include_rules = true

  filter {
    name = "Cloudflare OWASP Core Ruleset"
  }
}

I wanted to get the map keyed by description, where you have the rule ID that you can use. Because some of the rules are repeated, but with different version numbers, the map ends up having duplicated keys and you need the ellipsis so you create a map with a list for every repeated description.
This is what you get:
          + "942100: SQL Injection Attack Detected via libinjection"                                                                                = [
              + {
                  + action                   = "score"
                  + action_parameters        = []
                  + description              = "942100: SQL Injection Attack Detected via libinjection"
                  + enabled                  = true
                  + exposed_credential_check = []
                  + expression               = ""
                  + id                       = "2e8e540411f841ffa5f2e05748b74690"
                  + last_updated             = "2023-01-24 10:04:44.629165 +0000 UTC"
                  + logging                  = []
                  + ratelimit                = []
                  + ref                      = "0bf8f28bdeda82ee424779e20f1567fd"
                  + version                  = "81"
                },
              + {
                  + action                   = "score"
                  + action_parameters        = []
                  + description              = "942100: SQL Injection Attack Detected via libinjection"
                  + enabled                  = true
                  + exposed_credential_check = []
                  + expression               = ""
                  + id                       = "f69971ea46aa4cc983f773bb06e082e4"
                  + last_updated             = "2023-01-24 10:04:44.629165 +0000 UTC"
                  + logging                  = []
                  + ratelimit                = []
                  + ref                      = "0bf8f28bdeda82ee424779e20f1567fd2"
                  + version                  = "79"
                },
            ]

So ideally you could be able to filter the rules by description, but you need/want to use the latest version there. Honestly, I don't really know if this is a bug or a feature.

Nice stuff, but i hope this becomes more easy in the future! Because I would rather stay away from writing for loops in our terraform configuration for every rule and just create a data source for each rule that we need.


Option to open gmail's HTML version.

Would it be possible? All it need is to add /h/ to the url.

Hi @relaxeaza!
First of all, thank you for taking time to open an issue.
As I am using the "standard" version of Gmail, I had never think about adding this feature to the application but yes, it could be possible through a custom property in the notification behavior setting.
I will add this feature in the v3.0 :wink:


Feature request: TR-34 support

Can you please add support for TR-34 also?

I'm curious why do you need TR-34 software support? Where most of this is very sensitive and needs to be done in hardware with secure certificate storage (on both sides).
Anyways, realistically it will be very hard for me to find time to do this. Last and the only time I implemented support for TR-34 it was "you'd have to pay me to do this again" kind of pain.
I'm also not sure if every KRD is going to have its own quirks because they have their own interpretation of TR-34. Or if TR-34 is not authoritative enough leaving things to individual implementations.
Anyways, if someone wants to contribute, they are welcome. It's just a series of steps between KDR and KDH.


Bump argocd, Grafana and ESO

I upgraded all the clusters to 1.25 and bumped ArgoCD to 2.9
I'm going to keep upgrading the Kubernetes clusters to 1.27 by the end of this week.

/lgtm


gaussian_mixture_model takes a very long time to sample

Hi,
Thank you very much for the tutorials!
I was super impressed with the speed of the coinflip model in the 00_introduction tutorial, which took microseconds to fit after being compiled (~10 seconds). However, now that I've moved onto the 01_gaussian-mixture-model, I am running into some strange behavior. That is, even with only 100 samples, the gaussian_mixture_model model takes about 25 minutes to sample on my machine. I'm not running the chains in parallel (so let's call it about 8 min/chain to fit, since I'm using the default of 3 chains in the tutorial), but that still seems really slow. Am I missing something? Or is that kind of timing expected? It doesn't seem to be a "time to first plot" problem, because I get the same timing running sample a second time, after compilation. Happy to share details about my environment or whatever, if that helps.
Sidebar: It is so freaking cool that it is possible to combine PG and HMC (and presumably NUTS) into a single sampler! Some of my colleagues have grumbled a lot about Hamiltonian-based samplers not working with discrete distributions, so this seems like it could solve some problems.

Sidebar: It is so freaking cool that it is possible to combine PG and HMC (and presumably NUTS) into a single sampler! Some of my colleagues have grumbled a lot about Hamiltonian-based samplers not working with discrete distributions, so this seems like it could solve some problems.

Agreed. The flexibility of Turing is great.

That is, even with only 100 samples, the gaussian_mixture_model model takes about 25 minutes to sample on my machine.

A while ago, I've used filldist(MixtureModel(...)) instead of a loop over MvNormal. For example, I wrote
w ~ Dirichlet(k, 1)

μ ~ filldist(Normal(25, 4), 2)

n = length(Y)
Y ~ filldist(MixtureModel(Normal, μ, w), n)

instead of
D, N = size(x)
μ1 ~ Normal()
μ2 ~ Normal()

μ = [μ1, μ2]
w = [0.5, 0.5]

k = Vector{Int}(undef, N)
for i in 1:N
    k[i] ~ Categorical(w)
    x[:,i] ~ MvNormal([μ[k[i]], μ[k[i]]], 1.)
end
return k

This should be quicker as mentioned in the Performance Tips. For more information about my model see https://huijzer.xyz/posts/latent/ or https://discourse.julialang.org/t/variational-inference-of-mixture-models/40031/2.
Having said that, it shouldn't take 25 minutes if I remember correctly. What CPU and Julia version are you running?
julia> Sys.cpu_summary()
[...]

julia> VERSION
[...]

Hi,
Thanks for the quick response!
It looks like the reparameterization you provide is for univariate data, as opposed to the bivariate conditions provided in the tutorial. Being relatively new to Julia and Turing (hence why I'm using the tutorials -- two birds, one stone), I'm not yet sure how to adapt your proposal. I'm trying to read through the documentation (the Distributions.MixtureModel function seems particularly relevant), but coming from R, I'm still learning how to unpack all the help information for the various signatures (honestly, one of the reasons I'm here is for the multiple dispatch). So, please forgive my ineptness.
If this isn't something you want to deal with just let me know and I can close the issue, but I figured someone should at least be aware that there may be something funky going on with the tutorial I mentioned.
Here's my CPU and Julia info:
julia> Sys.cpu_summary()
Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz:
          speed         user         nice          sys         idle          irq
#1-12  3299 MHz  181362480            0    296653306<PHONE_NUMBER>      3354744  ticks

julia> VERSION
v"1.7.0"

Did you run the latest version of the tutorial? It's not published on the webpage yet but you can find the script in the repo here and e.g. markdown and html versions in https://github.com/TuringLang/TuringTutorialsOutput/blob/main/markdown/01-gaussian-mixture-model/01_gaussian-mixture-model.md.

Yes, I cloned the main tutorials repo just a couple days ago (after the last commit, which mentions updating the Gaussian mixture model).
Also, I just tried to run code from the previous commit, to see if maybe I would have better luck. The first option indicated in the model code (using w = [0.5, 0.5]) threw a MethodError related to a very long list of types (something about phasepoint). The second option (sampling w as a Dirichlet) ran in only a couple minutes, but the estimates of both μ parameters appeared to be invariant, which is not good. So, no idea what's going on.
FYI, so far I've gotten through tutorials 00-02, and only the mixture model seems to be having this issue.

Also, super cool that there is an output repo. When I first started playing with the tutorials I was thinking it would be nice to have some pre-built versions to peruse while I ran the code in a notebook. So, thanks for pointing that out!

I thought it might be worth investigating other composite samplers, as so far the "typical" samplers seem to be running as quickly as I'd expect. Playing around with the 04_hidden-markov-model tutorial, which combines HMC and PG samplers with a call to Gibbs, it appears this tutorial, too, is running much slower than anticipated. That is, it takes about 30 minutes to sample the hidden markov model.
This is not definitive, obviously, but it is at least suggestive of where the issue might lie.

Ah I hadn't realized before that it uses PG - that explains a lot. The recent rewrite of Libtask in pure Julia (previously it used a Julia version specific C library which caused a lot of problems) causes significant performance regressions. There's an issue in the Turing repo and there's ongoing work to fix these problems. I assume everything involving PG and SMC will be much much faster if you use an older C version of Libtask which, however, also requires an older version of Turing IIRC.

Ah, okay. So, it sounds like it may just take a bit for PG to be optimized for Julia, meaning these may just be the growing pains of an actively developed and maintained library (which is a good sign to me).
It sounds like I can close the issue, it is a known problem.

It sounds like I can close the issue, since it is a known problem. Yeah?

The slowness of particle-based samplers is known yes, so then I guess you can close it indeed. The canonical issue is at https://github.com/TuringLang/Turing.jl/issues/1774.

Thanks!


Is it possible to run Jekyll using npm scripts?

Hey guys, so I'd like to say great project! (i should note this isn't actually an issue, more of a discussion topic. So apologies if this isn't the right place for it)
I just had a couple of questions about the building of jekyll, the first is around this
task("buildJekyll", () => {
  browserSync.notify("Building Jekyll site...");

  const args = ["exec", jekyll, "build"];

  if (isDevelopmentBuild) {
    args.push("--incremental");
  }

  return spawn("bundle", args, { stdio: "inherit" });
});

I wanted to understand a little more about what this is doing/how it works because i wondered if i could replicate what it does using npm scripts, which leads me to my second question...
Have you guys managed to use something like breakpoint-sass and or bootstrap on this project? The reason i ask is because I've had some issues with gulp specific packages in regards to the sass globing of files, I've been able to achieve this kind of thing using npm scripts on other projects (and this one - i haven't committed this to my repo because it's in a half baked state) but then it kinda falls apart when it comes to the "buildJekyll" build process and it's not really ideal to mix task runners In my opinion.
So i think best scenario for me would be to either convert the project to use npm script or solve the sass globing issue with gulp, because i feel that without the ability to import other projects like breakpoint sass for example, my project will fall slightly short of it's full potential.
Any pointers to these issues or how i could move forward would be great. Thanks in advance.

I've managed to sort this out now using mostly npm scripts, I'm still using gulp to build the site though. Heres a link to my package.json scrips: https://github.com/lincoln-chawora/Xyfer-Rebranded/blob/master/package.json#L29


ERROR SUPPORT LANGUAGE

HELLO, Why, It no support language other

supported languages are
Languages
ENGLISH_GB = "en-GB"
ENGLISH_AU = "en-AU"
ENGLISH_US = "en-US"
ENGLISH_ZA = "en-ZA"
ENGLISH_IE = "en-IE"
HEBREW = "he-IL"
THAI = "th-TH"
PORTUGESE_BR = "pt-BR"
PORTUGESE_PT = "pt-PT"
SLOVAK = "sk-SK"
FRENCH_CA = "fr-CA"
ROMANIAN = "ro-RO"
NORWEGIAN = "no-NO"
FINNISH = "fi-FI"
POLISH = "pl-PL"
GERMAN = "de-DE"
DUTCH = "nl-NL"
INDONESIAN = "id-ID"
TURKISH = "tr-TR"
ITALIAN = "it-IT"
FRENCH = "fr-FR"
RUSSIAN = "ru-RU"
SPANISH_MX = "es-MX"
SPANISH_ES = "es-ES"
CHINESE_HK = "zh-HK"
CHINESE_TW = "zh-TW"
CHINESE_CN = "zh-CN"
SWEDISH = "sv-SE"
HUNGARIAN = "hu-HU"
DUTCH_BE = "nl-BE"
ARABIC_SA = "ar-SA"
KOREAN = "ko-KR"
CZECH = "cs-CZ"
DANISH = "da-DK"
HINDI = "hi-IN"
GREEK = "el-GR"
JAPANESE = "ja-JP"


How to integrate with Netflix Eureka?

Hi everyone,
I'm trying to choose a microservices framework to use with node
but I really need to be able to integrate it with Eureka since we already have a
microservices infrastructure using Eureka :'(
Does anybody know how one could integrate hydra with Eureka for service register/discovery?
I don't necessarily want to make the hydra microservices to discover each other using Eureka.
I want the possibility to register to it and to eventually use services that are out of the hydra microservices network.

@danielsan I recommend you also post in our Slack group: https://fwsp-hydra.slack.com

@danielsan can I close this or should we label it help wanted?


Draft.

This is a draft PR. Please don't review this yet!
Motivation
(Write your motivation for proposed changes here.)
Have you read the Contributing Guidelines on pull requests?
(Write your answer here.)
Test Plan
(Share your test plan here. If you changed code, please provide us with clear instructions for verifying that your changes work.)
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/libra/libra/developers.libra.org, and link to your PR here.)

Closing this out as it's now redundant.


Distant Shadow Splits have Wrong Bias

Tested versions
since https://github.com/godotengine/godot/pull/68339
System information
Vulkan
Issue description
https://github.com/godotengine/godot/pull/48776 and https://github.com/godotengine/godot/pull/68339 Modify Blur and Bias respectively, but the latter adjusts bias based on the non modified blur value and doesn't take blur modification that the first PR is doing inside the shader.
The bias modification code should be applied to the modified - Final blur values, not the base blur.
Steps to reproduce
Observe Distant Splits bias increase as blur levels increase, without blending splits, and observe how blur levels are the same for the splits, but the bias still increases for those distant splits
Minimal reproduction project (MRP)
N/A

Note that decreasing bias for distant splits is not always desired. If you do so, you may end up with misaligned splits, which is usually far more noticeable in motion than slight peter-panning in the distance.
https://github.com/godotengine/godot/pull/60178 is designed in a way that the perceptual bias does not change according to the shadow distance, so that long lines of shadows remain straight lines.
See the screenshots I added to OP in https://github.com/godotengine/godot/pull/60178.

This is Normal Bias doing this, this doesn't affect regular Bias.