[FEATURE] Group creation without an user

Currently you must pass an userID when creating a group.
It would be useful if it were possible to create a group without an user.
For the use case we have some custom logic in place where we pre create a group for a set of users that can later join.
Also if we want to use the matchmaker to match users into groups rather than realtime matches it would make sense to have the ability to create a group when a match is found.
The current workaround I have in mind is create another system account.
Use the userID from this system account for the creation of the group.
Then when the first user joins the group it would promote that user to superadmin.
And finally remove the system user because we can't make the system user leave before there is another superadmin.
Alternatively we would have to store groups of users separately and then the first user creates the group.

Hi @Rojoss please see our response on the forum - https://forum.heroiclabs.com/t/adding-additional-indexed-properties-to-groups/2625/2.


:bug: Bump to 1.4.0

Summary
fix operator-accidental-unpublishing-of-released-operators-bundle-image problem:
http://external-ci-coldstorage.datahub.redhat.com/cvp/cvp-redhat-operator-bundle-image-validation-test/multicluster-globalhub-operator-bundle-container-v1.4.0-5/81eca2fe-1525-40f9-9913-530c15880a81/operator-accidental-unpublishing-of-released-operators-bundle-image-output.txt
Related issue(s)
Fixes #
Tests

[ ] Unit/function tests have been added and incorporated into make unit-tests.
[ ] Integration tests have been added and incorporated into make integration-test.
[ ] E2E tests have been added and incorporated into make e2e-test-all.
[ ] List other manual tests you have done.

/lgtm


Last record can't be close in grouping

Hi
If you open the last record in this example:
http://codepen.io/marjan-georgiev/pen/JdMBMQ
you can't close it.
regards
Patrick

Probably something around here: https://github.com/Swimlane/angular-data-table/blob/master/src/components/body/BodyController.js#L443
Don't have time to debug right now.


feat: implement download_media for jsonContent assets

@Jonas1312 For me, a good strategy would be to:
1- fetch the type of the project
2- if it is frame or text and that the client did not query the jsonContent field, add it
3- download the media:

the json content if json content is not empty and the input type is TEXT
the json content if json content is not empty and the input type is FRAME
else: the content

4- if the jsonContent were not queried:
- the you download the json content media, warn the user that you added it and that the info is inside
- if you downloaded the content, remove the json content that were not asked by the client from the asset
happy to discuss it

e2e tests: https://github.com/kili-technology/kili-python-sdk/actions/runs/3845650819

e2e pass: https://github.com/kili-technology/kili-python-sdk/actions/runs/3846369044

e2e tests: https://github.com/kili-technology/kili-python-sdk/actions/runs/3847746903


Support ssh-dss server key type

Expected Behavior
Able to connection and download file
Actual Behavior
Error message display: [error] Handshake failed: no matching host key
Steps to Reproduce the Problem

Generate ssh-dss public key with ssh-keygen -t rsa -b 4096
Put in on a server and try to config Visual Studio Code sftp and start download files

Requisites (important to diagnose the problem!)
Extension Logs
Well, you could easily test it out. I don't have log here since I just temporary fixed it with some dirty code.
Specifications

Version: 0.8.11
Platform: Visual studio Code 1.18.1 on Windows 7 Enterprise 64bit

From https://www.openssh.com/legacy.html

OpenSSH 7.0 and greater similarly disable the ssh-dss (DSA) public key algorithm. It too is weak and we recommend against its use.

I need consider if this worth an option.

The best resolution for these failures is to upgrade the software at the other end. OpenSSH only disables algorithms that we actively recommend against using because they are known to be weak. In some cases, this might not be immediately possible so you may need to temporarily re-enable the weak algorithms to retain access.

Tell me what you think.

Okay, thank you. I think this is my company fault for using old software. Though, I think there should be a workaround instruction for this issue, since I think there are still many people might run into this.

With v1.0.4, you can config this way
"algorithms": {
  "serverHostKey": ["ssh-rsa", "ecdsa-sha2-nistp256", "ecdsa-sha2-nistp384",  "ecdsa-sha2-nistp521", "ssh-dss"]
}

Great. Thank you!


fix: use the private optimization _try_geometry

Method was made private when moving to PySimAI but the call was never updated.

Codecov Report
Attention: Patch coverage is 33.33333% with 2 lines in your changes are missing coverage. Please review.

Project coverage is 80.38%. Comparing base (ea5494c) to head (cdeabfd).

Files
Patch %
Lines

src/ansys/simai/core/data/optimizations.py
33.33%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #40      +/-   ##
==========================================
- Coverage   80.43%   80.38%   -0.05%
==========================================
  Files          42       42
  Lines        2208     2208
==========================================
- Hits         1776     1775       -1
- Misses        432      433       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


GPU.js

Greetings, there's a issue with GPU, I think only basic neural network runs on GPU, if.
GPU.js is wonderful library, you could port other layers there.
Also I would like to see some custom layer building, like in Keras...
Maybe Hopkins networks, Markov chains, reinforced learning, all could be implemented on Brain.js
I can give you mathematics, but I don't see very much deep in how inheritance works in JavaScript, so I cannot do this.
Maybe even Bayesian would be wroth a try.
But primarily, it should all run with auto encoder, it should run on GPU, and it should support clustering so we could link normal brain cortexes in there.
I mean layers...
And maybe even feature, that output of later network, is input somewhere in the begining, and there's some sort of merge layer.
I can create automated learning with back-ups, it's almost done, I will even work on implementing database cursor as feed to training, but some things should be done...
Maybe even clustering algo's would come handy like DBSCAN or Optics.

GPU.js is being implemented, and custom layer building is the end goal and desire.  We have architectures for FeedForward and Recurrent Like neural networks but others would be fantastic as well.
The whole idea in Brain.js's new architecture is reusability both in neural network and their layers.  So you can build whatever type of neural network architecture you'd like.  I look forward to hearing more of your ideas!

Since GPU.js is already used to build these new layers, and as well the entire of the GPU model, I'm going to go ahead and close this issue.


Format build files and check format during CI

Adds a build file formatting script
Adds a format check to CI
Formats everything

The formatting script was originally authored by @pauldraper in the annex repo.

Addresses https://github.com/bazelbuild/rules_scala/issues/474

I see you are tying to cheat your way to the top of the changelog.
;)
Fine by me to add formatting.

I see you are tying to cheat your way to the top of the changelog.

Just you wait.

There's a bug in buildifier formatting that I'll need to fix before we can get this merged.

wdyt about following this PR?
We obviously don't have to follow the java formatting but the bzl/BUILD files can be checked every commit and one can run it locally

I've reformatted the files after switching to a buildtools with the fix in https://github.com/bazelbuild/buildtools/pull/293.

@ittaiz I believe this PR has roughly the same functionality as the one you've linked. FWIW the formatter is set to install and share the same local cache as the overall build so CI builds shouldn't be slowed down by having to install a ton of stuff.
I can look at migrating the external formatter scripts into targets within the main Bazel build, but I'd prefer to follow up with that in another PR.

@ittaiz how about now? Do you think we should merge?

Sorry for dropping the ball here but I think there might be an issue here.
I think the script checks bzl files but doesn’t fix them, am I mistaken? If
so people will fail the check but will have a hard time fixing it.
The other script handles this by running python format and skylint (it
also has a lengthy explanation on why everything is needed).
If I’m correct then one thing we can do is remove the bzl check from this
PR and merge it.
Then add skylark formatting in a follow up PR.
On Fri, 4 May 2018 at 21:15 P. Oscar Boykin<EMAIL_ADDRESS>wrote:

@ittaiz https://github.com/ittaiz how about now? Do you think we should
merge?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/489#issuecomment-386689544,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF2rkcoihzFpwbH-7a0WYnvYZGUJBks5tvJqygaJpZM4Ttm5A
.

format.sh will format all the files for you if you run it without any arguments. If you pass in the check flag, it does the CI format checking.
I can add some README documentation on this for contributors. Would that do the trick?

I might have misread the code.
What fixes skylark code? Buildifier only checks it but doesn’t fix it
On Mon, 7 May 2018 at 0:28 andy g scott ☜<EMAIL_ADDRESS>wrote:

format.sh will format all the files for you if you run it without any
arguments. If you pass in the check flag, it does the CI format checking.
I can add some README documentation on this for contributors. Would that
do the trick?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/489#issuecomment-386916174,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIFxGn2VmuM9Nfe7PjWhcbXzNm24niks5tv2sOgaJpZM4Ttm5A
.

From https://github.com/bazelbuild/buildtools/issues/109 and other issues it seems that buildifier only does a very partial job there

This isn't formatting or checking Skylark files yet. I may have misspoken earlier.

I think the second check does check skylark files.
It looks for bzl files and checks them.
I suggest to either:

Use the script from the other PR minus java formatting since it’s very
robust and documented.
Only format BUILD files for now and drop the second check from the
current script
On Mon, 7 May 2018 at 18:46 andy g scott ☜<EMAIL_ADDRESS>wrote:

This isn't formatting or checking Skylark files yet. I may have misspoken
earlier.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/489#issuecomment-387108546,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF2mAnyiXKJdexv31NpMLsDigHF8tks5twGxEgaJpZM4Ttm5A
.

I'm currently back on this thread of work and actively porting over the linting scripts from the bazel-integrationtesting project.

Yay 😀
Thanks!
On Wed, 6 Jun 2018 at 20:39 andy g scott ☜<EMAIL_ADDRESS>wrote:

I'm currently back on this thread of work and actively porting over the
linting scripts from the bazel-integrationtesting project.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/489#issuecomment-395153126,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF7bWM7YAgwpb8zCsRts1OzA_VQKaks5t6BO9gaJpZM4Ttm5A
.

Alright! I think this is good to go. The formatting was done on top of the changes in master as of this comment.

There was a build error that didn't make sense, so I reverted all the formatting changes. Right now I'm stuck running the build since I have Bazel 0.14 instead of Bazel 0.13. I'll post an update soonish.

I think this is finally ready!

@andyscott this diff is really large. Did you update the README to explain how to run the linter to help people who send PRs? I didn't see that.

I'll add a quick note. Regarding the large diff-- yes! The best I could do to manage this was to isolate the diff to a single commit. I can split the formatting changes to separate commits based on file type, if needed.

Okay. I’m +1 when @ittaiz is happy. Thanks for adding the note to Contributing.

The giant diff is only from running ./lint.sh fix off of the most recent changes in master.

If you want to double check, I can first rebase this PR so that the giant diff is the last commit. Then you could test locally:

Thank you for your perseverance!

Sure thing!


two-way binding

Two-way binding doesn't seem to work. Here's an example:

                                <input type="text" class="form-control" ng-model="schedule.weekdays_start" id="weekdays_start" />

{{ schedule.weekdays_start }}

pre stays empty when I change the date/time.

Fixed. The pre element was in a wrong place.

Hi! Happy to know that you fixed your issue.
Thanks for using the directive.


bobassembly.cfg pt-BR update

Updated translation to match official translation of vanilla entities (chemical plant)

I would prefer one pull request next time :)

Sorry about that. Still struggling with this github thing :/


ENH: stats.Normal: add new continuous distribution infrastructure + normal distribution

Reference issue
gh-15928
Closes gh-4538
Closes gh-8053
Closes gh-9321
Closes gh-10106 [^1]
Closes gh-10328
Closes gh-11465 [^2]
Closes gh-11746 [^3]
Closes gh-12192 [^3]
Closes gh-13504
Closes gh-13986
Closes gh-14895
Closes gh-16877
Closes gh-16998 [^4]
Closes gh-17307 [^5]
Closes gh-17620
Closes gh-18782 [^6]
Closes gh-19524 [^4]
[^1]: Additional improvements are possible, but random sampling in this infrastructure is still much faster due to vectorization of numerical integration and inversion.
[^2]: Added methods for inverse of the logarithm of the CDF
[^3]: Already closed for the old infrastructure, but addressed in the new infrastructure.
[^4]: Actually we still have an equivalent issue. Because instantiating a Generator is very slow, ContinuousDistribution does not convert the default rng=Noneinto a PRNG until the first time it is used. If None were converted to the global RandomState, this would avoid the original issue exactly as suggested in gh-19524. However, None gets converted to a new Generator (np.random.default_rng()), which assumes an unpredicatable state. Therefore, if a random variable is copied before sample is called, copies will get different Generators, whereas if it is copied after sample is called, copies will get the same Generator. There are several possible solutions; we need to decide which approach to take.
[^5]: It is the policy of this infrastructure that errors will not be raised, but NaNs will be produced. This is more appropriate in a vectorized context: an error due to one bad element of an array should not cause the rest to fail.
[^6]: Infrastructure converts all inputs to consistent, at least float dtype.
What does this implement/fix?
See gh-15928. Compared to the branch reviewed in that RFC, there are only a few new commits here, beginning with 5fdb881d6d76d5bddae041a9b3d2f028c5df290f, that respond to some of the comments in the RFC as summarized by @tupui.
Additional information
There are many follow-up PRs planned before 1.15.0 (e.g. array API support, various distribution classes, test improvements, accuracy benchmarking and documentatino, tutorials, fit, other TransformedDistrbution subclasses, DiscreteDistribution, etc.). Have to start somewhere!

This is related to something mentioned in the footnotes. I'll move that discussion to gh-19524 and ping you.
But I suppose one solution to this problem is to turn None or a user-specified seed into a Generator if the user accesses the attribute. It is already a property, so this would be easy.

gh-19524 is an issue report about the old infrastructure; we probably shouldn't do design discussions on the new infrastructure there. FWIW, I'm coming down on the side of distribution instances not carrying around Generator instances themselves, but always taking in rng= argument in the (one?) method that needs it.

we probably shouldn't do design discussions on the new infrastructure there

Ah, I suppose since you referred to the new infrastructure there, it seemed OK. Maybe a new issue then, since it's tough to keep things organized if there are multiple things to discuss? In the meantime, I was writing this, so I'll go ahead and post it.

@rkern @rgommers we actually still have a related problem in gh-21050.

Ideally, the RandomState instance should not have been grabbed greedily on instantiation of lognorm, but rather left as None by default until rvs() gets called.

Calling np.random.default_rng() takes almost 10x as long as instantiating a Normal object otherwise, so currently we leave rng as None until sample gets called. However, None turns into default_rng() instead of the global random state because it looks like that is the direction scientific-python/specs#180 is heading. So now, if the user copies before calling sample, the copies will still have rng=None and each copy will get a different Generator, whereas if the user copies after calling sample, the copies will have the same Generator.
One solution is to quickly generate a seed for Generator when Normal is instantiated but still wait to instantiate the Generator. That way, copies of a random variable object will have the same Generator whether the user specifies one or not and regardless of when sample is called. Assuming that is the most natural behavior, does that sound like a good solution, and if so, where should that seed come from? (System time? Some entropy pool, if that's fast?)

but always taking in rng= argument in the (one?) method that needs it.

I think that is the only method that needs it right now. In the RFC it could be specified in both places (attribute and method argument), but IIUC it was recommended to allow only one. I agree that there are some advantages to removing the attribute and only specifying as a method argument. We avoid this issue with copies, and if there is no attribute, then there is no concern about X.rng not always being a Generator to resolve. But personally, I landed on the side of making it an attribute. I tend to think of a Normal() object as a random variable, and conceptually I'd prefer not to have to pass a Generator in order to observe a random variable.
Do you think there is a solution in which the seed is determined when Normal is instantiated? Or perhaps define one of the magic methods that is called upon serialization to resolve the rng?

I tend to think of a Normal() object as a random variable, and conceptually I'd prefer not to have to pass a Generator to an object that represents a random variable in order to observe the random variable.

If we treat a real-valued random variable as a function that maps a sample in a sample space to a real number, then it seems natural to pass an rng in order to “observe” the value of the random variable; the rng serves to produce a sample from the sample space (the sample could be scalar valued or vector valued).
I suppose that when provided two rngs that produce the same sequence of numbers, two Normal objects (with possibilities different loc/scale) would return perfectly correlated samples. This property would be easily understandable by taking the “random-variable-is-a-function” approach.

I see ContinuousDistributions as, well, distributions and not random variables, per se. Is dist.sample(100) sampling 100 realizations of a single RV or a realization each from 100 RVs described the same distribution? It depends on what the user does with the results (it can even be mixed in the case of dist.sample((m, n)) where one usually intends to get m realizations each of n RVs). The API is (rightfully) agnostic because all of those variants arise, so I think it makes more sense to think of ContinuousDistribution as modeling distributions, if one wants to think in terms of what each thing is.
But I think it is usually more dispositive to think of what users want to do with each of these things. And when I look at the use cases for sampling from distributions, I see more times where I want to make the decision about the parameters of the distribution separately from when I want to give it the Generator I want it to sample from. In a simulation, I want to say that any given Widget's height follows the same Normal(10, 3) distribution, but have them evaluate their random samples in different processes. My Generator handling follows how I divide up the work among processes, not how I model the Widgets. By putting the rng choice in the ContinuousDistribution constructor (whether actual instantiation is delayed or not), I am forced to make the decision in the modeling phase, which is mixing concerns. I admit that it is intuitively compelling to have the distribution own the Generator such that it is a complete object that you pass around by itself, which is why the old infrastructure had it, but the years of actual use indicate that it creates more problems than it actually solves.

Were there other known, unrelated problems with making the Generator part of the object?
If not, would determining the seed when Normal is instantiated resolve the issue, and if so, is there an inexpensive way to get a seed upon instantiation (System time? Some entropy pool, if that's fast?)?

Reassigning the .rng attribute creates more problems than it solves. In the middle of a function where I'm passed an opaque distribution instance, I have no idea what it has been shared with and whether or not it's safe to punch in a new Generator into its .rng attribute just to call .sample() with the Generator that I have.
Carrying around a Generator instance creates these problems and compromises that just don't have to exist (and no, I don't think there is a way around gh-19524). I do think that it's a pretty hard requirement, in my experience, for the .sample() method to be allowed to be passed a Generator as an argument. And I do agree that there to be only one way to do it (the old infrastructure made a mistake to allow both), but the one way should be the method argument.

the one way should be the method argument.

I tend to agree with @rkern on this one. It seems the cleanest way and avoids mistakes of users. For me that weighs heavier than being able to think of a scipy.stats object as a rv.

We have a proposal addressing the last comments coming soon. It should address all concerns 😃 We are just waiting for another round of review from the stats team before updating here.

Where is this discussion taking place?

Where is this discussion taking place?

In online meetings as before.

And where are the public meeting minutes? We don't develop scipy in private.

And where are the public meeting minutes? We don't develop scipy in private.

We have been communicating everything which was discussed during all these calls, there is nothing hidden that we don't say, we just don't show you the debug we do between us.
We started this initiative 2 years ago, a few people responded to all the call for contributions we made and we are discussing things live as a group because this is how this group wants to work. This includes all of the most active stats code contributors. We even made a one hour call with someone who commented on the original issue and reached out to us.
You never expressed interest in joining this group besides leaving a few comments here.

Before I get any more accusations of misconduct.
Meeting notes are here https://hackmd.io/@tupui/scipy-distribution we had 2 other meetings recently but we did not write anything as we just went through the reviews together (including yours) and distributed work/review between us.
Also we did not take note when we physically met at the Summits and Confs... And again, see all the emails, post on the forum, issues and we also made several calls for action during community calls.

I would love to see links to those calls for participation. I certainly missed them, or at least missed that they entailed discussions that I wouldn't be able to opt into as they are convened. I did not miss when you've waved interested parties off from taking a look at what you were working on, saying that you were "not ready for receiving external comments nor review of our design and implementation". You will have to forgive me for coming to the conclusion that there was a division between "internal" deliberations among this "stats" team with the rest of the scipy team being "external".
There's a lot to be gained by having high-bandwidth online voice meetings to discuss things among a more focused group of attendees, but like the NumPy Documentation Team, we announce each one on the mailing list/Discourse, keep the attendance open to the whole development team, and report the minutes of each meeting as they happen. I can also understand why this subgroup may want to do this work without that amount of immediate transparency, with very good intentions, but that's not the way SciPy develops.

What are you even saying? I've never seen you in any single meeting, nor at any event. Even when we had our argument about sensitivity analysis, you dismissed my proposal for a chat arguing on my poor communication skills.
Now tell me it would have been different this time?
As for the proof, I have better things to do. Though, how come random people we never heard off did reach out and could participate in this effort, and not you. This is an issue on you. You don't want to work with me (not dragging anyone in this), you made it pretty darn clear all these years by the way you constantly keep putting me down and discrediting me. Here as well, there are plenty of evidence online. And for transparency, I raised this a few times to Ralf.

So yeah you are right saying that, I, personally don't want to have anything to do with you. I still take your comments in regardless. But quite frankly, I don't know why I even listen to you went you talk about things like what is best for ease of maintainability, because you don't really participate in this effort. No worries though because soon you can say the same of me.

@tupui, I don't think @rkern has been communicating in bad faith and his feedback should be welcome.  He has a high level of relevant expertise, and even not accounting for his long history with NumPy and SciPy, I'd be inclined to hear him out on expertise alone, just as I would for someone who we knew was a professor in a relevant discipline or something like that.
Trying to remain a neutral observer, I don't think it was his intention to offend you or talk down to you and it would surprise me if he didn't respect your contributions. I hope we can all take a step back and cool off before resuming the discussion. Going forward, I think it would make sense for us to treat this as a learning experience to draw lessons from for how synchronous meetups can be better handled in the future.
I don't think there has to be any lasting harm here; let's try to get the discussion back on track. The points of technical disagreement are pretty minor in the scheme of things, and I think everyone agrees that on the whole that the new infrastructure is looking pretty good. I hope to weigh in on the technical discussion here within the next few days.

There's a lot to unpack in the last messages about decision making and process, but before doing that I think it's important to explicitly remind everyone that we have a Code of Conduct. @tupui the content of your last message is far over the line, which I'm sure you knew when writing it. This sentence from the specific guidelines seems particularly apt: "We may all experience some frustration from time to time, but we do not allow frustration to turn into a personal attack."
There's much more to say here and I'm thinking about what and how to say it, but for the health of the community and contributors (both long-time and new) reading this, I can't not address this explicitly. Please calm down and refrain from doing this again.

One question I have for everyone is if it would be possible to punt on the random variable question? There hasn't been much implemented yet along those lines. If we do the simple thing of having the rng just be passed to sample now, I think it should be possible in the future to either update distributions to also function as random variables in a backwards compatible way, or to create a separate random variable class that could be used in a random variable API.

Very much +1 on this. Let's pare this down to an absolutely minimal MWE, remove everything still under discussion, merge it, and continue deliberating on the mailing list or elsewhere.

It seems to me there might not be a fundamental difference between a probability distribution and a random variable if we employ the (measure-theoretic) definition that a random variable is merely a function that maps a sample space (equipped with some measure P) to a value space. For univariate real-valued random variables, it is convenient to simply take the sample space to be the set of real numbers. Then the distribution is just the measure P.
With this thought model, sampling a random variable is indeed picking a value from the underlying sample space and observing its mapped value in the value space, in such a way that if one picks many times the empirical frequency matches the probability measure.
This thought model lends itself more naturally to passing an rng as an argument to sample, where the rng would serve to pick a number with uniform probability and the random variable would transform the outcome according to its own distribution. Of course, the random variable may also consume multiple values from the rng; there is no requirement that the sample space has to be “univariate”.
I think the ability to do transformations on random variables (such as addition) is a very cool idea. But I think it might be quite difficult if we allow the random variables to be dependent. (Dependence is only relevant for random variable and not for probability distribution.) Even with the measure theoretic construction, I have no clue how to define dependent random variables in code in a general fashion.

The way I imagine this working is that the rng that can be stored in an attribute specifies a default which is used if no rng is passed into sample. Passing an rng into sample overrides this default. (If one passes an rng into sample for a derived distribution, perhaps we could use this rng to generate seeds for constructing new rngs that are passed into the sample method of each "atomic" distribution that went into the construction of the derived distribution.) If this behavior is well documented, and it is clearly explained when passing an rng to sample should be preferred over storing rngs as attributes and vice versa, I think this arrangement could possibly be acceptable, although I'm not confident in this judgment, and would like to hear more opinions.

This is more or less what the current infrastructure does. It has bugs that will be exacerbated by using Generator instead of RandomState (no cheap global instance to default to) as well as having a lot more instances (versus the global instances in the old infrastructure).

My understanding is that having more fine grained control of the randomness when sampling from these derived distributions is what motivated @mdhaber to allow each "atomic" distribution to carry its own random state.

I'm not sure why you would want to do that. Generally, you'll want to use one PRNG instance passed to each of them to use serially. It's one of those rare times in a programmer's life that there really aren't tradeoffs: it's the safest, most performant, and easiest-to-code option. Finally, you get to Pick Three. You want separate PRNG states for things like concurrency or time-travel (which is really just a form of concurrency) and avoid them otherwise.
There is nothing about treating an object as a random variable that requires it to bind to a PRNG upon instantiation. It's not the thing that turns a mere distribution object into a random variable object. And even for full-fledged RV objects (with the fancy composition functionality), you still want to bind to PRNG states late because the choice for what state to use happens best at the time that you sample from them and not when you instantiate them. It's just an orthogonal coding decision that should be reflected by an orthogonal API.

If we do the simple thing of having the rng just be passed to sample now, I think it should be possible in the future to either update distributions to also function as random variables in a backwards compatible way, or to create a separate random variable class that could be used in a random variable API.

Yes, that would still be possible, though I expect that after experience of using the simple API, you won't find it necessary to add to it.

just a use case to emphasize @rkern 's point of separating initialization from random number generation
Many models in statsmodels have a get_distribution method that generates a frozen distribution instance based on predicted parameters.
The user gets the frozen distribution instance and then can use any method defined for the distributions.
statsmodels does not know what the user does with the instance and whether or when rvs would be called, and it's not the point of statsmodels to force a random state on the user.

This is more or less what the current infrastructure does. It has bugs that will be exacerbated by using Generator instead of RandomState (no cheap global instance to default to) as well as having a lot more instances (versus the global instances in the old infrastructure).

I see, I hadn't put much thought into my suggestion. I agree with what you're saying. Ignoring for a moment the questions of why someone would want to have instances carry state, or concerns about blending aspects of the API which may better be treated as orthogonal; could the issues you've pointed out in the passage I've quoted be resolved by only allowing users to call sample without passing an rng if the rng attribute has been set?

I'm not sure why you would want to do that. Generally, you'll want to use one PRNG instance passed to each of them to use serially. It's one of those rare times in a programmer's life that there really aren't tradeoffs: it's the safest, most performant, and easiest-to-code option. Finally, you get to Pick Three. You want separate PRNG states for things like concurrency or time-travel (which is really just a form of concurrency) and avoid them otherwise.

I'm honestly not sure yet either. My understanding is that I've been asked to advocate for the current proposal because I have no attachment to it, and can take a more neutral point of view, focusing only on the technical merits. I hope this discussion can lead to mutual understanding. If the problems @mdhaber and @tupui are trying to solve can be solved elegantly without having instances hold on to state, then I think they would accept that after seeing it demonstrated.

There is nothing about treating an object as a random variable that requires it to bind to a PRNG upon instantiation. It's not the thing that turns a mere distribution object into a random variable object. And even for full-fledged RV objects (with the fancy composition functionality), you still want to bind to PRNG states late because the choice for what state to use happens best at the time that you sample from them and not when you instantiate them. It's just an orthogonal coding decision that should be reflected by an orthogonal API.

OK, I see where you're coming from. Let's work through some specific examples. I think this will help everyone get on the same page.
First, suppose we want to set up a mixture distribution. Here's a mixture of two beta's which is both 0 and 1 inflated. (This could potentially be expressed even more concisely as a dot product of a one hot categorical random variable and an array of the three mixture components). Let's look at the late binding approach.

X = Binomial(n=1, p=0.5)
U = Beta(a=3, b=2)
V = Beta(a=2, b=3)

M = Mixture([X, U, V], weights=[1/3, 1/3, 1/3])

by  "Generally, you'll want to use one PRNG instance passed to each of them to use serially".,  you're saying we should pass a single rng to M.sample
`data = M.sample(rng, shape=(100, )

We could then use this rng for each needed sample in turn. Here's a naive illustration which isn't how this would actually be implemented
# generate indicators of which component is chosen
idx = Categorical(p=[1/3, 1/3, 1/3]).sample(rng, shape=(100, ))
# generate samples for binomial component
 c1 = X.sample(rng, shape=(100, ))
# generate samples for first beta component
 c2 = U.sample(rng, shape=(100, ))
# generate samples for second beta component
 c3 = V.sample(rng, shape=(100, ))
return np.choose(idx, [c1, c2, c3])

Because the rng is used serially, there's no concern about correlated samples. That's pretty slick, and it avoids the need to pass an rng to Mixture as well. The early binding approach looks like

X = Binomial(n=1, p=0.5, rng=rng1)
U = Beta(a=3, b=2, rng=rng2)
V = Beta(a=2, b=3, rng=rng3)

M = Mixture([X, U, V], weights=[1/3, 1/3, 1/3], rng=rng4)
M.sample(shape=(100, ))

and "internally"
# generate indicators of which component is chosen
idx = Categorical(p=[1/3, 1/3, 1/3], rng=rng4).sample(shape=(100, ))
# generate samples for binomial component
 c1 = X.sample(shape=(100, ))
# generate samples for first beta component
 c2 = U.sample(shape=(100, ))
# generate samples for second beta component
 c3 = V.sample(shape=(100, ))
return np.choose(idx, [c1, c2, c3])

Provided users don't actually care about being able to control exactly what random state is being used for each of the internal atomic distributions used in the mixture, then I have to admit that the late binding looks better to me from a user perspective.
Another example:

X = Normal(mu=0, std=1)
Y = Normal(mu=0, std=1)
Z = X*Y/(1 + abs(X) + abs(Y))

Z.sample(rng, shape=(100, ))

what would happen here is that Z would maintain a symbolic expression (u0 * u1 / (1 + abs(u0) + abs(u1)) and the samples associated to u0 and u1 would be generated serially using rng (this should also answer your question @fancidev about the example X + X) (also SymPy has a random variable API, which makes sense given the connection between symbolic expressions and being able to support random variable operations, my understanding is that SciPy's would distinguish itself by relying more heavily on numerical computation).
Late binding seems to work fine here too, but one thing to consider is that it seems like it makes it easier for implementation details to impact randomness, so that if something changes the order in which unique symbols are taken when generating internal samples, the values generated by the outer call to sample with the same Generator could change from one SciPy version to the next. That seems like it could be annoying, but perhaps is not that serious of an issue, and we could just settle on a canonical set of rules for the order in which samples would be taken.
@mdhaber and @tupui, I think @rkern is right that we could do all of the random variable stuff without having to have random variable like things hold onto random state. It might require more consideration when implementing things internally in some cases, (particularly in terms of specifying the order in which samples from atomic distributions are taken from within compound distributions, and keeping this consistent version to version), but I think it's viable and the benefits it offers are compelling.

Yes, that would still be possible, though I expect that after experience of using the simple API, you won't find it necessary to add to it.

Do you mean not adding to it in only in terms of how random state is controlled for sampling? In any case, I still like @mdhaber's idea of allowing for random variable type operations on instantiated distributions, would like to see things like that land, and to defer decisions on how that should look and work. If possible, I still think it would be good to defer the decision on instances holding random state as well, since @mdhaber and @tupui have put a lot of thought and work into a proposal which is very solid on the whole and offers considerable improvements over the existing infrastructure. I could not consider the matter settled unless they agreed, and I think the benefits of getting this PR in justify merging it before we form a consensus.

My main concern about passing a RNG to a method was that in the future we could have other methods in need of RNG and then have the need to pass it to every call of methods. I think we can find ways to make both API works and if the consensus is to pass RNG to methods, by all means let's do that.

For code that doesn’t care about reproducibility, it doesn’t have to pass an rng, and a method could simply use the “default” rng.
A possible solution to avoid passing rng everywhere (for code conciseness) while achieving reproducibility could be to activate a particular rng as the (thread-local) “default” using a context manager. Imagine code like the following:
with set_active_rng(seed=123):
    x = X.sample(shape=100)

where sample() looks like
def sample(self, shape, rng=None):
    if rng is None:
        rng = get_active_rng()

So I guess not much functionality would be lost by not attaching a random state to a random variable instance.

could the issues you've pointed out in the passage I've quoted be resolved by only allowing users to call sample without passing an rng if the rng attribute has been set?

No, they are problems with holding onto an rng attribute regardless of what else you do. There are many use cases where we want to do certain operations with distribution/RV state (like passing by reference or cloning) where we'd make a different choice for PRNG state. Consequently, encapsulating the two together in one object creates these problems.

Late binding seems to work fine for examples like this too, but one thing to consider is that it seems like it makes it easier for implementation details to impact randomness, so that if something changes the order in which unique symbols are taken when generating internal samples, the values generated by the outer call to sample with the same Generator could change from one SciPy version to the next.

Intrinsic to any use of pseudorandomness, I'm afraid; I don't think early-/late-binding makes much of a difference. We make no guarantees about version-to-version stability in exact PRNG samples currently. This would be no different. In non-trivial downstream code, even other non-PRNG-related changes to scipy (e.g. an improvement to a function in scipy.linalg) would affect the fine details of the simulation too, so it's not worth much extra effort in the PRNG-related parts of scipy.

Do you mean not adding to it in only in terms of how random state is controlled for sampling?

Yes.

My main concern about passing a RNG to a method was that in the future we could have other methods in need of RNG and then have the need to pass it to every call of methods.

If that's the main concern, then I think that possible convenience is firmly outweighed by the problems that arise from early binding that we've documented here.

For code that doesn’t care about reproducibility, it doesn’t have to pass an rng, and a method could simply use the “default” rng.

Right, the default of rng=None is always permitted. We use the standard pattern of using rng = np.random.default_rng(rng) to coerce the input, just like is done here in the early-binding version. We don't have a global PRNG anymore (from our experience with RandomState, it causes too many problems; thread-locality only solves some of them), but a new one is created afresh with OS entropy. We don't need to invent new machinery.
def sample(self, size=None, rng=None):
    rng = np.random.default_rng(rng)
    ...

I'd like to add some arguments and hope they are appreciated.
How to pass rng?
For me, the worst thing would be to have 2 ways of passing rng at the same time, like as class attribute (early-binding) and as parameter of a method (.sample(rng)). This creates confusion of which rng is eventually used when. As others have expressed, I would stronlgy recommend to start with only one way to pass rng.
In scikit-learn (historically gown), we use the attribute/early-binding and instantiate class objects with rng attributes. This creates a lot of problems like when cloning our class objects and precise control of rng, which is important for proper and sound statistical results, see https://github.com/scikit-learn/scikit-learn/issues/16988, https://github.com/scikit-learn/scikit-learn/issues/29315 and https://github.com/scikit-learn/enhancement_proposals/pull/88. We even seem kind of stuck in that loophole (or nobody really dares to tackle it).
Random Variables
Here again, I would recommend to start small and not implement rv functionality at the beginning. In addition, there already are libraries that do that, e.g. pymc / pytensor RandomVariable. So it might at least make sense to analyse what the added benefit of having rvs in scipy is and to get in touch with those other libraries.
As to rng and rvs, what methods other than sample do we envision to be called on objects like X + Y that require an rng? Moments, cdfs and others do not need that. If I don't need it, why should I pass it?
It is also very interesting to read how pytensor uses and (not) modifies rng in random variables, see pytensor tutorial.

I think I replied to all open inline discussions on my initial review comments. There was still the main reply from @mdhaber (https://github.com/scipy/scipy/pull/21050#issuecomment-2288443708, thank you Matt) left.
Re docs: sounds good indeed to avoid distribution-specific html pages.

There are multiple possibilities for how moments are computed. The cache is the first step in the current decision tree, so method='cache' could just be implicit. But all the other method options can be specified by the user, so I didn't take steps to prevent the user from specifying this explicitly.

I think by design caching should aim to be 100% correct and be a performance optimization. In rare cases a "clear cache" method is needed in a design, but this should not be the case here. Given that you indicate that it's possible here to keep it implicit, I'd prefer removing 'cache' as an explicit option here and changing the signature to method=None.

Yes, this is going to be array API compatible, and the array writes "array", so I went with that. BTW, is that going to be the standard way of documenting "object that conforms to Python array API standard"?

Until there's a proper static typing Protocol, we have to keep using array_like is lists/scalars/etc are accepted; without that yes I'd go with array (it's hard to come up with anything better in a docstring type specifier; we need static typing implemented for more precisely expressing what is and isn't accepted).

As for rejecting lists and Python scalars, I guess I haven't been convinced of the merits of that yet. ...
If that is a complaint, then I would think that rejecting 1 as the argument of pdf and requiring np.asarray(1.) would be more unpopular, since it would be required for every shape parameter and argument.

No, that's mixing two different things. Shape parameters aren't arrays, and most other arguments to distribution methods aren't either. My comment is specifically about array_like inputs like x that now get treated with np.asarray(x).
I'm taking it as axiomatic by now that array_like+asarray everywhere is a mistake, as evidenced by what all other array libraries do and all the problems we have (both performance impact and semantics) with coercion, retaining subclasses, etc. No need to rediscuss that here imho, we won't be saying anything new anymore.
Please take the comment or leave it - it was just me pointing out an opportunity to improve because this is a new design.

I think we need a better solution for scaling property-based tests: on CI we run really fast versions, but slower versions that use Hypothesis run on a schedule to prevent regressions (that are probably not platform specific) from getting released.

+1 for this. I suggest opening a new issue to keep track of it. With something like a new pytest marker and a single separate CI job that runs this kind of test we should be able to do this. It's quite analogous to slow asv benchmarks and some of the xslow tests.

I saw that you use keyword-only parameters when appropriate, that'll really help a lot for those of us that are crazy enough to stub scipy, so thanks for that 😇!
In the same way, it could also help to make some parameters positional-only (e.g. x in pdf or n in ), which would avoid having to annotate many methods in case a subclass overrides a method and uses different names (e.g. rv_continuous.cdf(x) and rv_distcrete.cdf(k) cannot be extracted into a type-only mixin, even though their signatures are are otherwise identical). I'm not sure if it's the case right now, but it might be in the future.

In the same way, it could also help to make some parameters positional-only

I think I can do that if I don't see objections. Probably better to start with it like that, because it's much easier to add the opportunity for keyword use than to take it away.

@steppi I made a copy of this branch at https://github.com/mdhaber/scipy/tree/ContinuousDistribution_backup. Before making adustments to sample I am going to squash/rebase on main and force push. Please confirm.

@steppi I made a copy of this branch at https://github.com/mdhaber/scipy/tree/ContinuousDistribution_backup. Before making adustments to sample I am going to squash/rebase on main and force push. Please confirm.

Sounds good.

Thanks @lorentzenchr for looking this over. I know it's a huge diff and not easy to go through.
Of these suggestions, I think @mdhaber should remove the line "Instances of the class represent a random variable" and fix the docstring for _log_real_standardize. I'll leave the others to his discretion.

In scikit-learn, we tackled such huge changes by merging smaller PRs into a feature branch which was than merged (without firther review) to main once all functionality was included.

That sounds like a good process that would be good to consider the next time a plan to work on such a large change comes up.

The Windows MSVC failure is unrelated, and since this PR doesn't add or touch any compiled code, there shouldn't be any MSVC specific failures, so this isn't a significant gap in test coverage.
I'm merging. Thanks @mdhaber, CZI for funding, and everyone else who was involved in this undertaking!

Thanks @mdhaber, and to the reviewers for their thoughtful suggestions. Glad to see this go in!


How to start an AAS server in development-v2

I've tried to start a AAS server on the development-v2 branch, as I need to aim for as much AAS Spec. v3 support as possible.
Porting an v1 application hasn't proofed to difficult, however I can't seem to find out how I'm supposed to start the AAS Server component. Registry still exists.
The corresponding files were deleted in #6 and since as far as I can tell no substitute has been added.
How do I start an AAS server on the develpoment-v2 branch?

The development-v2 branch is only providing the content for the registry in a preview stage since we're planning to restructure the SDK and Components in the process of preparing the v2 release.
Thus, right now there no AAS Server provided for v2. However, feel free to use the AAS Server of v1 with the Registry of v2. Please note that this may not work out of the box.
I will update this ticket as soon as the AAS Server is available in v2.

We have started the work on the AAS Repository and Submodel Repository in the following branch:
https://github.com/eclipse-basyx/basyx-java-components/tree/development-v2


What is the MIT license? Is there any piece of code to do with sending our data /Information for MIT?

Hi, our client wants to know the security aspects of MIT License and how it will affect their environment? Could it be that the apps have a piece of code that would actually send information to MIT on the usage? It would explain the need to have multitenant setup here.
Please explain it, in the documentation it's not mentioned clearly about MIT License for this and who is responsible in case of any data breach.

Hi @Rajatextoutokumpu ,
Thanks for raising the query. Please give us sometime, we will get back to you with proper response.

Hi @gsv022 , any update on this?

Hi @gsv022 , still no response on this issue. Please clarify asap. Why its taking so much time ?

@Rajatextoutokumpu , there is no such piece of code that sends data to MIT. The purpose of having multi-tenant at the time of implementation due to the below reason.

As per the deployment guide, author and user app should be kept as Multiple Org where as Graph app should be kept as My Organization.
Bot Framework SDK's works usually on the multi-tenant app type only. Otherwise the functionality breaks for sure. Here is the reference.

We have taken care of security risks at various levels like at the code level and at the resource level by having proper authentication and authorization.
There is a parameter called-"AuthorizedSenderUPN" within App service, only who have their UPN's within that parameter will have access to the application.
We have key vault as one of the resources to mask the app secrets and storage account connections etc.,
There is a parameter called-"AuthorizedDeleteUPN" within App service, only who have their UPN's within this parameter will have access to the deletion of sent message records.


TypeError: e.forEach is not a function

Have a problem. This is my code:

and this is my error:

why? thanks you

there is only one object and not an array.
try adding Array.from(YOURFDIVHERE);

@EdDevs2503 Thanks for pointing it out. @AmitTurner's solution works fine but I've refactored the child strategy on v1.1.0 and it shouldn't give you the error now.


Request for text deduplication feature

Feature request
It would be great if there would be support for high performance, highly scalable text deduplication algorithms as part of the datasets library.
Motivation
Motivated by this blog post https://huggingface.co/blog/dedup and this library https://github.com/google-research/deduplicate-text-datasets, but slightly frustrated by how its not very easy to work with these tools I am proposing this feature.
Your contribution
I would be happy to contribute to the development effort of this feature. would love to collaborate with others in the development effort.

The "exact match" deduplication will be possible when we resolve https://github.com/huggingface/datasets/issues/2514 (first, https://github.com/apache/arrow/issues/30950 needs to be addressed on the Arrow side). In the meantime, you can use Polars or DuckDB (e.g., via datasets-sql).
Fuzzy deduplication is out-of-scope for now (splink is probably the best tool for it).

This library can be an intermediate solution : https://github.com/ChenghaoMou/text-dedup/tree/main

I have been using polars to remove duplicates but it would be nice to do it directly in pyarrow.
For example,

Read dataset with pyarrow
Use scan_pyarrow_dataset() with Polars to create a LazyFrame
Use sort and unique to remove duplicates based on a subset of columns
Convert to table and save data with ds.write_dataset()

There are times where that workflow makes perfect sense because I do additional transformations with Polars. Most of the time I am simply just reading dataset A and writing dataset B without duplicates though, and I wish I could use a pyarrow scanner or table directly.

Hi
see this new release of datarove datatrove
DataTrove is a library to process, filter and deduplicate text data at a very large scale. It provides a set of prebuilt commonly used processing blocks with a framework to easily add custom functionality


Restricted acces for files directory

What this PR does / Why we need it
It protects the files directory so only organisers and hackers can see their own resumes (organisers can check everyone's resumes and hackers only theirs). It also adds the client_max_body_size property on the nginx configuration of the readme.
Some questions

[X] I have read the contributing guidelines
[X] I abide by this repository Code of Conduct
[X] I understand that my PR won't be merged until Travis gives a "green light"

@oriolclosa pls run flake8 from the virtualenv instead of this

Iep, you are right, sorry.

All checks passed, merging.

Also: *please


[Payment Due 09/11] [$250] Expense - Missing green unread line after marking first expense as unread in expense report

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.10-2
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail: n/a
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:

Go to staging.new.expensify.com
Go to DM.
Submit two expenses to the user.
Click on the expense preview to go to expense report.
Right click on the first expense preview.
Select Mark as unread.

Expected Result:
The line separator below "Total" will change to a green line with "New" label on the right.
Actual Result:
The line separator below "Total" disappears after marking the first expense as unread.
There is no green unread line.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/fab12199-180b-42f6-ad99-bcc654454ad1

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~012c73811fb416526a
Upwork Job ID:<PHONE_NUMBER>806434770
Last Price Increase: 2024-07-29
Automatic offers:

dominictb | Contributor | 103407584

Issue OwnerCurrent Issue Owner: @sakluger

@nyomanjyotisa thanks for your proposal! Can you also help us figure out what PR may have caused this bug?

Thanks for all the proposals so far. Can anyone identify what PR caused the regression though? It seems like all of suggested code changes aren't in code that changed recently.

Demoting this because:

its one of last blockers
its edge case where user needs to mark the first IOU action as unread
the chat shows as unread in the LHN so the user would not miss the chat as unread

@dominictb @daledah @nyomanjyotisa With any deploy blocker, always include the PR that introduced the regression

@allroundexperts mind reviewing this one? I'd also love to get to the bottom of how this happened, as this must have only happened recently 🤔

On it today.

Melv I'll be reviewing this today.

@dominictb Can you please post a video of your solution in action? I can't seem to make it work by applying your changes.

Thanks for the proposals everyone!
@dominictb's proposal looks better to me as it utilises an already used piece of code in another component.
🎀 👀 🎀 C+ reviewed

Oof yep, this probably got merged & deployed when our automation was broken 🙃

Sorry about that!
Summarizing payment on this issue:
Contributor: @dominictb $250, paid via Upwork
Contributor+: @allroundexperts $250, please request on Newdot

Pasting the BZ checklist here for convenience.
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
[@allroundexperts] The PR that introduced the bug has been identified. Link to the PR:
[@allroundexperts] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[@allroundexperts] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[@allroundexperts] Determine if we should create a regression test for this bug.
[@allroundexperts] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Checklist

I wasn't able to pinpoint the exact PR that caused this issue. It seems to me that this is something that was like this when it was first implemented.
N/A
N/A
I think a regression test would be helpful.

Regression test

Open the app and go to any direct message
Submit two expenses to the user
Click on the expense preview to go to expense report
Right click on the first expense preview
Select Mark as unread.

Verify that the line separator below "Total" will change to a green line with "New" label on the right.
Do we 👍 or 👎 ?

Looks good to me. Thanks!

$250 approved for @allroundexperts


Added separator support

Added support for separator and few tests. After you have now have ability to generate different type of slugs.

Coverage remained the same at 92.71% when pulling a8f02799dfbd71e046670cad95b8be2a35f07102 on abhimanyusharma003:master into 58d1ef4987b7b32794d1b006b371d761c2225912 on brandonwamboldt:master.

Thanks! I'm going to make a slight change to this to allow the old parameter ordering as well, and throw E_USER_DEPRECATED to maintain semvar compliance a little.

Loving the changes, keep them up!

Also, please take a look at my change: https://github.com/brandonwamboldt/utilphp/commit/445156d9d5d758cda2aff8bc8c8043e9bf8bbdcc
If you're going to change something like parameter ordering and break backwards compatability, try to do it like that next time! People can upset when function signatures randomly change. Thanks :smile:

You are very right, I will make sure this thing from the next time.
We can also tag repo for new release when ever there is a function parameters change, this way it might/will not break older codes ( If they are using proper version in there composer.json file ). :)


Move chat agent prompt formatting instructions into human message

Move chat agent prompt formatting instructions into human message
Partially addresses #5353 around chat agent reliability.
OpenAI's 3.5 turbo model is documented as "not pay[ing] strong attention to the system message, and therefore important instructions are often better placed in a user message.". Could use a bit of testing, opening for discussion at the moment.
Who can review?
Community members can review the PR once tests pass. Tag maintainers/contributors who might be interested:
@vowelparrot
@agola11

I don't think we should be changing the entire implementation of chat agent just bc one model has something in their docs. And also, we already stuff everything into human message for the vanilla ZeroShotAgent

Sounds good, and as discussed there are other ways to make this more reliable.

Sounds good, and as discussed there are other ways to make this more reliable.

@jacoblee93 Could you please point me to the discussions you are referring to? Struggling with the same issue with the latest Structured agent and looking for workarounds. I'm expierencing the issue with both gpt-3.5 and gpt-4 (as well as with their static model versions): the LLM doesn't follow the required JSON output format described in System prompt and outputs the action to apply as raw text sentence which is not expected by the agent and it finishes.


x16-emulator: 44 -> 46

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/x16-emulator/versions.
meta.description for x16-emulator is: The official emulator of CommanderX16 8-bit computer
meta.homepage for x16-emulator is: https://cx16forum.com/
meta.changelog for x16-emulator is: https://github.com/X16Community/x16-emulator/blob/r46/RELEASES.md
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 46 with grep in /nix/store/x5yfk4cgz4dz9sy5382c9x9v63869jcf-x16-emulator-46
found 46 in filename of file in /nix/store/x5yfk4cgz4dz9sy5382c9x9v63869jcf-x16-emulator-46

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
x16-emulator
x16-run

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/x5yfk4cgz4dz9sy5382c9x9v63869jcf-x16-emulator-46 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/37d0689f152bb29d68ce9800b4f49a3cfa9e625b#x16-emulator

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/x5yfk4cgz4dz9sy5382c9x9v63869jcf-x16-emulator-46
ls -la /nix/store/x5yfk4cgz4dz9sy5382c9x9v63869jcf-x16-emulator-46/bin

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

1 package built:

x16-emulator

Maintainer pings
cc @AndersonTorres for testing.

Oh no! No! God please no!
This is the third time ryanbot tries to update the package I am updating!


Add ms

(/・・)ノ" a sorta of small library for converting various time formats to milliseconds

There's a problem with our CIs, they are stuck.
This happens from time to time, and the only cure so far has been closing a PR and opening another one. Please open another pull request, maybe it will be more luck next time.


nxstyle:  header files that are not header files.

There is an issue with the graphics/nxglib/nxglib_fillrun.h header file (and probably others).
It is not really a header file. It is a "template" of a C file that is included with some definitions to make a complete C file. So it will NOT pass the tests for a header file.
See:
graphics/nxglib/lcd/nxglib_fillrectangle.c
graphics/nxglib/lcd/nxglib_filltrapezoid.c
It is not clear how this case should be handled. I believe we either have change the file name extension (but then it won't be checked at all) or change the extension to .c (which is misleading too).
Reference:  PR  #478

Even if I state the obvious:
Name them .inc (or similar) and have nxstyle treat them as c file.
Should be a one liner...

Even if I state the obvious:
Name them .inc (or similar) and have nxstyle treat them as c file.
Should be a one liner...

No, that was not obvious to me, but sounds like a good idea.  The extension .inc is atuallly used by some toolchains (the ZiLOG tools, it is an assembly language header file).


No app in ms store

Installed the extension (windows) and clicked the project than clicked open via the ms store. there is no zeplin app in the store and kept beeing asked if I want to download the app from it. tried reinstalling the extension... didn't help.

@Guyr989 That's is windows' default dialog for not-installed apps. We have no control over it.
You can download windows application here.
If don't want to use the windows app, you can still use the web app on https://app.zeplin.io/
Additionally, you can open Settings in VS Code and type "Zeplin: Preferred Application Type" and select "Web" option. After doing that when you click "Open in Zeplin" button (or double click) on the sidebar the web application will open.


Why do row normalization instead of column normalization？

When we normalized features, it seemed that the columns were features and the rows were samples, so why not normalize the columns?
Could someone give me some suggestions?

This depends on how you arrange the data. e.g. data matrix D, D could be arranged as [# of data, data dimension], and D^T is [data dimension, # of data]. So, some do row normalization, and some use column normalization.

I was wondering the same thing when I first studied graph neural networks. I believe this is mainly due to the dataset's inputs. Cora uses one-hot bag-of-words as input features. Therefore the input features are very sparse and only have 1 and 0. The first linear layer will effectively act like an embedding layer nn.Embedding(), learn an embedding vector for each word in the one-hot input features. Without row normalization, effectively it is a sum of embeddings, thus the magnitude (after the first layer) can vary widely among the samples. With row normalization, effectively it is an average of embeddings, therefore preserving the magnitude among the samples. I have tried training a GCN model on Cora without row-normalization, and it performs poorly.
Hope it helps. I do realize this kind of thing is rarely mentioned anywhere, so I hope this is a logical explanation.


[marginfi v2 UI & marginfi landing page] Unify shared components into mrgn-common

The marginfi landing page is a stripped down fork of the marginfi v2 UI and reuses many components that can probably be consolidated into the mrgn-common library.
My hunch is that some components will be particularly useful to reuse across apps - like the Navbar component, e.g.:

marginfi-v2-ui implementation
marginfi-landing-page implementation

It'd be helpful to start consolidating components to improve reusability

Hey I can help with this @edgarpavlovsky


feat(graphql): add support for DocumentNode and TypedDocumentNode

This PR adds support DocumentNode and TypedDocumentNode types as arguments for the GraphQL query. With this change, it's now possible to use graphql primitive with the graphql-code-generator, which improves the TypeScript story for medium and large sized projects.
This PR adds dependencies on the DocumentNode type from graphql package, TypedDocumentNode from @graphql-typed-document-node/core package (this type is just a thin wrapper around DocumentNode from graphql) and the print function from the graphql package (which is the only way to turn DocumentNode and TypedDocumentNode types into a string suitable for an API request).
This PR also adds an example usage of such type inside the dev directory (adds a pnpm gqlgen command for generating the TypedDocumentNode types and uses generated type in one the two queries that already existed).

I guess I didn't add changeset properly?

@thetarnav I fixed most of the issues, except this one:
export const createGraphQLClient =
  (
    url: MaybeAccessor<string>,
    headers?: RequestHeaders,
    fetchFn?: typeof fetch
  ): GraphQLClientQuery =>
  (query, variables, initialValue) =>
    createResource(
      () => access(variables == undefined ? {} : variables),
      (vars: any) => {
        const variables = typeof vars === "boolean" ? {} : vars;
        return request(access(url), query, { headers, variables, fetcher: fetchFn });
      },
      { initialValue }
    );

I can't just write variables = {}, because Type '{}' is not assignable to type 'MaybeAccessor<V | FalsyValue>'. Not sure why, given that V extends object = {} in the signature of GraphQLClientQuery

Also, is it really better to use FalsyValue instead of just false?
export type GraphQLClientQuery = {
  <T = unknown, V extends object = {}>(
    query: string | DocumentNode | TypedDocumentNode<T, V>,
    variables: MaybeAccessor<V | false> | undefined,
    initialValue: T
  ): ResourceReturn<T, { initialValue: T }>;
  <T = unknown, V extends object = {}>(
    query: string,
    variables?: MaybeAccessor<V | false>,
    initialValue?: undefined
  ): ResourceReturn<T, undefined>;
};

Also, it's not clear for me how we actually need to call refetch function if we init the query with false instead of variables:
const [countryData, { refetch }] = query(CountryQueryDocument, false, {
  country: { name: "loading..." }
});
refetch(/* info: unknown ???? */); // how do I pass variables?

I can't just write variables = {}, because Type '{}' is not assignable to type 'MaybeAccessor<V | FalsyValue>'.

All squares are rectangles but not every rectangle is a square ;)
You can just do variables: any in the args, and then variables = variables ?? {} before createResource

is it really better to use FalsyValue instead of just false

createResource works the same way with the truthiness of the source arg—anything falsy will prevent fetch. So we are just reusing that behavior directly. The types should express that if they can.

it's not clear for me how we actually need to call refetch function if we init the query with false instead of variables

The docs might might give a wrong example. Passing false will successfully prevent the fetcher from being executed at all. To properly use the falsy values, they have to be passed as a reactive function.
e.g.
const [queryEnabled, setQueryEnabled] = createSignal(false);

const [countryData, { refetch }] = query(
  CountryQueryDocument,
  () => queryEnabled() && { code: "BR" },
  { country: { name: "loading..." }}
);

setQueryEnabled(true) // will fetch the first time

refetch() // will refetch the second time

I guess everything is done. Waiting for the @davedbase approval


Support Go 1.5 [phab:D459]

Created by schroederc at 2015-08-24 15:45:33:
Fixes #690

zarko accepted this revision at 2015-08-24 16:54:55

schroederc closed via commit fd8494dffa4b22b141b3e790a509a6d5f056e1d7 at 2015-08-24 17:08:24


use "fullscreen" image when available, general bugfixes with podcasts

This should allow for the spotify "fullscreen" images to be used when available, resorting to the album art if it isnt found. should randomly pick the album art if there is multiple. fixed the colour extractor spamming requests every 200ms if the album art doesnt exist (local files + any song without an image)

Nice contribution, thank you. Let me test this quickly tonite

sure thing, from regular usage all day it seems to be working fine, but will be nice to have it tested by someone else, just to make sure :)

One quick question, isn't there any endpoint to query on the album rather that the artist?
BTW, where did you find this endpoint?

im pretty sure the art is for the specific artist, i could be wrong though, i found this simply from opening devtools and entering fullscreen with the arrow in the bottom right of spotify, should trigger the request as soon as you do that

Ok I didn't get it right the first time. So you would prefer to use the artist picture for the background, rather than the album cover, correct? That's not what I add in mind for this theme.

yeah, i understand it may not be for this theme, ill keep my forked version incase anyone ever is interested, but ill close this PR


Bug: app fails to open after modifying data

It seems to me that if I perform any action that changes the addressbook (edit, removetag, addtag etc) the app cannot be opened again until I delete the data folder

Release v1.3 of the app does not have this issue. Issue happens in release v1.4. I will attempt to do more digging to find out what is causing this.

@WangJieee Narrowed it down to your merge: https://github.com/CS2103AUG2017-T10-B3/main/commit/803b2fee12fab68dfe496d401d6140ba728a808a
Out of memory fails twice, but passes on the third time. I suspect this is the main difference between v1.3 and v1.4 that causes the app to not open after any edits have been made (inclusive of deletion).

@CS2103AUG2017-T10-B3/developers master-backup branch has been created. It is the point in time just before @WangJieee v1.4 PR was merged. For testing of your future PRs, it is advised to use this branch, but do not merge without peer reviews.

@yuheng222 Found the PR causing this issue: https://github.com/CS2103AUG2017-T10-B3/main/commit/e6513ed637ae3e4f08b42aa4a8f03870e11f684c

@AceCentury Thanks for pointing out the faulty commit. I have made some minor modifications to the code and the app works as normal now. This issue will be fixed by the next merge.

Issue has been resolved in the latest merge.


Updated the readme to fix the links to the new docs locations.

fixes: https://github.com/tellor-io/TellorMiner/issues/258
Signed-off-by: Krasi Georgiev<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 359375525

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

Totals

Change from base Build 358148208:
0.0%

Covered Lines:
1605

Relevant Lines:
4371

💛  - Coveralls


Add Germany datums and CRS codes

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 96.23%. Comparing base (cffb83d) to head (42ce549).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #223      +/-   ##
==========================================
- Coverage   96.37%   96.23%   -0.14%
==========================================
  Files          32       32
  Lines        1407     1409       +2
==========================================
  Hits         1356     1356
- Misses         51       53       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


html output type has extra vertical space

the div is creating too much vertical space.  pre, as used by js and gv is correct.

:white_check_mark: on it!


Fix clang build

Uups, seems to conflict with Eric's https://github.com/crossbario/autobahn-cpp/pull/75


The "Deploy to Heroku" button is broken

I just tried creating an Heroku app with the latest "Deploy to Heroku" button (which points to https://heroku.com/deploy?template=https://github.com/imgproxy/imgproxy) and it's failing with the following error:

I also tried the former URL pointing to @DarthSim's repo (https://github.com/imgproxy/imgproxy/commit/1041056977943a6d047a4d0c72c4f8fce2302413) but got the same error.
Thanks!

Oh, thanks for pointing on this! I moved Dockerfile and totally forgot to change its path in heroku.yml. It works now.

Thanks for fixing it so fast 🙏 !


Add dns.txt to DB dir after update

Generate the dns.txt file like the old clamdownloader.pl script.
This file is written to the database directory whenever an update
updates 1+ databases with 0 errors.
This addresses Issue #2
The format should match the original:
❯ bat ~/.cvdupdate/database/dns.txt
───────┬─────────────────────────────────────────────────────────────
       │ File: /home/micasnyd/.cvdupdate/database/dns.txt
───────┼─────────────────────────────────────────────────────────────
   1   │ 0.103.1:59:26104:1615408140:0:63:49191:333
───────┴─────────────────────────────────────────────────────────────

I was a little bit lazy and had it just write out the DNS txt fields as-is. But if it makes sense, I could change it to generate the file in the same format using the current version #'s for each of main, daily, and bytecode, so that way we could update the dns.txt file even if one of the updates failed but the others succeeded.  It's kind of an unlikely edge case.  🤷♂  Maybe not worth doing.

I think it is enough to copy the original dns.txt. Especially because this only happens if there are no errors on downloading all the new files.


How can i passing like below in ReSwift?

               dispatch({
                        type: t.LOGGED_IN,
                        data: data.user,
                        token: data.token,
                    })

struct LoggedInAction: Action {
    let user: String
    let token: String
}

store.dispatch(LoggedInAction(
    user: data.user,
    token: data.token
))

@mjarvis i mean from action to reducer. I want to update state in reducer from action? somehow I'm just clueless.

thanks @mjarvis 🎉😁


Fixed Warnings and Undefined Behaviour in b2Math.h

I came across a bunch of strict aliasing rule violations when compiling on GCC with -O3 -pedantic -Wall.
They could all be traced back to b2IsValid, where a float is converted  to an integer using a reinterpret_cast of its memory. Accessing the same  memory through pointers of different type may break on some compilers. I  replaced it with a memcpy and on GCC 7.3 x86-64 with -O3 it generates  the exact same code, just minus the warnings.
Similarly, in b2InvSqrt, type punning was done using a union. That is  legal in C, but not in C++. Most compilers will not have a problem with  that, but it IS undefined behaviour. I replaced that with two memcpy's  as well, and again, GCC creates the exact same assembly code, but it  might prevent some Heisenbugs on other architectures or compilers.

Thanks for the report. I decided to side step this whole issue by using isfinite. b2InvSqrt was not used, so I removed it.
fbf51801d80fc389d43dc46524520e89043b6faf


Fix .gitignore jar files rule

The rule was intended to ignore jar files at the top-level, but had a typo

👍 Looks good. Thanks for fixing this.


1.24.2 ; so, when will it come to vscode?

hey, sorry if I'm writing this in the issue section, but I didn't find any conversation section anywhere ... is there a discord by the way?

There is a slack org, you can join here https://github.com/OmniSharp/omnisharp-roslyn#help-wanted
There is normally a release ~ once a month. The beta is available to install already from here https://github.com/OmniSharp/omnisharp-vscode/releases/tag/v1.24.2-beta3


Enforce node position

Hello,
First of all I am a big fan of all d3 related :)
While sankey does a great job with its layout capabilities, I am missing the simple ability of placing a node at a given X,Y.
Our design requires us to place a node at a corner like in the following picture:

I've managed to add a simple function accountForStickyNodesPosition to sankeys source which solves my need, and thought to share it here and get a feedback.
sankey.layout = function(iterations) {
  ...
  accountForStickyNodesPosition();
  return sankey;
};
...
function accountForStickyNodesPosition() {
  nodes.forEach(function(node) {
    node.y = (node.YPos) ? parseInt(node.YPos) : node.y;
    node.x = (node.XPos) ? parseInt(node.XPos) : node.x;
  });
}

later all it takes is to add one of the following props YPos and XPos to your chosen node like so
var data = {
  links: [
    { source: "Root", target: "A", value: "100" },
    { source: "Root", target: "B", value: "80" },
    ...
  ],
  nodes: [
    { name: "Root", YPos: '0' },
    { name: "A" },
    { name: "B" },
    ...
  ],
};

maybe there is a better way of doing this, would like to hear your thoughts.

So I actually realised that I can do my function outside of sankeys source and it will work :)
 sankey
    .nodes(nodes)
    .links(links)
    .layout(12);

  nodes.forEach(function(node) {
    node.y = (node.yAnchor) ? parseInt(node.yAnchor) : node.y;
    node.x = (node.xAnchor) ? parseInt(node.xAnchor) : node.x;
  });

later when I call sankey.link() it will work on the same referenced object and will calc the paths..

I 100% support having this feature built in. I also need to be able to enforce the position of nodes (not as an absolute (x,y), just in terms of order)

see https://github.com/EE2dev/sequence-explorer for drawing a sankey for sequential data (fixed positions)


0.7.1 compatibility.

When wil the module be compatible with 0.7.1?

Trixter's WHMCS module has compatibility for 0.7.3 and above.


LEDs stopped changing colors to Picture LED output not showing picture of HDMI input

[x] I confirm that this is an issue rather than a question.

Bug report
Steps to reproduce
What is expected?
What is actually happening?
I have been using Hyperion for 2 years now without issue. Came home today and LEDs are not changing. I checked the Live View on LED output and picture is not showing just vertical bars. TV is displaying picture so I know signal is good. I have reinstalled Hyperion with no success. USB Grabber is displayed when running command
v4l2-ctl --list-devices
USB Video: USB Video (usb-0000:01:00.0-1.4):
/dev/video0
/dev/video1
/dev/media3
System

Hyperion Server:

Build:             (HEAD detached at 2.0.13) (GitHub-dfd9438/5dc696b-1653218333)
Build time:        May 22 2022 12:56:16
Git Remote:        https://github.com/hyperion-project/hyperion.ng
Version:           2.0.13
UI Lang:           en (BrowserLang: en-US)
UI Access:         expert
Avail Screen Cap.: dispmanx,framebuffer,qt
Avail Video  Cap.: v4l2
Avail Services:    boblight,cec,effectengine,forwarder,flatbuffer,protobuffer,mDNS,SSDP,borderdetection
Config path:       /home/pi/.hyperion
Database:          read/write

Hyperion Server OS:

Distribution:      Debian GNU/Linux 11 (bullseye)
Architecture:      arm64
CPU Type:          Raspberry Pi 4 Model B Rev 1.2
CPU Revision:      c03112
CPU Hardware:      BCM2835
Kernel:            linux (5.15.32-v8+ (WS: 64))
Root/Admin:        false
Qt Version:        5.15.2
Python Version:    3.9.2
Browser:           Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:101.0) Gecko/20100101 Firefox/101.0

@bsmith76s It looks like that it is a problem with your grabber.
I would suggest you check with the Hyperion community via the forum (https://hyperion-project.org/forum).
It might be worth adding a screenshot showing the "just vertical bars" picure.


Kernel Panic on Mojave with MacBook Pro Early 2009(17inch)

Have you tried [these steps] (https://github.com/dokterdok/Continuity-Activation-Tool/wiki#cant-open-the-tool)?
Yes
Is there already an open topic for this issue?
No
Please include the following information.

OS Version: Mojave
Mac model: MacBookPro Early 2009(17inch)
Dongle or replaced card?: Dongle
Used dongle: USB-BT40LE(IO DATA)

Your Issue: After installation, It gets infinity loop on startup, and sometimes gets kernel panic when it’s rebooting.
Then never be able to login.
Steps done to try to fix the issue: I had no idea so that I restored with my TimeMachine data.

I actually had the same scenario happen with my 2009 MacPro tower. I went to upgrade the OS (using DOSdude's Catalina patcher, which was also the installed OS), only to find that USB installer was the only drive recognized. Without USB drive = infinite boot loop.
The odd part was finding that the drive booted 100% fine when connected externally to my 2015 MacBook.
I'm going to run the CAT installer on the MacBook, using the -z option the uninstall.


Build for windows

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

Whenever possible python packages should use pip. See https://conda-forge.org/docs/maintainer/adding_pkgs.html#use-pip

After freetds is ready for Windows also pymssql should support it. @mariusvniekerk I think it is ready. After merging this one, I can try to work on newer versions.

Closes #1

@PrimozGodec I would suggest adding yourself as a maintainer for this recipe following our documentation so that you can handle such upgrades if the recipe is in your critical path.
(I'll leave this to @mariusvniekerk for now.)

@dopplershift, thanks for response. I initiated #33


WIP: #669 - feat(services) - add service logs

Closes #669
Need to wait for service logs Generally Available, probably in docker 17.04 / API v1.27
See : https://github.com/docker/docker/issues/31399
On my tests, sometime api call hang so the view is not updated

[ ] Need to display Logs only if docker API >= 1.25 (1.27 ?)
[ ] Find a way to pretty print logs (with node name maybe)

Service logs is still experimental, this won't be merge in Portainer until it's out of experimental state.
FYI, you can use the endpoint.apiVersion property available via the StateManager to get the version of the current endpoint.

Still experimental in 17.04, waiting next release !

This will be available in 17.05 :
https://github.com/moby/moby/pull/32462
https://github.com/moby/moby/blob/17.05.x/CHANGELOG.md

I just rebase and test, I'm facing this issue
https://github.com/moby/moby/pull/33006
I think we need to wait stable 17.06 version to implement this feature

Now that 17.06 is out, service logs seems to be stable. Could you rebase? Is this still in WIP status? Or should I give it a try?

I rebase and test soon, and remove wip if ok

Okay seems to work well
I let the WIP status for the 17.06 check
I think the pretty print with node will be part of future feature
You can give a try if you are on 17.06 node

Ok for me
I've tested that Logs are not displayed on dockerd 17.05
Feel free to test
I remove the WIP

Thanks @WTFKr0 :+1:


Unable to serve assets from a cached event handler in server.

Basically, I want to serve assets from a event handler in server.
Questions:

Is it worth adding caching for static assets?
If yes, I am facing below issue.
When cached handler is called for first time, it returns asset directly and works fine. (Image in my case). Now, after caching, I believe that image is in the form of buffer and thus, gets stringified which is causing the issue. The handler than return stringified version of Buffer.

export default defineEventHandler(async (event) => { // THIS WORKS!
  const key = getRouterParam(event, "key");
  const asset = await blobStorage.getItemRaw(key);
  return asset;
});

export default defineCachedEventHandler(async (event) => { // THIS DOESN'T
  const key = getRouterParam(event, "key");
  const asset = await blobStorage.getItemRaw(key);
  return asset;
}, {
  maxAge: 60 * 60,
  getKey(event) {
    return getRouterParam(event, "key") || "";
  },
})

For full context, see: https://github.com/profilecity/vidur/blob/main/src/server/routes/assets/[key].ts
Originally posted by @amandesai01 in https://github.com/unjs/nitro/discussions/2650

Any updates on this? Do I need to provide something extra?

Hi dear @amandesai01 this is a known limitation in Nitro v2 cache that binary responses are not catchable and it is not easily fixable to support all binary types.
The good news is that with the upcoming Nitro v3 and h3 caching would support it out of the box.

Awesome!


bump version to v1.2.2

I am concerned about the introduction of vulnerabilities with this change. However, they do not pay me enough to actually investigate, so I will approve this.

You deserve no pay.


Fix Set.prototype[@@iterator]

As per spec (https://tc39.github.io/ecma262/#sec-set.prototype-@@iterator -
<IP_ADDRESS>) Set.prototype[@@iterator] must be equal to Set.prototype.values.
Currently the @@iterator() method is an alias for .entries(), which is
incorrect and easily breaks any code that uses this Set polyfill.
For example, a for-of loop transpiled by Babel will call the @@iterator()
method and get the wrong objects (array entries instead of the values in
the set): http://jsbin.com/jenavoxumu/1/edit?html,js,console

 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.


Incorrect location_id in the v5_0 get_comment

The wrapper for get_comment in azure\devops\v5_0\work_item_tracking\work_item_tracking_client.py uses the location_id for get_comments and therefore doesn't work.
https://github.com/microsoft/azure-devops-python-api/blame/dev/azure-devops/azure/devops/v5_0/work_item_tracking/work_item_tracking_client.py#L313

What issue are you running into?  Both get_comment and get_comments use the same route, hence have the same location id.   When an ID is supplied a different controller method is invoked.  Make sure you are passing an a work item id to the method.

@jamiemaclennan , I am going to close this issue.  Please let me know if you are still havign problems with these methods.


Potential bug in Compare(Pattern x, Pattern y)

This method never returns zero (even if the strings are equal) :
		public static int Compare(Pattern x, Pattern y)
		{
			bool first = x.str.Length < y.str.Length;
			int minSize = first ? x.str.Length : y.str.Length;
			for (var i = 0; i < minSize; ++i)
			{
				if (x.str[i] < y.str[i])
					return -1;
				if (x.str[i] > y.str[i])
					return 1;
			}
			return first ? -1 : 1;
		}

I see the calling code uses comparisons like this:
if (Pattern.Compare(patternFromWord, patterns[patternIndex]) >= 0){}

...so, could this be a bug?
(Note: the hyphenation does not work in some tests I do with greek text and I am trying to figure out what is wrong...)

Unfortunately, I already forgot details about algorithm implementation.
This Compare function seems like with a bug.
Can you provide example with incorrect greek hyphenation?


Code functions

What programming language is you used  for made the audio input folder code?? Python or C++

Do you mean the code that runs on the ESP32? That is C++.

Do you mean the code that runs on the ESP32? That is C++.

Ok thanks I thought it was python

Why we use a ring buffer?? For what purpose??

What purpose we need to used a ring buffer??

We are keeping the latest 1 second worth of audio data samples. The ring buffer is an efficient way to store these sample without having to move them around in memory when more samples arrive.

We are keeping the latest 1 second worth of audio data samples. The ring buffer is an efficient way to store these sample without having to move them around in memory when more samples arrive.

Thanks, I understand. merry Christmas and Happy new year


ng-click called twice with ngTouch included

I was using google chrome canary and Angular 1.3.8
I realize when I created a single ng-click and logged in console, the click was triggered twice.
.html

.js :controller
$scope.open = function(){
console.log('click');
}

output:
click appears twice
This is a bug???
When I removed ngTouch module from project was worked normally

I cannot reproduce this in a simple plnkr.co:
http://plnkr.co/edit/B0DvWOiybrOiBy6jfYAP?p=preview
Can you create a reproduction?

Well sorry about late. I think the problem isn't in ng-touch actually. This problem just occurs in chrome canary. To reproduce the error, just create a new project with yeoman using angular template(yo angular) and I also used ui-route. Any data-ng-click will be called twice, you can see in console.

So it doesn't happen without ui-route? We really need a small reproducable example here.

I am closing this because we lack a small reproducible example of this bug. Feel free to reopen if you can provide one.

I had the same problem.
ng-click events were triggered twice in Chrome but correctly (only once) in Firefox.
The problem was consistent across controllers.
My setup was generated from yeoman and it included ngTouch.
However when I removed ngTouch from bower.json, index.html and app.js the event duplication disappeared.
Hope this helps.