Optimization to deduplicate literals within dask graphs

We would like to sometimes rewrite graphs like the following:
x = np.ones(1000000)

dsk = {'a': (add, x, 1),
       'b': (sub, x, 1)}

to
dsk = {'x': x,
      'a': (add, 'x', 1),
      'b': (sub, 'x', 1)}

This is a bit like the opposite operation of inlining.  Note that we pulled out the literal x, but not 1.  We might want to pull out objects of a particular type or that match a particular predicate, such as being expensive to serialize.
cc @eriknw , in case you're interested.

I should be able to get to this this week.
Operating in the domain of values is more complicated and is something we do very little of in dask.core.  How should we determine whether literals match?  Can we rely on is or == relationship?  Should this operation work for mutable and immutable types?  For pandas and numpy objects, do we need to do more stringent equivalence tests that includes comparing dtypes, and, if so, do these utility functions exist somewhere?

I would expect that we would deduplicate based on object equality, i.e. is.  One solution would be to do this in two passes.  In one we collect all literals, filter by the predicate, and then count frequencies.  In the second pass we replace duplicate literals with a key value.

I call is identity and == equality comparison.  What about mutable objects?  If we can't easily use values as keys in a dict, things become more difficult.  If we rely on is, though, we can use id(val) // 8 as a partial hash to keep the algorithmic complexity down.

I think you certainly want to lookup by identity, both for mutable and immutable data.

This was fixed by #1818, but was no longer deemed necessary. Closing for now, can be reopened (along with that PR) if ever needed.


Data construction specifics

Hello,
Thanks for your awesome work! I was wondering if you could provide more details regarding the data construction with the materials project API. Specifically,

Which keys were queried to generate the features (Appendix Table 2)?
a.  Are group & period number included in the API or did you use other methods?
b. Which keys in materialsproject held electronegativity, valence electrons (nsites?), etc.?

What IDs are saved in atom_init? Do these IDs have to match with information in the CIF files?

Cheers!

Thank you for your question. First, the features are for elements, not for crystals. In atom_init, the keys are atomic number of the element, and the values are the initialization vectors for each element.
To generate these features, I used a package called mendeleev. For example, to get the group number for H, you can simply do,
from mendeleev import element

element('H').group_id

The values, the initialization vectors are all the same, so they're all generic


Update build.gradle snapshot to 2.9.1

Increment version to 2.9.1
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

 Can't get https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/2.9.1/latest/linux/x64/tar/builds/opensearch/plugins/opensearch-security-<IP_ADDRESS>.zip to /home/runner/work/cross-cluster-replication/cross-cluster-replication/build/dependencies/security/opensearch-security-<IP_ADDRESS>.zip

Security plugin 2.9.1 not available yet


README outdated?

Hi,
I wanted to play around with a simple grammar but I'm running into problems, even when using the example ebnf: ebnf = EBNF.parse(File.open('tmp/ebnf.ebnf'))
1.
ebnf.to_ebnf
NoMethodError: undefined method `to_ebnf'

ebnf.to_ruby
NoMethodError: undefined method `sort_by' for nil:NilClass
	from /var/lib/gems/2.3.0/gems/ebnf-1.1.2/lib/ebnf/ll1.rb:270:in `outputTable'

Thanks!

Indeed, seems to be some regression (and examples in the README should have tests!). I'll take a look at it shortly.
I was about to send an update anyway to change some dependencies.

Fixed in fceffb9.

Thank you!

hi @gkellogg, i also get the same error when i call ebnf.to_ruby method.

There was a bug in to_ttl which modified the rule being formatted, which could have contributed to the issue you were seeing. I'll need to release an updated gem, but in the mean time, you can require from the repo and try it there.


react-native-maps

How to enable default zoom button in react native maps
I am able to bring default compass using  showsCompass={true}

@KarthickRaja3018 I'm afraid it's not possible at the moment, you might need to create your own.

Yep, actually. You need to animateToRegion having the current region and changing deltas respectively.


Multisig: Implement the indexer

Indexer Guideline
There should be a single wasm module which contains multiple functions, 1 per event. The fn name may follow the pattern index_<event_name>.
E.g.
#[indexer(manifest = "<path/to/file/multisig.manifest.yaml>")]
mod multisig_index {
    fn index_cancel_event(event: CancelEvent, block: BlockData) { ... }

    fn index_execute_event(event: ExecutedEvent, block: BlockData) { ... }

    // more events below
}

Each type in graphql should have a required field.
Certain event fields would benefit from the @indexed directive.

CancelEvent

user

ExecutedEvent

to
value

SetWeightEvent

user

TransferEvent

asset_id
to
value

From the BlockData we should retrieve the block height and add it to each event so that we have a measure of time for when the event took place.

Closing in favor of https://github.com/FuelLabs/sway-applications/issues/605


Graphite-cursors

Project description
A cursor theme
Metadata

homepage URL: https://github.com/vinceliuice/Graphite-cursors
source URL: https://github.com/vinceliuice/Graphite-cursors
license: GPL-3.0
platforms: linux

This was done at some point but the pr never linked to this issue.

See https://github.com/NixOS/nixpkgs/pull/228911


Add Documentation Around Using ObjectListView and the requirements around action_buttons and/or views.

Environment

Python version: 3.7
Nautobot version: 1.2.5

Steps to Reproduce

create a plugin and/or new model in a plugin.
create the url path and view.
Don't have edit or add views/urls built.
Don't set action_buttons = () in your list view.

Expected Behavior
Some developer documentation around the requirement to have each view / url built as the ObjectListView is expecting to be able to resolve the url paths for those additional views.

Observed Behavior
Documentation lacks verbiage around this requirement.  Another issue is also being opened in order to track better exception handling in this specific instance, as the current traceback lacks details to help a developer pin point where the issue originates.

Related issue to improve exception handling. https://github.com/nautobot/nautobot/issues/1427

Please assign this one to me.


New Napalm version dropped the module py23compat

In the new Napalm version py23compat is no longer available.
Crashing the vrp driver.

In the new Napalm version py23compat is no longer available.
Crashing the vrp driver.

I also had the same issue. In the meanwhile i installed napalm 2.5.0("pip3 install napalm == 2.5.0") and it's working now. It's workaround just in case you want to use and test with napalm-huawei-vrp.

@michadom @i4networks Since I am testing in napalm==2.4.0, it's worked. It looks like 2.5.0 is ok at same. what version did you have problems?
Could you please send the detail log to my<EMAIL_ADDRESS>

@tkspuk i tested napalm 3.0.1 and had the issue reported by @i4networks.

@tkspuk  napalm 3.0.0

Since the development is based on napalm2.4.0, but after the  napalm3.0.0, there are some problems. I will urgently release a new version v0.1.5, which will limit the napalm dependency between 2.3.0 and 2.5.0 to ensure that fix issue.
I'll fix this completely in v0.2.0

Since the development is based on napalm2.4.0, but after the napalm3.0.0, there are some problems. I will urgently release a new version v0.1.5, which will limit the napalm dependency between 2.3.0 and 2.5.0 to ensure that fix issue.
I'll fix this completely in v0.2.0
@tkspuk
Hello! Very interested to know if this will happen of if perhaps this project has been abandoned? I'd love to be able to use this with the latest version of nornir / NAPALM. Thanks!

@daca42 I'm sorry that I haven't updated it for a long time. I will release new version this week

I'm also running into this now. Any word on the update?

1.0.0 has released. issue fixed

really cool you managed to do that!
I'm gonna try to learn from the changes you made and port forward the onyx driver the same way :-)


Remove ability to block oneself

Hi,
Great gem, saved me a lot of code! I've forked and made two bug fixes and one improvement suggestion. Please review, and feel free to pull one or more of them:

Latest factory_girl version is not compatible with ruby 1.8, so I locked the gem to a version that works with 1.8 and 1.9.

Latest shoulda has deprecated & removed should_change, which your tests use. Locked the gem to an older version that still has this method.

Since an object cannot follow oneself, it makes no sense to be able to block oneself. I removed the ability and added a test to verify a followable cannot block oneself.

Regards, Ryan

Looks like this was finally fixed with https://github.com/tcocca/acts_as_follower/pull/59
Closing this ancient pull request.


fix(driver): Async Payload Execution

Description
Make the payload execution method async.

📚 $\text{Stack Overview}$
Pulls submitted in this stack:

#865 👈
#864
main

This comment was automatically generated by st.


Retrieving Transactions does not verify code/abi version

If transactions are retrieved using the account history API, they will be prettified using the  code's abi. But if this code/abi has been since updated, then the reported json description of the message will be erroneous, unless you are lucky enough to cause an exception.
A less likely (but still relevant) problem exists for writing irreversible block transactions to an external DB ( #172 ).  A setcode call could change the code/api after transaction is written to block, but before it is irreversible.
This would could be solved by adding a code/api version to the Transaction Message.  There is already a code_version which is a hash of code string, but we wouldn't want to send the  256 bytes for the hash sha.  Could use just a portion of hash (similar to refBlockPrefix), but that would require sender to retrieve code/abi to get code_version.  Or could require setcode message to also provide a uint32_t version number that we would require to increase (so not repeat).

I think as we look at this we should also consider Brooks Boyd's question on EOS Developers telegram group about altering contracts.

#3413 is a more current identifying of this, closing this issue since it is a duplicate.


Investigate support of macOS 10.14

With the upcoming macOS 10.14 (Mojave) in the next weeks/months, there will be a fair amout of people eager to update from their older versions given all the new features.
However, it is very likely that, being 10.14 a new major update (despite being minor according to semantic versioning), previous support will be broken. Hopefully this means less work than more work to make NVIDIA eGPUs a reality on macOS.
Therefore research on running eGPU + NVIDIA + CUDA on top of macOS 10.14 and updates to the repository are necessary.

Some preliminary info available at:

https://egpu.io/forums/mac-setup/macos-10-14-mojave-beta/

More good news:

https://egpu.io/forums/mac-setup/two-new-egpu-solutions-on-macos-10-13-4-pure-efi-and-hybrid/

More info regarding Apple's macOS 10.14 Mojave x NVIDIA web drivers--and very upset users: https://www.forbes.com/sites/marcochiappetta/2018/12/11/apple-turns-its-back-on-customers-and-nvidia-with-macos-mojave/

Is is possible that apple will not support CUDA even in the later version?

I really hope this gets addressed! Lots of developers looking to do AI/ML development need this to work.

The "political" deadlock is still on between NVIDIA and Apple, unfortunately.
I have been following the discussions around this last month and although there are some workarounds available, they focus on much simpler compatibility than actual hardware acceleration & CUDA (see post). Sadly, it could be that there's a driver ready for months already but the standoff keeps it unavailable (see post).
There are some renewed hopes for a community-driven compatibility layer as Apple announced a DriverKit API alongside macOS 10.15 Catalina, but these may fall short if the support is merely at user (not kernel) level. More info on: https://devtalk.nvidia.com/default/topic/1042520/drivers/-when-will-the-nvidia-web-drivers-be-released-for-macos-mojave-10-14-/86
In terms of pressure towards Apple dropping the fight and accepting NVIDIA back again, there's a 16k+ signatures online petition and the newly announced, more modular & pro-focused Mac Pro could be another vector, but I wouldn't hold my breath until year-end.

This post on the NVIDIA forum puts the current situation well:

metacollin
I don't understand why this is still being so widely misunderstood. As per statements made in support tickets by NVIDIA that were subsequently posted in this thread, the issue is that Apple requires that any video drivers from Mojave onward support Metal and NVIDIA is still working on adding Metal support, and Apple won't approve the driver until this support is complete and meets some kind of reasonable expectation for stability and performance.
What is ridiculous is that his is hardly unreasonable, considering that the entire operating system's GUI and window manager renderer uses Metal and only Metal for hardware acceleration. If this still isn't clear enough, Mojave deprecated OpenGL entirely and the operating system no longer uses it. Yet here we are, with your #UnblockNVIDIA hashtag. What, exactly, is the course of action you want to happen? What would you have Apple do? Unblock a driver that won't even work, that isn't finished and doesn't have working or complete Metal support? OpenGL programs could be accelerated, but most of macOS itself couldn't be. It would damage the reputation of both Apple and NVIDIA if they approved something in such a state.
This isn't even mysterious in anyway. We KNOW why Apple would not approve drivers. Apple has always refused approval for stuff for one reason. And that is is because it didn't meet a certain minimum expectation of quality. That's Apple's entire business model for f--k's sake.
For better or worse, they try to control their platforms to create a walled garden where a certain expectation of stability, security, quality, performance, and compatibility can be not just expected but relied upon. People who value that and want that are Apple's entire customer base. This is the entire reason Apple even exists. (Note: I am not saying this is 'better' or 'correct' or anything. There are plenty of disadvantages to this walled garden model as well, and it boils down to personal preference, that's all. People who don't like it don't use Apple products, and there is nothing wrong with liking or not liking, using or not using Apple or any other brand of tech, 'holy wars' or not).
But I digress.
Your assumption that this is some sort of political decision on Apple's part is just that, an assumption. And one that has already been contradicted by other official statements from NVIDIA statements made in support tickets posted in this very thread.
Seriously though, just think about it: why has no one ever been able to come up with a compelling, logical, sensical reason as to why Apple would block a finished, working, good-to-go graphics card driver? How could this possibly benefit Apple? It wouldn't. It is simply not in Apple's own best interest to do that. They aren't blocking a perfectly working and ready to go driver.
I mean I get it. I am pissed about the situation as much as anyone else. But if you believe that it is so simple as Apple stopping the release of an otherwise fully functional Mojave driver and if enough people use some hashtag, with enough outcry, the problem can be immediately solved... I don't see how that could possibly be the case. It is not so simple.
The real issue is Apple deciding to deprecate OpenGL, and sadly that ship has very much sailed. So now the issue is the glacial pace NVIDIA is developing the updated driver that supports Metal, which I would also point out is specific to MacOS, whereas OpenGL was used on Linux and to some degree on Windows (albeit not as much as DirectX). So they can't port code from anything else, it is all going to be written from scratch, and the potential market is, sadly, quite small in comparison to all others NVIDIA competes in. I couldn't say what the specific issues are. Are they having trouble hiring people with the highly niche and also uncommon expertise to support a proprietary new graphics API? Or do they have the people, just not very many of them so development is slow, simply because it doesn't make business sense to spend money on enough engineers to develop it any quicker? The real reason is probably more complex and convoluted, and also known only to a handful of NVIDIA employees.
The bigger picture can be argued to involve Apple's gradual transition to total disuse of NVIDIA hardware in their products, for whatever reason, but that is a gradual change spanning years, and as a result, it no longer makes sense for NVIDIA to expend the resources to develop a new driver in the timespan that they normally merely update an existing one that supports a graphics API they already support on all other platforms, rather than no other platforms.
I mean, its a crappy situation but it is the situation we're in. But seriously? #UnblockNVIDIA? All that is doing is making you look foolish, no offense.
So, yes, if one choses to ignore all relevant context in the name of pedantry and ignore the bigger picture, then the statement 'Apple is blocking the driver' is not incorrect. But it sure as hell isn't correct. It's mostly just devoid of any real meaning.
Also, this turned into quite a ramble, at this point I don't know if anyone will even slog through it. But I want to wrap up by pointing out what the the official NVIDIA statement in the FAQ does not say.
It does not say:

That Apple is blocking the driver.
That they've submitted a driver, or anything else, to apple for approval.
That there even is a working or finished driver to submit.
That they submitted a driver but Apple has denied approval.
Or that they're just awaiting approval.

No where in that statement are any of those things said. In fact, they have been very careful to avoid saying any of those things. All that is said is "NVIDIA cannot release the driver unless it is approved by Apple". Which has always been true. If the driver wasn't done and NVIDIA has yet to submit anything for approval, that statement would still be true. It would be true regardless of any possible situation that is behind the lack of any mojave driver.
he statement is uselessly vague and very carefully avoids any language that actually asserts any action on the part of Apple. It does not say 'Apple is refusing to approve the driver', or, 'the driver is awaiting approval by apple' or any reasonable statement one would think would be made if that were actually the situation.
The only reason to make a statement so infuriatingly useless and vague is so people will make an assumption that isn't true but is to the statement maker's benefit. Which is exactly what has happened.
#1227
Posted 07/03/2019 04:28 PM

Another thread to follow for updates (if you still have hope) is from the Hackintosh community: https://www.tonymacx86.com/threads/nvidia-drivers-for-mojave-10-14-not-available-no-workaround-works-well.260857/page-90

should probably take mojave off the "requirements" as mojave its nearing the end of its lifespan and  will not be receiving support for nvidia drivers. period. next version might, if magic happens. but yeah.. i came here because it says it works with mojave. but it doesn't seem to do that.

So finally NVIDIA CUDA 10.2 will be the last version to support macOS (up to 10.13):

CUDA 10.2 (Toolkit and NVIDIA driver) is the last release to support macOS for developing and running CUDA applications. Support for macOS will not be available starting with the next release of CUDA.

So this + Apple's move to their own silicon seem fair to assume macOS 10.14+ support will not come.

Looks like this one can be marked closed/won't-fix  ;)
On Mon, Oct 19, 2020, 6:59 PM Marcelo Novaes<EMAIL_ADDRESS>wrote:

So finally NVIDIA CUDA 10.2
https://docs.nvidia.com/cuda/archive/10.2/cuda-toolkit-release-notes/index.html#title-new-features
will be the last version to support macOS (up to 10.13
https://developer.nvidia.com/cuda-10.2-download-archive?target_os=MacOSX&target_arch=x86_64&target_version=1013
):
CUDA 10.2 (Toolkit and NVIDIA driver) is the last release to support macOS
for developing and running CUDA applications. Support for macOS will not be
available starting with the next release of CUDA.
So this + Apple's move to their own silicon seem fair to assume macOS
10.14+ support will not come.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/marnovo/macOS-eGPU-CUDA-guide/issues/8#issuecomment-712486760,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAE4QRUXNIPUEYKPFMEIAOLSLTAFRANCNFSM4FI3SSPQ
.


Remove train modality check in augment.py

This PR removes the check on train/eval modality done internally in augment.py. The check is already done in train.py. With this small change, users might use augmentation also when the system is in eval modality (if they want it for some reason).
This topic was discussed in #780.

I tested it and everything seems to work as expected. Let me merge it!


Copy entire swiftShims directory to avoid very long command line paths that break the Windows build

10 or so files were recently added to the swiftShims folder. This led to the command for copy_shim_headers to exceed 8192 characters.
This broke the Windows build, as we now get errors saying "command line too long".
The shorter option is to copy the entire swiftShims folder to the correct place (with the correct name)
This has the side effect of copying the CMakeLists.txt file as well. Let me know if I should add a follow-up command to delete the CMakeLists.txt file from the binary directory. I didn't for simplicity, but can if you want

@swift-ci please clean smoke test

This has the unfortunate side effect of touching all of the shims headers, whereas previously they wouldn't be modified if nothing changed. Is there a way to fix that?
(And yes, we should not ship the CMakeLists.txt file.)

Can we use some kind of link instead?

I think Jordan mentioned that swiftShims are "installed". I never quite understood what this means, but i think it means they should be standalone from the swift source. If that's the case, then maybe we can't use links.
As per fixing the touching issue, perhaps an alternative would be to

write a list of input and output files to a file
send that file to a new python utility
python utility reads the list
python utility copies each file if different

"Installed" means they get copied into downloadable toolchain packages (and, at Apple, into Xcode). We don't really want to let pieces of our build system slip in there.
Hard links would be safe for "install" purposes (since we always have a "copy" or "archive" step later on), but wouldn't really be correct. If I modify the file in source/stdlib/public/shims/, that shouldn't automatically affect my build directories.
I don't like this trend of adding new Python utilities to recreate built-in features. Have other CMake users hit this before? What have they done about it?

Okay. I suppose an alternative could be to do what we do with GYB today, and have a target for each individual file. Then the target copy_shim_headers would depend on the targets.
Only downside is that these would appear as one visual studio project each, making the VS project considerably larger!

I'd prefer that, but I should let @erg make the call, since he's the primary CMake person these days.

@swift-ci please clean smoke test

@swift-ci please clean smoke test

Okay - I managed to find a really clean solution. We now copy the shims headers one by one using add_custom_command. Then we modify the copy_shim_headers target to depend on the output of these commands.

@swift-ci please clean smoke test

@swift-ci please clean smoke test

@swift-ci please clean smoke test

@swift-ci please clean smoke test

@swift-ci please clean smoke test

@swift-ci please clean smoke test

I believe we switched from add_custom_command to our hand-rolled add_custom_command_target because the commands were getting run more often than needed, but maybe that doesn't apply here. Or maybe it was a CMake bug that got fixed. @llvm-beanz, do you remember anything about this? (I know it was a Dmitri-ism, but it might have affected LLVM too.)

Personally I want to kill add_custom_command_target because it is way overused. The reason it exists is because if you have a custom_command in CMake that creates an output file, and you have multiple targets depending on that output file by file path. Depending on which generator you use, the custom command could end up getting executed multiple times.
This generally isn't a problem in LLVM because we do create targets in the places where we have custom command outputs being relied on in multiple places. The approach add_custom_command_target takes is to just create targets for every custom command regardless of how many places it is used in, and it creates horrible target names unless you specify them yourself.
This patch does look fine to me because it preserves the semantics of add_custom_command_target by creating custom commands that produce outputs that are only ever depended on by a single target.

All right, it sounds like everyone's happy with this approach. Thanks for sticking with it, Hugh.


Approximate nonlinear Gaussian BP (version Jul 29, 2022)

Thanks for creating this amazing resource! :-) I have some minor suggestions regarding the characterization of two papers I was involved in.
You currently write (p. 371, section 3.8.4 on Inference for state-space models / inference based on statistical linearization):

In [HPR19] they extend IPLS [Iterated Posterior Linearization Smoother] to belief propagation in Forney factor graphs (Section <IP_ADDRESS>), which enables the method to be applied to general graphical models with Gaussian potentials but nonlinear
dependencies

and (p. 392, section 3.9.2. on Inference for graphical models / Loopy BP / Gaussian BP):

To perform message passing in models with non-Gaussian potentials, we can extend the techniques from Section 8.5.2 from chains to general graphs. For example, we can use local linearization, similar to extended Kalman filter (see [PHR18]); or we can use sigma point BP [MHH14], similar to unscented Kalman filter.

These characterizations are not entirely precise.

As you'll be well aware, any method that maps Gaussians to Gaussians can be interpreted as a local linearization, so this is true for both EKF-style methods (which linearize using the Jacobian) and sigma point / other quadrature methods (which typically perform statistical linearization / moment matching).
In [PHR18], we describe a general method (including explicit message update rules) to perform nonlinear approximate Gaussian BP in FFGs using quadrature / sigma point methods (UKF/S, Cubature, or Gauss-Hermite filtering/smoothing, etc.). We have an example where we derive a novel nonlinear MBF smoother, but the method is really general and applicable to any FFG. We do not do any Jacobian-based linearization / EKF-style things here, and we focus on the non-iterative setting.
In [HPR19], we describe a general linearization formulation (again including explicit message update rules) for nonlinear approximate Gaussian BP, where the linearization can be Jacobian-based ("EKF-style"), statistical (moment matching / quadrature filtering / sigma points), or anything else. Moreover, we discuss how any such linearization method can benefit from iterations. This encompasses the IPLS as a very special case, but also basically any other conceivable iteration scheme in state-space models or any other (e.g., loopy) FFGs.

Hope this helps and does not come across as picky / vain. :-)
Thanks again for your tremendous efforts!

ok, i rewrote the sec on p371 as follows
In \citep{Herzog2019} they extend IPLS to belief propagation
in Forney factor graphs (\cref{sec:FFG}),
which enables the method to be applied to a large class of graphical models
beyond \SSMs. In particular, they give a general linearization formulation
(including explicit message update rules) for nonlinear approximate Gaussian BP
(\cref{sec:gaussBP})
where the linearization can be Jacobian-based (``EKF-style''), statistical
(moment matching / quadrature filtering / sigma points), or anything else.
They also show how any such linearization method can benefit from iterations.

and on p392 as follows
To perform message passing in models with non-linear (but Gaussian) potentials,
we can generalize the extended Kalman filter
techniques from \cref{sec:EKF}
and the moment matching techniques (based on quadrature / sigma points)
from \cref{sec:GGF,sec:statlin}
from chains to general factor graphs
(see e.g., \citep{SigmaBP,Petersen2018,Herzog2019}).

is this correct?

Yes, that looks perfect! Thanks a lot. 😊
From: Kevin P Murphy @.>
Sent: 8. august 2022 04:09
To: probml/pml2-book @.>
Cc: e-pet @.>; Author @.>
Subject: Re: [probml/pml2-book] Approximate nonlinear Gaussian BP (version Jul 29, 2022) (Issue #118)
ok, i rewrote the sec on p371 as follows
In \citep{Herzog2019} they extend IPLS to belief propagation
in Forney factor graphs (\cref{sec:FFG}),
which enables the method to be applied to a large class of graphical models
beyond \SSMs. In particular, they give a general linearization formulation
(including explicit message update rules) for nonlinear approximate Gaussian BP
(\cref{sec:gaussBP})
where the linearization can be Jacobian-based (``EKF-style''), statistical
(moment matching / quadrature filtering / sigma points), or anything else.
They also show how any such linearization method can benefit from iterations.
and on p392 as follows
To perform message passing in models with non-linear (but Gaussian) potentials,
we can generalize the extended Kalman filter
techniques from \cref{sec:EKF}
and the moment matching techniques (based on quadrature / sigma points)
from \cref{sec:GGF,sec:statlin}
from chains to general factor graphs
(see e.g., \citep{SigmaBP,Petersen2018,Herzog2019}).
is this correct?
—
Reply to this email directly, view it on GitHubhttps://github.com/probml/pml2-book/issues/118#issuecomment-1207572267, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AANRE747CRNA67K4DMI22P3VYBT43ANCNFSM55E7GG5A.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>


Object spreed inference got broken with inlined conditional from 4.2

Bug Report
🔎 Search Terms
spreed conditional inline type inference
🕗 Version & Regression Information

When did you start seeing this bug occur? 4.2.3, 4.3.0-beta

This changed between versions 4.1 and 4.2

This is the behavior in every version I tried (4.2.3, 4.3.0-beta)

Correct behavior is in old versions I tired (4.1.5, 4.0.5, 3.9.7)

⏯ Playground Link
Playground link with relevant code
💻 Code
type Foo = { foo: string }

type FooFiz = Foo & Fiz

type Fiz =
    | { fiz?: undefined, foz?:undefined }
    | { fiz: string, foz: number }

const foo: Foo = { foo: "" }
const cond: boolean = true

// : {
//     fiz?: undefined;
//     foz?: undefined;
// } | {
//     fiz: string;
//     foz: number;
// }
const fiz = cond ? {} : {fiz: "", foz:1}
// proof that `fiz` is asignible to `Fiz`
const fiz_: Fiz = fiz

// all this works as expected
const foofiz1: FooFiz = {...foo, ...fiz}
export function typeIs<T>(res: T): T { return res; }
const foofiz2: FooFiz = {...foo, ...typeIs(cond ? {} : {fiz: "", foz:1})}
const foofiz3: FooFiz = {...foo, ...typeIs<Fiz>(cond ? {} : {fiz: "", foz:1})}

// But This does not work, UNEXPECTED
const foofiz4: FooFiz = {...foo, ...(cond ? {} : {fiz: "", foz:1})}
//    ^^^^^^^
// Type '{ fiz?: string | undefined; foz?: number | undefined; foo: string; }' is not assignable to type 'FooFiz'.
//   Type '{ fiz?: string | undefined; foz?: number | undefined; foo: string; }' is not assignable to type 'Foo & { fiz: string; foz: number; }'.
//     Type '{ fiz?: string | undefined; foz?: number | undefined; foo: string; }' is not assignable to type '{ fiz: string; foz: number; }'.
//       Types of property 'fiz' are incompatible.
//         Type 'string | undefined' is not assignable to type 'string'.
//           Type 'undefined' is not assignable to type 'string'.(2322)
// Getting this error on: TS:4.2.3, 4.3.0-beta
// on versions TS:4.1.5, 4.0.5, 3.9.7 this COMPILES JUST FINE!

🙁 Actual behavior
foofiz4 is raising compile error.
🙂 Expected behavior
foofiz4 should not raising compile error.

This is the intended behavior to prevent a runaway combinatorial explosion (which was actually happening; this is not a theoretical concern but a real one). Some code patterns writes very large sequences of conditional spreads, so we collapse them into a single object type with optional properties rather than generate a union 2 ^ N types.


Cancellation exception escapes when session affinity is enabled

Describe the bug
When session affinity is enabled and a request cancellation occurs, a cancellation exception escapes the forwarder.
To Reproduce

Setup a cluster with session affinity enabled.
Make a request and drop it quickly from the client.

Expected: forwarder middleware completes gracefully
Actual: forwarder middleware throws OperationCanceledException
Further technical details
When a client quickly disconnects after making a request, SendAsync fails with cancellation. The code logic goes through HandleRequestFailureAsync, ReportErrorAsync  and finally TransformResponseAsync with a cancellation token which is already canceled. With session affinity enabled, AffinitizeResponse  is called which throws right away because the cancellation token is already signaled.

YARP version: 2.0.1
.Net Core 7, Windows

There's no point in YARP surfacing these exceptions that are happening as part of error handling already. We've already decided on the error to report which may be more specific than "cancellation".
This shouldn't be specific to session affinity, but affect any transform that reacts to cancellation by throwing, which we should expect.
We should be swallowing OperationCancelledExceptions from TransformResponseAsync when done as part of error handling IMO.


Requesting collaborator status (ability to write to the repo)

Hey Charles and Froi,
Hope you're both safe and doing well!
I just wanted to request collaborator status on this repo, so I can help review and merge some of the extant pull requests, and new ones as they come up. This would also help me make contributions - there are some parts of the extant pull requests I'd like to use, and can't until they're merged into master.
Of course if you'd prefer to keep control of the repo in fewer hands I completely understand.
Best,
Chris

I don't seem to be able to do that. Let's slack Michael Kalish
On Sun, Mar 22, 2020, 2:19 PM Chris Mazzullo<EMAIL_ADDRESS>wrote:

Hey Charles and Froi,
Hope you're both safe and doing well!
I just wanted to request collaborator status on this repo, so I can help
review and merge some of the extant pull requests, and new ones as they
come up. This would also help me make contributions - there are some parts
of the extant pull requests I'd like to use, and can't until they're merged
into master.
Of course if you'd prefer to keep control of the repo in fewer hands I
completely understand.
Best,
Chris
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/codefordc/rfj_expungement/issues/93, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGODFTVAISXZALB3FAXMBRDRIZJDLANCNFSM4LRMIXEA
.


Initial commit of task_steps_config-recipe_m2_apply_tourniquet.yaml.

Defines the M2 Apply Tourniquet task.

@Purg @hdefazio an initial commit of the task as a starting point.


Feature request: skipable groups of questions?

Could we implement skipable groups of questions?
Groups could share a common prefix and the questions are only asked if the first question with that prefix equals the defined answer. For example:

Do you want to do a? [yn]: y
Enter a_name: inktrap
Do you want to do b? [yn]: …

Versus

Do you want to do a? [yn]: n
Do you want to do b? [yn]: …

This could happen with subgroups too, so you could have multiple groups like package_host_url which is only relevant if you want to create a package in the first place and add some hosting server and only then you are asked to configure an url for that host.
Also I would like to provide some answers to questions, e.g. by specifying extra_context with the idea that the answers are used and the questions the answers belong to are not asked. (I know about _ and __ for variables, but I want to be able to do this with third-party packages as well, without changing their variable prefixes.)
At the same time I still want to be able to answer questions which are not answered yet. This would be so amazing. I could define a set of common info that should be used for all projects and that I configure once per user. Why ask for my name if you know it already? Then I could have best practices per programming language and on top of that groups of questions which depend on stuff like wether I want a package or not.

Hi @inktrap
Welcome to Cookieninja!
We're happy that you expressed interest in using it, and would be very happy to hear about more features that you think would be relevant to the project!
Regarding your feature request, I think we already added multiple features to Cookieninja, which weren't present in Cookiecutter, that would be suitable for implementing skippable groups of questions.
The first one is dependent questions. This feature seems to be exactly what you're searching for as it allows you to conditionally prompt for a question based on the answer for another one.
For more details about it see: https://cookieninja.readthedocs.io/en/latest/advanced/dependent_questions.html
Another feature that was recently added to Cookieninja, and might also be useful for you is dynamic choice variables. This feature allows you to display a choice question based on the answer for another question, here's an example:
json
{
"_site_locations": {
"zone1": ["SiteA", "SiteB", "SiteC"],
"zone2": ["SiteD", "SiteE"],
},
"zone": ["zone1", "zone2"],
"site": "{{ cookiecutter._site_locations.get(cookiecutter.zone) }}"
}
Both these features will be released as part of our 2.0.0 release, which will be coming out really soon!
I'll close this issue, but feel free to re-open it if you have any more questions regarding this subject!
Best regards,
Yuval Dolev (edited)

Thanks for your detailed answer. I completely missed that you already made these changes because the README talks about cookiecutters and I had the impression that it is a recent fork with major changes to come. A comparison matrix that shows implemented features and improvements with cookiecutter might be helpful to include in the README.


Crates.io release?

Is there a plan for a crates.io release?

There are plans for crates.io release(when version 0.2 is finished), but there are couple issues that need sorting out before it can be done. While wrapped_mono compiles on windows, it still requires some work(2 files need to be copied manually to project directory each time it is used).
Adding project to crates.io would suggest that it can be downloaded and installed automatically by cargo, which is not yet the case. For both of those files there is a "dirty" fix, (changing linking of mono from dynamic to static on windows, and changing default location where C#'s  core libraries, such asmscorlib.dllare searched for), but this fix would have it's own problems and require additional work to make them work properly.
I can't give any date, since I am in high school and it will all depend on how much free time I have to work on warpped_mono, but it shouldn't be longer than 2-3 months.


untitled

@fiftys7ven Hi, thank you for the contribution. Please use a descriptive title and description next time. Thank you.

Thank you for contributing!


package Proto.Cluster.CodeGen exception

I can't run this project in VS 2019, due to the error of Proto.Cluster.CodeGen, exception as below:
error  MSB4062  task "Proto.Cluster.CodeGen.ProtoGenTask" could not be loaded from the assembly C:\Users\xxx\.nuget\packages\proto.cluster.codegen\0.21.1-alpha.0.15\build..\tasks\net5.0\Proto.Cluster.CodeGen.dll. Could not load file or assembly 'file:///C:\Users\xxx\.nuget\packages\proto.cluster.codegen\0.21.1-alpha.0.15\tasks\net5.0\Proto.Cluster.CodeGen.dll' or one of its dependencies.The system cannot find the file specified. Confirm that  declarationis correct， that the assembly and all its dependencies are available，and that the task contains a public class that implements Microsoft.Build.Framework.ITask。  Backend C:\Users\xxx\.nuget\packages\proto.cluster.codegen\0.21.1-alpha.0.15\build\Proto.Cluster.CodeGen.props    19

how to solve it?

This issue is now fixed.


feat: using bytes.Buffer write string for ValidationError

for large json validation may cause mess validation error, string concat cause poor performance, use byte.Buffer much better

please make following changes:

use strings.Builder for better performance; see here
change commit msg to perf: use strings.Builder in GoString
rename writeIntoBuffer to goStringTo
rename msgBuf to tgt
move new method to after GoString method
use loop to print indent; using strings.Repeat creates heap alloc which immediately discarded
replace WriteRune('\n') with WriteByte('\n')

also ensure gofmt and govet is done on file;

also ensure gofmt and govet is done on file;

done


DialogHostStyle.CornerRadius do not work on SimpleTheme

DialogHostStyle.CornerRadius do not work on SimpleTheme.When I changed it into fluenttheme in app.axaml it works.
I notice that DialogHostStyle.CornerRadius Works only for default DialogHost theme,does it mean fluenttheme?

Hello, @xlxdd
I've fixed bug in SimpleTheme.
As for

I notice that DialogHostStyle.CornerRadius Works only for default DialogHost theme,does it mean fluenttheme?

No, this means default DialogHost theme (and any application theme).  This is a TemplatedControl, so anyone can write your own styles for DialogHost and DialogOverlayPopupHost, and this properties can be unsupported there.

This version soon will be released as v0.9.0-preview2


Denoising algorithm

Added code for the Denoising Algorithm.
Issue Resolved - #196
@geekquad Please review this PR.

@geekquad Please review this PR.

@geekquad, I had added the sample input/output images to the notebook as requested. Please Review the changes.


Add wiki macro for BBB link

Usage:
{{bbb}} - link to the current project meeting room
{{bbb(project_id)}} - link to the meeting room for project_id

very good idea!! Thank's a lot...


Rename variables and improve documentation of BaseOsMixin.PullFile.

Also make remote_path a required parameter. The default behavior is not
currently used, and the expected behavior is confusing.
Addresses #915.

LGTM


Identity 851

Reopening a pull request since this was closed on the master branch.

There are conflicts. Please resolve and resend the PR


Order History Page

[x] Lists Active orders
[x] Lists past orders
[ ] For all, can click and redirects you to you to order status/order details

Merged, leaving open until functionality known


[Source Suggestion] Finna.fi

Source Site
https://www.finna.fi/
Value Provided
This is the content aggregator of Finnish libraries, archives and museums
Licenses Provided
CC licenses and Rights Statements for media, CC0 for metadata

API docs:  https://api.finna.fi/swagger-ui/?url=%2Fapi%2Fv1%3Fswagger

I notices it had just been listed recently. It would make sense merging them. I can help in deciphering open questions about this and I can connect with the personnel.

Good catch.  Closing this issue as duplicate.  Anyone interested should head over to #435 .


feat: Allow unwrapping the <p> tag in convert_markdown filter

Closes #368

Yup, way better! Thanks a lot! :rocket:


Add Product Image Magnify Feature

Fix #28
Proposed Change
Implemented Image Magnify feature on the Products page to enrich user experience while shopping for products.
Type of change:

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented on my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings

Additional info (if any):

@Shubham29012001
I'm really sorry for such a delay 😕
Now coming to your pull request. You have renamed the .env.sample to .env sample 🙂
Correct the file name to .env.sample. Do this change and I'll review the changes 👍

Hey @varunKT001, I have renamed the file. Can you please look into it?

Hey @varunKT001, I have made the image responsive. You can check it out. Along with it, I have performed all the code reviews that were suggested by you in the previous replies. Please have a look at it.

Hey @Shubham29012001
It worked fine, but there were still some small issues.

The heights of the images were not fixed, so I had to restrict the height using CSS. But due to ReactImageMagnify injecting inline styles (more preferred by the browser) to elements, the CSS styles simply became obsolete. The fix was to simply put !important with the height property.

.main {
   height: 600px !important;
}

Class names were not applied to elements after the render. The problem was, that you had put the ClassName prop inside the smallImage property.

<ReactImageMagnify
        {...{
          smallImage: {
--->        className: 'main',
--->        imageClassName: 'main',
            sizes: '(max-width: 576px) 300px, (min-width: 992px) 500px,',
            isFluidWidth: true,
            ....

The correct way to destructure is:
<ReactImageMagnify
        {...{
          className: 'main',
          imageClassName: 'main',
          smallImage: {
            sizes: '(max-width: 576px) 300px, (min-width: 992px) 500px,',
            isFluidWidth: true,
            ....

These were some small fixes, so I did it for you 👍
But I just wanted to let you know that these tiny issues may arrive and are hard to find if you don't test the functionality thoroughly.
Anyways, this library react-image-magnify is awesome and I seriously didn't know about it 😅 Thanks for such a great addition to the website 👍

Hey @varunKT001, I have used the className and imageClassName but the only mistake I was doing was applying it on smallImage Object. I was able to rectify that if I were somehow able to assign the class to the Image, the problem of size would be solved but I was not able to do it. I am a lot inspired by your work and I recently checked out your portfolio. I was amazed by your skill sir. Are there any resources that you would like to mention for learning MERN perfectly?

@Shubham29012001 Don't worry, I too have faced this kind of issue.
And regarding the resources for MERN, there are plenty of them:

Youtube
Blogs
Stackoverflow answers (You'll get to learn a lot from these, believe me)

But the best strategy to master MERN is to make projects. You have enough knowledge of the MERN stack, so just find some awesome idea and implement it on your own. You'll find many issues and hurdles while creating it, and that's where you'll find these awesome youtube channels, blogs, etc.
Another method to learn is to look at others' codes. It helps you develop a proper structure about how you should implement stuff. Whenever you are on Github, just go to the trending page. Here you'll find some of the most trending repositories, and there might be a chance that you find something inspiring for yourself.
Well, these are some Youtube channels that I follow:

Codedamn
Web Dev Simplified
Hussein Nasser (for backend stuff)
Akshay Saini (for JavaScript concepts)
Coding Tech
Laith Academy (one-shot tutorials)
Wael Yasmina (if you are into 3D and Three.js)
React Conf
JSConf
Fireship (100 seconds of x)

There are plenty of them and I can't mention all of them here. If you find some other awesome channels or blogs, do share it to me also 👍 😄


Remove the IDP Disable option when a IDP is refered from the SP side

Suggested Labels
Affected : 5.8.0- alpha2
Severity: Major
Priority: High
Component: SAML SSO
Type-Bug
Steps to Reproduce

Register a IDP
Register a SP
Configure SAML 2.0 Web SSO as the federated authenticator for IDP
Configure the IDP as the federated authenticator in the SP local and outbound configs
After the configurations are done Disable option will be shown in the UI for the IDP. Click on the Disable option

Observation
Does not allow to Disable the IDP and UI show a progress like bar without any action and does not provide any error message in the UI.
If it does not allow to disable a IDP when it is referred in the SP side. We can remove the disable option when its refered from the SP side or prompt a message for the user when he tries to disable giving a valid reason.

Possible duplicate of wso2/product-is#3457


Import Failed Exception: on some recipe imports

Hey, first wanted to say thanks for the awesome app, absolutely loving it so far!
Issue description
When importing some recipes using the Android app, I'm seeing the following error displayed as a red bar at the bottom of the screen:
Import Failed Exception: type 'Null' is not a subtype of type 'String' in type cast

Without re-importing - navigating to the list of recipes shows that the initial import was successful.
I do not get this error if using the import function through the NextCloud Cookbook web interface eg https://exampledomain.com/apps/cookbook/#/
Example recipe:

https://www.taste.com.au/recipes/slow-roasted-capsicums-filled-mushroom-feta/e413060d-6aee-47f4-adbe-d0e5b8223f60

Error screenshot

Additional details

Google Pixel 7
App from Play store - last updated 25 March 2023 (v0.7.9 according to the changelog)
Nextcloud v25.0.3
Cookbook app v0.10.2

This should already be fixed on the develop branch but unfortunately a few restructures prevent a new release at the moment.
I'll add unit tests to make sure this can't happen again and hope that a new release is ready in one to two weeks.

Ok never mind I can't reproduce this behavior on the master branch so far.
further information is welcome :)

Hmm, no repro = likely something in my setup then...
Some other urls that returned the same error:

https://www.easypeasyfoodie.com/mexican-roasted-sweet-potato-cubes/#recipe
https://www.thespruceeats.com/mexican-spice-mix-recipe-1809302#
https://cookieandkate.com/vegetarian-enchiladas-recipe/

Here's the error and preceding warnings from the NextCloud server logs for the capsicum recipe - IP and user have been redacted. Each of the urls above returned the same error, with slightly different libxml warnings as you'd expect. My assumption is that these warnings are expected and not related to the real issue but I'm including them for completeness.
[PHP] Error: Error: Undefined array key "id" at /var/www/nextcloud/apps/cookbook/lib/Helper/Filter/JSON/RecipeIdTypeFilter.php#15 at <<closure>>

 0. /var/www/nextcloud/apps/cookbook/lib/Helper/Filter/JSON/RecipeIdTypeFilter.php line 15
    OC\Log\ErrorHandler::onError()
 1. /var/www/nextcloud/apps/cookbook/lib/Helper/Filter/JSONFilter.php line 63
    OCA\Cookbook\Helper\Filter\JSON\RecipeIdTypeFilter->apply()
 2. /var/www/nextcloud/apps/cookbook/lib/Service/RecipeService.php line 177
    OCA\Cookbook\Helper\Filter\JSONFilter->apply()
 3. /var/www/nextcloud/apps/cookbook/lib/Service/RecipeService.php line 324
    OCA\Cookbook\Service\RecipeService->checkRecipe()
 4. /var/www/nextcloud/apps/cookbook/lib/Controller/Implementation/RecipeImplementation.php line 222
    OCA\Cookbook\Service\RecipeService->downloadRecipe()
 5. /var/www/nextcloud/apps/cookbook/lib/Controller/RecipeController.php line 85
    OCA\Cookbook\Controller\Implementation\RecipeImplementation->import()
 6. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 225
    OCA\Cookbook\Controller\RecipeController->import()
 7. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 133
    OC\AppFramework\Http\Dispatcher->executeController()
 8. /var/www/nextcloud/lib/private/AppFramework/App.php line 172
    OC\AppFramework\Http\Dispatcher->dispatch()
 9. /var/www/nextcloud/lib/private/Route/Router.php line 298
    OC\AppFramework\App::main()
10. /var/www/nextcloud/lib/base.php line 1047
    OC\Route\Router->match()
11. /var/www/nextcloud/index.php line 36
    OC::handleRequest()

POST /apps/cookbook/webapp/import
from REDACTED by REDACTED at 2023-04-05T01:32:05+00:00

This was preceded by the following warnings:
[cookbook] Warning: libxml: Error 76 occurred while parsing https://www.taste.com.au/recipes/slow-roasted-capsicums-filled-mushroom-feta/e413060d-6aee-47f4-adbe-d0e5b8223f60. First time it occurred in line 1453 and column 23: Unexpected end tag : div

POST /apps/cookbook/webapp/import
from REDACTED by REDACTED at 2023-04-05T01:32:05+00:00

[cookbook] Warning: libxml: Error 23 occurred 51 times while parsing https://www.taste.com.au/recipes/slow-roasted-capsicums-filled-mushroom-feta/e413060d-6aee-47f4-adbe-d0e5b8223f60. First time it occurred in line 688 and column 119: htmlParseEntityRef: expecting ';'

POST /apps/cookbook/webapp/import
from REDACTED by REDACTED at 2023-04-05T01:32:05+00:00

[cookbook] Warning: libxml: Error 42 occurred while parsing https://www.taste.com.au/recipes/slow-roasted-capsicums-filled-mushroom-feta/e413060d-6aee-47f4-adbe-d0e5b8223f60. First time it occurred in line 197 and column 203: Attribute cooker redefined

POST /apps/cookbook/webapp/import
from REDACTED by REDACTED at 2023-04-05T01:32:05+00:00

[cookbook] Warning: libxml: Error 801 occurred 34 times while parsing https://www.taste.com.au/recipes/slow-roasted-capsicums-filled-mushroom-feta/e413060d-6aee-47f4-adbe-d0e5b8223f60. First time it occurred in line 122 and column 24: Tag nav invalid

POST /apps/cookbook/webapp/import
from REDACTED by REDACTED at 2023-04-05T01:32:05+00:00

[cookbook] Warning: libxml: Error 68 occurred 29 times while parsing https://www.taste.com.au/recipes/slow-roasted-capsicums-filled-mushroom-feta/e413060d-6aee-47f4-adbe-d0e5b8223f60. First time it occurred in line 8 and column 61: htmlParseEntityRef: no name

POST /apps/cookbook/webapp/import
from REDACTED by REDACTED at 2023-04-05T01:32:05+00:00

Same for me.
I've only imported from https://chefkoch.de for now but it's the same for every recipe.

Samsung galaxyA52
Downloaded from FDroid
NC version 26.0.2
NC app version 0.10.2
Android app version 0.7.9

Ok Thanks for the input
I'll have another look

Still the same issue.....
fresh install of Lineageos14


docs: Fix typo in quick-start.md

The original command put the article into content/posts, then there is nothing display on the home page.
It does give the First-time users like me a little trouble.

 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.

We have moved the Hugo site source to its own repository, so we would appreciate if you could open this PR directly in hugoDocs:  https://github.com/gohugoio/hugoDocs/pulls

@bep https://github.com/gohugoio/hugoDocs/pull/628


Search placeholder doesn't work

Issue Type (delete the irrelevant ones)

[x] Bug

Specs
What version are you using?
2.21.7
What browser?
Firefox
Expected Behavior
Setting searchOptions -> placeholder does nothing. I can see at https://github.com/xaksis/vue-good-table/blob/2e1112569f1c705c7b3b19d6a08491f7aaf92ea2/src/components/VgtGlobalSearch.vue#L15 that it is being set to null rather than using the passed prop globalSearchPlaceholder.

@teledemic you're absolutely right. A recent PR broke this. will fix.

released v2.21.8 Thank you!

Looks good - thanks for the quick turnaround!


Does FirebaseOptions work with Crashlytics ?

Hey Folks,
I am using FirebaseOptions in my project for firebaseApp configuration. I get the firebaseOptions data at runtime via an API call. For the first time, when I don't have any firebaseOptions data (before API call), I configure the firebaseApp as defaultApp with GoogleService-info.plist file stored in my source code initially. Once I get the firebaseOptions data from API (which is totally different for the stored GoogleService-info.plist file). I delete the earlier instance of FirebaseApp and configure new FirebaseApp as defaultApp with new firebaseOptions.
So does firebaseOptions work with crashlytics?

Duplicate of https://github.com/firebase/firebase-ios-sdk/issues/9939.


Ensuring the generated redirect URL is valid

In issue #844, @PinpointTownes wrote:

The null ref was in OIDC.

On a related note, we should add more checks to ensure an authorization request or a logout request cannot be generated when the authorization/logout endpoint path resolved from the OIDC configuration or set from the RedirectToIdentityProvider event is null.
Currently, if the authorization endpoint is undefined, the challenge is applied to the current address (e.g ?response_type=id_token...), which can result in an endless loop. 3 OpenIddict users reported a similar behavior in their own apps.
You can easily reproduce it by cloning the OpenIddict MVC samples and updating the server sample to disable the authorization endpoint:
services.AddOpenIddict<ApplicationUser, IdentityRole<Guid>, ApplicationDbContext, Guid>()
    // .EnableAuthorizationEndpoint("/connect/authorize")
    // .EnableLogoutEndpoint("/connect/logout")
    .EnableTokenEndpoint("/connect/token")
    // .EnableUserinfoEndpoint("/connect/userinfo")

    // .AllowAuthorizationCodeFlow()
    // .AllowRefreshTokenFlow()
    .AllowPasswordFlow()

    .DisableHttpsRequirement();

Note there is an existing check for this in HandleUnauthorizedAsync:
if (!Uri.IsWellFormedUriString(redirectUri, UriKind.Absolute))
{
    Logger.InvalidAuthenticationRequestUrl(redirectUri);
}

Note it only logs. This was because Katana did not apply challenges immediately, it waited until OnSendingHeaders or pipeline-unwind so any exception thrown would not be visible to user code. Core applies challenges immediately when called from user code. While pipeline unwind automatic challenges are still supported, they are not the normal flow. Also, throwing an exception has the advantage of changing this infinite redirect to a 500.

:+1: for throwing an exception (an InvalidOperationException, maybe?)

thought id add this in here for histories sake ...
On my project we just upgraded to netcore 1.1.0  and suddenly our SignOut's were failing ...   Traced it to the changes implemented here around checking if IssuerAddress was null or empty ...
https://twitter.com/josefajardo/status/819329380421804032
I still haven't worked out how to fix it BUT atleast I know what caused it ..


[RFC] Resize correctly when the charts are laid out with CSS grid or flex.

Here are some issues that report incorrect resizing in the CSS grid or flex layout.

#6048 (flex)
#11791 (flex)
#12170 (grid)
#13004 (grid)

This problem may be caused by the width/height set previously on the root element of the instances. The specified value will affect the final height of their parent element. So we may need to hide first other instances before resizing to solve this issue. But I'm not quite sure that we should do this in zrender or by the developer.
If just by the developer, please refer to the following demos.

https://codepen.io/plainheart/pen/yLagoGW (#12170)
https://codepen.io/plainheart/pen/VwKPzpj (#13004)

Otherwise, some changes need to be applied to the resize function of zrender.
Proposed Changes
  /**
   * Resize the canvas.
   * Should be invoked when container size is changed
   */
  resize(opts?: {
      width?: number| string
      height?: number | string
  }) {
      opts = opts || {};
+     let rootDisplay: {[index: number]: string} = {};
+     // if there are multiple instances, hide other instances first.
+     zrUtil.each(instances, zr => {
+       if (zr !== this) {
+         const style = zr.painter.getViewportRoot().style;
+         rootDisplay[zr.id] = style.display;
+         style.display = 'none';
+       }
+     });
      this.painter.resize(opts.width, opts.height);
      this.handler.resize();
+     // restore the previous display
+     zrUtil.each(instances, zr => {
+       zr !== this && (zr.painter.getViewportRoot().style.display = rootDisplay[zr.id]);
+     });
  }

For #11791
https://user-images.githubusercontent.com/26999792/103193564-c306a480-4917-11eb-83bb-ca8424f978e4.mp4
Any idea is appreciated. Thanks.


dont get it

i get everything untill the "copy exampleconfig.json to config.json" i have a config.json FOLDER. but what should i do? also. for some reason i cant open .git files

Hey, I have reworded this part of the README. What I meant with it was to create a copy of config.example.json, and name this copy config.json.

great!


Readonly type loses Partial-ness of generic-keyed Record

🔎 Search Terms
readonly partial generic
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about N/A

⏯ Playground Link
https://tsplay.dev/mLJGZw
💻 Code
// @ts-expect-error This makes sense
<T extends 'a'>(): Readonly<Record<T, unknown>> => ({});
// This works
<T extends 'a'>(): Partial<Readonly<Record<T, unknown>>> => ({});
// But why is this not allowed? `T` can only be 'a' (or some intersection with it) or `never`.
<T extends 'a'>(): Readonly<Partial<Record<T, unknown>>> => ({});

// Sanity check other permutations work
<T extends 'a'>(): Partial<Record<T, unknown>> => ({});
(): Readonly<Partial<Record<'a', unknown>>> => ({});
(): Readonly<Partial<Record<never, unknown>>> => ({});
(): Partial<Readonly<Record<'a', unknown>>> => ({});
(): Partial<Readonly<Record<never, unknown>>> => ({});

🙁 Actual behavior
There is a type error Type '{}' is not assignable to type 'Readonly<Partial<Record<T, unknown>>>'.(2322), despite T being bound by a "finite" type.
🙂 Expected behavior
No type error
Additional information about the issue
No response

There's special logic that allows { } to be assignable to a mapped type that can be seen to be all-optional, as Partial is. That logic doesn't go arbitrarily deep.

Has the TypeScript team considered consolidating documentation about all these special cases in one place or having concentrated efforts to clean up the type system model to require fewer special cases? As someone that often takes the responsibility of helping my colleagues with assorted TypeScript questions, every time I can't just link to the docs as an educational resource, I can sense the discouragement and feeling that they'll never understand TypeScript grow. Too often I have to refer to a specific release announcement, a specific comment buried in a Github issue, or even a tweet to provide explanations for certain behaviors.


Rewrite consensus notifier in Rust and run in background thread

This removes an inefficiency in the core validator, where it must wait for a network ack from the engine whenever it sends it a notification.

@aludvik Could you talk about the layers of Python and Rust here? Which Python class is in the Python layer?

@boydjohnson The interconnect service and consensus registry remain in Python and are here: https://github.com/hyperledger/sawtooth-core/pull/1914/files#diff-207e424b4836caed42eb1019a97f0dc9R31
This is wrapped by an implementation of the NotifierService trait: https://github.com/hyperledger/sawtooth-core/pull/1914/files#diff-5f253ff9fce18b79628534b75a9d3ea2R50
And this trait impl extends anything that is a NotifierService to also be a ConsensusNotifier. This is all to make it easier to swap out the Python service/registry later.
Finally, there is an FFI interface for those methods that still need to be called from Python: https://github.com/hyperledger/sawtooth-core/pull/1914/files#diff-bda47befe07894f4242429c11ef39015R137

Rebased on bionic upgrade

Rebased on lint fixes in master


Add "partiallySorted(count:)" to Collection

This PR is a joint effort with @rockbruno and it adds two partial sort methods: partiallySorted(count:by:) for base Collections and an abstracted  partiallySorted(count:) for Comparable Collections.
Deep down, the algorithm creates a Priority Queue and returns the first X elements in sorted order as a new Array.
Forum thread
Checklist

[x] I've added at least one test that validates that my change is working, if appropriate
[x] I've followed the code style of the rest of the project
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary

I haven't looked too in-depth, but I just wanted to note that it's not necessary to add all elements to the heap at once — it only ever needs to store the smallest/largest n elements as you iterate the sequence. Whether that is actually faster probably needs to be benchmarked.

I pushed a commit to add in place methods and to make the protocols more generic. I still would like to remove the Index == Int dependency, but now basically it's working as a reverse in place heap sort.
This is working like the C++ counterpart in where you get the entire array back, but we would like to add a variant where you directly get the prefix you're looking for. Though I'm not sure how to name that...
@timvermeulen I was wondering if that's balanced by the fact that we only heapify the first half of array, but I don't know which is faster also.

This seems to give an incorrect result for me:
[0, 1].partiallySorted(1)

Thanks @timvermeulen ! The bounds when heapifying were incorrect. I added a bunch of more tests now.

A few more notes on this:

The stdlib's sort has been stable since version 5.0, even though we haven't documented that guarantee (yet). Any new sorting operations should match that behavior, or probably have a different name.
I'm having a bit of trouble with the partiallySorted name for the non-mutating version. It honestly seems more akin to Sequence.min() than to Sequence.sorted(). Can you think about naming alternatives for that?

Just to make sure we are on the same page. Are you having trouble with the sort part of the name?
At the beginning @rockbruno and me have listed names such as sort(upTo:), sortFirst(_:) among others, but decided to go with what C++ calls it.
I wonder if using any synonym like arrange or classify would be better.

The stdlib's sort has been stable since version 5.0, even though we haven't documented that guarantee (yet). Any new sorting operations should match that behavior, or probably have a different name.

Hm, even if we don't sort everything? @timvermeulen made a suggestion of using Quicksort instead which would be one way to make it stable, but then we would have to eat the potential additional worst case. WDYT?

I wonder if instead of the non-mutating partiallySorted, we in fact need just the function which only returns the sorted prefix of the partially sorted input. Wouldn't that lead to a more natural name?
extension Sequence {
     public func sortedPrefix(_ count: Int, by areInIncreasingOrder: (Element, Element) throws -> Bool) rethrows -> [Element]
 }

 extension Sequence where Element: Comparable {
     public func sortedPrefix(_ count: Int) -> [Element]
 }

Example:
let numbers = [7,1,6,2,8,3,9]
let smallestThree = numbers.sortedPrefix(3, <)
// [1, 2, 3]

I'm really excited to see this! This is an algorithm I spent a lot of time with about two years ago, and I wrote up a blog post about it.
I think there's definitely some tweaking we can do for performance. I've found that created a sorted array of length k and then inserting any other elements and sorting as you go is the best balance between code complexity and speed. I'm happy to share specific code if needed. You can add binary sort or a max heap for insertion, but you end up adding a lot of complexity for practically no performance gain (see the Attabench chart in the blog post, which I can also the Attabench files for if anyone wants them)).

@pyrtsa sortedPrefix is a good name for this! I had been thinking about something like min(5, by: <), but that doesn't indicate that the result is sorted, and would require max(5, by: <) for parity.
I can see the justification for the mutating partial sort, but I don't think I see it for a version that returns the whole array with only part of it sorted. What's the use case there?

I like sortedPrefix! In fact, our original idea was to return just the desired prefix indeed. We kept the whole array because it's what C++ was doing, so it would feel more familiar. Do we agree in returning an ArraySlice in all methods then?

@khanlou Thanks for the post! It's great to see a comparison chart and we could modify it to become stable.

I made some benchmarks for us to analyze! I pitched this PR's heap implementation with @khanlou's, @timvermeulen 's quicksort version and the slower .sorted().prefix() as a base:

If we fetch a small prefix (4) from an increasing array, then SmallestM will be a lot quicker with the others being similar to each other (although I might have made a mistake, because the first time I've ran this the quicksort one was faster than the heap one)
The interesting thing is what happens if you increase the size of the prefix instead of the size of the array (now a fixed 500k elements:)

SmallestM is a lot faster in general, but if you try to prefix too many elements it will also become worse than sorting the entire array quicker than the other algorithms. Here's the same thing but with a smaller amount of elements (32k):

The place where this cut happens gets smaller the larger the array is, but it looks like 10% is a good number in average. What came to my mind is that the best implementation would likely to be @khanlou's one with an additional logic that falls back to sorting the entire thing if you try to prefix more than 10% of the array. What are your thoughts on this?

@rockbruno Fascinating plots! I think in those last two we're seeing the m^2 performance of repeated insertions swamp the rest of the n log m algorithm, which eventually does worse than the n log n sort of the full collection. I think the optimization you're talking about makes sense, since getting a relatively small number is going to be the most common usage.

Do we agree in returning an ArraySlice in all methods then?

We should be able to return an Array from all the nonmutating methods.

We update the name, docs and implementation. Was unsure if we needed to change the name of the feature as well (PartialSort), but left it as it is for now.

This is looking good — we could use a couple more tests, then we should be ready to merge:

asking for a sortedPrefix larger than the input should return the input, sorted
stability test for multiple equal elements

Awesome! 🎉
I've added the missing tests

Hi! I'd like to tell you one very slight but important problem.
This is the graph shown in the document, and the labels of each lines are reading "笑Priority Queue" "笑SmallestM" "笑QuickSortBased" "笑Stdlib.sort + prefix".

It looks strange for kanji-users because the letter "笑" means "laugh" or "smile" in China and Japan, and the graph has nothing with such ideas.
If you all don't care of it, it's OK, but if you think it's a problem, it should be refined in some way!
But If it was came from some intention or customary rule to use "笑" in the graph label, I'm so sorry for bothering you🙏

In Attabench that was supposed to be a colored square, I think my computer might be missing some special font or pack for that to have happened.

Is there any other thing left for us to do? cc @natecook1000

Thanks for your patience, @rakaramos and @rockbruno — this is ready to go! 👍

J/K, found a bug — (1...100).sortedPrefix(0) traps on the removeLast() call. The zero-argument tests aren't catching it because they're on collections with fewer than ten elements, which triggers the sort, then prefix branch.

Ah, looks like we were missing tests for massive inputs. Added a bunch of them now

I'd like to question the name sortedPrefix. To me it sounds like it returns a sorted version of the prefix, when it in fact returns a prefix of the sorted elements. In other words:
let numbers = [7,1,6,2,8,3,9]

print(numbers.prefix(3)) // [7, 1, 6]
print(numbers.prefix(3).sorted()) // [1, 6, 7]
print(numbers.sortedPrefix(3)) // [1, 2, 3] - huh? that's not the sorted prefix!

I would suggest perhaps adding a parameter to sorted - e.g. numbers.sorted(count: 3). Names relating to "partial sorting" also avoid this ambiguity IMO.

I'd like to question the name sortedPrefix. To me it sounds like it returns a sorted version of the prefix, when it in fact returns a prefix of the sorted elements. In other words:
let numbers = [7,1,6,2,8,3,9]

print(numbers.prefix(3)) // [7, 1, 6]
print(numbers.prefix(3).sorted()) // [1, 6, 7]
print(numbers.sortedPrefix(3)) // [1, 2, 3] - huh? that's not the sorted prefix!

You're right, that is a possible point of confusion in the naming. However please note that this holds:
print(numbers.sorted().prefix(3)) // [1, 6, 7]
print(numbers.sortedPrefix(3)) // [1, 6, 7]

You're right, that is a possible point of confusion in the naming. However please note that this holds:
print(numbers.sorted().prefix(3)) // [1, 6, 7]
print(numbers.sortedPrefix(3)) // [1, 6, 7]

No it doesn’t. The example is taken from the guide document:
let numbers = [7,1,6,2,8,3,9]
 let smallestThree = numbers.sortedPrefix(3, by: <)
 // [1, 2, 3]

Sorry, I think I only copied the wrong results here. What I mean that the output of numbers.sorted().prefix(n) matches elementwise that of numbers.sorted().prefix(n).


Simplify error type

This PR brings a breaking change proposed for the next major version.
It drops the optional exception property present in ErrorWithMessage in favour of always using an Error type to represent errors.
The Error already carries a message, hence once the exception becomes mandatory the wrapping object becomes entirely redundant.
Moreover, having an optional exception does not make a lot of sense since the only way to return a result with the errors property is by using exceptions.
The code-base gets a bit tidier and checking for exception types becomes simpler. There is also didactic value since every TS developer should already be familiar with Error.

Ensure our ErrorWithMessage type always has an attched exception
Simplify ErrorWithMessage so it's just an Error alias

I need to think through it. My main concern is how easy is it to work with at the UI level, are we gonna have helpers to extract the messages? Also, how does it affect InputErrors, EnvironmentErrors, and other abstractions people may be using.

InputErrors and EnvironmentErrors will no be affected as far as I can tell, since they deal with SchemaError.

A smoother approach would be to make exception mandatory and create a function to access the exception (and perhaps the message). This would make for a tighter abstraction and easier future changes.

Ok, I think I like it, I've been dealing with errors[i].exception a lot lately anyway

composable-functions is upon us!


feat(experiment): add a parallel HAMT traversal function

This is an implementation of a parallel traversal of the HAMT. It's mostly copied from https://github.com/ipfs/go-unixfs/blob/323bb63cafa93c5bdd10170f35b96327760d7c1a/hamt/hamt.go#L402.
There are a few pieces of this that are obviously wrong or non-optimal (e.g. the GetMany interface, lack of options for concurrency, not caching pointers, etc.) however this seems like a good starting point for a discussion on if this PR is even wanted/acceptable for this repo.
While I don't expect lotus will make use of this function because blockchains tend to avoid parallel things, it could be useful in processing. I made some use of it recently and it was a big performance help.
cc @rvagg @frrist @ribasushi

We'd make use of this logic in lily when loading things such as actor states (as you are already doing in filexp), miner sectors, miner precommits, and any other information stored in HAMTs that we need to load all at once.
Also interested in having similar logic implemented for go-amt-ipld, which could be used for loading miner sectors from their respective partitions.

seems fine to me, if it it gets cleaned up and some basic tests added
https://github.com/ipfs/go-unixfs/blob/323bb63cafa93c5bdd10170f35b96327760d7c1a/hamt/hamt.go#L478 is kind of like https://github.com/ipfs/go-merkledag/blob/5c067b1958df79db6a28b57d48f16f94de1f7fd8/merkledag.go#L455 in terms of interface, maybe some commonalities to be extracted from there if we're going for consistency

seems fine to me, if it it gets cleaned up and some basic tests added

Great! Any thoughts on what to do about a multiple block requesting interface here? My main concern is that it seems wasteful/excessive to do one goroutine (or channel) per block and to allow some sort of grouping.
It'll probably have to be a bit custom to deal with the IpldStore semantics expected here but overall the 3 mechanisms I've seen so far are:

Just do GetBlock repeatedly using:
a. sequential calls
b. a goroutine per block
c. worker pools
d. a channel per block
Grouping block calls together like GetMany and returning a channel
Having a channel in for requests/cancellations and an out channel for blocks as in https://github.com/ipfs/go-bitswap/pull/593/files#diff-b751089c21e2437423d20fbee6c9a01a61c2422d5f7630ab8272d7fdeb63b654R17

If there are going to be custom IpldStore semantics should I just add an interface declaration here for now, or upstream to go-ipld-cbor and depend on that?
If we're ok with this breaking a bit/being less stable than the rest of the package I can just choose one to experiment with, define the interface here, and we can doing breaking changes as needed. WDYT?

is kind of like https://github.com/ipfs/go-merkledag/blob/5c067b1958df79db6a28b57d48f16f94de1f7fd8/merkledag.go#L455 in terms of interface, maybe some commonalities to be extracted from there if we're going for consistency

Yep, the go-merkledag code was copy-paste-modified into go-unixfs and from go-unixfs to here. The go-unixfs case is a little closer because it also has cached deserialized data but yeah same idea.


only works some times and still crash

Tested on Note 3 android 4.4.2 with latest Youtube version
Here is a log from xposed:
http://www3.zippyshare.com/v/PrH3XZrx/file.html

Thanks. At least creen off playback works, or no?

Yes, screen off playback is the only thing that is working without problems :)

how is this supposed to work?

Well, you could use other app, go back home etc while video and audio keep going on, on YouTube app.
Another thing I want to let you know is the notification stays there on KitKat and even If I try to start the video from the panel nothing seems to happen.

ok thats what I did. It didnt work, but I have a lot of stuff disabled, so Ill give it a try again later. Thanks

on galaxy s3 with android 4.1.2 works fine, but on the note 3 with 4.4.2 works with the screen off well, and the background only works if you play playlists....fix this problem please

New version should fix some problems.

Thanks, Now it works, but i don't have notification in the status-bar

Maybe. Now enjoy working playback! :) lock and unlock screen also causes notification pop up.

Confirmed this is fixed. Thanks pyler.


Number of validation samples

I found that scripts in the runs/ directory use only one sample for validation, e.g., here.
The paper also said that the median error rate of the last 20 checkpoints is used when reporting, which means that no validation is required. Is this the reason why the code uses only one validation sample?
Am I correct? If not, how many validation samples are used?

Yes that is correct, we used 1 because the code doesn't allow for 0. Also we didn't really tune per dataset, we used almost the same parameters for everything.

Thanks for your reply!


feat: added test for speedtest

Your development orb has been published. It will expire in 30 days.
You can preview what this will look like on the CircleCI Orb Registry at the following link:
https://circleci.com/developer/orbs/orb/logan/onboarding-orb?version=dev:82fcaf9794a8a8cb5f21531f3b545a0b5e385b05

Your development orb has been published. It will expire in 30 days.
You can preview what this will look like on the CircleCI Orb Registry at the following link:
https://circleci.com/developer/orbs/orb/logan/onboarding-orb?version=dev:82fcaf9794a8a8cb5f21531f3b545a0b5e385b05

Your orb has been published to the CircleCI Orb Registry.
You can view your published orb on the CircleCI Orb Registry at the following link:
https://circleci.com/developer/orbs/orb/logan/onboarding-orb?version=0.0.5


xmonad does not truly work out the box

While xmonad.enable does give you an xmonad, you are unable to configure it. xmonad also requires:

xmessage on $PATH
All the Haskell libraries if one wants to provide a custom xmonad.hs file.

If this is closed why does no one close it? :)

I can't close this ticket. I suppose it's the same for others. In all likelihood, @edolstra has to press the button, because he's the owner of this project.

This repo is obsolete so it shouldn't matter either way.

I got the same trouble actually using Nixos v17.09.1922.21bb269a32 (Hummingbird)

You should report to https://github.com/NixOS/nixpkgs repo


Recognize install snippets that follow environment variable declarations

Describe the Feature
It is common in Dockerfiles that build go apps to set some environment variables before running the actual snippet that might install go modules. For example:
RUN CGO_ENABLED=0 GOOS=linux go build -v -a -installsuffix cgo -o swag cmd/swag/main.go

For the above line, Tern currently does not recognize "go build" as a snippet to install modules, despite that snippet being listed in snippets.py. This issue proposes changes to the way Tern parses
Use Cases
See golang example above.
Implementation Changes
Changes to filter_install_commands() or other associated functions, like split_command(), to better filter through potential environment variables that might come before a snippet install command.

This is kind of bug for now, because our parser will consider
RUN CGO_ENABLED=0 GOOS=linux go build -v -a -installsuffix cgo -o swag cmd/swag/main.go
as a variable assignment. Here are the result.
{'content': 'CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .',
 'variable': {'name': 'CGO_ENABLED',
              'value': '0 GOOS=linux go build -a -installsuffix cgo -o app .'}}

I can take on this issue! @rnjudge
We can modify parse_shell_variables_and_command() in tern\utils\general.py. We can loop on a search for the variable_pattern until we can not find the macthed case.
For command CGO_ENABLED=0 GOOS=linux go build -v -a -installsuffix cgo -o swag cmd/swag/main.go:

Extract CGO_ENABLED=0 by ^([A-Za-z_][A-Za-z0-9_]*)=(.*)  and the remaining part should be GOOS=linux go build -v -a -installsuffix cgo -o swag cmd/swag/main.go.
Extract GOOS=linux by ^([A-Za-z_][A-Za-z0-9_]*)=(.*)  and the remaining part should be go build -v -a -installsuffix cgo -o swag cmd/swag/main.go.
The remaining part does not contains a variable_pattern so it should be command.

Note that this method only works on the condition that the variable assignment are followed by command which should be a common case. The reason is that we are looking for a variable assignment from the start of command.

@nishakm I will try on it!


[Event Request] codeunit 90 "Purch.-Post" - OnInsertInvoiceHeaderOnBeforeTransferFields

Hello, can you please add a new Event OnInsertInvoiceHeaderOnBeforeTransferFields in codeunit 90 "Purch.-Post" ?
        OnBeforeInsertInvoiceHeader(PurchHeader, PurchInvHeader, IsHandled, Window, HideProgressWindow, SrcCode, PurchCommentLine, RecordLinkManagement);
        if IsHandled then
            exit;

        with PurchHeader do begin
            PurchInvHeader.Init();

            IsHandled := false;
            OnInsertInvoiceHeaderOnBeforeTransferFields(PurchHeader, PurchInvHeader, IsHandled);
            if not IsHandled then

                PurchInvHeader.TransferFields(PurchHeader);

            PurchInvHeader."No." := "Posting No.";
            if "Document Type" = "Document Type"::Order then begin
                PurchInvHeader."Pre-Assigned No. Series" := '';
                PurchInvHeader."Order No. Series" := "No. Series";
                PurchInvHeader."Order No." := "No.";
            end else begin

    [IntegrationEvent(false, false)]
    local procedure OnInsertInvoiceHeaderOnBeforeTransferFields(PurchHeader: Record "Purchase Header"; var PurchInvHeader: Record "Purch. Inv. Header"; var IsHandled: Boolean)
    begin
    end;

Any reason why do you need this?

Sorry this request was a mistake. I spoke to the developer and agreed on a different solution.
This applies to all Transferfields events.

Thank you, please close these requests.


On Add patient, Phone number textbox accepting alphabets

Describe the bug
On Add patient, Phone number textbox accepting alphabets, It should accepts only numbers and some special characters
Component
SDC library, reference app
To Reproduce
Steps to reproduce the behavior:

Go to 'Reference App'
Click on '+' icon to add patient
Enter First Name, family name, Date of birth
Tap on phone number, Observe keyboard
Enter Alphabets and click on Submit button
Observe behaviour

Expected behavior
Phone number should accept numbers and some special character
Screenshots

Smartphone (please complete the following information):
Device: Nokia 3.4
Android version: 11
Build number: 00WW_2_410

I think this is a duplicate of #650. Closing.


Azure DevOps Scaler Demands Must Be a Subset

Report
Possible bug Please review if is correct.
Reading the documentation: (https://keda.sh/docs/2.9/scalers/azure-pipelines/)

Using demands: KEDA will determine which agents can fulfill the job based on the demands provided. The demands are provided as a comma-separated list and must be a subset of the actual capabilities of the agent. (For example maven,java,make. Note: Agent.Version is ignored)

Reading the code:
https://github.com/kedacore/keda/blob/main/pkg/scalers/azure_pipelines_scaler.go
Line 364:
// Determine if the scaledjob has the right demands to spin up
func getCanAgentDemandFulfilJob(jr JobRequest, metadata *azurePipelinesMetadata) bool {
	var demandsReq = jr.Demands
	var demandsAvail = strings.Split(metadata.demands, ",")
	var countDemands = 0
	for _, dr := range demandsReq {
		for _, da := range demandsAvail {
			strDr := fmt.Sprintf("%v", dr)
			if !strings.HasPrefix(strDr, "Agent.Version") {
				if strDr == da {
					countDemands++
				}
			}
		}
	}

	return countDemands == len(demandsReq)-1
}

Not familiar with the code but looks to me it is not the subset but all the demands minus the version demand.
Expected Behavior
Demands should be a subset. Like the webpage says.
Actual Behavior
All the demands need to mache minus one
Steps to Reproduce the Problem

Demand a subset
do not use parent

Logs from KEDA operator
example

KEDA Version
2.9.3
Kubernetes Version
1.26
Platform
Other
Scaler Details
azure devops
Anything else?
I hope that I read correctly the code.

@Eldarrin , could you take a look? 🙏

Back from vacation soon; will take a look then. Couple of days.
Andy
Sent from my iPhone
On 5 Feb 2023, at 14:15, Jorge Turrado Ferrero @.***> wrote:

@Eldarrinhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FEldarrin&data=05|01||b6b269951a0c41d9b6a708db077b0527|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638111997163667121|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=23irNqlBdDw7wJtbgnKti4%2BBanK6tHiiHrMoQzxZ0ns%3D&reserved=0 , could you take a look? 🙏
—
Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkedacore%2Fkeda%2Fissues%2F4195%23issuecomment-1417809837&data=05|01||b6b269951a0c41d9b6a708db077b0527|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638111997163667121|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=p3NWwnTSPuceNaF5Ueds2fpgKjEVKaNWOJqLNL4x6nk%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHZ6XXW2NNRQSWGNTQZJ4X3WV6RWFANCNFSM6AAAAAAUQCNG5A&data=05|01||b6b269951a0c41d9b6a708db077b0527|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638111997163667121|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=Ppc91M5wW%2Bjo6sQFSxlqwgCJswUNQjual7qbtTQI6SU%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

So, this is a bug in the documentation, not a bug in the implementation. It is designed to match all, not match any.
I would suggest that I don't change this implementation, but extend it to have 2 options (demandsMatch: any and demandsMatch: all). Be aware though that with demandsMatch: any the scaler will spin up all agents that can match, not just the first one that hits as each scaler is independent of the others and there is no state across the scalers.
Parent type matching works better for these scenarios as it passes all the matching complexity into ADO rather than KEDA having to do it.

Thank you for the feedback. The demand "any" for us might work. ( I assume any as a subset of demands) We have our deployment per scaling, this is the reason for us being more useful to match a set only .
But I must say that we problay could change our architecture to work more with the scalar. I trust in your good judgement to decide how you think is better for your product. Thank you for your work.

hey there,
if I understand your requirement correct probably my PR will help you : https://github.com/kedacore/keda/pull/4203
The part in the docs with

Using demands: KEDA will determine which agents can fulfill the job based on the demands provided. The demands are provided as a comma-separated list and must be a subset of the actual capabilities of the agent. (For example maven,java,make. Note: Agent.Version is ignored)

was hard to understand for me as well. But I think we must differentiate three things:

the running buildagents have capabilities (the ones shown on the Agent details -> Capability tab)
the KEDA trigger has demands (specified in YAML)
the build jobs have demands

The part in the docs is related to 1. + 2.. If the KEDA triggers scales up a new build agent, the build agents capabilities have no direct relationship to the KEDA triggers demands. In theory the ScaledObject can have totally different capabilities to what the trigger has specified as demands and what the build job is expecting.
So, the docs stating the agents capabilities should be a subset of the KEDA triggers demands is correct, imho.
The problem the current implementation has and what I am trying to solve with https://github.com/kedacore/keda/pull/4203  is that there is no possibility to have a exact matching between 2. + 3. .
At the moment build jobs without any demands will scale all deployments.

Sorry for my ignorant question (I'm not an expert in AzDO). Doesn't https://github.com/kedacore/keda/pull/4203 fulfill your requirements? I mean, you could specify the demands you want as required.

@arthurgawronski The upcoming patch with requireAllDemands set to true on the ScaledJob will mean that the demands in the pipeline must exactly match the demands in the ScaledJob (with the exception of Agent.Version) to scale, so no demands would scale nothing. However, you are correct in that without this parameter, no demands in the pipeline scales everything.

@Eldarrin Does this mean that there is no way to support a multi-cluster approach where a ScaledJob is defined in two places for a single node pool i.e. a separate "capability"? This would always trigger scaling in both instances and one instance would ultimately be abandoned (only a job would only be scheduled on one of the agents)?

@arthurgawronski I'm not sure I understand exactly what you mean, so if my understanding is incorrect I apologise, but I think its this:
Regardless of which method you use, parent, require all, require subset, if multiple scalers are eligible to scale, they will scale.
This is because each scaler is an independent entity that evaluates its scaling position on its own. The only way around this would be to have a multi state matrix shared across all scalers of the same type. I'm not sure we can do this; @JorTurFer any thoughts?

Yes @Eldarrin , that is basically it.
There seems to be an old thread here (https://github.com/kedacore/keda/issues/1587) that seems to have some thought around a single "aware" component rather than all instances and/or ScaledJobs acting independently.
My only workaround at this point to support the multi capability/multi cluster requirement while continuing to support the use-case where the demands are not required and/or not set in the Azure Pipeline is the following:
ScaledJob1 with demands: CapabilityA with requireAllDemands true (PoolX) -> force to KEDA operator/ScaledJob on ClusterA
ScaledJob2 with demands: CapabilityB with requireAllDemands true (PoolX) -> force to KEDA operator/ScaledJob on ClusterB
ScaledJob3 with no demands specified (PoolX) -> only deployed to ClusterA
The above would trigger if someone demands CapabilityA in one scenario or CapabilityB, but not the other and, also hopefully not ScaledJob3.
On the empty set scenario, if demands are not set, Job1 and Job2 should not be scaled and only Job3 should be used.
I have tried to solution a "ScaledJob4" with "no demands specified" for ClusterB but this would still cause ScaledJob3 and ScaledJob4 to scale causing an abandoned Agent.
Unless you or @JorTurFer say otherwise or can see alternatives, for now, I'll need to deal with this agent pool being backed by only one empty set location.

The only alternative I can think of, but would require a bit of re-architecting of your scaledjobs. If you use parent then you push the scaler selection out of keda and into AzDo. Maybe something there may do it

I think the OP issue has been fixed by the PR#4405 & PR#4203; should this be closed?
I think @arthurgawronski 's issue is different to the OP's and actually is handled partially through ADO parent as this pushes that part of the state back to AzDO. We still have the concurrent spawn issue of #3782 however which also relates.

I close this issue, feel free to reopen it if the problem isn't solved


CI: sync file from 1.4.5

sync with: https://github.com/casper-network/casper-node/pull/2841

bors r+

bors try

bors r+


GitHub data collection

GitHub
interface GitHub {
   username: string;
   bio: string; // do we need Discord bio?
   avatarUrl: string
   followers: number;
   repos: number;
   communityStats: {
      [key: string]: number
   };
}

Is this Issue meant as a Github-Integration within the Nest-App?

Oh sorry just seeing this notification now. We have a GitHub Action that will send stats from our community Org Repos to our API

Thats nice! Luckily we dont have to handle different Accesstokens for different users then.

I'll start working on this. You can assign this Issue to me if you want.

Great, thanks 👍 . Sure assigned 🎉

GitHub
interface GitHub {
   username: string;
   bio: string; // do we need Discord bio?
   avatarUrl: string
   followers: number;
   repos: number;
   // ... any other useful info public info https://docs.github.com/en/rest/reference/users
   communityStats: {
      [key: string]: number
   };
}

Also playing with #61

Hi Eddie, could you please specify which of the properties are mandatory, and which of them are optional?
Thank you! :D

Thanks for the questions @Cahllagerfeld , here are my thoughts...

could you please specify which of the properties are mandatory, and which of them are optional?

I think the username is the only required property

Will we accept any Key, Value pairs in communityStats Object, or do we need to specify this more?

Ideally we should specify these, and do a check that it is in our allowed list. The list will come from GitHub events, here is the example usage for where the data will come from, and here are the docs for the list of events

Should we implement the Validationpipe mentionend in #41?

I think that would be great 👍 , it would allow us to re-use the validation in multiple places

I'll adjust these things and update the PR then.

Amazing, thank you 👍 - great questions ❤

I'm currently coding the TypeValidation for the DTO, but I'm still not getting the community stats completly I think.
Is this an object in which the properties are github-events or am I getting this wrong?
Could you explain it again pls? :sweat:

Sure, no problem 👍 sorry for not being clear

Is this an object in which the properties are github-events

yes you are correct - each time an event happens, the GitHub Action will send the event name and our API needs to increment it. Thinking about it before with Firebase, the Firestore DB did the increment, but our API will need to do it now
So I think the request from the GitHub Action can be
// POST
{
   // ...
   event: {
       issues: true
   }
}

Then we should increment the issues property by 1.
I am open to suggestions if you can think/see any improvements 🤓

I think I got it now. My first thought would be, that mapping the value is probably the best idea.
I'll think about it tomorrow if this could be optimizable at some point.