dataset

I can't  get the dataset form the path of  drive.google.com ,i have sent the request ,could you please email me

Hello,
Fixed!
And there is a new public path:
https://drive.google.com/drive/folders/1IrdoJmwhai2UzGyjDF4d_0ovCWsEA49b
On Wed, Apr 7, 2021 at 9:35 AM Brynn @.***> wrote:

I can't get the dataset form the path of drive.google.com ,i have sent
the request ,could you please email me at @.***
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/VascoLopes/AutoClassifier/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGHY6D6R5BJF2MKLVNKO2CTTHQKOVANCNFSM42QKJJCA
.

hello，could you please send me the models.zip, thankyou very much!
---Original---
From: @.>
Date: Wed, Apr 7, 2021 17:00 PM
To: @.>;
Cc<EMAIL_ADDRESS>Subject: Re: [VascoLopes/AutoClassifier] dataset (#1)
Hello,
Fixed!
And there is a new public path:
https://drive.google.com/drive/folders/1IrdoJmwhai2UzGyjDF4d_0ovCWsEA49b
On Wed, Apr 7, 2021 at 9:35 AM Brynn @.***> wrote:
> I can't get the dataset form the path of drive.google.com ,i have sent
> the request ,could you please email me at @.***
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/VascoLopes/AutoClassifier/issues/1>, or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AGHY6D6R5BJF2MKLVNKO2CTTHQKOVANCNFSM42QKJJCA>
> .
>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

There are no models.zip. The models are obtained using the import
torchvision.models, and import pretrainedmodels
On Wed, Apr 7, 2021 at 10:46 AM Brynn @.***> wrote:

hello，could you please send me the models.zip, thankyou very much!
---Original---
From: @.>
Date: Wed, Apr 7, 2021 17:00 PM
To: @.>;
Cc<EMAIL_ADDRESS>Subject: Re: [VascoLopes/AutoClassifier] dataset (#1)
Hello,
Fixed!
And there is a new public path:
https://drive.google.com/drive/folders/1IrdoJmwhai2UzGyjDF4d_0ovCWsEA49b
On Wed, Apr 7, 2021 at 9:35 AM Brynn @.***> wrote:
> I can't get the dataset form the path of drive.google.com ,i have
sent
> the request ,could you please email me at @.***
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/VascoLopes/AutoClassifier/issues/1>, or
unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/AGHY6D6R5BJF2MKLVNKO2CTTHQKOVANCNFSM42QKJJCA>
> .
>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/VascoLopes/AutoClassifier/issues/1#issuecomment-814774768,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGHY6D4NL4PK2YX66NKZZXLTHQSY5ANCNFSM42QKJJCA
.

I'll close the issue as it has been fixed.


Collections Interface

This PR introduces an interface for Token Collections. With this interface, on-chain programs can create groups of tokens - dubbed "Collections" - that identify members of such a group through parent-child relationships.
Note: This interface is almost identical to the SPL Token Editions interface #4821 , but with some slight differences that are described in the README.md

Closing in favor of #5036 !


Update Docs: req.header() is now req.set()

Hope this helps the next person, including future me, to not fall for this deprecated method again. :smiley:
Great library! Thanks for all the effort that goes into this project!

Released in v7.1.0 to npm
https://github.com/visionmedia/superagent/releases/tag/v7.1.0


Timestamp audit

A lot of places in control.cpp seem to be using timestamps very arbitrarily, and this needs a thorough audit. Opening this issue to track down all places.

We need to differentiate more clearly between sensor disconnection (stale/old data) and sensor use inhibited due to failing checks. Currently these are used interchangeably. Additionally, a lot of comments are outdated and misleading.

The use of timestamps has improved with the use of standardised helper functions.


feat(Table): New story for custom filters

Changes
I added a story that uses a custom column filter. A user asked if this was possible so I went ahead and made an example for them and anyone in the future interested in it.

This was the alternative method I initially used to make a manual filter to go alongside the manual paginator when I updated the manual paginator story, so I'm happy that a version of it is going to be useful. This version is simplified and doesn't have a paginator. Users can combine it with the manual paginator story if they need that.
Testing
Added a new test image.
I clicked around on the example and made sure that everything worked as I intended.
Docs
Added a new storybook.

The user asked for something else, so this story is no longer necessary.

The user asked for something else, so this story is no longer necessary.

@mayank99 True, but it's still an example for something we don't already have.


kata-packages-uvm-coco: add e2fsprogs dependency

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[x] If you are adding/removing a .spec file that has multiple-versions supported, please add @microsoft/cbl-mariner-multi-package-reviewers team as reviewer (Eg. golang has 2 versions 1.18, 1.21+)
[ ] Ready to merge

Summary

See commit message.
Does this affect the toolchain?

NO
Test Methodology

Kata conformance: https://dev.azure.com/mariner-org/mariner/_build/results?buildId=612448&view=results

To create 3.0 PR still.


Small nits

Random small nits

@bracesproul feel free to merge without review for these things , prefer moving fast right now since there's no actual UI that's live


Add service, aop and logging in limits service

My plan is to delete this limits service and add config server with rest-api


mermaid.min.js is not found if the tool is bundled into an exe

Workaround for now: copy the mermaid.min.js file next to the executable, so it'll find the JavaScript in case of using -m option.

Thanks - that should be easy to fix
Get Outlook for iOShttps://aka.ms/o0ukef

From: József Kanczler<EMAIL_ADDRESS>Sent: Monday, July 27, 2020 1:33:14 PM
To: MaxMelcher/AzureDevOps.WikiPDFExport<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [MaxMelcher/AzureDevOps.WikiPDFExport] mermaid.min.js is not found if the tool is bundled into an exe (#23)
Workaround for now: copy the mermaid.min.js file next to the executable, so it'll find the JavaScript in case of using -m option.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/MaxMelcher/AzureDevOps.WikiPDFExport/issues/23, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAH3LN4ULJPMZWNUXDFE4D3R5VQXVANCNFSM4PIVNXCA.

Yep, but I've created this issue to discuss the options.
I would prefer a new option too, --mermaid-path to be able to use a newer or older version of mermaid.js, if the consumer would like to this.
And if --mermaid-path is not defined, then the embedded can be used.
What do you think?

I'd say --mermaidjs-path follows the logic of --chrome-path. If not specified, download it.
Another option could be to link to the online version here:
var mermaid = $"<script>{File.ReadAllText("mermaid.min.js")}</script>";
and replace it with
var mermaid = $"<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.6.4/mermaid.js"></script>";
what you think?

Looks good for me. I'm going to implement it tonight and create a pull request.

Awesome 😎
Get Outlook for iOShttps://aka.ms/o0ukef

From: József Kanczler<EMAIL_ADDRESS>Sent: Tuesday, July 28, 2020 3:49:25 PM
To: MaxMelcher/AzureDevOps.WikiPDFExport<EMAIL_ADDRESS>Cc: Max Melcher<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [MaxMelcher/AzureDevOps.WikiPDFExport] mermaid.min.js is not found if the tool is bundled into an exe (#23)
Looks good for me. I'm going to implement it tonight and create a pull request.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/MaxMelcher/AzureDevOps.WikiPDFExport/issues/23#issuecomment-665051584, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAH3LN3RJDHAGWURS2M6Z53R53JOLANCNFSM4PIVNXCA.


An exception error occurred during the report import:A string literal cannot contain NUL (0x00) characters.

Hi,

I would like to import the "Netsparker Scan" report from the Import scan page.

When it tries to load the report, I get an error because the "Url" value is null.
https://en.wikipedia.org/wiki/Null_character (Since this is the URL where the vulnerability was proven, we think it should be imported.)

Encode URL : http://php.testsparker.com/process.php?file=http%3A%2F%2Fr87.com%2Fn%3F.nsp
Decode URL : http://php.testsparker.com/process.php?file=http://r87.com/n? .nsp

It loads up to the null character object in the list. But when it comes to the object with null character, it does not load the next objects by giving an error.
Note : Regarding this, some of our customers have problems in importing the report.
Example File :
invicti-vuln-report.zip
"LookupId": "8eddcaa0-7e18-4c2f-5eca-ae080285d9e0",
When I try the same URL on the "Add Endpoint" page, I get 500 Server Error.
Thanks.

thanks, we'll send our customer to upgrade to version 2.8.0 and try again.


nedit 5.6 (new formula)

@BrewTestBot test this please

Just a small thing:
==> audit problems
homebrew/x11/nedit:
 * Please remove the indefinite article "A" from the beginning of the description
`1`

Done removing the indefinite article "A" from the beginning of the description

Ping re Dom’s comment above.

@BrewTestBot test this please

Merged. Thank you for your contribution to Homebrew!


Overhaul the rust thrift library

The major changes are:
- Concrete impls of Transport have been removed in favor of a blanket implementation.
- Implement standard error handling idioms, including implementations of std::error::Error for all error types.
- Various renames to bring things in line with idiomatic rust.
- Change the Protocol trait to use static calls rather than virtual dispatch.
- Allow Protocol's to mutate an internal state by changing the trait methods to receive &mut self.
- Processor::process now receives &self ahead of a multithreaded server implementation.
This can't be landed as-is since there need to be accompanying changes to the code generator, but I wanted to solicit feedback on these changes first. I also have a multithreaded server ready to be PRed based on this branch, which you can see here.

Apparently Github only shows the context for comments on the pull request itself, not the actual commits. That's annoying :/
Thanks for the pull request! Overall these changes look great to me, we'll wait for @maximg to chime in with any other comments.
I'm not sure about the Encode/Decode rename. While Read/Write aren't ideal either, they at least express that data is being written (and possibly sent) on the transport, not just encoded/decoded and waiting to be sent.
@maximg Can you push the benchmark you were using so we can see how changes like these affect performance?

Thanks for the PR! Will go over it this evening. Just committed the benchmark so feel free to compare.

I am looking to make some changes to the code generator to merge these changes as well as add support for more of thrift, notably exceptions. However, I am a novice C++ programmer so it's taking me some time to become familiar with the generator - if either of you has a minute I'd love to chat a little about the code to help me get productive faster.

Feel free to ping me on IRC.

For exceptions could you make sure to check with @gsingh93 - he is working on them already. I'll be happy to chat on skype (maxim.golov)

I've pushed another commit adding a BufferedTransportServer wrapper which causes the yielded Transports to be wrapped in a BufStream. I think it makes sense to provide this as part of the library since it's a major performance gotcha.

We may even want to integrate BufStream into the impl of TransportServer for TcpListener so the simple thing (passing a TcpListener as your TransportServer) does the right thing.

The buffered transport looks good, but I don't think it's necessary to add it to the TcpListener impl. We're going to eventually follow the same pattern as the other libs and uses a factory (example), which will require the user to pass in a factory instead of a transport. The most basic factory will be a buffered factory, so the user shouldn't run into any surprises with their stream not buffering.
Also, I think TransportServer should be changed backed to ServerTransport. This is what the other libraries use, as well as the original thrift whitepaper. It does make sense, as it's the transport the server uses to talk to the client, it isn't the server itself (although both interpretations somewhat make sense).

Ok, I can change it back.


fixing has_one cache to use get_one rather byID

This helps becuase it uses the get_one internal Dataobject cache

@wilr do you have time to look at this one? :)

@wilr I'm gonna be presumptuous and merge this one ;-)


Static error page for when something goes really, really wrong

Hello there! 👋
I have searched the internet (Google, Stack Overflow, GitHub) for a solution to my problem, but I wasn't able to find one.
I would like to generate a fully static error page - that is a page that would be served in production when my API is unreachable.
At the moment, whenever the API is down I get the default error stack page, and I cannot, for the life of me, figure out how to customize it:

This is different than the error page template in layouts/ directory. I need an error page for when things are so bad, that Nuxt.js is literally unable to render anything. I was hoping that maybe the Nuxt.js Axios Module will have a fallback option or something similar, but I could not find anything at all.
More detail on what is my setup and what I am trying to achieve:
package.json
"@nuxtjs/axios": "^5.13.6",
"nuxt": "^2.15.8",

layouts/error.vue
<template>

Page not found

Sorry, something went wrong.

</template>

I've got a couple of actions dispatched from the Vuex store as well:
store/index.js
export const actions = {
  async nuxtServerInit({ dispatch }) {
    await dispatch("fetchMenuItems");
    await dispatch("fetchStaticPages");
  },
}

Now, even when I remove these actions entirely, and when the API is down, Nuxt.js still throws the connect ECONNREFUSED <IP_ADDRESS>:7331  error. I think this is because Nuxt.js Axios Module is trying to create an Axios instance, pointing to a URL which is unavailable. So I added onError interceptor, in which I redirect the user to  the pages/offline.vue page - which kind of works - the redirect is successful, but the page cannot be rendered by Nuxt.js becuase Axios throws an error, so I end up with the same connect ECONNREFUSED <IP_ADDRESS>:7331  message... feels like a Catch-22.
Now, I guess I could create a static HTML file and redirect to that, but is there really not a better way to handle errors like this?
Or maybe I missed something in the documentation? Is what I am trying to achieve possible?
PS. Please delete if you don't feel like this will be useful to anyone, but before doing that, please point me in the right direction 🙏

What you're seeing in the screenshot is the dev error page for debugging purposes. After running the production build, there will be a static HTML view that will be served for 500 errors. It is located at .nuxt/views/error.html. You can replace it with your own HTML before deploying your production app if you want.
A little more advanced, but we define a route that points to the error template in layouts/. Part of the deployment process requests this route and saves the result as the .nuxt/views/error.html file for the current deploy. I will agree it would be nice if as part of the Nuxt build process, it did this automatically and generated the error HTML based off the layout you define instead of the default markup.

We are approaching the Nuxt 2 EOL date (June 30, 2024) - see this article for more information. I'm closing this issue as it's marked as a Nuxt 2 related enhancement and it's not a critical issue.
That doesn't mean it might not be relevant for Nuxt 3. If it is, please feel free to open a new issue (or just comment, and I can reopen it). 🙏
Thank you for your understanding and for your contribution to Nuxt! 🎉


add DeployIfNotExists policy bicep example

DeployIfNotExists Policy with Initiative and Assignment
Addresses sample request from issue #1231
Resources Deployed:

1x Resource Group
1x Action Group
1x Policy Definition with DeployIfNotExists effect for a Metric Alert v2 (Load Balancer - DipAvailability)
1x Policy Initiative (policyset)
1x Policy Assignment

Authored & Tested with:

azure-cli version 2.20.0
bicep cli version 0.3.1 (d0f5c9b164)
bicep 0.3.1 vscode extension

Example Deployment steps
az login
az bicep build -f ./main.bicep
az deployment sub create -f ./main.bicep -l australiaeast

Contributing to documentation

[x] The contribution does not exist in any of the docs in either the root of the docs directory or the specs

Contributing an example

[x] I have checked that there is not an equivalent example already submitted
[x] I have resolved all warnings and errors shown by the Bicep VS Code extension
[x] I have checked that all tests are passing by running dotnet test
[x] I have consistent casing for all of my identifiers and am using camelCasing unless I have a justification to use another casing style

Contributing a feature

[ ] I have opened a new issue for the proposal, or commented on an existing one, and ensured that the Bicep maintainers are good with the design of the feature being implemented
[x] I have included "Fixes #{issue_number}" in the PR description, so GitHub can link to the issue and close it when the PR is merged
[ ] I have appropriate test coverage of my new feature

@jesseloudon FYI we just updated the names of some required build steps. You may need to sync the main branch to unblock merging.

@jesseloudon FYI we just updated the names of some required build steps. You may need to sync the main branch to unblock merging.

@shenglol thanks for the heads-up, would you have git cmdlets handy so I can run this? I don't want to stuff it up 😄

Yes. Here are the git commands:
git fetch upstream
git merge upstream/main

Yes. Here are the git commands:
git fetch upstream
git merge upstream/main

I needed to do git remote add upstream https://github.com/Azure/bicep 1st

But I don't know why CI is failing :) @anthony-c-martin / @majastrz  /@shenglol - can you take a look?

Looked like a versioning failure. Usually goes away on retry.

Just restarted the build.

But I don't know why CI is failing :) @anthony-c-martin / @majastrz /@shenglol - can you take a look?

The baselines need updating with the template hash.
@jesseloudon we have a github action to fix this up if you feel like trying it out:

You would need to run this in your fork repo ("Actions" -> "Update Baselines" -> "Run Workflow"), and choose your branch under "Use workflow from"
Alternatively, to fix manually - see https://github.com/Azure/bicep/blob/main/CONTRIBUTING.md#updating-test-baselines.

But I don't know why CI is failing :) @anthony-c-martin / @majastrz /@shenglol - can you take a look?

The baselines need updating with the template hash.
@jesseloudon we have a github action to fix this up if you feel like trying it out:

You would need to run this in your fork repo ("Actions" -> "Update Baselines" -> "Run Workflow"), and choose your branch under "Use workflow from"
Alternatively, to fix manually - see https://github.com/Azure/bicep/blob/main/CONTRIBUTING.md#updating-test-baselines.

Great, completed the update baseline workflow

Closed + reopened to trigger the build flows

Codecov Report

Merging #1763 (3dda7b6) into main (f87fd5f) will increase coverage by 0.37%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1763      +/-   ##
==========================================
+ Coverage   95.03%   95.41%   +0.37%
==========================================
  Files         371      367       -4
  Lines       21692    21530     -162
  Branches       15        0      -15
==========================================
- Hits        20615    20542      -73
+ Misses       1077      988      -89

Flag
Coverage Δ

dotnet
95.41% <ø> (-0.07%)
:arrow_down:

typescript
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

.../Bicep.Core.UnitTests/Assertions/BaselineHelper.cs
63.63% <0.00%> (-15.91%)
:arrow_down:

...cep.Core.UnitTests/FileSystem/FileResolverTests.cs
88.23% <0.00%> (-8.83%)
:arrow_down:

src/Bicep.Core/FileSystem/PathHelper.cs
96.15% <0.00%> (-3.85%)
:arrow_down:

src/Bicep.Core.UnitTests/Utils/OutputHelper.cs
96.55% <0.00%> (-3.45%)
:arrow_down:

src/Bicep.Core.UnitTests/Utils/CompilerFlags.cs
33.33% <0.00%> (ø)

...Bicep.Core.UnitTests/FileSystem/PathHelperTests.cs
100.00% <0.00%> (ø)

src/vscode-bicep/src/utils/telemetry.ts

src/vscode-bicep/src/language/client.ts

src/vscode-bicep/src/utils/logger.ts

src/vscode-bicep/src/extension.ts


Added delete_engine_wait function that completes once an engine is completely deleted

The work is postponed because during the implementation we realized that it requires more design from both the API service and SDK point of view.


Focus shifts from terminal to editor unexpectedly after "git merge --abort"

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

Version: 1.72.0-insider (user setup)
Commit: 1a55beb2aaee64eb8d0cbe5b61b10088bbc6c895
Date: 2022-09-13T05:18:15.280Z
Electron: 19.0.12
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22000
Sandboxed: Yes
Steps to Reproduce:

After attempting a merge, I did "git merge --abort" from the terminal in VS Code.
Once the command completed, I had another git command to run so I started typing it, assuming focus was still in the terminal. I was surprised to see though that focus had shifted to the editor after the git merge --abort command and that instead of typing my command in the terminal, I ended up modifying the editor.

I expected that focus would remain in the terminal after the git merge --abort command.

@stevencl, does this happen with any other git commands or only git merge --abort?

I also saw this when testing merge editor and think this is relevant only for merge editors.

I haven't done extensive testing of many git commands but git merge --abort is the only one I have seen so far that does this.

I also saw this when testing merge editor and think this is relevant only for merge editors.

@hediet, @jrieken is this something that you could look into? Thanks!

likely because of the workaround for https://github.com/microsoft/vscode/issues/155940. The merge editor detect the inputs (current, incoming, base) going empty and closes itself. I guess we don't tell the workbench to preserve focus then which happens somewhere here

@bpasero Upon inspection I now wonder if there is a way to replace editors (via replaceEditors) while preserving focus?

@jrieken you can pass in editor options with the replace call, can you try passing preserveFocus: true via:
https://github.com/microsoft/vscode/blob/c6698eacedf365c2f152f1df85a79bd6da71fa02/src/vs/workbench/services/editor/common/editorGroupsService.ts#L106


NC: Update to Python 3.10

[x] Update Minimum Python version in file pyproject.toml
[x] Update dependencies poetry update
[x] Update Matrix build definitions in files in .github/workflows

Dependencies

ai-lab

notebook-connector (NC)

sagemaker-extension (SME)

git: python-extension-common (PEC)

transformers-extension (TE)

git:python-extension-common

bucketfs-python

saas-api-python
pyexasol

Situation and Strategy

The dependencies from NC to SME and TE

In the past were using git references
I change to pypi references

Dependencies from SME and TE to PEC

still are using git references
need to be changed to pypi, first

PEC first of all needs to be published to pypi

Currently, the build reports a linter problem:

exasol/nb_connector/sagemaker_extension_wrapper.py:61:15:
E1123: Unexpected keyword argument 'language_alias' in classmethod call (unexpected-keyword-arg)
https://github.com/exasol/notebook-connector/actions/runs/9483294066/job/26130222333?pr=117

Method SmeLanguageContainerDeployer.create() is inherited from LanguageContainerDeployer.create() in PEC and should support this keyword argument.


Nack messages when MessageStream is dropped

Currently the "prefetched/buffered" messages that are in the MessageStream queue are silently dropped when MessageStream is dropped which causes the messages to be retried only after stream_ack_deadline_seconds passes and message is retried by PubSub.
This doesn't work well in low latency scenarios when a process needs to be restarted, e.g. deploying a new app version.
Ideally, we would have an option to:

stop the stream (e.g. stop receiving new messages from PubSub streaming pull) and
nack (or process) all the remaining messages from the queue

which would support cases where an app graceful shutdown is important.

Both examples seem more or less the same, so not sure what's the difference supposed to be. In any case, this looks exactly what I'm looking for, so :+1:  from me.

thank you @yoshidan


Don't set top_k when running hugie endpoint test (fixes #48)

Description
Fixes #48 by removing the top_k parameter from hugie endpoint test.
Checklist

[ ] Tests added
[ ] Relevant issue mentioned
[ ] Documentation updated

Dont forget to tick the checklist


relativePath not handling "." and ".." correctly

cromfr reported this on 2014-12-07T00:12:57Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=13825
CC List

dechcaudron+issues.dlang
greensunny12
hsteoh

Description
It seems that relativePath handles "." and ".." as folders names instead of using them as "paths".
This leads to situations like "/home/../" is a subdirectory of "/home"

Use case:

import std.path;
import std.stdio;

void main(){
	//Gives ".." instead of "."
	writeln( relativePath("/", "/./") );

	//Gives "../.." instead of "."
	writeln( relativePath("/home", "/home/../home") );
}

cromfr commented on 2014-12-07T00:21:21Z
my current workaround is to call buildNormalizedPath on each argument of relativePath, but there is still an issue if the first path starts with "../"

dechcaudron+issues.dlang commented on 2018-10-13T12:35:43Z
Hi Thibaut,

I'm taking this one. The same behavior is exhibited on the range returned by "asRelativePath". At a first glance, the proposed fix will indeed be to indeed call "buildNormalizedPath" on each of the arguments, but I need to look into memory allocation considerations.

Regarding your last comment:
> but there is still an issue if the first path starts with "../"

Even though the docs do not explicitly mention so, I believe the first argument is expected to be an absolute path (otherwise, you would be changing an out-of-context relative path into another relative path, which looks like a bad idea to me). Perhaps it would be a good idea to add a contract on both parameters (but that is a breaking change that I assume would require a deprecation period, let's see what the maintainers say). Thus, a first argument that starts with ".." would fall out of this category.

Regards,
Dechcaudron

dechcaudron+issues.dlang commented on 2018-10-14T10:06:35Z
Okay, so I've been mulling on it for the last day. Before I move in to make any changes, here are some questions I'd like to get some discussion going around:

1) Does it make sense that the first argument to the `relativePath` and `asRelativePath` functions can be already relative? Personally I find that to be a bad idea, but you may have a valid counterpoint (please, provide use case).

2) Currently, the "second argument must be an absolute path" claim is exposed in the functions' documentation, and only in `relativePath` is it enforced via throwing an exception (`asRelativePath` merely assumes so). Regardless of the outcome of question 1), would if make sense to remove the exception from `relativePath` and add a check for `isAbsolute(path)` as an input contract? I understand this is a breaking change, so please see 4).

3) The root cause of this issue does not seem to be other than the arguments not being normalized. As the reporter stated, calling `buildNormalizedPath` on both arguments fixes the issue (bar for the first argument starting with "../", see 1)). A quick and dirty fix would be to naively call such function on the arguments within both `relativePath` and `asRelativePath`, but that would be wasteful if the paths are already normalized. It makes sense to me that we add a contract on both input arguments to require they are normalized. As of today, we do not have any `isNormalized` function, but it could be added. Would that make sense? Again, breaking changes, please see 4).

4) Since 2) and 3) both imply breaking changes in the behavior of the function (or rather, as I am suggesting, the ability to terminate the program via `assert` when the arguments violate the stated requirements) I understand the way to go would be to begin a deprecation process. Since the signature of the function does not need to change, the process is not as straightforward as I'd like. I would propose the following:
  1. Create the `relativePath(bool useContracts, CaseSensitive cs = CaseSensitive.osDefault)` template, which `static if`s `useContracts` to determine whether to define the `relativePath` function with the new behavior if true, or to define the deprecated function with the legacy behavior if false. The legacy function would call the template function with `false`, to trigger the deprecation warning. Proceed the same way with `asRelativePath`.
  2. Once the deprecation period expires, move the definition of the new behavior with contracts to the legacy function declaration, deprecate the `useContracts = true` declaration (which by then would forward to the legacy signature function) and remove the `useContracts = false` declaration.
  3. Once the deprecation period for the template expires, remove it and keep the legacy signature function with contracts.
  4. My grand-grandkids will close the issue.

Thoughts?


fix: Correct CORS issues on Django Admin assets

Description
Fixes #174
Note: Before submitting a pull request, please open an issue for discussion if you are not associated with Google.
Checklist

[ ] Added steps to reproduce the changes in this pull request
[ ] Added relevant testing in this pull request
[ ] Please merge this PR for me once it is approved.

Not a bug. See #174


GitHub #672 Allowing setting negative XMPP priority

Tested on Nexus 4 Lollipop 5.1.1 (Hardware) and Nexus S 4.3.1 (Emulator.)  The keyboard that pops up now has a negative sign available, but blocks anything but digits and the negatives sign from being entered.

Looks like it's been about 3 months.  Any response to this?


xgboost: clarify docs: make it easier to add metrics to an existing project

I went through the process of instrumenting an XGBoost model with DVCLive, following our docs.
Where I got stuck was figuring out how to add additional metrics. The default metric was RMSE, but I'm not sure how this was chosen or how to swap in a different metric (e.g. accuracy or ROC AUC).
Is it possible to add a button somewhere that makes it easier to do this?

Thanks for trying this out @djsauble! Improving the framework integrations and docs around them is exactly what we need in dvclive, so if you have time and want to help out, it's much appreciated. Xgboost hasn't been updated in a long time and would be a useful framework to update.
Regarding parameters, there's unfortunately not support for them for xgboost yet (see https://github.com/iterative/dvclive/issues/317), although it's another top priority.
Regarding metrics, a more end-to-end example and link to the relevant xgboost docs (although it's unfortunate I don't see any direct hyperlink to eval_metric in their docs) would be really helpful to add to the docs. There is a decent example in the comet docs: https://www.comet.com/docs/v2/integrations/ml-frameworks/xgboost/#end-to-end-example.

https://github.com/iterative/dvc.org/pull/4917


Rely: pretty printing boolean values

Right now when doing:
expect.equal(
  {userId: 1, id: 3, title: "fugiat veniam minus", completed: false},
  {userId: 1, id: 3, title: "fugiat veniam minus", completed: true},
);

we receive such error:
 expect.equal(expected, received) /* using == */

    Expected value to equal:
      {1, 3, "fugiat veniam minus", 0}
    Received:
      {1, 3, "fugiat veniam minus", 1}

It would be nice to print boolean values as true or false which is easier to spot and distinguish from int.

@jordwalke is this something we can fix in Console? Or are we unable to distinguish booleans there?

@kyldvs It seems there is no such thing as Obj.bool_tag or something similar. I hope I'm wrong.

I also believe that we can't distinguish bools from int in our polymorphic printer unfortunately (which is in fact looking at object tags).

What if we were to always print both options? 0 (false) or 1 (true) when printing ints with those values?

@kyldvs I think bools, polymorphic variants, and ordinary variants are all expressed as ints.


systemd-boot-builder.py can take minutes to run when /nix/store contains many elements

Describe the bug
Because systemd-boot-builder.py gets stored straight up as /nix/store/....-systemd-boot (as a file in /nix/store), Python imports will crawl through the whole /nix/store directory to try and find local .py files that can be imported. This can take very long and a lot of RAM.
We hit into this on rhea.nixos.org which has 40M entries in its /nix/store right now, causing systemd-boot-builder.py to take 5-10minutes and 10GB of RAM to execute.
Steps To Reproduce
Steps to reproduce the behavior:

Fill up your /nix/store with a LOT of entries
Switch to a new configuration with systemd-boot as the configured bootloader.

Expected behavior
Switching to a new configuration doesn't take 5+ minutes and 10GB of RAM, but is instead near-instantaneous.
Screenshots
n/a
Additional context
Stack trace taken 1min into the execution of the script showing it's stuck trying to import stuff:
Traceback (most recent call last):
  File "/nix/store/741fq6239vz49kcm6r2l4x3fk4v67q20-systemd-boot", line 3, in <module>
    import shutil
  File "/nix/store/h31x3zrwrws1c3392919br8g9isvhh4x-python3-3.10.13/lib/python3.10/shutil.py", line 22, in <module>
    import bz2
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1002, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 945, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1439, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1411, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1548, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1591, in _fill_cache
KeyboardInterrupt

Notify maintainers
@JulienMalka
Metadata
This is on NixOS 23.05 but I don't see any change that would impact this in 23.11 or master. Would love a backport all the way to 23.05 if possible since we still haven't updated rhea.nixos.org :)

Add a :+1: reaction to issues you find important.

Just to track the backport.

Maybe needs to be spinned of into a separate issue, but I think there are more Python scripts affected by this, such as auto-patchelf.py or catch-conflict.py.
Quick search:
find /nix/store -maxdepth 1 -type f -name "*.py"

No strong opinion, I don't personally care about getting those fixed right now so it might be easier if you filed it as a new issue if you're interested in working on it.

Will close this because this specific issue is solved, but feel free to open other issues for the other python scripts that suffer from this problem.


Add ability to disable log exception

The "try{...}catch(Exception e){log(e);throw;}" waved into code cause wrong line number of exception stack trace.
Please refer the flowing URL for detailed reason.
https://stackoverflow.com/questions/28481577/postsharps-onexceptionaspect-is-corrupting-the-stack-traces-line-numbers/28541633
https://support.postsharp.net/request/21942-exception-line-number-at-end-of
Can you add the ability to disable log exception when user prefer to disable it?

Yes of course, I'll put it into the next iteration. Also I'll try to see if using the ExceptioDispatchInfo class can fix this problem.

Thanks!


Hyperlinkbutton not working with uri of type<EMAIL_ADDRESS>

Describe the bug

Hyperlinkbutton not working with uri of type<EMAIL_ADDRESS>Steps to reproduce the bug

Steps to reproduce the behavior:
Place an hyperlinkbutton like the one below in any page. Run the application and click it.

Expected behavior
Default Windows Email Client should open
Note: Have checked in windows settinds that a default windows application is defined and also this kind of uri does work when when launched from a browser navigation bar
Screenshots

Version Info
NuGet package version:

Microsoft.WinUI 3.0.0-preview4.210210.4

Windows app type:

UWP
Win32

No
Yes

Windows 10 version
Saw the problem?

Insider Build (xxxxx)

October 2020 Update (19042)
Yes

May 2020 Update (19041)

November 2019 Update (18363)

May 2019 Update (18362)

October 2018 Update (17763)

April 2018 Update (17134)

Fall Creators Update (16299)

Creators Update (15063)

Device form factor
Saw the problem?

Desktop
Yes

Xbox

Surface Hub

IoT

Additional context
When run from the debugguer i see report of exceptions thrown although nothing is seen in the application

@Austin-Lamb I'm not sure this would be winui's fault.  Thoughts?

Same behaviour with NuGet package version:
Microsoft.ProjectReunion.WinUI 0.5.0

Also, not working with file:// links.  Works using Windows.System.Launcher.LaunchUriAsync(link); on Click event

I confirm that this is WinUI's fault. I have the same issue. On the other hand, for testing purposes, I made a simple html file:
<!DOCTYPE html>
<html>
	<head>
		<title>Page Title</title>
	</head>
	<body>
	<a<EMAIL_ADDRESS>here to send an email</a>
	</body>
</html>

and obviously, it works.

The default email app auto-launches and composes an email message:

Now, trying the same "mailto" thing on a HyperLinkButton in a packaged WASDK 1.2.230118.102 desktop app:
<Window
    x:Class="MailtoTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MailtoTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
        <HyperlinkButton Content="Click here to send an email"
<EMAIL_ADDRESS>    </StackPanel>
</Window>

Nothing happens upon clicking the HyperLinkButton.
Can someone please have a look at this issue? Thanks!

Windows.System.Launcher.LaunchUriAsync

According to this

Just ran into this bug today when trying to launch the settings app from a WinUI3 hyperlink control in a .NET desktop app. For those doing this from a desktop .NET app (WPF, WinUI, etc.), and not a UWP app, you need a bit more code in the click handler:
        var psi = new System.Diagnostics.ProcessStartInfo();

        psi.FileName = "ms-settings:developers";
        psi.UseShellExecute = true;

        System.Diagnostics.Process.Start(psi);

This is still not working in our WinUI app, we have currently no way of sending a pre-filled email from the app using the mailto protocol. It seems like with Outlook (new)  both Windows.System.Launcher.LaunchUriAsync(link) and System.Diagnostics.Process.Start(psi); cannot exchange information with Outlook (new), and the only workaround in UWP which was using Hyperlinkbutton directly with the URI does not actually work in WinUI. What are we supposed to do to use the mailto protocol inside WinUI when our clients use Outlook (new) as their default mail client?
This is unacceptable.

After 12 hours of investigation, I came to find out that Outlook (new) client needs the subject and body of the mailto protocol query to be encoded using System.Web.HttpUtility.UrlEncode(textToEncode). This must be used to avoid a weird bug in Outlook (new) that displays multiple message error windows saying that the mailto functionality is not availble in Outlook (new) and hence user should switch back to Outlook Classic. Encoding subject and body allows for mailto to work flawlessly with both Windows.System.Launcher.LaunchUriAsync(mailToProcotolUri) and System.Diagnostics.Process.Start(psi) example shown above.
Hope this help someone and THANKS AGAIN MICROSOFT FOR CHANGING APIs WITHOUT INFORMING ANYONE ABOUT IT :)

I've faced this issue today with Hyperlink using WindowsAppSDK 1.5.240311000 (unpackaged app).
When I run the app on Windows 10, the hyperlink works fine and clicking on it opens Mail app. But on Windows 11, it does nothing.
I tested with other protocol, tel:, and it works fine on both Windows 10 and Windows 11.

Something you could do to help debug is try the same command from PowerShell; see if it's on the calling side or in the mail app. E.g. start<EMAIL_ADDRESS>

Something you could do to help debug is try the same command from PowerShell; see if it's on the calling side or in the mail app. E.g. start<EMAIL_ADDRESS>
@MikeHillberg That command works fine from PowerShell.
Also, I'm using Windows.System.Launcher.LaunchUriAsync(new Uri("mailto:someone@example.com")) as a workaround in Click event and it works fine as well. It's just the Hyperlink and HyperlinkButton controls that are broken apparently when we give them a mailto link in NavigateUri property.


usage of .format()?

The flask-babel docs only show how to use it with the _("foo %(bar)s", bar="baz") style.
Maybe one should add documentation about how to use it with unicode.format() method.

any comment?

I don't understand your question. What do you want to achieve with unicode.format and babel?


PEQ input import, clear, and bypass do not work

PEQ input import, clear, and bypass seem to work (no errors), but do not actually apply.
Tried 2 methods for each of these...

minidsp app on Win10 connected directly to MiniDSP 2x4HD via USB
minidsp app on Linux using remote (--tcp ip:5333) to minidsp app on Win10 (#1 above)

Attempted following commands:
minidsp input 0 peq all clear
minidsp input 0 peq all bypass on (or off)
minidsp input 0 peq all import
minidsp input 1 peq all clear
minidsp input 1 peq all bypass on (or off)
minidsp input 1 peq all import
The server side shows the config (example here, for bypass):
Sent: WriteBiquadBypass { addr: 20b7, value: true }
Recv: Ack
Recv: Ack
Sent: WriteBiquadBypass { addr: 20b2, value: true }
Recv: Ack
Recv: Ack
Sent: WriteBiquadBypass { addr: 20ad, value: true }
Recv: Ack
Recv: Ack
Sent: WriteBiquadBypass { addr: 20a8, value: true }
Recv: Ack
Recv: Ack
Sent: WriteBiquadBypass { addr: 20a3, value: true }
Recv: Ack
Sent: WriteBiquadBypass { addr: 209e, value: true }
Recv: Ack
Recv: Ack
Recv: Ack
Sent: WriteBiquadBypass { addr: 2099, value: true }
Recv: Ack
Recv: Ack
Sent: WriteBiquadBypass { addr: 2094, value: true }
Recv: Ack
Recv: Ack
Sent: WriteBiquadBypass { addr: 208f, value: true }
Recv: Recv: AckAck
Sent: WriteBiquadBypass { addr: 208a, value: true }
Recv: Ack
Recv: Ack

Thanks for the report.
Do you mean that you can't hear the difference, or that their app isn't reporing it? (It's normal that the minidsp application doesn't report changes, because the device doesn't support reading configuration back from the device)
Can you try the following? It works fine on my side on a 2x4HD. If it doesn't, we can do more steps to figure out what the app does different than the plugin by inspecting the output of server
Use the following filter - it's a high shelf around 200hz, it'll be really obvious if it's applied.
Save this as filt.txt
biquad1,
b0=0.25296561425934055,
b1=-0.4987820769827858,
b2=0.24591409251506618,
a1=1.9858327346088447,
a2=-0.9859303644004657

minidsp input 1 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off

# Listen to lowpassed audio on chan0

minidsp input 1 mute off
minidsp input 0 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off

# Listen to lowpassed audio on chan1

# Bypass everything back
minidsp input 0 peq all bypass on
minidsp input 1 peq all bypass on

Thanks for the report.
Do you mean that you can't hear the difference, or that their app isn't reporing it? (It's normal that the minidsp application doesn't report changes, because the device doesn't support reading configuration back from the device)
Can you try the following? It works fine on my side on a 2x4HD. If it doesn't, we can do more steps to figure out what the app does different than the plugin by inspecting the output of server
Use the following filter - it's a high shelf around 200hz, it'll be really obvious if it's applied.
Save this as filt.txt
biquad1,
b0=0.25296561425934055,
b1=-0.4987820769827858,
b2=0.24591409251506618,
a1=1.9858327346088447,
a2=-0.9859303644004657

minidsp input 1 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off

# Listen to lowpassed audio on chan0

minidsp input 1 mute off
minidsp input 0 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off

# Listen to lowpassed audio on chan1

# Bypass everything back
minidsp input 0 peq all bypass on
minidsp input 1 peq all bypass on

The MiniDSP app shows the change of config from 1 to 2, etc. Is that the only change it recognizes?
In other words, there isn’t a way to actually verify what the current config is on the MiniDSP?
I will try your test tomorrow, regarding add a filter to verify. I obviously assumed (incorrectly), that the app would show the changes.
Joe

On Jan 10, 2021, at 9:10 PM, Mathieu Rene<EMAIL_ADDRESS>wrote:

Thanks for the report.
Do you mean that you can't hear the difference, or that their app isn't reporing it? (It's normal that the minidsp application doesn't report changes, because the device doesn't support reading configuration back from the device)
Can you try the following? It works fine on my side on a 2x4HD. If it doesn't, we can do more steps to figure out what the app does different than the plugin by inspecting the output of server
Use the following filter - it's a high shelf around 200hz, it'll be really obvious if it's applied.
Save this as filt.txt
biquad1,
b0=0.25296561425934055,
b1=-0.4987820769827858,
b2=0.24591409251506618,
a1=1.9858327346088447,
a2=-0.9859303644004657
minidsp input 1 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off
Listen to lowpassed audio on chan0
minidsp input 1 mute off
minidsp input 0 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off
Listen to lowpassed audio on chan1
Bypass everything back
minidsp input 0 peq all bypass on
minidsp input 1 peq all bypass on
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

The MiniDSP app shows the change of config from 1 to 2, etc. Is that the only change it recognizes?
In other words, there isn’t a way to actually verify what the current config is on the MiniDSP?
I will try your test tomorrow, regarding add a filter to verify. I obviously assumed (incorrectly), that the app would show the changes.
Joe

On Jan 10, 2021, at 9:10 PM, Mathieu Rene<EMAIL_ADDRESS>wrote:

Thanks for the report.
Do you mean that you can't hear the difference, or that their app isn't reporing it? (It's normal that the minidsp application doesn't report changes, because the device doesn't support reading configuration back from the device)
Can you try the following? It works fine on my side on a 2x4HD. If it doesn't, we can do more steps to figure out what the app does different than the plugin by inspecting the output of server
Use the following filter - it's a high shelf around 200hz, it'll be really obvious if it's applied.
Save this as filt.txt
biquad1,
b0=0.25296561425934055,
b1=-0.4987820769827858,
b2=0.24591409251506618,
a1=1.9858327346088447,
a2=-0.9859303644004657
minidsp input 1 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off
Listen to lowpassed audio on chan0
minidsp input 1 mute off
minidsp input 0 mute on
minidsp input 0 peq all import ./filt.txt
minidsp input 0 peq all bypass off
Listen to lowpassed audio on chan1
Bypass everything back
minidsp input 0 peq all bypass on
minidsp input 1 peq all bypass on
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

The master state can be read, that includes:

master gain and mute
current configuration preset
active input source
a random value to detect configuration desync

All the other settings are read from a local XML file. In the future I might add a way to keep it in sync so it's always possible to look at the config.
Changing the filters to obviously noticable ones is how I have been testing things so far.

The master state can be read, that includes:

master gain and mute
current configuration preset
active input source
a random value to detect configuration desync

All the other settings are read from a local XML file. In the future I might add a way to keep it in sync so it's always possible to look at the config.
Changing the filters to obviously noticable ones is how I have been testing things so far.

Closing this since it seems to work fine as per your avsforum post, feel free to re-open if you run into problems

Closing this since it seems to work fine as per your avsforum post, feel free to re-open if you run into problems


feat(examples/active_passive_ha): Active/Passive High-Availability Deployment

Description
Overview
This deployment provides a traditional Active/Passive High Availability pair of VM-Series firewalls hosted in Google Cloud, and provides thew following benefits:

Palo Alto Networks Configuration Sync
State Synchronization between instances to maintain state on fail-over.
Controlled High-Availability fail-over in approx. 3 seconds

This deployment model provides solutions for the following key use-cases:

IPSec termination of site to site VPNs.
Legacy applications that need visibility of the original source client IP (No SNAT solution) for inbound traffic flows.
Requirements for session fail-over on failure of VM-Series.

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate)

Types of changes

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes if appropriate.
[ ] All new and existing tests passed.

A new PR will be created for this one #202


SB Remove PrintMsgHdr Function

The SB PrintMsgHdr function does not protect against accessing invalid memory.  In addition, this function is specific to debugging during development.  This code should not be used during flight and could be a risk to the system.
It is recommended to remove this code and create a library for hosing debug functions and utilities.  This ticket will be used to remove the PrintMsgHdr function.  An alternate ticket will be created for developing a debug library.

Trac comment by sstrege on 2017-11-09 19:35:03:
Commit [changeset:f1eeb40] ready for CCB review

Imported from trac issue 223.  Created by sstrege on 2017-11-09T19:19:09, last modified: 2019-03-05T14:58:28

Trac comment by glimes on 2017-11-14 11:36:05:
Recommend approve.

Trac comment by glimes on 2017-11-14 13:43:30:
approved at 2017-11-14 CCB

Trac comment by jhageman on 2019-03-05 14:58:28:
Milestone renamed


Add remote cp version in zones

Signed-off-by: Tharun<EMAIL_ADDRESS>Fixes https://github.com/kumahq/kuma/issues/1364

@bartsmykla sure , will remove the styling changes and address the reviews 👍🏻

@bartsmykla sure , will remove the styling changes and address the reviews 👍🏻

tested in local with 2 remote-cp's and working fine

tested in local with 2 remote-cp's and working fine

What's the status of this PR?

What's the status of this PR?

@bartsmykla, can it get merged or anything to address?

@bartsmykla Is this ready to be merged?

We can merge it


Any possibility of making this 3.4 compatible?

We are tied to a CentOS only supporting 3.4 but really love the library and its performance. It would be great to have it working with pip install for 3.4.

I've just pushed v0.2.8 to PyPI, which includes a manylinux1 Python 3.4 wheel. Let me know if it works for you!

Thank you! I'll test it in a second 🚀

It works great! We not got Travis back, although also noticed that for Mac there is only support for 2.7 and 3.6 in the last release.

Oops, yep. I'm testing an OS X 3.4 build at the moment, and I'll push a release if it works…

That's great, I really appreciate it. The only one missing from the complete matrix (in case you wanted it all) seems to be just simplification-v0.2.9-x86_64-apple-darwin-cp35.tar.gz.

v0.2.9 with an OS X Python 3.4 wheel is live on PyPI now. I'll have a look at a 3.5 release when I get a chance. Also, I'm delighted to see some Rust code go live in Histonets – it looks like a  great project.

I also took the opportunity to add Numpy support (0.2.11, on PyPI now), so if you input numpy arrays, you'll get numpy arrays back, which should be noticeably faster for large lines.

Awesome! Thanks, man. I feel like this issue is ready to be closed. Glad there are libraries like yours to use in projects like Histonets. And kudos for the numpy support 👍  Keep up the good work!


Example usage @threadUnsafe annotation

Hi everyone.
This project include example to use lazy val field. In new proposal to Scala project  have changed implementation of lazy val.
    /**
      * In order to get thread safety, you need to put @volatile before lazy vals.
      * https://dotty.epfl.ch/docs/reference/changed-features/lazy-vals-init.html
      */
    @volatile lazy val xs: List[String] = List("d", "o", "t", "t", "y")

As I understood to safe thread-safe sematics we need to attach @volatile annotation to lazy val field.
Dotty/Scala3 in std have scala.annotation.threadUnsafe annotation also. Is it still actual annotation? And if it is true in wich cases we need to use this annotation. Can you please add example?
Thank you

iirc, at some point the design changed and it was decided to make thread-safety the default again, as in Scala 2. so yeah, a fix is needed here.

Thank you for your explanation.


Strided Loops with @avx ?

Hi, I wonder if @avx can be used with strided loops like
function smooth_line(nrm1,j,i1,sl,rl,ih2,denom)
    @fastmath @inbounds @simd for i=i1:2:nrm1
            sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))
    end
end

It seems that, changing @fastmath @inbounds @simd by @avx does not lead to the same result

Hi, thanks for the issue.
There are two problems with this loop currently:

I need to add support for strided loops. I'd have to think more about the best way to handle this. One possible solution is to forbid vectorizing them, but it would probably be better to allow that as a possibility. One idea is to treat the accessed arrays as having a dimension each to the stride ahead of the loop. I.e, for n in 1:step:N; x[n] would translate to for n in 1:div(N,step); x[1,n] where x is treated as having length step in the first dimension.
Loop carried dependencies aren't supported yet.

I Chris, thank for the reply.

I tried this solution and @avx produces (twice) slower code than @simd

@inline function smooth_line_avx(nrm1,j,i1,sl,rl,ih2,denom)
    ni2=div(nrm1,2)-1
    @avx for i2=0:ni2
        sl[i1+2i2,j]=denom*(rl[i1+2i2,j]+ih2*(sl[i1+2i2,j-1]+sl[i1+2i2-1,j]+sl[i1+2i2+1,j]+sl[i1+2i2,j+1]))
    end
end

I think there should be no dependencies in this loop (part of red-black gauss-seidel).

I think that the issue should be closed but, if it possible (I don't if it is), it would be nice to have a warning message saying that strided loops are not supported by @avx (or at least on the README).
BTW: are nested loops handled by @avx ?

Mind sharing code I can copy and past to run the functions?

I tried this solution and @avx produces (twice) slower code than @simd

Does @simd actually vectorize?
I assume it does not, and that not vectorizing is faster.

I think there should be no dependency in this loop (part of red-black gauss-seidel).

The body is:

sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))

Let's unroll it a little:
i = 1
sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))
i = 2
sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))
i = 3
sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))

and substitute the is:
sl[1,j]=denom*(rl[1,j]+ih2*(sl[1,j-1]+sl[0,j]+sl[2,j]+sl[1,j+1]))
sl[2,j]=denom*(rl[2,j]+ih2*(sl[2,j-1]+sl[1,j]+sl[3,j]+sl[2,j+1]))
sl[3,j]=denom*(rl[3,j]+ih2*(sl[3,j-1]+sl[2,j]+sl[4,j]+sl[3,j+1]))

sl[2,j] depends on the answer of sl[1,j] = denom*(rl[1,j]+ih2*(sl[1,j-1]+sl[0,j]+sl[2,j]+sl[1,j+1])), therefore reordering these loop iterations is invalid and will result in incorrect answers.

I think that the issue should be closed but, if it possible (I don't know if it is), it would be nice to have a warning message saying that strided loops are not supported by @avx (or at least on the README).

I'll add a check to result in generic fall-back behavior, and add a note in the documention.

BTW: are nested loops handled by @avx ?

Yes.

For information I want to perform a 2D gauss-seidel. In order to obtain some parallelism, I change this for a red-black GS
were even cells (i+j%2==0) can be updated (independently) from odd ones in a first step.
The odds from the even in the second step.
The following should be runable.
using BenchmarkTools
using LoopVectorization
using LinearAlgebra

#Original functions (smooth_line and smooth_seq using @simd)
@inline function smooth_line(nrm1,j,i1,sl,rl,ih2,denom)
    @fastmath @inbounds @simd for i=i1:2:nrm1
            sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))
    end
end

@inline function smooth_seq(nrows,ncols,sl,rl,ih2)
    denom=1/(4ih2)
    nrm1=nrows-1

    @inbounds for j=2:2:ncols-1
        smooth_line(nrm1,j,2,sl,rl,ih2,denom)
        smooth_line(nrm1,j+1,3,sl,rl,ih2,denom)
    end
    @inbounds for j=2:2:ncols-1
        smooth_line(nrm1,j,3,sl,rl,ih2,denom)
        smooth_line(nrm1,j+1,2,sl,rl,ih2,denom)
    end

end

#@avx'ed functions (smooth_line_avx and smooth_seq_avx using @simd)

@inline function smooth_line_avx(nrm1,j,i1,sl,rl,ih2,denom)
    #The trick to avoid strided loop and use @avx
    ni2=div(nrm1,2)-1

    # @inbounds @simd for i2=0:ni2
    @avx for i2=0:ni2
        sl[i1+2i2,j]=denom*(rl[i1+2i2,j]+ih2*(sl[i1+2i2,j-1]+sl[i1+2i2-1,j]+sl[i1+2i2+1,j]+sl[i1+2i2,j+1]))
    end
end

@inline function smooth_seq_avx(nrows,ncols,sl,rl,ih2)
    denom=1/(4ih2)
    nrm1=nrows-1

    @inbounds for j=2:2:ncols-1
        smooth_line_avx(nrm1,j,2,sl,rl,ih2,denom)
        smooth_line_avx(nrm1,j+1,3,sl,rl,ih2,denom)
    end
    @inbounds for j=2:2:ncols-1
        smooth_line_avx(nrm1,j,3,sl,rl,ih2,denom)
        smooth_line_avx(nrm1,j+1,2,sl,rl,ih2,denom)
    end

end

#function that call the benchmarks
function go(n)
    # initialize two 2D arrays
    sl=rand(n+2,n+2)
    rl=rand(n+2,n+2)
    # the following blocks check if smooth_seq and smooth_seq_avx
    # return the same result
    sl_ref=deepcopy(sl)
    (nrows,ncols)=size(sl)
    ih2=rand()
    smooth_seq(nrows,ncols,sl_ref,rl,ih2)
    smooth_seq_avx(nrows,ncols,sl,rl,ih2)
    @show norm(sl-sl_ref)
    #The actual timings
    tsimd=@belapsed smooth_seq($nrows,$ncols,$sl,$rl,$ih2)
    tavx=@belapsed smooth_seq_avx($nrows,$ncols,$sl,$rl,$ih2)
    @show tsimd,tavx
    tsimd,tavx
end

@show go(128)
@show go(256)

FWIW, they're about the same fast on my computer:
julia> @show go(128)
norm(sl - sl_ref) = 2.1216300999233956e-14
(tsimd, tavx) = (2.2724e-5, 2.1082e-5)
go(128) = (2.2724e-5, 2.1082e-5)
(2.2724e-5, 2.1082e-5)

julia> @show go(256)
norm(sl - sl_ref) = 1.4344236152357477e-14
(tsimd, tavx) = (8.4377e-5, 8.5123e-5)
go(256) = (8.4377e-5, 8.5123e-5)
(8.4377e-5, 8.5123e-5)

julia> @show go(512)
norm(sl - sl_ref) = 2.4506837318300105e-14
(tsimd, tavx) = (0.000407476, 0.000401408)
go(512) = (0.000407476, 0.000401408)
(0.000407476, 0.000401408)

julia> @show go(510)
norm(sl - sl_ref) = 2.5067239002253036e-12
(tsimd, tavx) = (0.000376414, 0.000371184)
go(510) = (0.000376414, 0.000371184)
(0.000376414, 0.000371184)

julia> @show go(514)
norm(sl - sl_ref) = 2.4883860367553863e-14
(tsimd, tavx) = (0.000376636, 0.000395572)
go(514) = (0.000376636, 0.000395572)
(0.000376636, 0.000395572)

Using LinuxPerf#master with n = 120:
julia> @pstats "cpu-cycles,(instructions,branch-instructions,branch-misses),(task-clock,context-switches,cpu-migrations,page-faults)" foreachn(smooth_seq, 100_000, nrows,ncols,sl_ref,rl,ih2)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
╶ cpu-cycles               8.04e+09  100.0%  #  3.6 cycles per ns
┌ instructions             2.03e+10  100.0%  #  2.5 insns per cycle
│ branch-instructions      2.25e+09  100.0%  # 11.1% of instructions
└ branch-misses            8.49e+05  100.0%  #  0.0% of branch instructions
┌ task-clock               2.24e+09  100.0%  #  2.2 s
│ context-switches         0.00e+00  100.0%
│ cpu-migrations           0.00e+00  100.0%
└ page-faults              1.00e+00  100.0%
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

julia> @pstats "cpu-cycles,(instructions,branch-instructions,branch-misses),(task-clock,context-switches,cpu-migrations,page-faults)" foreachn(smooth_seq_avx, 100_000, nrows,ncols,sl_ref,rl,ih2)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
╶ cpu-cycles               7.44e+09  100.0%  #  3.6 cycles per ns
┌ instructions             7.01e+09  100.0%  #  0.9 insns per cycle
│ branch-instructions      2.59e+08  100.0%  #  3.7% of instructions
└ branch-misses            3.64e+05  100.0%  #  0.1% of branch instructions
┌ task-clock               2.07e+09  100.0%  #  2.1 s
│ context-switches         0.00e+00  100.0%
│ cpu-migrations           0.00e+00  100.0%
└ page-faults              1.00e+00  100.0%
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Note that the base version had 2.5 instructions/cycle, while the @avx had only 0.9, but they took roughly the same amount of time.
While the base version does show SIMD instructions (including gathers and scatters), I'd have to look a lot more closely to see if it is actually run. I'm guessing that there's loop versioning involved, and some checks determine whether or not the SIMD version is executed. While I'm not sure, the large difference in instructions/cycle but similar performance suggests that is the case.

@LaurentPlagne You keep tagging a GitHub user named @avx. They may prefer not to get all these notifications about our discussion ;).

I could easily change the layout but I don't know what would be optimal...

Try making the even and odd numbers contiguous. For example:
function smooth_line(nrm1,j,i1,sl,rl,ih2,denom)
    @fastmath @inbounds @simd for i=i1:2:nrm1
            sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))
    end
end
function smooth_line_dim3_even(nrm1,j,sl,rl,ih2,denom)
    @fastmath @inbounds @simd for i= 1:nrm1 >>> 1
            sl[i,2,j]=denom*(rl[i,2,j]+ih2*(sl[i,2,j-1]+sl[i,1,j]+sl[i+1,1,j]+sl[i,2,j+1]))
    end
end
function smooth_line_dim3_odd(nrm1,j,sl,rl,ih2,denom)
    @fastmath @inbounds @simd for i = 2:nrm1 >>> 1
            sl[i,1,j]=denom*(rl[i,1,j]+ih2*(sl[i,1,j-1]+sl[i-1,2,j]+sl[i,2,j]+sl[i,1,j+1]))
    end
end
nrm1 = 128;
sl = rand(nrm1+1+iseven(nrm1),4); # pad extra
rl = rand(nrm1+1+iseven(nrm1),4); # pad extra
ih2 = rand(); denom = rand();
slnew = permutedims(reshape(sl, (2, size(sl,1) ÷ 2, size(sl,2))), (2,1,3));
rlnew = permutedims(reshape(rl, (2, size(sl,1) ÷ 2, size(sl,2))), (2,1,3));

smooth_line(nrm1,2,2,sl,rl,ih2,denom)
smooth_line(nrm1,3,3,sl,rl,ih2,denom)

smooth_line_dim3_even(nrm1,2,slnew,rlnew,ih2,denom)
smooth_line_dim3_odd(nrm1,3,slnew,rlnew,ih2,denom)

slcomp = permutedims(reshape(sl, (2, size(sl,1) ÷ 2, size(sl,2))), (2,1,3));
slnew ≈ slcomp # true

@benchmark smooth_line($nrm1,2,2,$sl,$rl,$ih2,$denom)
@benchmark smooth_line_dim3_even($nrm1,2,$slnew,$rlnew,$ih2,$denom)
@benchmark smooth_line_dim3_odd($nrm1,3,$slnew,$rlnew,$ih2,$denom)

smooth_line_dim3_* are much faster on my computer.

Wow !!!
dim3_even/odd are indeed much faster on my machine:
with simd
n, t_smooth_line, t_smooth_line_dim3_even, t_mooth_line_dim3_odd) = (128, 7.164168377823409e-8, 2.638894472361809e-8, 2.930251256281407e-8)
(n, t_smooth_line, t_smooth_line_dim3_even, t_mooth_line_dim3_odd) = (256, 1.3984382284382283e-7, 4.398686868686869e-8, 4.9574468085106385e-8)
(n, t_smooth_line, t_smooth_line_dim3_even, t_mooth_line_dim3_odd) = (512, 2.413283950617284e-7, 8.683245521601686e-8, 1.0268404255319149e-7)

with @avx
(n, t_smooth_line, t_smooth_line_dim3_even, t_mooth_line_dim3_odd) = (128, 6.286530612244897e-8, 2.453714859437751e-8, 3.226458752515091e-8)
(n, t_smooth_line, t_smooth_line_dim3_even, t_mooth_line_dim3_odd) = (256, 1.2445434298440981e-7, 4.064076690211907e-8, 4.8659919028340086e-8)
(n, t_smooth_line, t_smooth_line_dim3_even, t_mooth_line_dim3_odd) = (512, 2.415175879396985e-7, 7.580020597322349e-8, 9.708236536430835e-8)

I have to think more about this data layout (I need to make some drawings ;)
This reminds me a paper I wrote about automatic data layout adaption in a C++ library C++ (https://git.triscale-innov.com/Triscale-public/Legolas_pp). The principle is to automatically vectorize  (and parallelize) embarrassingly // algorithms on nd-arrays by introducing  an (hidden) extra dimension to the data layout of user arrays. . I still wonder if the same could be done in Julia (not sure). I hope we can discuss this one day.
Anyway: Thank you very much for your help !
P.S. I apologize to atavx !

What I did is sort of similar to slide 16/38 (page 27). Because we want SIMD across even/odd elements at a time, reshape the arrays so that they're contiguous rather than interleaved.

I still wonder if the same could be done in Julia (not sure). I hope we can discuss this one day.

I'm very interested in this as well, and was planning on working on this eventually in a DSL for Bayesian model fitting.
What would be need is both a way to estimate computational cost of different layouts, and then the ability to iterate across many different alternatives to pick the best.
A DSL would be an easier place to get started / do a proof of concept. The analysis should be made modular, so that eventually it can be used by code (e.g. macros) meant to optimize more general Julia functions.
I think it's an interesting question with lots of potential performance benefits.

I'm very interested in this as well, and was planning on working on this eventually in a DSL for Bayesian model fitting.
What would be need is both a way to estimate computational cost of different layouts, and then the ability to iterate across many > different alternatives to pick the best.

In the paper case, the optimal layout was easy to find because it deals specifically with applying the same arbitrarily complex algorithm on N independent problems. So basically, we replace scalars at the lowest level by simd packs of scalar and and use MT at the highest level on groups on packed problems. So the optimal packing factor was usually 2xtimes or 4xtime the simd width.
Ideally, I could make the presentation for you (20 min) and we discuss after this what is possible in Julia.
I did rewrite the previous problem using a struct handling the RB layout in order to introduce it in the multi-grid algorithm step by step. On my machine the speed-up with @avx is close to 3 !
using BenchmarkTools
using LoopVectorization
using LinearAlgebra

#Original functions (smooth_line and smooth_seq using @simd)
@inline function smooth_line(nrm1,j,i1,sl,rl,ih2,denom)
    @fastmath @inbounds @simd for i=i1:2:nrm1
            # @show i,j,denom,sl[i,j],rl[i,j],sl[i,j-1],sl[i,j+1],sl[i-1,j],sl[i+1,j]
            sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))
    end
end

@inline function smooth_seq(nrows,ncols,sl,rl,ih2)
    denom=1/(4ih2)
    nrm1=nrows-1
    #even (i+j)%2==0 from odds
    @inbounds for j=2:2:ncols-1
        smooth_line(nrm1,j,2,sl,rl,ih2,denom)
        smooth_line(nrm1,j+1,3,sl,rl,ih2,denom)
    end
    # #odds (i+j)%2==1 from evens
    @inbounds for j=2:2:ncols-1
        smooth_line(nrm1,j,3,sl,rl,ih2,denom)
        smooth_line(nrm1,j+1,2,sl,rl,ih2,denom)
    end

end

#RBArray is a Type acting like a 2D array with a data layout suitable to
# Red Black Gauss-Seidel algorithms
#  contiguous red (iseven(i+j)) values are stored in [i2,1,j]
#  contiguous odd (isodd(i+j)) values are stores in [i2,2,j]
struct RBArray
    data::Array{Float64,3}
end
#Ctor : should use an inner Ctor to ensure that nx is even
#Note that >>> means unsigned >>. Hence x >>> 1 returns div(x,2) is x is a positive integer
RBArray(nx,ny) = RBArray(Array{Float64,3}(undef,nx>>>1,2,ny))
#Helper functions to acess the the RB arrays with 2 indexes rb[i,j]
@inline Base.getindex(rb::RBArray,i,j) = rb.data[(i+1)>>>1,1+isodd(i+j),j]
@inline Base.setindex!(rb::RBArray,value,i,j) = rb.data[(i+1)>>>1,1+isodd(i+j),j]=value

#RBArray from Array
function RBArray(a::Array{Float64,2})
    nx,ny=size(a)
    @assert iseven(nx)
    nxs2=nx>>>1
    rb=RBArray(nx,ny)
    for i in 1:nx,j in 1:ny
        rb[i,j]=a[i,j]
    end
    for j in 1:2:ny
        #j odd
        for i2 in 0:nxs2-1
            rb.data[i2+1,1,j]=a[2i2+1,j] #i=2i2+1 is odd  => i+j is even (rb.data[:,1,:])
            rb.data[i2+1,2,j]=a[2i2+2,j] #i=2i2+2 is even => i+j is odd (rb.data[:,2,:])
        end
        #j+1 even
        for i2 in 0:nxs2-1 #i=2i2 is even
            rb.data[i2+1,2,j+1]=a[2i2+1,j+1] #i=2i2+1 is odd  => i+j is even (rb.data[:,2,:])
            rb.data[i2+1,1,j+1]=a[2i2+2,j+1] #i=2i2+2 is even => i+j is odd (rb.data[:,1,:])
        end
    end
    rb
end

#Array from RBArray
function Array{Float64,2}(rb::RBArray)
    nxs2,two,ny=size(rb.data)
    nx=2nxs2
    a=Array{Float64,2}(undef,nx,ny)
    #The following blocks works but is probably slow
    # for i in 1:nx,j in 1:ny
    #     a[i,j]=rb[i,j]
    # end
    for j in 1:2:ny
        #j odd
        for i2 in 0:nxs2-1 #i=2i2 is even
            a[2i2+1,j]=rb.data[i2+1,1,j]
            a[2i2+2,j]=rb.data[i2+1,2,j]
        end
        #j+1 even
        for i2 in 0:nxs2-1 #i=2i2 is even
            a[2i2+1,j+1]=rb.data[i2+1,2,j+1]
            a[2i2+2,j+1]=rb.data[i2+1,1,j+1]
        end
    end
    a
end

#Specialized smooth_seq method for RedBlack arrays.
#Note that non specialized smooth_seq method should produce the same result(but slowly)
@inline function smooth_seq(nrows,ncols,slrb::RBArray,rlrb::RBArray,ih2)
    denom=1/(4ih2)
    nrm1=nrows-1
    sl,rl=slrb.data,rlrb.data

    #evens from odds
    @inbounds for j in 2:2:ncols-1
        @avx for i2 in 1:nrm1 >>> 1
            sl[i2,1,j]=denom*(rl[i2,1,j]+ih2*(sl[i2,2,j-1]+sl[i2,2,j+1]+sl[i2,2,j]+sl[i2+1,2,j]))
        end
        @avx for i2 in 1:nrm1 >>> 1
            sl[i2+1,1,j+1]=denom*(rl[i2+1,1,j+1]+ih2*(sl[i2+1,2,j]+sl[i2+1,2,j+2]+sl[i2,2,j+1]+sl[i2+1,2,j+1]))
        end
    end
     #odds from evens
    @inbounds for j in 2:2:ncols-1
        @avx for i2 in 1:nrm1 >>> 1
            sl[i2+1,2,j]=denom*(rl[i2+1,2,j]+ih2*(sl[i2+1,1,j-1]+sl[i2+1,1,j+1]+sl[i2,1,j]+sl[i2+1,1,j]))
        end
        @avx for i2 in 1:nrm1 >>> 1
            sl[i2,2,j+1]=denom*(rl[i2,2,j+1]+ih2*(sl[i2,1,j]+sl[i2,1,j+2]+sl[i2,1,j+1]+sl[i2+1,1,j+1]))
        end
    end
end

#function that call the benchmarks
function go_rb(n)
    @assert iseven(n)
    # initialize two 2D arrays
    sl=rand(n+2,n+2)
    rl=rand(n+2,n+2)
    # the following blocks check if smooth_seq and smooth_seq_avx
    # return the same result
    sl_ref=deepcopy(sl)
    slrb=RBArray(sl)
    rlrb=RBArray(rl)
    (nrows,ncols)=size(sl)
    ih2=rand()
    smooth_seq(nrows,ncols,sl,rl,ih2)
    smooth_seq(nrows,ncols,slrb,rlrb,ih2)
    ss=Array{Float64,2}(slrb)
    @show norm(sl-Array{Float64,2}(slrb))

    # #The actual timings
    tsimd=@belapsed smooth_seq($nrows,$ncols,$sl,$rl,$ih2)
    trb=@belapsed smooth_seq($nrows,$ncols,$slrb,$rlrb,$ih2)
    @show tsimd,trb

end

go_rb(128)
go_rb(256)
go_rb(512)

In the paper case, the optimal layout was easy to find because it deals specifically with applying the same arbitrarily complex algorithm on N independent problems. So basically, we replace scalars at the lowest level by simd packs of scalar and use MT at the highest level on groups on packed problems. So the optimal packing factor was usually 2xtimes or 4xtime the simd width.

What determines the optimal packing factor? Dependencies in the computation you're performing?

Ideally, I could make the presentation for you (20 min) and we discuss after this what is possible in Julia.

I'm free over the next few days. I live in the US, so later is preferable.
Starting next Monday, I'd be free 13:00-15:00 French time.

Fixed on LoopVectorization 0.12.
Rerunning these benchmarks:
julia> @show go(128)
norm(sl - sl_ref) = 0.0
(tsimd, tavx) = (2.1866e-5, 1.9846e-5)
go(128) = (2.1866e-5, 1.9846e-5)
(2.1866e-5, 1.9846e-5)

julia> @show go(256)
norm(sl - sl_ref) = 0.0
(tsimd, tavx) = (8.5776e-5, 8.1598e-5)
go(256) = (8.5776e-5, 8.1598e-5)
(8.5776e-5, 8.1598e-5)

Now defining to use 1:2:nrm1 instead, like the @simd loop and previously did not work:
julia> #Original functions (smooth_line and smooth_seq using @simd) # now with `@avx` and `1:2:nrm1`
       @inline function smooth_line_avx(nrm1,j,i1,sl,rl,ih2,denom)
           @avx for i=i1:2:nrm1
                   sl[i,j]=denom*(rl[i,j]+ih2*(sl[i,j-1]+sl[i-1,j]+sl[i+1,j]+sl[i,j+1]))
           end
       end
smooth_line_avx (generic function with 1 method)

julia> @show go(128)
norm(sl - sl_ref) = 0.0
(tsimd, tavx) = (2.2535e-5, 2.0019e-5)
go(128) = (2.2535e-5, 2.0019e-5)
(2.2535e-5, 2.0019e-5)

julia> @show go(256)
norm(sl - sl_ref) = 0.0
(tsimd, tavx) = (8.3112e-5, 8.0237e-5)
go(256) = (8.3112e-5, 8.0237e-5)
(8.3112e-5, 8.0237e-5)


[colmap] Build error

Host Environment

OS: Windows 11
Compiler: revision

To Reproduce
Steps to reproduce the behavior:
git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg install colmap[cuda,tests]:x64-windows

Failure logs
Installing 1/1 colmap:x64-windows...
Building colmap[core]:x64-windows...
-- Using cached colmap-colmap-29a1e3642a3b00734a52b21e597ea4d576485fe6.tar.gz.
-- Cleaning sources at C:/Users/liuxi/work/vcpkg/buildtrees/colmap/src/d576485fe6-7dd36362d1.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/Users/liuxi/work/vcpkg/downloads/colmap-colmap-29a1e3642a3b00734a52b21e597ea4d576485fe6.tar.gz
-- Applying patch fix-dependencies.patch
-- Using source at C:/Users/liuxi/work/vcpkg/buildtrees/colmap/src/d576485fe6-7dd36362d1.clean
-- Found external ninja('1.10.2').
-- Configuring x64-windows-dbg
-- Configuring x64-windows-rel
-- Building x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:158 (message):
    Command failed: "C:/Program Files/CMake/bin/cmake.exe" --build . --config Debug --target install -- -v -j9
    Working Directory: C:/Users/liuxi/work/vcpkg/buildtrees/colmap/x64-windows-dbg
    See logs for more information:
      C:\Users\liuxi\work\vcpkg\buildtrees\colmap\install-x64-windows-dbg-out.log

Call Stack (most recent call first):
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_build.cmake:112 (vcpkg_execute_build_process)
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_install.cmake:41 (vcpkg_cmake_build)
  ports/colmap/portfile.cmake:53 (vcpkg_cmake_install)
  scripts/ports.cmake:146 (include)

error: building colmap:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
    https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+colmap
You can submit a new issue at:
    https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[colmap]+Build+error
Include '[colmap] Build error' in your bug report title, the following version information in your bug description, and attach any relevant failure logs from above.
    vcpkg-tool version: 2022-05-05-67e17c1782801cf481be9ac0b3765dff3e4bdeb8
    vcpkg-scripts version: a97ebbef7 2022-05-26 (3 hours ago)

install-x64-windows-dbg-out.log
Additional context
Add any other context about the problem here, such as what you have already tried to resolve the issue.

Duplicated to https://github.com/microsoft/vcpkg/issues/24420. Please track that issue instead.


Setup CodeQL analysis workflow

Don't land yet, let's check how this workflow works first.

This is the default template with no modifications, as can be seen at https://github.com/ExodusMovement/schemasafe/new/master?code_scanning_workflow_template=codeql&filename=.github%2Fworkflows%2Fcodeql-analysis.yml


I edited all the information but still fetching the default

I edited all information here but still fetching the default data.
There are 3 places to configure
src/lib/config/ All non secret and application wide configs are stored here, if required, change according to your requirement.
.env All secrets stored here
src/lib/services/index.ts This is used to define which service to use. Only 1 of the listed service can be active at a time. Valid values are Litekart Medusa Bigcommerce Shopify Woocommerce

@kevin25, On the backend side, what are you using?

I'm using WooCommerce

Woo commerce plugin is under active development
Will let you know


Add setup guide for iCUE4 an iCUE5

Include setup guide for iCUE 4 and 5

I completely forgot to add spaces between text and hashtags to make them headings😅

@THE-EXP  thanks for the contribution!

Yeah, I was just thinking about the issue(#6) that I opened and kinda... Well you get that I thought adding a setup guide would be nice and that's exactly what I did, forgot the spaces the first time though, so the #10 is here to fix that because «I forgot - I fix it»


Accelerated need to limit large url requests to “list records”, with alternative POST version

Hi! Fred here again, from the Airtable API team. Another update is that as part of recent infrastructure improvements to airtable.com, we needed to accelerate enforcement of rejecting any requests whose request URLs exceed 16k characters. The changes described below are in effect today.

Q: What endpoints does this affect?

The 16k character limit applies to all current and future API request URLs
Based on our internal audit of current usage, this primary impacts the “list records” endpoint, which is a GET request to /v0/{baseId}/{tableIdOrName} (https://airtable.com/developers/web/api/list-records)

Q: What is the impact of this change?

The vast majority of our API requests have remained well under the 16k character limit, and would not be affected
However, requests exceeding this limit will now be rejected, so we expect some calls to now require an update to handle the large cases. For example, requests whose query parameter for filterbyFormula is long enough to make the overall URL length to exceed that character limit
Therefore, we recommend either switching entirely to the alternative detailed below, or switching to it when you can detect that a request URL will exceed the 16k character limit

Q: What is the alternative?

APIs can instead make a POST request to /v0/{baseId}/{tableIdOrName}/listRecords, and encode the query params as the body of that POST request. We currently still require two parameters to remain as query params, timeZone and userLocale; you can see the full details and examples here: https://support.airtable.com/docs/enforcement-of-url-length-limit-for-web-api-requests

Q: Why the urgency for this change?

I apologize for the inconvenience due to the accelerated timeline here. While we originally planned to start this enforcement in January 2023, we needed to deploy this change recently last week, as part of required infrastructure improvements to maintain the stability of our public API

I ran into (I think) this issue today, while trying to find associated records from a parent row, maybe when there's a lot of child rows, kept getting 414 communication error which Mozilla says = URL too long.

@FredZhao-at Thanks so much for communicating this! I've put in a PR to switch the list-records call over to POST.
Tangentially related question, and I'll preface by saying it's really a moot question now that we're switching to POST. But I wanted to ask out of curiosity, because I thought the behavior was strange. Do you know of any special behavior regarding indexed vs non-indexed array params, ?foo[0]=0&foo[1]=1 vs ?foo[]=0&foo[]=1? I initially found this Github issue because our list-records call started failing with 422 Invalid request: parameter validation failed. Check your request data. after I increased the size of the fields param. I initially suspected maybe the length of the GET request was the problem, but it's well under 16k. Eventually I realized that this library is encoding array params as indexed with a note, "Airtable expects that arrays in query strings be encoded with indices." But the Airtable docs show non-indexed, so in my PR I switched the encoder back to the default Faraday one (which is non-indexed). Then the list-records call started working again! I think the number of fields that would trigger the issue was about 22 (it would work fine with less than that). It's also worth noting that this library is encoding spaces as %20 vs + (which the default Faraday one uses).


No pdf

Today I have integrated the plugin. Current version.
I have integrated pdfobject.min.js and docsify-pdf-embed.js after docsify.min.js in the index.html
All scripts are found.
But the PDF is not loaded. I see a codeblock with the content pdf pdf/jaspersoft-studio-user-guide_9.pdf
There is no console output. How can I debug this kind of problem?
Here is my markdown
Benutzerhandbuch

pdf    pdf/user-guide_2.pdf

Hi @Phil795,
Thanks for letting me know of this issue and for using the plug-in. With some testing, it seems to me that the ------- line is causing the problem, but I am not sure what the exact reason is yet. I will look into it and get back to you later this week.

Jeff

Hello @lazypanda10117,
thanks for your quick feedback.
Removed the sign, now the PDF display works :D
When I copy the lines from the readme into my .md file, the error occurs. Maybe you can adjust the Readme so that Copy'n'Paste works.... or the error occurs only with me >.<

It has been long since I first wrote this plug-in. It appears that I put the zero-width space there for the styling. I have updated the readme and hopefully it is now clearer : )


Autocomplete functionality

PR for #150
Overall structure done.
Still need to:

Implement the handler and toJson method properly
Write unit tests.

Coverage decreased (-2.2%) to 80.603% when pulling 42cb843ad26092b6ce0fdbed486bd05f1b8c009f on 150 into dc80fb476f1af991a748c7cb4ab0a220c826c62f on master.

Coverage decreased (-2.2%) to 80.603% when pulling 42cb843ad26092b6ce0fdbed486bd05f1b8c009f on 150 into dc80fb476f1af991a748c7cb4ab0a220c826c62f on master.

Also, moved elasticsearch query classes in the aws package,where they clearly belong

Coverage decreased (-1.7%) to 81.152% when pulling 75022801ca906a00615725f3c77d67f886427235 on 150 into dc80fb476f1af991a748c7cb4ab0a220c826c62f on master.

Coverage decreased (-1.7%) to 81.152% when pulling 5b619577d72cd63a8a0ddafca91aa251e6bcfc49 on 150 into dc80fb476f1af991a748c7cb4ab0a220c826c62f on master.

@rultor merge

@rultor merge

@amihaiemil OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@amihaiemil Done! FYI, the full log is here (took me 3min)


update dda and bruker report

PR checklist

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] If necessary, also make a PR on the nf-core/quantms branch on the nf-core/test-datasets repository.
[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
[ ] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

Cool! Do you have an example report?

Cool! Do you have an example report?

https://github.com/bigbio/pmultiqc/pull/90#issuecomment-1781348193


Google drive support

Is there any plan to support google drive?

Not until somebody volunteers to write the code to do so...

This would kind of be a nightmare since google does stuff based off ID's and allows for duplicates, whereas pytfilesystem does it's actions based off paths.

There is a Google Drive plugin developed years back but never accepted to upstream.
https://github.com/inveniosoftware-attic/invenio-cloudconnector/blob/master/invenio_cloudconnector/fsopeners/google_drive.py

@jirikuncar How does it mitigate the duplicate file name issue?

How does it mitigate the duplicate file name issue?

@Ryanb58 I think it doesn't correctly. We would need to extend the virtual tree map to support multiple items under same name. I am not sure how would it work with FUSE though. It was sufficient for our use-case, because we used it for application-managed-folder only.

Google drive is a great use case, but fs2.0 is intended to have fewer dependancies. Things like GDrive will live as separate projects.


ui is changed based on Figma file

Ui changed and  more Responsive

@Shyam3050 It was not the final UI as of the Figma file. It's just a kind of prototype.

Attach a ss


feat: extra OPTEL collector configuration.

Description
Adds additional telemetry configuration fields to allow users to add their custom OpenTelemetry collector configuration together with the Kubewarden configuration.
Fix #573

@kubewarden/kubewarden-developers I'm adding this  in the Pending review column as draft to give you the oportunity to sneak and peak and give initial feedback while I'm testing this with a Stackstack cluster.

I think this looks good, there's still the chance of someone re-defining (and I guess overload?) our configuration by specifying the same receiver/processor/... There's nothing we can do about that.

Yes, to mitigate this issue I've added a schema validation file in the chart. Therefore, helm chart will block the usage of the same names.

I just wonder if we shouldn't just give up and just let the user overwrite everything with its values. That would simplify the helm chart (get rid of all the if .Values.<> that check for non empty values).

I've considered that first. But then I've remember that our components expect the collector to be a sidecar. Therefore, considering that we are not thinking on change that for now, if we allow the free form approach we can break out environment because the user change the deployment mode intentionally or not. I understand that we can document this. But I think even documenting that, we will get issues from users complaining that "telemetry is broken".  But this is open to discussion. :)

Finally, I love the unit tests you added 👏 ❤

Thanks! I've really liked the tests as well.

@jvanz I like the approach (and the tests).
Just one comment: the right short name for OpenTelemetry is otel, not optel, so we might want to change the values names accordingly.

I also like it, I think is understandable. Maybe a commented line saying that the extra* values have precedence over the other collector.
Another option to consider would be to provide an "enum switch" like we and other Rancher charts used to do for cert-manager (example), if we foresee that this is going to be complicated and we can provide some defaults. E.g: manual-config-with-extra, stackstate-config, etc.

I also like it, I think is understandable. Maybe a commented line saying that the extra* values have precedence over the other collector.

Actually, the extra configuration does not have precedence. It will live together with the previous configuration. In other words, the old otel pipeline remains the same. Nothing changes. But if the user define an extra configuration it will be merged into the otel collector configuration as well.

@kubewarden/kubewarden-developers using this PR with the following values file, I'm able to have a minimum configuration to keep the original Kubewarden OTEL pipelines and add another one to send data to Stackstate:
telemetry:
  metrics:
    enabled: True
    port: 8080
  tracing:
    enabled: True
    jaeger:
      endpoint: "my-open-telemetry-collector.jaeger.svc.cluster.local:4317"
      tls:
        insecure: true
  extraOtelConfig:
    envFrom:
      - secretRef:
          name: open-telemetry-collector
  extraConfig:
    processors:
      resource:
        attributes:
        - key: k8s.cluster.name
          action: upsert
          value: k3d-kubewarden
        - key: service.instance.id
          from_attribute: k8s.pod.uid
          action: insert
    extensions:
      bearertokenauth:
        scheme: SUSEObservability
        token: "${env:API_KEY}"
    exporters:
      debug:
        verbosity: normal
      otlphttp/stackstate:
        auth:
          authenticator: bearertokenauth
        endpoint: https://otlp-stackstate.oldfield.arch.nue2.suse.org:443
        tls:
          insecure_skip_verify: true
    service:
      extensions:
        - bearertokenauth
      pipelines:
        traces/stackstate:
          receivers: [otlp]
          processors: [resource]
          exporters: [otlphttp/stackstate]
        metrics/stackstate:
          receivers: [otlp]
          processors: [resource]
          exporters: [debug, otlphttp/stackstate]

This is the result OTEL collector:
---
# Source: kubewarden-controller/templates/opentelemetry-collector.yaml
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: kubewarden
  namespace: default
  labels:
    helm.sh/chart: kubewarden-controller-3.1.0
    app.kubernetes.io/name: kubewarden-controller
    app.kubernetes.io/instance: release-name
    app.kubernetes.io/version: "v1.18.0"
    app.kubernetes.io/component: controller
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: kubewarden
  annotations:

spec:
  mode: sidecar
  envFrom:
    - secretRef:
        name: open-telemetry-collector
  config:
    extensions:
      bearertokenauth:
        scheme: SUSEObservability
        token: ${env:API_KEY}
    receivers:
      otlp:
        protocols:
          grpc: {}
    processors:
      batch: {}
      resource:
        attributes:
        - action: upsert
          key: k8s.cluster.name
          value: k3d-kubewarden
        - action: insert
          from_attribute: k8s.pod.uid
          key: service.instance.id
    exporters:
      otlp/jaeger:
        endpoint: my-open-telemetry-collector.jaeger.svc.cluster.local:4317
        tls:
          insecure: true
      prometheus:
        endpoint: ":8080"

      debug:
        verbosity: normal
      otlphttp/stackstate:
        auth:
          authenticator: bearertokenauth
        endpoint: https://otlp-stackstate.oldfield.arch.nue2.suse.org:443
        tls:
          insecure_skip_verify: true
    service:
      extensions:
        - bearertokenauth
      pipelines:
        metrics/stackstate:
          exporters:
          - debug
          - otlphttp/stackstate
          processors:
          - resource
          receivers:
          - otlp
        traces/stackstate:
          exporters:
          - otlphttp/stackstate
          processors:
          - resource
          receivers:
          - otlp
        metrics:
          receivers: [otlp]
          processors: []
          exporters: [prometheus]
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlp/jaeger]

During the tests I've figured out that our current approach to deploy OTEL collector using sidecar, prevents us from using the Kubernetes Attributes processor. Which pretty important to fetch metadata from the cluster and allow the association of the metrics/traces with the resources running in the cluster:

The Kubernetes Attributes Processor is one of the most important components for a collector running in Kubernetes. Any collector receiving application data should use it. Because it adds Kubernetes context to your telemetry, the Kubernetes Attributes Processor lets you correlate your application’s traces, metrics, and logs signals with your Kubernetes telemetry, such as pod metrics and traces.

This is configuration required for Stackstate as show in the documentation example. Therefore, I think we need a second iteration on this to improve our OTEL deployment allowing is to enable this processor available only in DaemonSet and Deployment deployments mode.

@kubewarden/kubewarden-developers as we've discussed during a call,  I've updated this PR to move the OTEL configuration from the template to the values file. I've also update the tests to reflect that and start a new test to cover the controller deployment to test a change there as well.

This is blocked until we move forward with https://github.com/kubewarden/kubewarden-controller/issues/931. This PR can be revisit or rework if necessary.

We are missing the question.yaml changes :grimacing: .

@viccuad questions.yml updated!


adding gcp firewall terraform file for quick setup

Required items, please complete
Change(s):

See guidance below

Reason for Change(s):

See guidance below

Version Updated:

Required only for Detections/Analytic Rule templates
See guidance below

Testing Completed:

See guidance below

Checked that the validations are passing and have addressed any issues that are present:

See guidance below

Guidance <- remove section before submitting

Before submitting this PR please ensure that you have read the following sections and filled out the changes, reason for change and testing complete sections:
Thank you for your contribution to the Microsoft Sentinel Github repo.

Details of the code changes in your submitted PR.  Providing descriptions for pull requests ensures there is context to changes being made and greatly enhances the code review process.  Providing associated Issues that this resolves also easily connects the reason.

Change(s):

Updated syntax for XYZ.yaml

Reason for Change(s):

New schema used for XYZ.yaml
Resolves ISSUE #1234

Version updated:

Yes
Detections/Analytic Rule templates are required to have the version updated

The code should have been tested in a Microsoft Sentinel environment that does not have any custom parsers, functions or tables, so that you validate no incorrect syntax and execution functions properly.  If your submission requires a custom parser or function, it must be submitted with the PR.

Testing Completed:

Yes/No/Need Help

Note: If updating a detection, you must update the version field.

Before the submission has been made, please look at running the KQL and Yaml Validation Checks locally.
https://github.com/Azure/Azure-Sentinel#run-kql-validation-locally

Checked that the validations are passing and have addressed any issues that are present:

Yes/No/Need Help

Note: Let us know if you have tried fixing the validation error and need help.

References:

Guidance for Detection checks
General contribution guidance
PR validation troubleshooting

Hello @idoshabi07, Please fill out the PR template.
Also accept license agreement

@microsoft-github-policy-service agree [company="{your company}"]

@microsoft-github-policy-service agree [company="microsoft"]

@idoshabi07 the command you issued was incorrect. Please try again.
Examples are:
@microsoft-github-policy-service agree

and
@microsoft-github-policy-service agree company="your company"

@microsoft-github-policy-service agree company="Microsoft"

Hello @idoshabi07, Please fill out the PR template. Also accept license agreement

done


Let's give RTV a community

Maybe we could start a subreddit. An IRC channel would be nice. Maybe even a Matrix channel and/or a Discord guild.

If anyone wants to take on the task of setting something up and administering it, that's fine with me! If you do, let me know and I'll add links to the top of the README.