Add Soul Preserver proc to OoC Overlay

This should be added to any clearcasting graphic for any healer class. Soul Preserver has been recognized by almost every healer theorycrafting discord community as best in slot trinket for phase one b/c of its mana gains. Potentially still bis for other classes in phase 2+.

Hi, closing this issue as it was implemented in #149 and released in v0.9.5. Thanks for the help!


Upgrade CDN version of jQuery

https://github.com/django-oscar/django-oscar/pull/3018 updated the in-tree versions

Thanks!


can't setup wallet

When I go to setup it says 'existing account,' but I don't have one: I'm new to EOS... how does one get started without yet having an account or knowing what one is?

You've stumbled into one of the most confusing parts of the EOS (and EOSIO) user experience.  Currently to get an account on the blockchain, you have to go through some sort of 3rd party to have one created (a service, another person, a smart contract, etc).
Because of this - we don't yet have account creation for new users in Anchor, but it's something we've been working on for the last few months and will be releasing in the not too distant future. It's been hard to get right while keeping both easy and secure.
The easiest way today would be to:

Generate your key pairs, you'll need either 1 or 2 pairs (public/private pairs). You can do this by going into the Tools section under Manage Keys, and there's a button near the top to generate them locally. Save these someplace safe, external of the wallet, as a backup. These keys will control your account. There's options to copy them to your clipboard so you can back them up to your preferred location. Also click "Save to Wallet" in Anchor to save them within your wallet app.
Once you have your key pairs, you'll use the PUBLIC keys (the ones that start with EOS, NOT the ones that start with the number 5) to have a 3rd party create your account. There are a bunch of different services that will create accounts for new EOS users, many have a cost associated with them to cover the services cost in creating an account. By searching the internet for "eos create account" you'll likely stumble on a few of them. I hesitate to recommend any simply because I am not affiliated with any live services at the moment.
You'll use your PUBLIC keys in these services when asked, go through their processes, and they should create your account.
Once the account is created, in Anchor, you'll go into the setup process and click the "Automatically Detect" option. This will perform a lookup of the keys you saved in Step 1 against the API servers (using the public keys) to automatically find your account. It may take a minute or two for them to appear, depending on how fast or slow the account creation service is. Check the checkbox next to the account in question, hit import, and you should be good to go!

In the future if you ever setup a new wallet, you'll be able to take the private keys you saved in step 1 and just import them into Anchor (or any other wallet). The wallet will find your account and let you get setup again.
This process is complicated and honestly sucks - which is why we're working on solutions to make it easier. There are other wallets out there which already make it easier if you want to give them a shot. One word of warning though, is that a lot of the wallets that will do it for you for free retain control of the account, and thus ultimately your funds, and require a purchase after the fact to take full control of your account.

You've stumbled into one of the most confusing parts of the EOS (and EOSIO) user experience.  Currently to get an account on the blockchain, you have to go through some sort of 3rd party to have one created (a service, another person, a smart contract, etc).
Because of this - we don't yet have account creation for new users in Anchor, but it's something we've been working on for the last few months and will be releasing in the not too distant future. It's been hard to get right while keeping both easy and secure.
The easiest way today would be to:

Generate your key pairs, you'll need either 1 or 2 pairs (public/private pairs). You can do this by going into the Tools section under Manage Keys, and there's a button near the top to generate them locally. Save these someplace safe, external of the wallet, as a backup. These keys will control your account. There's options to copy them to your clipboard so you can back them up to your preferred location. Also click "Save to Wallet" in Anchor to save them within your wallet app.
Once you have your key pairs, you'll use the PUBLIC keys (the ones that start with EOS, NOT the ones that start with the number 5) to have a 3rd party create your account. There are a bunch of different services that will create accounts for new EOS users, many have a cost associated with them to cover the services cost in creating an account. By searching the internet for "eos create account" you'll likely stumble on a few of them. I hesitate to recommend any simply because I am not affiliated with any live services at the moment.
You'll use your PUBLIC keys in these services when asked, go through their processes, and they should create your account.
Once the account is created, in Anchor, you'll go into the setup process and click the "Automatically Detect" option. This will perform a lookup of the keys you saved in Step 1 against the API servers (using the public keys) to automatically find your account. It may take a minute or two for them to appear, depending on how fast or slow the account creation service is. Check the checkbox next to the account in question, hit import, and you should be good to go!

In the future if you ever setup a new wallet, you'll be able to take the private keys you saved in step 1 and just import them into Anchor (or any other wallet). The wallet will find your account and let you get setup again.
This process is complicated and honestly sucks - which is why we're working on solutions to make it easier. There are other wallets out there which already make it easier if you want to give them a shot. One word of warning though, is that a lot of the wallets that will do it for you for free retain control of the account, and thus ultimately your funds, and require a purchase after the fact to take full control of your account.


fix centering of give-info on mobile

before:
mobile screen

tablet

after:
mobile

tablet

We can merge this now, but it will be a temporary fix. The grid-component changes (#1545) that are upcoming largely remove the CSS, and fix the issue. (I just checked.)


fix: add social-card.png to public image directory

We're getting 404s on the generic social card in Countly:

This PR adds that image to the top-level public images directory on the theory that it'll always display and not be impacted by the random numbers that get added to image URLs on site build.
@zebateira, does this sound like the right approach?

We have a plugin to take care of this I believe: https://github.com/ipfs/ipfs-blog/tree/main/src/.vuepress/plugins/vuepress-plugin-og-image
cc @cwaring
It seems that for some reason the final page metadata with the fixed URLs are not persisted somehow? I ran the build locally and the plugin is running and fixing the urls correctly.

Ah, the final build indeed includes the correct urls with cache bust, so that's why it is working properly as we can see in metatags.io and in social media cards (the urls requested of the images include cache bust.

That makes sense. Any suggestions other than just "live with it"? Not sure if this is worth the effort of working hard to fix.

That makes sense. Any suggestions other than just "live with it"? Not sure if this is worth the effort of working hard to fix.

let's see if @cwaring has an idea of what we can do here.

Let's merge this fix as is since it will fix some edge cases.


Update rehearsing.py to disable limit of output errors during workflow testing.

During usage you would before see something to the effect of:
2024-04-16 00:00:00,000 - ERROR - {'context': [{'type': 'jinja', 'expression[2500 chars]t'}]} != {}
Diff is 4500 characters long. Set self.maxDiff to None to see it.

This change will make it so that that error no longer shows up.

 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.


The "Node" concept

I think it could be useful for describing the details of how we approach distributed operations to introduce the concept of a "Node" to express a locally encapsulated (subset of) an ECP deployment.
This could also be useful for what was proposed in the discussion on reliability (#4). That is, to have an alternative (less complicated, more reliable) message transport mode for "local" (i.e. limited to one Node) applications, e.g. using Queues between threads instead of zmq.
My first (and very WIP) formulation would be

Node
A Node is a local context in which (part of) an ECP deployment runs. This might be a single application using one or more threads. A Node may use a local Message Transport instead of the default Distributed Message Transport (zmq). Components in a Node must communicate with other Nodes' Components via the Distributed Message Transport.

In the same breath, it makes sense to also introduce the term "message transport" (name TBC, I'm open for improvement suggestions)

Message Transport (Distributed/Local)
The communication layer that transports ECP messages between components. The Local Message Transport (default TBD) only works within a Node. The Distributed Message Transport (zeromq) also works across Nodes.

Open question: In some contexts, "node" means a (physical) computer. Does it make sense to preserve/integrate that interpretation, or does it not make sense as for zmq it doesn't really matter if sources/sinks are on the same PC or somewhere else over the network? (or does it?)
Thoughts?

I propose the following definition: Node is a single participant in the ECP network communication. It might be an encapsulation of different software parts, which do not participate in the network themselves.
That should be clear enough and shows, that a Device connected via Ethernet to a Driver is not a node (only the corresponding actor).

That is already a "Component", at least as per the current status of the glossary PR. I should have explicitly called that out.

A Driver is a component (part of ECP), but not a node (does not participate in the network). Or am I wrong?

In the current formulation (mine), yes, because Driver is equivalent to the new "Actor". I have not yet updated the PR because the issue you opened is not resolved yet.
In the updated formulation, I plan that a Driver will be "filed" under Actor (only an Actor has a Driver), so not a separate Component.

Now I get it: Node is a collection of components, which share additional communication possibilities with each other, such that message transfer could happen via different means than zmq.
For example the components on a single computer could use queues to exchange data.
(to clarify my use in the other issue: Formerly I used node for every "communication endpoint", that means component communicating)
Zmq offers different protocols. For tcp it does not matter, if the communication partner is in the same computer or elsewhere. The inproc (in a process) and IPC (between processes) protocols require "locality".

A question regarding intention of the node definition: Do you intend to make a transparent transition between the components of one node and the Zmq network, or do we distinguish between single node mode (similar current pymeasure) and multi node, which requires Zmq for all communication?
The combination of some components in one (or several) node and the other ones directly in the network, seems quite complex to me (at least if any combination is possible. Certain combinations are more easy, like current pymeasure, which publishes the data).

Now I get it: Node is a collection of components, which share additional communication possibilities with each other, such that message transfer could happen via different means than zmq.
For example the components on a single computer could use queues to exchange data.

Yes! Although the "collection of components" is imo still a "network", and the Node provides the context they are operating in (local/distributed).

Zmq offers different protocols. For tcp it does not matter, if the communication partner is in the same computer or elsewhere. The inproc (in a process) and IPC (between processes) protocols require "locality".

That is good to know, so Distributed vs. Local Message Transport is not a question purely of zmq vs. something else, but there could be "local" modes using zmq, too. I'll edit above.

A question regarding intention of the node definition: Do you intend to make a transparent transition between the components of one node and the Zmq network, or do we distinguish between single node mode (similar current pymeasure) and multi node, which requires Zmq for all communication?
The combination of some components in one (or several) node and the other ones directly in the network, seems quite complex to me (at least if any combination is possible. Certain combinations are more easy, like current pymeasure, which publishes the data).

I wrote that "Components in a Node must communicate with other Nodes' Components via the Distributed Message Transport", so I imagine that as soon as a Component wants to communicate outside its Node, it needs to use the Distributed Message Transport.
For simplicity it indeed seems best (at least for now) to use a single-node or multi-node mode.

I missed that apostrophe and understood (wrongly) communication with components of the same node...
Thinking while riding, I figured, that it is not difficult to have some components in a node. At least in my test implementation, it would be feasible (kind of coordinator-coordinator connection. Similar to NAT, the node's endpoint is a coordinator translating between the internal/external network).

Thinking while riding, I figured, that it is not difficult to have some components in a node. At least in my test implementation, it would be feasible (kind of coordinator-coordinator connection. Similar to NAT, the node's endpoint is a coordinator translating between the internal/external network).

Yes, that sounds feasible -- so LMT inside a Node, and if you want to cross to another Node, you have to go via a Coordinator and DMT. That would nicely limit the impact/additional complexity, as only the Coordinator can reach out of a LMT Node.

I added a formulation for the "Bridging Coordinator" feature (optional for now, to be refined/confirmed later).

Another implementation idea: in a node, we could use "virtual sockets". They behave like sockets, but push / pull the messages through a pipe or so.
That way the code does not notice, that it talks differently.

Is that maybe similar to what zmq inproc does internally? 🤷♂

I am really not quite sure how we can make the ECP agnostic to programming languages, and then introduce something which will necessarily depend heavily on implementation details in the respective language. zmq can easily talk between programs written in different languages (as far as I understand it), but I doubt that e.g. python queues will work in a similar way with C++ or LabView. It is therefore difficult for me to imagine how we can make a protocol definition for that.
I am aware of the concerns about reliability in #4, and I think there is a valid point about the switch from zmq to queues, since there can be instances where "zmq will drop messages (more or less) silently (can be asserted for)", and of course even if we use tcp on one machine, the OS might screw this up (although very unlikely), and if we are on distributed machines, the routers/switches/cables might get screwed up, and then messages are dropped.
I am not sure how well we can separate these things, how well we can say "let's do it in LMT", and then some additional machine needs to be added and we'll say "let's stay with LMT within this one node, and do DMT to the other machine". I think interconnecting LMT and DMT like this would be an unnecessaritly large piece of work, and not necessarily necessary. Once multiple machines are involved, DMT is necessary (easiest for all Components to be involved on equal footing, without bridging LMT and DMT), and if not, then LMT is an option. Once we have something go over DMT, we anyways loose the possible reliability advantage (ok, sure, not within the node, but still), and then we can just go full DMT anyways.
Regarding inproc and IPC: IPC only works on linux, so I would like to avoid it. Otherwise, inproc is no different from tcp in terms of reliability from the zmq point of view (if we consider the OS and the network infrastructure not to give us any trouble). Messages dropped over zmq.tcp will also be dropped over zmq.inproc. inproc is faster, and does not need tcp sockets/ports, it can have quite arbitrary names for sockets, but it only works within the same process, i.e. in the same zmq context afaik.
If we can define the whole protocol in a way that we can seamlessly switch between zmq and python queues, that would sound fine, then we can have a simple keyword-switch on instantiating Components to say whether it now should work LMT or DMT. However, I am afraid that the implementation in zmq and queues would differ quite a bit, and I am not sure whether one protocol would fit both ways. On the side of the implementation, we can surely do both, but much of what is needed for the DMT mode and zmq (starting with knowing IP addresses and selecting ports, and going towards protocol definitions of zmq header frames) becomes irrelevant with LMT (queues, or similar, NOT zmq inproc if that is what was desired).

Even with queues, we have to distribute messages, therefore, the header frame can stay the same.
In the end, we need objects, which send and receive a series of bytes objects. That can be a Zmq socket or a queue. So it is easy to make a Component use queues instead of Zmq sockets (similar to using a manually created Serial Adapter vs giving a Visa resource string to an instrument in pymeasure).
We will loose some interoperability in a local environment, but I don't see it as a problem.
Also interoperability can be achieved easily with a Coordinator, especially as we solved, how coordinators talk to each other.
I don't see it as a large problem.
We can try it out, once we have the distributed mode.

Regarding the connection types I second @bklebel.

Thanks for raising the point of LMT between languages, that is an issue. We could place some additional restrictions as needed for the various LMT connection options. (E.g. If you want to use thread queue-based LMT, you need to stay in one language/one program).
Regarding LMT in one Node and DMT elsewhere: So far we have considered inter-Node messaging to only happen via Coordinators, so I'm not concerned about that.
However, this raises an important thing that I think we haven't touched yet:
Do we allow direct Component-to-Component connections without a Coordinator as intermediary?
If no, LMT/DMT routing will be easier, but we effectively always need a Coordinator in the network.
If yes, small networks will be simpler, but our Components potentially need to maintain multiple connections, and we generate a couple more questions: what about Processors? What about PUBlishing? how do Components discover other Components (only via the user?,...)

Leaving out a Coordinator is difficult from another point of view, too: One socket of a connection binds to some address (host and port), while the other one connects to that address (all socket types can do either one).
Right now, only Coordinators bind and everybody else connects. If we change it, it gets complicated.
What we could do, is to create (in the reference implementation) a Director, which contains internally a Coordinator.

That's a good datapoint in support of always having a Coordinator. It's fine by me, we just have to decide that.
So probably, the smallest network needs 1 Coordinator, 1 Director, 1 Actor. Maybe a very simple Director that is basically our command&control interface to the ECP.

What we could do, is to create (in the reference implementation) a Director, which contains internally a Coordinator.

I wouldn't hide too much of the structure. I would have the Director create a Coordinator, not contain it. Or we have the starter bring up everything.

I was sloppy on expression as I meant one piece of code, which contains Director and Coordinator (already pre-configured to work together) for a faster start.

I pushed an update to #24, requiring excatly one Coordinator per Node.


Flaky kernel compile failure on WinUWP bot

I'm seeing CI failures in the WinUWP presubmit shard that appear to be related to building kernel_blob for test fixtures.
Example failures include:

Dark SDK roll https://github.com/flutter/engine/pull/30033: failure log
Skia roll https://github.com/flutter/engine/pull/30034: failure log
Third-party patch Dark SDK roll https://github.com/flutter/engine/pull/30013: failure log
Fuchsia patch  https://github.com/flutter/engine/pull/30041: failure log

The error seems to be related to kernel builds, specifically during kernel compiles during the step where GN invokes dart running frontend_server.dart.snapshot. Example:
FAILED: gen/flutter/runtime/assets/no_plugin_registrant_kernel_blob.bin
C:/b/s/w/ir/cipd_bin_packages/cpython3/bin/python3.exe ../../build/gn_run_binary.py ../../flutter/prebuilts/windows-x64/dart-sdk/bin/dart.exe C:/b/s/w/ir/cache/builder/src/flutter/prebuilts/windows-x64/dart-sdk/bin/snapshots/frontend_server.dart.snapshot --sdk-root C:/b/s/w/ir/cache/builder/src/out/winuwp_debug/flutter_patched_sdk --target flutter --sound-null-safety --output-dill gen/flutter/runtime/assets/no_plugin_registrant_kernel_blob.bin --depfile C:/b/s/w/ir/cache/builder/src/out/winuwp_debug/gen/flutter/runtime/snapshot__dsk__ds_no_plugin_registrant.depfile.d C:/b/s/w/ir/cache/builder/src/flutter/runtime/fixtures/no_dart_plugin_registrant_test.dart
Traceback (most recent call last):
  File "../../build/gn_run_binary.py", line 23, in <module>
    subprocess.check_output(args, stderr=subprocess.STDOUT, universal_newlines=True)
  File "C:\b\s\w\ir\cipd_bin_packages\cpython3\bin\lib\subprocess.py", line 415, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "C:\b\s\w\ir\cipd_bin_packages\cpython3\bin\lib\subprocess.py", line 493, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\b\s\w\ir\cipd_bin_packages\cpython3\bin\lib\subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\b\s\w\ir\cipd_bin_packages\cpython3\bin\lib\subprocess.py", line 1311, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

The engine tree is now closed due to the same flake happening in post-submit.

I suspect this may be flaking as it's missing an explicit dependency. The flaky bot had not run a devicelab test, but the successful bot had.
I created a task with clobber: true to wipe the deps and do a clean run of the task to see if it passed. Otherwise the failure is elsewhere - https://chromium-swarm.appspot.com/task?id=5790ff45f85d2b10

I found https://chromium-swarm.appspot.com/bot?id=flutter-try-windows-us-central1-b-18-2l93 which is a clean bot that ran the task on first try. I suspect there may be another task that impacted the environment

Lowering priority as this isn't directly blocking the tree.

Tree closed again: https://luci-milo.appspot.com/p/flutter/builders/prod/Windows Host Engine/12909

Escalating to P0 as the try pool is indicating this build issue is happening very frequently - https://ci.chromium.org/p/flutter/builders/try/Windows UWP Engine?limit=100

@cbracken is able to reproduce locally. After manually extracting the dart sdk, this is fixed. I'm working on getting a windows cloudtop, but it'll take a day to get setup
A list of current thoughts:

The file has a write lock placed on it due to a running process, but Windows doesn't fail the extraction as it'll finish the write on reboot
https://github.com/flutter/engine/blob/main/tools/download_dart_sdk.py hiding failed to write on windows

@cbracken I'm going to hand this off to you as it sounds like you're making the most progress. I don't think my windows env will be ready for testing this until EOD.

Unfortunately I'm already working on a very high priority item and won't be able to pick this up.

Could this be related to https://github.com/flutter/engine/commit/e022c9283c4053a533599ab9b1e3559931248670 cc @zanderso

I'm blocked on admin privileges being granted to my windows cloud top. For now, I can't even clone a copy of the engine or run python. Worst case is approval will take 24 hours.

My current understanding is this can be reproduced by rebuilding on windows (or forcing the dart sdk to be updated).
To work on this, we'll need to add checks in https://github.com/flutter/engine/blob/main/tools/download_dart_sdk.py to ensure there's no write locks on bin/ and if so forcefully remove those files.
I'm unassigning myself as this is marked as P0, and i'm unable to work on this until 12/6. However, if it's still open and unassigned i'll assign it back.

\cc @godofredoc

Checking out dart sdk was failing silently when downloading canvas kit and failing later during the process when trying to use the dart sdk:
https://ci.chromium.org/p/flutter/builders/try/Windows Host Engine/30055

This issue was mitigated setting this bug as P1

Actually getting back to P0 as it keeps failing very frequently on staging.

Is any progress being made on this? I haven't seen chatter about this issue in the sheriff chat. Does this need to be at a P0 still?

The remaining part is to patch https://github.com/flutter/engine/blob/main/tools/download_dart_sdk.py to handle readonly files properly.
https://stackoverflow.com/questions/2656322/shutil-rmtree-fails-on-windows-with-access-is-denied describes the fix. Anyone from engine that can help us land and test the change?

By the way the failures on presubmit were related to all PRs that needed to get rebased to pick up the change to update the flags of download_dart_sdk.py

This is fixed. Remaining failures in presubmit are because the PRs need to get rebased.


Share in chrome browser cannot share to webaps

Webapps link is present in the share list but i cannot share to twitter or linkedin web apps as it is possible with official apps...
It is a big issue for me.

I tested this on my phone and it works as expected. I browsed to a site in Chrome that also has a sandbox in WebApps, I then went into a specific page, shared that to WebApps, and WebApps opened that specific page it in the sandbox. Can you maybe try on another device?

Individual webapps won't appear in the share menu, but you can share to WebApps and it will open the link in the correct webapp.


Add getCoinbaseWalletLogo Method

Summary

Added method to return CB Wallet logos as SVG URIs

How did you test your changes?

Added unit tests
Tested locally with test dapp (see gif below)

Please help


[GPU/OpenCL] OpenCL pipeline for layer execution on GPU @open sesame 03/07 10:42

This PR includes the initial version of OpenCL pipeline for layers to run on GPU. Following wrappers have been added which uses OpenCL APIs internally:

opencl_loader: Loading required OpenCL functions.
opencl_context_manager: Getting device details and managing context creation globally.
opencl_command_queue_manager: Creation and deletion of global command queue, reading and writing buffers, dispatching kernels.
opencl_kernel: Managing kernels and setting arguments.
opencl_program: Building and managing OpenCL program.
opencl_buffer: Creating, reading and writing data on OpenCL buffer.

opencl_op_interface has been created to handle the workflow of kernel execution.
Tensor level changes:

Added cl_interface to handle tensor operations which will be executed on GPU.
Added experimental naïve OpenCL kernel for SGEMV which can be useful for testing the initial pipeline.
Modified sum and sum_by_batch function signatures to use boolean flag for choosing compute engine (CPU/GPU).

enable-opencl flag incorporated in meson.options
Update (23 Feb 2024):

ml::train::LayerComputeEngine enum added to handle compute engine information.  Only FullyConnected layer API signature modified as of now.
createLayer  API modified to propagate compute engine info via factory to layer_node.
cl_context created to handle global configuration of OpenCL environment which will create command queue and context for OpenCL and register layers to be run on GPU.
Getter and setter for compute engine added to layer_context along with utility to create kernel.
Modified build configurations as required.
Added UT for cl_context global instance creation with GPU command queue.

opencl_op_interface can be deprecated later. Restored sum and sum_by_batch function signatures as tensor level kernels are not required at this moment. Refactored experimental naïve OpenCL kernel for SGEMV.

Signed-off-by: Debadri Samaddar<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2465. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

please add the doxygen comment in the codes.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_loader.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, The last line of a text file must have a newline character. Please append a new line at the end of the line in nntrainer/opencl/opencl_kernel.cpp.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_loader.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_loader.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/tensor/cl_operations/cl_sgemv.cpp does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/tensor/cl_operations/cl_sgemv.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_loader.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

:octocat: cibot: @s-debadri, nntrainer/opencl/third_party/cl_platform.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

@s-debadri
in case of third party code you can ignore doxygen ci error
And if you want to fix, cpp or clang ci error --> you can see details --> git action summary or cmd log

:octocat: cibot: @s-debadri, nntrainer/opencl/third_party/cl_platform.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @s-debadri, nntrainer/opencl/opencl_buffer.cpp includes bug(s). Please fix incorrect coding constructs in your commit before entering a review process.

I found this commit emits error when using ndk-build in the current main
ld: error: undefined symbol: nntrainer::ClContext::Global()
>>> referenced by layers_dependent_common_tests.cpp:38 (../unittest/layers/layers_dependent_common_tests.cpp:38)
>>>               /home/sungsik/nntrainer/test/obj/local/arm64-v8a/objs/unittest_layers/__/unittest/layers/layers_dependent_common_tests.o:(LayerSemantics_createFromClContext_pn_Test::TestBody())

ld: error: undefined symbol: int const nntrainer::ClContext::registerFactory<nntrainer::Layer>(std::__ndk1::function<std::__ndk1::unique_ptr<nntrainer::Layer, std::__ndk1::default_delete<nntrainer::Layer> > (std::__ndk1::vector<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::allocator<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > const&)>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, int)
>>> referenced by layers_dependent_common_tests.cpp:40 (../unittest/layers/layers_dependent_common_tests.cpp:40)
>>>               /home/sungsik/nntrainer/test/obj/local/arm64-v8a/objs/unittest_layers/__/unittest/layers/layers_dependent_common_tests.o:(LayerSemantics_createFromClContext_pn_Test::TestBody())

ld: error: undefined symbol: nntrainer::opencl::ContextManager::ReleaseContext()
>>> referenced by layer_context.h:829 (/home/sungsik/nntrainer/nntrainer/layers/layer_context.h:829)
>>>               /home/sungsik/nntrainer/test/obj/local/arm64-v8a/objs/unittest_layers/__/unittest/layers/layers_golden_tests.o:(nntrainer::RunLayerContext::~RunLayerContext())
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

I found this commit emits error when using ndk-build in the current main
ld: error: undefined symbol: nntrainer::ClContext::Global()
>>> referenced by layers_dependent_common_tests.cpp:38 (../unittest/layers/layers_dependent_common_tests.cpp:38)
>>>               /home/sungsik/nntrainer/test/obj/local/arm64-v8a/objs/unittest_layers/__/unittest/layers/layers_dependent_common_tests.o:(LayerSemantics_createFromClContext_pn_Test::TestBody())

ld: error: undefined symbol: int const nntrainer::ClContext::registerFactory<nntrainer::Layer>(std::__ndk1::function<std::__ndk1::unique_ptr<nntrainer::Layer, std::__ndk1::default_delete<nntrainer::Layer> > (std::__ndk1::vector<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::allocator<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > const&)>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, int)
>>> referenced by layers_dependent_common_tests.cpp:40 (../unittest/layers/layers_dependent_common_tests.cpp:40)
>>>               /home/sungsik/nntrainer/test/obj/local/arm64-v8a/objs/unittest_layers/__/unittest/layers/layers_dependent_common_tests.o:(LayerSemantics_createFromClContext_pn_Test::TestBody())

ld: error: undefined symbol: nntrainer::opencl::ContextManager::ReleaseContext()
>>> referenced by layer_context.h:829 (/home/sungsik/nntrainer/nntrainer/layers/layer_context.h:829)
>>>               /home/sungsik/nntrainer/test/obj/local/arm64-v8a/objs/unittest_layers/__/unittest/layers/layers_golden_tests.o:(nntrainer::RunLayerContext::~RunLayerContext())
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

@skykongkong8
This requires ENABLE_OPENCL to be true in meson_options.txt while building libnntrainer.so.
Or, nntrainer/test/jni/Android.mk can be modified as such:

Modify setup for unittest_layers and remove -DENABLE_OPENCL=1 from LOCAL_CFLAGS variable.
This will disable OpenCL dependency for unittest_layers.

@s-debadri
Right.. then could you make a PR for that issue?


[BUG] NAM VST plugin 0.7.11 can load gated activation models but there is no sound

Hi Steve,
I've read on the blog post that gated activation models should be fixed now. I've just trained a model with v0.10.0 which has the "gated" flag set to "True" in the second layer.
I can load it in the NAM plugin (v 0.7.11) inside Reaper but there is no sound coming out.
Model is attached.
checkpoint_best_epoch=0213_step=13268_ESR=0.00694_MSE=5.965e-05.zip
Thank you for taking the time to read this.

I'll have a look

I'll have a look

Many thanks Steve.

Here's a model that does work. Both layer arrays used gated activations: gated.nam. Seems fine to me.
But I see you said you used it in the second layer array. Let me check that.

Another, gated2, whose second layer array only is gated.
Seems to sound the same to me (both are modeling the same data).
But I'm also on the latest commit on main. Let me revert to 0.7.11 and check that just to be sure.

Nope, still works.
I also opened yours, and it sounds like a high-gain amp...so presumably working as expected.
Can you check the models I shared?
Also, can you double-check that you're actually using v0.7.11? Perhaps the install failed to overwrite the previous version?

Nope, still works.
I also opened yours, and it sounds like a high-gain amp...so presumably working as expected.
Can you check the models I shared?
Also, can you double-check that you're actually using v0.7.11? Perhaps the install failed to overwrite the previous version?

Thank you Steve. I double-checked and I was still on 0.7.9 .... so sorry about that. Not sure how that happened - I recall perfectly having installed 0.7.11.
Gated models work fine now.


Pressure sensitivity

Is is possible to draw thick and thin strokes depending upon the pressure that is applied by the stylus?

This is definately not implemented at the moment.
I guess, in theory, this could be accomplished by adding a library like pressure.js: https://pressurejs.com/
Though this is nothing that can be done in 5 minutes.


iOS - Document removed from a published set not cleared from cache when app is re-opened from background

My Meteor collection seems to be keeping documents in the cache even after they are unpublished by the server (by changing one of their properties) when the app is re-opened from the background after locking the screen.

Open the app
Add a new document which becomes published
Minimize the app/lock the screen
Modify the first document so it becomes unpublished and add a new one that is published
Re-open the app

If I follow these steps I end up with both documents being returned by my collection().find call, despite the first document no longer being published by the server.
It looks like this is probably an issue with minimongo-cache not properly clearing out data, but I thought it would be best to post the issue here first.
Also, I haven't been able to reproduce the same issue on Android.

Okay, after digging around in the code, this is what I found.
The issue is occurring on both iOS and Android, when you lose your DDP connection. I only noticed it on iOS because the connection is killed every time you lock the screen, unlike on Android where it is kept alive in the background.
When you reconnect, all of the documents currently being published by the server are sent to react-native-meteor client. An upsert is done, your documents are added/merged in their respective minimongo collection, and everything is wonderful.
However, if any documents are removed from the publication while you are offline, there is no corresponding 'removed' event that can be fire when you reconnect. So, you end up with an unpublished document stuck in your minimongo collection until memory is cleared.
The only thing I could think of doing was clearing out all documents from each collection in minimongo when you establish a DDP connection.
// react-native-meteor/src/Meteor.js:97
Data.ddp.on("connected", ()=>{
  // Begin changes
  if (Data.db && Data.db.collections) {
    // Loop through all the collection names and remove() all documents from each one
    for (var collection in Data.db.collections)
      Data.db[collection].remove({});
  }
// end changes

  Data.notify('change');

  console.info("Connected to DDP server.");
  this._loadInitialUser().then(() => {
    this._subscriptionsRestart();
  });
});

If this is just a terrible way of handling this situation, someone please please let me know. But I absolutely need to be rid of those old documents getting stuck in the cache and I can't figure out any alternative in the time I have.
Thanks!

This is a nice finding @eawall! Gonna do some look on this when I have some time
/cc @noris666

I've done some tinkering around with this over the holidays, and I think that I have something close to a working solution.
The idea is to keep a map of collections/document ids that pass through Data.ddp.on("added") when reconnecting. Then, when all subscriptions have had their "ready" callbacks executed after reconnecting, you iterate through the minimongo collections and remove any document that ISN'T in the map. This prevents a lot of screen-flickering/re-rending when you reconnect.
I'll post a snippet of my changes to Meteor.js below. If one of the contributors feels this is an appropriate solution, I'll submit a pull request.
//...
_subscriptionsRestart() {

  for(var i in Data.subscriptions) {
    const sub = Data.subscriptions[i];
    Data.ddp.unsub(sub.subIdRemember);
    sub.subIdRemember = Data.ddp.sub(sub.name, sub.params);
    sub.resubscribed = false; // set resubscribed to false, to keep track of which subs have had 'ready' called
  }

},
_collectionIdsHash: {}, // the map to store collections/document ids

  //...

  Data.ddp.on("disconnected", ()=>{
    this._collectionIdsHash = {}; // empty out the map on disconnect, because all subs will be restarted on reconnect

    //...

  });

  Data.ddp.on("added", message => {
    if(!Data.db[message.collection]) {
      Data.db.addCollection(message.collection)
    }
    Data.db[message.collection].upsert({_id: message.id, ...message.fields});

    // add the collection/document id to the map
    if (!this._collectionIdsHash[message.collection]) {
      this._collectionIdsHash[message.collection] = [];
    }
    if (this._collectionIdsHash[message.collection].indexOf(message.id) < 0) {
      this._collectionIdsHash[message.collection].push(message.id);
    }
  });

  Data.ddp.on("ready", message => {
    const idsMap = new Map();
    for(var i in Data.subscriptions) {
      const sub = Data.subscriptions[i];
      idsMap.set(sub.subIdRemember, sub.id);
    }
    for(var i in message.subs) {
      const subId = idsMap.get(message.subs[i]);
      if(subId){
        const sub = Data.subscriptions[subId];
        sub.ready = true;
        sub.readyDeps.changed();
        sub.readyCallback && sub.readyCallback();
        sub.resubscribed = true; // set this subscription as resubscribed
      }
    }

    // iterate through all the subscriptions to see if they've all been "re-readied"
    var allResubscribed = true;

    for (var sub in Data.subscriptions) {
      if (Data.subscriptions[sub].resubscribed == false) allResubscribed = false
    }

    // if every subscription has finished, the collection/document ids map should contain the ids of every subscribed document.
    // therefore, we are able to remove all documents from minimongo that do not appear in the map
    if (allResubscribed) {
      for (var collection in this._collectionIdsHash) {
        if (this._collectionIdsHash[collection].length && Data.db && Data.db.collections && Data.db[collection]) {
          Data.db[collection].remove({
            _id: {
              $nin: this._collectionIdsHash[collection]
            }
          });
        }
      }
    }
  });

  //...

  Data.ddp.on("removed", message => {
    Data.db[message.collection] && Data.db[message.collection].del(message.id);

    // remove the document id from the map
    if (this._collectionIdsHash[message.collection] && this._collectionIdsHash[message.collection].indexOf(message.id) > -1) {
      this._collectionIdsHash[message.collection].splice(this._collectionIdsHash[message.collection].indexOf(message.id), 1);
    }
  });

@eawall you can create PR for fix it

Was a PR ever created for this? I am seeing this issue as well.

@eawall I believe your earlier solution of clearing all collections on connect is actually the correct and more robust one. Here is what I ran into with your second solution:

I have a subscription for "orders"
I have an order in the orders collection.
When I navigate to another screen on the react-native app, the subscription is stopped, but the order is still in the mini-mongo cache.
I disconnect from Meteor and remove the order from server.
I reconnect to Meteor. With your latest code, only active subscriptions get cleaned up for stale documents. However, my orders subscription is not active, so its stale document will not get cleaned out.
When I navigate to the orders page, the subscription is activated, but the stale order is still in the cache and shows up.

I believe your original solution is actually the correct one!


Connection reuse

Hiiiii! Feature request!
Currently, rest-client provides no way to reuse a connection for multiple requests - something that's assumed to be supported in the HTTP 1.1 spec:

A significant difference between HTTP/1.1 and earlier versions of HTTP is that persistent connections are the default behavior of any HTTP connection. That is, unless otherwise indicated, the client SHOULD assume that the server will maintain a persistent connection, even after error responses from the server.

Obviously, rest-client isn't violating the spec by closing the connection after the first request. But connection reuse is awesome! And it would be an extremely useful feature. I can think of a few ways it could be added:

Add a RestClient::Connection interface, which keeps a Net::HTTP connection open (see the docs for persistent connections) until the connection object is closed. Code with a reference to that object could then make requests using that connection. RestClient::Connection could provide basic thread safety, or even pooling. It could also choose to automatically reconnect or not in the case of certain errors.
Use a gem like net-http-persistent as a drop in replacement for Net::HTTP. The gem internally handles connection pooling, automatic reconnects, and thread safety, but that'd mean adding magical connection reuse by default  to the most basic use-cases of rest-client.

For either of those approaches, the new functionality could also be hidden behind an optional param to execute: :persistent => true or something like that.
Let me know what you think! If either sounds reasonable to you, let me know and I'd be happy to work on a PR.
Colin

Hello everyone, Good afternoon.
Details:

Name
Version

Ruby
ruby 2.2.2p95 (2015-04-13 revision 50295) [i386-mingw32]

Ruby on Rails
Rails 4.2.4

gem
2.4.8

DevKit
4.7.2

Note. I am using Dev Kit.
I was trying the following, in Windows 7 (32-bit):
Error output terminal:
Errno::ECONNREFUSED (No connection could be made because the target machine actively refused it. - connect(2)): for "localhost" port 3000

IRB Error

Check out these posts on Stackoverflow

Rails email with gmail smtp error “Errno::ECONNREFUSED - No connection could be made because the target machine actively refused it.” link

Errno::ECONNREFUSED (Connection refused - connect(2) for “localhost” port 587) action mailer link

Do the indicating posts:
Add the following lines in the file: config\environments\development.rb
# config.action_mailer
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    user_name<EMAIL_ADDRESS>    password: 'yourpassword',
    authentication: 'plain',
    enable_starttls_auto: true
  }

and switch to true:
  # Don't care if the mailer can't send.
  config.action_mailer.raise_delivery_errors = true

Neither it worked, unfortunately the problem continues to exist.
Please can you help me solve this problem. I would appreciate.
P.S. Hello @colinmarc , Can I have explained a little more detail your solution ?. Sorry for the inconvenience, I am a person who is taking his first steps in the language Ruby and the Ruby on Rails framework. I would appreciate.

one could probably test for the existence of Net::HTTP::Persistent right here and then use one or the other. The programmer would have to require the gem themselves, beforehand.

It might also be neccessary to get in here: https://github.com/rest-client/rest-client/blob/master/lib/restclient/request.rb#L766-L778

To illustrate the difference in speed, I created a tiny demo-script here: https://github.com/ccoenen/rest-client-persistent-http-demo
The difference is huge, especially for https connections:
timing 20 requests to https://www.example.com
                                user     system      total        real
Plain Net::HTTP#get         1.703000   0.391000   2.094000 ( 11.465042)
Persistent HTTP#request     0.031000   0.000000   0.031000 (  2.692170)
RestClient#get              0.562000   0.015000   0.577000 ( 10.478902)

The timing above is surprising, with Plain Net::HTTP significantly slower on CPU than RestClient?
I'm consistently getting more like:
timing 25 requests to https://www.example.com
                                user     system      total        real
Plain Net::HTTP#get         0.090000   0.010000   0.100000 (  1.801354)
Persistent HTTP#request     0.020000   0.010000   0.030000 (  0.499080)
RestClient#get              0.280000   0.040000   0.320000 (  2.037509)

with RestClient >> Plain Net::HTTP >> Persistent HTTP.

@ccoenen or @colinmarc I don't suppose either of you have a fork, do you?

no

@colinmarc Thanks for the recommendation. I'm trying to switch one of our existing libraries over now. I've even submitted a PR to excon for nicer logging. :)

FYI: you can pass a custom LWP user agent to REST::Client, and for that you can specify keepalive option to enable the connection cache.
So adding a keepalive option that is passed when creating the default client would basically solve this problem. Passing your own user-agent object is not a massive overhead, but feels like a workaround..


Fix spelling mistake in image

What? and Why?

What does this pull request change/fix? Why was it necessary?

Mend spelling mistake in RSI image.
Checklist

[x] CHANGELOG.md updated? (if required)

Codecov Report

Merging #126 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #126   +/-   ##
=======================================
  Coverage   88.56%   88.56%
=======================================
  Files          24       24
  Lines        1827     1827
=======================================
  Hits         1618     1618
  Misses        209      209

Continue to review full report at Codecov.

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

 Fix spelling mistake in RSI image


Track Zarr-Python Integration

Meta Issue to track work related to Zarr-KvikIO
Zarr PRs:

https://github.com/zarr-developers/zarr-python/pull/934
https://github.com/zarr-developers/zarr-python/pull/988
https://github.com/zarr-developers/zarr-python/pull/1396

KvikIO PRs:

https://github.com/rapidsai/kvikio/pull/129
https://github.com/rapidsai/kvikio/pull/131

I think everything has been done :)


Plex Icons are blank

The icons on the Plax tab are not displaying.  Tried to uninstall PIL (via control panel) and installed pillow (pip install pillow).  hptc-manager service would not start.  Reverted back to PIL so the service would start.
[Do not see a line for this in the about tab] Version
[master2] Branch
[2f3e2f0fbec46a039e17628bee267cd8602dc2d8] Commit hash
[Windows 10] Operating system
[2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)]] Python version
[Installed as per the wiki] What you did?
[Plex tab does not show icons] What happened?
[] What you expected?
[] How can we reproduce your issue?
[] What are your (relevant) settings?
https://gist.github.com/osuhickeys/a8bb6d11453f020f63ab98c6d551a867

Fix your install. You get a import error in your logs.

The install of Plex, pil, pillow, or htpc-manager?

pil / pillow. Pil/pillow isn’t required of the Plex module btw. Just disable it in Plex settings.

I uninstalled Pil from the control panel this time and installed pillow using "pip install pillow".  I think last time I uninstalled pil vis "pip uninstall pil".  I was able to get htpc manager to work and the icons are now updating.  That made the c module error disappear from the logs.


Parameter of a generic interface doesn't work when it's a generic index of an another interface

TypeScript Version:  typescript@next, <EMAIL_ADDRESS>Search Terms:
generic index is not assignable
Code
interface SettingsTypes {
  audio: {
    volume: string;
  };
  video: {
    resulution: string;
  }
}

interface Settings<Params extends { [K in keyof Params]?: string }> {
  config: Params;
};

// Example 1
type ThisWorks = Settings<SettingsTypes['audio']>;

// Example 2
type ThisDoesntWork<T extends keyof SettingsTypes> = Settings<SettingsTypes[T]>;

// ERROR:
// Type '{ volume: string; }' is not assignable to type '{ [K in keyof SettingsTypes[T]]?: string | undefined; }'.

// oh, ok but then why this works?

// Example 3
type ThisWorksAgain = Settings<{ volume: string; }>;

Expected behavior:
Generic should work the same if we pass an specific index of an interface (1), a generic index of an interface (2) or when we pass the type directly (3)
Actual behavior:
Typescript throws an error only for the construction Settings<SettingsTypes[T]>.
Playground Link:
https://www.typescriptlang.org/play/#code/JYOwLgpgTgZghgYwgAgMoTGUBzAzgFQE8AHCXZAbwChlk4BXAE2AHsAuSm25ANxYBt6AWwgdcYKDgDcXAL4zaPYIwjtO3ZFDL1BWFiDETpcqrKpVQkWIhTpMOXAB4ACnChwh5CAA9IIRuQUyADaANLIoMgA1hCELDDIru6eALoA-IaSINjIsgB86sgI+jDA2BxJHrgy8uYA9HXIAKLeHsT8KACMVGAkKPgAFsC4AOosUFHkALxoGFjZTnbzeESkuMEA5AzMLBspeTJUDc2tQu0oAEw9fciDwwAiLGTgYxOO+Mg+fgHRsfGz9gWqzIBRmSwcjnBQL663w+0OxyaACUkQB5JFsI6NYHIDZBPiCESZaS5DYRcggFhgOi4XBlEBwABGHWQYBYrJueJC4UiMTiCShKxhwTh6WJ2WQAB9kPR-BBSiAIIwpKSAHT1RosAYAGmQLCiyEZ9GpYAGEBAyAA7gNCKyhuRLeNJmkNSc2iyAMzXUi3e2vSYAQWwcEiYLmEPxAmEomQ4iy2BV+SkQA
Related Issues:
32017 and 31904

I think this is a design limitation. The issue is that you end up in a situation where you want to relate:
SettingsTypes[T] <: { [K in keyof SettingsTypes[T]]?: string }

To make any progress you need to simplify the left hand side using the constraint of T, which results in the type { volume: string } | { resolution: string }. At this point you lose the possibility of being able to relate to the right hand side because it contains the generic parameter T which you don't know whether it will be volume, resolution, or something else.
There might be some way to get this through by using some intermediate (conditional) types, but convincing the checker a priori seems hard - the level of reasoning is non-trivial.
Am I right in thinking that all you really care about is saying that Params is an object with values of type string | undefined? I wonder if there is an easier way to describe that constraint.

Hi, thanks for you response. Actually the Params part comes from an external library. See RouteComponentProps interface. However now I think I made an XY problem situation by overcomplicating things.
What I'm trying to do is I'm experimenting in my app to get named routes with typed parameters. And in fact it works great!
I have named routes:
const PAYMENTS_LIST = '/payments';
const PAYMENT_DETAILS = '/payment/:id';

I also made a single interface for all routes parameters:
interface RouteParameters {
  [PAYMENT_DETAILS]: {
    id: string;
  };
}

Finally I wrapped the formatRoute function from react-router-named-routes library to check parameters for given route:
interface MakePathFunction {
  <T extends keyof RouteParameters >(route: T, params: RouteParameters[T]): string;
  (route: string): string;
}

export const makePath: MakePathFunction = <T>(route, params = {}) => {
  return formatRoute(route, params);
};

This works like a charm.
The problem is that when I'm creating a React component with route parameters I should use the RouteComponentProps interface with proper value of Params:
const Payment: FC<RouteComponentProps<{id: string}>>

To avoid typing duplication I wanted to reuse the RouteParameters like this:
const Payment: FC<RouteComponentProps<RouteParameters[typeof PAYMENT_DETAILS]>>

The compiler however thought the PAYMENT_DETAILS is of type any and told me I can't index with any. Fair point. Because of that I wanted to convince him it's a proper key:
type RCP<T extends keyof RouteParameters> = RouteComponentProps<RouteParameters[T]>;

const Payment: FC<RCP<typeof PAYMENT_DETAILS>>

And finally here the compiler was complaining about the RouteParameters[T] with a message that didn't make sense. That's why I made this issue. However if this is a design limitation then I understand it. I already found a simpler, working solution without typeof so everything is OK for me.
export interface PaymentDetailsRoute {
  id: string;
}

export interface RouteParameters {
  [PAYMENT_DETAILS]: PaymentDetailsRoute;
}

const Payment: FC<RouteComponentProps<PaymentDetailsRoute>> = (props) => {

I think the issue may be closed now. Thanks for explanation.
PS: above code is not copied 1:1 from project so it may have typos.

@jack-williams Maybe I'm missing something but:
SettingsTypes[T] <: { [K in keyof SettingsTypes[T]]?: string }

Why can't you substitute T for its constraint on both sides of the relation?  It seems like that would be sound, but maybe I just haven't thought it all the way through...

@marcingajda
Looking into this abit more, I believe your issue boils down to this:
type SettingsTypesKey<K extends "volume" | "resulution"> = K;
type Broken<T extends keyof SettingsTypes> = SettingsTypesKey<keyof SettingsTypes[T]>;
// Type 'string | number | symbol' does not satisfy the constraint '"volume" | "resulution"'.

Basically keyof SettingsTypes[T] ==> string | number | symbol, which causes later issues in your example because the checker needs:

SettingsTypes[T][string | number | symbol] <: (string | undefined)

but there are no index signatures on SettingsTypes[T].
Expanding T to its constraint in keyof SettingsTypes[T] looks tempting, but I believe it would be unsound:
type IsVolume<K extends "volume"> = K;
type Broken<T extends keyof SettingsTypes> = IsVolume<keyof SettingsTypes[T]>;

// If we are allowed to expand T we get:
// 1. IsVolume<keyof SettingsTypes[T]>
// 2. IsVolume<keyof SettingsTypes["audio" | "video"]>
// 3. IsVolume<keyof SettingsTypes["audio"] | SettingsTypes["video"]>
// 4. IsVolume<"volume" & "resulution"> --> this would be ok

// Yet clearly this is unsound

type Res = Broken<"video">; // resolution

So I would leave this issue open and let someone on the team have a definitive look. I'm glad you have something that works for you though!

Minimal version:
interface SettingsTypes {
  audio: {
    volume: string;
  };
  video: {
    resolution: string;
  }
}

type SettingsTypesKey<K extends "volume" | "resolution"> = K;
type Broken<T extends keyof SettingsTypes> = SettingsTypesKey<keyof SettingsTypes[T]>;

Note that this version works:
interface SettingsTypes {
  audio: {
    volume: string;
  };
  video: {
    resolution: string;
  }
}

type SettingsTypesKey<K> = K extends "volume" | "resolution" ? K : never;
type Broken<T extends keyof SettingsTypes> = SettingsTypesKey<keyof SettingsTypes[T]>;


Feedback

There's no ad API, so I have to guess.
Main problem for ads is making sure the player has watched something. Or has at least a certain time between start and end. I bet you don't have that, so having that would be a requirement.
Rewarded ads are only actually good when the player knows what he's getting. Otherwise why watch it? This is very notably in my ads. Not sure if the client can see the rewards beforehand and I'm pretty sure those random odds are actually harmful for inexperienced devs.
My best ad is where you get something client based (double offline gold or a special productivity buff), not a Playfab item/VC. Not sure if your model covers that.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 79626e65-4e2b-2526-17d1-8f44e09beb27
Version Independent ID: 0c3b292b-6ced-822d-5f8a-56505965fcb4
Content: Getting started with rewarded Ads. - PlayFab
Content Source: playfab-docs/features/automation/rewarded-ads/quickstart.md
Product: playfab
GitHub Login: @natashaorie
Microsoft Alias: norie

Thank you for the feedback. It has been seen by the area owners.


web3_provider tests depend on external source

The web3_provider tests in the prover package depend on a external source (our public sepolia node) to run correctly.
https://github.com/ChainSafe/lodestar/blob/b78cb92802cfc12c3a75f33a053055e3db5a7c45/packages/prover/test/unit/web3_provider.node.test.ts#L25
This behavior is not deterministic and we should not depend on external sources when running tests, especially unit tests.

The reason we kept it as unit tests is to run the same tests in browser. All unit tests runs in the browsers in current configuration.

Is there a reason why we have to use our public Sepolia node for this? We do not have much redundant infrastructure for this network incase the endpoint goes down. So if it needs re-syncing, this test is blocked until it's re-synced. We have more redundant infrastructure for mainnet if we can run against any network?

We have more redundant infrastructure for mainnet if we can run against any network?

This should work, I still think we should move those to e2e tests


AddressComplete - submission missing data after turning feature flag off

Description

Created a form with the feature flag on
Turned flag off
Completed form

Response data is missing - Country and St Address

Split

Full

It looks like this has been fixed by https://github.com/cds-snc/platform-forms-client/pull/4197/commits/22b49c3bb30d32f6b87f3aab522560ef5c0e3836
If you want to retest @timarney, it worked on my local copy with the current main branch.

Will re-test today.

This is working as expected now.
Created a ticket for some other things that happen for this use case
https://github.com/cds-snc/platform-forms-client/issues/4518
@Abi-Nada @anikbrazeau ---  it's a slight edge case to turn the feature off after it's been on but capturing for discussion there have been discussions around the need to possibly turn it off for "some" forms.  I don't consider this a release blocker but wanted to capture.


dev: use sol abi traits

[x] issue #125
[x] follows contribution guide
[ ] code change includes tests
[ ] breaking change

Updated use of append_X to sol_abi's encode_packed.

Cool to see this being used!

It's more intuitive. You know at a glance whether it's packed or not


Fix Python 2 issue with int/long types

In Python 2, integer objects are automatically promoted to objects of
type long if they're too large for a normal int. In Python 3, all
integers are int objects, no matter how big.
This has the effect of messing up the isinstance checks that only
check for int and not long.
This commit fixes this issue by defining a different list of types to
check for depending on the Python version.
Fixes #26

LGTM!


Update bindings to 2.12

I updated the library's version to 5.3.0 and removed it from the example projects; they don't need one.


Hide dock icon at app launch

https://github.com/elmodos/MacVoices/commit/4d0df25f87fa1f31c446592793f02e2f71ffe00b


Small improvement to collision

Right now, the collision is a bit buggy. Visually it looks a bit weird, and objects continue to accelerate despite being collided.

Added a function that just tests if the next delta*velocity will bring it to an overlap with an entity. Currently it will lose all velocity which is not necessarily desirable in all cases (i.e. partially inelastic/elastic collisions). Additionally, it means that entities inside each other will never move, which it should probably have an option to push entities out of each other when this happens. In any case, the physics is a bit improved.

Thank you very much, my collision system was more of a start than a finished system and this feels like a great way to improve it. This is still not perfect, but works great for now.


Getting DynamicContext error after upgrading to Karate 1.1.0 from 1.1.0.RC4

Hi,
I am getting "DynamicContext could not be passed from one context to another" error message after upgrading to Karate 1.1.0 from 1.1.0.RC4.
To reproduce the issue, I have created a sample project with Karate 1.1.0 archetype and added the related code that throws the message.
From karate-config.js, I am doing karate.callSingle to utility.feature file.

utility.feature makes a call to HelloWorld.java class that has 1 static method which prints "Hello World..!!" to the console.
I changed the method to static after reading other stack overflow pages related to this Dynamic error for Karate 1.0.0

From users.feature file, I am doing callonce to another feature file in the Background.
And inside Scenario, I am calling this helloWorld method, but this line 13 throws the message of ""DynamicContext could not be passed from one context to another"

If I change the Karate version to 1.1.0.RC4, scenario gets executed successfully, but throws DynamicContext message with Karate 1.1.0.RC5 and 1.1.0 versions.
Note: I tried most of the solutions I could find on stack overflow or Karate github issues pages, but not able to fix this issue.
Maybe I am missing a minor code change here.
Can someone please help ?
I have attached the zip of sample project, to reproduce the issue.
DynamicContextError.zip

@DeepakNaik30 many thanks for the simple example, the interesting thing is this has nothing to do with Java or static methods, the problem is because a JS function was returned in callSingle() and you are trying to use it.
cc @joelpramos I have added a test to replicate and if you un-comment the lines in js-call.feature you will see the problem: https://github.com/intuit/karate/commit/4bd469c154760db49f51b3e16d8f05a524012919
I'm closing this as wontfix for now. yes it may have worked in RC4 - but we did some very significant performance optimizations in RC5 and I don't want to take a performance hit just because some users want to mix functions into callSingle() even though we tell them not to: https://github.com/intuit/karate/issues/1685
that said, there is a good chance that a future version of the JS engine will support JS functions being passed around - and that should put an end to all these woes: https://github.com/oracle/graal/issues/631#issuecomment-885768584
anyone is welcome to disagree and fix this in karate in the meantime.

@DeepakNaik30 further investigation found that this is not related to callSingle() it would help a lot if you can re-test after the fix made in #1725

Hi @ptrthomas Fix in Karate develop branch is working for us. We no longer see this DynamicContext error.
Looking forward to have this fix in 1.2.0.RC1 next week


Fix inaccurate seeking.

@hossein-zare can you check if android api > 21 to enable the fix please ? @volpstar i don't have rights to merge PRs :)

@freeboub I'm sorry, I don't work with react-native anymore.

We need two reviews approving this change to merge.

tACK.
We need this feature upstream please.

@hueniverse I think this can be closed. This change is meant for the media player that has been removed in 6.0

@armadilio3 I am not quite sure, we are not using the media player but the seek function.
And the seek function works quite well on ios but not on android. I think this is still a bug that needs to be fixed?

@freeboub Can you help sort this out?

I confirm this is old player, let's close this PR


Schema compare loading spinner not showing

Azure Data Studio Version: 1.21.0-rc1

Steps to Reproduce:

Do a schema compare
Click compare again and see that the loading spinner and loading text don't show (they show for the first comparison)

This is with no changes in Schema Compare Extension (reproing with old SC with latest ADS)

@Charles-Gagnon thanks for the fix, validated in main. Since you have the fix - okay to assign the bug to you?

Shiproom approved


[META-33] Add workflow terraform-apply

Description
Adds Terraform Apply workflow as it is necessary to have it in main branch to dispatch it manually

Changes only one file, a workflow issues are unrelated, will be merged, to test functionality for #22


ol.interaction.Interaction.handleEvent documented misleadingly

I refer to Interaction, the paragraph that reads:

Method called by the map to notify the interaction that a browser event was dispatched to the map. The function may return false to prevent the propagation of the event to other interactions in the map's interactions chain. Required.

I assumed this would only happen if the function explicitly returned false, i.e. the way it does in some other libraries like Lodash (and jQuery I believe?).
I tried to create my own interaction to handle keyboard events and failed to specify a return value. This actually stopped event propagation because the return values were evaluated on falsey-ness rather than explicitly being false. I believe the line is here.
If this is intended, it would be good for the docs to describe this behaviour by referring to the return value as falsey rather than false

Thanks for reporting this issue. A pull request that fixes the documentation would be greatly appreciated.

fixed with #7426


Testing of geometry shaders

We've had multiple regressions over time in the Falcor Shadows sample, and a big cause for this is that the sample uses geometry shaders and none of our testing covers them, so it is often the first thing to run into any issues. The Shadows app in really complicated, though, so it isn't a great place to go about diagnosing and fixing bugs.
We ideally need some configuration in render-test that can drive a GS in both D3D and Vulkan, and give us some confidence we are translating them correctly.

This should come up in our testing scoping discussion in a more directed way so closing this as dropped.


Feature/577 dynamic forms minLength / maxLength validation

Description
Add minLength and maxLength validation for text text fields.
What's included?
-minLength validation option for dynamic elements
-maxLength validation option for dynamic elements

unit tests

Test Steps

[ ] git checkout feature/577-dynamic-forms-text-length
[ ] ng serve
[ ] navigate to http://localhost:4200/#/components/dynamic-forms
[ ] play with the form builder adding minLength / maxLength validation on text fields.

General Tests for Every PR

[ ] ng serve --aot still works.
[ ] npm run lint passes.
[ ] npm test passes and code coverage is not lower.
[ ] npm run build still works.

Screenshots or link to CodePen/Plunker/JSfiddle

This commit history looks very wrong. I'm going to resubmit the PR again freshly based on Develop. Don't merge, don't delete just yet, pls.


Problem running the train script

Hello,
I have come upon an issue when running the train.py script, I assume it may be a bug due to me overlooking or miss-handling a step but for the life of me I can't figure out which :/
I run the train script as such:
python2 train.py --data-dir ../build-src-Desktop-Debug --data-list ../instr/train.txt --num-classes 2 --batch-size 1
After which it spams the following error ~100 times:
2017-11-06 12:12:17.994330: W tensorflow/core/framework/op_kernel.cc:1192] Not found: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for ./deeplab_resnet.ckpt
And subsequently crashes with the following error:
NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to find any matching files for ./deeplab_resnet.ckpt
         [[Node: save_1/RestoreV2_527 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save_1/Const_0_0, save_1/RestoreV2_527/tensor_names, save_1/RestoreV2_527/shape_and_slices)]]

Am I supposed to generate the deeplab_resnet.ckpt file in some way before running the script ? May this be a problem due to an improper training set (I used just two images for this test run and used RGB masks but with only (0,0,0) and (255,255,255) pixels, so I assumed the model will be able to deal with that properly). ? Or is it possible that this is a bug
The python version is: Python 2.7.14

In the git repository there are instructions. You are not supposed to create this file (unless you want to but then you should use the other file "deeplab_resnet_init.ckpt". Download from here and define the path they are.
https://drive.google.com/drive/folders/0B_rootXHuswsZ0E4Mjh1ZU5xZVU

It is all due to the 'restore-from' parameter. The value of it depends on what your final goal is: if you want to train from scratch, then you should explicitly set this parameter to None; if you want to fine-tune existing model, then you will need to download the model.


glib: update patch

This patch needed to be updated after https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2734.
It seems that it is now only needed for macOS, so remove the linuxmusl condition.

Thank you for fixing this, looks like the latest change worked, shall I merge?

Oh wait, hold on.
libintl.so.8 does not exist in /target/lib

OK, it should be fine now.

Brilliant, thank you.


Create mention to the Sprig channel in Slack

I'm happy to help @cedric-h! It's been great to see the progress made and making games with it. 🎮


Device has no langid !

Hello all,
I have problems with mic array.
Connected on ubuntu 16 on usb, and interfaced with ros.
When i run a python example program, it says that
The device has no langid..
When executed under root, no problem.
But I need to launch ros packages and can t sudo them.
Tested udev rules without success.
Help !
Could I use mic array under python, with an i2c connection ?
Best all.
Vincent

How about try the following commands:
echo 'SUBSYSTEM=="usb", MODE="0666"' | sudo tee -a /etc/udev/rules.d/60-usb.rules
sudo udevadm control -R  # then re-plug the usb device

Hello Yihui Xiong
Thanks for answer.
I did both commands, but no changes !!
here is my terminal out :
python offline_voice_assistant.py
hello
Traceback (most recent call last):
File "/home/nvidia/catkin_ws/src/utils/src/offline_voice_assistant.py", line 24, in
from respeaker import Microphone
File "/usr/local/lib/python2.7/dist-packages/respeaker/init.py", line 18, in
from microphone import Microphone
File "/usr/local/lib/python2.7/dist-packages/respeaker/microphone.py", line 34, in
from pixel_ring import pixel_ring
File "/usr/local/lib/python2.7/dist-packages/respeaker/pixel_ring.py", line 18, in
import usb_hid
File "/usr/local/lib/python2.7/dist-packages/respeaker/usb_hid/init.py", line 60, in
devices = INTERFACE[usb_backend].getAllConnectedInterface()
File "/usr/local/lib/python2.7/dist-packages/respeaker/usb_hid/pyusb_backend.py", line 88, in getAllConnectedInterface
product = board.product
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 841, in product
self._product = util.get_string(self, self.iProduct)
File "/usr/local/lib/python2.7/dist-packages/usb/util.py", line 314, in get_string
raise ValueError("The device has no langid")
ValueError: The device has no langid
I'm sure you have the solution, Xiogyihui.
Thanks.
Vincent

Hello Vincent
Which firmware of the mic array do you use? If it's the origin firmware, it should work. If you change it to 8 channel firmware, you should use https://github.com/respeaker/mic_array/blob/master/pixel_ring.py to the leds.
By the way, which function do you want to impelement?

hello xiongyihui
I was on 0x032 version.
I just tested factory version 031
Same problem.
*** tested only pixel_ring.py
nvidia@tegra-ubuntu:~$ python /home/nvidia/Downloads/python_tests/pixel_ring.py
hello
Traceback (most recent call last):
File "/home/nvidia/Downloads/python_tests/pixel_ring.py", line 18, in
import usb_hid
File "/home/nvidia/Downloads/python_tests/usb_hid/init.py", line 20, in
from respeaker.usb_hid.hidapi_backend import HidApiUSB
File "/usr/local/lib/python2.7/dist-packages/respeaker/init.py", line 18, in
from microphone import Microphone
File "/usr/local/lib/python2.7/dist-packages/respeaker/microphone.py", line 34, in
from pixel_ring import pixel_ring
File "/usr/local/lib/python2.7/dist-packages/respeaker/pixel_ring.py", line 18, in
import usb_hid
File "/usr/local/lib/python2.7/dist-packages/respeaker/usb_hid/init.py", line 60, in
devices = INTERFACE[usb_backend].getAllConnectedInterface()
File "/usr/local/lib/python2.7/dist-packages/respeaker/usb_hid/pyusb_backend.py", line 88, in getAllConnectedInterface
product = board.product
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 841, in product
self._product = util.get_string(self, self.iProduct)
File "/usr/local/lib/python2.7/dist-packages/usb/util.py", line 314, in get_string
raise ValueError("The device has no langid")
ValueError: The device has no langid
hidapi cant find serial ID ?!
About implementation, I need to use your complete Microphone lib, and save the data to a wav file.
working on Jetson tx2, ubuntu 16.04
Thanks again xiongyihui

serialnumber of mic array doesn't appear ...
nvidia@tegra-ubuntu:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 038: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 037: ID 16d0:06a7 MCS
Bus 001 Device 036: ID 2886:0007
Bus 001 Device 031: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
and on "dmesg" command :
[54348.533764] usb 1-2.2: new full-speed USB device number 8 using xhci-tegra
[54348.626064] usb 1-2.2: not running at top speed; connect to a high speed hub
[54348.634175] usb 1-2.2: config 1 interface 4 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 1
[54348.647009] usb 1-2.2: config 1 interface 4 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 1
[54348.659766] usb 1-2.2: New USB device found, idVendor=2886, idProduct=0007
[54348.666707] usb 1-2.2: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[54348.674103] usb 1-2.2: Product: ReSpeaker Microphone Array
[54348.679649] usb 1-2.2: Manufacturer: SeeedStudio
[54350.627941] hid-generic 0003:2886:0007.0002: hidraw0: USB HID v1.10 Device [SeeedStudio ReSpeaker Microphone Array] on usb-3530000.xhci-2.2/input4

Hi all, xiongyihui,
Found solution !!! Happy
cd /etc/udev/rules.d/
sudo gedit 99-usbusers.rules
if doesn' exist, add :
SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device, "GROUP="usbusers", MODE="0660"
sudo addgroup usbusers
sudo usermod -a -G usbusers nvidia
reboot.
Now, I can use your wonderfull product under python, without sudo !
Hope it will help each other...
Vincent


Alexa Echo node doesn't allow flow or global vars

If I change the device to be a flow.var it just reverts back to the first device in the list ?

Maybe it is connected to bug: https://github.com/bbindreiter/node-red-contrib-alexa-remote2-applestrudel/issues/34

Yes this sounds like the same issue as #34


[thrift]try to fix bug.large amount of list or map values ,when socket can not read all and frame.remain still be decreased

Description:
When client build large amount list or map values ,and socket can not read them all at once, and the state machine just decode half of list values ,if frame.remaining be decreased ,it will make list could not get all values(just got length - 1),and it will make state machine fall into disorder.
I use index rather then reference because the stack_ vector may expand and make the reference(got from stack_.back()) become invalid.
Risk Level:Medium
Testing:N/A
Docs Changes:N/A
Release Notes:N/A
Signed-off-by:Guang Yang<EMAIL_ADDRESS>

Thanks! There are a couple of changes we'll need before we can continue.
1.You'll need to modify your PR to to indicate you certify the DCO (see https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#dco-sign-your-work and https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#fixing-dco). In this case, if. you can certify compliance with the DCO, it should be sufficient to run git commit --signoff --amend --no-edit && git push -f to fix the commit. Just make sure to --signoff and further commits.

Please add a test that triggers the condition you're fixing so that we can avoid any future regressions. If you have questions about how to do that, post them here and I'm happy to help identify a test you can use as a blueprint.

I may have some problem about how to add test ,this is my first pr to this project.

In test/extensions/filters/network/thrift_proxy/decoder_test.cc, you want to look at the test named NoFieldValueData. That's testing what happens when the state machine goes to read a struct field and there's no data available: passing result = false to the expectValue function simulates the case where there's insufficient data in the buffer to read the value.
The test NoListValueData tests the beginning of this for list values but doesn't test what happens when the value data arrives (which is where you fixed the bug). I think you can add expectations that it tries to read the list value again on a subsequent call to dsm.run which should exercise your code.
These tests mock out the protocol (which is what indicates that a buffer has insufficient data to continue), so we don't need to actually create buffers with many list values.
There are similar tests for maps ('NoMapKeyData' and NoMapValueData) and sets (NoSetValueData) that would cover your changes.

And in fact, that points out to me that you need to implement your fix for map keys as well.

/retest

cc @rgs1 do you mind having a quick look?

Looking.


cert-manager import images first to own ACR. Why?

For using cert-manager, the document says you must first import the cert-manager images into your own ACR.
Why? The document could do with sentence that says that this is only necessary if ...

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: ada58160-dc50-b977-d3bc-65f92406e16d
Version Independent ID: 5c596e04-fddb-effe-3b72-575f4df42d4e
Content: Use TLS with an ingress controller on Azure Kubernetes Service (AKS) - Azure Kubernetes Service
Content Source: articles/aks/ingress-tls.md
Service: azure-kubernetes-service
Sub-service: aks-networking
GitHub Login: @asudbring
Microsoft Alias: allensu

@lbruun
Thanks for your feedback! We will investigate and update as appropriate.

@lbruun
I'm going to assign this to the document author so they can take a look at it accordingly.
@asudbring
Can you please check and add your comments on this doc update request as applicable.

#reassign:schaffererin

@Hi @schaffererin. No, the methodology for installing cert-manager as described in the doc (first import into own docker registry, then install to cluster) doesn't break anything.  I'm just missing the raison d'être why it is advised to do it in this convoluted fashion. Why not simply let the Helm chart pull directly from the docker registry where the images are located ?
I can now see that the same methodology is also advised in the NGINX Ingress Controller (learn.microsoft.com) document.  So, at least there's some consistency.  :-)
For me as a first time AKS user, but a seasoned K8s user, this is just news to me. At first, I thought: "Hmm. this must be something mandated by AKS specifically, so I better do it". I later realized that is is completely unnecessary.
I think, I just don't understand what the methodology of using an intermediate ACR brings to be table, except added complexity?  I could understand if the reasoning was that the expectation is that the target AKS cluster can only pull from a private ACR and not from a public Docker Registry. But the reasoning is stated as "to control image versions".
Controlling image versions, as in being able to independently select the image versions of the various components that make up a Helm chart ... is that really something to let users consider?  That seems like an extreme case. I the vast majority of cases I would expect the Helm chart author to know much better than me which versions go together.
And if I really, really, wanted to do that (control image versions independently of each other) I still wouldn't need an intermediate ACR for the purpose.
Is there something I missed?

Hi, @lbruun, thank you so much for the additional context here. To reference our Kubernetes core concepts doc, "Helm is commonly used to manage applications in Kubernetes. You can deploy resources by building and using existing public Helm charts that contain a packaged version of application code and Kubernetes YAML manifests. You can store Helm charts either locally or in a remote repository, such as an Azure Container Registry Helm chart repo." Using an ACR offers certain feature support and is a source of container images for Kubernetes, including clusters you manage, managed clusters hosted in AKS or other clouds, and "local" Kubernetes configurations such as minikube and kind. It provides a private container registry that allows you to securely build and deploy your applications and custom code. It is a setup that we recommend, which explains its inclusion in the tutorials. I do agree that the verbiage could change from a sole focus on the control of image versions. I am going to work on an edit to both docs referenced here - cert-manager and NGINX ingress controller. Once the PR is ready on GitHub, I will share a link so you can see the doc updates, and then I will close this issue. Thank you again for your help!


Error: coroutine 'get_contributions' was never awaited

When I try to create a skyline from a privat gitlab instance using docker, I get an error about coroutine 'get_contributions' was never awaited
docker run -v $PWD:/data gitlab-skyline --token ***[redacted]*** --domain ***[redacted]*** manuel.schiller 2022
/app/gitlab-skyline:186: DeprecationWarning: There is no current event loop
  loop = asyncio.get_event_loop()
Fetching contributions from Gitlab...
Traceback (most recent call last):
  File "/app/gitlab-skyline", line 198, in <module>
    main()
  File "/app/gitlab-skyline", line 187, in main
    loop.run_until_complete(
  File "/usr/local/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/tasks.py", line 415, in wait
    raise TypeError("Passing coroutines is forbidden, use tasks explicitly.")
TypeError: Passing coroutines is forbidden, use tasks explicitly.
sys:1: RuntimeWarning: coroutine 'get_contributions' was never awaited

the same issue


Update problems

Checklist

[X] I am able to reproduce the bug with the latest version of Bunny and Discord.
[X] I've checked that there is no open or closed issue about this bug.
[X] The title of this issue accurately describes the bug.
[X] This is not a feature request or a general question.
[X] This bug can be reproduced consistently and is not caused by a plugin.
[X] I have read the notes above and ensured that my issue is clear and within this repository.

Steps to reproduce the bug
Open the manager, try to update the app, be told it's a conflicting package.
Expected behavior
Open the manager, try to update the app, update easily.
Actual behavior
Open manager, try to update, wait on everything to download and patch, it's a conflicting package.
Screenshots/Screen recordings
No response
Logs
No response
What platform did you produce this issue on?
Android
Discord version
255.14
Version
e80ab84-main
Loader version
Bunny Xposed (0.2.5) (THIS IS NOT INSTALLED THOUGH)
Device
Google Pixel 6a
OS version
Android 15 (Bliss ROMs 18.0)
Debug information
No response
Additional information
The only valid option would be to uninstall and reinstall but I seriously should not because of plugins I need, and a certain plugin being under maintenance still.

this happened because your OS cleared wherever the app stores the keystore it used to sign the app, pretty sure dev mode options lets you export and import the keystore so just keep a local copy of it saved somewhere and import it if need be

this happened because your OS cleared wherever the app stores the keystore it used to sign the app, pretty sure dev mode options lets you export and import the keystore so just keep a local copy of it saved somewhere and import it if need be

I don't see it in dev mode opinion


[Enhancement] Add mv repair handler interface

Why I'm doing:
In shared-data mode, the background task such as compaction and schema change will increase the visible version of the partition. The associated mv will think that the data has been updated, which will trigger the refresh of the mv. But compaction and schema change  do not update the data, but only reorganize the data. The associated mv does not need to be refreshed. The useless mv refresh will occupy a lot of resources, resulting in resource waste, which needs to be avoided.
What I'm doing:
Add mv repair handler interface, which can be called to avoid upcoming useless mv refresh.
Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[ ] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

@Mergify automerge


make base as library

I recreate a new pull request, It should compiles fine now.

Thx for the updated PR!


src, aggregate: fix colors for aggregate mode

Use cyan color for folders in aggregate mode
Before:

After:

Much better!
Before:

After:

Thanks a lot for your contribution, it's much appreciated! Somehow I could never make myself use cyan more (the color scheme works for me), so I am glad low contrast and disappearing text is finally fixed.
Release v2.10.2 is now (should soon) be available.


moved metadata related logic from ENSmetadata to metadatalib to modul…

…arize it further

hey @uzzolsse, I update the following

removed isVerified since it was redundant we were doing it twice. Now the verification for the metadata is happening on the MetadataLib only.
moved metdataupdate event to the MetadataLib
Metadataupdate now emits event from MetadataLib instead of doing it on the ENSMetadata contract.


[FEA] Support nested types in CreateArray

Is your feature request related to a problem? Please describe.
#1489 adds in basic support for make array.  The underlying CUDF implementation should support other types, like arrays, maps, and structs.  Their support was not added in yet because we do not support scalars for these types yet.  Once we do support scalar nested types we should enable them and test them.

Fixed by #2299


Issues with the most recent commits

The very last line in <IP_ADDRESS>/hosts for example.  It says
<IP_ADDRESS> www.	# Porn domain from Clefspeare13 list

Note that www. is not a valid domain, and this IS the Clefspeare13 list.
By the way, at the bottom of this list, there is a heading comment that says #Porn domain, then each item repeats #Porn domain as a suffix.  It's just, messy?  This is all in a folder with pornhosts as one of the parent folders.
I will hold releasing a new version of my amalgamated list until the last line is fixed, here...

Thanks for the notification.... fixing it right up

A short note for the comments;
These are added there to divide the differenses between the porn and snuff, which will be "rooted" to the submit_here/lists, so they are temporary till I'm done rewriting the script.


[CodeCompletion] Use unresolved member completion for case stmt beginning

Instead of getTypeContextEnumElementCompletions(). So we get static members in addition to enum elements.
rdar://problem/45219937

@swift-ci Please smoke test


RustQuant::ml: implement neural_networks.

Hi, I'd like to take this issue. :-)

Now I understand why you put difficult label to this issue. I'm still trying to connect ndarray with your auto diff implementation.
Also, the activation.rs needs further modification, currently it's only doing pure math calculation without the support for auto diff.

Thanks, BTW, may I ask why you developed your own auto diff module instead of using some existing crate?


partner: Astra DB, bring all astrapy imports outside of classes in the astradb utils

Description
Mini fix to amend some imports still happening within the init method of a helper class (a remnant of the community-package lazy import provision). This way it is cleaner.

Package has moved! Could you reopen here? https://github.com/langchain-ai/langchain-datastax

Could you reopen here?

I am doing it right now. Sorry about the delay, I was overwhelmed by urgencies for a few days


enhancement(readme): Documentation Update for activate, isActive, restore methods.

@gr2m Please review.
PR to fix Issue #997
PR contains documentation update for:

restore()
activate()
isActive()

Coverage remained the same at 92.671% when pulling 86d5a06f127027fe092441ab38d45ffd9baa5838 on rash805115:master into bd387365ff8e6df731cf5a35cc92560346826ec5 on node-nock:master.