Questions about EFL code implementation

Hello, can you answer the mechanism of action of the gradient collection function? Although the gradient gathering function is defined in the forward propagation function, it does not seem to call this function. Even if self.pos_neg.detach() is used, what is the input parameter in the collect_grad() function? Does it really work?

Hi @xc-chengdu , we collect the gradients in a backward-hook way. The code could be found here: code. The pos_neg, pos_grad, and neg_grad are all buffers which are used to save the collected gradients. Please feel free to ask any questions about this, thanks.

@waveboo Thank you very much for your reply. My intention is to use your improved Equalized focal loss, but I find it impossible to determine the input passed by the gradient collection function. For example, which input parameter is represented by grad_out[0]? Is it possible to call the gradient collection function in the forward in the same way as eqlv2 implementation? When I use EFL directly, it improves the accuracy of the tail category a bit, but suppresses too much of the head accuracy, which makes it not as good as focal loss. I found by debugging that the gradient collection function is not working, so how can I solve it? I am looking forward to your reply again!

hi, have you tested the Benchmark Result of YOLOX* Series? #20
I just wanted to apply their improved loss function to my own task, so I did not reproduce their results.

@xc-chengdu ,

About the usage of the gradient collection hook, you could refer to this link. Actually, we register a backward hook on the last layer of the classification subnet (before cls loss_fn). Thus the gradient of the module output(grad_out[0]) is just the gradient from the loss function. It has no difference from the manual calculation of the gradient during the forward stage.
An alternative is to directly register a full backward hook (link)[https://pytorch.org/docs/stable/generated/torch.nn.Module.html#torch.nn.Module.register_full_backward_hook] on the loss module. It is a new feature supported by the nearest version of torch (about 1.8.+)
What's more, you could also calculate the gradient of each category manually like eqlv2. But one thing that needs to be noticed is that the derivative of the focal loss is different with the sigmoid loss. You should not directly use the eqlv2's collect function, but need to implement your own focal loss one.

梯度张量拼接
        grad = torch.cat(self.grad_buffer[::-1], dim=1).reshape(-1, self.num_classes)

每个fpn层输出的维度是不一致的，其shape分别为[32768,37],[8192,37],[2048,37],[512,37],[128,37]；执行上面这句代码会因为维度不一致而无法合并；那么你们的工作是如何保证每一个特征层输出的维度一致呢？以下是我按照eqlv2的方式实现的手动搜集梯度：

@xc-chengdu , We collect the gradients of each subnet with the grad_buffer. And when the buffer get five subnets gradients, we concat them. When we save the gradient into buffer, we reshape the gradient to (batchsize, -1, num_classes). Thus we could concat them in the dim-1. Your tensor shape is 2-dims, which could not concat at the dim-1.
And one thing you should notice is that you should not directly use our collect function, but need to implement your own focal loss one.  Because our gradient collect function is designed for the auto gradient collection hook. If you want to manually collect the gradient, you need to calculate the derivative of the focal loss and implement the collect function by yourself.

@xc-chengdu Meanwhile, we highly recommend you use the gradient collection hook because it is simple and easy, and less error-prone.


Windows: terminal crashes when created with shellPath

Testing https://github.com/Microsoft/vscode/issues/12595
Windows: have an extension that creates a terminal with custom shellPath, I see the following error: The terminal process terminated with exit code: 1

Could not reproduce with the following:
terminalStack.push((<any>vscode.window).createTerminal(`Ext Terminal #${terminalStack.length + 1}`, 'powershell.exe', ['-l']));

I'm assuming you ran the command in the example as it was which is expected to fail since /bin/zsh doesn't exist on Windows.

Yup, works.


x/tools/go/packages: cannot load "cmd" from within a module

$ go version
go version devel +9d23975d89 Wed Jan 23 23:13:03 2019 +0000 linux/amd64
$ git describe --always
6466e726
$ go install ./gopackages
$ gopackages cmd >/dev/null; echo $?
0
$ mkdir /tmp/tempmodule
$ cd /tmp/tempmodule
$ go mod init tempmodule
go: creating new go.mod: module tempmodule
$ gopackages cmd >/dev/null; echo $?
gopackages: go list repeated package github.com/google/pprof/internal/driver with different values
2

This seems pretty serious - I'm having trouble using a linter that I wrote as it's now running into these errors. Perhaps related to #29826, but in this case the packages don't seem to be identical, as DeepEqual returns false.
/cc @matloob @ianthehat

Seems to be fixed at head.
~/src/golang.org/x/tools/go/packages$ go version
go version devel +49e7c7672d Mon Sep 16 11:56:15 2019 +0000 linux/amd64
~/src/golang.org/x/tools/go/packages$ go install ./gopackages
~/src/golang.org/x/tools/go/packages$ gopackages cmd >/dev/null; echo $?
0
~/src/golang.org/x/tools/go/packages$ mkdir /tmp/tempmodule
~/src/golang.org/x/tools/go/packages$ cd /tmp/tempmodule
/tmp/tempmodule$ go mod init tempmodule
go: creating new go.mod: module tempmodule
/tmp/tempmodule$ gopackages cmd >/dev/null; echo $?
0


Google Doc reference needs to be changed too.

Fixed by #37. It is working at https://godoc.org/github.com/SkyAPM/go2sky.


Implement Amt diff lib

Issue summary

An Amt diff lib is used for implementing miner actor v8 -> v9 state migration, we need to

[ ] Find an existing implementation or alternative in rust ecosystem
[ ] Or implement on our own with parity tests

https://github.com/filecoin-project/go-state-types/blob/master/builtin/v9/migration/miner.go#L278
// we have previous work, but the AMT has changed -- diff them
diffs, err := amt.Diff(ctx, store, store, prevInRoot, inRoot, amt.UseTreeBitWidth(miner9.SectorsAmtBitwidth))

https://github.com/filecoin-project/go-amt-ipld/blob/master/diff.go#L42
// Diff returns a set of changes that transform node 'a' into node 'b'. opts are applied to both prev and cur.
func Diff(ctx context.Context, prevBs, curBs cbor.IpldStore, prev, cur cid.Cid, opts ...Option) ([]*Change, error) {
}

Other information and links

As part of https://github.com/ChainSafe/forest/issues/2801

@lemmih @LesnyRumcajs I'm not able to find anything similar in https://docs.rs/fvm_ipld_amt/latest/fvm_ipld_amt/  Let me know if you happen to know an existing implementation or an alternative, otherwise I will implement it in this repo.

Yeah, I doubt a Rust version of this exists. You probably have to port it from scratch.

@lemmih PR created in ref-fvm repo: https://github.com/filecoin-project/ref-fvm/pull/1788  Before it's accepted, should I cargo patch fvm_ipld_amt to unblock my nv17 state migration work or port the fvm_ipld_amt as a module of fil_actors_shared?


Bypass parameter is inverted in LV2 ui

In a LV2 UI, the bypass value received in parameterChanged is the inverse of the DSP value.
DSP sets parameter 0: 0.000000
UI receives parameter 0: 1.000000

But in VST, it's fine.
DSP sets parameter 0: 0.000000
UI receives parameter 0: 0.000000

DistrhoUILV2 should invert a parameter with the bypass designation before sending.
Problem: the parameter metadata is not accessible from a separated UI, so it's unknown which parameter is a bypass.

To this problem, I have in mind some solutions, none of which are particularly ideal.

to also have the UI able to invoke initParameter from a shared code file; then, it's known which one is the bypass, and it can handle accordingly. Since initParameter must move outside of Plugin, the solution doesn't preserve compatibility.

to have the UI build the whole FILES_UI + FILES_DSP. Then, Plugin is instantiable from UI, and initParameter is invocable. It maintains compatiblity.

the DSP communicates to UI, by messaging, the identity of the bypass parameter. this hack increases complication on framework side, but doesn't require change.
It has to consider carefully the lifecycles of these actors.

the UI is asked to implement a method getParameterDesignation, from which bypass can be identified. example:

class MyUI : UI {
    ParameterDesignation getParameterDesignation(uint32_t index) {
        return (index == 0) ? kParameterDesignationBypass : kParameterDesignationNull;
    }
};

It was proposed on IRC discussion to favor a macro such as DISTRHO_PLUGIN_WANT_BYPASS.
At the same time, plugins may be allowed to implement a pair of virtual methods: run, and runBypassed.
It's some first thoughts on the matter:

Method pair suggests to operate as binary on/off, but I don't think it should

I would favor the implementation practice where bypass will be smoothed as a gain between 0-1, avoiding the clicky transition. The bypass will act more as a tri-state: Off ↔ Transition ↔ On
(for example: on Bypass clicked, fade gradually the volume, and engage a True-Bypass once attenuation fades below a -80dB threshold)
It's why I think preferable for the plugin implementer to decide when bypass engages, instead of the framework to decide so. I would think the pair of methods discourages the best practices.
If I were to implement the bypass in a way driven as I want, it's a more awkward formulation.
For an example of what I mean:
Plugin::run() {
  myDsp.fBypassSwitch = 0;
  myDsp.run();
}
Plugin::runBypassed() {
  myDsp.fBypassSwitch = 1;
  myDsp.run();
}

About changes on UI-side

If bypass stops to be represented as instance of Parameter, UI needs a replacement way to access it read/write, and receive the notification.

Abount UI and Parameters

The issue is related directly to this limitation: that UI is unable to access directly the array of parameters.
In my opinion, it's a shame that Parameters are not accessible in the framework, for reasons that exceed the simple one of bypass, and it's beneficial long-term if we can have them.
(the solution which I meant as point 1. of the previous post)
In UI development, I was many times fighting against a DPF "way of things", that wants parameter as Plugin-Only. It opens a possibility to formulate such things as:

calibrate this Slider according to settings of Parameter N.
(eg: set min and max bounds, set a middle click default value, set logscale, and so on)

This helps application of D.R.Y. principles.

I fully agree that making the Parameter class accessible by both Plugin and UI class would be really helpful.
We can go into this route first, and then see how that works.
BUT, and this is a big but, we need to ensure it works as static constructor (this is where I failed last time).
To be clear, we need to allow to have something like this:
static const Parameter kMyPluginParameters[] = {
/* param1 here */,
/* param2 here */,
/* etc */
};

I really want to avoid the situation of having to define the same parameter data on DSP and UI side.
Also, we should do our best to make it easy for developers to avoid instance-access.
With those 2 things in mind, we can see how to proceed.

Now about the bypass, I see the issues about a new function for such processing yes, but it is important to remember that the plugin is not supposed to make any sound in this mode, so the run function is supposed to be different by design.
The MIDI event arguments are removed from the function (maybe the inputs as well?). We can pass a simple bool on it to indicate that the bypass has just started, so the plugin can setup some kind of fade-out mode.
Why do you think the UI needs to know if the DSP is bypassed or not? Does it make any difference?

BUT, and this is a big but, we need to ensure it works as static constructor

I think of static const variables as a downgrade regarding the readability.
You can obtain a global, non-duplicated parameter array by using a function-scope static-local variable. It would do automatically the thing wanted, regardless of using separate binaries, or instance-access. (instanciate once-only, + is thread-synchronized)
const ParameterList& getGlobalParameters()
{
  static const ParameterList params = initTheParameters();
  return params;
}

I refer you to a pattern how I make this usually.

a single shared code where to define parameters https://git.io/JeXnU
relevant part of makefile https://git.io/JeXnT

but it is important to remember that the plugin is not supposed to make any sound in this mode

The LV2 documentation seems to not really agree, judging from what I read from the property lv2:enabled. In reality, it mandates ("must") that plugin must smooth the transition.
See http://lv2plug.in/ns/lv2core/#enabled.
I think, operation like the current parameter is fine actually, just provide the value 0-1 that plugin feeds into a lowpass.

The MIDI event arguments are removed from the function (maybe the inputs as well?).

Inputs must stay, because sound has to compute during a transition period.
Why cut the MIDI? does a part of specification say something about it?

Why do you think the UI needs to know if the DSP is bypassed or not? Does it make any difference?

It needs it, in case UI indicated bypass status by check button or LED.
Some pedal designs have one of these or both.

The issue with bypass inverted was fixed in https://github.com/DISTRHO/DPF/commit/e889c58115b182364b095d60d0018c009163728f
This ticket has some conversation that it is useful to maintain, I dont want to close it, so I will rename the ticket.


Value is sometimes an empty string

Environment
node v22.11.0
macos 14.7.1
unstorage 1.13.1
Reproduction
https://stackblitz.com/edit/vitejs-vite-vdcacm?file=src%2Findex.ts
Describe the bug
Can't reproduce on stackblitz but on local maschine.
As you can see in the code
if (b.some((v) => v.status === 'fulfilled' && v.value === '')) {
  console.log('Something went wrong');
}

it checks if v.value is an empty string (which should never be the case)
but I still get this log
Sending response
Sending response
Sending response
Sending response
Something went wrong
Sending response
Sending response
Sending response
Something went wrong
Sending response
Sending response
Something went wrong

when opening the tab and holding ⌘ Cmd + R
Additional context
Using a package like async-mutex I was able to workaround this bug
Logs
No response

I also have this issue


Setting value to undefined or null does not clear input

The autocomplete component seems to be semi controlled. If I set value and onChange, and set value to null or undefined, I expected the AutocompleteInput.

Same issue here +

Same issue, tried setting the restoreOnBlur property to false as well, but am not getting any results in doing so.

I'm not sure if you guys are having the same issue I faced, but in my case, I fixed it in this way
...
const [value, setValue] = useState<string>('');
...
<AutoComplete
  openOnFocus
  multiple
  onChange={(vals) => console.log(vals)}
  onSelectOption={() => {
    setValue('');
  }}
  >
  <AutoCompleteInput
    value={value}
    onChange={(a) => {
      setValue(a.target.value);
    }}
  >
    {({ tags }) =>
      tags.map((tag, tid) => (
        <AutoCompleteTag
          key={tid}
          label={tag.label}
          onRemove={tag.onRemove}
        />
      ))
    }
  </AutoCompleteInput>
  <AutoCompleteList>
    {countries.map((country, cid) => (
      <AutoCompleteItem
        key={`option-${cid}`}
        value={country}
        textTransform="capitalize"
        _selected={{ bg: 'whiteAlpha.50' }}
        _focus={{ bg: 'whiteAlpha.100' }}
      >
        {country}
      </AutoCompleteItem>
    ))}
  </AutoCompleteList>
</AutoComplete>

I think you need to use restoreOnBlurIfEmpty prop instead of restoreOnBlur.

It seems like this issue was fixed by using restoreOnBlurIfEmpty and potentially also by some other changes that have happened since the initial post was made.  Doing some testing of my own, it seems the input is controllable in the manner you mention.  If there's still an issue, would you be able to supply a codesandbox reproducing the issue?


Menu bar

On Mac, the menu bar currently contains default stuff that isn't really relevant for mantaray, although I don't know what I would want to put there.

Maybe a channels and PMs dropdown, or simply nothing.

Since its not something built in to IRC it would make sense here: a little friend book or friends list that could be accesed(popup)/modified(Just do it all in the menubar) to see status and open a DM channel or send a message to be read later (forgot the name of the bot).


Fix for #44

Added a missing hook to CQUI_SettingsInitialized to properly initialize CQUI_showLuxury.

@civfanatics/civfanatics-devs Ping

why was this closed?


[BUG] Create a root folder in Database Navigator is impossible

Creating a connection folder in the root, or move an existing sub-folder to the root, is impossible...

There is a workaround... Drag a connection to the root so that the connection is not in any folder. Then select it and click in the new folder icon.

I confirm this bug in version 6.2.5.
This can be worked around as mentioned by @zanonjonascodes by selecting a connection which is outside all folders before creating the folder to put at the root.

What it i am a very organized person and i don't have any connection in the root?

Then you need to move a connection there temporarily, or create one. Obviously, this only works around the problem.

can confirm this in the latest version, but the above workaround works.

This is still bugged - when will this be fixed?

already implemented

I still have this issue on version <IP_ADDRESS>204170718 - can't create or move new folders in the connections root. The same workaround still works.

CTRL + Left Click to deselect the current folder or database in the tree and click a New Folder button.

This is still an issue in Version <IP_ADDRESS>211202223

Still does not work


Update running-cloud-controller.md

Fixes: #29857

/approve
thanks for working on this :)

/lgtm

/assign


Voice Gate: Voice gate cog

For our Voice Gate project, we need a new cog which will interact with the endpoints specified in https://github.com/python-discord/site/issues/398.
This issue cannot be solved until https://github.com/python-discord/site/issues/398 is ready.
Tasks

A command for verifying, which checks the API from https://github.com/python-discord/site/issues/398 to see if a user qualifies and then grants the appropriate role if it does.
If the user does not qualify, temporarily display an error message, and delete it after 10 seconds.
Clean up invocations and all other messages posted in the voice verification channel, to keep it tidy. Basically, do exactly the same thing as we do in #verification

Dependencies
This issue cannot be started until a number of the other issues in the project have been solved.

We need the speaking permission role to exist
We need the voice gate channel to exist
The site-side changes need to be done, so we have an API to call.

Can I get assigned to here? Is this now possible to get role + channel IDs too?

The voice gate requirements we have decided on are:

The user must have verified over 3 days ago.
The user must have over 50 messages.

Both of these statistics are reported from the Metricity API located at api.pythondiscord.com/bot/users/{user_id}/metricity_data
A sample response looks like:
// GET https://api.pythondiscord.com/bot/users/165023948638126080/metricity_data
{
  "verified_at": "2020-10-06T00:04:37.096203",
  "total_messages": 13664
}


HyperEnclave and AMD SEV、Intel SGX

Hai.
According to my understanding，HyperEnclave is more similar to AMD SEV,not Intel SGX，right？
HyperEnclave include VMM（RustMonitor）和Guest（Occlum and applications in enclave）as AMD SEV does.
I can't figure out the similarities between HyperEnclave and  Intel SGX except the fact that they are all process-based TEE.
Can you offer some guidance？

@Ariel08081214 ,

HyperEnclave is more similar to AMD SEV, not Intel SGX，right？

The TEE instance provided by HyperEnclave is similar to Intel SGX(Process-based Enclave).
The TEE instance provided by AMD SEV is a CVM(Confidential Virtual Machine).
It should be mentioned that we are now working on extending HyperEnclave to provide CVM instance for users, and we plan to publish the related source code in the future.

@Bonjourz
According to my understanding, HyperEnclave create a unique VM for host OS and the untrusted part of applications, the trusted part of the applications run in enclave as a secure VM created by RustMonitor. If the application runs in encalve with Occlum,then the whole application is in the encalve,right？ I think Hyperenclave's enclave is similar to Intel SGX(Process-based Enclave) but the VMM named RustMonitor is similar AMD SEV.

Hi @Ariel08081214

According to my understanding, HyperEnclave create a unique VM for host OS and the untrusted part of applications, the trusted part of the applications run in enclave as a secure VM created by RustMonitor. If the application runs in encalve with Occlum,then the whole application is in the encalve,right？

Yes.

I think Hyperenclave's enclave is similar to Intel SGX(Process-based Enclave)

Yes. The interface to manage enclave on HyperEnclave is similar to SGX.

but the VMM named RustMonitor is similar AMD SEV.

In all the TEE's design, there is a secure monitor who has the most privilege and is able to manage all the security-related resource(memory, CPU status) on the platform. For SGX, the monitor is the microcode in the CPU. For AMD SEV, the monitor is integrated into the AMD Platform Security Processor.
HyperEnclave targets on the common platform, it only relies the common technology like virtualization. So on HyperEnclave, our RustMonitor runs in the VM Root mode(most privilege), and other parts runs in VM-non Root mode.

Thank you very much,your reply helps a lot to me

@Bonjourz  Hai.Here is another question.
The trusted part of a application run in enclave,which is inside a secure VM. So, is there only one secure VM or is one-to-one with application？

Hi @Ariel08081214,
A virtual machine's state comprises the state within the VMCS (Virtual Machine Control Structure), general-purpose registers, and various other CPU states.
From this perspective, each enclave corresponds to a VM on HyperEnclave.


update chart to upstream 1.8.8

EXTREMELY IMPORTANT: if you are updating the rook-operator helm chart from upstream via the git subtree method, you must not squash merge this PR as it will break future updates. Standard merges only, please - you'll save future you a lot of pain.
This PR:

updates the main chart to upstream v1.8.8

Checklist

[x] Update changelog in CHANGELOG.md.
[x] Make sure values.yaml and values.schema.json are valid (more info on the values schema can be found here).
[x] understand that I should not squash merge this PR if I am updating the rook-operator helm chart via the subtree method.

i'm gonna merge this in as it's pretty tough for anyone else to realistically review it. I've templated it out and it renders with no errors so i'm kinda ok with it.


Create website for demos (acting as a playground page)

Explains how it works

Add link to GitHub

call out when not applied

Say: use the inspector to see that it's the DOM


Add dispatching by system and architecture while downloading step CLI

While working with certificates, openfl downloads only linux-x86_64 version of step CLI. This PR targets to add more supported systems and architectures for downloading.
Changes were tested on linux-x86_64 and linux-arm64.

I have read the CLA Document and I hereby sign the CLA


quickgui: init at 1.2.8

Description of changes

Add quickgui which is a Flutter frontend for quickemu, a tool for quickly creating and running optimized virtual machines.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Welcome to Nixpkgs! I will be your guide!
In Nixpkgs, the pull requests follow the model below:

The first commit includes you to the maintainers file.

It must be titled maintainers: add <your name>
Ideally, you do this once and then forget

The second commit includes the expression you are writing

It should be titled <appname>: init at <version>
<appname> should be all lowercase (there are some exceptions)
<version> should start with a digit (except when picking a specific Git commit, in which you will use unstable-YYYY-MM-DD)

That being said, use git squash to make your contribution follow the guide above.
If any doubt, drop me a ping!

Read the comment above

I have sorted out the commits, it now follows the model above

As far as I understand the docs, it is a GUI to quickemu.

It will show this error screen if it cannot find quickemu

Acceptable. I will merge.


feat: adding Buddy's Pizza

Description
This PR adds Buddy's Rendezvou to the regional pizza spots.
What type of PR is this? (check all applicable)

[x] 🍕 Feature
[ ] 🐛 Bug Fix
[x] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents
Related to #35
Mobile & Desktop Screenshots/Recordings
n/a
Added tests?

[ ] 👍 yes
[x] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[ ] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
n/a
[optional] What gif best describes this PR or how it makes you feel?

@CBID2 all should be fixed

@CBID2 I wanted to submit another PR for a different pizza place but I keep getting a permission denied in my terminal.

@CBID2 I wanted to submit another PR for a different pizza place but I keep getting a permission denied in my terminal.

Hi @chrisdemars! 😊 I'm discussing it with the community team, but I think it's because we're trying to keep it one PR a minimum.

@CBID2 I wanted to submit another PR for a different pizza place but I keep getting a permission denied in my terminal.

Hi @chrisdemars! 😊 I'm discussing it with the community team, but I think it's because we're trying to keep it one PR a minimum.

 I was going to get my 4 PR's for Hacktoberfest, all pizza related stuff I could contribute.

@CBID2 I wanted to submit another PR for a different pizza place but I keep getting a permission denied in my terminal.

Hi @chrisdemars! 😊 I'm discussing it with the community team, but I think it's because we're trying to keep it one PR a minimum.

 I was going to get my 4 PR's for Hacktoberfest, all pizza related stuff I could contribute.

Aww it'll be ok @chrisdemars. I'll give you an update on what the team says. In the meantime, check out this section of our Hacktoberfest page.


prusa-slicer: remove duplcate desktop items

Description of changes

Resolves #187604
Remove duplicate desktop items. We can fallback to the ones provided by the repo since they don't use absolute paths
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[X] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

λ ls -L --tree ./result/share/applications
 applications
├──  PrusaGcodeviewer.desktop
└──  PrusaSlicer.desktop


Vulkan 'device lost' errors under Windows on AMD RX 460 2GB (in multi-device multi-vendor configuration)

Testing on an RX 460 under Windows has brought up a couple of issues which have just been addressed.   However, the application renders around a second worth of frames, on average, before encountering a 'device lost' error message and dying.
I believe the same will happen under Linux with the AMDGPU-PRO drivers, as I saw similar behaviour there, although I have yet to construct a persistent test environment.
The AMD Windows driver was whql-win10-64bit-radeon-software-crimson-relive-17.11.1-nov10.exe.  Note that this is running alongside a GTX 780 running 388.13-desktop-win10-64bit-international-whql.exe.

Commit StrayLightning/Wyvern@99f63657627f774bbf0c2183c15d31cc9cd4c6b0 shifts the acquire of the swapchain image to just prior to presentation, as advocated by Axel Gneiting in his SIGGRAPH 2016 presentation.  This doesn't make the problem go away, but it changes the failure mode which gives more information.
Unexpected result from vkMapMemory: memory map failed
thread 'main' panicked at 'Vulkan API call failed', D:\keep\hg\programs\rust\wyvern\src\graphics\renderervk.rs:4599:12
note: Run with RUST_BACKTRACE=1 for a backtrace.
WARN: @[DS]: Invalidating a command buffer that's currently being recorded: 0x000001E78E152470.
WARN: @[DS]: Invalidating a command buffer that's currently being recorded: 0x000001E78E170FE0.

I had hoped that StrayLightning/wyvern@7188102e271ee0a5207b8227c69c7560c6e66d77 that makes rendering reliable under load on NVIDIA, even when StrayLightning/wyvern@d80fb47f783231e284fbb2117b58f7ba4f81a184 removes the egregious queue wait, would resolve the AMD device lost / memory map failed issue, but it hasn't changed the behaviour.  Further investigation is needed.

This is dying in the vkMapMemory() call in RendererVk::synchronise_uniform_buffer().  I am fairly sure that this is a failure to synchronise uniform buffer updates correctly, and the NVIDIA driver just happens to not be susceptible.  I think the thing to do is to rip out the descriptor set / uniform buffer handling, start again with something that's more sensible, and then see what happens on AMD.

Commit StrayLightning/wyvern@2b0cdbaafc6c54b544a06ff7a01205d9681edadb completely refactored Descriptor Set usage.  It works fine on NVIDIA, but now it renders white boxes instead of the OSD text, and nothing else.  It no longer dies with a device lost or a memory map failed error.

I have been able to get renderdoc to capture and not crash by checking "Enable API Validation."  It shows that the expected stuff is getting rendered by vkCmdDrawIndexed, but is no longer visible when looking at the vkCmdExecuteCommands() node.

I have so far not been able to run this project on AMD without all sorts of Bad Things happening:

Failure from main vkQueueSubmit() call
Black screen with white blocks instead of OSD text
Complete system lock-up

Currently the validation layers are clean when specifying "--vulkan --vkdebug 14 --osd".  Attempting to run under RenderDoc with API validation enabled results in some spurious validation layer messages which don't correspond to calls that Wyvern makes.  One possible explanation would be corruption due to e.g. FFI abuse.
With the load_from_png disabled (which causes grief for valgrind) and with the system allocator enabled, valgrind doesn't show anything obviously wrong.

See the doc/radv.md file for notes on attempting RADV under Ubuntu.  I can't get a RADV environment that supports tessellation yet, so that's currently a non-starter.

Sounds like something is very with your radv install. Since 17.3-rc1 we report tessellation support unconditionally (https://cgit.freedesktop.org/mesa/mesa/tree/src/amd/vulkan/radv_device.c?id=mesa-17.3.0-rc1#n430), and in 17.2 we only did not for Vega cards. So getting no tessellation support from any incarnation of 17.3 likely means that somehow it doesn't find the right version/driver.
I've looked a bit in running this, and it seems like on the newest radv it crashes due to the app freeing the descriptor set layout for a descriptor that is still in use. With some debug prints in the driver:
[New Thread 0x7fffeb9ed700 (LWP 45905)]
WARNING: radv is not a conformant vulkan implementation, testing use only.
allocate layout 0x7ffff4a31ac0
allocate layout 0x7ffff4a31a80
allocate layout 0x7ffff4a31b00
allocate layout 0x7ffff4a3e8a0
allocate layout 0x7ffff4a3e900
allocate layout 0x7ffff4a3e960
allocate layout 0x7ffff4a31c80
allocate layout 0x7ffff4a31c00
allocate layout 0x7ffff4a3e9c0
allocate layout 0x7ffff4a3eae0
allocate layout 0x7ffff4a3ea80
allocate layout 0x7ffff4b61140
allocate layout 0x7ffff4a42f40
allocate layout 0x7ffff4af1700
create 0x7ffff4b43c40 0x7ffff4a42f40
create 0x7ffff4b43c98 0x7ffff4af1700
create 0x7ffff4b43d08 0x7ffff4a42f40
create 0x7ffff4b43d60 0x7ffff4af1700
free layout 0x7ffff4a42f40
free layout 0x7ffff4af1700
[New Thread 0x7fffe8bff700 (LWP 45906)]
[New Thread 0x7fffe83fe700 (LWP 45907)]
Thread 1 "aeolius" received signal SIGSEGV, Segmentation fault.
0x00007ffff0164950 in radv_cs_add_buffer (ws=0x7ffff4b9f700, cs=0x7fffeae53800, bo=0x120, priority=7 '\a') at ../mesa/src/amd/vulkan/radv_radeon_winsys.h:288
288             if (bo->is_local)
(gdb) bt
#0  0x00007ffff0164950 in radv_cs_add_buffer (ws=0x7ffff4b9f700, cs=0x7fffeae53800, bo=0x120, priority=7 '\a') at ../mesa/src/amd/vulkan/radv_radeon_winsys.h:288
#1  0x00007ffff016b70d in radv_bind_descriptor_set (cmd_buffer=0x7ffff4a2d200, set=0x7ffff4b43c40, idx=0) at ../mesa/src/amd/vulkan/radv_cmd_buffer.c:2345
#2  0x00007ffff016b7e6 in radv_CmdBindDescriptorSets (commandBuffer=0x7ffff4a2d200, pipelineBindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS, _layout=0x7ffff4a18d00, firstSet=0, descriptorSetCount=1, pDescriptorSets=0x7ffff4a209c8,
dynamicOffsetCount=0, pDynamicOffsets=0x0) at ../mesa/src/amd/vulkan/radv_cmd_buffer.c:2368
#3  0x00005555557eb1b5 in wyvern::graphics::renderervk::RendererVk::bind_descriptor_set_helper (self=0x7ffff4b9fc00, set=0, command_buffer=0x7ffff4b9fe58)
at /home/bas/.cargo/git/checkouts/wyvern-919e9cd055e16930/0c8b0fb/src/graphics/renderervk.rs:5403
#4  0x00005555557e82aa in wyvern::graphics::renderervk::{{impl}}::bind_descriptor_set (self=0x7ffff4b9fc00, set=0) at /home/bas/.cargo/git/checkouts/wyvern-919e9cd055e16930/0c8b0fb/src/graphics/renderervk.rs:4926
#5  0x00005555556159cc in aeolius::main () at src/bin/aeolius.rs:636
(gdb) f 1
#1  0x00007ffff016b70d in radv_bind_descriptor_set (cmd_buffer=0x7ffff4a2d200, set=0x7ffff4b43c40, idx=0) at ../mesa/src/amd/vulkan/radv_cmd_buffer.c:2345
2345                            radv_cs_add_buffer(ws, cmd_buffer->cs, set->descriptors[j], 7);
(gdb) p set->layout
$2 = (const struct radv_descriptor_set_layout *) 0x7ffff4a42f40

Thank you: I shall definitely look into that.  I am surprised that the VL didn't flag it, and it is definitely surprising given that the descriptor set layouts should be live until the renderer is destroyed.

Thanks @BNieuwenhuizen: That is definitely a problem. A commit to address it will follow shortly.

Commit 69ecb2c9ef454cb34eb8da2c7fae457430c66a09 upticks to Wyvern 0.7.20, which incorporates StrayLightning/wyvern@6a9ca6d7c22b264d439ca0ab07a015d11e7f72f2 that fixes the descriptor set layouts being destroyed before use.

@BNieuwenhuizen: The spec says in section 2.3.1. Object Lifetime:
"VkDescriptorSetLayout objects may be accessed by commands that operate on descriptor sets allocated using that layout, and those descriptor sets must not be updated with vkUpdateDescriptorSets after the descriptor set layout has been destroyed. Otherwise, descriptor set layouts can be destroyed any time they are not in use by an API command."
My reading of that is that although the Wyvern behaviour was not as I originally intended it, destroying the descriptor set layouts after the pipeline layout and descriptor sets have been created is fine.  Do you concur?

I interpret
"VkDescriptorSetLayout objects may be accessed by commands that operate on descriptor sets allocated using that layout"
as
"VkCmdBindDescriptorSets operates on the descriptor set, so the layout still has to be valid."
Though it is an interesting question what the "and those descriptor sets must not be updated with vkUpdateDescriptorSets after the descriptor set layout has been destroyed." is doing there then.  I'll file a spec clarification request.

@BNieuwenhuizen Yes, on re-reading the spec I'd agree with your assessment.

Some further information on the failure: I haven't looked into whether this behaviour has changed with recent commits, but I notice that it is actually failing in the bind of the descriptor set at the beginning of frame 2, and not the main vkQueueSubmit() call for frame 1 as I had previously thought.

I note that when trying Vulkan proframs under my Windows environment they will crash when selecting the RX 460 if the display attached to the RX460 is not selected as the primary display.  The NVIDIA drivers seem to be more robust (in my case) and Vulkan programs will happily run on the GTX 780 whatever the primary display is set to.
If I select the display attached to the RX460 as the primary then Aeolius results in an assertion with an error code instead.
I have successfully run Sascha Willems' shadow mapping demo on both the GTX 780 and the RX 460 (noting the caveat above):
https://github.com/SaschaWillems/Vulkan/tree/master/examples/shadowmapping
I have also tried NVIDIA's fish demo:
https://github.com/NVIDIAGameWorks/GraphicsSamples/tree/master/samples/vk10-kepler/ThreadedRenderingVk
It works fine on the GTX 780.  It crashes when I hack the sources to force it to use the RX 460, but it runs fine on the RX 460 under the debugger.

After reviewing changes over the last month I have reverted some of the behaviour changes to descriptor set binding to get the Vulkan renderer doing something on AMD again.  With the uptick to Wyvern 0.7.23 the Vulkan renderer works on Fedora Rawhide/Mesa/RADV (though the colours are somewhat off.)
It renders again under Windows/AMD/Vulkan, but it is back to encountering a 'device lost' condition after a couple to ten seconds, which then triggers a driver reset.

Thing that don't have an effect on the 'device lost' condition:

Liberal sprinkling of vkDeviceWait() calls throughout the Vulkan renderer (to try to avoid CPU/GPU synchronisation issues)
Turning off depth clearing
Turning off subsets of: atmosphere, land, water, font
Reducing the amount of geometry (--lodfactor 4 --divisions 4 --cpulodfactor 4)
Increasing the size of the initial vertex and index buffers so that the renderer doesn't need to reallocate

It has an air of a GPU/GPU synchronisation issue about it, to me.

After a month of improving the Vulkan renderer here and there I have been unable to identify the problem.  I had hopes that I would find an obvious deadlock condition such as Novum/vkQuake@b6ae86443dfdc537e8f3788df42bdee1ac11782a, but I am unable to see what's wrong.
I finally got around to trying this on my wife's laptop which has an Intel integrated GPU and an AMD R5 M335.  Using the latest Adrenaline 17.12.1 drivers the application ran fine using the Vulkan renderer.  It was also perfectly happy running Vulkan on the Intel GPU.  There were wonky colours running on the Intel part in OpenGL mode, but I didn't look at how up to date those drivers are.
The status is that I am now only able to reproduce this problem on Windows on my RX 460 2GB card (running alongside the GTX 780.)  This could be a problem that only occurs on newer AMD parts, and possibly only under specific environmental conditions.  Perhaps my second-hand RX 460 is dodgy, though I think that unlikely.
If you do try running this application and find problem, please log them here or in a new issue.

The aforementioned laptop:

i7-6500U with Intel 520 (driver <IP_ADDRESS>71 dated 13/08/2017 vulkaninfo reports driver version 0x10002)
AMD R5 M335 (driver 23.20.15002.11 dated 06/12/2017 Adrenaline 17.12.1)

I noticed that these problems all go away when disabling tessellation.  This can be achieved by removing the tessellation shader files and hacking te_normal -> v_normal in the geometry shaders.

Commit 4c216d4ca1656d20f919442c0024845b0ccffb07 adds --notessellation option that, instead of disabling tessellation, causes the tessellation control shader to output 1.0 for every parameter.  See the change description for more details.

Commit b2305f9f08e0e9c97ba4c080c39609c181047351 removes the --notessellation option and replaces it with an automatic workaround on AMD.  This workaround restricts the tessellation inner and outer parameters such that the AMD driver doesn't lock up in Vulkan mode after a number of frames.
I shall look at finding out why these restrictions exist and reporting it to AMD if it still looks like a bug (it does right now.)
Although the workaround is required, I am now marking this issue as closed.

Reported to the AMD community here: https://community.amd.com/message/2859276


AddPipilineRunNotebookLimitaion

@WilliamDAssafMSFT, @JeneZhang
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@WilliamDAssafMSFT,
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#hold-off

Hi @SharonZhang1 and @JeneZhang! Please review my three quick changes, and commit the suggestions. Then we can publish. Thanks!

#sign-off

#sign-off


Simplify code, follow linter suggestions

@cesarghali I'm using gosimple, errcheck, vetshadow (go tool vet --shadow *.go)

@matiasinsaurralde Thanks for this PR. Would you mind splitting this into three PRs, one for the changes requested by each tool?
Thanks!

@gbdelvin Sure, will do it today

Looking forward to your PRs :-)

Closing due to staleness.  Please reopen if further changes are planned.


Xcode 11.4 Circular Reference errors

Getting this error when upgraded Xcode to 11.4. Earlier it was working fine.

Use the latest code.

Xcode Version 11.4 (11E146). Circular reference error too.

When will 6.4.8 be available for Cocoapods?

I changed only one number to 8. Work.


feat(update): numeric operators

increment, decrement, multiply, divide

Close: #236
/claim #236

@Dasio, please run make lint and update the diff. Otherwise looks good, I'll merge once you fix the lints.


Missing v1.0.4 release notes

Describe the bug
Release notes at https://istio.io/about/notes/1.0.4.html are missing, even though there is a (broken) link to them on istio's GH releases page.
Previous releases have notes with the expected URL format:

https://istio.io/about/notes/1.0.3.html
https://istio.io/about/notes/1.0.2.html
https://istio.io/about/notes/1.0.1.html
https://istio.io/about/notes/1.0.html

Expected behavior
https://istio.io/about/notes/1.0.4.html exists and contains notable changes/fixes since v1.0.3.
Steps to reproduce the bug
Visit https://istio.io/about/notes/1.0.4.html.

Mandar's been working on these in https://github.com/istio/istio.io/pull/2910

Cool, looks like it's up now, thanks!


Windows Support

The v0.5 release includes Windows builds, but to be honest I have no idea whether they work, because I don't have any Windows machines to test them on. It would be greatly appreciated if someone on Windows could try it out and post the results here.

I'll go ahead and test it for you. I presume you'd like to test against state generated on a windows box? That would help ensure there aren't any text formatting issues.
Also, in case you aren't aware, Windows boxes are available for vagrant.
https://atlas.hashicorp.com/Microsoft/boxes/EdgeOnWindows10
https://github.com/boxcutter/windows

I did a basic smoke-test using a 64 bit Windows 7 VM. Looks good.
PS C:\Users\vagrant\Downloads> .\terraform show
aws_spot_instance_request.spot_worker:
  id = sir-03cnng8m
  ami = ami-8118d4e1
  associate_public_ip_address = true
  block_duration_minutes = 0
  ebs_block_device.# = 0
  ephemeral_block_device.# = 0
  instance_type = t1.micro
  key_name = ctbarbou
  private_dns = ip-172-31-13-66.us-west-2.compute.internal
  private_ip = <IP_ADDRESS>
  public_dns = ec2-54-149-220-125.us-west-2.compute.amazonaws.com
  public_ip = <IP_ADDRESS>
  root_block_device.# = 0
  security_groups.# = 0
  source_dest_check = true
  spot_bid_status = fulfilled
  spot_instance_id = i-1f125ec2
  spot_price = .10
  spot_request_state = active
  spot_type = persistent
  tags.% = 2
  tags.Name = spot
  tags.Role = demo
  vpc_security_group_ids.# = 0
  wait_for_fulfillment = true

PS C:\Users\vagrant\Downloads> .\terraform-inventory --list
{"spot_worker":["<IP_ADDRESS>"],"spot_worker.0":["<IP_ADDRESS>"],"type_aws_spot_instance_request":["<IP_ADDRESS>"]
}

PS C:\Users\vagrant\Downloads> .\terraform-inventory --host <IP_ADDRESS>
{"ami":"ami-8118d4e1","associate_public_ip_address":"true","block_duration_minutes":"0","ebs_block_device.#":"0","epheme
ral_block_device.#":"0","id":"sir-03cnng8m","instance_type":"t1.micro","key_name":"ctbarbou","private_dns":"ip-172-31-13
-66.us-west-2.compute.internal","private_ip":"<IP_ADDRESS>","public_dns":"ec2-54-149-220-125.us-west-2.compute.amazonaws
.com","public_ip":"<IP_ADDRESS>","root_block_device.#":"0","security_groups.#":"0","source_dest_check":"true","spot_bi
d_status":"fulfilled","spot_instance_id":"i-1f125ec2","spot_price":".10","spot_request_state":"active","spot_type":"pers
istent","tags.%":"2","tags.Name":"spot","tags.Role":"demo","vpc_security_group_ids.#":"0","wait_for_fulfillment":"true"}
PS C:\Users\vagrant\Downloads>


Bad alignment when using ^T for builders in the "done" stage

See the 6th builder:
 [9amd64-ports] [20160913T112149Z] [parallel_build:] Queued: 166 Built: 35  Failed: 0   Skipped: 0   Ignored: 0   Tobuild: 131  Time: 00:03:59
        [01]: lang/python27                    package         (00:03:25)
        [02]: shells/bash                      build           (00:01:04)
        [03]: security/libtasn1                configure       (00:00:16)
        [04]: x11/pixman                       build           (00:00:34)
        [05]: textproc/p5-XML-Parser           build-depends   (00:00:11)
        [06]:            done
        [07]: www/w3m                          configure       (00:00:25)
        [08]: devel/binutils                   build           (00:03:44)

It's somewhat intended since I wanted it to stand out that it wasn't building a package, but
doing something else.  This happens for all non-package states.

Well, it would stand out anyway as the second and fourth field are empty.


Enter key doesn't work on PayPal delete popup - reported by @adeel0202

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

Action Performed:

Go to settings > Payments
Click on the Paypal username
Click on the delete option
Press enter key when the delete popup shows

Expected Result:
Paypal account should delete on pressing the enter key
Actual Result:
Paypal account doesn't delete on pressing the enter key
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
Desktop App

Version Number: 1.1.41-1
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Uploading Screen Recording 2022-02-15 at 10.18.13 PM.mov…
Expensify/Expensify Issue URL:
Issue reported by:  @adeel0202
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1644946041283729
View all open jobs on GitHub

This is a good issue and will affect accessibility. Moving to engineering for further triage!

Triggered auto assignment to @marcaaron (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Triggered auto assignment to @dylanexpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (Exported)

Triggered auto assignment to @Luke9389 (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

We can close this as this won't be needed after https://github.com/Expensify/App/pull/7850

@thesahindia tried 7850, it didn't fix it

@rushatgabhane, the enter works on confirm Modal but not confirm popover, after #7850 both will use the same content so the enter will work on confirm popover too. I tested it and it worked.

@thesahindia sorry I thought that enter key should work for the first delete menu too

@thesahindia sorry I thought that enter key should work for the first delete menu too

If we want that enter works for the first delete button too then we can just use the Button component instead of TouchableOpacity and we need to pass pressOnEnter to the Button
https://github.com/Expensify/App/blob/67f26bac489e784ce5a563653b76eb0e6059f1f4/src/pages/settings/Payments/PaymentsPage/BasePaymentsPage.js#L329-L342

Triggered auto assignment to @kadiealexander (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Reassigning as I'm OOO next week! Thanks Kadie! I'll pick this up when I'm back!

Doubled the job price!

@kadiealexander Opps, I forgot to mention this explicitly.
This issue doesn't need to be doubled because @thesahindia's PR https://github.com/Expensify/App/pull/7850 fixed it (unintentionally).

If we want that enter works for the first delete button too then we can just use the Button component instead of TouchableOpacity and we need to pass pressOnEnter to the Button

@thesahindia umm, I don't think that's a good idea. What will happen when there are multiple options.
Besides there's some work being done adding keyboard navigation to this menu. So we don't need to worry about it.

@kadiealexander, am I not eligible for the reporting bonus?
cc: @rushatgabhane

@adeel0202 the contributing guidelines state:

If it's a valid job proposal that we choose to implement by deploying it to production — either internally or via an external contributor — then we will compensate you $250 for identifying and proposing the improvement.

As this job was not implemented and nothing was deployed related to this issue, the reporting bonus does not apply here. The reporting bonus will apply to the issue that the PR is associated with (https://github.com/Expensify/App/issues/7545) which is coincidentally also one you reported. 😊

Got it, thanks for clarifying @kadiealexander


Allow outputs to surject against subset of inputs

Allows for slightly more non-interactive swaps.

If we want to upstream this, we should probably push this logic down directly into the checker to avoid making even more copies of the vector.

Sweet! Will try this soon (2h or so) post-merge.

@instagibbs I tried this, but I am still getting the same issue with the tx that I got when I simply truncated the ephemeral input tag count down to the total pubkeys count. Basically it fails at the secp256k1_borromean_verify() call at the memcmp at the very end.


Working Group Proposal - Application / Industry

Describe the purpose of the group in no more than 4-5 sentences
Proposal to create a working group that focuses on post-quantum applications domain. These applications are part of different industries. For example, in the telecom industry there are different high-level components that could be proposed. Same for other industries.
We want to use this issue to discuss and gauge interest and if there is enough then formally propose the creation of an "Application" (or "Industry") working group which can then work to build communities and review projects and propose them into the PQCA.
cc: @brian-jarvis-aws @Naomi-Wash @hartm @ryjones @ydoroz
Goals of the working group

gauge interest by industries
identify higher-level PQ components for industries
are there reference implementations that could be proposed?
are there reference architectures that could be proposed?

Non-goals of the working group

complete stack of OSS industry specific applications

Deliverables

architectures
reference implementations
discussions and blogs from interested participants

Good to see the initiation of a discussion on a working group dedicated to the post-quantum applications domain.
The initiative aligns closely with a project we've developed called QORE (Quantumized Core Solution). QORE aims to enhance the Beyond 5G core network by integrating PQC and Quantum Random Number Generation (QRNG), addressing the evolving telecom security challenges in the quantum era.
Prove statement:
The current Core Network, as defined by the 3GPP standard, currently relies on classical cryptographic techniques. However, these traditional encryption methods are increasingly vulnerable to quantum threats.
Solution:
To secure the classical Core against these quantum threats, it is necessary to migrate to a Post-Quantum Core. This migration involves utilizing post-quantum cryptographic algorithms that are designed to be secure against the capabilities of quantum computers.
Migration from Classical Core to Post-Quantum Core using QORE

Feature
Classical Core
Qore (Post-Quantum Core)
Status

SUPI to SUCI
ECIES (Elliptic Curve Integrated Encryption Scheme)
Crystals-Kyber (Key Encapsulation Mechanism)
✅ Done

Hybrid Post Quantum Mechanism
✅ Done

Random Number
PRNG (Pseudo Random Number Generator)
QRNG (Quantum Random Number Generator)
✅ Done

SBI Communication
mTLS
PQ-mTLS
✅ Done

Digital Certificates
Classical cryptographic algorithm
ML-DSA
✅ Done

Symmetric Key
AES128
AES256
✅ Done

N3 User Data
IPSec
PQ-IPSec
🟡Ongoing

N3 User Data
DTLS
PQ-DTLS
🟡Ongoing

Have a look at the high-level information/architecture about QORE in the following resources:
BLOG:

QORE Blog 1
QORE Blog 2

VIDEO:

QORE introductory Video

A few questions relating to the qcore proposal

how do the proposed efforts relate to PQC activities at industry bodies like GSMA and ETSI ?
would the intent to facilitate a workgroup amongst other application developers including qcore, or is it to submit some open source code/docs to a new project?
are there any other parties identified that might be involved in such contribution?

A few questions relating to the qcore proposal

how do the proposed efforts relate to PQC activities at industry bodies like GSMA and ETSI ?

The work proposed by industry bodies like GSMA and ETSI are exactly what have been implemented in QORE. Not only GSMA and ETSI in QORE we also follows other Standard Bodies like NIST, 3GPP etc.

would the intent to facilitate a workgroup amongst other application developers including qcore, or is it to submit some open source code/docs to a new project?

Yes, we are in the process to open source the code of QORE. Alongwith that we have blog series ongoing(in the next blog it is going to cover the libraries alongwith liboqs that have been used in QORE), various research papers are being made(soon going to be published), some white papers have already been published and additionaly all the progress is recorded and uploaded on youtube.

are there any other parties identified that might be involved in such contribution?

QORE has already been tested with several open source projects including LF projects such as Aether/ SD-CORE(part of 5G SBP LFN) +  QORE & Q-RAN has also been tested with OSC(Open RAN software Committee by LF) projects such as OSC-DU-High, xFAPI and CU(from other party), apart from that it has also been tested with several other open source projects such as UERANSIM and HEXA-eBPF.

Can we close this issue based on the various discussions before at the board and at the TAC meetings.
Of course, we’d love to have you continue participating in the TAC.


Hello, team I've requested to develop wheel experience.

Prerequisites

[O] Are you running the latest version?
yes, currently, want to extend tool.
[O] Are you reporting to the correct repository?
cornerstoneTool what I've been requested to
[O] Did you perform a cursory search?
mouse event? I did

For more information, see the CONTRIBUTING guide.
Description
[Description of the bug or feature]
Steps to Reproduce

[First Step]
I was using cornerstone2.x version and I like the feature that I can enable mouse event with wheel zoomIn, zoomOut behavior, but what I update feature to cornerstoneTool3.x, I can only use right click to zoomIn, zoomOut with my wheel.
[Second Step]
is it anyway I can control mouse event with setToolActive?
[and so on...]
if not I would like to contribute my request.
Thanks.
Expected behavior: [What you expected to happen]
Wheel to zoomIn
Actual behavior: [What actually happened]

Codepen With Reproduction of Issue:

Basic Template

It looks like our examples need updated for this specific tool. Ideally, this tool should be located here:
https://tools.cornerstonejs.org/examples/tools/zoom-mouse-wheel.html
This should more or less do the trick:
cornerstoneTools.addTool(cornerstoneTools.StackScrollMouseWheelTool)
cornerstoneTools.setToolActive('StackScrollMouseWheel', { })

what I've been working with zoom-mouse-wheel tool, and it's been already implement by our app.
I can see any StackScroll api on cornerstoneTools, is it new feature you will be update?

Thank you for your prompt repose. please let me know what is different between stackScrollMouseWheelTool and zoomMouseWheel?

The first one scrolls images in the stack. The second one zooms into a single image.

Closing. If you've managed to figure things out @gkgkska, please consider adding a minimal example to our collection of examples so that others may benefit.


Feature: Filter by completion kind in intellisense

Visual Studio 2017 has a panel down at the bottom of the completion popup where user can select of which type only to show items. This helps when we know we're looking for a property.
These tabs are also controllable by keyboard shortcuts.

It would be nice to have this in vs code as well :-)

dupe of https://github.com/Microsoft/vscode/issues/18639


[Enhancement] Update docs on 1.8 Policy Report changes

Description
Lots of changes in Kyverno 1.8 and need to update the Policy Reports docs to reflect them.
Slack discussion
No response

Need to also capture that Policy Reports generated from background scans do not consider the Kyverno ConfigMap either the resourceFilters or Namespace exclusions.


Trouble connecting to S3

I was recently trying to read content with acl-private from S3 and had trouble with dask.bag.read_text.  Here are some of the step I took.  In the end, I was still unable to connect.  Note I'm using an IAM account, but I did verify separately that my account has S3 full access:
Example:
The code below would raised a NoCredentials error.

import dask.bag as db
b = db.read_text('s3://xdata-breach-data/dumps/*.txt',
                 errors='ignore',
                 blocksize=10000000)

In the case of the workers, I have a .aws/credentials file on each node.  I was also able to verify that both boto and boto3 were able to find credentials:
import boto
print(boto.connect_s3()) # ----> no problem

import boto3
print(boto3.client('s3')) # ----> no problem

I configure via the following methods config file methods:

.boto
.aws/config
.aws/credentials
/etc/boto.cfg
environment variables in /etc/profile and .bashrc

I also attempted passing the credentials via read_text->storage_options.  In this case I got TypeError: __init__() got multiple values for argument 'aws_secret_access_key'

Try passing key and secret as storage options.

@rolando passing key/secret kwargs seems to solve the TypeError.  Now I get a FileNotFoundError: s3://my-bucket/dumps/myfile.txt.  I tried making it public and still no luck. I'm going to keep digging though

@brendancol did you ever resolve this?

@jcrist No it was never resolved on my side.  This issue was really strange, cause I figure others would also be experiencing this same issue if it was truly an issue.  Have you guys tested with acl-private content?
I would think if nobody else has reported a problem, then it was something with me and not dask

I can see your data now that it's public, using the same read_text line above.
I would guess you are not being authenticated as you think, or perhaps not at all for some reason. Have you tried with s3fs directly? The storage_options are the same kwargs as passed to the S3FileSystem constructor (except username and key both become key and password and secret both become secret).

hello !
I've been running into this very same issue for a while now, i.e. not being able to read/write via dask from/to a non-AWS S3 endpoint.
I've tried various ways of passing my s3 endpoint to dask via the storage_options parameter, but with no luck.
I've provided a minimum reproducible example here below using a toy public bucket so that this issue can be re-opened.
Many thanks in advance for your help!
Example

s3 host: os.zhdk.cloud.switch.ch
bucket (acl-public): impresso-public
bucket contents: two JSON lines files ('impresso-public/GDL-1799.jsonl', 'impresso-public/NZZ-1780.jsonl')

import dask.bag as db
b = db.read_text(
    's3://impresso-public/*jsonl',
    storage_options={'host': 'os.zhdk.cloud.switch.ch', 'anon':True}
)

This raises the following exception:
ValueError: ('No files found', 's3://impresso-public/*')

Funnily enough, if I try to connect instead via s3fs I can list the bucket's contents
import s3fs

fs = s3fs.S3FileSystem(
    client_kwargs={'endpoint_url':'https://os.zhdk.cloud.switch.ch'},
    anon=True
)
fs.ls('impresso-public')
>>> ['impresso-public/GDL-1799.jsonl', 'impresso-public/NZZ-1780.jsonl']

The arguments provided in storage_options should match the ones that successfully list the files:
storage_options={'client_kwargs': {'endpoint_url':'https://os.zhdk.cloud.switch.ch'}, 'anon':True}

Were you looking here: http://docs.dask.org/en/latest/remote-data-services.html#amazon-s3 ?
The trouble is, that there are many such loading functions where this can apply, and a whole lot of backends with various parameters that might be appropriate. Perhaps every mention of storage_options should be accompanied by a link to the remote-data-services page.

I don't know if the documentation has changed recently, but the current one seems much more detailed than the last time I checked. I think it's pretty clear now where the parameters should go! Many thanks again for your help.

Glad to hear!


Still active?

Is this project still active?  I see no updates in a long time.

Hi Michael,
This project is dead and hopefully reincarnated (merged) into Logwatch since v7.4.2 :-) so no more changes can be expected here. If you have some issue to report it must be done to the logwatch project or you can drop me an email I will have a look.
Cheers,

Thanks.


Support for OpenMP magic code comments

As well as setting a preprocessor macro _OPENMP which may be used in #ifdef lines the OpenMP standard also specifies a magic comment for including code only when compiling with OpenMP.
This magic comment has the form !$ <code>. If such a comment is used to make a use statement conditional we can end up with an incomplete dependency tree.
At the moment Fab knows nothing of OpenMP, it's just an argument specified by the user and passed to the compiler. In order to properly support these magic comments, with the dependency only existing if OpenMP is enabled, Fab probably needs to be taught about the existence of OpenMP.

I just realised that this is a duplicate of #297. I have extended fparser to handle OMP sentinels (if a flag is specified at parse time), see https://github.com/stfc/fparser/pull/444. Once we release a new fparser version, we just need to provide this flag to fparser (and as part of the improved compiler support I am adding improved handling of openmp, so FAB will 'know' if openmp sentinels should be enabled or not).


Guardrails test prototype for single rules

Description of the issue
There are going to be many (small) test cases that will test the guardrails. Some of the test will be easy to automate them by using AWS CLI. some other may require other approaches (Selenium?)
Background
This work is based on #1575 and the results of #1666
Definition of done

Create 'test templates'. possibly one template that will use AWS CLI and perhaps another that will use geb/spock on top of selenium
The AWS CLI 'template' basically will issue a command and expect a predetermined reply. Tests will be added to a test suite
Both 'templates' should be easily reusable in order to create new tests

Once the prototype has been created, then we can tackle #1914

The approach has changed. The scripts have been created but not as a template.
The work done (in other tickets) can be found at https://github.com/BCDevOps/aws-sea-guardrail-scanner
Ticket can be closed


red-queen v2

SEE: updated README.md

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Update set-up-cloud-discovery.md

Updated SonicWall name as they are no longer owned by Dell.

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

The documentation has been updated and the file no longer exists.

See PR #850

The proposed changes have been applied in a separate PR. We'll close this pull request.


Different themes

Hi guys,
I really love your work! The open source effort of MapBox is amazing :)
I was wondering if you had any plans, or even wanted, to expand osm-bright to support different themes? I've forked osm-bright and changed the sytlesheets to provide a different theme. See: https://github.com/jacobtoye/osm-bright
I'd love to hear your thoughts.

Closing; feel free to use the @jacobtoye fork for themes.


issues with peptidome-based clustering tool

I checked the new version of the peptidome-based clustering for all 108 assemblies of the genome Burkholderia, and here are some issues I discovered:

[x] some assemblies are missing because their sequence records are a composition of other sequence records whose accession numbers cannot be linked directly to the assembly using the information that is in the Unipept database; some examples B. ubonensis Bu, B. thailandensis E264 (2 assemblies available of this strain, but only one available from Unipept), B. thailandensis Bt4, B. thailandensis TXDOH, B. oklahomensis C6786, B. oklahomensis CDC E0147
[x] the type strain of B. phenoliruptrix (AC1100) has an assembly which is not available from Unipept (because the sequence records are linked to other sequence records; assembly ID GCA_000416445.1)
[x] the minimum metric is the only one that does not properly separate B. mallei from B. pseudomallei
[x] assembly of B. cenocepacia J2315 is not annotated by NCBI as derived from type material (reported to Scott Federhen)
[x] assembly of B. sp. MP-1 is should have species name Burkholderia jiangsuensis since it is the type strain of this species (reported to Scott Federhen; fixed by Scott Federhen)

Other findings: three Burkholderia assemblies have highly reduces genomes

Candidatus Burkholderia kirkii UZHbot 1 (only 10% size of other Burkholderia genomes, only from its species that has been sequenced)
Burkholderia cepacia JBK9 (only 60% size of other Burkholderia genomes, clusters withing the B. cepacia complex)
Burkholderia rhizoxinica (only 60% size of other Burkholderia genomes, only from its species that has been sequenced)

Original issue by @pdawyndt on Wed May 06 2015 at 20:35.

Hi Peter:
Thanks for sending this along!
We’ve always had the facility to update entries like this,
where we can do it by synonymy (with the strain-specific informal name).
I’ve updated the entry in taxonomy -
http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=1458357
and cc’ed our bacterial taxonomist (who may edit it further).
Cheers,
:Scott
ps. this will be flagged as sequence from type with the next reindex -
I usually do that once a week, on Mondays.
On May 6, 2015, at 12:02 PM, Peter Dawyndt<EMAIL_ADDRESS>wrote:
[Hide Quoted Text]
Scott,
One thing I forgot to say: this assembly
http://www.ncbi.nlm.nih.gov/assembly/GCA_000648925.1
is also marked as derived from type material. The taxon ID is assigned the name "Burkholderia sp. MP-1" and I assume it the type strain of Burkholderia jiangsuensis (published 2014). The draft genome was published in this paper
Liu XY et al., "Draft Genome Sequence of Burkholderia sp. Strain MP-1, a Methyl Parathion (MP)-Degrading Bacterium from MP-Contaminated Soil.", Genome Announc, 2014 May 22;2(3).
and the new species was described in this paper from later that year, by the same authors
LIU, X.-Y., LI, C.-X., LUO, X.-J., LAI, Q.-L. and XU, J.-H. 2014. Burkholderia jiangsuensis sp. nov., a methyl parathion degrading bacterium, isolated from methyl parathion contaminated soil. Int. J. Syst. Evol. Microbiol., 64, 3247-3253.
As I understood from your paper, NCBI now gives itself the possibility to update taxonomic names in the sequence databases, instead of relying on the depositors of the sequences. So maybe this is an example of a name that could be updated (no discussion about the correct identification, since this is a sequence of the type material).
Best regards,
Peter
Original comment by @pdawyndt on Wed May 06 2015 at 20:37.

@pdawyndt Can this be closed or is this still relevant for the peptidome clustering paper?
Original comment by @bmesuere on Mon Feb 01 2016 at 13:52.


Danny Davis Chicago office moved

lat/lon based on google maps -- you may have a more precise way of handling that.

Thank you!


HJKL (+arrows) completely stuck

Hey man, awesome project! I seem to have hit a brick wall however. Everytime I start VS Code, the cursor is completely immobilised (HJKL and Arrows). Sometimes when I spam gt and gT after restarting VS Code several times it fixes itself. This does not always seem to work. It may not be a communication problem with NVim because commands such as :help do work and because it does not fix itself over time. I am able to switch into Insert Mode (using any of i, r, s, a) from wherever I place the cursor using the mouse. However x and dd do not work (maybe Normal Mode problem?) and once, when I pressed dd, I had gotten a 'No lines in buffer' in the status bar.
My VIMRC is quite vanilla with no keymappings or plug-ins. I am on Windows.

Please let me know if I can do anything to help and thanks for the amazing plug-in!

@digg33 What neovim version do you use?

running :version in Nvim gives 0.5

well, this is curious. After starting vscode the extension needs a few seconds to establish connection to neovim, but none of your problems should appear. Can you try to run:

with empty init.vim file
with latest stable nvim version (0.4.3)
wait few seconds after vscode loaded and hit enter few times (if you have errors in your vim file - then nvim may block UI and output error message, but it's not handled currently thus not visible)

If it's of any use, for some reason VS Code never shows any messages (like when I press :version) and the current mode is also not shown. Running :ls however shows some messages in a wrong way.

Good ideas, trying them right now.

also init.vim/vimrc should have LF fileendings - vim may complete stuck when encounter CRLF

My init.vim sourced my vimrc and both were CRLF. I am going to make a new init with LF and check now.

Okay, I am very sorry I should have tried with a fresh init. Its working fine now, no problems at all.
On that note, there were some very good tips here. Do you think you could somehow quickly mark commits where you imparted these useful fixing/checking hints? I could go through these marks later and write them in a FAQ or Troubleshooting guide for the project perhaps.

not sure i fully understand about mark commits, but FAQ or Troubleshooting guide is very good idea

Sorry, I meant issues not commits.


Log traceback errors on model

Fixed issue #16
This adds an errors field, and sets it by overwriting the handle_exception method on the view mixin. The response body is unaffected.

Changes Unknown when pulling be1fe2b699647ae2be465f1d864f0061f2864481 on handle_500 into ** on master**.

Hey, thanks for the fix. Is it going to be merged soon ?

@triat It most certainly can. I believe @aschn wanted to be sure this PR actually worked for your issue before merging. If it does then I can merge it in.

Sure I just wanted to know because we had the error yesterday with a malformation of a JSON causing a 500.

@avelis Can I help you on this one ? as we got the errors too.

@triat By all means. All contributions are appreciated.

Hey @avelis, I took the branch on local and tried to pass the tests and they are working on my machine. Could it be possible to rebase the branch from master ? Thanks

Hey @avelis, do you need an other PR to fix the conflicts or you can do it ? Thanks

@triat probably need a PR to fix this. Been really tied up at work as of late

Sure, no problem @avelis. I just created a new PR as I can't fix the conflict here. Hope it helps you. Thanks for your reactivity

Coverage increased (+0.003%) to 40.768% when pulling b27bc96d26af3ee3293174905b80dfb55a2d8463 on handle_500 into d4cf08f3040b452e336b561321d0e66f587b06d7 on master.

Coverage increased (+0.003%) to 40.768% when pulling b27bc96d26af3ee3293174905b80dfb55a2d8463 on handle_500 into d4cf08f3040b452e336b561321d0e66f587b06d7 on master.

Coverage increased (+0.003%) to 40.768% when pulling b27bc96d26af3ee3293174905b80dfb55a2d8463 on handle_500 into d4cf08f3040b452e336b561321d0e66f587b06d7 on master.

About those tests, I don't know if we should have a look or if it's normal that they are slow sometimes ?

@triat There is a couple of things we could do. We could simply re-teach to the test to the new time. 42 ms I believe. We could also use flaky but I doubt that will lower the time for those scenario's. Thoughts?

@avelis I'm not a huge fan of changing the limit time, if your goal is to have an API with a response time with max 200 ms, having drf-tracking take already almost 25% of your response time.
Something that we could do to reduce this amount to 0 is to start using the async in python 3 and / or try to do something similar for python 2 (config with celery?)

@triat Not against Python 3 async but am concerned with Python 2 and Celery. I like Celery to be honest but am concerned forcing people to use that technology to reduce the middleware's overhead.

@avelis I'm not talking about forcing them put maybe propose a configuration working with celery if people really do care about their API response time.
The other solution in Python 2 multithreading but from what I heard, it's far from being simple to use

@avelis Hey, can we check now if the tests pass here too by rebasing on master? Thanks

@triat Using the UI on Github tells me there are conflicts to rebasing from master. I believe either @aschn does it herself or we open an new PR that is basically this effort but with the latest from master.

@triat I think there is a way for me to get the latest from master onto this PR via the Github UI. I swear I have done it before.

@triat I was able to do merge via the Github Desktop UI. We can now observe if the checks pass.

Coverage increased (+0.03%) to 40.882% when pulling 597585aac9458312117f0c1edceb50829bcc9e8f on handle_500 into b767aa03af452146eb4e777b2b6fef09b1f78093 on master.

Coverage increased (+0.03%) to 40.882% when pulling 597585aac9458312117f0c1edceb50829bcc9e8f on handle_500 into b767aa03af452146eb4e777b2b6fef09b1f78093 on master.

Coverage increased (+0.03%) to 40.882% when pulling 597585aac9458312117f0c1edceb50829bcc9e8f on handle_500 into b767aa03af452146eb4e777b2b6fef09b1f78093 on master.

Coverage increased (+0.03%) to 40.882% when pulling 597585aac9458312117f0c1edceb50829bcc9e8f on handle_500 into b767aa03af452146eb4e777b2b6fef09b1f78093 on master.

@avelis apparently it does 👍

Hey @avelis, can I just ask you, when you have time, to trigger the build for pipy :) thanks a lot


There is no option to select the 4K or 1080P version before playing. (MergeVersion plugin)

There is no option to select the 4K or 1080P version before playing. (MergeVersion plugin)

bump

Thanks for reporting this. I only have one version of movies and thought there would be an option inside the player like there is for audio and subtitles. I will look at this this weekend.

Had some time today. Does this break anything for you?
https://pastebin.com/zAMdd8gm


Add find method orderbooks

...useful for trading with specific counter-party, or for more efficient querying of order book.

Coverage remained the same at 94.595% when pulling 556095f3924271e5f4fda855a45610b0a1a93620 on add-find-method-orderbooks into e6c093f94d351511452e78fbd7b953e1801039c4 on master.


Get camera intrinsics from camera_info topic

Implements #25 (@gavanderhoorn)

Use ros::topic::waitForMessage when initializing the yak_ros node to get camera intrinsics published on the camera_info topic for the subscribed depth camera. If no topic is found, fall back to loading from ROS parameters instead.
Change the simulated depth image publisher to use the image_transport::CameraPublisher, which publishes a camera_info topic. The default depth image topic is now sim_depth_camera/image, and camera info is published on sim_depth_camera/camera_info.
Change demo.launch to use this new functionality. In particular note that the topic remaps have changed.

Thanks for the PR @schornakj.
I didn't open #25 for you to fix it, but just wanted to get some input on whether something like that would fit with the library.
We'll test this and let you know.

Thank you for implementing this @schornakj! I have just tested this in our current setup using the Zivid One+ 3D camera and yak_ros now loads the information from the camera_info topic.
I am not too familiar yet with this type of camera's but the Zivid only publishes the camera_info when taking a picture. For our setup, this means that I have to trigger at least one capture as soon as the camera node starts or otherwise it will use the default parameters.
If this is the standard for this type of cameras, would it be an idea to check for the existence of the camera_matrix before using ros::topic::waitForMessage? If the camera_matrix parameter does not exist then wait for the CameraInfo message for a longer duration.

I didn't open #25 for you to fix it, but just wanted to get some input on whether something like that would fit with the library.

It was a quick addition so it seemed worthwhile to just go ahead and do it.

Thank you for implementing this @schornakj! I have just tested this in our current setup using the Zivid One+ 3D camera and yak_ros now loads the information from the camera_info topic.
I am not too familiar yet with this type of camera's but the Zivid only publishes the camera_info when taking a picture. For our setup, this means that I have to trigger at least one capture as soon as the camera node starts or otherwise it will use the default parameters.
If this is the standard for this type of cameras, would it be an idea to check for the existence of the camera_matrix before using ros::topic::waitForMessage? If the camera_matrix parameter does not exist then wait for the CameraInfo message for a longer duration.

Good point, I think the ROS nodes for other single-shot 3D cameras like Photoneo's PhoXi work similarly.
We could check in this order:

Wait a short time for a message to appear on the camera_info topic. If we receive one, use the contents to initialize the camera intrinsics and image size and then set the Kinfu params.
If waitForMessage times out, try to load the camera_matrix, rows, and cols ROS params. If we find them, get their values and use them to set the Kinfu params.
If the camera_matrix, etc. params are not set for the yak_ros node, then wait indefinitely for a message to be received on the camera_info topic or for all the parameters to be set.

I don't think we'd want to continue initializing the node with default camera intrinsics: if the camera matrix is wrong the reconstruction will be heavily distorted, and if the resolution is wrong I think it might crash with an out-of-bounds exception at some point.
This is a situation where it would be beneficial to not be required to set camera intrinsics when the node initializes and instead tie them to each new incoming image, as described in this comment and this yak issue.

We could check in this order:

Wait a short time for a message to appear on the camera_info topic. If we receive one, use the contents to initialize the camera intrinsics and image size and then set the Kinfu params.
If waitForMessage times out, try to load the camera_matrix, rows, and cols ROS params. If we find them, get their values and use them to set the Kinfu params.
If the camera_matrix, etc. params are not set for the yak_ros node, then wait indefinitely for a message to be received on the camera_info topic or for all the parameters to be set.

Yeah, that sounds great. Just a question, what would be the benefit of keeping step 1. instead of skipping it altogether?

I don't think we'd want to continue initializing the node with default camera intrinsics: if the camera matrix is wrong the reconstruction will be heavily distorted, and if the resolution is wrong I think it might crash with an out-of-bounds exception at some point.

Initializing without correct intrinsics would indeed not make much sense.

This is a situation where it would be beneficial to not be required to set camera intrinsics when the node initializes and instead tie them to each new incoming image, as described in this comment and this yak issue.

When using a single camera with static intrinsics it may be overkill, but it is definitely a nice addition in a multi-camera setup or other situations with changing intrinsics.

Yeah, that sounds great. Just a question, what would be the benefit of keeping step 1. instead of skipping it altogether?

I think it depends on how much we trust the user to set correct intrinsics as parameters vs. how much we trust the camera driver to publish accurate data on its camera_info topic. It would be reasonable to expect that a user who's trying to override the camera_info topic by explicitly setting parameters for the node is doing so with good reason, and that we'd want to let them do that without too much hassle.
Revised steps:

Try to load the camera_matrix, rows, and cols ROS params. If we find them, get their values and use them to set the Kinfu params.

If the camera_matrix, etc. params are not set for the yak_ros node, then use waitForMessage to wait indefinitely for a message to be received on the camera_info topic or for all the parameters to be set.


Dependency version conflict between azdev and azure-cli

Describe the bug
There is a warining when run azdev setup:
2023-12-06T03:54:59.8938523Z ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
2023-12-06T03:54:59.8939190Z pyproject-api 1.6.1 requires packaging>=23.1, but you have packaging 23.0 which is incompatible.
2023-12-06T03:54:59.8939599Z tox 4.11.4 requires chardet>=5.2, but you have chardet 3.0.4 which is incompatible.
2023-12-06T03:54:59.8939978Z tox 4.11.4 requires colorama>=0.4.6, but you have colorama 0.4.4 which is incompatible.
2023-12-06T03:54:59.8940368Z tox 4.11.4 requires packaging>=23.1, but you have packaging 23.0 which is incompatible.

I think we should find a way to regularly update the requirements.txt.
Related command
1
Errors
1
Issue script & Debug output
1
Expected behavior
1
Environment Summary
1
Additional context
No response

Thank you for opening this issue, we will look into it.


Tesseract give wrong result for this low quality image

Environment

Tesseract Version:  tesseract v<IP_ADDRESS>81030
Platform:  Windows 8.1 64 bit

Current Behavior:
I run tesseract for the blow image and get the result "ais"

Expected Behavior:
The expected result should be:
"CTx2
40/5A"
Suggested Fix:
Unknown

You should try by changing the tesseract config and applying some pre processing.
This is what I got
"Ctx
auy5n"
I know it is not perfect but still can be related.
my config: l-eng oem-3 psm-6
(oem-3 Default, based on what is available.
psm-6    Assume a single uniform block of text.)
Image processing: blurring, dilating, and normalizing
Tesseract Version:  tesseract v<IP_ADDRESS>81030
Platform:  Windows 10 64 bit
Cheers! :)

Hi PranavArora018,
Thanks for your suggestions.
Actually I'm having to perform OCR on a larger image with text segments in this quality (sorry that I could not provide the whole image here due to confidential problem).
So the config psm=6 may not work here.
Do you think retrain the tesseract model may help in this case?

Did you try image pre-processing. Looking at the image, you might use one of the following EmguCV methods

Dilation to sharpen the image.

Try with different parameters.
Please post the result if possible.

I am afraid it is not realist expectation to get correct output from bad input.
Even I am not sure if I see there 5A or SA...
When I check how tesseract segmented your image to symbols I got 3 overlapping boxes:

So there is not enough space to correctly split input image to symbols. Anyway with psm 11 and tessdata_bestI got output: 40/5 rest of image is ignored...


mission_raw missionitem

std::vectorMissionRaw::MissionItem reference_items;
MissionRaw::MissionItem new_raw_item_nav0;
new_raw_item_nav.seq = 0;
new_raw_item_nav.frame = MAV_FRAME_GLOBAL_RELATIVE_ALT; // MAV_FRAME_GLOBAL_RELATIVE_ALT_INT
new_raw_item_nav.command = MAV_CMD_NAV_TAKEOFF; // MAV_CMD_NAV_WAYPOINT
new_raw_item_nav.current = 1;
new_raw_item_nav.autocontinue = 1;
new_raw_item_nav.param1 = 0.0f; // Hold
new_raw_item_nav.param2 = 0.0f; // Accept Radius
new_raw_item_nav.param3 = 0.0f; // Pass Radius
new_raw_item_nav.param4 = 0.0f; // Yaw
new_raw_item_nav.x = -35.36326310;
new_raw_item_nav.y =<PHONE_NUMBER>0;
new_raw_item_nav.z = 50.0f;
new_raw_item_nav.mission_type = MAV_MISSION_TYPE_MISSION; // MAV_MISSION_TYPE_MISSION
MissionRaw::MissionItem new_raw_item_nav1;
new_raw_item_nav1.seq = 1;
new_raw_item_nav1.frame = MAV_FRAME_GLOBAL_RELATIVE_ALT; // MAV_FRAME_GLOBAL_RELATIVE_ALT_INT
new_raw_item_nav1.command = MAV_CMD_NAV_WAYPOINT; // MAV_CMD_NAV_WAYPOINT
new_raw_item_nav1.current = 0;
new_raw_item_nav1.autocontinue = 1;
new_raw_item_nav1.param1 = 0.0f; // Hold
new_raw_item_nav1.param2 = 0.0f; // Accept Radius
new_raw_item_nav1.param3 = 0.0f; // Pass Radius
new_raw_item_nav1.param4 = 0.0f; // Yaw
new_raw_item_nav1.x = -35.36326120;
new_raw_item_nav1.y =<PHONE_NUMBER>0;
new_raw_item_nav1.z = 50.0f;
new_raw_item_nav1.mission_type = MAV_MISSION_TYPE_MISSION; // MAV_MISSION_TYPE_MISSION

MissionRaw::MissionItem new_raw_item_nav2;
new_raw_item_nav3.seq = 2;
new_raw_item_nav3.frame = MAV_FRAME_GLOBAL_RELATIVE_ALT; // MAV_FRAME_GLOBAL_RELATIVE_ALT_INT
new_raw_item_nav3.command = MAV_CMD_NAV_WAYPOINT; // MAV_CMD_NAV_WAYPOINT
new_raw_item_nav3.current = 0;
new_raw_item_nav3.autocontinue = 1;
new_raw_item_nav3.param1 = 0.0f; // Hold
new_raw_item_nav3.param2 = 0.0f; // Accept Radius
new_raw_item_nav3.param3 = 0.0f; // Pass Radius
new_raw_item_nav3.param4 = 0.0f; // Yaw
new_raw_item_nav3.x = -35.36325940;
new_raw_item_nav3.y =<PHONE_NUMBER>0;
new_raw_item_nav3.z = 50.0f;
new_raw_item_nav3.mission_type = MAV_MISSION_TYPE_MISSION; // MAV_MISSION_TYPE_MISSION

MissionRaw::MissionItem new_raw_item_nav3;
new_raw_item_nav4.seq = 3;
new_raw_item_nav4.frame = MAV_FRAME_GLOBAL_RELATIVE_ALT; // MAV_FRAME_GLOBAL_RELATIVE_ALT_INT
new_raw_item_nav4.command = MAV_CMD_NAV_WAYPOINT; // MAV_CMD_NAV_WAYPOINT
new_raw_item_nav4.current = 0;
new_raw_item_nav4.autocontinue = 1;
new_raw_item_nav4.param1 = 0.0f; // Hold
new_raw_item_nav4.param2 = 0.0f; // Accept Radius
new_raw_item_nav4.param3 = 0.0f; // Pass Radius
new_raw_item_nav4.param4 = 0.0f; // Yaw
new_raw_item_nav4.x = -35.36325950;
new_raw_item_nav4.y =<PHONE_NUMBER>0;
new_raw_item_nav4.z = 50.0f;
new_raw_item_nav4.mission_type = MAV_MISSION_TYPE_MISSION; // MAV_MISSION_TYPE_MISSION

MissionRaw::MissionItem new_raw_item_nav4;
new_raw_item_nav5.seq = 4;
new_raw_item_nav5.frame = MAV_FRAME_MISSION; // MAV_FRAME_GLOBAL_RELATIVE_ALT_INT
new_raw_item_nav5.command = MAV_CMD_NAV_RETURN_TO_LAUNCH; // MAV_CMD_NAV_WAYPOINT
new_raw_item_nav5.current = 0;
new_raw_item_nav5.autocontinue = 1;
new_raw_item_nav5.param1 = 0.0f; // Hold
new_raw_item_nav5.param2 = 0.0f; // Accept Radius
new_raw_item_nav5.param3 = 0.0f; // Pass Radius
new_raw_item_nav5.param4 = 0.0F; // Yaw
new_raw_item_nav5.x = 0;
new_raw_item_nav5.y = 0;
new_raw_item_nav5.z = 0.0f;
new_raw_item_nav5.mission_type = MAV_MISSION_TYPE_MISSION; // MAV_MISSION_TYPE_MISSION

reference_items.push_back(new_raw_item_nav0);
reference_items.push_back(new_raw_item_nav1);
reference_items.push_back(new_raw_item_nav2);
reference_items.push_back(new_raw_item_nav3);
reference_items.push_back(new_raw_item_nav4);

The above is the route task uploaded by me, but the UAV did not complete the execution and was executed to new_raw_item_nav2. When the UAV started to return, it did not execute the waypoint new_raw_item_nav3. The code shows that the waypoint in new_raw_item_nav3 has been uploaded, but it was not executed. What is the reason for this? thank you!!!

I don't know without seeing a logfile. If you're using PX4, you can upload your logfile of the flight to logs.px4.io and then share the link here.

I don't know without seeing a logfile. If you're using PX4, you can upload your logfile of the flight to logs.px4.io and then share the link here.

used APM,That's a strange question

Ok, I'm not sure how to debug it then. Surely, you have some sort of log that tells you what was going on? Could it be that the waypoints are very close together and it "reached" both very rapidly?


VersionCatalogUpdateTask fails with configuration cache enabled

Describe the issue
VersionCatalogUpdateTask fails when configuration cache is enabled in gradle.properties when running the task using command ./gradlew versionCatalogUpdate
Steps to reproduce
Enable configuration cache in a project by adding the line below in the gradle.properties file:
org.gradle.unsafe.configuration-cache=true and run the previously mentioned task. Using Gradle 7.6.
Workaround
Add below code in the build.gradle.kts root file:
tasks.withType<nl.littlerobots.vcu.plugin.VersionCatalogUpdateTask> {
  notCompatibleWithConfigurationCache("Temporary until plugin supports configuration cache")
}

I hope there will be an update to be able to skip above workaround.

What is the exact error you are getting? Past issues around this pointed to the dependency versions plugin not being compatible, but that may have changed. I quickly tried to reproduce this using an included build but I got unrelated issues trying that. If you can supply a small project that reproduces that issue it would be very much appreciated 🙏

If you are able to try the 0.7.1-SNAPSHOT build to verify that would be awesome. It looks like the versions plugin still gives a warning with configuration cache though.
While testing I had a few weird moments where it looks like the reports are empty when running the dependencyVersions step resulting in an empty toml file (if you are not keeping unused dependencies), but I haven't been able to reproduce this consistently, so YMMV.

I gave it a try and it the task completed successfully the first time it ran but with the following warnings:
3 problems were found storing the configuration cache, 2 of which seem unique.
- Task `:dependencyUpdates` of type `com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask`: cannot serialize Gradle script object references as these are not supported with the configuration cache.
  See https://docs.gradle.org/7.6/userguide/configuration_cache.html#config_cache:requirements:disallowed_types
- Task `:dependencyUpdates` of type `com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask`: invocation of 'Task.project' at execution time is unsupported.
  See https://docs.gradle.org/7.6/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution

Running it a second time resulted in Build failed with the following message:
10 problems were found storing the configuration cache, 3 of which seem unique.
- Task `:dependencyUpdates` of type `com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask`: cannot serialize Gradle script object references as these are not supported with the configuration cache.
  See https://docs.gradle.org/7.6/userguide/configuration_cache.html#config_cache:requirements:disallowed_types
- Task `:dependencyUpdates` of type `com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask`: invocation of 'Task.project' at execution time is unsupported.
  See https://docs.gradle.org/7.6/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution
- Task `:versionCatalogUpdate` of type `nl.littlerobots.vcu.plugin.VersionCatalogUpdateTask`: invocation of 'Task.project' at execution time is unsupported.
  See https://docs.gradle.org/7.6/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution

Nevermind. The task replaced the 0.7.1-SNAPSHOT version with the 0.7.0 version (as I didn't pin it during my tests) and that's why it failed the second time around.

😬
Thanks for testing! I'll probably release this next week.


Testing GET /api/chat/history/{session_uuid_id}

Dependes on API of chat history
cc @Micost

The chat history should be ordered in specific order, here is descending order. Please although consider add date time, so we can order by date time. cc @Micost


.Net Standard v2.0 is not recognised as being the same as .Net Framework v4.6.1

VS 2019 community edition, I get this error on a class library that is set up to use .Net Standard v2.0  My understanding (which may well be wrong) is that .Net Standard 2.0 is a wrapper around (among other things) the .Net Framework library v4.6.1.  So in this case is the error message misleading?

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

ID: 377ae860-386f-149f-c5e0-410d3aa89dbc
Version Independent ID: 2b145147-fd3f-d1aa-2694-071a31542d9a
Content: NuGet Errors and Warnings Reference
Content Source: docs/reference/errors-and-warnings/NU1701.md
Product: nuget
GitHub Login: @zhili1208
Microsoft Alias: lzhi

Hey @overfilledwaistcoat,
The specific code that you linked is a warning only. It might have gotten elevated to an error if you have TreatWarningsAsErrors (it's possible that your project template has it).
netstandard2.0 is a subset of what net461, you can read more about it here.
https://docs.microsoft.com/en-us/dotnet/standard/net-standard


We should document our YAJL dependency

Just tried to run UTs; got this error:
ERROR: Failure: YAJLImportError (YAJL shared object not found.)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/alexwlchan/calico/.tox/py27/local/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
    addr.filename, addr.module)
  File "/home/alexwlchan/calico/.tox/py27/local/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/home/alexwlchan/calico/.tox/py27/local/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/home/alexwlchan/calico/calico/etcddriver/test/test_driver.py", line 34, in <module>
    from calico.etcddriver import driver
  File "/home/alexwlchan/calico/calico/etcddriver/driver.py", line 50, in <module>
    from ijson.backends import yajl2 as ijson
  File "/home/alexwlchan/calico/.tox/py27/local/lib/python2.7/site-packages/ijson/backends/yajl2.py", line 14, in <module>
    yajl = backends.find_yajl(2)
  File "/home/alexwlchan/calico/.tox/py27/local/lib/python2.7/site-packages/ijson/backends/__init__.py", line 19, in find_yajl
    raise YAJLImportError('YAJL shared object not found.')
YAJLImportError: YAJL shared object not found.

Fix was to run apt-get install libyajl2, but that's not documented anywhere in our install or UT instructions. We should fix that.

Our debs and RPMs should depend on it and install it automatically.  Do we have any developer instructions to update?

I know of the UT instructions in the README; just wanted to double-check there's nothing else I haven't thought of.


fix(rpc test): favor API v1 compatibility over v0

Summary of changes

Part of #4424 investigation
Changes introduced in this pull request:

favor API v1 compatibility over v0 until #3960 is resolved.

Reference issue to close (if applicable)

Closes
Other information and links

Change checklist

[x] I have performed a self-review of my own code,
[x] I have made corresponding changes to the documentation,
[x] I have added tests that prove my fix is effective or that my feature works (if possible),
[x] I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

The CI failures show that StateSectorPreCommitInfo and StateWaitMsg are the only 2 methods that are v1-incompatible (there still might be cases not covered by the parity test suite though)

@hanabi1224 what do we do with this draft?


feat: update zone defs to latest

This PR incorporates the following changes to zone definitions:

Removed TrackMovementParams
Moved max velocity property to map-level
Bonus tracks can have zones OR defrag flags
Main track and bonus tracks no longer inherit from TrackBase

No longer relevant, these are stored in our repo now.