Questions about using tokio

I'm new to doing stuff in Rust and started my first learning project safe-dash which uses linemux and tui-rs to create a dashboard for monitoring logfiles. I aim to have it gather and update metrics from the logfiles. So far so good!
One thing I'm not sure about is the reliance on tokio, which I understand is an alternative runtime with its own ecosystem of traits, libs etc. I understand you can mix and match this with the 'official' runtime to some extent (not sure of limitations), but with a size overhead (20M?), but I'm not sure!
So I was wondering about the feasibility of a linemux without tokio, why you chose to use it, and the downsides for me (if any) of relying on a lib which uses tokio). This is a much more general question than just about linemux, so I'm not expecting you to answer all this, but any comment would be appreciated. And thank you very much for linemux which has saved me a lot of code and does everything I need.
My project will not be harmed by a 20M overhead, its mainly for learning and so are my questions, although I do want it to be useful both for a specific application, and as a starting point for building dashboards based on logfiles.

Hi, thanks for the interest in linemux!

One thing I'm not sure about is the reliance on tokio, which I understand is an alternative runtime with its own ecosystem of traits, libs etc. I understand you can mix and match this with the 'official' runtime to some extent (not sure of limitations), but with a size overhead (20M?), but I'm not sure!

So the async ecosystem in Rust is somewhat of a can of worms, and I am by no means an authority on the history or some of the decisions made, but have worked with tokio since 0.1 and have seen its mutation over time. I'm not sure about the official runtime you mention, but Rust itself defines the Future trait and async/await operators, which serve as the foundational abstractions for asynchronous design. However, it stops short of defining the framework required to 'execute' these async functions-- thus various libraries have been made to provide executors that manage and drive these Futures to completion. Tokio obviously has its own executor, as well as the futures crate, async-executor, etc. But what other libraries lack is the component which makes doing things like async file and networking I/O possible-- the reactor (which tokio now calls driver). What the reactor does is abstract over the OS-specific polling method (epoll, kqueue, etc.) and integrates those interactions into the Futures paradigm.
But as these components are built, they are built with opinionated design to seamlessly fit a larger model. This has led to some fragmentation in the larger async Rust ecosystem, where deciding your executor means potentially forgoing compatibility with other crates. For instance, tokio uses the common futures-core crate to integrate things like Streams and future composition, but does not use the futures-io crate for things like AsyncRead and AsyncWrite. Instead, it defines its own versions to suit its particular design goals, and provides a separate compat layer since both crates are too popular to ignore the resulting friction. And probably the most driving factor in choosing tokio is the sheer size of its ecosystem-- if another component such as D-Bus or Redis were required, chances are there's a high-quality crate written for it using tokio.
But the size of the resulting library isn't necessarily specific to tokio; rather is mostly an artifact of default compilation settings. There's a repo min-sized-rust dedicated entirely to this issue, and provides various techniques for slimming down resulting binaries. For instance, enabling LTO for release builds brings my lines example down by a factor of ~10:
[profile.release]
lto = true
opt-level = 3

$ ls -sh target/debug/examples/lines
17M target/debug/examples/lines

$ ls -sh target/release/examples/lines
1.8M target/release/examples/lines

So I was wondering about the feasibility of a linemux without tokio, why you chose to use it, and the downsides for me (if any) of relying on a lib which uses tokio).

Yeah, it's definitely a cascade of commitment to an ecosystem, much like how the web framework world chooses between angular and react for what their components will be built on top of. Some crates like dbus-rs get around this by splitting out runtime support into a separate crate, but even there tokio is still the only runtime for which support has been implemented. Another option is using feature flags, which I could see actually working for linemux since it's a pretty simple library and doesn't actually expose the tokio-specific parts like tokio::fs::File. I've never actually abstracted over a runtime, so that could be an interesting exercise.
TL;DR: tokio is super-popular, and I just went with what I already knew.
Let me know if I missed something, or anything in general that can improve linemux!

Super response - thank you very much for explaining in such detail. :clap:
That's very helpful for me at this early stage. I shall make notes from what you've written and bookmark this to come back to.


Rudimentary Tron

This game is still a bit rough, I know, but I will continue t work on this fun challenge and optimize it more.

Thanks for PR!

I wait for updates :)

Ah, thanks. Currently away from my computer, so I'll fix it when I get
back. Thanks so much for the advice!
On Sun, Oct 30, 2022, 3:35 PM Lucas @.***> wrote:

@.**** commented on this pull request.
In games/Tron.js
https://github.com/hackclub/sprig/pull/482#discussion_r1008915533:

getFirst(player).x -= 1
+});

+onInput("l", () => {

addSprite(getFirst(player).x, getFirst(player).y, stream)
getFirst(player).x += 1
+});

+afterInput(() => {

const impacts = tilesWith(stream, player).length;
const impacts2 = tilesWith(stream2, player).length;
const impacts3 = tilesWith(stream, player2).length;
const impacts4 = tilesWith(stream2, player2).length;
if (impacts > 0) {
addText("P2 WINS!", { y: 4, color: color3});
clearTile(getFirst(player).x, getFirst(player).y);

so that it is not possible for the player who lost to win after the end,
add 1 more clearTile(), it will look like this:
addText("P2 WINS!", { y: 4, color: color`3`});
clearTile(getFirst(player).x, getFirst(player).y);
clearTile(getFirst(player2).x, getFirst(player2).y);

}
if (impacts2 > 0) {
addText("P2 WINS!", { y: 4, color: color3});
clearTile(getFirst(player).x, getFirst(player).y);
clearTile(getFirst(player2).x, getFirst(player2).y);
}
if (impacts3 > 0) {
addText("P1 WINS!", { y: 4, color: color5});
clearTile(getFirst(player2).x, getFirst(player2).y);
clearTile(getFirst(player).x, getFirst(player).y);
}
if (impacts4 > 0) {
addText("P1 WINS!", { y: 4, color: color5});
clearTile(getFirst(player2).x, getFirst(player2).y);
clearTile(getFirst(player).x, getFirst(player).y);
}
—
Reply to this email directly, view it on GitHub
https://github.com/hackclub/sprig/pull/482#pullrequestreview-1161181527,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AR6MCLR2Y6UXKQTXHCXKRV3WF3EWPANCNFSM6AAAAAARSKU2FM
.
You are receiving this because you authored the thread.Message ID:
@.***>

I'm happy to help! :)


Descriptors, the platform object, and the artifactType

In the aftermath of #999/the removal of the artifact mediaType, I believe that the guidance for descriptors has become misleading.
Artifacts are now represented using the standard image manifest and mediaType:
https://github.com/opencontainers/image-spec/blob/93f6e65855a1e046b42afbad0ad129a3d44dc971/manifest.md?plain=1#L23-L27
When we had a separate mediaType/artifact manifest, the following line in the descriptor specification was informative, as it implies that "images" (read: runnable content) should have a platform, but artifacts (arbitrary content) may or may not:
https://github.com/opencontainers/image-spec/blob/93f6e65855a1e046b42afbad0ad129a3d44dc971/descriptor.md?plain=1#L61
However, now that there is one manifest mediaType, this advice appears to be rather unhelpful; all manifests are now the same type, so this implies that all manifests SHOULD have a platform in their descriptor.
In practice, this has lead to implementations including/believing they should include {"os": "unknown", "architecture": unknown"} when describing non-image content (artifacts), which I believe to be misguided/incorrect, as values for these fields SHOULD be understood by the Go toolchain:
https://github.com/opencontainers/image-spec/blob/93f6e65855a1e046b42afbad0ad129a3d44dc971/image-index.md?plain=1#L57-L65
I'd like to drop this line from the descriptor spec, or amend it to acknowledge artifactType, and the config.mediaType fallback (collectively "artifacts"); but between these options I have no strong preference.

At the risk of oversimplifying (please correct me if I've misunderstood!), you're proposing we loosen/tighten the language around platform to make sure it's clear it doesn't (have to) apply to non-image artifacts (even though they technically share the image mediaType)?

Yes, that's essentially my thought. When artifacts had a separate mediaType, they did not have a SHOULD for the platform; now that they share a mediaType, this applies.
I think the state before the separate mediaType/manifest definition was dropped made more sense, and that this line only ended up applying to artifacts by happenstance. I think usage of platform in the descriptor should be supported/encouraged where it makes sense, but requiring all artifacts to specify a "nonsense" platform (read: meaningless to the Go toolchain) doesn't make sense to me.

It's definitely highly runtime-dependent, but I do think runtimes should be updating their checks to account for "artifacts" (artifactType/config.mediaType). However, you make a good point.

Examining the artifacts decision tree, and comparing with dockerd behavior:
https://github.com/opencontainers/image-spec/blob/93f6e65855a1e046b42afbad0ad129a3d44dc971/manifest.md?plain=1#L170-L262
In all three examples, config.mediaType is either application/vnd.oci.empty.v1+json, or a custom (vendor-specific) type:
During pull, the mediaType of the config descriptor in the manifest is checked:
https://github.com/moby/moby/blob/605c8fb75dcfcd5d2d79dce5a58b330a6d5165dc/distribution/pull_v2.go#L423-L425
https://github.com/moby/moby/blob/605c8fb75dcfcd5d2d79dce5a58b330a6d5165dc/distribution/pull_v2.go#L495-L513
The default list of allowed mediaTypes is:
https://github.com/moby/moby/blob/a1d966c492c9f3941e1b6627f3f1128e76a27a2d/distribution/registry.go#L40-L51
In all cases, this should fail early and not result in attempting to use an artifact as a runnable image.
We can see this testing with neersighted/artifact-demo:
$ docker pull neersighted/artifact-demo:latest
latest: Pulling from neersighted/artifact-demo
unsupported media type application/vnd.oci.empty.v1+json

With the containerd storage backend, there is an IsPsuedoImage check that should cover all cases based on the fact that it will see a empty or non-image layer "layer":
https://github.com/moby/moby/blob/605c8fb75dcfcd5d2d79dce5a58b330a6d5165dc/daemon/containerd/image_manifest.go#L81-L107
However, this is not where things fail; instead we see:
$ docker pull neersighted/artifact-demo:latest
latest: Pulling from neersighted/artifact-demo
failed to unpack image on snapshotter overlayfs: no match for platform in manifest sha256:a1fa4097c5355d6ca1656dbcf41e1a40e0763d054ff098f07064666f74f41186: not found

Caused by:
https://github.com/containerd/containerd/blob/e62cacc4d6704038fbddce9bebd281155dcb967e/images/image.go#L236-L242
Which is in turn due to this matching logic:
https://github.com/containerd/containerd/blob/e62cacc4d6704038fbddce9bebd281155dcb967e/images/image.go#L170-L177
Which ultimately does not match, as a requested platform does not match a nil platform in image, even though a nil requested platform matches the current platform in the image.
I am not sure if IsPsuedoImage should be called to provide a better error message, or if failing on the containerd side is better; given that this functionality is a work-in-progress, I am not too concerned, however. If this is the correct place to centralize this logic, it should probably be expanded to check e.g. artifactType, or at least the config mediaType.

Discussed yesterday in the OCI call: No one had any strong objections to the concerns I've raised here, and further inconsistencies related to the artifact mediaType and the config.mediaType fallback were noted. I'll work on a PR this next week to address these concerns + those additional ones, erring in the direction of "refer to Artifacts as a proper noun, and better explain what Artifacts and Images are in a follow-up."


Specifying editable.mode=inplace when build-dir already set in pyproject.toml is not supported

This issue is related to the inplace experimental mode associated with editable install.
Links:

https://scikit-build-core.readthedocs.io/en/latest/configuration.html#editable-installs
https://github.com/scikit-build/scikit-build-core/pull/553

Ahh, okay. You can set the build-dir to “” until this is fixed.


Improve documentation about rerankers: which ones are supported?

System Info
I am currently mostly working with the ghcr.io/huggingface/text-embeddings-inference:cpu-1.2 Docker image on MacOS. Currently, I am only trying to find out which reranker models with a context size larger than 512 tokens are supported by TEI, but apart from the two BAAI ones mentioned in the readme, I haven't been able to run any other reranker models from Huggingface. jinaai/jina-reranker-v1-tiny-en for example does not work:
reranker-1  | Error: The `--pooling` arg is not set and we could not find a pooling configuration (`1_Pooling/config.json`) for this model.
reranker-1  |
reranker-1  | Caused by:
reranker-1  |     No such file or directory (os error 2)
reranker-1 exited with code 1

Apparently, this is because TEI treats it as an embedding model in this case. According to the readme, BERT models are supported, but the Jina reranker's description says:

JinaBERT itself is a unique variant of the BERT architecture
Would that already tell me that it is not supported?

Additionally, the BAAI models are listed with a revision in the readme, but I have found no mention of revisions on the model page on Huggingface. How do I find the correct revision to use?
I would appreciate if documentation could be added how to find out if a model is supported. Additionally, showing a more meaningful error message when a model is not supported would help, if at all possible.
Information

[X] Docker
[ ] The CLI directly

Tasks

[X] An officially supported command
[ ] My own modifications

Reproduction
Docker-compose for jinaai/jina-reranker-v1-tiny-en that fails.
services:
  reranker:
    image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.2
    restart: always
    #Works: command: ["--model-id", "BAAI/bge-reranker-base", "--revision", "refs/pr/5"]
    command: ["--model-id", "jinaai/jina-reranker-v1-tiny-en"] #Does not work
    platform: linux/amd64
    ports:
      - 8888:80
    volumes:
      - ${PWD}/reranker-data:/data

Expected behavior
Show a clear error message why the model is not supported.
Provide a list with supported models containing more than just the two 	BAAI/bge-reranker-large and BAAI/bge-reranker-base.

jinaai/jina-reranker-v1-tiny-en for example does not work:

Models that are not officialy supported by Transformers are always hard to support and parse because they don't need to respect our config files.
For example, Jina is notorious for saying in their config that their architecture is Bert, whereas that's absolutely NOT the case (they add alibi and other modifications) making it very hard for us to parse their configs accurately. In the case of this specific model, they also ommit to say that's it's a classifier in the config. I will add a small change on TEI's side to hardcode this one but there is not much we can do since Huggingface doesn't own this model.

I have found no mention of revisions on the model page on Huggingface. How do I find the correct revision to use?

Models in the huggingface hub are git repositories. Revision == git commit.
For example, the latest revision of BAAI/bge-base-en-v1.5 is a5beb1e3e68b9ab74eb54cfd186867f64f240e1a.

It can be important to pin revisions if you want to be sure that you always serve the correct version of a model. It can also be important if you want to serve your own model and want to A/B test between two different trainings.

Hi @OlivierDehaene, thank you for the clarification!
If you don't mind this follow-up question: How do I know which models are officially supported? Say I am looking for all supported rerankers, is there a list or some other way to find out?


Looping statement

Both for loop & while loop help in Python loop code, syntax below:
While Loop
sum = number
i = number
while variable=value:
sum = sum + number
print (sum)
i = i + number
For Loop
for i in range (number):
sum = sum + i
print (sum)

Python program to illustrate while loop
count = 0
while (count < 3):
count = count + 1
print("Hello Geek")# Python program to illustrate while loop
count = 0
while (count < 3):
count = count + 1
print("Hello ")
#for loop
fruits = ["apple", "orange", "kiwi"]
for fruit in fruits:
print(fruit)


Error occurred in request., InvalidSchema: No connection adapters were found using AzureCli@2 on windows-latest ADO agent

ERROR: Error occurred in request., InvalidSchema: No connection adapters were found for 'C:/Program Files/Git/subscriptions/subscriptionName/resourceGroups/resourceGroupName/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27reader%27&api-version=2018-01-01-preview'.
We are unable to assign roles using azurecli@2 in ADO pipeline using command  az functionapp identity assign having ADO agent using vmImage: 'windows-latest'. Any suggestion on the adapters and why are we getting this issue. Below commands works perfectly : az functionapp identity show

route to CXP team

Adding service team.
@v-anvashist, @V-hmusukula Could you please look into this ?

I was able to fix this issue using powershell type script but with bash
it's not working.
Thanks & Regards,
Nishant Kumar
Contact- +91-9972755448
On Wed, Jan 11, 2023 at 8:12 AM navba-MSFT @.***> wrote:

Adding service team.
@v-anvashist https://github.com/v-anvashist, @V-hmusukula
https://github.com/V-hmusukula Could you please look into this ?
—
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-cli/issues/25040#issuecomment-1378171453,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK55XP7OJ2ZM6OZHOLS2CILWRYM2JANCNFSM6AAAAAATQ56EJ4
.
You are receiving this because you authored the thread.Message ID:
@.***>

Are you somehow using Git Bash in the ADO agent?
ERROR: Error occurred in request., InvalidSchema: No connection adapters were found for 'C:/Program Files/Git/subscriptions/subscriptionName/resourceGroups/resourceGroupName/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27reader%27&api-version=2018-01-01-preview'.

This error is due to a known issue of Git Bash. See https://github.com/Azure/azure-cli/issues/16317 and https://github.com/Azure/azure-cli/issues/16317#issuecomment-768755622 for the solution.

Yes, I am!
On Mon, 16 Jan 2023 at 8:53 AM, Jiashuo Li @.***> wrote:

Are you somehow using Git Bash in the ADO agent?
ERROR: Error occurred in request., InvalidSchema: No connection adapters were found for 'C:/Program Files/Git/subscriptions/subscriptionName/resourceGroups/resourceGroupName/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27reader%27&api-version=2018-01-01-preview'.
This error is due to a known issue of Git Bash. See #16317
https://github.com/Azure/azure-cli/issues/16317 and #16317 (comment)
https://github.com/Azure/azure-cli/issues/16317#issuecomment-768755622
for the solution.
—
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-cli/issues/25040#issuecomment-1383423604,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK55XPZVA5A6YNU2JWD2Q63WSS5MZANCNFSM6AAAAAATQ56EJ4
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Thanks & Regards,
Nishant Kumar
Contact- +91-9972755448


Removed .gitkeep

This PR addresses issue #3361
Summary: I removed .gitkeep file from the drop_down_menu in the marker's view and from the file submissions in a repo in the student's view.
Before: (Drop down menu)

After: (Drop down menu)

Before: (File submissions)

After: (File submissions)

NOTE:
The first selected file in the drop-down menu is hardcoded to be .gitkeep so regardless of whether the file is in the menu, it will still appear. I am open to suggestions on whether I should leave it and it will be an easy fix or do I get the first file (and what if there is no file).

@amrrsharaff your comment means you haven't filtered out the .gitkeep file early enough in the grading view. Instead of where you currently have your filter, look for where show_folder_recursive is being called, and what the input file data is. Use that to find where that data is originally generated, and do the filtering there.


update bizapps

ARM (Control Plane) API Specification Update Pull Request

[!TIP]
Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!

[ ] New resource provider.
[x] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been created in adherence to OpenAPI specs PR creation guidance).
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix OpenAPI spec quality issues in S360.
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.

Additional information

 Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.

Getting help

First, please carefully read through this PR description, from top to bottom. Please fill out the Purpose of this PR and Due diligence checklist.
To understand what you must do next to merge this PR, see the Next Steps to Merge comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
For help with ARM review (PR workflow diagram Step 2), see https://aka.ms/azsdk/pr-arm-review.
If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

hi @ms-henglu @raosuhas
after this pr you reviewed - https://github.com/Azure/azure-rest-api-specs/pull/28504
I changed the swagger a little bit
the current PR is not for master but for a side branch that we reviewing before taking to main (this is a new feature so no breaking change)
mostly rearrange the models (added a sub model) and added a new parameter
in addition - due to a conflict in the C# SDK with System class - we renamed this definition
I see now that I cant ask for an arm review - can you pls add this label for me?
thanks a lot!


Build foundry from source

I think I found a commit of foundry that works to run make devnet-up-espresso and pnpm semver-lock and forge fmt.

Codecov Report

Merging #97 (10e1d2b) into update/sequencer (df569fa) will decrease coverage by 20.31%.
The diff coverage is n/a.

Additional details and impacted files
@@                  Coverage Diff                  @@
##           update/sequencer      #97       +/-   ##
=====================================================
- Coverage             63.47%   43.17%   -20.31%
=====================================================
  Files                    16       37       +21
  Lines                  1525     1128      -397
  Branches                  0      163      +163
=====================================================
- Hits                    968      487      -481
- Misses                  507      641      +134
+ Partials                 50        0       -50

Flag
Coverage Δ

cannon-go-tests
?

chain-mon-tests
26.95% <ø> (?)

common-ts-tests
26.74% <ø> (?)

contracts-ts-tests
100.00% <ø> (?)

core-utils-tests
44.03% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 53 files with indirect coverage changes


[WIP] Add test for extending java class

I've come up with a test for the issue I'm having while I try to build my next Android app using VOC.
I need to extend the class android.view.View to write a custom view, and I keep getting an IllegalAccessError like this:
java.lang.IllegalAccessError: Method 'void android.view.View.<init>()' is inaccessible to class 'org.eliasdorneles.drawingapp.app.SomeViewGroup' (declaration of 'org.eliasdorneles.drawingapp.app.SomeViewGroup' appears in /data/app/org.eliasdorneles-2/base.apk)

I've not been able to reproduce the exact same error outside Android environment, but the tests here already show part of the problem (I can't extend the Java class without providing an alternate constructor that does the right thing).
I have to dig a bit more to see how to do this, any pointers are appreciated. :)

After digging a bit more in the code, I confirmed that VOC currently only supports extending Java classes that have a default constructor.
I'm going to work-around this by doing the inheritance in Java side, just to be able to build my app -- it'll some time to figure out how to fix this in VOC.

I've just hit this exact problem trying to subclass android.view.ViewGroup - I've got some ideas on how to fix it, though. Grab me on gitter if you want to play with some ideas.

This was fixed in: https://github.com/pybee/voc/commit/2b4e6de0c3d67bd46fd46f0c8b5ce4768c181d2c


[3pt] Deployment

Use Render to deploy both projects/apps; Front-end and -Back-end
Add live demo link to both projects.

This ticket was assigned to to as I had another ticket which was not a valid ticket.


Fix 2D and 3D memset

From looking to the code it looks good. I will also perform some test within the next days.
From the performance perspective it would make more sende to use a kernel to perform the ND memset instead of having a loop and spawn multiple 1D memsets. IMO such an optimization should be shipped later as separate pull request.

Fix is working.
@gargrahul I suggest to add CI test similar you added in #1798


Fixes Issue-87: gpm aborts if go get fails to get the package

See issue #87

Nice find @kjelle ! I'll merge and test it for a few days (using HEAD) before making a new release. :)
Thanks for catching it and contributing! ❤

Excellent. @pote, when do you think this will be released?


safe wallets from an airdrop hunter

Related Safe Addresses
0xe6e94ba16E7c752424Cff7aFA0c87602Be3e3Eec
0x705cCA342b7a36C46442C06E7117D33Be661d711
0xD66292d9EE2ddF4772dc94Fe3d2791c38ED7605F
0xF41E53A089854F71eEEA2934967C759658d8560A
0x35345E852C4b70883cB0710945Bf63BC32c01369
0x5cF25A39b7015a1F49208E88e7c45a0ad5921861
0x5Dfa97d1d1746E19Bc5FbB28213C23EB33da498e
0x72002988E532ea1cAB05Dc2AF0F730860e8Aa5C2
0xAc2caB720ce08becCb69FfE5ec9d5aAC3CDc7f3C
0x93Bb9aa2F46f3775d0ff0a916fFac650C574B96b
0xcf0574082B0E548eA57dBD4785863094f856dA2c
0xDe77b3DAA28714E8a21Ad1AE68d93BF65D7E4d34
0x8d1534aAbe5296EbBab5158d4CdfAD6723E6Ec0A
0x4429fb5D1282170c3C644bd4244700F272a71Fc5
0x4eFb649F2f426BaE720BAD46766bF93B1648a919
0x8157A6D2560840fEB273A2D6F08170b7f16DebeF
0x8B5fbcFF2B5Cd20349f4AA49eBb9242f5A401842
0x8Dd6ED429FC3B3d76e01B9aBc49418285C3e124d
0x40F40E7361621459E4C2369A7a9CfA5a42cCD3A5
0xAd9F8a27647E07914B47813c7705e2B3AE0fE0Eb
0x81B773330AA4890Ff0E205280dD00D5252187426
0x74CE9337AAb93EA1ebA2F72fAdd9DeDef3f4DdCC
0xFd083aE5A628Ef4a44A0868cf688d61ae154Eb4E
0x385601D78B1Feff84421894740B2908025B40B59
0x62828cE862FFb5E66a3B6344F0c663Bf3781B4A8
0x6d8AF9a77dFe2742a32E61d92499c3dc0004d36a
0x2e357E35596CDC6310EB4DD6712B60a09110838e
0x5A2f76fecEE91Cf622d3617626095D05f07E7D34
0x891a76e74E8C496AC1b59de0c528b8Abeb2B01Da
0xc2F38537f14c707EA75A6bFe719A8daB9Eee1f3B
Reasoning
The safe wallets above were created by the following addresses. Although those 30 safe wallets were created by different addresses. but I truly believe those addresses belong to same person. The evidence is shown below.
ihwww.eth: 0x3b174445371dd00fb766357f29118ac6a0aeec1c
xgejq.eth: 0x1D7375A6FFc5a60B435558859a2762CFd6C6b07f
nsqlw.eth: 0x2338E4897119a104a3145F7b500fE98B51A56637
qybxi.eth: 0x66109B3b6348d1dF6bF1f8d998e527b967f682EA
obyer.eth: 0xee33d688fe27a3a754435c50f8a12654d5327a16
fgdzg.eth: 0x6069A291fC1DBbB0782A1314b6fb06e6D25B22da
tbkgl.eth: 0xE8FcdB117A5f0eC16Ef040E6fE3F675390A7Bb5c
hfpqr.eth: 0x8a36c41E2b7d0ee24668729d08543AB77A99DCeD
plglk.eth: 0x1CD1a6C4570c039368f5456Aa82574AF6567e6F6
aqziq.eth: 0xA3728c1f3Ac52ded2fc69D3b95235d7a6fD2B377
smpkm.eth: 0xF574fBbbD0C29Ff2dbD10839E33793a6EAfde809
aqytu.eth: 0xFd7D9173403efd29F6b0b576217a59fD426170B8
szirh.eth: 0xe874411d6e354B93bE52B05280052c193550fa03
bugbu.eth: 0xA129D5436FB797ff1d9C11B5F9d3AB0e27Dd34B5
knxyc.eth:  0x4e4b40b1a3f945d6ecc00f65adba063be82439f0
lgtzz.eth: 0xdc7ec05bf7781f9e861ee5486023dc6cf71fa7c4
qepdm.eth: 0x41602b8582f474eb9c029dd502e7dda119345931
xffxf.eth: 0x7f64716cfb04ef0b78a3fcf02d3406a1b9dd0c42
amoef.eth: 0x1e265fdd0654120c739639b87e967f65339aa4cf
tnfps.eth: 0xe274ae86ff13c1bbaacd3662ec5fd7279a18e28f
xggbi.eth: 0xb4d50b4e31181a004beb14e8b0a522bb434ea1fe
weigu.eth: 0x1d0239e4e185f5f3fba605897849744ae8b5f333
xkyoy.eth: 0xc9ac69013f041ebee6009bed69047db1a795dbe9
oqtgh.eth: 0x02e9e647e041854ad3c4c56d8c4f4b69c68a7682
ydlup.eth: 0xf9039ae1e299486d8e6c5740ca6340797fd42736
onzjq.eth: 0xbafaf28d01aefec4cf16830d2187becd502c6e0f
ntqbd.eth: 0x33d7147b957c1d1d0bb17d2b09e1d85e86be9873
lgxbl.eth: 0x81d53cd3e96fd8d51cef3de47e546d0b325af8bf
pypke.eth: 0xd57e9df75381553ce9c154712ac7f73eb206bd63
1. Those addresses have the same historical  behavior pattern
1.1 Start from May-18-2022 : Create Proxy -> Receive 0.0995 ETH from FTX -> Deposit Pending Funds to Aztec -> Deposit ETH to Arbitrum

1.2 Start from May-18-2022 :  Deposit Pending to Aztec 0.0104E - > Transfer 0.001E to oxmons: Multisig -> Pledge 0.002E

2. The interaction with safe wallets are the same.
The only interaction with the safe wallets is transfering USDT from safe wallets to one of the 30 addresses. This kind of transaction is meaningless and is a typical behavior for airdrop hunters.

Examples:
https://etherscan.io/tx/0xcd49be8c3022d8a6b45bf82b6b6bc74b370064ca139809742733f73cfc2e6848
https://etherscan.io/tx/0x763c38912ef35b1feebdf4d059f413e1cddaf66fe95f176f42f7bdbe63c1fd3a
...
https://etherscan.io/tx/0x3926342c68ab318d955425ab72df703af02c839879837549479447a760bca6d2
3. All of the safe wallets were created on the same day

4. Those addresses sent transactions at the same time.

5. All of the addresses have 5 characters ens domain.  There is 99% chances of that those addresses  belong to one person.
Methodology
I searched addresses that have very similar historical transaction patterns such as creating safe wallets in the same block. And then dived into those safe wallets they created in order to check whether they have similar interactions with those safe wallets. All in all, I am 100% that the those domain names and those safe wallets belong to the same person based on the above envidence.
Safe Address
0xc78CdC3dd169f1308f11a0E9Fb30d86dBfED444b

Thanks for the report. All Safes have been found by another report already.

Thanks for the report. All Safes have been found by another report already.

It is very obvious that I found those addresses before https://github.com/safe-global/safe-user-allocation-reports/issues/294.  I think we should follow the "first come first served" rule.

Team please check the edit history of this one and #294
I think 14 addresses should be credited to xiaohu1882

@tschubotz   I believe that  there are 14 safe wallets I found first. I searched the addresses I found before I created the issue https://github.com/safe-global/safe-user-allocation-reports/issues/265. those are the screenshots I saved.

Team please check the edit history of this one and #294 I think 14 addresses should be credited to xiaohu1882

Thank you for clarifying it. Really appreciate. It took me a lot of time to find those safe wallets.


refactor: add minor changes, some from nu_ansi_term

This is I believe all we need to publish the first release, and migrate Eza over to this new maintained version. It has the syntax upgrades from the first commit, it includes the bright colors from #12, with BrightBlack and BrightWhite more appropriately named, and the Default ANSI color added.

Never mind... Ok somehow adding the Option<Rc> field, which I guess doesn't implement the copy trait.. Breaks Eza, so disregard this for now while I try to figure this out


Allow deepcopy of messages

Following #9, consider the following example:
message GiantSlime {}
message PettySlime {}
message MagicOrc {}
message NormalOrc {}

message Slime {
    oneof type_of_slime {
        GiantSlime giant_slime = 1;
        PettySlime petty_slime = 2;
    }
}

message Orc {
    oneof type_of_orc {
        MagicOrc magic_orc = 1;
        NormalOrc normal_orc = 2;
    }
}

message Enemy {
    oneof type_of_enemy {
        Slime slime = 1;
        Orc orc = 2;
    }
}

If one has the following function in GD Script:
const MyProto = preload("res://proto/myproto.gd")
....
func SpawnOrc(spawn_orc:MyProto.Orc) -> MyProto.Enemy:
    var spawn_enemy:MyProto.Enemy = MyProto.Enemy.new()
    var orc:MyProto.Orc = spawn_enemy.new_orc()
    orc = spawn_orc
    return spawn_enemy

spawn_enemy will not contain a copy of spawn_orc, but will instead be empty. The user would have to call the individual set_ function for each property, but will encounter that for composite properties that are defined by messages (like the one in this example) they'll have to initialise a new object and "set" it with the data that comes from spawn_orc.
The API could provide a function to "deepcopy" one proto into another, thus avoiding the need of going each property one by one and setting it to the correct value. An example would be:
const MyProto = preload("res://proto/myproto.gd")
....
func SpawnOrc(spawn_orc:MyProto.Orc) -> MyProto.Enemy:
    var spawn_enemy:MyProto.Enemy = MyProto.Enemy.new()
    var orc:MyProto.Orc = spawn_enemy.new_orc()
    orc.deepcopy(spawn_orc)
    return spawn_enemy

If I understand correctly, you are trying to portray inheritance by means of a protocol, which is not intended for this.
Oneof it's one of unrelated objects.
message GiantSlime {}
message MagicOrc {}

message Slime {
    oneof type_of_slime {
        GiantSlime giant_slime = 1;
        string only_string = 2;
    }
}

message Orc {
    oneof type_of_orc {
        MagicOrc magic_orc = 1;
        sint32 simple_int = 2;
    }
}

message Enemy {
    oneof type_of_enemy {
        Slime slime = 1;
        Orc orc = 2;
        float dog_tail_length = 3;
    }
}

What we need to do??

Perhaps I'm thinking this the wrong way, what I need instead is a library in GD Script that aids protobufs, something like this (in Golang). That way I can have help functions that are common to any protobuf, such as: Merge, DeepCopy, Equals. Would this be the solution here?

I'm not sure... Right now I have very little time to do this project.
Moreover, it is necessary to consider in detail the need for each implemented solution.

Writing this comment for future users that want a similar implementation. I've found a way of doing a deepcopy of one message to another, and is rather simple.
func Deepcopy(from, to):
	to.from_bytes(from.to_bytes())

Given that is short and simple, I don't think we need an extra library to implement this.
Nevertheless there might be more complicated functions that could be needed in the future. Some examples are:

Equals(m1, m2, ignore_fields...): Compares messages m1 and m2, if there are repeated fields then the order of the elements shouldn't be considered for equiality. ignore_fields is a list of keys to be ignored in the comparison.
DeepEquals(m1, m2): Same as Equals but consider the order of elements in repeated fields.
Merge(m1, m2): Merge the contents of m2 into m1, both messages must be of the same type.

Closing this bug since the question has been answered and there' s no need to add a feature.


Add-on is unverified

Even after the amo.json fix, the add-on is still unverified. Presumably the error logs will help to determine the cause of this.

Our bot was missing a dependency on jsonwebtoken. Should be fixed, I'll leave open until we verify.

Closing as fixed. The add-on is signed again. Thank you for fixing this!


Boot hang after "random: crng init done" at worker node(ProLiant XL675d Gen10 Plus w/AMD EPYC 7543)

What happened:
Hanging after  random: crng init done" at worker node(ProLiant XL675d Gen10 Plus w/AMD EPYC 7543)
Screenshot
What you expected to happen:
boot normally
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Server : ProLiant XL675d Gen10 Plus w/AMD EPYC 7543
Environment:

EKS Anywhere Release: 0.10.1
EKS Distro Release: 1.22-9

Hi @SeungyeopShin, what network drivers are present on this server? Are you using RAID? It would be useful if you are able to provide your hardware specifications. Thank you.

Hi @ptrivedi,
The hardware information is below.

Network

Marvell FastLinQ 41000 Series - 2P 10GbE 10GBASE-T QL41132HLRJ-HC MD2 Adapter - NIC
Intel(R) Ethernet Server Adapter I350-T4(Unused)

RAID

Controller : HPE Smart Array P408i-a SR Gen10
OS : RAID 1
Data : Non RAID

GPU

Baseboard : NVIDIA HGX A100 8 GPU 80

Thanks.

Hey there @SeungyeopShin , we're unable to access the linked screenshot.
Also, if you could provide a sanitized copy of your cluster configuration and the support bundle generated by the EKS A CLI  it would aid in debugging. Thank yoU!

Hi, @danbudris .
The screen shot is here
Hanging is appeared only in GPU(HPE) server.
And my cluster configuration is as below.(xxx means masking)
apiVersion: anywhere.eks.amazonaws.com/v1alpha1
kind: Cluster
metadata:
  name: xxx-eksa
spec:
  clusterNetwork:
    cniConfig:
      cilium: {}
    pods:
      cidrBlocks:
        - <IP_ADDRESS>/16
    services:
      cidrBlocks:
        - <IP_ADDRESS>/12
  controlPlaneConfiguration:
    count: 3
    endpoint:
      host: "10.255.xx.xx"
    machineGroupRef:
      kind: TinkerbellMachineConfig
      name: xxx-eksa-cp
  datacenterRef:
    kind: TinkerbellDatacenterConfig
    name: xxx-eksa
  kubernetesVersion: "1.22"
  managementCluster:
    name: xxx-eksa
  workerNodeGroupConfigurations:
    - count: 2
      machineGroupRef:
        kind: TinkerbellMachineConfig
        name: xxx-eksa-worker-default
      name: worker-default
    - count: 1
      machineGroupRef:
        kind: TinkerbellMachineConfig
        name: xxx-eksa-worker-gpu
      name: worker-gpu
  # IAM Authenticator
  identityProviderRefs:
    - kind: AWSIamConfig
      name: aws-iam-auth-config
  podIamConfig:
    serviceAccountIssuer: https://xxx.xxx.xxx

---
apiVersion: anywhere.eks.amazonaws.com/v1alpha1
kind: AWSIamConfig
metadata:
  name: aws-iam-auth-config
spec:
  awsRegion: "ap-northeast-2"
  backendMode:
    - "EKSConfigMap"
  mapRoles:
    - roleARN: xxx
      username: xxx
      groups:
        - system:masters
  partition: "aws"

---
apiVersion: anywhere.eks.amazonaws.com/v1alpha1
kind: TinkerbellDatacenterConfig
metadata:
  name: xxx-eksa
spec:
  tinkerbellIP: "10.255.xx.xx"

---
apiVersion: anywhere.eks.amazonaws.com/v1alpha1
kind: TinkerbellMachineConfig
metadata:
  name: xxx-eksa-cp
spec:
  hardwareSelector:
    type: cp
  osFamily: ubuntu
  templateRef: {}
  users:
    - name: xxx
      sshAuthorizedKeys:
        - ssh-rsa AAAA...

---
apiVersion: anywhere.eks.amazonaws.com/v1alpha1
kind: TinkerbellMachineConfig
metadata:
  name: xxx-eksa-worker-default
spec:
  hardwareSelector:
    type: worker-default
  osFamily: ubuntu
  templateRef: {}
  users:
    - name: xxx
      sshAuthorizedKeys:
        - ssh-rsa AAAA...

---
apiVersion: anywhere.eks.amazonaws.com/v1alpha1
kind: TinkerbellMachineConfig
metadata:
  name: xxx-eksa-worker-gpu
spec:
  hardwareSelector:
    type: worker-gpu
  osFamily: ubuntu
  templateRef: {}
  users:
    - name: xxx
      sshAuthorizedKeys:
        - ssh-rsa AAAA...

---

Can you confirm if your other control and worker nodes were provisioned successfully and it just only the GPU node/s that are stuck in that stage?
Another thing to mention is that AWS IAM Auth isn't supported for Bare Metal yet but the support will be added in the upcoming 0.11 release

Hi @abhinavmpandey08.
Yes, not GPU nodes are successfully provisioned and working well.
(Not GPU nodes are not HPE servers and vm machine on XCP-ng.)
I known that AWS IAM Auth is not working now.
So I manually set up the IAM Auth and IAM for Pod and that is working.

Hi @SeungyeopShin,
When attempting to get provisioned, these servers will first try and boot into the Hook OS. Hook is a minimal, small, in-memory, LinuxKit based OS. This OS works as a bootstrapping OS to start the full provisioning of the servers. We do not have the Marvell/QLogic qed/e drivers on the Hook OS version that we vend and publish with EKS Anywhere GA.
Here are the types of hardware on which we have validated EKS Anywhere.
For other types of wide varieties of hardware that people may have, if Hook OS does not contain the necessary drivers, we recommend you attempt to build your own Hook kernel. We have documented the detailed steps to accomplish that here
Once you have the kernel and initramfs built, you can host them at a location your cluster servers will be able to access via http(s) and specify that custom location via the clusterconfig as described here
Please let us know if you need further help. If you really get stuck, we can try and build the custom Hook OS for you.

Hi @ptrivedi ,
OK I'll try to make own Hook OS.
Thanks.

Hi @ptrivedi
I tried to follow the guide you gave me.
I added marvell and qlogic driver added in menuconfig.
When I boot using customized hook OS image, nothing happens after "Welcome Linuxkit".
screenshot
The phase of workflow for control plane is hanging at "Provisioning"
kubectl get machines -A
NAMESPACE     NAME                                        CLUSTER      NODENAME   PROVIDERID   PHASE          AGE   VERSION
eksa-system   david3-k8s-bk7gc                            david3-k8s                           Provisioning   90s   v1.23.7-eks-1-23-4
eksa-system   david3-k8s-worker-default-f648f996b-ngr4b   david3-k8s                           Pending        92s   v1.23.7-eks-1-23-4

When I followed the guide, there is a thing that didn't work as the document.

after step 6, the generated hook-kernel image tag is quay.io/tinkerbell/hook-kernel:5.10.85-b38f76a8ad6b24ceee1f5d1794a63d8233038707-dirty. So in step 7 error is occured, then I changed the image tag to localhost:5000/hook-kernel:5.18.85 and pushed docker registry.

I have another question.
After v0.11, EKS-A no more provide ubuntu image.
So I tried image build using image-builder with https://anywhere.eks.amazonaws.com/docs/reference/artifacts/#build-bare-metal-node-images.
But I failed to build ubuntu image.
$ image-builder build --os ubuntu --hypervisor baremetal --release-channel 1-23
...
+ export CNI_VERSION=
+ CNI_VERSION=
+ TMP_CNI=/tmp/eks-image-builder-cni
+ mkdir -p /tmp/eks-image-builder-cni
+ curl -o /tmp/eks-image-builder-cni/cni-plugins.tar.gz //cni-plugins-linux-amd64-.tar.gz
curl: (3) URL using bad/illegal format or missing URL
make: *** [Makefile:182: setup-packer-configs-raw] Error 3
make: Leaving directory '/tmp/eks-anywhere-build-tooling/projects/kubernetes-sigs/image-builder'
2022/09/16 08:56:15 Error executing image-builder for raw hypervisor: failed to run command: exit status 2

Do you have any idea?
Please Let me know if you need more information.
Thank you.

Hi @ptrivedi,
I'm waiting your help. please reply.... 😂

Hello @SeungyeopShin, can you share the full log output of the image-builder error? It does looks like manifest might've not been pulled correctly. Could you try again as image-builder user and run the cli from $HOME and not from /tmp or other directories. Please add a --force to clean up previously failed builds.
image-builder build --os ubuntu --hypervisor baremetal --release-channel 1-23 --force

Hello @vignesh-goutham .
I succeeded building image with --force option.
Thank you so much!!!!! 👍 👍👍👍👍👍👍👍👍👍

Great!


Network ops initial structure

A preliminary outline and some thoughts on content and structure.  Creating PR to get some early feedback and to compare consistency across other guides.   Do not merge this at the current time.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: john-a-joyce
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sdake
If they are not already assigned, you can assign the PR to them by writing /assign @sdake in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@geeknoid would you mind reviewing the "outline" and structure of the document.  Recognize the MD is not correct.  No sense reviewing for MD formatting (I'll likely be taking over this PR to sort out the MD formatting and writing the prose).
Plan here is to obtain general consensus if this PR is headed in the correct direction, then either close this PR and finish the job in a new PR, or work on this PR with multiple people.

/assign @geeknoid

I think we need @geeknoid to lay out the overall op guide structure before this can be fleshed out further.

@rshriram: Yes, I agree. I think this doc is more-or-less the info you're talking about. @john-a-joyce it needs to be moved down to the networking section and incorporated into your outline.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: john-a-joyce
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: geeknoid
If they are not already assigned, you can assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Thanks, this looks good.
One comment I have is that I suggest breaking up the single troubleshooting page, and have one page per major category of problems. A quick look the left-hand nav lets the operator more directly hone in on the right page for the problem at hand.

Ok - I can change that

Structure looks good to me

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: john-a-joyce, sdake
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS [sdake]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


ruby: do not depend on host make, setup $RUBYLIB

fixes #239

@thecatwasnot please verify that this solves your use-cases.

Thanks guys for a quick turnaround!  This change and adding gcc fixed the issue.  As far as providing the compiler, could we either add it in the module or in the example?
The errors that rubygems spits out arn't super helpful if gcc is completely absent, and therefore it's tricky to work out that's the problem.
On the other side I'm not sure what the risks are of providing it in the module.  I think providing the example as documentation is probably sufficient.

Thanks guys for a quick turnaround!  This change and adding gcc fixed the issue.  As far as providing the compiler, could we either add it in the module or in the example?
The errors that rubygems spits out arn't super helpful if gcc is completely absent, and therefore it's tricky to work out that's the problem.
On the other side I'm not sure what the risks are of providing it in the module.  I think providing the example as documentation is probably sufficient.

It's a tradeoff between full reproducibility (and large devenv profile size ~= closure size in nix terms) and language module specificity (only having $LANG specific tooling added/configured).
We moved a bit in the direction to the former in this case.
Probably we could just add 'pkgs.stdenv' to 'packages' on a language by language basis, whether it needs the normal C compilation toolchain when invoked within a 'devenv shell'.

That's probably a good idea: https://discourse.nixos.org/t/rubypackages-rails-has-been-removed-from-nix-package-store-starting-22-05/24184/8


Support running commnads without logging prefix (direct to TTY)

This would be useful to get Docker Compose to output it's colors for services for example, and not have the Sage step name as prefix.

@maxahlberg


Add support for Yggdrasil / TensorFlow Decision Forests models

Following this change, a subset of Yggdrasil / TensorFlow Decision Forests models can be imported to and compiled by Conifer. This change supports Classification (binary and multi-class) Gradient Boosted Trees with feature>=threshold conditions.

Thanks for this, it's super nice to have support for these models. Merging!


[dy] Add help command

Summary
Add help command to mage cli.

Tests

cc: @wangxiaoyou1993

If user just type mage, let's show help command as well.

@wangxiaoyou1993 ok i mage the change


Connection details to CE instance

The example does not show how to connect the bridged escalation to an D365 Omnichannel instance. I would have expected code to specify an application ID, key, and URL of the instance to connect to. Th example bot appears to build a bridge to nowhere.

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

ID: e54e7a2b-d7dc-a6b4-74d6-2048111e58d2
Version Independent ID: 22d1d566-b7e3-1770-957f-c4f61f6df9f9
Content: Enable a bot to escalate and end conversation
Content Source: ce/omnichannel/developer/bot-escalate-end-conversation.md
Service: dynamics-365-customerservice
GitHub Login: @susikka
Microsoft Alias: susikka

In lieu of having the documentation updated, would it be possible to share an example or some interim documentation? We need to integrate with Omnichannel as part of an active project.

Checking on this issue again. Want to make it super clear my scenario:

User starts interacting with the bot on some channel such as facebook messenger, Teams, or a web client.
Bot detects the user wants to escalate to a human or is asked to speak to a human
Bridge the conversation to an agent using Omnichannel for Customer Service
User is satisfied with the interaction and the agent closes the chat
User can continue to interact with the bot as before.

Perhaps the demonstration code today assumes the initial interaction with the bot was started using Omnichannel for Customer Service?

@alanflanders Hi Alan, thanks for following up on this. Will reach out to the feature devs for this and let you know the resolution for this.

+1  We have the same issue

@susikka Thank you. Please let me know if there is a Yammer group to collaborate on Omnichannel for Customer Service. Also if you have a GitHub project with an echo bot already built which can be plugged into the Omnichannel for Customer Service as a baseline it would be helpful. We have integrated our bot with other platforms such as CafeX but so far we are not successful getting at response from the bot with D365 Omnichannel. I have added the method into our bot to BridgeBotMessage() but the bot responses are still not making it back into the customer chat window. I can see in monitor screen that the chat has been picked up by the bot, but there are no responses coming back in the chat window. I know the bot works because it is testing OK on Teams and other channels. Please feel free to contact me<EMAIL_ADDRESS>

@alanflanders This scenario is currently not supported. Bot escalation is supported only if the initial interaction with the bot was started using Omnichannel for Customer Service.
You can suggest this feature on https://experience.dynamics.com/Ideas/.

Thank you for the clarification @susikka .  I have also tried to implement a bot as per the documentation and have the initial interface started using Ominichannel for Customer Service. In this case the bot is still not working for me. Do you have a GitHub project with the full echo bot code? We have been successful integrating our bot with other platforms similar to Omnichannel for Customer Service without any extra effort and without requiring specific code written within our bot outside of the standard Microsoft Bot Framework. Again, if you can provide a working example, we can probably move on from there.

Hi @susikka , I was wondering if anyone has had a chance to review this issue. One of my colleagues Jon Rastia has been working with Alpana Bajaj on the rest of the OmniChannel solution, but need some additional assistance on this piece. Please do feel free to email me at<EMAIL_ADDRESS>if you would like to follow up.

Closing this issue since we are discussing this offline.


Add NTI-Gymnasiet alternative domain (nti.se)

There exists an alternative domain which some students are using and it would be great if it could be added.

obsolete, please reply to reopen


Presentation: Clean up deprecated APIs

Note: Deprecated presentation rules are handled separately by @karolisab.

@mergifyio update


Optimize ERC20 implementation

🎉 Description
Some of ERC20 implementation methods contain multiple checks of the same issues

[ ] 🐛 This is a bug report.
[x] 📈 This is a feature request.

📝 Details
The problem is increased gas usage for no reason.
🔢 Code To Reproduce Issue
For example:
function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
}

Why do we need second require if we already have SafeMath.sub. Do we really need to handle uint256 overflow with SafeMath.add?
Same for this:
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _to, _value);
    return true;
}

I think we can easily remove second and third requires, because both SafeMath calls handle exactly the same cases.

Or better to keep requires and avoid SafeMath to save gas.


[ISSUE #3533] optimize: It is better to specify the initialCapacity when initializing a HashMap as a local variable that will not add elements  in the future.

Make sure set the target branch to develop
What is the purpose of the change
for issue #3533
Brief changelog
Specify the initialCapacity when initializing a HashMap as a local variable that will not add elements  in the future,
just like the code in class org.apache.rocketmq.broker.filter.MessageEvaluationContext#keyValues as shown below , it is better.
public Map<String, Object> keyValues() {
        if (properties == null) {
            return null;
        }

        Map<String, Object> copy = new HashMap<String, Object>(properties.size(), 1);

        for (String key : properties.keySet()) {
            copy.put(key, properties.get(key));
        }

        return copy;
    }

Coverage decreased (-0.08%) to 55.014% when pulling 070f172c874f1d9bdec58036677fbb515391eccb on XiaoyiPeng:hashmap_as_a_local_variable_not_escape into 87b0be00012dff86727766081d4243eeee280699 on apache:develop.

In my opinion, setting loadFactor=1 is not a good way, the default value can satisfy most scenarios.

Here is using the style of the previous version code(like org.apache.rocketmq.broker.filter.MessageEvaluationContext#keyValues() ),as shown below:
public Map<String, Object> keyValues() {
        if (properties == null) {
            return null;
        }

        Map<String, Object> copy = new HashMap<String, Object>(properties.size(), 1);

        for (String key : properties.keySet()) {
            copy.put(key, properties.get(key));
        }

        return copy;
    }

because we know exactly how many elements this map is going to put in, and we don't want  the map be expansioned(resize).


Fails silently when creating or destroying records

In route53_record when Amazon API gives a 400 error when API Limit exceeded or Throttling, error get swallowed by rescue clause:
  def delete
    zone(aws).records.get(name, type).destroy
    Chef::Log.debug("Destroyed record: #{name} #{type}")
  rescue Excon::Errors::BadRequest => e
    Chef::Log.error Nokogiri::XML(e.response.body).xpath('//xmlns:Message').text
  end

  def create
    begin
      zone(aws).records.create(record_attributes)
      Chef::Log.debug("Created record: #{record_attributes.inspect}")
    rescue Excon::Errors::BadRequest => e
      Chef::Log.error Nokogiri::XML( e.response.body ).xpath( "//xmlns:Message" ).text
    end
  end

I think this should fail and use the retries option in LWRPs or retry it with f.e. retriable gem. Failing silently is a bad idea

Excon::Errors::BadRequest
--------------------
Expected(200) <=> Actual(400 Bad Request)
excon.error.response
  :body          => "<?xml version=\"1.0\"?>\n<ErrorResponse xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><Error><Type>Sender</Type>Throttling<Message>Rate exceeded</Message></Error><RequestId>56cd4a47-8752-11a4-990a-2baaae76d214</RequestId></ErrorResponse>"
  :headers       => {
    "Content-Length"   => "255"
    "Content-Type"     => "text/xml"
    "Date"             => "Fri, 19 Dec 2014 07:40:43 GMT"
    "nnCoection"       => "close"
    "x-amzn-RequestId" => "56cd4a47-8752-11a4-990a-2baaae76d214"
  }
  :local_address => "XXXXXXXX"
  :local_port    => 41654
  :remote_ip     => "XXXXXXXX"
  :status        => 400

@slyness Any thoughts or suggestions on this?

@josacar I would agree that failing silently in this case is a bad idea. As long as it does not cause the entire convergence to fail as well. I would encourage you to submit a PR. It would be preferable to not include a separate gem requirement if possible.

There are several ways to attack this:

Include a excon middleware
Use idempotent in excon requests in fog
Use a custom retry algorithm
Raise error and let users handle it in Chef with retries option or just handling the error with custom code

@slyness Any preference?

There's another point where it can fail and it isn't handled in the provider, for example:
https://github.com/hw-cookbooks/route53/blob/develop/providers/record.rb#L69
https://github.com/hw-cookbooks/route53/blob/develop/providers/record.rb#L53
https://github.com/hw-cookbooks/route53/blob/develop/providers/record.rb#L55
https://github.com/hw-cookbooks/route53/blob/develop/providers/record.rb#L70
So IMO, third option makes no sense to me, neither leaving it as is.

@slyness fog-aws has the idempotency flag set in master https://github.com/fog/fog-aws/pull/40

@slyness fog-aws has the idempotency flag set in master https://github.com/fog/fog-aws/pull/40

This should be fixed by virtue of the 1.0.0 rewrite to use the AWS SDK but please do open a new issue if the behaviour is still present in a current version.


[8.x] Disable Column Statistics for php artisan schema:dump on MariaDB

The php artisan schema:dump command fails on v10.x MariaDB. This is a resubmission of the fix by @domainregistrar in https://github.com/laravel/framework/pull/40832. (Feel free to merge that one instead to give him credit.)
The previous PR was closed as Taylor was awaiting feedback to confirm the fix. I just ran into this issue myself. The proposed fix solves it and was verified by a few others before me:

@taylorotwell can confirm that this problem exists.
EDIT: Using Laravel 9.x but should also happen in 8.x
Originally posted by @Jubeki in https://github.com/laravel/framework/issues/40832#issuecomment-1032743482

Can confirm this fix works for me 👍🏼
I'm using Laravel version: 8.83.1 and Sail with  image: 'mariadb:10'
mysqldump version:  Ver 10.19 Distrib 10.6.5-MariaDB, for debian-linux-gnu (x86_64)
Before applying this fix:
sail artisan schema:dump
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'intranet' AND TABLE_NAME = 'attendance_reasons';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

   Symfony\Component\Process\Exception\ProcessFailedException

  The command "mysqldump  --user="${:LARAVEL_LOAD_USER}" --password="${:LARAVEL_LOAD_PASSWORD}" --host="${:LARAVEL_LOAD_HOST}" --port="${:LARAVEL_LOAD_PORT}" --no-tablespaces --skip-add-locks --skip-comments --skip-set-charset --tz-utc "${:LARAVEL_LOAD_DATABASE}" --routines --result-file="${:LARAVEL_LOAD_PATH}" --no-data" failed.

Exit Code: 2(Misuse of shell builtins)

Working directory: /var/www/html

Output:
================

Error Output:
================
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'intranet' AND TABLE_NAME = 'attendance_reasons';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

  at vendor/symfony/process/Process.php:272
    268▕      */
    269▕     public function mustRun(callable $callback = null, array $env = []): self
    270▕     {
    271▕         if (0 !== $this->run($callback, $env)) {
  ➜ 272▕             throw new ProcessFailedException($this);
    273▕         }
    274▕
    275▕         return $this;
    276▕     }

      +16 vendor frames
  17  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

After applying this fix:
sail artisan schema:dump
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Database schema dumped successfully.

Originally posted by @22Nick22 in https://github.com/laravel/framework/issues/40832#issuecomment-1059227907

Confirming: just got snagged by this myself (fresh Laravel 9 install using MariaDB via Sail)
Making the changes in this PR got it to work
Originally posted by @benmag in https://github.com/laravel/framework/issues/40832#issuecomment-1163905244

@BrandonSurowiec I know this is closed already, but I ran into another issues because of this fix, please see #43530. I have been trying hard to replicate this issue, but so far I haven't been able to reproduce the issue, but I'm getting the warning instead - both with Laravel 8 and 9, with and without Sail, always with MariaDB installed. Could you try adding this line
dump($this->getPdo()->getAttribute(PDO::ATTR_SERVER_VERSION)."\n");
to vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php function isMaria() and see what the output is in the situations where you would before get the crash?


Uses latest zipkin library in support of simplified json format

This uses internal classes to perform a lot of the translation formerly
done here. By updating to latest zipkin, this also allows use of the new
POST /api/v2/spans endpoint from https://github.com/openzipkin/zipkin/issues/1499
I'm happy to support this including work to switch over to the public
zipkin2 types once they become available later this year. In the mean
time, this uses shade to ensure internal types aren't leaked.

Thanks Adrian!
@bogdandrutu FYI

I tested by running the thing like so..
$ GOOGLE_APPLICATION_CREDENTIALS=~/Downloads/zipkin-demo-81ff9558b5aa.json PROJECT_ID=zipkin-demo java -jar ./collector/target/collector*.jar

then I posted data to the new zipkin endpoint:
$ date +%s000000
1502677917000000
$ curl -s localhost:9411/api/v2/spans -H'Content-Type: application/json' -d'[{
  "traceId": "86154a4ba6e91387",
  "id": "86154a4ba6e91387",
  "kind": "SERVER",
  "name": "get",
  "timestamp":<PHONE_NUMBER>123456,
  "duration": 207000,
  "localEndpoint": {
    "serviceName": "testservice",
    "ipv4": "<IP_ADDRESS>"
  },
  "tags": {
    "http.path": "/api/blah"
  }
}]'

Then, after a few minutes it arrived here: https://console.cloud.google.com/traces/traces?project=zipkin-demo

ps here's an openapi spec that does what I did in curl https://github.com/openzipkin/zipkin-api/pull/33

mind doing a release of v0.3 so that folks can use this?


Single-source crate dependency versions

Would be nice to use the workspace inheritance feature introduced with Rust 1.64 to provide a single source of truth for dependency versions.
Blocked by https://github.com/dependabot/dependabot-core/issues/5315.

I opened a PR for it https://github.com/dependabot/dependabot-core/pull/5794, it should work but it's not merged yet.
It's probably possible to regenerate the docker container and use it locally to make the necessary changes but I have no idea how to do that. I'll gladly accept people testing it and telling me if it works has expected in a variety of configs though 👍

Thanks @poliorcetics! I see your PR got merged, nice! Is the feature available already, then?

It should be. I found a bug, but the use case to encounter is not something I have seen in practice, you can try it out and see if you have no dependabot mrs anymore

Yeah, saw the new issue but that use case doesn't apply to us, so we're unblocked here. Thank you for the PR!

Closed by #4061.


prysm on goerli cannot find suitable peers

I am trying to use goerli network with prysm (alongside geth).
The execution client has synced fine, but the consensus client has not. It shows:
level=info msg="Waiting for enough suitable peers before syncing" prefix=initial-sync required=3 suitable=0
level=info msg="Peer summary" activePeers=3 inbound=1 outbound=2 prefix=p2p

I have opened firewall port 9000 on TCP and UDP.
By the way, during config I:

Disabled CI Rapid Sync
Disabled MEV Boost

Any suggestions how to resolve the suitable=0 issue?

I may take some guesses:

Do we need to provide some seed nodes? Where can we get them from?

Is this message from the consensus logs relevant?
level=info msg="--weak-subjectivity-checkpoint not provided. Prysm recommends providing a weak subjectivity checkpointfor nodes synced from genesis, or manual verification of block and state roots for checkpoint sync nodes." prefix=blockchain

Perhaps I need to enable "CI Rapid Sync" or "MEV Boost"?

Could it be a docker networking issue? (I might try --network=host tomorrow. It has helped me many times in the past!)

Do an ./ethd update and try again please. Prysm should fetch a genesis file and show that it did so, on startup.

Hehe, I also tracked it down to the same issue.
Fixed by 1e85ac3e67ad03c807df011ea9b85b1b36e4914f
Thanks!


#25 improve login

-Added User schema
-Moved routings to router.js
-Moved api routings to api.js
-Started implementing PassportJs and Express-Session to authenticate login

#25


[BEAM-3608] Pre-shade Guava

This adds a module beam-vendor-guava-20 that is just a namespaced redistribution of Guava 20.0. We would then depend on and ship this.
Benefits

Faster build, since we don't shade every project, only these vendor modules (which actually are very fast because there are far fewer classes being scraped)
Smaller jars, since we don't copy Guava 10x+
We can just ban a direct Guava dep easily
Trivial to verify that jar is 1:1 with namespace
Readable code because it doesn't get modified during build
You can actually use two versions and adapt between them if you need to

Reference<EMAIL_ADDRESS>Open questions:

Should I put minor version in everything? Technically it shouldn't be needed, but in practice I imagine it could be.

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.

@lukecwik Gradle does make this trivial. Huzzah.

Seems like not worth it to mess with poms, even though still probably easy. It doesn't have benefits until we port our modules anyhow.
And the most benefit is when we've done this for all the shaded libs so we can turn off the whole process.

Suspiciously, when I depend on this in runners-core-construction-java it does not break the compile.

If you do ./gradlew -p vendor/guava/20 publishToMavenLocal, what does the artifact look like (and what classifier does it use)?
Which configuration are you depending on in vendor/guava/20 from runners-core-construction-java

BTW I did notice that we seem to put shaded classifier on a lot of artifacts which seem like they should be the default jar. I was trying to avoid that here.

There is no such task. Baked into java nature? I also want to avoid going through that code path since most of it is irrelevant. I will refactor the build rules.

We decouple the Gradle build (so it keeps around the pre-shaded and post-shaded artifacts) from what is uploaded to Maven (the post-shaded artifacts using the default classifier).

I think publishing is very relevant anyhow, right? I expected that these artifacts would be actually published even once we are fully migrated. I will definitely include publishing in this PR.

I won't be working on this for a while.


Mana manager rollback not working correctly

Problem observed in the ressims network when chain switching. After rolling back, there is an error in the mana manager when calculating the quantum for a certain issuer, the BICUpdateTime (142) in the mana manager is already ahead of the scheduler update slot (141). This suggests that the mana manager state did not roll back correctly.
docker-network-node-1-validator-1  | 2024-03-20T12:38:28Z       TRACE   Protocol.Engine1                        Scheduler.BlockDropped (block=BlockID(0xe61bf3bff6e7dac0e139576f4cd82e7065e2b38c72cff8f5540d865ee29cc1b98e000000:142) err=failed to calculate mana for account 0x6aee704f25558e8aa7630fed0121da53074188abc423b3c5810f80be4936eb6e in slot SlotIndex(141): BIC update time (142) or output creation slot (5) later than requested slot (141))

As stated in #848 :
We haven't seen that problem during testing for a while, so I assume it's been resolved by one of the other fixes


Too many requests

I'm downloading kernels scripts and I've got "too many requests".
Please let me know what should be the wait time between every two requests to avoid getting such an error.
Thanks.

+1, and how many requests will got  "too many requests".

+1 on lyft dataset

+1 on lyft dataset

+1 on lyft's 3d object detection

did anyone find a solution?

For people hitting errors on competition downloads, please update your client to the latest version pip install --upgrade kaggle

same problem with vehicle dataset..?? Is there any solution. Updating doesn't help

This worked for me.
pip uninstall -y kaggle
pip install --upgrade pip
pip install kaggle==1.5.6

Seriously this has to be fixed please.
@PotatoSpudowski instructions works for me
kaggle competitions download -c rsna-pneumonia-detection-challenge

@PotatoSpudowski thanks this worked for me.
P.S used it in Google collab. Remove ! if using in command prompt
!pip uninstall -y kaggle
!pip install --upgrade pip
!pip install kaggle==1.5.6

@PotatoSpudowski Thanks a ton! :)

@PotatoSpudowski Thanks a lot!!

Hello! I am trying to download a small subset of 5000 images with Kaggle API version 1.5.16 (most recent stable version up to date: December 2023) and I am still getting the same response code mentioned here (429 : Too Many Requests).
I am extracting the images from state-farm-distracted-driver-detection dataset (https://www.kaggle.com/competitions/state-farm-distracted-driver-detection/data).
The error message appears aproximately around the 100th image download.
I am using a simple function for that purpose:
for filename in selected_filenames:
    print(filename)
    kaggle.api.competition_download_file(file_name=f'imgs/train/{selected_dict[filename]}/{filename}',
                                         competition=COMPETITION,
                                         path=DATAPATH)

Is there any kind of waiting time needed between downloads, so that, the response message 429 doesn't appear? Thanks in advance.


Resource adoption implementation

Issue #, if available: #639
Description of changes:

Add a new AdoptionReconciler invoked once per controller
Create resource setters for NameField and ObjectMeta for overriding values when creating CRs

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Closing to move to separate repositories


strange 64 x 64 Matrix - any ideas?

I have some 3,5mm 64 x 64 Pixel Panels laying around which i want to give a second live - they are from video walls.
They have only one connector
I can´t get any picture / Working LED , panel only stays black
I wonder, as it´s 64 x 64 Pixel, it should be 1/32 Scan, but only 4 latch inputs A0 - A3?
It has also additional to RGB 0 and RGB 1  RGB 2 and RGB 3
I assume OR0 means  Output R0?
(In the Original cabinet, PCBs are not daisy-chained)
SQ,,C,S,D,Q  i´d say are for the onboard EEPROM that stores calibration data, so not needed?
Any idea how to start to get at least some leds blinking / lighting up?
Pins are labeled:
R0    OR0
G0    OG0
B0    OB0
R1    OR1
G1    OG1
B1    OB1
CLK  SQ
GND   C
GND   S
GND  D
VCC   Q
VCC  VCC
VCC  VCC
LAT  VCC
OE  GND
A0  GND
A1  GND
A2  OR2
A3  OG2
R2  OB2
G2  OR3
B2  OG3
R3  OB3
G3  B3

No idea ... sorry


Bicep Community Call - August '24

We are hosting our August Bicep Community Call on Thursday, August 29th at 2PM PST!
(We usually switch off from 9AM to 2PM PST every other month to accommodate for different time zones)
Use this issue to address topics you would like to discuss, questions you have for our team, further demos you would like to see, and any high or low points you would like to share. This is an open space for our users to discuss any topics they would like to talk about with our team.
You can list topics of discussion in this thread OR you can ask questions during the Q&A portion of the call.
Please sign up here to get an invite to the call. See you there!

I added this to the previous community call, but a bit late. So I will try again here.
Any thoughts around WhatIf state of the union?
Implemented NSG rules with bicep, and saw how whatIf worked (not worked).
Seems like for whatIf there is a forced sort on the name of the rule, and this sort is used to calculate the delta. Ignoring the way the rules are sorted going in to bicep.
Would be nice to have some customization options for how whatIf behaves, like the option to turn off forced sort so it will honour the sort order of the rules going in to bicep.
For NSG and FW whatIf would be a relay nice sanity check before applying, though the state of things as of now whatIf is a bit dangerous to rely on.
Another nice thing to have is dynamic scopes, so module code can be a bit more DRY. As of now have to duplicate code in to different modules if they need to target different scopes. So would be nice to hear some thoughts on this.

Similar to @mortenlerudjordet, but more in general a status update on the WhatIf short circuiting issue which makes WhatIf quite useless for the time being.

Please can we have an update on the limited/broken What-if functionaility, it sounded like back in April/May that you were actively working on resolving some of the underlying issues.
Any update or ETA would be greatly appreciated.
We are super keen to use Bicep for enteprise scale deployments but cannot do so in its current state 🤞🤞🤞

The What-if issues are massive for me and us as a company. Interested to hear an ETA on when this will be resolved and if there are any work-arounds being used currently because it's hard to justify using Bicep for enterprise clients

Any updates on Key Vault Certificate support?  Seems like a glaring feature miss and while it's not directly owned by the Bicep community is there any way to add some pressure to the Key Vault team to implement?  Open issue... going on for more than two years! https://github.com/Azure/bicep/issues/7354

Any idea when Gaph will be official and not experimental anymore?

on the what-if issues and I would like to ask if there is any plan for this to be introduced, It is needed in many places for building schemas (user defined types). Seems Azure RPs can defined such types when needed.

https://github.com/Azure/bicep/issues/13399

A bit late to the party. But was also wondering about the status on this issue: https://github.com/Azure/bicep/issues/4023

Any chance the community call was recorded at all or were minutes taken and posted somewhere? Thank you

Would also like to know if the recording will be posted somewhere

Bicep calls are always posted on the same YT channel. Just follow the channel and when it is released you will know: https://www.youtube.com/@azuredeploymentsgovernance3067


fix: timer-not-working #101

Related Issue
Closes: #101  that will be closed through this PR
Describe the changes you've made
Give a clear description what modifications you have made
I have created audioRef to reference the <audio> element in the component.
handlePlaySound plays the audio if it's not already playing and starts the timer.
handleStopSound stops the audio if it's playing, resets the timer, and sets soundPlaying to false to indicate that the sound has stopped. and the timer stopped issue is also fixed
Type of change
Bug fix
What sort of change have you made:

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
yes! i tested it and it absolutely working fine when i am tested. if this PR gets accepted i will suggest some more new features i have and i will contribute more to this. Please review the changes and accept the PR. sorry i worked without assigning the issue the task to me. As it is not mentioned in contributing guidelines so that's why i raised a PR. As i am a beginner i don't know if it is correct or not, if it is not correct excuse me for this time, and sorry for disrupting the community guidelines.
Describe how have you verified the changes made
by running the project locally, npm install --legacy-peer-deps after that making some file changes and then npm start
Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[ ] I have commented my code, particularly wherever it was hard to understand.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have added tests that prove my fix is effective or that my feature works.
[ ] Any dependent changes have been merged and published in downstream modules.

Video Proof of what i have done (ignore the interruption they are just hydration errors, they will not come in production.)
https://github.com/Utkarshn10/Focusly/assets/130981122/2b8b7d52-c06e-45fd-b106-551feb0d9a40
previoulsy the timer fluctuates and not worked when morethan one music playing. but i fixed this, to any one of the music is playing the timer will run, when no music is playing the timer will stop.
please consider my PR :D

Someone is attempting to deploy a commit to a Personal Account owned by @Utkarshn10 on Vercel.

@Utkarshn10 first needs to authorize it.
sorry accidentally clicked, i will not make these mistakes anymore in the future. consider my PR and not my mistakes. as a beginner i am exploring all of these. not going to spoil anything

ok i will change that right now please merge my PR

Thanks @KSSaiTeja for contributing to Focusly :)

Thanks for accepting my PR. can i share it on my socials.. and also i have some ideas to improve focusly.. to more beautiful UI.. i want share those ideas with you. could you please tell me how can i share those ideas to you

Thanks @KSSaiTeja for contributing to Focusly :)

my Pleasure..


Refactor listing status icon to its own component

AMLNG-215
Currently when adding a new status icon you have to update the code in multiple places. The logic to determine which icon should show is different across files. It would be nice to consolidate this logic into one react component to improve readability, maintainability and reduce complexity.
e.g. instead of <i className={"classnamedetermined earlier in the code"}> it would be something like
you could also pass in other properties such as size or color to make the component more flexible.

PR Submitted

Merged


Demos don't work

I think the demo can't resolve 'three' ...

I'm currently working on a rewrite of this library. stay tuned!

Most demos fail with Uncaught TypeError: Failed to resolve module specifier "three". Relative references must start with either "/", "./", or "../".
Ocean Breeze demo fails with
Uncaught SyntaxError: The requested module '/-/three@v0.142.0-gdaaABfl8LlJh6YarzQi/dist=es2019,mode=raw/examples/jsm/controls/OrbitControls.js' does not provide an export named 'default' (at OrbitControls.js:16:9)

any update on this project??

Not yet. I haven’t had enough time. If this library is critical to your app, you can buy my time. Please get in touch through email if so.


Add VP9 SVC support

one remaining question:
how should we adjust default bitrate when it comes to VP9? AFAIK, it's more efficient than vp8.

For camera usage, have tested 0.7x vp8 bitrates and it looks well, so using same bitrates as av1 now.

@davidzhao @lukasIO Going to merge this PR so that we can enable vp9/av1 svc now, any concern about it?

on client side
`publishDefaults: {
videoEncoding: {
maxBitrate: 0.9,
maxFramerate: 60,
},
screenShareEncoding: {
maxBitrate: 0.9,
maxFramerate: 30,
},
audioBitrate: 20000,
dtx: true,
stopMicTrackOnMute: true,
      videoCodec:"av1",
      backupCodec: { codec: 'vp9' },          // only needed if overriding defaults
    },`

on server  config
room:       enabled_codecs:         - mime: audio/opus         - mime: video/vp9         - mime: video/av1
but getting error from all VP9 supported browsers
Uncaught (in promise) DOMException: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: Failed to set remote video description send parameters for m-section with mid='2'.

Which version of lk-server are you using? You can try v1.4.2 to test it again, and post your offer & answer sdp if it still can't work.


Feature Request : Add / Edit / Delete NAT Entries

Currently, the API does not have capabilities to add/edit/delete NAT entries of the firewall.   Only Read is supported.
It would be nice to have this capability in the API has NAT is a highly used function of a firewall in our IPv4 (shortage) world.

Hey!
Thanks for the request. I agree NAT is a very important and much needed addition. I should be able to this feature implemented in the next release. I will update this issue when I have a pull request that includes these features.
Thanks again!


chore: cleanup and extend todo comments

Stack:

#216 ⬅
#215
#214
#213

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

This change is

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

Project coverage is 67.39%. Comparing base (d716b09) to head (2072d8e).

Additional details and impacted files
@@                                        Coverage Diff                                         @@
##           pr/Itay-Tsabary-Starkware/tsabary/refactor_mempool_infra/678cdaac     #216   +/-   ##
==================================================================================================
  Coverage                                                              67.39%   67.39%
==================================================================================================
  Files                                                                     25       25
  Lines                                                                    917      917
  Branches                                                                 917      917
==================================================================================================
  Hits                                                                     618      618
  Misses                                                                   273      273
  Partials                                                                  26       26

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


worker processes stuck in FUTEX_WAIT_PRIVATE

I'm using:
celery 2.2.6
django-celery 2.2.4
kombu 1.1.5
RabbitMQ 2.2.0
Over the past few days, I've seen the following symtoms. I'm unsure what the causal relationships are.

Of the 8 celery worker processes, some portion stop consuming CPU.
strace -p  indicates the process is stuck in FUTEX_WAIT_PRIVATE.
The message queue depth in RabbitMQ rises sharply into the thousands of messages.
Killing the stuck workers allows supervisor to restart another instance.
After killing stuck workers, their replacement workers consume CPU, and the message queue depth falls.
beam.smp consumes > 1g resident memory on the RabbitMQ host machine.
Load average on RabbitMQ's host machine rises to 2-3x typical levels, with beam.smp consuming 2-3x the CPU it typically does.
There are tens of thousands  of queues in the output of rabbitmqctl list_queues with 1 message.
Stopping RabbitMQ with rabbitmqctl stop allows supervisor to start a new instance that at least initially uses far less memory: tens or low hundreds of megabytes.
After stopping/restarting RabbitMQ, load average on the host machine returns to typical levels.

At least superficially, there are some similarities between what I see and the observations in https://github.com/ask/celery/issues/417
The main questions I'd like to answer are:

What causes the celery workers to get stuck in FUTEX_WAIT_PRIVATE?
How can I prevent it, or how can I make the system heal itself from that state?
What causes beam.smp to consume more memory than usual? More CPU than usual?
How can I prevent beam.smp from doing so?
Are the symptoms of beam.smp the cause of the celery workers' symptoms? Vice-versa? Do they share a single different cause? Do they have different causes altogether?

I'd appreciate any ideas of where to look next.

Fixed by 363a56cfe10c698a879b91dd2393f9916c2df98c

It looks as though I should enable CELERYD_FORCE_EXECV to take advantage of the fix. Is that correct?

Yeah, sadly this came too late to be a default setting for 2.5.0, but it will probably be a default setting by 2.6.0.


Fix rubocop error for the constant by converting to uppercase

This PR fixes the rubocop issue of the Constant Name for the exercise concept of port-palermo. Since usage of uppercase constants are recommended by the rubocop docs and it is a good practice.

Let us know the link to the forum discussion here as well, please.

https://forum.exercism.org/t/fix-rubocop-error-for-the-constant-by-converting-to-uppercase/6958

@egemen-dev You deleted the branch, so we can't reopen the PR now.

Well since my https://forum.exercism.org/ account was on hold I thought OK probably this PR will never merge and I don't know how long my account will be on hold so I decided that I would just delete the branch. Now, it I understand that it was a bad idea, sorry lol :) you guys are faster than I thought.
If you think the changes in this PR are relevant and okay, I might just open another one. I can't restore this one. What would you say? @iHiD

I'll probably need to re-fork the repo and push the changes again in another PR. See you in the next PR.


Fix linting issues in bootstrap.yml

Some of the lines in bootstrap.yml are too long. Can be fixed with folding

folding :+1:

After removing the error it does not throw the warnings anymore. Any idea why?

No.. Strange. Only thing I see is that the default apparently was updated from 80 to 160 lines long..

In any case we should use the folding operator where that makes sense.

No.. Strange. Only thing I see is that the default apparently was updated from 80 to 160 lines long..

Wait, you're saying it was indeed changed, or that it could explain why it isn't throwing the error?


Using 6th notebook for Video captioning

I am trying to replicate the 6th notebook for video captioning. The main change required to do so would be;
The source here would be video-frames instead of text/words. I have truncated or padded the input videos to ensure that all the videos have 32 frames (i.e. 32 images) only. That is the src_len is 32. Hence the src shape would be [batch_size,  src_len, 3, 224, 224] instead of [batch_size, src_len] only.
However, I am not able to figure out how can I create the src_mask for the 5-dimensional tensor, since the energy vector calculated in the MultiHeadAttentionLayer is a 4-dimensional tensor. I have padded the videos whose number-of-frames are less than 32 with zeroes.
For target, the framework remains exactly the same.
Any ideas?
Also is this idea viable?
Thank you.

I'll admit I don't know how to apply the transformer for video captioning, but it looks like the idea is viable as there has been work on it in the past, see: https://arxiv.org/pdf/1804.00819.pdf
For masking, what you want to do is make your mask broadcastable. For example if you are trying to mask a sequence of [batch_size, 32, 3, 224, 224] then your mask should be [batch_size, 32, 1, 1, 1]
Let's say you had a batch size of 2, and your first video is actually 32 frames long and the second is only 20, then your mask should have the first row be all 1s and the second row be twenty 1s and then twelve 0s. You can then just unsqueeze this 3 times to add the extra dimensions so it is broadcastable.
If you want to split your tensor into n_heads, then it would be: [batch_size, n_heads, src_len, n_channels, height, width] and a valid mask for that would be [batch_size, 1, src_len, 1, 1, 1]. As long as your mask is correct, you can just unsqueeze it and it will broadcast itself to mask out the padded frames.
How are you calculating the energy between the query and the key for your videos?

Thank you for replying.
I'll explain what my hypothesis is. Instead of the input source text, my input would be video frames.
As the source words are converted into a continuous representation by passing them through an embedding layer, similarly, I am converting the frames by passing them through a pretrained google lenet network. To be more precise, I am using the weights of layer pool 5 to encode the frames into a continuous representation. This gives me the following transformation:
[batch_size, frames (32), 3, 224, 224] to [batch_size, 32, 1024]. I further downsample this by passing it through a linear layer such that the output is [batch_size, 32, 512] which represents the output of the embedding layer in case of machine translation.
The calculation of energy is exactly where I was stuck due to the difference in tensor sizes. energy is a 4-dimensional tensor, whereas my src would be a 5-dimensional vector.
Wouldn't calculating energies in the same work? I am basically trying to enforce/hypothesize that changing the source encoding would work for video captioning as well as it does for machine-translation.

If your down-sampling is [batch size, 32, 512] then can you just not use this as the input to the multi-headed attention layer? This would mean you are performing self-attention on the down-sampled images but that might be sufficient?

Hi @bentrevett
Sorry for coming back so late.

If your down-sampling is [batch size, 32, 512] then can you just not use this as the input to the multi-headed attention layer? This would mean you are performing self-attention on the down-sampled images but that might be sufficient?

Even I believed this would work. But I am not able to figure out the source mask's shape. As you said above it should be broadcastable and for a sequence of shape [batch_size, 32, 3, 224, 224], my src_mask should be [batch_size, 32, 1, 1, 1]. In order to transform my src tensor into this mask, should I drop the trailing dimensions and unsqueeze  the tensor with 3 1s?
Even then, the dimension of my energy would be [bs, num_heads, query_len, key_len] which is a 4-d tensor and my mask would be 5-d tensor. I am not able to figure out how things would work here.


Link for caffe models

Hello,
Could you give a link to download sample caffemodels ? And give a clue for training custom models if it is possible using caffe? Or just conversion from darknet ?

Hi, Hilmik. You can check the link https://pan.baidu.com/s/1exXKXw7eFIpfBlO3q9VBTQ password: es12 It depends on the official 608-yolov3-cfg.
->And give a clue for training custom models if it is possible using caffe? Or just conversion from darknet ?
Of course,  you can train the model in caffe, but you should add the preprocess and postprocess as the sample, use the caffe commit https://github.com/BVLC/caffe/pull/6384/commits/4d2400e7ae692b25f034f02ff8e8cd3621725f5c.  And also you can train and conversion from darknet.

Thanks for reply.


Add decode option to parse

Adds ability to pass { decode: false } to parse (the inverse of the encode option available in stringify).

Fixes #124


Add upstreamClient property to jib which tools using jib to build and push images can use.

skaffold uses jib to build and push java images. In order to track,  skaffold-jib adoption we want to add UpstreamClient(skaffold-version) to images pushed to GCR by skaffold via jib.
See https://github.com/GoogleContainerTools/skaffold/pull/2723 for kaniko implementation.
If upstreamClient is present, it will added to the user-agent when pushing to registry

@tejal29 we just released 1.6.0 that has this upstreamClient property. I think Skaffold should put -D_JIB_UPSTREAM_CLIENT=...? Is Skaffold already passing this when invoking Jib?


NoSuchElementException when attempting to iterate over views

A very simple for loop (currently in Java, not yet converted to Kotlin, I apologize :-) ):
for (Iterator<View> i = ViewChildrenSequencesKt.childrenRecursiveSequence(KViewsKt.getRoot(fm)).iterator(); i.hasNext(); ) {
            final View view = i.next();

(the getRoot() looks like this:
val Activity.root: View get() = findViewById(android.R.id.content)!!

fails with
java.util.NoSuchElementException
at org.jetbrains.anko.ViewChildrenRecursiveSequence$RecursiveViewIterator.next(viewChildrenSequences.kt:128)
at org.jetbrains.anko.ViewChildrenRecursiveSequence$RecursiveViewIterator.next(viewChildrenSequences.kt:122)

This is for Anko 0.9

Also reproducible with Anko 0.9.1a:
java.util.NoSuchElementException
at org.jetbrains.anko.ViewChildrenRecursiveSequence$RecursiveViewIterator.next(viewChildrenSequences.kt:129)
at org.jetbrains.anko.ViewChildrenRecursiveSequence$RecursiveViewIterator.next(viewChildrenSequences.kt:123)

same issue


error.message from query's contain the error.code + error.message?

Why is this?

To mirror how Node.js errors are also in the format code + message.