Make Analysis::make take in the E-graph mutably

I have a use case where I want to tag each value in the E-graph with type information, which itself should be stored either in the E-graph or in another E-graph stored in the Analysis. This requires me to mutate the E-graph or at least the Analysis from inside Analysis::make (the alternative would be to wrap a nested E-graph in the analysis in RefCell or RwLock); thankfully, just making the E-graph reference passed in mutable is enough to get this to work with only minimal changes (sticking an &mut on implementations of Analysis) to anything else. Unfortunately, this is still a breaking change, so not sure if you guys would be interested in it.

Does the solution proposed in #276 work for your setting?

Not particularly well, since I'd like my type to be Sync since once the e-graph rewriting is done many threads might inspect it

@imbrem I think wrapping your Analysis type in a mutex should work, right? I'm a little hesitant to break the API if we don't need to.

@mwillsey well we'd need an RwLock for acceptable performance, but even that introduces overhead, not to mention hassles like e.g. manual Clone implementation, and to a degree having "too much freedom." Besides, it seems inconsistent with the rest of the API, which is passed a mutable Analysis (e.g., merge), to have make not receive a mutable analysis, especially since it doesn't break any of the test cases.
One potential non-breaking option is to make a new AnalysisMut trait and have a blanket impl for things which implement Analysis, but I don't think this is very clean.

Sure, that all makes sense. I still don't have a great understanding of your use case though. It seems like perhaps a "hook" of some kind on e-node insertion could suffice (and would not break the API).

A simplified version of my use case is as follows: there's some kind of map in my analysis, and I want every E-node analysis update to be able to not only look at what's currently in the map, but also to be able to change the map so everything points to the right value. Doing this on insertion would not allow changing the value in the map; for my current needs this is possible to work around, but again it requires a bit of "yoga" (I need to, for example, have a guarantee that I did the insertion in the hook which runs before make, or trying to run the make function will panic), and it rules out some potential future designs as well.

To make that a big more concrete: we could add something like
fn enode_just_added(egraph: &mut EGraph<L, Self>, enode: &L, data: Self::Data);

or perhaps a hook that runs before insertion. Would that suffice? I'm trying to disentangle what you need from make, since there are other uses of make outside of e-node insertion (like this one in rebuilding).

The issue is that I need to mutate the EGraph, or specifically the analysis, to generate the Data in the first place, since it's an index into a map which may not yet exist.

Ok, I see your point. @oflatt @yihozhang any thoughts?
In the documentation, it would be nice to clarify that it is not make's responsibility to insert the e-node; that has already been done.
(ps: your use case sounds like it might be nicer in egglog; you could express this natively with a typeof function or something. caveat: egglog is not quite as polished of a tool as egg right now)

The example makes sense to me. I think to be consistent with other functions like merge, what we really want is mutable access to Analysis and immutable access to EGraph at the same time. But there's no trivial way of separating them.

@yihozhang well, actually, mutable access to the E-graph as well allows us to be even more flexible so long as we don't trigger an infinite loop, as in this case we can do dependent-type-style things (e.g. generate Ids for enodes while making data for the analysis). This should be fine so long as the enodes passed in are of a different kind which will not lead to a recursive call, which shouldn't be too hard to guarantee.

Yeah, though I think we want E-class analysis to strike the right balance between being flexible and being a good, sound abstraction. In general, however, unrestrained access to E-graphs seems ad-hoc and dangerous (as you said, now you need to reason about how the internals of egg work). In the egg paper, we just require an e-class analysis to be a lattice and everything just works.
Here is another proposal to make's interface:
before:
    fn make(egraph: &EGraph<L, Self>, enode: &L) -> Self::Data;

after:
    fn make(&mut self, enode: &L, children: &[Data]) -> Self::Data;

This is "more faithful" to the idea that the e-class analysis of a parent is the composition of the e-class analyses of its children, and it seems this works for your use case. This seems to be a bigger change, though.
Either way, I'm fine with the current change (as well as my proposed change).

@yihozhang I still favor the proposed change, since the requirement is not only relatively minor but also only relevant to advanced users. There could even be a second make method implementing my API, with a default implementation in terms of your simplified version; but again it is useful to be able to look at the EGraph in make so... eh, I say just provide the flexibility if it's possible without any real additional complexity right?

Ok, I think this change is worth the cost; it definitely opens up some more opportunities to do things in the e-graph that would be easier in egglog, but it worth supporting them here in egg I think.


[Bug] sol! only accepts string literal

Component
sol! macro
What version of Alloy are you on?
0.7.4
Operating System
Linux
Describe the bug
sol! seems only to support string literals, i.e., LitStr. For instance:
sol!(T, "[]"); // Works
sol!(T, concat!("[","]")); // Doesn't work
const s: &str = "[]";
sol!(T, s); // Doesn't work either

Is it possible to support a constant &str instead? This would be helpful to support something like concat!(std::env!("OUT_DIR"), ...)

Seems not possible as https://github.com/rust-lang/rust/issues/69133

We parse out environment variables with $ENV but that's about as much as you can do unfortunately

Bumping this, is there a way to reference environment variables in the latest version of sol!? This doesn't seem to work:
sol!(
    #[allow(missing_docs)]
    #[sol(rpc)]
    SafeProxyFactory,
    "$OUT_DIR/../../../../.foundry/forge/out/SafeProxyFactory.sol/SafeProxyFactory.json"
);


💭 [iOS] Did someone manage to get to reasonable FPS with ML Kit Pose Detection (native frame processor plugin)?

Question
I integrated MLKit Pose Detection with the help of various tutorials (1), (2).
Inside the frame processor in the React Native code, every frame I call a native function responsible for detecting the pose on the current frame. Once the result is obtained, a pose is drawn using Skia. I'm using Vision Camera V4.
I was only able to get 8 FPS without dropping any frames. Is there a way to get a higher FPS using the current setup I described? If it's not technically possible, can you recommend another setup that also includes MediaPipe (BlazePose)?
As far as I know, ML Kit does not provide GPU support for iOS applications.
What I tried

I tried to optimize the detection by reducing the resolution, etc. I analyzed the calculation time of one frame - the longest part of the frame processing is the native pose detection library call itself.
I tried react-native-fast-tflite library with MediaPipe tflite model I got from here. I wasn't able to get it to work (detected poses were incorrect, perhaps my setup was wrong).

VisionCamera Version
4.0.0
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

Hey - I get 90 FPS with face detection, maybe pose detection is similar.
Show your code please.

@mrousavy Thank you for response.
I managed to solve the problem today. For anyone else, in my case problem was the constant reinitialization of the detector object (MLKPoseDetector class in case of Pose Detection).

How do you get your FPS higher that will works in real-time?


Using Google Maps JS API Loader (or alternate solution)

First off, this library rocks, and has been a HUGE help so far -- so thanks for putting it together! Unfortunately, I'm hitting a little glitch when trying to use the Maps JavaScript API on multiple components on the same page. See below:
Is your feature request related to a problem? Please describe.
I have a parent component that leverages this library in a child component; however, the parent component also needs to add the Maps Javascript API in order to take advantage of the Distance Matrix API. Unfortunately, when adding the JS API in the parent component, I am met with errors due to the child component trying to add the same JS.
According to Google, it is recommended to use the Google Maps JavaScript API Loader, which appears to handle any errors that can arise from multiple components adding the same script.
Is it possible for this library to leverage Google's loader, or is there perhaps another route I can go in order to use the API on a parent component that does not have any context for whether the child component has/has not already added the API?
Describe the solution you'd like.
Refactor this library to use the Google Maps JavaScript API Loader, or provide an alternate route for being able to use the JS API in multiple, unrelated components.

As a workaround, and using https://github.com/fawmi/vue-google-maps/issues/88 as an example, I realized that you can bubble refs up multiple components. Since I needed the google object from two components down, I was just able to add a ref to my child component as well the GMapMap component on that same child compoent. This then let me access the google object with something like this:
  mounted () {
    this.$refs.MapReference.$refs.MapReference.$mapPromise.then(() => {
      this.google = window.google;
    });
  },

I'm using this package in a SPA that has some other areas that utilize an address autocomplete component, so the Google Maps API is already linked at the top of my root page.
However this package injects another script tag no matter what, which causes an error to be thrown in the console:
You have included the Google Maps API multiple times on this page. This may cause unexpected errors.

It'd be ideal if there was an additional check in that logic or to disable the automatic injection entirely for cases like this.

Is there a solution for the:
You have included the Google Maps API multiple times on this page. This may cause unexpected errors.
Error?

I'm having the same error
You have included the Google Maps API multiple times on this page. This may cause unexpected errors.
Mine is an SPA too, did you find a solution?

Is there a solution for the: You have included the Google Maps API multiple times on this page. This may cause unexpected errors. Error?

Hey @gegerino, just to let you know what seemed to be happening to me.
I have a Vue SPA built with Vue CLI, so on my main.js I wrote
appInstance.use(VueGoogleMaps, {
  load: {
    key: "my-key",
    libraries: "places,geocoding",
    v: "weekly",
  },
});

And then proceeded to use two components from the library in a single component
<GMapAutocomplete
            :value="autocomplete"
            placeholder="Dirección domiciliaria"
            @place_changed="getAddressData"
            required
            :readonly="isDisabled"
            class="form-control col-lg-12"
          >
          </GMapAutocomplete>

and
<GMapMap
            @click="mark"
            :center="center"
            :zoom="16"
            map-type-id="terrain"
            style="width: 100%; height: 250px"
            v-if="!loadingAutocomplete"
            :options="{
              zoomControl: true,
              mapTypeControl: true,
              scaleControl: true,
              streetViewControl: true,
              rotateControl: true,
              fullscreenControl: true,
              disableDefaultUi: true,
            }"
          >
            <GMapMarker
              :key="index"
              v-for="(m, index) in markers"
              :position="m.position"
              :clickable="true"
              :draggable="true"
              @click="center = m.position"
              @dragend="handleMarkerDrag"
            />
          </GMapMap>

So both loaded at the same time and consequently both of them called a method to load the Google Maps API script at the same time, causing the error/warning. So what I did is I loaded first component, the Autocomplete, while the GMap would conditionally render when a loading state was false and so I first requested with navigator.geolocation the latitude and longitude to get a marker and then defined my geocoder object this.geocoder = new google.maps.Geocoder(); which could already be used because the Autocomplete component loaded the  Google Maps API script, with it I requested the address, and once the address loaded I changed the loadingAutocomplete to false and when the GMap rendered it worked automatically because the script was loaded previously.
And the warning  disappeared.
TL;DR
If your case is the same as mine, that you have two components of the library rendered on the page, load one first and once it renders then you can render the other. Because when rendered simultaneously both call to load the Google Maps API script and thats when it can load more than once and cause errors. So doing it one by one allows the next component to use the Google Maps API script that is already loaded.


bandwidth limiting

Is it possible to limit the bandwidth, either up/down after the copy/move/sync has started?
Sometimes I'll start a transfer, but I don't set a bandwidth limit, because I don't anticipate something else needing all my immediate bandwidth in a particular direction.  Or rather, I'd like a particular transfer to compete less with my ongoing RcloneBrowser transfer.  It would be nice to be able to limit bandwidth almost on the fly, maybe after the next next finished file would be perfect!
Thank you,
whatistime.

Rclone itself does not have such functionality. But with Rclone Browser you could save your transfer as a task and in case you need bandwidth changes just stop the job, modify tasks parameters and start it again.

On 7 Dec 2019, at 03:30, whatistime<EMAIL_ADDRESS>wrote:

Is it possible to limit the bandwidth, either up/down after the copy/move/sync has started?
Sometimes I'll start a transfer, but I don't set a bandwidth limit, because I don't anticipate something else needing all my immediate bandwidth in a particular direction. Or rather, I'd like a particular transfer to compete less with my ongoing RcloneBrowser transfer. It would be nice to be able to limit bandwidth almost on the fly, maybe after the next next finished file would be perfect!
Thank you,
whatistime.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Players Cant Do Quests

Version 3.3.0    Minecraft 1.8.8
regular players cant do quests at all is there any permissions?  its on a factions server i own.
https://pastebin.com/K687Gnjr

https://github.com/FlyingPikachu/Quests/wiki/Commands-&-Permissions


Left Panel does not open after doing back in Cordova

Hi,
First of all, thank you for developing this wonderful template.
I am using nativeDroid2 with Cordova. From my APP I open the left panel on the main page and from there navigate to another page where I also open the left panel. When I go back to the main page, the panel does not open anymore. (If I do the same but without opening the left panel on the second page, the left panel from the main page still works when I return). This same effect appears with the bottom sheets. I tried many things but cannot figure out how to fix it,
If anyone can help me with at least some ideas I would really appreciate it.
Thanks!

Hi genriq, can you give us the code you wrote ?
im using this amaizng template too in a cordova project and im not facing this problem. But...for experience is surely some javascript lib/script that is givin problem...
like...
if you are using multipages and your "back" is an "" try to use "<a href="link.html" rel="external" ..."
it will make everything work (this cause some jquerymobile stuff)

Thanks for the answer. I finally found the problem: I used the same ID names for the paanels in different pages, i.e: id="leftpanel" and that seems to break everything. Lesson learned, each panel / sheet on each page should have an individual ID name. ie: id="leftpanel_main", id="leftpanel_items", id="leftpanel_buy".. .etc, same applies to the bottom sheets.
Cheers.


ISSUE: WANT TO ADD AN INTERACTIVE "IMAGE SLIDER" FOR  MAIN PAGE.

FOR YOUR EXAMPLE SOMETHING LIKE THIS.

Hyy @HarshVardhanSalve, I'm assigning issue to you.


theme picker server error stays even after it ends up loading successfully

In my screenshot you can see that the error is present but the picker is working. I think there was a brief moment during app launch where it was unable to load the picker, but after it started working the error stayed, I would expect it to be cleaned up upon the picker loading successfully.

Absolutely it should go away.
Is it possible for you to recreate and share your app code that produces the error on shinylive.io?
This way we can recreate and quickly fix the issue on our end. Thank you!

Thanks @sebovzeoueb, and don't worry about creating a repro; I'm happy to see if we can generally improve the situation first and then we can follow up.


Is it possible to split the Docker build and push

Ideally we would have:

Docker build
Trivy scan
If successful Docker push
If not fail

this has been done now


Certificate verification error

git version: 698a95d2dee0ba7e9a3f1c39af5459ba506c445f
OS: Void Linux X86_64
A specific website is not working with the following message:
original output:
verify_chain: Next certificate in the chain is not the issuer of this certificate
my modified output:
verify_chain: Next certificate in the chain {\CN=distrowatch.com} is not the issuer of this certificate \O=Let's Encrypt\CN=R11\C=US
The website: https://www.distrowatch.com
I debugged the problem, but I do not have enough knowledge about the context.
What I have found so far:

the error message comes from TLSv12.cpp: Context::verify_chain
the content of local_chain is the following:

idx 0, subject \CN=distrowatch.com, issuer \O=Let's Encrypt\CN=R11\C=US
idx 1, subject \CN=distrowatch.com, issuer \O=Let's Encrypt\CN=R11\C=US
idx 2, subject \O=Let's Encrypt\CN=R11\C=US, issuer \O=Internet Security Research Group\CN=ISRG Root X1\C=US

I debugged the certificate reading as well in TLSv12::handle_certificate
Here is some debug data provided by some of my own dbgln() calls:
payload size: 4019 buffer length: 4020
total length: 4016
certificate_size 4013

reading next certificate data starting at pos 6
(here comes the 3 byte data for the cert size)
parse cert res_cert 9 with length certificate_size_specific 1357
cert read: {\CN=distrowatch.com} {\O=Let's Encrypt\CN=R11\C=US}

reading next certificate data starting at pos 1366
(here comes the 3 byte data for the cert size)
parse cert res_cert 1369 with length certificate_size_specific 1357
cert read: {\CN=distrowatch.com} {\O=Let's Encrypt\CN=R11\C=US}

reading next certificate data starting at pos 2726
(here comes the 3 byte data for the cert size)
parse cert res_cert 2729 with length certificate_size_specific 1290
cert read: {\O=Let's Encrypt\CN=R11\C=US} {\O=Internet Security Research Group\CN=ISRG Root X1\C=US}

You can also try running with --certificate=/path/to/your/root/cert/in/pem/format to see if the page loads with your distro-provided root certificates

While it might be a good idea to update our cacert. The actual problem here is that they fucked up their chain.

idx 0, subject \CN=distrowatch.com, issuer \O=Let's Encrypt\CN=R11\C=US
idx 1, subject \CN=distrowatch.com, issuer \O=Let's Encrypt\CN=R11\C=US
idx 2, subject \O=Let's Encrypt\CN=R11\C=US, issuer \O=Internet Security Research Group\CN=ISRG Root X1\C=US

They send the local certificate twice before sending the correct intermidiate. Other browsers seems to handle this situation gracefully, we don't.
So if we want to match other browsers behaviour here, we would need some kind of "drop this cert in the chain and try the next one" type of fallback.

FWIW I'm seeing the same issue on distrowatch, on Ubuntu 24.04

I think the "correct" behaviour we should implement is, to just drop any certificate on the ground that we already saw earlier in the chain as it can never be a correct element in the chain a second time.

My knowledge of certificates and TLS is very limited, but I may have an explanation what we are seeing. I found a StackOverflow thread:
https://stackoverflow.com/questions/50857898/lets-encrypt-ssl-certificate-send-twice-in-tls-handshake
It is explained in this thread that with certain Apache configuration the self signed certificate may be sent twice: once as a standalone certificate and once as the part of the certificate chain.
I'm not sure distrowatch uses Apache.
Anyway, I think the easiest approach would be to skip duplicate items in the chain as @fdellwing recommended.

I did some debug logging for my issue too which seems somewhat different, at least not Let's Encrypt related:
idx 0 issuer \L=Salford\O=Sectigo Limited\CN=Sectigo RSA Domain Validation Secure Server CA\ST=Greater Manchester\C=GB subject \CN=www.REDACTED_INTERNAL_DOMAIN.com
idx 1 issuer \L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB subject \L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB

Hopefully I'm not leaving out important information by redacting the domain I'm trying to reach - would prefer to not have to disclose it publicly ideally!

Your server is sending a root certificate (but should not) and it not sending the intermediate certificate. This is not a Ladybird problem, all other browsers just "fix" the chain automatically without annoying the user.
See: https://support.sectigo.com/articles/Knowledge/Sectigo-Intermediate-Certificates

Do you think that ladybird will [at some point] do the "chain fixing" too? Is it worth opening a new ticket for that?

At some point? Probally. In the foreseeable future? Doubt. It's not that easy to implement and maintain.

Maybe this is a kind of situation when user confirmation is required? An "Accept risk and proceeed" like button would be acceptable? If yes, then I might be able to send a PR.

Yes that would be the perfect scenario.
One would need to set m_context.options.validate_certificates to false so that when we reach this line, we skip the chain verification.
https://github.com/LadybirdBrowser/ladybird/blob/bfc9dc447f42eb9d7d0927721291d1b528b3125d/Userland/Libraries/LibTLS/TLSv12.cpp#L248-L251

While it might be a good idea to update our cacert.

This is not correct. In TLS the first certificate is the one for the server, and the remainder are an unordered list of any other certificates that may appear in any possible chain to trusted roots. In older versions of (TLS1.2 and before) this was allegedly meant to be ordered, but a verifier that relies on that won't be able to find valid chains that have cross-signed roots.
So the supplied certificates, a valid chain would be idx 0, idx 2 with the trusted root being ISRG Root X1.
ref: RFC8446 S 4.4.2

all implementations SHOULD be prepared to handle
potentially extraneous certificates and arbitrary orderings from any
TLS version, with the exception of the end-entity certificate which
MUST be first.

For background, Ryan Sleevi has a great blog post on this: https://medium.com/@sleevi_/path-building-vs-path-verifying-the-chain-of-pain-9fbab861d7d6

While we do not support TLS1.3, we might want to support this anyway. But that seems like a bigger task.

I wanted to start collecting bugs and gaps on sites generated by the Wix platform (Websites made on Wix are between 3-4% of the web right after Shopify and Wordpress)
and the verify_chain: Next certificate in the chain is not the issuer of this certificate  issue happens for all websites created on the Wix platform, on multiple subdomains.
I don't have much knowledge about TLS etc. to say whether Wix does something wrong here or not, just that it works and always worked on every other browser and passes whatever certificate testing online tool I throw at it.
I locally edited TLSv12.cpp to just ignore this error and print the subject and issuer of the certificate and the parent certificate,
So for example when opening https://wix.com (which is build with Wix) I immediately get
174089.191 RequestServer(14421): verify_chain: Next certificate in the chain is not the issuer of this certificate:
174089.191 RequestServer(14421): - Parent Subject: {\CN=*.wix.com}
174089.191 RequestServer(14421): - Parent Issuer: {\O=Let's Encrypt\CN=R11\C=US}
174089.191 RequestServer(14421): - Subject: \CN=*.wix.com
174089.191 RequestServer(14421): - Issuer: \O=Let's Encrypt\CN=R11\C=US

but since I don't fail I continue to get this for other resources on the page, I also checked for some sites that are not served directly from a "wix.com" domain, all resources loading fails on these (parastorage.com and wixstatic.com are CDN endpoints):
174091.131 RequestServer(14421): verify_chain: Next certificate in the chain is not the issuer of this certificate
174091.131 RequestServer(14421): - Parent Subject: {\L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB}
174091.131 RequestServer(14421): - Parent Issuer: {\L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB}
174091.131 RequestServer(14421): - Subject: \CN=*.parastorage.com
174091.131 RequestServer(14421): - Issuer: \L=Salford\O=Sectigo Limited\CN=Sectigo RSA Domain Validation Secure Server CA\ST=Greater Manchester\C=GB
174091.135 RequestServer(14421): verify_chain: Next certificate in the chain is not the issuer of this certificate
174091.135 RequestServer(14421): - Parent Subject: {\L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB}
174091.135 RequestServer(14421): - Parent Issuer: {\L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB}
174091.135 RequestServer(14421): - Subject: \CN=*.parastorage.com
174091.135 RequestServer(14421): - Issuer: \L=Salford\O=Sectigo Limited\CN=Sectigo RSA Domain Validation Secure Server CA\ST=Greater Manchester\C=GB
174091.140 RequestServer(14421): verify_chain: Next certificate in the chain is not the issuer of this certificate
174091.140 RequestServer(14421): - Parent Subject: {\L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB}
174091.140 RequestServer(14421): - Parent Issuer: {\L=Salford\O=Comodo CA Limited\CN=AAA Certificate Services\ST=Greater Manchester\C=GB}
174091.140 RequestServer(14421): - Subject: \CN=*.wixstatic.com
174091.140 RequestServer(14421): - Issuer: \L=Salford\O=Sectigo Limited\CN=Sectigo RSA Domain Validation Secure Server CA\ST=Greater Manchester\C=GB

From my point of view, the original problem is solved. I checked it in version a7a24fed6882a7c436e488c78e9b7383753f6f56.

This should no longer be relevant with the new libcurl backend.


i got this popular error  but i dont know how to fix it

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

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

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
this error
WARNING: [youtube] Unable to download API page: <urllib3.connection.HTTPSConnection object at 0x000001D41800FDF0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions (caused by TransportError('<urllib3.connection.HTTPSConnection object at 0x000001D41800FDF0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions'))
ERROR: [youtube] j6CVCnAeu74: Failed to extract any player response; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
yt-dlp -vU    https://youtu.be/Ht4eCFjZ0j4
[debug] Command-line config: ['-vU', 'https://youtu.be/Ht4eCFjZ0j4']
[debug] Encodings: locale cp65001, fs utf-8, pref cp65001, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [4d9231208] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19044-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-111373-g7eeef72c67-20230707 (setts), ffprobe N-111373-g7eeef72c67-20230707
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.07.04, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.3, sqlite3-3.35.5, urllib3-2.2.2, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1830 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
ERROR: Unable to obtain version info (<urllib3.connection.HTTPSConnection object at 0x000001C1C861B1C0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions); Please try again later or visit  https://github.com/yt-dlp/yt-dlp/releases/latest
[youtube] Extracting URL: https://youtu.be/Ht4eCFjZ0j4
[youtube] Ht4eCFjZ0j4: Downloading webpage
WARNING: [youtube] Unable to download webpage: <urllib3.connection.HTTPSConnection object at 0x000001C1C87C35E0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
[youtube] Ht4eCFjZ0j4: Downloading ios player API JSON
WARNING: [youtube] <urllib3.connection.HTTPSConnection object at 0x000001C1C87C36D0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions. Retrying (1/3)...
[youtube] Ht4eCFjZ0j4: Downloading ios player API JSON
WARNING: [youtube] <urllib3.connection.HTTPSConnection object at 0x000001C1C87FC5E0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions. Retrying (2/3)...
[youtube] Ht4eCFjZ0j4: Downloading ios player API JSON
WARNING: [youtube] <urllib3.connection.HTTPSConnection object at 0x000001C1C87EE490>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions. Retrying (3/3)...
[youtube] Ht4eCFjZ0j4: Downloading ios player API JSON
WARNING: [youtube] Unable to download API page: <urllib3.connection.HTTPSConnection object at 0x000001C1C87E18E0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions (caused by TransportError('<urllib3.connection.HTTPSConnection object at 0x000001C1C87E18E0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions'))
[youtube] Ht4eCFjZ0j4: Downloading iframe API JS
WARNING: [youtube] Unable to download webpage: <urllib3.connection.HTTPSConnection object at 0x000001C1C8808700>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
[youtube] Ht4eCFjZ0j4: Downloading web creator player API JSON
WARNING: [youtube] <urllib3.connection.HTTPSConnection object at 0x000001C1C87EEB80>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions. Retrying (1/3)...
[youtube] Ht4eCFjZ0j4: Downloading web creator player API JSON
WARNING: [youtube] <urllib3.connection.HTTPSConnection object at 0x000001C1C87FCA00>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions. Retrying (2/3)...
[youtube] Ht4eCFjZ0j4: Downloading web creator player API JSON
WARNING: [youtube] <urllib3.connection.HTTPSConnection object at 0x000001C1C87C34F0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions. Retrying (3/3)...
[youtube] Ht4eCFjZ0j4: Downloading web creator player API JSON
WARNING: [youtube] Unable to download API page: <urllib3.connection.HTTPSConnection object at 0x000001C1C8819070>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions (caused by TransportError('<urllib3.connection.HTTPSConnection object at 0x000001C1C8819070>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions'))
ERROR: [youtube] Ht4eCFjZ0j4: Failed to extract any player response; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

This is a network issue. yt-dlp is not able to access the internet. Do you have some aggressive firewall or anti malware program installed?

This is a network issue. yt-dlp is not able to access the internet. Do you have some aggressive firewall or anti malware program installed?

yes . i have avast antivirus ,,i have free firewall but i dont open it ,, i dont sure if its run without my notice
ok. i will try to close this and see  going on
thank you


[9.x] Apply scopes for updateFrom

This PR implements updateFrom which got re-introduced in https://github.com/laravel/framework/pull/39151 in a similar way on the Eloquent Builder. This way, any global scope will be applied.
See https://github.com/laravel/framework/issues/44380

I've run into an issue with bindings being incorrectly ordered here, using the following test case.
public function testUpdateFromMethodWithSubJoinsOnPostgres()
{
	$builder = $this->getPostgresBuilder();
	$builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? from (select * from "orders" where "orders"."id" = 1) as "sub" where "name" = ? and "users"."id" = "sub"."user_id"', [1, 'foo', 'bar', 'baz'])->andReturn(1);
	$result = $builder->from('users')
		->joinSub(function ($q) {
			$q->from('orders')
				->where('orders.id', 1);
		}, 'sub', 'users.id', '=', 'sub.user_id')
		->where('name', 'baz')
		->updateFrom(['email' => 'foo', 'name' => 'bar']);
	$this->assertEquals(1, $result);
}

based off of testUpdateFromMethodWithJoinsOnPostgres() and testJoinSub() in Illuminate\Tests\Database\DatabaseQueryBuilderTest.php
The test is returning the bindings in the order ['foo', 'bar', 'baz', 1] (notice the placement of the "1").

Ow, I think I remember that we specifically didn't want global queries to apply here. I'm sorry but this isn't supported.

@driesvints I've found a solution that's been working for what I need, using an overwritten PostgresGrammar.php file. I'm not sure if it's good enough for a PR, but I figured I'd share just in case it's useful to others.
In short, instead of re-ordering the bindings, we can re-order the where statements.
// this bit from your commit
public function updateFrom(array $values)
{
	return $this->toBase()->updateFrom($this->addUpdatedAtColumn($values));
}

// no longer needs the re-ordering of bindings, which makes it identical to prepareBindingsForUpdate()
// I could also just change the method updateFrom() in Builder.php, but it's convenient for me to keep my changes to a single file
public function prepareBindingsForUpdateFrom(array $bindings, array $values)
{
        return $this->prepareBindingsForUpdate($bindings, $values);
}

// same general idea as the original function, but places $joinWheres before $baseWheres
protected function compileUpdateWheres(Builder $query)
{
	$baseWheres = $this->compileWheresToArray($query); // method from Grammar.php

	$joinWheres = $this->compileUpdateJoinWheresToArray($query); // new method (alternative to compileUpdateJoinWheres())

	$allWheres = array_merge($joinWheres, $baseWheres);

	return $this->concatenateWhereClauses($query, $allWheres); // method from Grammar.php
}

// replacement method for compileUpdateJoinWheres()
// basically the same, just without imploding the results
protected function compileUpdateJoinWheresToArray(Builder $query)
{
	$joinWheres = [];

	foreach ($query->joins as $join) {
		foreach ($join->wheres as $where) {
			$method = "where{$where['type']}";

			$joinWheres[] = $where['boolean'] . ' ' . $this->$method($query, $where);
		}
	}

	return $joinWheres;
}

Maybe yeah. I just remember a lot of apps broke last time we modified this method.


Fix authentication with new authentication using https://github.com/i…

…cloud-photos-downloader/icloud_photos_downloader/commit/4bcb2ac46a585205cbf3886b3df78179b34b18b1#diff-f2270f557e6afedd3e082f4dd8478d1c96dea051d6ea2e5b1229c0bb58d3d7f4R341

Breaking change

Proposed change

Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New service (thank you!)
[ ] New feature (which adds functionality to an existing service)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests
[ ] Documentation or code sample

Example of code:

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:

Checklist

[ ] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated to README

Test


Revert "Require three epoch advancements for deallocation "

Reverts crossbeam-rs/crossbeam#416
I'm suspecting may this PR causes #514.  Here's a revert PR, and I'd like to test if SIGSEGV is gone after reverting the PR...

bors try

It passes the CI for two consecutive runs.  Trying again to make sure it's not due to luck...
bors retry

Consecutive runs all succeeded.
Closes #514
bors r+


Improvements to the Download page

Now that the About page is deployed, I think we should standardize the look and feel of additional pages in our website.
So, these are my suggestions to do that for the Download page:

Title: Download Spyder
Text: Select the package you want to download from the links below. Or visit our releases page on GitHub.
Remove the horizontal line and Available for.

PR #32 tries to solve this issue.


Failed to load the text-pastry package

Just updated to 0.190.0 and got this issue after atom has started.
Atom Version: 0.190.0
System: Mac OS X 10.10.3
Thrown From: text-pastry package, v0.4.3
Stack Trace
Failed to load the text-pastry package
At Cannot read property 'prototype' of undefined

TypeError: Cannot read property 'prototype' of undefined
    at __extends (/Users/freeman/.atom/packages/text-pastry/lib/text-pastry-view.coffee:4:199)
    at /Users/freeman/.atom/packages/text-pastry/lib/text-pastry-view.coffee:9:5
    at Object.<anonymous> (/Users/freeman/.atom/packages/text-pastry/lib/text-pastry-view.coffee:94:5)
    at Object.<anonymous> (/Users/freeman/.atom/packages/text-pastry/lib/text-pastry-view.coffee:96:4)
    at Module._compile (module.js:452:26)
    at Object.requireCoffeeScript (/Applications/Atom.app/Contents/Resources/app/node_modules/coffee-cash/lib/coffee-cash.js:85:19)
    at Module.load (module.js:347:32)
    at Function.Module._load (module.js:302:12)
    at Module.require (module.js:357:17)
    at require (module.js:376:17)

Config
{
  "core": {
    "themes": [
      "atom-dark-ui",
      "monokai"
    ],
    "disabledPackages": [
      "rspec",
      "linter"
    ],
    "destroyEmptyPanes": false
  }
}

Installed Packages
# User
autocomplete-plus, v2.8.0
capybara-snippets, v0.2.0
file-icons, v1.5.3
language-haml, v0.17.0
monokai, v0.13.0
rspec-snippets, v0.4.0
text-pastry, v0.4.3

# Dev
No dev packages

yup i updated to 1.0 and got the same issue

+1

fixed with #17, thanks for reporting!

Not fixed on Atom 1.1.0. Getting the issue since I updated to 1.1.0.

Thanks @alexbet, I'll take a look tonight

it looks like this was due to an error when i published (woops) the package is now up to date.
@alexbet would you mind verifying the fix on your system (otherwise it may be a separate issue)

I am not getting the error now, but there is now a different problem. When I try to use Text Pastry, the numbers are added to the very first line in the code and not where I put the cursors. The package is useless like this. Can you please look into why this may be happening? Thanks!

Fixed with v0.6.1 seems a typo was accidentally introduced. Should be fixed, thanks again @alexbet!

Awesome! Thanks @seveibar. :)


Fix some issues with GA4 indexes

What

Sets any unused index keys in the index object to undefined if they aren't being used in the index: {} object.
Updates the GOVUK Logo index values

Why

The PAs noticed that sometimes index values were being persisted between dataLayer pushes. This was because we aren't setting the indexes to undefined if they don't exist. Therefore, an index_link, index_section or index_section_count from a previous event could be included with the current event.
Updates the GOVUK Logo index in accordance with this card: https://trello.com/c/SRFZ68d4/566-fix-index-on-govuk-link-click-nav-event-in-header-menu-bar

Visual Changes
None.

Thanks @andysellick - yeah, unfortunately it doesn't seem to work like that. I think if it was like how you described then we wouldn't have to worry about overriding values at all, as our event_data object would just override everything each time!

Thanks @andysellick - yeah, unfortunately it doesn't seem to work like that. I think if it was like how you described then we wouldn't have to worry about overriding values at all, as our event_data object would just override everything each time!

I guess the question now is do we need to do this for the event_data object as well? Or just do some kind of empty push like we do for the ecommerce stuff?


Feature/fix 1399

Eliminate std::cout from src/stan/math/prim/mat/fun/cholesky_corr_constrain.hpp because it may be called in rstan. I think you can then close #1399 .

This looks fine by me.


How can I add it In ResNet?

Is there any principle to follow？

I have not done relevant experiments on large models. A possible way is to add CAs after the last 1x1 conv in each building block as done in SENet.


feat: set default compression threshold

I ended up with 300. After that even with large circuits the constraint number reduction is insignificant and before that the compile time overhead is small (but get approx 4% less constraints for pairing circuit).
Resolves #590.

It is good to have this PR with #583, otherwise circuits with a lot of range checks compile very slowly.


Better error message for not supporting multi-label node queries

We support multi-label relationship queries but not multi-label node queries. The error we give when one tries is not explicit:
kuzu> MATCH (a:UniKG_r|UniKG_l) RETURN *;
Error: Parser exception: Invalid input <MATCH (a:UniKG_r|>: expected rule oC_SingleQuery (line: 1, offset: 16)
"MATCH (a:UniKG_r|UniKG_l) RETURN *"

We do support multi-label node queries. The syntax is in-correct because the | should be replaced :.
Try MATCH (a:UniKG_r:UniKG_l) RETURN *;


After adding a custom Dameng database driver,  explain execution plan button is greyed out.

After adding a custom Dameng database driver,  explain execution plan button is greyed out.  How can I configure to explain the execution plan?
This is my custom driver：

These two buttons are grayed out after I opened the SQL editor using the damon-driven database connection：

DBeaver has no official support of Dameng database yet.

Well, Dameng database is used by more people in China, and I hope that there will be a related update plan.

Here is an issue about adding the support #10133
And actually we have already got a PR from the community. Currently it's on a review stage and hopefully after corrections and testing by QA team will be merged. So, the support is not that far

Does the latest version have the function of viewing the SQL parsing plan of Dameng Database?


Generate dynamic connection identifiers

Should we merge this? It looks good to me.

One small nit: I think constant C_R is still present in consts.rs

Thanks for the review and sorry for the delay. Deleted C_I and C_R from consts/src/lib.rs. Now for my part I think it is ready for merge.


Bugfix/configuration

Description
Resource read error when starting application (Java Jar file: use resource errors: URI is not hierarchical)
Curator register with host name and port provided in application.yml
Changes Included

[x] Bugfix (a change that fixes an issue)
[ ] Feature (a change that adds new functionality)
[ ] Refactor (a change that improves code quality and/or architecture)

Type of Change

[x] Non Breaking (existing functionality remains intact)
[ ] Breaking (existing functionality might not remain intact)

Checklist

[ ] My code follows the style guidelines for this project.
[ ] I have performed a self-review of my code.
[ ] My changes do not generate new warnings.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have updated the documentation to reflect my changes.
[ ] I have added tests to confirm that my fix is effective / my feature works.
[ ] New and existing unit tests pass with my changes.
[ ] Dependent changes have been merged and published in downstream modules.

@dilekamadushan this will fix the issue when starting the application.


Nimble expectation

Updated dependencies
Renamed verify to contains
Added Nimble verify expectation

Closes #2 and #4.

:+1:


changes tally to use v4.1.0

This PR changes the dependency on Tally to use v4.1.0, this is to solve issue #18. I did run the tests as the workflow explains to ensure it still compiles and passes the tests.
Potential risks
I do not see any potential risks on this PR besides being able to import the temporalite go library (which is where we are now according to the issue).
Is hotfix candidate?
I would say it is a candidate for hotfix, not sure that this impacts other communities.

Codecov Report

Merging #20 (1cf2ecd) into main (6070027) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #20   +/-   ##
=======================================
  Coverage   45.06%   45.06%
=======================================
  Files          11       11
  Lines         648      648
=======================================
  Hits          292      292
  Misses        337      337
  Partials       19       19

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 6070027...1cf2ecd. Read the comment docs.


Savegame

tutorial
https://unity3d.com/learn/tutorials/topics/scripting/persistence-saving-and-loading-data

:gun:


Include scripts/gcp-setup/ in pylint checks.

Coverage remained the same at 36.726% when pulling 7f544b0a331bfaab87ebf7fb3af94875939e0f17 on gcpsetup into b560ade311c296201c67f963df89c61f2c2238d9 on master.

Coverage remained the same at 36.726% when pulling 7f544b0a331bfaab87ebf7fb3af94875939e0f17 on gcpsetup into b560ade311c296201c67f963df89c61f2c2238d9 on master.

Adding cla: yes label, as the PR author is a googler at the time of this PR was created.


Show notification while SSR is in progress

Ideally we would (a) show progress and (b) allow cancellation, but at least now there's some indication to the user that something is happening.

Thanks for noticing that. You'll be pleased to know that I've now installed a spellchecker in vscode.
I've added a commit to fix the typo. Bors squashes commits right?

It doesn't. You can force push it leave them like this.

Yeah, we generally don't have solution yet for analysis progress... Kind of hard to do for lazy setup
bors r+


Add option to only query followers during get_homepage_listings websocket query.

The get_homepage_listings websocket query in ws.py currently returns listings from random vendors. We want to change it to allow the client to set a flag when making the query telling it to only return results from nodes we follow.
The get_homepage_listings function should then use the list of nodes we follow rather than standard vendor list.

https://github.com/OpenBazaar/OpenBazaar-Server/pull/314


Create codeql-analysis.yml

Signed-off-by: Rajesh Kanakamedala<EMAIL_ADDRESS>

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 79.394%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
104

Relevant Lines:
113

💛  - Coveralls


Show Lyrics in "Search for Lyrics" box in order specified in Preferences/Search Order

put line to separate sources
Show Icon with Source name or Tint the background with the icon

No.
The manual search window is populated as we get results from the various sources. Keeping them in sorted order would add very minimal value (you can already sort by the source column if you want them grouped together but they aren't originally) and adding them to anywhere other than the bottom of the list would cause items to move on the list, making it more difficult to select the one you want.
Similarly I'm not adding icons or colouration to the list. You can read the "Source" column.
I don't know what you mean by "put line to separate sources".


chore(docs): Update api versions to apps/v1

Fixes https://github.com/metacontroller/metacontroller/issues/40

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


definition for multi-path get

app.get(['/get/something', '/get/somethingelse'], function(req, res) {
    // valid
});

I saw the api: http://expressjs.com/api.html#app.use
I thought we should also add to IRouterMatcher<T>(https://github.com/mfchung/DefinitelyTyped/blob/master/express/express.d.ts#L43) too.

Hello and thank you for your contribution!
Due to an excessively long queue of pull requests that have become stale, we are "declaring bankruptcy" and closing all PRs opened before May 1, 2016. If you'd still like to merge this code in, please open a new PR that has been merged and rebased with the master branch.
Going forward, we are committing to review or merge all PRs on a regular basis so this bankruptcy will not occur again. We apologize for the incovenience and hope you will continue to contribute to DefinitelyTyped in the future.
Thanks
The TypeScript and DefinitelyTyped teams


Prepare for the next release including dice sample game

[x] Setup the xts testnet
[x] Import delegate keys and produce the block
[x] Setup the initial balances
[x] Create the game
[x] Prepare the API for playing game
[ ] Developing the GUI for the game playing
[ ] Test the rescan functions

[ ] TODO: add comment to linux release package.


Get-TssSecretField returns field value with escaped quotes

Verified issue does not already exist?
Yes
What error did you receive
PS> Get-TssSecretField -TssSession $session -Id 123 -Slug password
\"ImAP@ssw0rd\"

Please run the command using -Verbose
Verbose: Command invocation: Get-TssSecretField -TssSession:TssSessionObject -Id:System.Int32[] -Slug:passwort -Verbose:True
Verbose: Performing the operation GET https://fqdn/api/v1/secrets/123/fields/passwort with:

\"ImAP@ssw0rd\"

Provide a test case or steps to reproduce
Create a Secret with a password which contains quotes
Example
"ImAP@ssw0rd"
Expected behavior
The return Value should not be escaped
What Edition of Secret Server?
Platinum
What version of Secret Server
11.0
What PowerShell host was used when producing this error
Windows PowerShell ISE (powershell_ise)
PowerShell Host Version
Name                           Value

PSVersion                      5.1.19041.2673
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.2673
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

The mentioned issue is reproduceable. I cross check it with the Postman and confirmed that Secret Server API  also returns the double quotes enclosed password in same way.  In sort secret Server API returning the escaped value. so not an issue with the PowerShell Module.
Actual password: "ImAP@ssw0rd"
resulted password: ""ImAP@ssw0rd""


[PE-D][Tester A] Addition of clients with the same name not allowed

Describe the bug
A person with the same name cannot be added multiple times. In this case, names should not be used as unique identifiers as multiple clients might have the same name (refer to using phone/email as unique identifier instead)
To Reproduce
Steps to reproduce the behavior:

Call the command add --name=Test --phone=123456789<EMAIL_ADDRESS>--addr=Woodlands --tags=Disabled --note=None (Any add command should work)
Call the same command
An error indicating the client already exists

Expected behavior
Addition of clients with same name should be allowed
Screenshots

Labels: severity.Medium type.FeatureFlaw
original: Jajared/ped#3

Similar to #84


Failed to install alfred-linux-command

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: `alfy-init`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

目前更新到 0.2.2 版本，删除旧版本更新一下试试


(MAINT) pinned minitest to fix spec testing

In 5.8.4, this block of code returns false, leading to no diff being required.
In 5.9.0, that same block calls system("diff") successfully, so that block returns "diff -u", which causes the above-mentioned block to try to diff, which fails when it tries to use /tmp from the Tempfile module.
I've tried setting environment variables to configure the temp file, using TMPDIR, TMP, & TEMP, but none of them helped in this case (unlike just using the Tempfile module myself, which used the ENV VAR I passed).
Since this is the case, I think the best route forward here for beaker is to pin minitest to the 5.8 series rather than trying to keep moving forward with 5.9.

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/2499/


nixos/duplicity: enable to prevent backup from growing infinitely

Motivation for this change
In the current state, the module stores backup indefinitely, without a way to prune old backups. This adds new options to curb space usage.

Tested backported to 20.09.
cc @oliviermarty who wrote the module, cc @peti as maintainer of duplicity
Things done

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

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

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

The request looks fine. I haven't tested it.

I haven't tested it.

Do you intend to ? I have been using it for a week and it work, so I'm inclined to merge, but if you want to test I can wait :)

Do you intend to ? I have been using it for a week and it work, so I'm inclined to merge, but if you want to test I can wait :)

Sorry, I don't have time right now.

Thanks for you review! I think I addressed it, I'll merge soon unless someone speaks up.


Make an ARM image available

Hi, would be very cool to have an ARM version also available on DockerHub.
Probably feasible directly within a slightly modified GitHub action.😺
Best,

Hello. I am assuming you are looking to run on an M1 mac. While we have very recently started supporting arm binaries for Bioconductor packages, it will take some time to provide arm versions of everything in our stack. Unfortunately, it's not as easy as a slightly modified GHA. Two issues we particularly have our eyes on are the one tracking the rocker base image we use (https://github.com/rocker-org/rocker-versioned2/issues/144) as well the GHA support for M1 (https://github.com/actions/runner-images/issues/2187).

@Adafede I am happy to inform you that an arm64 image is now available in the Github Container registry at bioconductor/bioconductor:release_3_16 (with special thanks to @martin-g ). It will be pushed to Dockerhub shortly, but feel free to start using it from the github registry and let us know if you encounter any issues!

Hey @almahmoud, just gave it a try and it's working! Thank you very much

Awesome! 🎆

@Adafede I believe that is due to the fact that it's trying to use the binary repo, which is built with the amd64 image. We haven't updated BiocManager::install yet to account for the multi-platform container images as this one is still in its infancy.
You can avoid using the binaries in the arm64-based image by setting the env variable BIOCONDUCTOR_USE_CONTAINER_REPOSITORY=FALSE

Indeed, thank you!


Remove namedtuple backport as namedtuple is available in all supporte…

…d Pythons.

I just realized the CI tests didn't seem to show up here... no idea why/why not


Next/back buttons sometimes go wrong

Earlier today, on the front page, the > button to go to the next page of results was going to /case/1?page=3 instead of /?page=3. @andreadelrio says she's seen that too, sometimes. When we tried to reproduce it we couldn't. Not sure what caused it or how to reproduce yet.

Sometimes forward next can even take you to Quick Submit?!?
https://github.com/participedia/usersnaps/issues/59

I believe this is fixed.  reopen if not.


Update remove-provisioned-infra-with-terraform-destroy.md

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://656d5b57745efd0bce73b6c7--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://657c8e78c7a0a512bb93abb3--harness-developer.netlify.app


Adds App Settings to Toggle Keep History

Description
Creating a draft PR to get some feedback on how to best use the KeepHistory app settings value in the capability statement builder to turn history off.
Related issues
Currently working on AB#81153.
Testing
Tests are still TBD.

@CaitlinV39 @brendankowitz thoughts on how we should handle _history searches when we have history disabled? With this implementation, _history searches will only return the most recent version (the only version that is stored in the database). Should these searches return an error or have some sort of warning?

@CaitlinV39 @brendankowitz thoughts on how we should handle _history searches when we have history disabled? With this implementation, _history searches will only return the most recent version (the only version that is stored in the database). Should these searches return an error or have some sort of warning?

The spec indicates that we should remove support for versioning all together when history is disabled. As discussed, we will postpone this until later. I created a work item for this here: AB#85363.

Closing to create non-draft PR.


[Parse] Support importing operator functions

Support:
import func SomeModule.<->

Previously, you were required to write like:
import func SomeModule . <->

Otherwise:
error: expected module name in import declaration
import func SomeFunc.<->
            ^
error: expected module name in import declaration
import func SomeFunc .<->
            ^
error: extraneous whitespace after '.' is not permitted
import func SomeFunc. <->
                    ^~

@swift-ci Please smoke test

@DougGregor Do we support importing operator functions in the first place?
Importing this function:
// SomeModule

infix operator <+++>

class C {
  public static func <+++> (lhs: C, rhs: C) { print(#function) }
}

as:
// main
import SomeModule.<+++>

looks odd to me.

import func et al were never very well designed. It also doesn't help that (IIRC) the actual operator declarations are always imported even if the functions aren't.

@rintaro I think there's some deeper design work that needs to be done here.  Do you still want this?

I don't have any strong opinion about this for now. Closing.


test(dpg): cadl extensible enum generation

part of #2528
Description
Add your description here!
Checklist
To ensure a quick review and merge, please ensure:

[ ] The PR has a understandable title and description explaining the why and what.
[ ] The PR is opened in draft if not ready for review yet.

If opened in draft, please allocate sufficient time (24 hours) after moving out of draft for review

[ ] The branch is recent enough to not have merge conflicts upon creation.

Ready to Land?

[ ] Build is completely green

Submissions with test failures require tracking issue and approval of a CODEOWNER

[ ] At least one +1 review by a CODEOWNER
[ ] All -1 reviews are confirmed resolved by the reviewer

Override/Marking reviews stale must be discussed with CODEOWNERS first

The build failure is false negative. There is an issue in the build pipeline.

/azp run

/azp run


The right architecture for the prediction program. And the error is - value1.concat is not a function and Cannot read property 'backpropagateIndex' of undefined

What is wrong?
I don’t know which architecture to choose.
I do not know the ideal input and output for my task.
Where does it happen?
node 10.15.2
brain.js 2.0.0-alpha.12
How do we replicate the issue?
I have event. It consists of 2 parts. It happens 0 or 1. I would like to predict the result of it.
I made a program with this logic:
I take last N events. And make an array of them. For example:
1 - 0, 0 (last)
2 - 1, 0
3 - 1, 1
4 - 0, 1
5 - 1, 1
6 - 0, 0
training data:
input (3-6) - [1, 1, 0, 1, 1, 1, 0, 0] , output (2) - [1, 0]
input (2-5) - [1, 0, 1, 1, 0, 1, 1, 1] , output (1) - [0, 0]
question:
[0, 0, 1, 0, 1, 1, 0, 1]
and I get array [0.88, 0.77]
(I write about this in https://github.com/BrainJS/brain.js/issues/248)
Moreover, I have interesting setting. Long array (la), and number of case (noc).
la - number events in one array (in my example - 4)
noc - number of arrays in training data (in my example - 2)
Further, I test this program use different la and noc. Usually 2 - 9 (I think that 1 is bad idea). And, I test last 11 events and search best setting, which used for predict.
Effectiveness this program sometimes surprises me, sometimes frustrating. With reservations, I would say 60-90%.
code example
  var net1 = new brain.NeuralNetwork();
  var res1 = net1.train(arr1, {
        iterations:   60000,
        errorThresh:  0.0001,
        hiddenLayers: hiddenLayers,
        learningRate: 0.051,
        activation:   "tanh",
  })

hiddenLayers - I use default. I could not find anything better than the default.
And I think, if I use high la and noc I must use other errorThresh and iterations. But I nothing change.
Activation -  "tanh", because I test all. "tanh" - The Best.
After I see this https://github.com/BrainJS/brain.js/issues/528
I think use object and add more information about event. But I have problem.
For example:
const brain = require('brain.js');
var obj1 = {xyz: 1, a1: 0, a2: 1}
var obj2 = {xyz: 1, a1: 0, a2: 1}
var obj3 = {xyz: 1, a1: 0, a2: 0}
const trainingData = [obj1,obj2,obj3];
const lstm = new brain.recurrent.LSTM();
const result = lstm.train(trainingData, {
  iterations: 1500,
  log: true,
  errorThresh: 0.011
});
console.log(result);

I get:

../node_modules/brain.js/src/recurrent/rnn.js:243
equations[0].backpropagateIndex(0);
^
TypeError: Cannot read property 'backpropagateIndex' of undefined

or
const brain = require('brain.js');
var obj1 = {input: {xyz: 1}, output: {a1: 1, a2: 0}}
var obj2 = {input: {xyz: 1}, output: {a1: 0, a2: 0}}
var obj3 = {input: {xyz: 1}, output: {a1: 0, a2: 1}}
const trainingData = [obj1,obj2,obj3];
const lstm = new brain.recurrent.LSTM();
const result = lstm.train(trainingData, {
  iterations: 1500,
  log: true,
  errorThresh: 0.011
});
console.log(result);

I get:

node_modules/brain.js/src/utilities/data-formatter.js:97
value1.concat(['stop-input', 'start-output']),
^
TypeError: value1.concat is not a function

How important is this (1-5)?
5 for me, 0.1 for world
Expected behavior (i.e. solution)

Ideally, I want to use the chain of recent events with the greatest efficiency.

Or there would be an opportunity, to receive in the beginning the usual prediction. Then when I find out xyz use his in my program, for greater efficiency.

In short, I want to discover something new.

const lstm = new brain.recurrent.LSTM();  is usually expecting a string, or something near it that can be converted is all.  It is incompatible with objects.

const lstm = new brain.recurrent.LSTM(); is usually expecting a string, or something near it that can be converted is all. It is incompatible with objects.

Is there any possibility to conduct training in two-dimensional arrays?
const brain = require('brain.js');
const net = new brain.NeuralNetwork();
net.train([{input: { r: [1,1], g: [1,0] }, output: { b: 1 }}]);
const output = net.run({ r: [0,1], g: [0,1]});
console.log(output); //  { b: NaN }

const brain = require('brain.js');
const net = new brain.NeuralNetwork();
net.train([{input: {r: [1], g: [1] }, output: { b: 1 }}]);
const output = net.run({r: [0], g: [0]}); // { b: 0.91 }
console.log(output);

const brain = require('brain.js');
const net = new brain.NeuralNetwork();
var ar = [1,2,3]
var obj1 = {input: ar, output: {a:1}}
net.train(obj1);
const output = net.run(ar);
console.log(output); // { a: 0.9 }

const brain = require('brain.js');
const net = new brain.NeuralNetwork();
var ar = [[1,1], [2,1], [1,3]] // n w
var obj1 = {input: ar, output: {a:1}}
net.train(obj1);
const output = net.run(ar);
console.log(output); // { a: NaN }

Reproduced, and looking into fix.

I just saw my previous response, lol.  Been a bit covered up with work.  It seems you just need to use the LSTMTimeStep network: https://observablehq.com/@robertleeplummerjr/brain-js-issue-529-solution


move 99_deployScript as hardhat task

Description:
This is something which we did at CTF repo. Doing this no more requires 99_deployScript to be present and also avoids the problem people deleting it by mistake

Thanks guys! Merging this 🙌

@technophile-04 nice!!
So the generateTsAbis script is run always you deploy now and you don't have to add the generateTsAbis tag anymore (it does not exist anymore), right? The abis are always generated after any deployment...

you don't have to add the generateTsAbis tag anymore (it does not exist anymore), right?

yeah that's the main reason 🙌 So now if people want to run a particular deploy script then can just do yarn deploy --tags solution2 earlier they had to mention generateTsAbis tag too like yarn deploy --tags solution2, generateTsAbis


Minimize button doesn't work in 5.10.1 on Linux Mint

Summary
Bug report in one concise sentence.
Steps to reproduce
Download version 5.10.1 from this location:
https://releases.mattermost.com/desktop/5.10.1/mattermost-desktop-5.10.1-linux-x64.tar.gz
Extract to any location in your home directory - I will reference it as MT_CLIENT_DIR - the real path doesn't matter
Change permissions to MT_CLIENT_DIR/chrome-sandbox so the Mattermost client does not throw error during startup about incorrect permissions
sudo chown root: ./chrome-sandbox
sudo chmod 4755 ./chrome-sandbox
Start the application using MT_CLIENT_DIR/mattermost-desktop and log in to your server
Press the "Minimize" button in the top right corner
Operating System
Linux Mint
Expected behavior
The main Mattermost window gets minimized
Observed behavior
The main Mattermost window stays open - it only blinks for a moment

@Jasper557 I can't reproduce this one. Which version of Linux Mint are you using/which window environment? Are you on X11 or Wayland?

This is likely a window manager issue. Does Cinnamon work?

Yes, Cinnamon works.

@Jasper557 Sounds like a window manager issue then. Did it work in a different version of the Desktop App?

@devinbinnie Yes, I don't know exactly which version, but in I think 5.9.0 it still worked

Can you confirm for me? If there's a regression I'd like to be sure. Thanks :)

I'm seeing the same thing on Ubuntu 22.04.5 with KDE 5.

@Jasper557 Can you try the latest nightly? If it's working there, I might be able to cherry-pick it into the next dot release.

@devinbinnie it works in the latest nightly :)


Bearer token handling.

File: registry/spec/auth/token.md, CC @joaofnfernandes
The token obtained in "Requesting a Token" differs from the one used in "Using the Bearer token". Is this intentional?

Closing this ticket due to its age, and the impending refactor. If you think this is in error, feel free to reopen. Thanks!


New App Submission (CoinUs)

App Logo (Required)

App Details (Required)
Type: APP Wallet
Name: CoinUs
Homepage Url: https://www.coinus.io/
Chains supported: BTC, ETH (ERC20), RVN (RVN Assets), Filecoin
App Url (Required - at least one)
Browser Url:
iOS Url: https://apps.apple.com/kr/app/coinus-wallet/id1367339746
Android Url: https://play.google.com/store/apps/details?id=com.theblockchain.coinus.wallet&hl=en&gl=US
Mac Url:
Windows Url:
Linux Url:
Mobile Linking (Optional)
Deep Link:
Universal Link:
Desktop Linking (Optional)
Deep Link:
Universal Link:
Metadata (Optional)
Short Name:
Primary Color:
Secondary Color:

We've updated the app today :)
Medium Blog:
https://medium.com/coinus/walletconnect-guide-uniswap-2-7-0-ver-4f548f9e9554?source=collection_home---4------0-----------------------
Version 2.7.0


Regarding units of training data

What is the unit of the following training data available at  https://zenodo.org/record/7196767 ?

distance
energy
force

Å
eV
eV/Å


Generating fake data with a 'unique' DB constraint?

Summary
Is there a better way to generate fake data with a 'unique' DB constraint?
Versions
PHP version: PHP 7.3.5
Faker version: "fzaninotto/faker": "^1.4",
I have a users table in laravel with:

unique 'username'
unique 'email'

I am using Faker to generate a large number of fake users for testing. However, I kept hitting an 'integrity constraint violation', so I started checking for uniqueness manually (below). My question is, is there a better way? I would love to use:
factory(User::class, 400)

but it doesn't seem to generate unique values for username and email. I need both of them to be individually unique.
        // Note: need a for loop to check for unique usernames and emails, otherwise could have instead used: factory(User::class, 400)
        for ($i = 0; $i < 400; $i++) {
            $fakeUserName = $faker->userName;
            while (User::where('username', '=', $fakeUserName)->exists()) {
                // echo "username $fakeUserName exists, attempt to find a unique username..\n";
                $fakeUserName = $faker->userName;
            }
            $fakeEmail = $faker->unique()->safeEmail;
            while (User::where('email', '=', $fakeEmail)->exists()) {
                // echo "email $fakeEmail exists, attempt to find a unique email..\n";
                $fakeEmail = $faker->unique()->safeEmail;
            }
            factory(User::class, 1)
                ->create([
                    'username' => $fakeUserName,
                    'email' => $fakeEmail,
                ]);
        }

This is not something that Faker can do you for since it also has a limited record set for you to create unique data for so many records. This of course is also done by a specific locale implementation.
The best suggestion is to add a random number to the email or username in the loop


Burn time consistency loop

Discussed in https://github.com/ukaea/PROCESS/discussions/3048
In  Power balance output and tburn consistency #17 I added an extra extra loop a long time ago in fcnvm1 (evaluators.py) to ensure that tburn has reached a converged value.  This will run all the physics and engineering functions up to 10 times, so it could be contributing to slow run times.
        # Evaluate machine parameters at xv
        self.caller.call_models(xv)

        # Convergence loop to ensure burn time consistency
        if sv.istell == 0:
            for _ in range(10):
                if abs((tv.tburn - tv.tburn0) / max(tv.tburn, 0.01)) <= 0.001:
                    break

                self.caller.call_models(xv)
                if gv.verbose == 1:
                    print("Internal tburn consistency check: ", tv.tburn, tv.tburn0)

I changed the code for test only so the print statement happens immediately after each occasion self.caller.call_models(xv) is run - it looks like it is running the models three or four times (28 times in all):
Internal tburn consistency check:  1643.3831508470048 0.0
Internal tburn consistency check:  1646.0566747427715 1643.3831508470048
Internal tburn consistency check:  1646.0566747427715 1646.0566747427715
Internal tburn consistency check:  12257.956645445382 1646.0566747427715
Internal tburn consistency check:  12662.791022099917 12257.956645445382
Internal tburn consistency check:  12662.791022099917 12662.791022099917
Internal tburn consistency check:  12662.791022099917 12662.791022099917
Internal tburn consistency check:  7347.86215389628 12662.791022099917
Internal tburn consistency check:  7101.181130533869 7347.86215389628
Internal tburn consistency check:  7101.181130533869 7101.181130533869
Internal tburn consistency check:  7101.181130533869 7101.181130533869
Internal tburn consistency check:  7130.576319058415 7101.181130533869
Internal tburn consistency check:  7070.386837361266 7130.576319058415
Internal tburn consistency check:  7070.386837361266 7070.386837361266
Internal tburn consistency check:  7070.386837361266 7070.386837361266
Internal tburn consistency check:  7119.455363833802 7070.386837361266
Internal tburn consistency check:  7057.561189589957 7119.455363833802
Internal tburn consistency check:  7057.561189589957 7057.561189589957
Internal tburn consistency check:  7057.561189589957 7057.561189589957
Internal tburn consistency check:  7192.045653587792 7057.561189589957
Internal tburn consistency check:  7184.6308508815155 7192.045653587792
Internal tburn consistency check:  7184.6308508815155 7184.6308508815155
Internal tburn consistency check:  7184.6308508815155 7184.6308508815155
Internal tburn consistency check:  7208.511410581093 7184.6308508815155
Internal tburn consistency check:  7208.343445631635 7208.511410581093
Internal tburn consistency check:  7208.343445631635 7208.343445631635
Internal tburn consistency check:  7210.090164844198 7208.343445631635
Internal tburn consistency check:  7209.406683806208 7209.406683806208
8 | Convergence Parameter: 3.769E-09

It seems that the problem arises because the calculation of loop voltage vburn is duplicated and the whole thing is oddly circular.
Pseudocode:
        physics.physics()
        def physics()
              tburn0 = tburn
              tpulse = ... + tburn + ...
              # Calculate Volt-second requirements
              ..., vsstt = vscalc(...tburn...)
             def vscalc():
                 # Volt-second requirements
                 # Loop voltage during flat-top
                 vburn = plascur * rplas * facoh * csawth
                 vsbrn = vburn * (t_fusion_ramp + tburn)
                 vsstt = vsstt + vsbrn

        pfcoil.run()
             pfcoil.py
            def run():
            # Volt-second capability of PF coil set
            self.vsec()
           def vsec():
                   # Calculation of volt-second capability of PF system.
                   # vsbn = total flux swing available for burn (Wb)
                   pfv.vsbn = .....

        pulse.run()
        pulse.py
        run()
           burn()
               # Routine to calculate the burn time for a pulsed reactor
               if pulse_variables.lpulse != 1:
                     return
               vsmax = -pfcoil_variables.vsbn
              # Loop voltage during flat-top
              vburn = plascur * rplas * facoh * csawth
              tburn = vsmax / vburn - t_fusion_ramp

In principle I would like to eliminate the switch lpulse, since any tokamak burn is limited in duration, and can therefore be considered pulsed.  However, the STEP input file uses the "steady-state" option (lpulse = 0), so it's not wise to fix something that's working and needed.

Name
Type
Datatype
Default Value
Description

lpulse
Output
integer
-
Switch for reactor model:  =0 continuous operation =1 pulsed operation

tburn
Input
real
1000.0
burn time (s) (calculated if lpulse=1)

It turns out that the consistency loop above is not used often.
In the large-tokamak scenario, the total number of function evaluations is  ft.numerics.ncalls =  1364, while the convergence loop is entered only 13 times.  The vast majority of calls to call_models is in the gradient function evaluator fcnvmc2, since a gradient is evaluated for every iteration variable, requiring two calls each.

I have tried replacing the line that ensures tburn is positive (times_variables.tburn = max(0.0e0, tb)) by a smooth function that is always positive:
        # if calculated burn time is less than 10 seconds use a smooth positive function.
        if(tb < 10):
            times_variables.tburn = 100 / ( 20 - tb )

I tried this out in a version of large-tokamak in which the thickness of the CS was restricted:
* ohcth [m]
ixc = 16
boundl(16) = 0.2
boundu(16) = 0.4
ohcth = 0.4

It seems to help convergence a tiny bit - not really worth changing.


New version and PyPI release

Now that Django 1.9 compatibility has landed we could use a new version and release to PyPI

@frankwiles Frank, when you have time, could I get a version bump and pypi release of this? Actually waiting on 1.9 compat in another project :)

Just released django-tos-0.5.0 thanks for all your hard work!

Thanks!


custom attributes now that customReducer argument from requestReducer is removed

In one of the recent versions, requestReducer removed its second argument of custom reducer. As a result, I'm not sure how can I add a custom global behavior when I want for example to save additional attributes from the response alongside the pending and data. For example, let's suppose I'd like to save the requestId header coming from the response so I can display some debugging data. Or maybe save lastFetchedAt attribute... Not sure how this can be done now

p.s: i'm still working in the "old" mode where each FETCH is a requestReducer, and not using the new mutations in the actionCreator.... (been wondering if it's an issue of the actionCreator returning a non POJO/simple serializable JSON, but a one with functions.... but that's a separate issue )

it seems like it's possible to pass an onSuccess handler for the requestReducer however this doesn't seem to apply to the mutations below it. Also ideally, I would like this configuration to be set for all requestReducers like in the older version where you would create an instance of requestReducer with a default config

I won't be able to add back custom reducer to requestsReducer, as actually future version wont have requestsReducer at all, only networkReducer. This is because new release will be very huge with simplified API and new features. networkReducer allows me to do more because I have all network state within 1 place.
I totally understand though the need to have some local state next to remote state, but actually it doesnt matter where sth is stored in reducers, merging state can be done on selector level. So you can just put your reducer listening to network events and store requestId (btw in next releases headers could be optionally stored in reducer by default) and merge it with remote state with reselect. In the future version actually built-in selectors will be the only recommended way to get remote data, as state will be less human-readible to support things like better caching and auto normalisation. Also, you can add some attributes with action.meta.getData anyway.
been wondering if it's an issue of the actionCreator returning a non POJO/simple serializable JSON, but a one with functions.... but that's a separate issue
no, only reducer state has to be serializable, action doesnt need to be, it doesnt even break Redux time travel, I understand someone might not like it by collocation everything inside action is my goal.
Also ideally, I would like this configuration to be set for all requestReducers like in the older version where you would create an instance of requestReducer with a default config
createRequestsReducer was removed because you can achieve the same thing with creating your own wrapper around requestsReducer and passing to config whatever u want. I dont want to have API which can be done by pure javascript to keep this library simple.

thanks @klis87 !


[ENH] Wrapper for calculating error metrics for each panel/hierarchy in forecasting

Describe the feature or idea you want to propose
I want to apply performance metrics on each panel and/or hierarchy and get a DataFrame back with the errors.
Describe your proposed solution
We need a simple wrapper class or function, e.g. make_panel_scorer and PanelScorer that gets a performance metric and a param to describe the level where to calculate the errors on. Good start would be to do it for all panel combinations.
Describe alternatives you've considered, if relevant
No response
Additional context
No response

no longer relevant, we dont use the term Panel any more,


Minimum working example

Hello,
thank you for sharing your code. I have trouble trying to use it though.Can you point to a minimum working example in the files you provided? a canonical example on how to learn a fast-transform?
thank you
Luc

Thanks for trying out the code.
As mentioned in the README, you can see learning_transforms/run_exp.sh for examples of how to run the experiments.
For example, to learn the fast algorithm to perform the DFT of size 8 x 8: python learning_transforms.py with target=dft model=BP size=8


3D input tensors and feature reduction

@wiseodd
Tldr; Issue with tensors of size (B, L, D) passing through a Linear last layer
Here's the minimal reproducible example:
import torch
import torch.nn as nn
from laplace import Laplace
from torch.utils.data import DataLoader
from tensordict import TensorDict

BATCH_SIZE = 4  # B
SEQ_LENGTH = 6  # L
EMBED_DIM = 8  # D
INPUT_KEY = "input"
OUTPUT_KEY = "output"

class Model(nn.Module):
    def __init__(self):
        super().__init__()
        self.attn = nn.MultiheadAttention(EMBED_DIM, num_heads=1)
        self.final_layer = nn.Linear(EMBED_DIM, 1)

    def forward(self, x):
        x = x[INPUT_KEY].view(-1, SEQ_LENGTH, EMBED_DIM)  # (B, L, D)
        out = self.attn(x, x, x, need_weights=False)[0]  # (B, L, D)
        return self.final_layer(out).squeeze(dim=-1)  # (B, L)

ds = TensorDict({INPUT_KEY: torch.randn((100, SEQ_LENGTH * EMBED_DIM)),
                 OUTPUT_KEY: torch.randn((100, SEQ_LENGTH * 1))},
                batch_size=[100])  # simulates a dataset
dl = DataLoader(ds, batch_size=BATCH_SIZE, shuffle=False, collate_fn=lambda x: x)

model = Model()
la = Laplace(model, "regression", dict_key_x=INPUT_KEY, dict_key_y=OUTPUT_KEY,
             last_layer_name="final_layer", feature_reduction="average")
la.fit(dl)

data = next(iter(dl))  # data[INPUT_KEY].shape = (B, L * D)
pred_map = model(data)  # (B, D)
pred_lap = la(data)  # TODO: error! (shape '[4, 6, 54]' is invalid for input of size 216)

My goal is to obtain some measure of epistemic uncertainty on each "token" of the output. The difference from the tutorials I reviewed is the 3D input tensor, which I need for attention. Using the feature_reduction parameter seems to help a little when I was trying to debug but I'm not very familiar with this functionality.
I find it surprising that la.fit(dl) works but the forward call la(data) doesn't work. How do you recommend I use this library properly for this use-case? Thanks in advance.

Addendum: If you branch glm_multidim, then you can use the GLM predictive (better than MC) with caveats:

hessian_structure in ["full", "diag"]
You must pass enable_backprop=True to Laplace(...), then after you are done, just detach.

See example: https://github.com/aleximmer/Laplace/blob/glm-multidim/examples/lm_example.py

@wiseodd
Thanks for correcting the code. It works on my end, and I've successfully transferred the correction to my complete use-case (at least with respect to the mentioned issue).
Regarding point (1), oddly enough, if I stubbornly insist on setting subset_of_weights="last_layer", it will not work. It needs to be "all". Regardless, it's nothing major.

As I said before, subset_of_weights="last_layer" is much less flexible. Just set it to "all" and switch off gradients

I‘ll keep this open until the aforementioned branch merged. Thanks for opening the issue!


Missing libz for test/unitTests

I'm trying to compile neso.neso@working ^neso.nektar~python ^neso.neso-particles@working~build_tests <EMAIL_ADDRESS>with Spack but it's failing with
     153    cd /tmp/giordano/spack-stage/spack-stage-neso-working-ffocxn7ig4krmw453n5p5gugiiw644qp/spack-build-ffocxn7 && /mnt/lustre/a2fs-work3/work/d193/d193/giordano/repo/excalibur-tests/benchmarks/spack/ar
            cher2/compute-node/opt/linux-sles15-zen2/gcc-11.2.0/cmake-3.27.9-whasnknigdkypxktspfypplauxevbsx2/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/giordano/spack-stage/spack-stage-neso-working-ffoc
            xn7ig4krmw453n5p5gugiiw644qp/spack-src /tmp/giordano/spack-stage/spack-stage-neso-working-ffocxn7ig4krmw453n5p5gugiiw644qp/spack-src/test /tmp/giordano/spack-stage/spack-stage-neso-working-ffocxn7i
            g4krmw453n5p5gugiiw644qp/spack-build-ffocxn7 /tmp/giordano/spack-stage/spack-stage-neso-working-ffocxn7ig4krmw453n5p5gugiiw644qp/spack-build-ffocxn7/test /tmp/giordano/spack-stage/spack-stage-neso-
            working-ffocxn7ig4krmw453n5p5gugiiw644qp/spack-build-ffocxn7/test/CMakeFiles/unitTests.dir/DependInfo.cmake "--color="
     154    make[3]: Leaving directory '/tmp/giordano/spack-stage/spack-stage-neso-working-ffocxn7ig4krmw453n5p5gugiiw644qp/spack-build-ffocxn7'
     155    make  -f CMakeFiles/NESO.dir/build.make CMakeFiles/NESO.dir/build
     156    make[3]: Entering directory '/tmp/giordano/spack-stage/spack-stage-neso-working-ffocxn7ig4krmw453n5p5gugiiw644qp/spack-build-ffocxn7'
     157    make[3]: Leaving directory '/tmp/giordano/spack-stage/spack-stage-neso-working-ffocxn7ig4krmw453n5p5gugiiw644qp/spack-build-ffocxn7'
     158    make  -f solvers/Electrostatic2D3V/CMakeFiles/Electrostatic2D3V_ObjLib.dir/build.make solvers/Electrostatic2D3V/CMakeFiles/Electrostatic2D3V_ObjLib.dir/build
  >> 159    make[3]: *** No rule to make target '/tmp/giordano/spack-stage/spack-stage-nektar-5.2.0-2022-09-03-3kbygtwrsfdbkz4rszcgvmogn3mzn5ke/spack-build-3kbygtw/ThirdParty/dist/lib/libz.so', needed by 'NESO
            '.  Stop.

I'm trying to understand the error message, but frankly I'm very confused by why the build system of Neso is trying to mess up with the (now non-existing anymore) build directory of Nektar.

Something seems to have gone wrong with the CMake configurations for NESO and/or Nektar++. My guess is the latter. It looks like Nektar++ has ended up building against a version of libz it built itself (don't know why, as that should be available to it already) and then exported link targets based on its location at build-time, rather than its installed location.

I just realised the nektar recipe doesn't depend on zlib at all, which sounds like a bug.


[DOC-593] Add info about case-sensitivity of locality zones

[DOC-593]

[x] Local build
[x] Local linkcheck

This change is


feat: autogenerate default_tag field in aws provider when using happy infra generate command

CCIE-1926

Summary
Create Default Tag in AWS Provider in fogg.tf

Type

        Task

Status
To Do

Similar to fogg.tf, we want to tag the AWS resources with the following format
provider "aws" {

  region = "us-west-2"

  assume_role {
    role_arn = "arn:aws:iam::626314663667:role/tfe-si"
  }

  # this is the new way of injecting AWS tags to all AWS resources
  # var.tags should be considered deprecated
  default_tags {
    tags = {
      TFC_RUN_ID                               = var.TFC_RUN_ID
      TFC_WORKSPACE_NAME                       = var.TFC_WORKSPACE_NAME
      TFC_WORKSPACE_SLUG                       = var.TFC_WORKSPACE_SLUG
      TFC_CONFIGURATION_VERSION_GIT_BRANCH     = var.TFC_CONFIGURATION_VERSION_GIT_BRANCH
      TFC_CONFIGURATION_VERSION_GIT_COMMIT_SHA = var.TFC_CONFIGURATION_VERSION_GIT_COMMIT_SHA
      TFC_CONFIGURATION_VERSION_GIT_TAG        = var.TFC_CONFIGURATION_VERSION_GIT_TAG
      TFC_PROJECT_NAME                         = var.TFC_PROJECT_NAME
      project                                  = var.tags.project
      env                                      = var.tags.env
      service                                  = var.tags.service
      owner                                    = var.tags.owner
      managedBy                                = "terraform"
    }
  }
  allowed_account_ids = ["626314663667"]
}

Confirmed this change by using debugger with this launch.json config
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "../happy/cli",
            "args": ["infra", "generate"],
            "cwd": "../happy/examples/typical_app"
        }
    ]
}

https://github.com/chanzuckerberg/fogg/blob/main/templates/templates/common/aws_provider.tmpl

we recently had to add coalesce(..., "unknown") around these variables because sometimes they weren't populated. Can you add that to this PR?

Wrapped the variable in the coalesce.


Incorrect formatting for blockstatement node

Description:
After introduced a  new block statement (https://github.com/ballerina-platform/ballerina-lang/pull/23020) expected format of negativeEOF.bal has been changed like this.
https://github.com/ballerina-platform/ballerina-lang/blob/4335ea3093cc04eeb125dd10dd03ce2f50cddf1b/language-server/modules/langserver-core/src/test/resources/formatting/expected/expectedNegativeEOF.bal#L68
A similar example for the above formatting deviation as follows.
Steps to reproduce:
Before formatting:
function foo() {
    int a = 5;
    if (a == 5) {
        a = 10;
    } else {
        a = 15;
    } else
{}
}

After formatting
function foo() {
    int a = 5;
    if (a == 5) {
        a = 10;
    } else {
        a = 15;
    } else
{}          //format deviation
}

It should be in this manner
function foo() {
    int a = 5;
    if (a == 5) {
        a = 10;
    } else {
        a = 15;
    } else
    {
    }
}

Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

With the new formatter implementation, the parser identifies this as an invalid scenario. According to that, there is no usage of this test case.


Broken display

https://www.staged.apache.org/licenses/index.html

What is the brokenness you see? The page seems to resolve correctly for me.

The tables on the page are incorrectly renderend @cottage14

I have fixed the table displays. I am not sure where the rightmost column in each table comes from, or what its purpose is. Those columns do not exist in the original page.

The rightmost column provides links to various parts of the page one can write https:///www.apache.org/licences/#clas


SQLiteMCConfig.Builder()#withHexKey and rekey compatibility

Can't understand how the hex key methods withHexKey(String) and withHexKey(byte[]) works.
Sample code for understanding variables:
SQLiteMCSqlCipherConfig dbConfigBuilder = SQLiteMCSqlCipherConfig.getDefault();
dbConfigBuilder.withKey("x'0a0a'");
SQLiteMCConfig dbConfig = dbConfigBuilder.build();
connection = dbConfig.createConnection(dbURL);

Expected behavior:

Using method dbConfigBuilder.withKey("x'0a0a'") works normally and statement PRAGMA rekey = "x'0f0f'" compatible.

Setting pragma dbConfig.setPragma(SQLiteConfig.Pragma.HEXKEY_MODE, String.valueOf(SQLiteConfig.HexKeyMode.SQLCIPHER)) and using withKey("0a0a'") and PRAGMA rekey = "x'0f0f'" compatible.

Unexpected behavior

When i start using withHexKey(String) and rekey with syntax PRAGMA rekey = "x'0f0f'", then method dbConfigBuilder.withHexKey("0f0f") can't open database. I think this method doesn't work correctly due to hardcoded setPragma(Pragma.HEXKEY_MODE, String.valueOf(HexKeyMode.SSE)) in SQLiteMCConfig.Builder()#withHexKey(String). When i change Pragma.HEXKEY_MODE to HexKeyMode.SQLCIPHER, after dbConfigBuilder.withHexKey("0f0f"), then PRAGMA rekey compatibility fixed.

When using withHexKey(byte[]) for rekey i need convert bytes with spacing (e.g.: "0F 0F") and use rekey without special syntax "x'0f0f", fully compatible PRAGMA rekey = "0F 0F". It looks like the hex string it's ordinary password for SQLite.
And why hex string using spaces?

Hi,
Thanks for the report !
First, let's talk about withHexKey(String) vs withHexKey(byte[]):
Both prepare the configuration to open the database with pragma hewkey (pragma hexrekey exists too)

withHexKey(String) expect to receive a hex string (no space, 0-9a-fA-F)
withHexKey(byte[]) expect the key as bytes. It will be converted to a hexstring (and will call withHexKey(String))

Well unfortunatly I made two mistakes when writing withHexKey(byte[]):
1. It calls withKey(String) instead of withHexKey(String)
2. It adds spaces between hex digits (ex: "AF EE" instead of "AFEE")
These will be fixed very soon !
I had a discussion with the maintainer of SQLiteMC here to clarify each "key" method: key, hexkey, rawkey
It translates to the following methods in Java (withKey vs withHexKey vs withRawUnsaltedKey vs withRawSaltedKey):

withKey and withHexKey: withKey is meant for simple "key" string, withHexKey is meant for more complex key (encoded as hex). In both methods, the SQLite library perform the key derivation internally and create the "real" encryption key.
withRawUnsaltedKey and withRawSaltedKey (that are specific to sqleet and SQLCipher scheme): Both allow to provide raw key data (as hex) (used without performing key derivation). Each cipher require a specific syntax for the key data. It is the user's responsibility to perform key derivation with methods of his own choice.

In your case, if you want to use a hex key, you must call withHexKey("0a0a").
If you were using sqleet or SQLCipher with a raw key then you must use withRawUnsaltedKey("0a0a") if the salt was not included (32 bytes) else withRawSaltedKey("0a0a") in case the salt is provided (48 bytes).
I might need to write more methods to simplify the rekying process. For example the user must know that:

You must use pragma rekey for:

raw keys (prefixed with raw: for sqleet; formatted as x'key' for SQLCipher)
simple string key

You must use pragma hexrekey when you provided a hexkey

Hope it clarifies things

Hi,
Thank yoy for detailed response!
And what about using hardcoded

Hi,
Thank you for detailed response!
And what about hardcoded setPragma(Pragma.HEXKEY_MODE, String.valueOf(HexKeyMode.SSE)) in withKey(String) method?
When i using SQLCipher and after PRAGMA rekey = "x'0f0f'" the database is not available by method withHexKey("0f0f"). For this case i need use PRAGMA hexrekey instead of rekey?

I double-checked when Pragma.HEXKEY_MODE was set and here is a summary:
Its value is NONE when using:

withKey()
withRawUnsaltedKey()
withRawSaltedKey()
Its value is SSE when using:
withHexKey()


enable tls12 feature on test

Maybe we should do a mutation test with different set of features. I'm not sure how to do this in Rust in the most elegant way.

We generally use cargo-hack for that. Here's an example: https://github.com/RustCrypto/RSA/blob/c1205ff208fe769fe34c65d7cb6a261818c51588/.github/workflows/ci.yml#L46-L47