QUESTION: any document about how vDevice and vEU are implemented?

Hi,
I am interested in Rammer and I am trying to understand of how Rammer is implemented. I have some questions about the code:

how vDevice and vEU are implemented?

how the mapping from a vEU to an SM is done (which part of code is related)?

Thanks a lot!

Hi, here is the terminology mapping between the paper and the open-source implementation.
The vDevice is defined in src/nnfusion/engine/pass/graph/blockfusion/block_parallel_device.hpp as BlockParallelDevice. The vEU (block_executor) in CUDA and ROCm GPUs is implemented as a thread block.
In current implementation, the mapping from a vEU to a SM is automatically done by CUDA because SMs in CUDA GPUs and CUs in ROCm GPUs are homogeneous. You may take a look at the generated kernel code.

Hi,
Thanks a lot for the reply. I will take a look at the generated kernel code.

Hi, here is the terminology mapping between the paper and the open-source implementation.
The vDevice is defined in src/nnfusion/engine/pass/graph/blockfusion/block_parallel_device.hpp as BlockParallelDevice. The vEU (block_executor) in CUDA and ROCm GPUs is implemented as a thread block.
In current implementation, the mapping from a vEU to a SM is automatically done by CUDA because SMs in CUDA GPUs and CUs in ROCm GPUs are homogeneous. You may take a look at the generated kernel code.

Hi,
I found that in current implementation,the "RESOURCE_CAPACITY" is set to "480", and "DEFAULT_BE" is set to "10240"(10240=48032), the "80" is the number of SM in a V100 GPU.
It seems that "4" in RESOURCE_CAPACITY and "432" in DEFAULT_BE means "Over-Allocation of blocks" to improve hardware utilization, because I found "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" in code from osdi20_artifact, and it has not been set to specific value in command from codegen_and_build.sh.
But in "5.1 Experimental Setup" from paper, there are four NVIDIA Tesla V100 (16GB), how does the "Four" have been reflected in the source code?
Thanks a lot for response!

Hi, here is the terminology mapping between the paper and the open-source implementation.
The vDevice is defined in src/nnfusion/engine/pass/graph/blockfusion/block_parallel_device.hpp as BlockParallelDevice. The vEU (block_executor) in CUDA and ROCm GPUs is implemented as a thread block.
In current implementation, the mapping from a vEU to a SM is automatically done by CUDA because SMs in CUDA GPUs and CUs in ROCm GPUs are homogeneous. You may take a look at the generated kernel code.

Hi, I found that in current implementation,the "RESOURCE_CAPACITY" is set to "4 * 80", and "DEFAULT_BE" is set to "10240"(10240=4 * 80 * 32), the "80" is the number of SM in a V100 GPU. It seems that "4" in RESOURCE_CAPACITY and 4*32 in DEFAULT_BE means "Over-Allocation of blocks" to improve hardware utilization, because I found "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" in code from osdi20_artifact, and it has not been set to specific value in command from codegen_and_build.sh. But in "5.1 Experimental Setup" from paper, there are four NVIDIA Tesla V100 (16GB), how does the "Four" have been reflected in the source code? Thanks a lot for response!

Hi @zqj2333 , "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" is not used in the blockfusion pass. In -fblockfusion_level=1, it uses global kernel launch for barriers, so there will be no deadlocks. Therefore, we can set the DEFAULT_BE larger to improve hardware utilization. It is the configuration for setting the number of vEUs. We set a default number for general cases and you can set this number for specific hardware. RESOURCE_CAPACITY is a heuristic rule to fetch "resource-efficient" kernel if the kernel DB has.
"Four" is not used. Our testbed has "Four" gpus and we need to report it. but we only used one of them.

Hi, here is the terminology mapping between the paper and the open-source implementation.
The vDevice is defined in src/nnfusion/engine/pass/graph/blockfusion/block_parallel_device.hpp as BlockParallelDevice. The vEU (block_executor) in CUDA and ROCm GPUs is implemented as a thread block.
In current implementation, the mapping from a vEU to a SM is automatically done by CUDA because SMs in CUDA GPUs and CUs in ROCm GPUs are homogeneous. You may take a look at the generated kernel code.

Hi, I found that in current implementation,the "RESOURCE_CAPACITY" is set to "4 * 80", and "DEFAULT_BE" is set to "10240"(10240=4 * 80 * 32), the "80" is the number of SM in a V100 GPU. It seems that "4" in RESOURCE_CAPACITY and 4*32 in DEFAULT_BE means "Over-Allocation of blocks" to improve hardware utilization, because I found "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" in code from osdi20_artifact, and it has not been set to specific value in command from codegen_and_build.sh. But in "5.1 Experimental Setup" from paper, there are four NVIDIA Tesla V100 (16GB), how does the "Four" have been reflected in the source code? Thanks a lot for response!

Hi @zqj2333 , "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" is not used in the blockfusion pass. In -fblockfusion_level=1, it uses global kernel launch for barriers, so there will be no deadlocks. Therefore, we can set the DEFAULT_BE larger to improve hardware utilization. It is the configuration for setting the number of vEUs. We set a default number for general cases and you can set this number for specific hardware. RESOURCE_CAPACITY is a heuristic rule to fetch "resource-efficient" kernel if the kernel DB has.
"Four" is not used. Our testbed has "Four" gpus and we need to report it. but we only used one of them.

Thanks for your response!
In the heuristic rule, why is the RESOURCE_CAPACITY set as 320 rather than 80 or other number？

Hi, here is the terminology mapping between the paper and the open-source implementation.
The vDevice is defined in src/nnfusion/engine/pass/graph/blockfusion/block_parallel_device.hpp as BlockParallelDevice. The vEU (block_executor) in CUDA and ROCm GPUs is implemented as a thread block.
In current implementation, the mapping from a vEU to a SM is automatically done by CUDA because SMs in CUDA GPUs and CUs in ROCm GPUs are homogeneous. You may take a look at the generated kernel code.

Hi, I found that in current implementation,the "RESOURCE_CAPACITY" is set to "4 * 80", and "DEFAULT_BE" is set to "10240"(10240=4 * 80 * 32), the "80" is the number of SM in a V100 GPU. It seems that "4" in RESOURCE_CAPACITY and 4*32 in DEFAULT_BE means "Over-Allocation of blocks" to improve hardware utilization, because I found "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" in code from osdi20_artifact, and it has not been set to specific value in command from codegen_and_build.sh. But in "5.1 Experimental Setup" from paper, there are four NVIDIA Tesla V100 (16GB), how does the "Four" have been reflected in the source code? Thanks a lot for response!

Hi @zqj2333 , "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" is not used in the blockfusion pass. In -fblockfusion_level=1, it uses global kernel launch for barriers, so there will be no deadlocks. Therefore, we can set the DEFAULT_BE larger to improve hardware utilization. It is the configuration for setting the number of vEUs. We set a default number for general cases and you can set this number for specific hardware. RESOURCE_CAPACITY is a heuristic rule to fetch "resource-efficient" kernel if the kernel DB has.
"Four" is not used. Our testbed has "Four" gpus and we need to report it. but we only used one of them.

Thanks for your response! In the heuristic rule, why is the RESOURCE_CAPACITY set as 320 rather than 80 or other number？

It's an empirical parameter to see whether a rKernel candidate can occupy the whole GPU. Because a SM of the GPU can run multiple thread blocks and a thread block usually cannot occupy the whole SM, we set it to 480 instead of 80. Note that the SM of V100 has 4 warp schedulers, that is to say, there should be at least 4 warps to occupy a SM. When the size of a thread block is 32 (i.e., a warp), only ">=480" has the opportunity to occupy the V100 GPU (but 48032 also usually cannot occupy a V100).

Hi, here is the terminology mapping between the paper and the open-source implementation.
The vDevice is defined in src/nnfusion/engine/pass/graph/blockfusion/block_parallel_device.hpp as BlockParallelDevice. The vEU (block_executor) in CUDA and ROCm GPUs is implemented as a thread block.
In current implementation, the mapping from a vEU to a SM is automatically done by CUDA because SMs in CUDA GPUs and CUs in ROCm GPUs are homogeneous. You may take a look at the generated kernel code.

Hi, I found that in current implementation,the "RESOURCE_CAPACITY" is set to "4 * 80", and "DEFAULT_BE" is set to "10240"(10240=4 * 80 * 32), the "80" is the number of SM in a V100 GPU. It seems that "4" in RESOURCE_CAPACITY and 4*32 in DEFAULT_BE means "Over-Allocation of blocks" to improve hardware utilization, because I found "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" in code from osdi20_artifact, and it has not been set to specific value in command from codegen_and_build.sh. But in "5.1 Experimental Setup" from paper, there are four NVIDIA Tesla V100 (16GB), how does the "Four" have been reflected in the source code? Thanks a lot for response!

Hi @zqj2333 , "DEFINE_int32(fnum_non_cpu, 1, "Number of gpus.")" is not used in the blockfusion pass. In -fblockfusion_level=1, it uses global kernel launch for barriers, so there will be no deadlocks. Therefore, we can set the DEFAULT_BE larger to improve hardware utilization. It is the configuration for setting the number of vEUs. We set a default number for general cases and you can set this number for specific hardware. RESOURCE_CAPACITY is a heuristic rule to fetch "resource-efficient" kernel if the kernel DB has.
"Four" is not used. Our testbed has "Four" gpus and we need to report it. but we only used one of them.

Thanks for your response! In the heuristic rule, why is the RESOURCE_CAPACITY set as 320 rather than 80 or other number？

It's an empirical parameter to see whether a rKernel candidate can occupy the whole GPU. Because a SM of the GPU can run multiple thread blocks and a thread block usually cannot occupy the whole SM, we set it to 4x80 instead of 80. Note that the SM of V100 has 4 warp schedulers, that is to say, there should be at least 4 warps to occupy a SM. When the size of a thread block is 32 (i.e., a warp), only ">=4x80" has the opportunity to occupy the V100 GPU (but 4x80x32 also usually cannot occupy a V100).

Thanks a lot!I have understood it!


Actions and Events both exist in the events.yml file, possible typo?

What is your Quests version / build number (do not say "latest")?
Describe the problem and how to replicate it. Any console errors to post using Pastebin.com?
If applicable, can you provide an example quest from quests.yml using Pastebin.com?

sorry, all my edits didn't save, it'll be edited shortly if it hasn't already

Although I recognize this is a valid issue, the language in your linked Pastebin will not be tolerated here. I've taken note of the problem, but must lock the conversation and remove the link to your post. This ticket will be updated once the issue is resolved.

Fixed in #818

Fixed in https://github.com/PikaMug/Quests/commit/e919554e59807fde46509f09711ad7a067e17a9d


Add a signed method to ActiveSupport::TestCase

When api_auth is used for authentication, you can no longer write controller tests without mocking or stubbing your authenticate method, but this may hide some bugs or unexpected behavior and short circuits the security layer of your API.
You can't sign the request directly in you test because before you call your action because headers aren't set yet so authentication will still fail.
I've added a signed method that accepts the access_id and secret_key as parameters and will sign the request after the headers have been set.  I modeled it after the xhr method, so you you have to pass the verb as well.
              should 'have access to teams in other organizations' do
                team = create(:team)
                api_key = create(:api_key, role) # This creates a user with the passed in roll and an access_id and secret_key that belongs to that user.  This is an application detail your app must implement.

                signed :get, :index, api_key.access_id, api_key.secret_key, format: :json

                assert_response :success
              end

When api_auth is used for authentication, you can no longer write controller tests without mocking or stubbing your authenticate method, but this may hide some bugs or unexpected behavior and short circuits the security layer of your API.

I can see why you don't want to "short-circuit the security layer" but what about stubbing the authenticate method in controller specs and using request specs for an end-to-end test including authentication?

Also, ActiveSupport::TestCase doesn't seem to ship with Rails 2.3 which we're still testing against.

what about stubbing the authenticate method in controller specs and using request specs for an end-to-end test including authentication?

Wouldn't the request spec have the same problem of signing the request?  Where would it get signed in the request spec?  I'll commit a fix for rails 2.3.2.

Any update on this?


drivers/note: suport rpmsg transfer channel for note,some note api

Summary
drivers/note: suport rpmsg transfer channel for note, some note api need to adapte for rpmsg.
We can transfer note content through rpmsg
Impact
New feature
Testing
CI

@XuNeo @xiaoxiang781216


Add changelog for v2.0.1 and update README

Purpose of this PR
Proposed changes:

Add changelog for v2.0.0
Add changelog for v2.0.1
Bump VERSION file to v2.0.1
Update version matrix for v2.0.x
Add integration test status badge to README

Change Category
Indicate the type of change by marking the applicable boxes:

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that could affect existing functionality)
[x] Documentation update

Rationale

Checklist
Before submitting your PR, please review the following:

[ ] I have conducted a self-review of my own code.
[ ] I have updated documentation accordingly.
[ ] I have added tests that prove my changes are effective or that my feature works.
[ ] Existing unit tests pass locally with my changes.

Additional Notes

/assign @jacobsalway

/approve


I am getting a 404 error when attempting to curl the download link

https://raw.githubusercontent.com/Homebrew/install/master/install
I am getting a 40 on this link. I am also unable to join the Slack channel. any chance you could look at this? Thanks!!

figured it out


Discussion:  Add way to read the current timer value in CountDown trait

I'd like to use a timer to measure how long something takes.  I can't use the timer trait currently since there's no way to read the current timer value.  What do we think about adding a method to CountDown that returns the current timer value?
For example, see lap method below.
pub trait CountDown {
    /// The unit of time used by this timer
    type Time;

    /// Starts a new count down
    fn start<T>(&mut self, count: T)
    where
        T: Into<Self::Time>;

    /// Returns the current value of the timer as how much time has elapsed since starting.
    fn lap<T>(&self,) -> T
    where
        T: Into<Self::Time>;

    /// Non-blockingly "waits" until the count down finishes
    ///
    /// # Contract
    ///
    /// - If `Self: Periodic`, the timer will start a new count down right after the last one
    /// finishes.
    /// - Otherwise the behavior of calling `wait` after the last call returned `Ok` is UNSPECIFIED.
    /// Implementers are suggested to panic on this scenario to signal a programmer error.
    fn wait(&mut self) -> nb::Result<(), Infallible>;
}

I also need a way to get the current counter value of a timer. However, in my case I only need that, no need for starting / resetting / waiting.
In the case of an STM32 timer, an implementation is actually really simple, you just start the timer and then read the CNT (counter) register of the timer.
However, I'm not sure what the best API design is around timers... Seems that they can be used in a lot of different ways, so it's hard to build an abstraction that works everywhere. Maybe the focus should be on use cases, not on the capabilities.
One use case is "waiting until a certain time has elapsed". That is best solved by an interrupt based timer like CountDown.
Another use case is "measuring relative time that has elapsed" between two events. That can be done using a periodic up- or downcounting timer where the counter register can be read. Depending on timer resolution, an implementation might need to deal with overflows. I'm not sure whether this is something that should be in embedded_hal or whether this should be up to the implementation.
An example of the second use case is the Monotonic trait of RTIC:
https://github.com/rtic-rs/cortex-m-rtic/blob/8a4f9c6b8ae91bebeea0791680f89375a78bffc6/src/lib.rs#L129-L162
An example implementation can be found here.

The embedded-time crate provides a Clock trait to abstract hardware timers/counters. It currently includes a blocking delay() function as well as the ability to get a duration elapsed since some point in time (stop-watch), but I am working on adding specific timer functionality in this PR (FluenTech/embedded-time#21). This timer functionality would include creating one-shot and periodic timers, setting a duration (in real-world units), checking for expiration, blocking until expiration, reading elapsed duration, reading remaining duration, etc. Timer will not be a trait, but rather it will rely on any provided Clock impl. In this way, you impl a Clock over any hardware timers/counters, and you can create and use any number of timers for various purposes. I also plan to add interrupt capabilities to the Clock trait and likely allow a Timer to use that for scheduling some task.

Struggling with a similar problem, would be good if the CountDown trait would include the ability to allow reading back the current count.
(I am actually trying to make a specialized version of software timers similar to embedded-time, but which uses callback functions instead of the futures which is used in embedded-time.
@PTaylor-us Would adding this allow the embedded-time crate to use the CountDown trait as a basis instead of your more specialized Clock Trait?

@arjanmels Actually, embedded-time does not currently have any way to execute a task upon the expiration of a timer. It's something I tried to implement, but put it on hold because of other priorities. It is something I'd like to implement at some point.
Regarding the CountDown trait. It is actually something different than the embedded-time Clock trait. It is closer to the software timers as it counts to an expiration. If the CountDown trait fits anywhere in embedded-time it is as a trait implemented by the Timer (software timer) type(s).

@PTaylor-us thanks for the insight. Interesting thought that the embedded-rust trait would be the output instead of the input... That is for me an indication that the abstraction is not powerful enough in its current form.
Would love to get some input from the wider community.


Waves not working in Windows + Chrome

Unable to replicate in Win 7 or 8 using Chrome 39.0.2171.95

I believe it is only a problem when the computer also has a touch screen.

I can confirm waves does not work on Chrome nor Opera on Windows with a touch screen

Should be fixed in bfff4395766db0154302c7dc074d72269bbcaed2. I may need some help testing this as neither of the core developers have a touchscreen windows device.

I can confirm it now works in Chome and Opera on my test environment (Windows 8.1 laptop with touch screen).

Fixed in bfff4395766db0154302c7dc074d72269bbcaed2

Yeah this was initiated form touch device desktop, and now fixed.
Thanks alot..


Resolve syncing conflicts from repo_sync_working_branch to master

Pull request opened by Docs to resolve syncing conflicts from repo_sync_working_branch to master.

@huypub : Thanks for your contribution! The author, @chrislound, has been notified to review your proposed change.

@huypub : Thanks for your contribution! The author, @billmath, has been notified to review your proposed change.


GPU support for Swarm applications

Related to https://github.com/portainer/portainer/issues/3143 (which brings support for GPU on Docker container applications)
We should bring supprot for GPU when deploying/editing Swarm applications.

Update:
This has been currently reviewed by Product and ongoing discussions are taking place.  I do not yet have a timeline or a release.  I will update as I learn more.
Thanks!

Can this please get updated with a timeline?
Not having swarm support means no "real IP" support for containers.


Add ability to Transfer API ownership

[ ] Team admin can transfer to another team where he is admin
[ ] Tenant admin (or super admin) can choose any team


Surya/y2 k 278/guiconfig

@chrisnojima there are the values (and types) that'll be migrated over, please sanity check.
{
    "stellar": {
        "lastSentXLM": false
    },
    "ui": {
        "importContacts": {
            "user1": true,
            "user2": false,
            "user3": true
        },
        "routeState": "foo",
        "routeState2": "bar",
        "shownMonsterPushPrompt": true
    }
}

What about the existing app-state.json file?  Can some (or all) of this live there?  that lastSentXLM thing seems like application state to me, for example.

@patrickxb I believe that @chrisnojima wants to move away from app-state.json long term.

yeah lets have core handle this keystore. app-state is a hack and should go away and be replaced w/ this. Those keys look fine, but we should just kill the old routeState
remove this line in this PR: https://github.com/keybase/client/blob/ade88a6044a40072ef8b7d28d657f63579662b67/shared/actions/platform-specific/index.native.tsx#L217
(you could also remove that generator and the chain call

@chrisnojima there is a "clearRouteState" call in loadStartupDetails, should I remove it too?
diff --git a/shared/actions/platform-specific/index.native.tsx b/shared/actions/platform-specific/index.native.tsx
index fac123618d..f97d2486bd 100644
--- a/shared/actions/platform-specific/index.native.tsx
+++ b/shared/actions/platform-specific/index.native.tsx
@@ -212,14 +212,6 @@ const getStartupDetailsFromShare = (): Promise<
       })
     : Promise.resolve(null)

-function* clearRouteState() {
-  yield Saga.spawn(() =>
-    RPCTypes.configGuiSetValueRpcPromise({path: 'ui.routeState', value: {isNull: false, s: ''}}).catch(
-      () => {}
-    )
-  )
-}
-
 let _lastPersist = ''
 function* persistRoute(state, action: ConfigGen.PersistRoutePayload) {
   const path = action.payload.path
@@ -331,9 +323,6 @@ function* loadStartupDetails() {
         startupConversation = item.param && item.param.selectedConversationIDKey
         startupTab = item.routeName
       }
-
-      // immediately clear route state in case this is a bad route
-      yield clearRouteState()
     } catch (_) {
       startupConversation = null
       startupTab = null
@@ -574,7 +563,6 @@ const getE164 = (phoneNumber: string, countryCode?: string) => {
 function* platformConfigSaga(): Saga.SagaGenerator<any, any> {
   yield* Saga.chainGenerator<ConfigGen.PersistRoutePayload>(ConfigGen.persistRoute, persistRoute)
   yield* Saga.chainAction<ConfigGen.MobileAppStatePayload>(ConfigGen.mobileAppState, updateChangedFocus)
-  yield* Saga.chainGenerator<ConfigGen.LoggedOutPayload>(ConfigGen.loggedOut, clearRouteState)
   yield* Saga.chainAction<ConfigGen.OpenAppSettingsPayload>(ConfigGen.openAppSettings, openAppSettings)
   yield* Saga.chainAction<ConfigGen.CopyToClipboardPayload>(ConfigGen.copyToClipboard, copyToClipboard)
   yield* Saga.chainGenerator<ConfigGen.DaemonHandshakePayload>(

yeah

merging over TestMemberAddRace flake...


Remove overrideComponentWebpack config option in favour of always using projectDir/webpack.config.react4xp.js

Needs to be documented in upgrade doc and elsewhere.

´


Merge pull request #5333 from chanzuckerberg/main

chore: deploy to staging 7/26
Reason for Change

#TICKET_NUMBER
If the reason for this PR's code changes are not clear in the issue, state value/impact

Changes

add
remove
modify

Testing steps

Either list QA steps or reasoning you feel QA is unnecessary
Describe how you made sure to know that your changes worked. Should allow someone else to go verify your code without in depth knowledge.
"Unit tested only", "tested in rdev by a, b, c, verifying feature worked by... ", "manually ran pipeline locally with these results: ..."

Notes for Reviewer

This was created because the repo page popped a "Compare Pull Request" suggestion which was annoying. No need for this since we already created a PR from main to staging to do a staging deploy for 07/26/2023.
We should fix the config such that when PR is opened into staging and force merged, it doesn't popup this suggestion


Random change

I think that the travis-ci doesn't run if I mark it as a draft pr.

Coverage remained the same at 93.718% when pulling f30b667344b7e70dd8f150410e8ae3e42a60cfc8 on test-pr-2 into b21db43e756b24e32cc4a16dabe415230119e1ce on master.


Include Utils in muzak/index.rb

This includes the Utils module in muzak/index.rb so that the error
functions are defined. This caused a bug where causing an error in
albums-by-artist or songs-by-artist would cause the program to quit.
This also returns an empty Hash instead of an empty Array when no artist is
found for albums-by-artist, so that it does not fail when the keys
method is called on it.
Testing
Running albums-by-artist xyz or songs-by-artist xyz where xyz is an artist that does not exist in the index should not cause a fatal exception on this branch.

Thanks!


Make the ID registry about the EBML Header only

And add initial values.

Ping @mbunkus

Hmm, you removed any mention of "global elements" now. Not sure if that's the right thing to do; CRC-32 and Void are global, after all. It might be clearer to mention globals again :)

Moritz Bunkus<EMAIL_ADDRESS>wrote:
> Hmmm we do have some discrepancies regarding element naming. You're
> either talking about the EBML Document Type in general or the DocType
> Element, but not the EBML DocType Element you include in this list.
> Similar, you're talking about CRC-32 Elements elsewhere in the document
> but in this list you use CRC-32 (which would match the rest of the
> document but not the rest of the table; otherwise you'd have to use
> EBML CRC-32.
Yes, we want to make it consistent.
Usually there is a third column in a registry which says which document.

ID        | Name                     | Document
+----------:|:-------------------------+---------
+0x1A45DFA3 | EBML Head                | [THIS DOCUMENT] section X
+0x4286     | EBML Version             | [THIS DOCUMENT] section X
+0x42F7     | EBML Read Version        | [THIS DOCUMENT] section X
+0x42F2     | EBML Max ID Length       | [THIS DOCUMENT] section X
+0x42F3     | EBML Max Size Length     | [THIS DOCUMENT] section X
+0x4282     | EBML DocType             | [THIS DOCUMENT] section X
+0x4287     | EBML DocType Version     | [THIS DOCUMENT] section X
+0x4285     | EBML DocType Read Version| [THIS DOCUMENT] section X

I'd prefer to use the element names as they're used in the headings
that describe them: EBML, EBMLVersion and EBMLMaxIDLength, but
DocTypeVersion, CRC-32 and Void. That would be precise and easy enough
to cross-reference.

No need to guess, put the reference right in.

Added a reference to the document and a wording that includes global elements explicitly, the ones found in the EBML Header.


Issue with OpenCV on ROS Noetic on Nvidia Jetson Xavier NX (Jetpack 5.1.1)

Hello,
I'm trying to use als_ros on Noetic but I can't run map_server and als_ros at the same time.
When I run :
roslaunch als_ros mcl.launch
I don't get any error until I run the following command in another terminal :
rosrun map_server map_server <myMap>
I get the following error in the terminal where I ran als_ros :
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.5.4) /home/ubuntu/build_opencv/opencv/modules/core/src/matrix.cpp:250: error: (-215:Assertion failed) s >= 0 in function 'setSize'

[mcl-2] process has died [pid 21493, exit code -6, cmd /home/nvidia/catkin_ws/devel/lib/als_ros/mcl __name:=mcl __log:=/home/nvidia/.ros/log/e577bfa6-263f-11ee-95f6-48b02d059d63/mcl-2.log].
log file: /home/nvidia/.ros/log/e577bfa6-263f-11ee-95f6-48b02d059d63/mcl-2*.log

And home/nvidia/.ros/log/e577bfa6-263f-11ee-95f6-48b02d059d63/mcl-2.log does not exist

It seems like there is an issue here :
https://github.com/NaokiAkai/als_ros/blob/1306c625f009cb67f0c4174a0f913f344da4ff9c/src/als_ros/include/als_ros/MCL.h#L1369

I fixed it thank to this answer :
https://forums.developer.nvidia.com/t/jetpack-5-opencv-version-nvidia-should-stick-to-ubuntu-standards/218637/5
I had to uninstall OpenCV 4.5 that comes with Jetpack5.1.1 :
sudo apt-get purge libopencv
Get the version to install with apt-cache policy libopencv-dev
And reinstall OpencCV 4.2 :
sudo apt-get install libopencv-dev=4.2.0+dfsg-5


chore: nodejs-hello-world to 0.0.1

chore: Promote nodejs-hello-world to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  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:

OWNERS

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


Set up binary compilation for releases

Probably similar to https://github.com/cargo-bins/cargo-binstall/blob/af04e45b5a516b2944f41a2d2db409c1d8e0f15d/.github/workflows/release-packages.yml , just much simpler.
Let's try amd64 for Linux and Windows, and arm64 for Linux and macOS.

See also:

https://github.com/cross-rs/cross
https://www.reddit.com/r/rust/comments/yuzomz/any_examples_of_a_good_way_to_cross_compile_a_cli/

Done by 62bd5fd and its many parents.


Attempt to allow Building of armhf and aarch64

Add armhf and aarch64 to the list of build-able architectures
Todo : Replace container build  with a proper docker setup
This will be required for https://github.com/linuxdeploy/linuxdeploy/pull/189
Works until it fails to pull linuxdeploy-arch from github for armhf and aarch64

Hey guys. Any updates on this? I'm not trying to push, but I was almost about to create a new ticket to request adding support for ARM64 (aarch64) binaries, ready for download in the release page, as I am working on Linux ARM64 on a daily basis. I keep getting thrown back from time to time due to lag of support of some little software projects that I'd like to give some more attention to however :)

I'm not a fan of third-party actions, however that could be solved. I wonder, though, if this really not-so-complex tool couldn't just be cross-compiled on Ubuntu with clang or g++-aarch64-linux-gnu?

Anyway, the main issue I have with this PR is the use of that third-party action. In my opinion, CI should always be written in a way so the majority can be run locally (and on virtually any CI system). The actions code should be limited to the minimum required to run all required configurations.

https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/ solved @TheAssassin


Can't run sendMessage function from outside mumble.connect

Here is part of my code:
let MumbleClient;
mumble.connect( 'mumble://localhost', options, (error,client) => {
    if( error ) { throw new Error( error ); }
    client.authenticate( 'sh1bot' );

    client.on( 'initialized', () => {
        console.log('Connected to Mumble');
    });

    client.on('message', (message,user,scope) => {
        if(user.name != "sh1bot") MatrixClient.sendTextMessage("!iYtzSBNGLHCIxfsRpO:matrix.org", user.name+": "+message);
    });

    MumbleClient = client;
});

When I trying to do MumbleClient.sendMessage from outside mumble.connect it show this error:
Caught /sync error TypeError: Cannot read property 'sendMessage' of undefined
    at MatrixClient.CreateClient.MatrixClient.on (/home/sh1omi/Desktop/BridgeBot/index.js
:73:21)

You can close this issue.
MumbleClient.sendMessage(event.getSender() + ": " + event.getContent().body, {channel_id: [MumbleClient.user.channel.id]});

I think that "{channel_id: [MumbleClient.user.channel.id]}" should be a default for  recipients.

Quickly thinking that sounds like a good idea. I'll take a look at it some point and make sure there's no compatibility issues, etc. with that.
Will leave this open till I do.


Improve local development instructions

I was trying to make a PR to Umami but it was quite hard to get it to run locally. There are instructions in the current README but they are tailored for production usage, so I added some instructions for setting up Umami for development/contribution work. I'm open to ways of improving it if I misunderstood something about the setup, as I did it with trial and error.
Hopefully this will make it easier for people to contribute in the future!

Thank you for this PR, but this probably belongs somewhere on the website as a guide for developers. We want to keep the README as simple as possible.

@mikecao It's up to you how to structure it but a GitHub readme feels like a pretty natural place to look for instructions on how to contribute to a project. The current state where developers have to guess how to run the project locally for development purposes and without any access to a Dockerfile to run dependencies, it's just very hard to contribute to this project.


chore(Cauchy): drop Nonempty/Inhabited assumptions

Use haveI to drop unneeded Nonempty/Inhabited assumptions.

Thanks!
bors merge


Cherry picked: Improved proto generation script

This improved proto gen script comes with credit to Tony upstream on the
github.com/cosmos/cosmos-rust repo.
Cherry picked from Justin's work in the althea-net repo:
https://github.com/althea-net/cosmos-gravity-bridge/commit/cebad5a535570336b1b52f0a6ba13259c1052b95

In draft because I cherry picked and pushed, but haven't tested.

Seems to work well -- one issue I notice is that our generated code is sometimes run through a formatter and sometimes not, leading to noise like this:
diff --git a/orchestrator/gravity_proto/src/prost/gravity.v1.rs b/orchestrator/gravity_proto/src/prost/gravity.v1.rs
index 24db1804..f0e1396b 100644
--- a/orchestrator/gravity_proto/src/prost/gravity.v1.rs
+++ b/orchestrator/gravity_proto/src/prost/gravity.v1.rs
@@ -3,29 +3,29 @@
 /// once the required threshold is met.
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct EthereumEventVoteRecord {
-    #[prost(message, optional, tag = "1")]
+    #[prost(message, optional, tag="1")]
     pub event: ::core::option::Option<::prost_types::Any>,
-    #[prost(string, repeated, tag = "2")]
+    #[prost(string, repeated, tag="2")]
     pub votes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
-    #[prost(bool, tag = "3")]
+    #[prost(bool, tag="3")]
     pub accepted: bool,

I can't tell if the code generator is or isn't formatting things. I suspect it isn't but people's editors are? Not sure.

I think there are unexpected issues with this update.

Unexpected modifications to generated files
Unexpected untracked file

The modifications to gravity_proto/src/prost/gravity.v1.rs appear to be rustfmt related. Guessing we need to either:

teach proto_tool to rustfmt or
teach editors not to rustfmt the generated code

I'm not sure if the new untracked file is good & useful, or noise we shouldn't commit: gravity_proto/src/prost/cosmos_proto.rs
$ cd  orchestrator/proto_build && cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.10s
     Running `/Users/levi/somm/gravity-bridge-1/orchestrator/target/debug/proto_build`
[info] Compiling .proto files to Rust into '../gravity_proto/src/prost/'...
[info ] Compiling proto clients for GRPC services!
Copying generated files into '../gravity_proto/src/prost/'...
[info ] => Done!

$ git status
On branch levi/improve-rust-proto-gen
Your branch is up to date with 'origin/levi/improve-rust-proto-gen'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   gravity_proto/src/prost/gravity.v1.rs

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        gravity_proto/src/prost/cosmos_proto.rs

no changes added to commit (use "git add" and/or "git commit -a")

Looking into how easy or hard running rustfmt over the generated code is. If it's easy (and it probably is) I'll integrate that because it's a) easier to control than editors and b) a better code reading / code navigation experience too.

Note to self --edition=2018 matters.
rustfmt --emit=files --edition=2018  gravity.v1.rs
oogi:prost levi$ git status .
On branch levi/improve-rust-proto-gen
Your branch is up to date with 'origin/levi/improve-rust-proto-gen'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        cosmos_proto.rs

Rust still isn't building (says CI) anything left here @levicook ?

Looking at the Rust build question now. Will fix and merge

Hmm. I'm not sure why, but the generated code contains new annotations that affect that use statement.
Here's what it's adding
 #[cfg(feature = "grpc")]
 #[cfg_attr(docsrs, doc(cfg(feature = "grpc")))]

And here's what it breaks
use gravity_proto::gravity::query_client::QueryClient as GravityQueryClient;

Manually commenting out those lines makes it work like it used to. Going to investigate why they're inserted now, but weren't before. Doesn't seem related to anything I did, but 🤷


KeyVaultAppGatewayTemplate fails to deploy if the resource group name is very long.

{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.","details":[{"code":"InvalidDomainNameLabel","message":"The domain name label wlsgw7e4f67-guru-cluster-ssl-keyvault-aad-coh-1411jdk11ol76-wlsd is invalid. It must conform to the following regular expression: ^[a-z][a-z0-9-]{1,61}[a-z0-9]$."}]}
The resource group name used was guru-cluster-ssl-keyvault-aad-coh-1411jdk11ol76. The resource group name is used for setting the domain name label for the Application gateway which has a constraint of max length of 61 characters. Since, the resource group name is very large, the domain label setting fails and therefore the keyvaultAppGateway deployment also fails.
We may have to restrict the number of characters in the resource group name.

The domain name is invalid. It can contain only lowercase letters, numbers and hyphens. The first character must be a letter. The last character must be a letter or number. The value must be between 3 and 63 characters long.
The domain name label must conform to the following regular expression: ^[a-z][a-z0-9-]{1,61}[a-z0-9]$.


Codeunit 99000845 "Reservation Management": SetExternalDocumentResEntry with SourceRecRef

As was mentioned in #8370 it is currently not possible to fully use reservation management with extension tables.

Subscribing to OnSetReservSource() does not allow calling local UpdateReservation()
Calling SetExternalDocumentResEntry() instead looks fine at first sight, but processing then fails later on because the global variable SourceRecRef is not set.

One way to solve this could be an overload of SetExternalDocumentResEntry() that accepts a record reference as additional parameter:
procedure SetExternalDocumentResEntry(ReservEntry: Record "Reservation Entry"; NewSourceRecRef: RecordRef; EntryIsPositive: Boolean)
begin
    ClearAll;
    TempTrackingSpecification.DeleteAll();
    SourceRecRef := NewSourceRecRef;
    CalcReservEntry := ReservEntry;
    UpdateReservation(EntryIsPositive);
end;

Note: Unfortunately, with the current design of that function (i.e. ClearAll), the code in the function body must be repeated, otherwise the SourceRecRef is not available when doing UpdateReservation().
Additionally: Would it be possible to rename the UpdReservation parameter to EntryIsPositive? The current naming seems wrong/misleading.

Sorry, as it turns out, this is not the correct approach as it does not solve all cases.
I've opened a new issue #15801 with a better approach and therefore am closing this one.


Backport "Improve recursive decompose prefix fix" to LTS

Backports #19375 to the LTS branch.
PR submitted by the release tooling.
[skip ci]

No regressions detected in the community build up to lts-19520.
Reference


Weird behaviour when creating a mono project.

Describe the bug
When creating a project with a mono version of Godot (tested with Godot v4.2.2-mono), when launching it, we are in front of the basic godot "manager". And our created project is counted as missing, thus cannot be opened.
To Reproduce
Steps to reproduce the behavior:

Open Godot Manager
Click on
Setup your project folder and name
Use a mono Godot version
Click on "Create & Edit"

Expected behavior
Opening the created project.
Screenshots

Complete the Following

OS: Windows 10
Version 0.2.4

Quick and Dirty fix

Find the Godot version executable
Create your project with it
Open Godot Manager
Import created project
Profit

duplicate of #95


Cb 9 help and support page due commit

due commit 15/6/2023, 2 weeks after project start.
Page/Help-Support page
finished

help-support page 2nd commit one due date


add lua scripts for istio

Ⅰ. Describe what this PR does
Add lua scripts for istio.
Ⅱ. Does this pull request fix one issue?

Ⅲ. Special notes for reviews

Codecov Report

Merging #178 (1df3226) into master (57f9853) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@           Coverage Diff           @@
##           master     #178   +/-   ##
=======================================
  Coverage   44.44%   44.44%
=======================================
  Files          51       51
  Lines        5560     5560
=======================================
  Hits         2471     2471
  Misses       2666     2666
  Partials      423      423

Flag
Coverage Δ

unittests
44.44% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

/lgtm

/approve


Nonce must be 64-bit

Description
The nonce in the Ethereum yellow paper is defined as a 64 bit value (see page 5 bottom). In the current implementation we use long for the nonce. The maximum positive value of long is 2^63 − 1 which means it is less than the specified 2^64. We need to use BigInteger instead of long to fix this.
This issue was discovered by the latest version of the reference tests. The valid nonce in this test causes an overflow in our current implementation: https://github.com/ethereum/tests/blob/develop/src/TransactionTestsFiller/ttNonce/TransactionWithHighNonce64Minus2Filler.json

BigInteger will slow work down.  I propose instead we use unsigned math for the nonce field, several JVM methods exist for these operations.


UDM built in AP Stats are missing/wrong

If you look at my grafana dashboard, it is completely missing data from my UDM (labeled as Eve in the image), when I have multiple clients connected to it.

What data does the UniFi API return for this device? Poller just writes to the database what the controller gives it.
unifi-poller -j devices will print out the raw device json.

I can't seem to run that command as I am running this inside a docker container on my synology nas.  It won't let me access the terminal

You're right, it isn't missing data, it is just saying my client connection quality is 0 on my UDM AP, but that is not right... I have multiple clients connected to it that are performing just fine

You can download unifi-poller binaries are run them locally. You can also use docker run -ti golift/unifi-poller -j devices. As for your controller reporting a CCQ of 0 - you may want to ask UniFi support why that's the case.

ok.  Makes sense that this is more of a unifi issue than your poller, since it is getting data, and the other graphs are also getting data other than 0.  Thank you


Header implementation

added logo for the website
added links for the pages

Hi @redmarverick
Congratulations! 🎉 Your project is complete and ready to be merged! 🚀

Highlights

Good use of webpack✔
Proper use of header features ✔

Confirmed header implementation
Optional Suggestions 💡
While these comments are [OPTIONAL], I strongly recommend taking them into account as they can improve your code and really enhance your application.
Cheers, and Happy coding!👏👏👏
If you have any questions or need clarification on anything, feel free to leave a comment in the pull request thread, and don't forget to tag me so I'll receive the notification.


TC006 is unusable

Hi guys,
So I updated my pre commit setup and got a shitload of TC006 errors. These appear to include places where there are TypeVars involved, as well as places where the type is actually used in the code as well.
For example, this file from starlite:
# starlite/connection.py
from typing import TYPE_CHECKING, Any, Dict, Generic, TypeVar, cast

from orjson import OPT_OMIT_MICROSECONDS, OPT_SERIALIZE_NUMPY, dumps, loads
from starlette.requests import Request as StarletteRequest
from starlette.websockets import WebSocket as StarletteWebSocket
from starlette.websockets import WebSocketState

from starlite.exceptions import ImproperlyConfiguredException, InternalServerException
from starlite.parsers import parse_query_params
from starlite.types import Method

if TYPE_CHECKING:
    from starlite.app import Starlite

User = TypeVar("User")
Auth = TypeVar("Auth")

class Request(StarletteRequest, Generic[User, Auth]):
    @property
    def app(self) -> "Starlite":
        return cast("Starlite", self.scope["app"])

    @property
    def user(self) -> User:
        if "user" not in self.scope:
            raise ImproperlyConfiguredException("'user' is not defined in scope, install an AuthMiddleware to set it")
        return cast(User, self.scope["user"])

    @property
    def auth(self) -> Auth:
        if "auth" not in self.scope:
            raise ImproperlyConfiguredException("'auth' is not defined in scope, install an AuthMiddleware to set it")
        return cast(Auth, self.scope["auth"])

    @property
    def query_params(self) -> Dict[str, Any]:  # type: ignore[override]
        return parse_query_params(self)

    @property
    def method(self) -> Method:
        return cast(Method, self.scope["method"])

    async def json(self) -> Any:
        """
        Method to retrieve the json request body from the request.

        This method overrides the Starlette method using the much faster orjson.loads() function
        """
        if not hasattr(self, "_json"):
            body = self.scope.get("_body")
            if not body:
                body = self.scope["_body"] = await self.body()
            self._json = loads(body or "null")  # pylint: disable=attribute-defined-outside-init
        return self._json

class WebSocket(StarletteWebSocket, Generic[User, Auth]):
    @property
    def app(self) -> "Starlite":
        return cast("Starlite", self.scope["app"])

    @property
    def user(self) -> User:
        if "user" not in self.scope:
            raise ImproperlyConfiguredException("'user' is not defined in scope, install an AuthMiddleware to set it")
        return cast(User, self.scope["user"])

    @property
    def auth(self) -> Auth:
        if "auth" not in self.scope:
            raise ImproperlyConfiguredException("'auth' is not defined in scope, install an AuthMiddleware to set it")
        return cast(Auth, self.scope["auth"])

    @property
    def query_params(self) -> Dict[str, Any]:  # type: ignore[override]
        return parse_query_params(self)

    async def receive_json(self, mode: str = "text") -> Any:
        """
        Exact copy of the `starlette` method, but using `orjson.loads()`.
        """
        if mode not in {"text", "binary"}:
            raise InternalServerException('The "mode" argument should be "text" or "binary".')
        if self.application_state != WebSocketState.CONNECTED:
            raise InternalServerException('WebSocket is not connected. Need to call "accept" first.')
        message = await self.receive()
        self._raise_on_disconnect(message)

        if mode == "text":
            text = message["text"]
        else:
            text = message["bytes"].decode("utf-8")
        return loads(text)

    async def send_json(self, data: Any, mode: str = "text") -> None:
        """
        Exact copy of the `starlette` method, but using `orjson.dumps()`.
        """
        if mode not in {"text", "binary"}:
            raise InternalServerException('The "mode" argument should be "text" or "binary".')
        binary = dumps(data, option=OPT_SERIALIZE_NUMPY | OPT_OMIT_MICROSECONDS)
        if mode == "text":
            await self.send({"type": "websocket.send", "text": binary.decode("utf-8")})
        else:
            await self.send({"type": "websocket.send", "bytes": binary})

And then this plugin identifies thefollowing issues:
starlite/connection.py:28:21: TC006 Annotation 'User' in typing.cast() should be a string literal
starlite/connection.py:34:21: TC006 Annotation 'Auth' in typing.cast() should be a string literal
starlite/connection.py:42:21: TC006 Annotation 'Method' in typing.cast() should be a string literal
starlite/connection.py:67:21: TC006 Annotation 'User' in typing.cast() should be a string literal
starlite/connection.py:73:21: TC006 Annotation 'Auth' in typing.cast() should be a string literal

Both User and Auth are generic TypeVars declared in the same file and are not restricted to type checking only in this regard.

The general idea behind TC006 is that the cast calls will be ~6x faster if you quote the annotations used, and it has the added potential benefit of letting you (sometimes) guard an entire import.
Unless I'm misunderstanding, this seems like the intended behaviour for this error code. If you want to opt out of individual error codes, just use ignore = TC006 in your flake8 config.
@ngnpope anything to add to this? 🙂

The general idea behind TC006 is that the cast calls will be ~6x faster if you quote the annotations used, and it has the added potential benefit of letting you (sometimes) guard an entire import.
Unless I'm misunderstanding, this seems like the intended behaviour for this error code. If you want to opt out of individual error codes, just use ignore = TC006 in your flake8 config.
@ngnpope anything to add to this? 🙂

Then this should be documented and perhaps configurable, no? My pipeline broke out of the blue and it doesn't make sense without being more informative.

It works fine as intended. There's not much point adding new checks in if they're disabled by default. You should pin your dependencies. Otherwise, there is already an option to ignore the check as @sondrelg mentioned.

Agree, either dependencies should be pinned or projects should manually --select the specific checks they want to have. This way you can auto-update without worrying about new features.

What about this?
cast(str, scope["path"])

Should this also be stringified?

In [2]: from typing import cast

In [3]: scope = {'path': 'test'}

In [4]: %timeit cast(str, scope["path"])
127 ns ± 0.592 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

In [5]: %timeit cast("str", scope["path"])
108 ns ± 1.21 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

Looks like adding the quotes makes the cast ~20% faster, so I think it might make sense even for this

In [2]: from typing import cast

In [3]: scope = {'path': 'test'}

In [4]: %timeit cast(str, scope["path"])
127 ns ± 0.592 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

In [5]: %timeit cast("str", scope["path"])
108 ns ± 1.21 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

Looks like adding the quotes makes the cast ~20% faster, so I think it might make sense even for this

This is really silly from python's side.
Thanks

(This rule has been adopted (in preview mode) by ruff==0.8.1, so expect renewed interest and feedback.)
I understand the rule's intent, yet

I find it's the opposite of what I want to achieve using from __future__ import annotations.
in my code base, it does not save any imports
I repeated the performance test above using Python 3.13, and I find the performance difference between quoted and unquoted versions of the code is an order of magnitude less than reported 2 years ago (more like 1.5%):>>> timeit(lambda: cast("str", scope["path"]), number=1200000000)
60.0294487000001
>>> timeit(lambda: cast(str, scope["path"]), number=1200000000)
60.94250550000015

I will disable the rule in my (Python-3.13-only) code base.

@bersbersbers Sure, it seems to be pretty close for str now - even on 3.12, but, for more complex examples as per the original issue, unquoted types can be significantly slower.

@bersbersbers Just to give you a concrete example on 3.13:
>>> timeit(lambda: cast("list[str]", "a"), number=100000000)
6.60147030600092
>>> timeit(lambda: cast(list[str], "a"), number=100000000)
25.38537894000001

Here you see an almost a 5x slow down compared to the quoted type expression. You can definitely devise of some specific cases where the win is so small, that it doesn't matter, but it's not really worth to make the rule more complex, because even if the win is small, it's still a win, always, without exception.

@Daverball thanks for the answer - I'm convinced :)


Segmentation Fault in train_image_phase2.py

Hi,
while I was running the code "train_image_phase2.py", I got to this error:

Fatal Python error: (pygame parachute) Segmentation Fault

I have no idea how to fix it. I would be very grateful if anyone would help me with this problem.

i meet the same question, do you solve it?

I've encountered the same problem. Any suggestions would be much appreciated!

I have solved the issue by resolving the python importing conflicts.


Implement a version of SwiftSyntaxMacrosTestsSupport that is framework agnostic

SwiftSyntaxMacrosTestsSupport does not depend on XCTest or Foundation can be used to write macro tests using swift-testing.
I am not quite happy with the name SwiftSyntaxMacrosTestsSupportFrameworkAgnostic yet but haven’t come up with one that’s significantly better. I’m open to suggestions.
rdar://119519713
@grynspan Could you check if SwiftSyntaxMacrosTestsSupportFrameworkAgnostic works to write macro tests using swift-testing?

@swift-ci Please test

Happy to help—can you clarify what you need from me?

I think it would be good to get some confirmation that this change actually allows writing tests for macros using swift-testing.

@swift-ci Please test

It would be good to get some confirmation that this change actually allows writing tests for macros using swift-testing.

Looks like it ought to work, although I noticed it seems a bit picky about whitespace not matching.
I'm getting this warning:

/Volumes/Dev/Source/swift-testing/.build/checkouts/swift-syntax/Sources/SwiftSyntaxMacrosTestSupportFrameworkAgnostic/Assertions.swift:21:8: warning: public import of 'SwiftSyntaxMacros' was not used in public declarations or inlinable code
19 | public import SwiftSyntax
20 | public import SwiftSyntaxMacroExpansion
21 | public import SwiftSyntaxMacros
|        `- warning: public import of 'SwiftSyntaxMacros' was not used in public declarations or inlinable code
22 | private import _SwiftSyntaxTestSupportFrameworkAgnostic
23 | #else

I don't think this is a great interface (this is partially copied from my previous PR, I assume?) but short of adding macro-aware overloads of #expect() to swift-testing, I guess it's the best we can do.

@swift-ci Please test

@swift-ci Please test

If we eventually wanted to make it a cross-module overlay, I think the idiomatic name would be _Testing_SwiftSyntaxMacros, I think. (That's not a good name, just a thought.)

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test Windows


How can I make the drawer overlap the title bar ?

Hi,
I wonder how can I make the drawer to fit all the screen height so it overlaps the title bar and also the status bar.
This is how it looks now:
I want the drawer to be all the way up overlapping the title bar.
Thanks.

FlowingDrawer will always fit all the screen height and  overlaps the title bar(toolbar) ,but not the status bar.

But in my case (as you can see in the picture) the FlowingDrawer does not overlay the title bar(toolbar). Is this a default behavior ? Because it does not work by default for me.

I guess your xml file is not correct. please read README or refer to demo

Thanks for your fast response.
This is my activity_main.xml:
`<com.mxn.soul.flowingdrawer_core.FlowingDrawer
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawerlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
app:edPosition="1"
app:edMenuSize="260dp"
app:edMenuBackground="#dddddd">
<!--content-->
<RelativeLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:id="@+id/pair_try_again"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/try_again"
        android:layout_centerHorizontal="true"
        android:visibility="gone"/>

</RelativeLayout>

<!--menu-->
<com.mxn.soul.flowingdrawer_core.FlowingMenuLayout
    android:id="@+id/menulayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/id_container_menu"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/home"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="HOME"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="SETTINGS"
            android:layout_below="@id/home"/>
    </RelativeLayout>

</com.mxn.soul.flowingdrawer_core.FlowingMenuLayout>

</com.mxn.soul.flowingdrawer_core.FlowingDrawer>`
I don't really see anything wrong with it.

well, check out your mainActivity's style , in my demo I use Theme.AppCompat.Light.NoActionBar

Ohh I understand. I use Theme.AppCompat.Light.DarkActionBar.
So I should make a custom ActionBar and make it stay below the FlowingDrawer as there is no customization option for the FlowingDrawer itself ?

yes ,you are right . @tudor07

Ok I understand.
Thank you very much for your time and fast responses.
This issue can be closed then. :)

Hi,
Is it actually a "mistake" to display below the toolbar? In my case that's a requirement.
regards,


[BUG] Support for images loading from allowed domains not working

What version of Node.js are you using?
does not matter
What version of npm are you using?
does not matter
What operating system are you using?
does not matter
What version of SnailyCAD are you currently using?
v1.24.0 4529dd7
Describe the Bug
Support for images loading from allowed domains not working
Expected Behavior
--
To Reproduce
No response

what exactly is the issue? Since the PR won't fix the problem where images fail to load

With current REGEX (imgur) images from Discord CDN won`t loaded.

With this regex, it will allow any URL that is possibly malicious. Will take a look later today with a fix to support Discord's CDN.


fix(oc): write resolver handle readonly flag

Temporary workaround for resetting the readonly state of nodes in the write-resolver

Reference: https://github.com/omry/omegaconf/issues/1123#issue-1904663549


is it possible to apply blur effect on loaded image for Compose Desktop?

I don't see why not. Do it the same was as you would for a normal image in compose.
For example: https://devjorgecastro.medium.com/add-blur-effect-to-image-in-compose-b6c5b03864d

KamelImage(resource = asyncPainterResource(data = text), contentDescription = "",
                onLoading = { CircularProgressIndicator(it) }, animationSpec = tween(), contentScale = ContentScale.Crop,
                modifier = Modifier.size(250.dp).clip(RoundedCornerShape(16.dp).blur(16.dp))
            )

above code is not working error says blur Modifier defined in androidx.compose.ui.draw

I don't see why not. Do it the same was as you would for a normal image in compose.
For example: https://devjorgecastro.medium.com/add-blur-effect-to-image-in-compose-b6c5b03864d

thank you


Design: Think about how to "lock in" external artifacts at build time

👵 Picture it! Colorado, 2019. A bundle author wants to use the Helm mixin with a stable chart or the Kubernetes mixin with some manifests on the internet. As a user of Porter, they'd like to have those files sucked into the invocation image so all the goodness of signed bundle and digested invocation images apply to the manifests as well.
Currently, at build time we don't pass the YAML of the step down to the mixin. We should think about how we can pass all the relevant step YAML down so that the mixins could be smart enough to go and fetch the external resources. There are other related topics..should the mixin re-write the porter.yaml to reflect those inside the bundle? Should fetching the stuff be the default behavior?

The action commands pass in the yaml step data. So one idea would be to do something similar for build. When a mixin build is called, porter looks for all the steps for that mixin and passes them in on stdin.
For example, for this manifest:
mixins:
- helm

install:
- helm:
  ...
- exec:
  ...

upgrade:
- helm:
  ...

The mixin would get the following on stdin for helm build:
install:
- helm:
  ...

upgrade:
- helm:
  ...

For the "lock in" part, I can see a dev wanting to not lock in by default when they are iterating on the bundle (because who gets it right the first time?). Then when they are ready to publish, that's when locking it in would be helpful.
So maybe a workflow like this would be nice:
$ porter build
<do what we do today, for example if a helm command needs a chart, it won't be built into the bundle>

$ porter build --embed
<pass this flag onto the mixin during the build stage, so that the mixin can look for resources that should be embedded into the bundle at build time>

Alternatively, once we get to the point that build doesn't push to a registry anymore because we are using buildkit, that can open up a new workflow for us. Use the act of pushing as intent to share a final "good" bundle. Then at that point, porter does a final build that does extra best practices (at some point we do have opinions right?).
$ porter build
<same as today, but without pushing because buildkit or other reasons>

$ porter publish deislabs/offical-bundle-name
<rebuild package following best practices for distributing a bundle, then  publish it to an official location>

We spoke about this offline and want to make --embed a flag to the mixins, but not exposed in porter itself right now. Maybe we will expose it later, but we don't want to do that immediately.


fix: ensure proper order of signal emmision

I have noticed that If some callback triggers emission of an event during an existing loop, the events may come in incorrect order, leading to a corrupted state.
I think that it is a bug, but I'm not sure if my approach to solve is correct.

minor modification suggested in https://github.com/Czaki/psygnal/pull/1
it's not perfect (see note about recursion error), but curious if you have any thoughts on that approach vs this current one

please merge main here and make sure all the tests we've discussed are added, then ping for review

@tlambert03 compiled test are ending with Segfault. Did you meet something like this before:
  File "/Users/runner/work/psygnal/psygnal/tests/test_psygnal.py", line 990 in test_recursion_error

no, I haven't seen that before.  I can reproduce locally as well though (was just trying as you wrote), but not on main.  (btw, to test locally, you can run make build, and make clean to undo ...)

Ok. The problem is that hatch/mypyc performs compilation in tmp directory (unlike cython that places c/cpp files in the structure of packages. So the debugger cannot find the source files.
I will try to dig, but maybe you know how to change this behavior or disable cleaning tmp
#7  0x00007ffff508f242 in CPyDef__signal___SignalInstance____run_emit_loop ()
    at /tmp/tmpcocqfl4i/build/__native_ac51d50a4f4b6d748b8c.c:37311
37311   /tmp/tmpcocqfl4i/build/__native_ac51d50a4f4b6d748b8c.c: No such file or directory

good sleuthing.  i also don't know, but happy to look into it if you can't find it easily

Im going to Warsaw Python meeting so will not be active today. Will sit to this at evening or toomorow


Show pyspark dataframe support

 Issue by skrawcz
Thursday Mar 10, 2022 at 07:53 GMT
Originally opened as https://github.com/stitchfix/hamilton/issues/84

Is your feature request related to a problem? Please describe.
A common question we get, is does Hamilton support spark dataframes? The answer is yes, but it's not ideal at the moment, and we don't have a vanilla example to point to.
It's not ideal because joins are a bit of a pain -- you need to know the index to join on. In the pandas world, we got away with
this because everything had an index associated with it. In spark, you need to provide it, and know when to provide it.
Describe the solution you'd like
(1) Provide a vanilla pyspark example.
(2) Provide a pattern to show how to handle multiple spark data sources. Perhaps implement a graph adapter to do so.
Describe alternatives you've considered
N/A

This has been completed a while ago.


Account authorization - Google ID token Payload Decryption

After the user authorizes action to access their Google profile, will receive a Google ID token that contains the user's Google profile information in every subsequent request to the SIGN_IN action.
To access the user's profile information, we need to first validate and decode the Google ID token by using "JWT token decoding library". But Actions-On-Google sdk automatically takes care decoding. How to receive the decoded pay load from Google ID token using Fulfillment SDK ?

After the user authorizes action to access their Google profile, will receive a Google ID token that contains the user's Google profile information in every subsequent request to the SIGN_IN action.
To access the user's profile information, we need to first validate and decode the Google ID token by using "JWT token decoding library". But Actions-On-Google sdk automatically takes care decoding. How to receive the decoded pay load from Google ID token using Fulfillment SDK ?


[Bug] Unit test hangs with unit under test has runtime or compile time exception

What are you really trying to do?
Unit test a workflow
Describe the bug
When unit testing a workflow, if the workflow under test encounters a runtime exception the unit test hangs.
Minimal Reproduction
See pull request here https://github.com/wolfy-j/temporal-simple-test-example/pull/1
Environment/Versions

OS and processor: [e.g. M1 Mac, x86 Windows, Linux] - Ubuntu Linux 22.04
Temporal Version: [e.g. 1.14.0?] and/or SDK version - 1.23.1
Are you using Docker or Kubernetes or building Temporal from source? - On the metal using Temporal\Testing\Environment

Additional context
Discussed on slack last Friday with wolfy-j

Try to limit Client requests by timeouts.


Add Tensorboard Logger

CO-158

[x] Add TensorboardLogger class
[x] Local E2E test
[x] Add docstrings
[x] Add tests
[x] Add run name compatibilty
[x] Add artifact logging
[x] Add flushing
Add hparams/config logging (deferred to V2 of the logger)
[x] Ravi and Hanlin's Comments
[x] E2E Test with ResNet50:
Results: tensorboard and wandb
[x] E2E Test with Moin's BERT setup and compare wandb with tensorboard
Results: tensorboard and wandb
[x] Run full E2E bert production run as a test
Results: tensorboard and wandb
[x] E2E test with speed_monitor turned on
Results: tensorboard and wandb
[x] Test logging Tensorboard logs to S3 through ObjectStoreLogger works

@ravi-mosaicml, I am seeing some weird flushing/rank_zero_only behavior as of
d786089
See below for a summary:
num_ranks = 1

Looks good.
num_ranks=2, rank_zero_only=False

Some weird plotting, where we have duplication of the same global step for multiple losses.
num_ranks=2, rank_zero only=True

Only gets a small fraction of the iterations.

Thanks for working through this; see comments! Would also like to see a sample output and compare it against wandb

Here's a sample from resnet50: tensorboard and wandb

Thanks, @moinnadeem!

For our sanity, could we kick off a full pretraining run? I'm curious if any of the UX would change with more samples

Ok I will fire one off. I'll let you know when it's done.

I'm pretty sure this should be fine, but could we do a run with the speed_monitor? I want to see how that looks, but it is not blocking at all.

Here you go: tensorboard and wandb

@ravi-mosaicml, I am sorry I failed to clarify how Tensorboard saves it's logs. I'll try to clarify below to communicate why some of my seemingly strange design decisions are actually very purposeful:
Let's say you specify SummaryWriter(log_dir='foo/bar/baz'):

Then, all log files for the current run will be saved to 'foo/bar/baz'
If you want to view that run's logs, you point the tensorboard viewer at 'foo/bar' (not 'foo/bar/baz'!) like so: tensorboard --logdir='foo/bar'. Yes you must specify something different to logdir as you do for log_dir. It's very confusing, but that is out of our control.
Now, when you open the Tensorboard gui, the name of the run will be 'baz'
If you want to see metrics from the baz run compared to metrics from another run (let's call it 'baz2'), then you must save your log files for the the other run to 'foo/bar/baz2'. That way when you point the tensorboard viewer at 'foo/bar', the logs from baz and baz2 show up in the viewer because both subfolders are saved to 'foo/bar/'.

Okay, I am finished on my side. All the tasks are finished and E2E tests have passed.

I reviewed the Tensorboard links earlier today, and am proud to say that Evan has done a great job!
All of the most important metrics [loss and MaskedAccuracy] are still accessible. Unfortunately, some of our metrics such as wall_clock/train and samples/step don't look great on Tensorboard, but that is because of the fact that we might have slightly overfit to WandB and need to configure tensorboard in greater detail. WandB also just has better defaults than Tensorboard. For an example, look at the Y axis on samples/step.

Overall, this PR conveys all of the right information that I would want from a training run, and I think further improvements would be out of scope. LGTM from me, and let's see if setting axis scales and other items are possible in a future PR?

For the tests, the TensorBoardLogger will also need any entry in here for the skipif if tensorboard is not installed: https://github.com/mosaicml/composer/blob/16622c9457874f4f3811287fe933b0ec58107fc7/tests/callbacks/callback_settings.py#L86

For the tests, the TensorBoardLogger will also need any entry in here for the skipif if tensorboard is not installed:
https://github.com/mosaicml/composer/blob/16622c9457874f4f3811287fe933b0ec58107fc7/tests/callbacks/callback_settings.py#L86

Done. Good call. Didn't know about that


.gitignore can not make files list color reset dark gray.

VSCode Version: v1.48.2
OS Version: WIN10

Steps to Reproduce:
.gitignore can not make files list color which are ignored reset dark gray. but the source control is always useful.
I try to Re install vscode & git  but it is unhelpful.
Is there any editor setting for this?

Does this issue occur when all extensions are disabled?: Yes

Can you show me a screenshot of what you mean?

It will be expected color opacity like this:

but in my computer:

In editor git source control is working.

Can you show me the full output of Git: Show Git Output?
Doe sit repro on every repository on that machine?

Every repository on this machine is bad.
Git of machine is working done.

The editor of this machine was normal before. Once the hard disk was damaged and VSCODE & Git was reinstalled from Disk D:/ to Disk F:/, which meant that it was not uninstalled normally before. Since then this problem has appeared and no solution can be found

Is Git Output this？

Can you update to the latest Git 2.28.0?

It seems that the command line of GIT version has changed, and it has been fixed after upgrading


Bitmap mesh

What steps will reproduce the problem?
1.i want Bitmap mesh(image warping)
2.I want round warping in android.
3.I know fisheye effect.

What is the expected output? What do you see instead?
 i want circle image warping

What version of the product are you using? On what operating system?
android4.0

Please provide any additional information below.

Original issue reported on code.google.com by android.rajus on 12 Mar 2013 at 10:46
Attachments:

[fisheye effect.txt](https://storage.googleapis.com/google-code-attachments/apps-for-android/issue-89/comment-0/fisheye effect.txt)

same requirement occurs and trying from last 1 month but not find any key for it, everywhere i found same code as your attachment.


Create requirements.txt

Added requirements.txt to the repository

Halfway there. The project includes some packages, so we need those included in the requirements.txt file.

@aewens okay, which packages specifically so I can add them in the file?

The package in app.py

Thank you for submitting a pull request, but issue #4 was resolved in PR #9


Document setCountPreRendered

This was added in first versions, but seems never was documented.

Documented. We still will need to remove note about pageView, linkClick and adImpression when https://github.com/snowplow/snowplow-javascript-tracker/issues/589 is implemented.


CFP: Cilium support over multiple interfaces

Cilium Feature Proposal
Cilium Version : 1.12.2
Is your feature request related to a problem?
We have two routers connected with one host on two separate physical interfaces. Between the router & host we are using bgp unnumbered for routing.
On the host we have configured ip address on loopback interface and have not assigned IPs to the two physical interfaces as they use BGP unnumbered for peering.
We observe that Cilium binds to only one physical interface due to which we can't use the other one for failover/load balancing.
Describe the feature you'd like
We observe that Cilium binds to only one physical interface due to which we can't use the other one for failover/load balancing. Do we have any plans to support this setup in the future?
Describe your proposed solution
This is similar to the feature request: https://github.com/cilium/cilium/issues/22132

We observe that Cilium binds to only one physical interface

@VP-Samespace Thanks for the issue. Are you saying that Cilium binds a BPF program to only one physical iface? If yes, have you tried specifying --devices?

@brb I appreciate your suggestion. We have tried configuring multiple devices based on your recommendations, and it was successful.


Update scala-java8-compat to 1.0.0

Updates org.scala-lang.modules:scala-java8-compat from 0.9.1 to 1.0.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang.modules", artifactId = "scala-java8-compat" } ]

labels: library-update, semver-major

Superseded by #258.


KeyError:   "url" ? Cannot import my csv file to Firefox

Hey,
I've been trying for so long migrating from Safari to Firefox, that's how I found you, and this is amazing.
I've a CSV file which I successfully got from the  mrc converter suite (script that opened and copied all my logins/passwords blablablabla)
Now that I've installed Python and ffpass, I'm getting this error when I try to import the file to Firefox
mbp-de-tom:~ autodrive$ ffpass import -f /Users/autodrive/Documents/pw/passwords\ copie\ 2.csv
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/bin/ffpass", line 10, in <module>
    sys.exit(main())
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ffpass/__init__.py", line 346, in main
    args.func(args)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ffpass/__init__.py", line 289, in main_import
    logins = readCSV(args.from_file)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ffpass/__init__.py", line 188, in readCSV
    logins.append((rawURL(row["url"]), row["username"], row["password"]))
KeyError: 'url'
mbp-de-tom:~ autodrive$

I actually don't know what it means and how I could resolve this, so you can you help ? Thank you so much in advance! :)
here how my file looks in textedit

and in preview

after watching all the threads and trying to avoid every error I could get, I now get this simpler one but I still can't resolve it...

mbp-de-tom:~ autodrive$ ffpass import f- /Users/autodrive/Downloads/passwords.csv
usage: ffpass [-h] {export,import} ...
ffpass: error: unrecognized arguments: f- /Users/autodrive/Downloads/passwords.csv
mbp-de-tom:~ autodrive$

Import does not raise this error for me as long as there is a column header named "url" in the csv, however when imported the "website" field in firefox's password manager is empty for all passwords.

@autoauto54 looks to me like you need to fix your f- to -for --from
@jpaav I had a similar issue but around 20% of my passwords were affected, seems like some sort of format issue when it comes to how lockwise is recognising usable URLs

I was able to solve this by omitting the header row from the csv file and changing the readCSV method to:
def readCSV(from_file):
    logins = []
    reader = csv.DictReader(lower_header(from_file), fieldnames=["url", "username", "password"])
    i = 0
    for row in reader:
        print(i)
        i += 1
        logins.append((rawURL(row["url"]), row["username"], row["password"]))
    return logins

Hi everyone,
As said in the documentation,
usage: ffpass import [-h] [-f FROM_FILE] [-d DIRECTORY] [-v]

imports a CSV with columns `url,username,password` (order insensitive)

If your headers are different, there is going to be an error. The error message should be more explicit though, it will be corrected in the next version.


Bug: uniclip does not gracefully handle alternative forms (eg. an image) of clipboard content

Description of the bug
When a picture (and probably other forms of non-text data) gets added to the clipboard, uniclip hangs with the following output:
verbose: [sent: An error occurred wile getting the local clipboard]
error: [exit status 1]
error: [exit status 1]
error: [exit status 1]
...
error: [exit status 1]
^C

Verbose output (Use the --debug option)
See above.
Steps to Reproduce
For example, you might send a screenshot to the clipboard.
Expected behavior
Either print an error message and resume normal operations, or send the non-text data to the clients.  Perhaps this should be configurable.
Cheers,
Albert.

What OS is this on? If linux, what clipboard utility are you using?

Yes, the server is Linux (Mint 21.2).  If I recall correctly, the clipboard utility is "xclip".

I too am having trouble with images.  I tried flameshot and the gnome screenshot tool using xsel.  I get text instead of the images.  Is there a way around this?  I have been using X11 and haven't tried wayland yet.  This is on Ubuntu 24.04 (both computers).  Text works fine.


Added Franck Pachot links

Thanks for the idea 🙏🏻

@FranckPachot Your PR has a conflict, you may need to rebase it.


Session::open_url does not remove the leading '/' in the vhost

See #4

From https://www.rabbitmq.com/uri-spec.html
The vhost component is used as the basis for the virtual-host field of the connection.open AMQP method. Any percent-encoded octets in the vhost should be decoded before the it is passed to the server.
Note that:

The vhost component of the URI does not include the leading "/" character from the path. This makes it possible to refer to any vhost, not only those that begin with a "/" character.
The vhost is a single segment. Therefore, any "/" characters that appear in the vhost name must be percent-encoded. URIs with multi-segment paths do not obey this specification. (They are reserved to allow future revisions of this URI scheme to refer to AMQP entities other than vhosts.)
The vhost component may be absent; this is indicated by the lack of a "/" character following the amqp_authority. An absent vhost component is not equivalent to an empty (i.e. zero-length) vhost name.

I'll add percent-decoding to the mix, then.

The PR fixes this issue (I've tested it on a local cluster), but it still doesn't work on on Cloud AMQP (it must be for a different reason)

@divarvel Found it! It was channel_max_limit. Will push change now.


LDAPS and custom certificate

Hello,
Does anyone know how to get LDAPS running with a custom certificate?
Currently, my instance is complaining about not recognizing the certificate chain, and I don't want to enable "allowSelfSignedTLS".
Usually, with OpenLDAP, placing the CA file in /etc/openldap/certs/ is enough. But here with Meteor I couldn't find how to get it working.
I also tried /etc/ssl/certs/, same result.

Hi,
Thanks for trying 4Minitz.
4Minitz uses the LDAP client by ldapjs.org. If you have a valid certificate, you normally dont have to do anything on client side - only specify ldaps:// as URL. ldapjs does secure connection via node.js SSL architecture. In the node js doc we find this quote:

Default is to trust the well-known CAs curated by Mozilla.

So if you tried ldaps:// and got this error, then you probly don't have it signed by a "well known CA". First suggestion would be to get a Let's Encrypt certificate then?
If this is not possible, then unfortunately, I don't think 4Minitz is able to connect via ldaps:// currently - sorry for that.
Possible Future Solution on our side
See:

http://ldapjs.org/client.html tells us that we have to pass tlsOptions as node.js wants them
https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options tells us that we can pass filenames to the CA cert chanin here in an options object as keys

So, maybe a future solution could just hand-over these tlsOptions from 4Minitz settings.jsonto when we call the ldap module's ldap.createClient
@migerh maybe you comment on this?

Thank you for your answer.
Here this is for a large company which uses it own, internal, root certificate authority.
Indeed it would be nice to be able to pass to ldapjs the root certificate path.

Hi @Wohlraj
You may want to give NODE_EXTRA_CA_CERTS a shot. If you do, please tell us if it worked or not so we can add this to our docs.

Hi,
Added an environment variable to my docker-compose.yml.
NODE_EXTRA_CA_CERTS=/etc/openldap/certs/REDACTED.cer
Set allowSelfSignedTLS back to false, and everything works fine :)
I doubled checked by removing this variable and checking that it fails.
Thank you!

Thanks for checking it out! I extended our admin guide with this information: #497


Status of the project

I noticed that two years have passed since last commit. Does this mean that the project is dead?

No.
It just means that the code does what it is supposed to do.


syntax error

Parse error: syntax error, unexpected '[', expecting ')' in /home/host/domains/***.com/public_html/escow/example.php on line 5

I fixed main.php and example.php to older version of PHP. Check now. ;)
The problem is version of PHP on your server.

I have 5.1 but still not working :( I hate when it happens to me lol

Corrected, thanks. :)
Yes, but I don't know how send sentryfile, so you will have 7 days trade ban from this cookies.

@SzymonLisowiec you can send full code? i just currecty got out node.js bot because its hard to run node.js console on host

I no longer have this code, but this is fast to write:
<?php
define('php-steamlogin', true);
require('main.php');
$SteamLogin = new SteamLogin(array(
    'username' => '',
    'password' => '',
    'datapath' => dirname(__FILE__) //path to saving cache files
));
if($SteamLogin->success){
    $logindata = $SteamLogin->login();

    require_once 'classes/steam.class.php'; //from: https://github.com/halipso/php-steam-tradeoffers
    $trade = new SteamTrade();
    $trade->setup($logindata->sessionId, $logindata->cookies);

    $options = array(); //https://github.com/halipso/php-steam-tradeoffers#makeofferoptions
    $trade->makeOffer($options);

    if($SteamLogin->error != '') echo $SteamLogin->error;
}else{
    echo $SteamLogin->error;
}
?>

What i need to update on classes/steam.class.php on line 52? syntax again

What returns an error?

You have steam?

Yes, link is in example.php


Question about managed components (arduino as a component)

Apologies for any ignorance on my part. When using arduino as a component of IDF, I noticed that when running full clean and build, the managed_components folder with all of the managed components automatically downloads itself. Is there any way to prevent this or  remove the dependencies of unwanted/unneeded conponents?
The project compiles perfectly fine, this is more a question about housekeeping and trimming unneeded components.

The managed components are forced to install from Arduino from this file https://github.com/espressif/arduino-esp32/blob/master/idf_component.yml without Arduino compile would fail.


Idea for saving a link to a long script

If the code is over 1200 symbols, it's not saving to bitly. I guess due to limitations of bitly. In this case undefined is saved to a clipboard.
What if go without bitly in this case? If the link can't be shortened, let's save it in full length, often it's not a problem.
Or maybe there's a sort of workaroud I'm not aware of?
Just yesterday we had a live coding session in our club and we had to code-golf to have the code saved :-)

Hmmm... ...... I see.
So, if bitly fails to generate a shortened URL, you can just send the unshortened URL to the clipboard.
I'll think about it. 👍

@illus0r
I implemented and deployed it based on your idea.
If the shortening fails, it is copied directly to the clipboard.
thx!

OMG, thank you so much!


Fixes affecting CSS in IE and updating or refreshing package blocks

These fixes address a couple of important issues that affect end users. Details in C5 bug tracker where this pull request is referenced.
-Steve

Sorry if that 3rd item prevented you from merging automatically. I didn't realize GitHub automatically added subsequent commits to the same pull request. That 3rd item resulted from me merging changes from the official C5 repo back to my branch from my local clone.
I don't know if GitHub provides a web UI for it, but you should look into cherry picking commits. It could save you time in the future instead of merging by hand.
-Steve


Support LTC

All endpoint calls, seems to be working for litecoind with the current implementation, with minor config fixes. Not tested yet, but should be a not to large implementation.


Add TSKReportsRateLimiter.m as member of TrustKit_Static target

TSKReportsRateLimiter.m is not a member of the static lib target. I believe this is an oversight. :]

Yes, it is an oversight. Thanks!


Fix OCI errors

Changes
OCI errors were updated to be even with the spec:

TAG_INVALID and MANIFEST_UNVERIFIED were removed from OCI spec: https://github.com/opencontainers/distribution-spec/pull/206
TOOMANYREQUESTS was added

Tested on CentOS 8.2.2004 and KinD with Kubernetes v1.21.1.
Why?
After bootstrapping a krustlet-wasi node I received this error:

Jul 17 18:02:33.250 ERROR kubelet::state::common::image_pull: error=error decoding response body: unknown variant TOOMANYREQUESTS, expected one of BLOB_UNKNOWN, BLOB_UPLOAD_INVALID, BLOB_UPLOAD_UNKNOWN, DIGEST_INVALID, MANIFEST_BLOB_UNKNOWN, MANIFEST_INVALID, MANIFEST_UNKNOWN, MANIFEST_UNVERIFIED, NAME_INVALID, NAME_UNKNOWN, SIZE_INVALID, UNAUTHORIZED, DENIED, UNSUPPORTED, TOO_MANY_REQUESTS at line 4 column 31

and after that more conveniently:

Jul 17 18:05:44.213 ERROR kubelet::state::common::image_pull: error=OCI API error: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit on https://registry-1.docker.io/v2/kindest/kindnetd/manifests/v20210326-1e038dc5

Hi, and thanks for your contribution!
How does this impact clients trying to connect to servers that have not been updated to conform to the latest spec changes, and might return one of the two removed variants?
I definitely agree with adding the new one, not sure about the removals.

Hi @radu-matei,
thanks for your feedback. I reverted the removal of TAG_INVALID and MANIFEST_UNVERIFIED, so this PR only adds support for the TOO_MANY_REQUESTS error.
At this moment I can't judge about the impact of removing the two deprecated error codes.

I agree with @radu-matei's assumption. Let's leave in "deprecated" error operations to retain backwards compatibility. It is quite possible there are several OCI registries still relying and reporting those errors. It doesn't affect any existing behaviour if we keep it in; in fact it will be more assistive to the user if we continue to report these errors until we can be completely sure they've been deprecated.
Feel free to add a comment to those operations to note they've been deprecated with a link to the deprecation notice in the spec's changelog.

TOOMANYREQUESTS

Ahh... Never mind. I see now why the casing is different. Yay for consistency!
LGTM

Could you please also add a deserialization test for the new variant?
There are some examples in the same file that should guide you on adding a new one.
Thank you so much!

Could you please also add a deserialization test for the new variant?
I would, but apparently there is nothing to deserialize. We know the error code TOOMANYREQUESTS from docker.io. This is a curl output I gathered:

$ curl -fsSL -H "Authorization: Bearer $TOKEN" "https://registry-1.docker.io/v2/ansible/ansible/manifests/latest"
curl: (22) The requested URL returned error: 429 Too Many Requests

No body in the response.


[now dev] Installed packages in vendordo not exists

At this moment my project has a .nowignore file to prevent the composer vendor directory from uploading to now.
When I run this same project with now dev I get an error because the vendor directory is not found. This makes sense because it is ignored.
This should however be resolved by either:

Also run composer install in now dev, but this seems to make it really slow.
Also copy the vendor directory during a development run. But how can that be done?

Yep, I've pointed that out also to ZEIT team and we need to colaborate on it.
I picture it like this:

now

composer deps are installed if composer.json is in place

now dev

composer deps are installed if composer.json is in place only once, for the first time
we need to track if composer.json or composer.lock is changed and re-install composer deps

There is way I think, but it takes so much time to do it, because you have to publish pkg on npmjs to use it in now dev, thus we need to cooperate with ZEIT in this thing.


js build pipeline

Javascript from the jsx folder are now concatenated, modularised and minified

please hold merging this will I investigate a regression


Fatal error: Uncaught RuntimeException: Could not determine home directory. Set the PLATFORMSH_CLI_HOME environment variable.

Followed installation steps on Ubuntu 20.04.4 LTS with PHP 8.1.9 and it's giving:
platform
Fatal error: Uncaught RuntimeException: Could not determine home directory. Set the PLATFORMSH_CLI_HOME environment variable. in phar:///usr/local/bin/platform/src/Service/Config.php:147
Stack trace:
#0 phar:///usr/local/bin/platform/src/Service/Config.php(179): Platformsh\Cli\Service\Config->getHomeDirectory()
#1 phar:///usr/local/bin/platform/src/Service/Config.php(261): Platformsh\Cli\Service\Config->getWritableUserDir()
#2 phar:///usr/local/bin/platform/src/Service/Config.php(32): Platformsh\Cli\Service\Config->getSessionIdFile()
#3 phar:///usr/local/bin/platform/src/Application.php(38): Platformsh\Cli\Service\Config->__construct()
#4 phar:///usr/local/bin/platform/bin/platform(33): Platformsh\Cli\Application->__construct()
#5 /usr/local/bin/platform(10): require('...')
#6 {main}
  thrown in phar:///usr/local/bin/platform/src/Service/Config.php on line 147

In the default terminal and default shell? This means the HOME variable is also not set

@alanmels did you manage to resolve this?

@pjcdawkins I never did and migrated a website away using a different method.


TypeError: Cannot set property closed of # which has only a getter

After updating to Node 18.xx with Homebridge v1.5.1 (HAP v0.10.4), I get a crash on receipt of an email:
previously this was all working well:
/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-stream.js:34
this.closed = false;
^
TypeError: Cannot set property closed of # which has only a getter
at new SMTPStream (/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-stream.js:34:21)
at new SMTPConnection (/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-connection.js:55:24)
at SMTPServer.connect (/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-server.js:93:26)
at /usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-server.js:84:26
at Immediate. (/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-server.js:345:39)
at processImmediate (node:internal/timers:471:21)
[31/10/2022, 19:58:35] [SMTP Motion] Child bridge process ended
[31/10/2022, 19:58:35] [SMTP Motion] Process Ended. Code: 1, Signal: null
[31/10/2022, 19:58:42] [SMTP Motion] Restarting Process...
[31/10/2022, 19:58:43] [SMTP Motion] Launched child bridge with PID 1945966
[31/10/2022, 19:58:43] Registering platform 'homebridge-smtp-motion.smtpMotion'
[31/10/2022, 19:58:43] [SMTP Motion] Loaded homebridge-smtp-motion v1.2.1 child bridge successfully
[31/10/2022, 19:58:43] Loaded 0 cached accessories from cachedAccessories.0EDE28255D8B.
[31/10/2022, 19:58:43] Homebridge v1.5.1 (HAP v0.10.4) (SMTP Motion) is running on port 39693.

Further occurrence if the above set is removed (for reference):
/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-connection.js:325
this._parser.closed = true;
^
TypeError: Cannot set property closed of # which has only a getter
at SMTPConnection._onClose (/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-connection.js:325:33)
at SMTPConnection._onCloseEvent (/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-connection.js:316:14)
at Socket. (/usr/lib/node_modules/homebridge-smtp-motion/node_modules/smtp-server/lib/smtp-connection.js:291:51)
at Socket.emit (node:events:513:28)
at TCP. (node:net:313:12)

Updating the package smtp-server to the latest version (3.11.0) seems to fix the problem on my side. 🧐

I’ll try to push a new release with that package updated soon.


Improve website blog layout

Is your feature request related to a problem? Please describe.
Currently our blog layout is basically the default one and not really appealing.
Describe the solution you'd like
After the introduction of  https://github.com/glasskube/glasskube/pull/874 and the image attribute for blog posts, we can also revamp our /blog page. Headlamp (also built with Docusaurus) has a very very nice Design we should get a lot of inspiration from: https://headlamp.dev/blog
Additional context
@jakepage91 might be needed to add the image attribute to all past blog posts.

@pmig Seems like a interesting task. Can I work on this?

Sure @kosmoz , I hadn't started yet. But will do shortly.

Hey @Baalekshan
As discussed via Discord, I've removed your assignment for this issue.

Yes @kosmoz , and I need a some other issues to work on. Could you suggest some, I don't see much unassigned help wanted issues. If you could point out something that needs attention, it would be better for me.

Hi @pmig is this issue up for grabs?

@sratslla this issue is a typescript / docusaurus task. do you have experiences in this field?

Yes I have lots of experience in web development.

Awesome to hear :-) go ahead.

HEy @sratslla, how are you doing? Do you need any help with this issue?

Hi @kosmoz, I've been swamped with work and haven't had a chance to contribute to open-source recently. If someone else wants to take this up, they're welcome to. Otherwise, I'll get back to it in about a week or two. Apologies for holding up the issue.


Pandas entry update on Books - English - Python?

Hello contributors 👋
Is really needed have this entry with "in process" note? It always points to last version 😉.
https://github.com/EbookFoundation/free-programming-books/blob/62da834ed2d7601d50fe6e7f51b5db41568d1e0e/books/free-programming-books.md#L2570-L2581
I can contribute with this minor change. Or updating to add html links:

Online: https://pandas.pydata.org/docs
HTML: https://pandas.pydata.org/docs/pandas.zip
PDF: https://pandas.pydata.org/docs/pandas.pdf (already added) 👆

How to proceed in this case?

I'd change to online and remove the in process note


Can I refer to your library of content?

Hello, I also maintain a similar open source library , but is in Chinese . Can I refer to your library of content?

ok

Sure 😉