Add build date next to version in About page

Is your feature request related to a problem?
When looking in about page, it's not clear when current local version was built. So when looking in main git commit history, it's unclear if my local version has these changes.
Tags are not made for minor versions, so they are not useful for smaller changes.
Describe the solution
I would love to see build date next to version in About page.
For example: Version: <IP_ADDRESS> (2021-04-01)
Describe alternatives you've considered
Additional comment

The changelog for insider builds can be found in the Discord server. In the case of v1.5.17, it's the same as v1.5.


Move setCaptureQuality outside of capture function (iOS)

Currently sessionPreset is set every time when taking picture which causes slowdown at capture time if preset is changed. More importantly will cause blurry/dark photos when changing to 'photo' preset for a first time.
This will remove the call from capture and instead expose it same way how it is done with aspect and type.
I have been only testing this with still captures so might at least need some testing with video capture but would think that sessionPreset works similar way in that case also.
Did not find any discussion as why it was always changing it in the capture call so if this is not good solution for some reason...feedback welcome :)

LGTM, cc/ @charpeni

LGTM too, thank you @tume.


Upgrade the mappings on .tasks index if needed

Signed-off-by: Przemek Bruski<EMAIL_ADDRESS>Description
Upgrade the mappings on .tasks index if needed. This fixes an regression introduced in https://github.com/opensearch-project/OpenSearch/pull/1732
Issues Resolved
https://github.com/opensearch-project/OpenSearch/issues/5376
Check List

[X] New functionality includes testing.
[X] All tests pass
[X] New functionality has been documented.
[X] New functionality has javadoc added
[X] Commits are signed per the DCO using --signoff
[X] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Is it possible to add test around this scenario so we more confident that it will not break in future releases?

Is it possible to add test around this scenario so we more confident that it will not break in future releases?

How I'd do it?

I think the mapping update could be done regardless of the version.
Guarding against a change in mapping without corresponding changes in versions could be done via a commit hook.
Ultimately, the only real solution to this problem is a test suite that does an upgrade of OpenSearch in a baseline version to the current/master version and runs integration tests on it.

Is it possible to add test around this scenario so we more confident that it will not break in future releases?

How I'd do it?

I think the mapping update could be done regardless of the version.
Guarding against a change in mapping without corresponding changes in versions could be done via a commit hook.
Ultimately, the only real solution to this problem is a test suite that does an upgrade of OpenSearch in a baseline version to the current/master version and runs integration tests on it.

We have bcw tests exactly for this scenario! I've never written one myself, but if you can't figure it out we'll find someone to help. Start here: https://opensearch.org/blog/technical-post/2021/11/bwc-testing-for-opensearch/

@pbruski Thanks for the contribution here! I've gone ahead and created #5412 which takes your fix here as well as modifies the existing compatibility test to catch these types of problems in the future.

Closing as this has been resolved in #5412
Thanks again @pbruski !

@andrross Thanks for taking this over - honestly, I have no idea when I'd find the time to dig into the test infra and write that test...


New Game Added [Memory Card Flip]

PR Description 📜
This pull request addresses Issue 3437: Implement new memory card flip game by introducing a new memory card flip game to our application.
The game challenges players to test their memory by flipping over cards and trying to find all the matching pairs. The game board consists of a 4x4 grid of face-down cards, and players can click on any two cards to reveal their images. If the two revealed cards match, they will remain face-up. If the cards do not match, they will flip back over.
The objective is for players to uncover all the matching pairs in as few moves as possible, which requires remembering the positions and contents of the previously revealed cards.
Fixes #3437

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x] I have added screenshot for website preview in assets/images
[x] I have added entries for my game in main README.md
[x] I have added README.md in my folder
[x] I have added working video of the game in README.md (optional)
[x] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @VesperAkshay ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

I have Done the requested changes but why it shows to change the readme file

bro  you have to add you game name and game link in main readme.md file which is located in main folder or which you can see in github

bro you have to add you game name and game link in main readme.md file which is located in main folder or which you can see in github

Thankyou For the Help

Thank you  @VesperAkshay , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


Broken by upgrade to cloudfare tunnel addon 1.3

Just upgraded to 1.3  for cloudfare tunnel addon and the tunnel doesn't start. Errors with "Tunnel cedentials file '/data/tunnel.json' doesn't exist or is not a file.
Looking at the most recent commit, it looks like there's been a change in where the creds file is looked up. It use to be .json, but now we're explicitly expecting tunnel.json. But no upgrade path was defined so any existing users upgrading from pre-1.3 to 1.3 will be broken by this.

Workaround was to uninstall then reinstall the addon to trigger cloudflared login again so the creds will be written to tunnel.json.

Exactly! I just fixed it, but you could reinstall the add-on just like you did.


Get device ID of calling echo

Am I missing it or is there a way to get the device ID of the echo making the request? I used three different devices but see the same IP in the debug message. Are all messages being passed from a single echo? The IP listed is gen 2, all other devices are gen 1. However when I use the alexa app on my phone the same IP shows up.

Duplicate to #59

If you want to see 3 IP use 3 different Alexa accounts


Breakpoints with multiple SCSS variables

Hello,
On Neat Version: 2.0.0 I didn't find anyway to use min-width AND max-width width SCSS variables.
I can write:
$my-neat-grid: (
	columns: 12,
	gutter: 30px,
	media: $tablet-breakpoint,
);

Which will produce a min-width breakpointed grid. (no way to specify a max-width instead)
But if I want to use a min and max width the only solution is to write:
$my-neat-grid: (
	columns: 12,
	gutter: 30px,
	media: "(min-width:300px) and (max-width: 700px)",
);

But there is now way to replace 300px and 700px by a SCSS variable such as $tablet-breakpoint $desktop-breakpoint
Am I wrong ?

You need to do Sass string interpolation. This way you are able to say "Hey Sass, I know I'm in a string right now but pull in the veritable here."
Based on what you have above this would probably look something like the following.
$small-screen: 300px;
$medium-screen: 700px;

$my-neat-grid: (
	columns: 12,
	gutter: 30px,
	media: "(min-width:#{$small-screen}) and (max-width: ${$medium-screen})",
);

Closing for now. Feel free to re-open if issue persists.

Thank you for the tips 👍


Expand options for fillna.

df.fillna now supports the following options:

method
limit
axis

Fixes #1812.
Also add bfill and ffill.

Merging soon if no comment.

LGTM


Rendering is slower in progressive mode than in final mode for simple shading

For instance, rendering using the Shading Normals diagnostic mode is slower with the progressive renderer than with the tile-based renderer.

Is that solely a consequence of issue #70?


nested tests/suites marked with .only() does not always run

If there is .only test in some parent scopes, nested .only might not run. There is even a test to document this behaviour: https://github.com/mochajs/mocha/blob/master/test/integration/fixtures/options/only/bdd.fixture.js#L63
I strongly believe that every suite and test marked with .only() should run, no matter how nested they are. Here is a pr which refactors the .only() logic a bit and fixes it: https://github.com/mochajs/mocha/pull/2601

Thanks for the suggestion.
It's the way it is because of the ambiguity it would otherwise introduce:
describe.only('suite', function () {
  it.only('test', function () {
    //
  });

  it('test 2', function () {
    //
  });
});

What should happen above?  Either way you go with this, you can't argue it isn't also completely reasonable to assume it's the opposite.  :smile:
In the current implementation, tests always take precedence over suites.  This behavior is unambiguous.  I reckon the documentation around it could be better, and I'm happy to merge any PR which improves upon it.
(You can also work around the current strategy, though it may be tedious; consider using --grep instead.  I understand this issue may be important for you, but because you can work around it--and it's not "core" functionality--discussing, designing & implementing other (breaking) strategies is low priority for the project.)

@boneskull It's really reasonable that the smallest nominator in this case wins, otherwise .only loses it's meaning in nested suites. describe.only says which suite should be run, test.only says which tests within suite should run. Really simple.
If you look at the current tests:

describe.only('should run this suite, even', function () {
  describe('should run this nested suite, even', function () {
    describe('should run this doubly-nested suite!', function () {
      it('should run this test', function () {});

      it('should run this test', function () {});

      it('should run this test', function () {});
    });
  });
});

describe('should run this suite with an exclusive test', function () { //<- this runs anyways
  it.only('should run this test', function () {});

  describe('should not run this nested suite', function () {
    describe.only('should not run this doubly-nested suite', function () {
      it('should not run this test', function () {});

      it('should not run this test', function () {});

      it('should not run this test', function () {});
    });
  });
});

There is inconsistency anyways since top level suites are always run if there is nested onlies.

The suite has to run to know if a test has used only.

The suite has to run to know if a test has used only.

And it shouldn't really be a problem if all your code is inside hooks or tests, afaik.


[FIX] iam.physical returns nan for aoi > 90° when n = 1 (#1706)

[x] Closes #1706
[x] I am familiar with the contributing guidelines
[x] Tests added
[ ] Updates entries in docs/sphinx/source/reference for API changes.
[ ] Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[x] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[x] Pull request is nearly complete and ready for detailed review.
[ ] Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

The nan appears to enter here and on the following line, because n1costheta1  and n2costheta1 are both zero when AOI>90, n=1 and n_ar is None.  I wonder if there is a condensed mathematical expression for the IAM in the limit case of n1=1, n2=1, and n3=1.

The nan appears to enter here and on the following line, because n1costheta1 and n2costheta1 are both zero when AOI>90, n=1 and n_ar is None. I wonder if there is a condensed mathematical expression for the IAM in the limit case of n1=1, n2=1, and n3=1.

Such a shortcut is indeed possible, but it requires a special path not only at L178-179 but also at L211-212 (and maybe even L196-201).  But most importantly, it wouldn't be sufficient as we also need to support n2 as a vector (see https://github.com/pvlib/pvlib-python/pull/1616#issuecomment-1411767309), where potentially some elements are 1 and others not, and thus we would still need the lines included in the current pull request.
So, I think that in the end such a shortcut would probably not bring anything anymore in terms of performance and only complicate things.

There is an interesting thing happening with this sequence of inexact trig calculations:
costheta = np.maximum(0, cosd(aoi))  # --> 6.123233995736766e-17
sintheta = np.sqrt(1 - costheta**2)  # --> 1.0
costheta = np.sqrt(1 - sintheta**2) # --> 0.0

If the first line were producing a true zero this function would blow up sooner and more often; therefore, the previous use of zeroang = 1e-06  might be the preferred solution.
We shouldn't really rely on cosd(90) != 0 anywhere, although we probably unwittingly do.

I would follow this up with a suggestion to rewrite tools.cosd as
np.sqrt(1 - np.square(np.sin(90 * (np.pi / 180))))

I would follow this up with a suggestion to rewrite tools.cosd as
np.sqrt(1 - np.square(np.sin(90 * (np.pi / 180))))

I'm puzzled by this. I assume you meant theta * (np.pi/180)). How would it properly evaluate cosd(135)? It can't return a negative value, since np.sqrt only returns the principal root.

I'm puzzled by this

Sorry, didn't think that through all the way.

I'm going to merge this since it's ready to go and an improvement.  Additional improvements can always be future PRs :)
Thanks again @kdebrab for noticing and fixing this bug!


Allow to unset one-to-one relation with generated class

Added  on generated class.
This generate methods like:
}

that allow to remove "Group" association if the relation is one-to-one.
Plus some indentation issue

Fixed generated comment on to-many class fields.
Generated class field that holds TO_MANY relations is instance of ArrayCollection.
Commit Ref: be3adfb

to be exact, it is an instance of the Collection interface. When retrieving the entity from the DB, the PersistentCollection will be used by the ORM to be able to track changes

shure?
in
Doctrine\ORM\Tools\EntityGenerator::_generateEntityConstructor()
at line 404 seems to be instance of
\Doctrine\Common\Collections\ArrayCollection...

The constructor uses the ArrayCollection implementation of the interface. But you will not always receive this implementation. When the object is created by Doctrine itself when coming from the DB, it uses a Doctrine\ORM\PersistentCollection (which also implements the Doctrine\Common\Collections\Collection interface) instead to have change tracking features.
So the phpdoc should tell you you get a Collection, not an ArrayCollection (PersistentCollection implements the interface but does not extend ArrayCollection)

you are right

You should check if the association is indeed null-able.

@asm89
you are right, but i don't understand why null-able attribute is defined for @JoinColumn annotation instead of @JoinColumn...
according to :http://www.doctrine-project.org/docs/orm/2.1/en/reference/annotations-reference.html

nullable: Determine if the related entity is required, or if null is an allowed state for the relation. Defaults to true.
Here talks about entities, but may be necessary more than one column to define an entity.

Nullable is at JoinColumn because it is in JoinColumn that it is exported to DB. *ToOne is just Doctrine logic, it means nothing to DB.

yes, but if we are looking at Doctrine side:
@*ToOne should work in the same way of @Column...
For example:
 * @var string
 * @Column(type="string", length=32, unique=true, nullable=false)
 */
protected $username;```

and
```/**
 * @var User
 * @OneToOne(targetEntity="User")
 */
protected $user;```

According to current annotations:  $username can be null (and null-able attribute confirm it).

At the same way, if $user can be null, the null-able attribute shuld be on @OneToOne.

On the other side...
If i have a relation with:
```/**
 * @OneToOne(targetEntity="Customer")
 * @JoinColumn(name="customer_id", referencedColumnName="id",nullable=false)
 * @JoinColumn(name="customer_name", referencedColumnName="name", nullable=true)
 */
private $customer;

i think that it means that "name" column is not needed to find the correct target entity, so why specify it?

How can i detect if a @*ToOne association is null-able?
If all @JoinColumn have nullable attribute stetted to true?

This should help you:
$assocMapping = $classMetadata->associationMappings[$fieldName];

foreach ($assocMapping['joinColumns'] as $joinColumn) {
    echo ((bool) $joinColumn['nullable']) ? 'nullable' : 'not null';
}

Added nullable joinColumns check

:+1:

@jwage is better now?

@asm89 done

For the rest it looks ok now! :)

there is somewhere an XML file that i can use with pear code sniffer to check coding standards?

no, its not perfectly fomalized yet. Coding standard is the Symfony2 one.

is this xml, right?
https://github.com/opensky/Symfony2-coding-standard

Yep, it is the best I know of for the Sf2 CS. I'm not sure exactly about the differences between Doctrine and Symfony, except that Doctrine does not suffix the interfaces with Interface (and uses an uppercased AS in the foreach loop ^^)

thanks


hash_info: don't use dataclass

We are creating lots of these instances and dataclass is significantly slower.
For example, running:
from dvc_data.hashfile.hash_info import HashInfo

hashes = []
for value in range(10000000):
    hashes.append(HashInfo("md5", value))

before this PR takes ~6.1sec and after ~4.9sec.
Most of the improvement is actually coming from using __slots__, which were finally supported by dataclasses in 3.10.
Another (temporary) downside to using dataclass is that it is kinda buggy with other tools. E.g. mypyc is failing to compile it throwing an error like https://github.com/mypyc/mypyc/issues/921 for the HashInfo.name.

We are creating lots of these instances and dataclass is significantly slower.

How much perf improvements do you see with this?

Codecov Report

Merging #56 (d86e187) into main (070fd08) will decrease coverage by 0.00%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##             main      #56      +/-   ##
==========================================
- Coverage   34.24%   34.24%   -0.01%
==========================================
  Files          33       33
  Lines        1673     1676       +3
  Branches      261      262       +1
==========================================
+ Hits          573      574       +1
- Misses       1089     1090       +1
- Partials       11       12       +1

Impacted Files
Coverage Δ

src/dvc_data/hashfile/hash_info.py
55.26% <75.00%> (-1.88%)
:arrow_down:

Continue to review full report at Codecov.

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

@skshetry Great question! Added to the PR desc.

Overall we are not heavy users of dataclasses in this application (and a few more places like TreeEntry), so the overhead for a simpler implementation is very minor.

I just wish we had not done this kind of change without looking into other alternatives (eg: attrs with slots, dataclasses, etc). This makes debugging quite hard. Also, the above benchmarks seem unfair.


PHPUnit: Prophecy - failing build

@oscarotero the build is failing just because of the new dependency phpspec/prophecy-phpunit, which I added - because of new PHPUnit deprecated calling prophesize and suggests to install this package and use Trait from it.
https://github.com/middlewares/request-handler/blob/master/tests/RequestHandlerTest.php#L23
https://github.com/middlewares/request-handler/blob/master/tests/RequestHandlerTest.php#L82

Yes, I know.
The problem is that this package fails in php 7.2, so finally I decided to remove the test that was using this functionality, because it's just a small test case, not very important for not. It can be added later


Switch to 2 spaces indent

Don't forget to use https://help.github.com/articles/closing-issues-via-commit-messages/


Running truffle test command do some loop with strange caracters

[X] I've opened a support ticket before filing this issue.

Issue
Learning truffle test in JS, Doing the pet-shop tutorial on the truffle website.
Everything was ok (ganache running, compilation contract success, migration down), but when i run "truffle test" command, my terminal showing strange caracters in loop. Can't find solution on internet...
I reproduce on windows and mac. I tried to use different version of nodeJs/truffle but not solve it.
Steps to Reproduce
Run truffle test command
Expected Behavior
The command should show the unit tests result.
Actual Results
I redirect the output of the truffle test command to see whats happened, and this is the result :

The command didn't finish itself, i need to stop it. I have a log about 1,5Go for a run about 30s.
Environment

Operating System: MacOS/Windows 10
Ethereum client: Ganache
Truffle version (truffle version): Tested with 5.4.25 and 5.4.27
node version (node --version): Tested with 12.8.22 and 14.18.1
npm version (npm --version): 8.3.0

I opened an issue on pet-shop boxe repository too...
Thanks in advance for hep !

It seam a problem about color.js dependency :
https://github.com/trufflesuite/truffle/issues/4607#issuecomment-1008279726


nixos/grub: module options to modify entry classes

Add class to grub menu options. This allows for icons and styling when theme-ing grub2

Motivation for this change
Adds the --class nixos flag to grub entries, which allows for customization via themes.
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

@ofborg test grub

Tests are failing in aarch64-linux. The error doesn't seem related to the PR but I want someone to confirm first (for example, running the tests on master and reproducing the same error). Because otherwise we may have folks with broken systems after this PR is merged.

Hmm. Yes, I would like another reviewer to test this please.
Just because it works on my machines, doesn't mean it works globally 😱

But I also feel confident about the change. Attaching generated grub.cfgs (both of which boot) and their diff
87c87
< menuentry "NixOS - Default" --unrestricted {
---
> menuentry "NixOS - Default" --class nixos --unrestricted {
89c89
<   linux ($drive1)//kernels/kkmv1av4dzyfidj47ippcphgqwggs3v9-linux-5.15.32-bzImage init=/nix/store/zq1jgw211ljfgqn1n7qcjx3hyihkf92r-nixos-system-mamba-22.05.20220331.fe9906c/init loglevel=4 audit=1
---
>   linux ($drive1)//kernels/kkmv1av4dzyfidj47ippcphgqwggs3v9-linux-5.15.32-bzImage init=/nix/store/j62bn1vw1hif09p25amryb02shv8lf3b-nixos-system-mamba-22.05.20220331.9dddd48/init loglevel=4 audit=1
101,108c101,102
< submenu "NixOS - All configurations" {
< menuentry "NixOS - Configuration 167 (2022-04-01 - 22.05.20220331.fe9906c)"  {
< search --set=drive1 --fs-uuid 66DE-7C3C
<   linux ($drive1)//kernels/kkmv1av4dzyfidj47ippcphgqwggs3v9-linux-5.15.32-bzImage init=/nix/store/zq1jgw211ljfgqn1n7qcjx3hyihkf92r-nixos-system-mamba-22.05.20220331.fe9906c/init loglevel=4 audit=1
<   initrd ($drive1)//kernels/6x22pi0qdmknzway6yn07wxm64djcpd8-initrd-linux-5.15.32-initrd
< }
<
< menuentry "NixOS - Configuration 166 (2022-03-31 - 22.05.20220331.9dddd48)"  {
---
> submenu "NixOS - All configurations" --class submenu {
> menuentry "NixOS - Configuration 166 (2022-03-31 - 22.05.20220331.9dddd48)" --class nixos {
114c108
< menuentry "NixOS - Configuration 165 (2022-03-29 - 22.05.20220314.73ad5f9)"  {
---
> menuentry "NixOS - Configuration 165 (2022-03-29 - 22.05.20220314.73ad5f9)" --class nixos {
120c114
< menuentry "NixOS - Configuration 164 (2022-03-25 - 22.05.20220314.73ad5f9)"  {
---
> menuentry "NixOS - Configuration 164 (2022-03-25 - 22.05.20220314.73ad5f9)" --class nixos {
126c120
< menuentry "NixOS - Configuration 163 (2022-03-25 - 22.05.20220314.73ad5f9)"  {
---
> menuentry "NixOS - Configuration 163 (2022-03-25 - 22.05.20220314.73ad5f9)" --class nixos {
129a124,129
> }
>
> menuentry "NixOS - Configuration 162 (2022-03-24 - 22.05.20220314.73ad5f9)" --class nixos {
> search --set=drive1 --fs-uuid 66DE-7C3C
>   linux ($drive1)//kernels/js5d1xvaj3rwf319bqp18w8n9mmi9vqj-linux-5.15.28-bzImage init=/nix/store/l7s0y9q1ylb88m1a0k7n0yhc6wg9l0hp-nixos-system-mamba-22.05.20220314.73ad5f9/init loglevel=4 audit=1
>   initrd ($drive1)//kernels/mcmgx6ys61bhy7i1hxb6dry4dkw9mawv-initrd-linux-5.15.28-initrd

comparing 9dddd48 (new) with fe9906c (parent/ old)
grub.cfg.new.txt
grub.cfg.old.txt

I am more concerned about the aarch64-linux tests failure. The diff looks fine to me, and also code-wise.
If someone can reproduce the aarch64-linux error on master, in this would mean the error is not introduced in this PR.
Anyway, let's run the test again.
@ofborg test grub

@thiagokokada Yes. Breaks on unrelated pr: https://github.com/NixOS/nixpkgs/pull/167592/checks?check_run_id=5859156388


如何自定义表情？或者说，表情图片所对应的key是怎么得来的呢？

you should check the source.
BTW,  as the international portal, you should you international language English.


Update TLS-for-Local-IoT.md

Pls check this doc needs "Contents" section:  there is a lot of information.

Didn't see a contents section? It looks fine to me.

I left it off as it was extraneous
On 7 June 2017 at 12:02, Ann-Marie Grace<EMAIL_ADDRESS>wrote:

Didn't see a contents section? It looks fine to me.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/OWASP/owasp-summit-2017/pull/958#issuecomment-306749803,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ab3mwx3jOnZblexwjqtIJ0n-TdvjV0TWks5sBnU5gaJpZM4Nyakj
.


Update canva.sh

The arm version of the installer is no longer being updated. There is an Universal installer now.

I get being cautious, but we can always restore to previous version using the git history. Please delete the commented lines

Thank you!


Warnings (1.2.x) when compiling with fastint support

I wanted to test out the new fastint support, but when defining DUK_OPT_FASTINT and compiling with /W3 in MSVC, I get the following warnings:
1>duk_api_stack.c(84): warning C4244: 'return' : conversion from 'duk_int64_t' to 'duk_int_t', possible loss of data
1>duk_api_stack.c(141): warning C4244: 'return' : conversion from 'duk_int64_t' to 'duk_uint_t', possible loss of data
1>duk_tval.c(78): warning C4146: unary minus operator applied to unsigned type, result still unsigned

These look potentially disastrous.  Compiler is MSVC 2013 (x86 cl.exe 18.0).

Hmm, these look harmless but should be fixed with casts:

duk_api_stack.c:84: this is just missing a cast, the value is clamped just before return
duk_api_stack.c:141: same here
duk_tval.c:78: should also be harmless, just missing a cast

Fixed in master, https://github.com/svaarala/duktape/commit/e13895592af780816d1ff901808b168e986a7237

This snapshot should contain the fix: http://duktape.org/snapshots/duktape-1.2.99-20150408083333-v1.2.0-19-g8d134b4.tar.xz

This indeed fixes the warnings.  Thanks!


Support for Hardware IDs

Currently, there are no PURL equivalents for Hardware. The closest I could find were:

Hardware IDs (Windows) - Some articles
Bus/ID generated by hw-probe (Linux) - Example
Model Identifier, Part Numbers, Board ID and DeviceID (Mac)

The proposal is to add hwid as an array attribute under component and let the user populate the same with array of strings.

See https://github.com/CycloneDX/cyclonedx-property-taxonomy/blob/main/cdx/device.md

@stevespringett are you proposing to use properties instead of a top-level id? It might be alright

There are many types of identifiers used in hardware devices. CycloneDX properties capture many of the common ones, but there are many industry-specific formats. For example UDI is required for medical devices in the U.S, but there are some challenges in terms of variants of the spec.
https://www.greenlight.guru/blog/udi-unique-device-identifiers-fda
https://www.greenlight.guru/blog/udi-101
I think in order to support hardware identifiers natively, we would need to a simple way to add initial support identifiers used in the most common industries along with the existing support for general identifiers in the property taxonomy, but also allow future identifers to easily be added, My initial thought on this is to use enumerations.
"components": [
  {
    "type": "device",
    "name": "my device",
    "hardwareProperties": {
      "identities": [
        { "type": "serialNumber", "value": "123456", "encoding": "TBD" },
        { "type": "gtin-14", "value": "12345678901234", "encoding": "TBD" }
      ]
    }
  }
]

Note, some hardware identifier schemes have optional or required encoding methods that should likely also be captured.


Update buttons with Hover Effect

Add a hover effect on buttons by darkening 15%. This should be instant and match adafruit.com.

Hello, @makermelissa, I would like to work on this!

Cool, thanks. It should be a pretty easy one.

Great, if I think it's going to be easy.
Question should all buttons have the effect applied?

Fixed via #33.

Sorry I forgot to answer you question. Yes, it should be all buttons. If there are any that were missed by #33, we should get those too.


Cluster workers died When training SS-XGB with ABY3 protocol

Issue Type
Bug
Source
binary
Secretflow Version
secretflow 0.7.7b1
OS Platform and Distribution
Linux ubuntu 18.04
Python version
3.8.13
Bazel version
No response
GCC/Compiler version
No response
What happend and What you expected to happen.
Hi,
I'm training the SS-XGB model with 3-nodes cluster. There is an error raised by ray.
The VM Layout for SPURuntime is Hybrid.
I tried several times, this error occurred stably.

Reproduction code to reproduce the issue.
import sys
import time
import logging

import spu
import secretflow as sf
import pandas as pd

from secretflow.device.driver import wait, reveal
from secretflow.data import FedNdarray, PartitionWay
from secretflow.ml.boost.ss_xgb_v import Xgb

from sklearn.metrics import roc_auc_score

# init log
logging.basicConfig(stream=sys.stdout, level=logging.INFO)

# init all nodes in local Standalone Mode.
sf.shutdown()
sf.init(address='***')

# init PYU, the Python Processing Unit, process plaintext in each node.
alice = sf.PYU('alice')
bob = sf.PYU('bob')

# init SPU, the Secure Processing Unit,
#           process ciphertext under the protection of a multi-party secure computing protocol

cdef = {
    'nodes': [
        {'party': 'alice', 'id': 'alice:0', 'address': '***'},
        {'party': 'bob', 'id': 'bob:1', 'address': '***'},
        {'party': 'carol', 'id': 'carol:2', 'address': '***'}
    ],
    'runtime_config': {
        'protocol': spu.spu_pb2.ABY3,
        'field': spu.spu_pb2.FM64,
    },
}

spu = sf.SPU(cdef)

# read data in each party
def read_x(role, mode):
    file_path = "/shared/sf_test/{}/{}_{}_epsilon_450d.csv".format(role, mode, role)
    x = pd.read_csv(file_path)
    if role == "host":
        x = x.to_numpy()[:, 1:]
    else:
        x = x.to_numpy()[:, 2:]
    from sklearn.preprocessing import StandardScaler
    scaler = StandardScaler()
    x = scaler.fit_transform(x)
    return x

def read_y(role, mode):
    file_path = "/shared/sf_test/{}/{}_{}_epsilon_450d.csv".format(role, mode, role)
    y = pd.read_csv(file_path)
    y = y.to_numpy()
    return y[:, 1]

# alice / bob / carol each hold one third of the features of the data
# read_x is execute locally on each node.
v_data = FedNdarray(
    partitions={
        alice: alice(read_x)("host", "train"),
        bob: bob(read_x)("guest", "train"),
    },
    partition_way=PartitionWay.VERTICAL,
)
# Y label belongs to alice
label_data = FedNdarray(
    partitions={
        bob: bob(read_y)("guest", "train"),
    },
    partition_way=PartitionWay.VERTICAL,
)

# wait IO finished
wait([p.data for p in v_data.partitions.values()])
wait([p.data for p in label_data.partitions.values()])

# run SS-XGB
xgb = Xgb(spu)
start = time.time()
params = {
    # for more detail, see Xgb API doc
    'num_boost_round': 5,
    'max_depth': 5,
    'learning_rate': 0.1,
    'sketch_eps': 0.08,
    'objective': 'logistic',
    'reg_lambda': 1,
    'subsample': 1,
    'colsample_bytree': 1,
    'base_score': 0.5,
}
model = xgb.train(params, v_data, label_data)
logging.info(f"train time: {time.time() - start}")

# Do predict
start = time.time()
test_data = FedNdarray(
    partitions={
        alice: alice(read_x)("host", "test"),
        bob: bob(read_x)("guest", "test"),
    },
    partition_way=PartitionWay.VERTICAL,
)
# Now the result is saved in the spu by ciphertext
spu_yhat = model.predict(test_data)
# reveal for auc test.
yhat = reveal(spu_yhat)
logging.info(f"predict time: {time.time() - start}")
y = read_y("guest", "test")
logging.info(f"auc: {roc_auc_score(y, yhat)}")

The log of ray worker is:
[2022-10-11 11:23:57,274 I 48450 48450] core_worker_process.cc:120: Constructing CoreWorkerProcess. pid: 48450
[2022-10-11 11:23:57,277 I 48450 48450] grpc_server.cc:105: worker server started, listening on port 10015.
[2022-10-11 11:23:57,280 I 48450 48450] core_worker.cc:175: Initializing worker at address: ***, worker ID b888304477f787569d8dfa34775d9b07f75145bc1701c9583d98609f, raylet de5ab6d85dcfc76556c8ea0e28f76c3ad3509f3efc1ac709fcca5c2b
[2022-10-11 11:23:57,280 I 48450 48473] gcs_server_address_updater.cc:32: GCS Server updater thread id:<PHONE_NUMBER>11360
[2022-10-11 11:23:57,382 I 48450 48450] io_service_pool.cc:35: IOServicePool is running with 1 io_service.
[2022-10-11 11:23:57,383 I 48450 48490] core_worker.cc:494: Event stats:

Global stats: 16 total (11 active)
Queueing time: mean = 194.006 us, max = 1.110 ms, min = 198.231 us, total = 3.104 ms
Execution time:  mean = 22.984 us, total = 367.740 us
Event stats:
        PeriodicalRunner.RunFnPeriodically - 7 total (2 active, 1 running), CPU time: mean = 52.534 us, total = 367.740 us
        UNKNOWN - 3 total (3 active), CPU time: mean = 0.000 s, total = 0.000 s
        InternalPubSubGcsService.grpc_client.GcsSubscriberPoll - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        GcsClient.deadline_timer.check_gcs_connection - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        WorkerInfoGcsService.grpc_client.AddWorkerInfo - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        InternalPubSubGcsService.grpc_client.GcsSubscriberCommandBatch - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        NodeManagerService.grpc_client.ReportWorkerBacklog - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        CoreWorker.deadline_timer.flush_profiling_events - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s

[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = b92df5f0b7329c551c28e70ed6146944fc90fe7553673517c0f4c44d, IsAlive = 1
[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = de5ab6d85dcfc76556c8ea0e28f76c3ad3509f3efc1ac709fcca5c2b, IsAlive = 1
[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = 00a937ac4146f0f746a369b93cbf6d238ae3b6f96d7b48a124410af9, IsAlive = 1
[2022-10-11 11:24:07,391 W 48450 48491] metric_exporter.cc:207: [1] Export metrics to agent failed: GrpcUnknown: RPC Error message: Method not found!; RPC Error details: . This won't affect Ray, but you can lose metrics from the cluster.

Hi @BeStrongok ,
I will try to reproduce the issue and reach back to you on the next working day.

The log of ray worker is:
[2022-10-11 11:23:57,274 I 48450 48450] core_worker_process.cc:120: Constructing CoreWorkerProcess. pid: 48450
[2022-10-11 11:23:57,277 I 48450 48450] grpc_server.cc:105: worker server started, listening on port 10015.
[2022-10-11 11:23:57,280 I 48450 48450] core_worker.cc:175: Initializing worker at address: ***, worker ID b888304477f787569d8dfa34775d9b07f75145bc1701c9583d98609f, raylet de5ab6d85dcfc76556c8ea0e28f76c3ad3509f3efc1ac709fcca5c2b
[2022-10-11 11:23:57,280 I 48450 48473] gcs_server_address_updater.cc:32: GCS Server updater thread id:<PHONE_NUMBER>11360
[2022-10-11 11:23:57,382 I 48450 48450] io_service_pool.cc:35: IOServicePool is running with 1 io_service.
[2022-10-11 11:23:57,383 I 48450 48490] core_worker.cc:494: Event stats:

Global stats: 16 total (11 active)
Queueing time: mean = 194.006 us, max = 1.110 ms, min = 198.231 us, total = 3.104 ms
Execution time:  mean = 22.984 us, total = 367.740 us
Event stats:
        PeriodicalRunner.RunFnPeriodically - 7 total (2 active, 1 running), CPU time: mean = 52.534 us, total = 367.740 us
        UNKNOWN - 3 total (3 active), CPU time: mean = 0.000 s, total = 0.000 s
        InternalPubSubGcsService.grpc_client.GcsSubscriberPoll - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        GcsClient.deadline_timer.check_gcs_connection - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        WorkerInfoGcsService.grpc_client.AddWorkerInfo - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        InternalPubSubGcsService.grpc_client.GcsSubscriberCommandBatch - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        NodeManagerService.grpc_client.ReportWorkerBacklog - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        CoreWorker.deadline_timer.flush_profiling_events - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s

[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = b92df5f0b7329c551c28e70ed6146944fc90fe7553673517c0f4c44d, IsAlive = 1
[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = de5ab6d85dcfc76556c8ea0e28f76c3ad3509f3efc1ac709fcca5c2b, IsAlive = 1
[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = 00a937ac4146f0f746a369b93cbf6d238ae3b6f96d7b48a124410af9, IsAlive = 1
[2022-10-11 11:24:07,391 W 48450 48491] metric_exporter.cc:207: [1] Export metrics to agent failed: GrpcUnknown: RPC Error message: Method not found!; RPC Error details: . This won't affect Ray, but you can lose metrics from the cluster.

The error message output by secreflow is:
ray.exceptions.WorkerCrashedError: The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-10-11 11:24:54,061 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): ray::SPURuntime.run() (pid=24849, ip=***, repr=<secretflow.device.device.spu.SPURuntime object at 0x7f68a82bb250>)
  At least one of the input arguments for this task could not be computed:
ray.exceptions.RayTaskError: ray::_spu_compile() (pid=11410, ip=***)
  At least one of the input arguments for this task could not be computed:
ray.exceptions.RayTaskError: ray::SPURuntime.run() (pid=11409, ip=***, repr=<secretflow.device.device.spu.SPURuntime object at 0x7f3a047f7340>)
  At least one of the input arguments for this task could not be computed:
ray.exceptions.RayTaskError: ray::_spu_compile() (pid=11410, ip=***)
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/secretflow/device/device/spu.py", line 476, in _spu_compile
    meta_args, meta_kwargs = jax.tree_util.tree_map(
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/jax/_src/tree_util.py", line 184, in tree_map
    return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/jax/_src/tree_util.py", line 184, in <genexpr>
    return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/secretflow/device/device/spu.py", line 477, in <lambda>
    lambda x: ray.get(x) if isinstance(x, ray.ObjectRef) else x,
ray.exceptions.WorkerCrashedError: The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.

Hi BeStrongok,
What's your machine spec and size of dataset?
FYI, compare with LR, XGB requires way more memory.

Hi @BeStrongok ,
Could you please provide the mock version of epsilon_450d.csv for two parties?

The log of ray worker is:
[2022-10-11 11:23:57,274 I 48450 48450] core_worker_process.cc:120: Constructing CoreWorkerProcess. pid: 48450
[2022-10-11 11:23:57,277 I 48450 48450] grpc_server.cc:105: worker server started, listening on port 10015.
[2022-10-11 11:23:57,280 I 48450 48450] core_worker.cc:175: Initializing worker at address: ***, worker ID b888304477f787569d8dfa34775d9b07f75145bc1701c9583d98609f, raylet de5ab6d85dcfc76556c8ea0e28f76c3ad3509f3efc1ac709fcca5c2b
[2022-10-11 11:23:57,280 I 48450 48473] gcs_server_address_updater.cc:32: GCS Server updater thread id:<PHONE_NUMBER>11360
[2022-10-11 11:23:57,382 I 48450 48450] io_service_pool.cc:35: IOServicePool is running with 1 io_service.
[2022-10-11 11:23:57,383 I 48450 48490] core_worker.cc:494: Event stats:

Global stats: 16 total (11 active)
Queueing time: mean = 194.006 us, max = 1.110 ms, min = 198.231 us, total = 3.104 ms
Execution time:  mean = 22.984 us, total = 367.740 us
Event stats:
        PeriodicalRunner.RunFnPeriodically - 7 total (2 active, 1 running), CPU time: mean = 52.534 us, total = 367.740 us
        UNKNOWN - 3 total (3 active), CPU time: mean = 0.000 s, total = 0.000 s
        InternalPubSubGcsService.grpc_client.GcsSubscriberPoll - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        GcsClient.deadline_timer.check_gcs_connection - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        WorkerInfoGcsService.grpc_client.AddWorkerInfo - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        InternalPubSubGcsService.grpc_client.GcsSubscriberCommandBatch - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        NodeManagerService.grpc_client.ReportWorkerBacklog - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s
        CoreWorker.deadline_timer.flush_profiling_events - 1 total (1 active), CPU time: mean = 0.000 s, total = 0.000 s

[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = b92df5f0b7329c551c28e70ed6146944fc90fe7553673517c0f4c44d, IsAlive = 1
[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = de5ab6d85dcfc76556c8ea0e28f76c3ad3509f3efc1ac709fcca5c2b, IsAlive = 1
[2022-10-11 11:23:57,383 I 48450 48490] accessor.cc:599: Received notification for node id = 00a937ac4146f0f746a369b93cbf6d238ae3b6f96d7b48a124410af9, IsAlive = 1
[2022-10-11 11:24:07,391 W 48450 48491] metric_exporter.cc:207: [1] Export metrics to agent failed: GrpcUnknown: RPC Error message: Method not found!; RPC Error details: . This won't affect Ray, but you can lose metrics from the cluster.

The error message output by secreflow is:
ray.exceptions.WorkerCrashedError: The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-10-11 11:24:54,061 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): ray::SPURuntime.run() (pid=24849, ip=***, repr=<secretflow.device.device.spu.SPURuntime object at 0x7f68a82bb250>)
  At least one of the input arguments for this task could not be computed:
ray.exceptions.RayTaskError: ray::_spu_compile() (pid=11410, ip=***)
  At least one of the input arguments for this task could not be computed:
ray.exceptions.RayTaskError: ray::SPURuntime.run() (pid=11409, ip=***, repr=<secretflow.device.device.spu.SPURuntime object at 0x7f3a047f7340>)
  At least one of the input arguments for this task could not be computed:
ray.exceptions.RayTaskError: ray::_spu_compile() (pid=11410, ip=***)
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/secretflow/device/device/spu.py", line 476, in _spu_compile
    meta_args, meta_kwargs = jax.tree_util.tree_map(
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/jax/_src/tree_util.py", line 184, in tree_map
    return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/jax/_src/tree_util.py", line 184, in <genexpr>
    return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
  File "/root/miniconda3/envs/secretflow/lib/python3.8/site-packages/secretflow/device/device/spu.py", line 477, in <lambda>
    lambda x: ray.get(x) if isinstance(x, ray.ObjectRef) else x,
ray.exceptions.WorkerCrashedError: The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.

Hi BeStrongok,
What's your machine spec and size of dataset?
FYI, compare with LR, XGB requires way more memory.

I run the docker with -m 50G --shm-size=10.24gb options. The logical processors of host machine is 48.

Hi @BeStrongok ,
Thank you for your patience.
We are still working on optimizations to support  large dataset. At this moment, could you please shrink the dataset to [10000, 450] to check if everything else goes well?

Hi @BeStrongok ,
Thank you for your patience. We are still working on optimizations to support large dataset. At this moment, could you please shrink the dataset to [10000, 450] to check if everything else goes well?

Thanks for your help. Due to the upload limitation of github, i have to shrink the dataset to [5000, 450].
train_guest_epsilon_450d_sample.csv
train_host_epsilon_450d_sample.csv

I also run by myself on this minimum dataset, it can work well.
(secretflow) bash-4.4# python test_xgb.py
2022-10-12 03:20:34.121245: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
INFO:ray.worker:Connecting to existing Ray cluster at address: ***
INFO:absl:Unable to initialize backend 'tpu_driver': NOT_FOUND: Unable to find driver in registry given worker:
INFO:absl:Unable to initialize backend 'gpu': NOT_FOUND: Could not find registered platform with name: "cuda". Available platform names are: Interpreter Host
INFO:absl:Unable to initialize backend 'tpu': INVALID_ARGUMENT: TpuPlatform is not available.
WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
INFO:root:global_setup time 30.576295614242554s
INFO:root:epoch 0 time 92.19655013084412s

Hi @BeStrongok ，
Please stay tuned for future versions. We are keep improving algorithms to support larger datasets.
Thanks.

Hi @BeStrongok ，
Please stay tuned for future versions. We are keep improving algorithms to support larger datasets. Thanks.

Thanks, looking for your improvement. :)


Console error while dragging and zooming the graph

I am facing issue with dragging and zooming a basic graph.
my package.json contains
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>The error is
`
Uncaught TypeError: Cannot read properties of null (reading 'ctrlKey')
    at SVGGElement.defaultFilter (drag.js:10:11)
    at SVGGElement.mousedowned (drag.js:51:1)
    at SVGGElement.<anonymous> (on.js:3:1)
| defaultFilter | @ | drag.js:10
-- | -- | -- | --
  | mousedowned | @ | drag.js:51
  | (anonymous) | @ | on.js:3

Uncaught TypeError: Cannot read properties of null (reading 'ctrlKey')
at HTMLDivElement.defaultFilter (zoom.js:13:11)
at HTMLDivElement.mousedowned (zoom.js:251:1)
at HTMLDivElement. (on.js:3:1)
defaultFilter @ zoom.js:13
mousedowned @ zoom.js:251
(anonymous) @ on.js:3
`
Please help me to resolve this..

I'm seeing the same error.  Graph shows up but can not pan or zoom.
"d3": "^7.3.0",     "d3-context-menu": "^2.1.0",     "d3-drag": "^1.2.5",     "d3-force": "^2.0.1",     "d3-shape": "^1.3.7",     "d3-zoom": "^1.8.3",     "react-d3-graph": "^2.6.0",

The D3 version must me 5.16 or lower because event global was discontinued in higher versions of D3 it causes errors when zooming and dragging any node or link. Make sure you also change d3-zoom and D3 drag to lower versions. the following worked for me:
"d3": "^5.1.6", "d3-context-menu": "^2.1.0", "d3-drag": "^1.2.5", "d3-force": "^2.0.1", "d3-shape": "^1.3.7", "d3-zoom": "^1.8.3", "react-d3-graph": "^2.6.0",


Fixes #3519 -- removes out-of-date images, improves text

No need I think for images at all; this page is aimed at developers, who can be expected to be already familiar with the frontend interface. I've removed the images and improved the text.

Thanks @evildmp


error: No interpreter found --

I am new to uv.
The problem
When I tried to initialize a new project, I received the following:
❯ uv init TestProject --verbose
DEBUG uv 0.5.1 (f399a5271 2024-11-08)
DEBUG Reading Python requests from version file at `/Users/edmund/Downloads/.python-version`
DEBUG Searching for Python interpreter with executable name `3.10-dev`
DEBUG Checking for Python interpreter at executable name `3.10-dev`
error: No interpreter found for executable name `3.10-dev` in virtual environments, managed installations, or search path

The fix
Removed the .python-version present in the root folder from where I was trying to create the new project.
Longer term fix
I'm not sure if there is a better way to report the error, or dare I say use the version of python that I installed using uv.  I don't know enough to have a POV.

I think your issue is that uv is reading the python version from a .python-version file in your downloads folder.
That version is not valid (use uv python list to see valid versions if im not mistaken).
This line shows your issue:
DEBUG Reading Python requests from version file at `/Users/edmund/Downloads/.python-version`

Thanks for filing. @Kanerix is right that we're reading 3.10-dev from your .python-version file. Then, because it's not a valid version, we assume it's the name of an executable, and we can't find an executable named 3.10-dev. Agree it would be nice if the error message included more context here.


Q appears to not work properly (?)

Steps to reproduce:

Open oni
Press <S-Q>
Type :c
Type anything

Result: output is inserted into current buffer when enter is pressed, but command popup never disappears

The command popup appears to not work at all (but still contain : after enter is pressed) when text is entered into the buffer before <S-Q> is pressed

what version of Nvim? does gQ work?

Neovim 0.3.3, gQ produces the same results

I would not expect oni2 to work well with 0.3.x, try 0.4.

@justinmk how would you do that? 🤔 seems like 0.3.3 is hardcoded in

Then I guess that's not the problem. I thought it could be related to ext_messages feature which requires 0.4

Result: output is inserted into current buffer when enter is pressed, but command popup never disappears

Am I missing something, or is that not the same behaviour as terminal neovim?
Pressing Q in neovim I enter Ex mode, so pressing c then anything else I start to type that into the command line ex mode.
That is, if I do Qc<CR> then a<CR>b<CR>c<CR>.<CR>visual<CR> I drop back to normal mode with no popup as I would expect and the expected added lines.
There is a few other issues around this though:

The first letter seems to not show up when done in an empty buffer.
When leaving Ex mode, control doesn't seem to return to the user, again only in an empty buffer. You are stuck unable to move, but still able to enter commands.
Currently there is no message of "Entered Ex mode, type visual to leave" (Though I think that will be covered by #280).
Syntax highlighting doesn't seem too happy when I do this in a normal file (a json file was tested) it seems to break the subsequent highlights until I edit the code.

Its also not great UI/UX for the user, with both the different style of input and the missing message.

seems like 0.3.3 is hardcoded in

Currently we vendor neovim into Oni2, to prevent so many of the issues we had of people using older versions and stuff breaking or not launching. Right now that is 0.3.3 but #280 bumps that to 0.4 for ext_messages.


merge package template from Kronos-Tools/npm-package-template

package.json

chore(devDependencies): update<EMAIL_ADDRESS>from template
chore(engines): update<EMAIL_ADDRESS>from template

.travis.yml

chore(travis): merge from template .travis.yml

Codecov Report

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

@@           Coverage Diff           @@
##           master     #194   +/-   ##
=======================================
  Coverage   98.05%   98.05%
=======================================
  Files           1        1
  Lines         103      103
=======================================
  Hits          101      101
  Misses          2        2

Continue to review full report at Codecov.

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

Coverage remained the same at 95.122% when pulling 8aecc89c51b1af190c04a8d649a66cdc0a909c7f on template-sync-1 into 17a22714c0d484f9890cdd42eefcb84d5f30e719 on master.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-source-version-target/pull/79 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-source-version-target.git

Docs Build status updates of commit 551d4bb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

versioningArchiveSourceFolder/TOC.yml
:white_check_mark:Succeeded
View (sql-server-2014 || azuresqldb-current || azuresqldb-mi-current || azure-sqldw-latest || >= aps-pdw-2016 || >= sql-server-2016 || >= sql-server-linux-2017 || sql-server-previousversions || sqlallproducts-allversions)

versioningArchiveSourceFolder/docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Partially-broken PornHub support

Checklist

[X] I'm reporting a broken site support
[X] I've verified that I'm running youtube-dl version 2021.03.03
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones

Description

Basically PornHub has removed their included download feature as per their "Commitment to Trust and Safety" part 2.
The only links affected are the ones using this format: https://www.pornhub.com/video/get_media?s=.... If you download using the standard settings it'll download just fine.

Today I noticed almost no downloads work. YouTube-DL saved a M3U8 playlist that indexes segments of TS streams. I know they are TS streams because another programme I tried loaded the TS segments instead of the actual MP4 file. They definitely changed something globally not for the better. YouTube-DL even told me randomly after trying for a while to instal PhantomJS which is not supported upstream. This was very peculiar.


JupyterLab 3.0 strategy

Proposed change
Update to JupyterLab 3.0 when it's released. Switch default from notebook to the planned lab classic notebook mode view.
Alternative options

Upgrade to JupyterLab 3.0 but keep the default jupyter-notebook view.

Who would use this feature?
Hopefully everyone! This is a follow-on from https://github.com/jupyter/repo2docker/issues/724
Related issues:

JupyterLab as the Default? jupyterhub#2634
JupyterLab - the default? zero-to-jupyterhub-k8s#776

How much effort will adding it take?

Upgrading to JupyterLab 3.0 will require extensions to be updated, but assuming there are no major API changes this should be straightforward and just require bumping versions of dependencies.
Switching the default interface will require investigation since the URL needs to change to /doc.

Who can do this work?

Anyone can follow the instructions for updating conda packages.
Changing the default requires knowledge of the repo2docker codebase

Update to JupyterLab 3.0 will hopefully reduce a lot the build time for extensions and all, thanks to the webpack module federation.

Yes, I'm looking forward to it 😄 . From a repo2docker point of view we need to wait until enough current lab extensions have been updated so we don't break too many repositories.

There is now some documentation about updating extensions to be compatible with 3.x, as well as using the new extension distribution system (with pip and conda):
https://jupyterlab.readthedocs.io/en/latest/developer/extension_migration_2_3.html

Adding a new TODO item, now that jupyter-resource-usage has been published to PyPI:

[ ] Switch from nbresuse to jupyter-resource-usage

The package includes a prebuilt extension for JupyterLab 3.0 that displays the memory usage as a status bar item. It was originally part of the JupyterLab code base but has now been moved to jupyter-resource-usage (see https://github.com/jupyterlab/jupyterlab/pull/9386 and https://github.com/jupyter-server/jupyter-resource-usage/pull/69 for more info).

@jtpio Thanks for the note about jupyter-resource-usage, I've copied it to the main description
On a separate note, I've noticed the latest JupyterLab no longer runs on mybinder, going to /lab results in a 404:
https://mybinder.org/v2/gist/manics/922d4e88fefc6d38fccea8cd2097bc28/HEAD?urlpath=%2Flab

On a separate note, I've noticed the latest JupyterLab no longer runs on mybinder, going to /lab results in a 404:

It's probably related to jupyter server now requiring tornado>=6.1. It should normally be fixed with jupyterlab==3.0.0rc14 (more info in https://github.com/jupyterlab/jupyterlab/pull/9453 and linked issues and PRs).


Update QuPath ROIsplitter

Update to v0.2.0 (--fill and --all arguments added). See https://github.com/npinter/ROIsplitter.

I do not see what's wrong here?!

.. WARNING: No citations found, consider adding citations to your tool.

.. WARNING: No citations found, consider adding citations to your tool.

what if there is no citation? it sounded optional to me ("consider")

You can include a bibtex citing yourself.


show the answer for the question

hi, can you add a "hint" for these question?
some giveway need a answer, and we need do something like this.
http://iandrohackerdk.blogspot.tw/2016/02/gleamio-giveaway-cheating-how-to-get.html
btw, don't put the answer in the input box, so afraid get ban:(
thx

I don't have plans to do this.  Even showing the answer might be a bit iffy; it would be a departure from the types of improvements this script already provides.
Adding it to this script would make abuse of the workaround you linked to easier and more widespread.  There's the concern that they could patch the workaround under those conditions.


Migrates to AH 18

Makes changes required to allow use with Actionhero v18 and above.
Breaks backward compatibility.  A note has been added to the readme pointing users to appropriate tags for previous Actionhero versions.
Resolves #27

Any news from @supamii? Would really like to use this plugin.


Tutorial pop-ups do not adjust to the size of the plugin window

Steps to reproduce:

Open https://www.docker.com/
Start onboarding
Proceed to tutorial pop-ups from 1 to 14

Actual result:
Tutorial pop-ups do not adjust to the size of the plugin window

https://github.com/jdi-testing/jdn-ai/assets/21053451/9e6cc90b-2253-4b9d-9b33-368bdd89f570
Expected result
Tutorial pop-ups adjust to the size of the plugin window

3.12.494

JDN v 3.12.495 Back-end v 0.2.39
Version 114.0.5735.134 (Official Build) (64-bit)
Test result - PASS


Add NFC example dumps

Upload sanitised NFC dump files (raw and pre-formatted formats).

Issue cancelled because of how simple it is for the user to create their own NFC record and write it to a tag. Also avoid potential ZET T&C / privacy-related issues.

Issue closing type changed to not planned. Created additional NFC records details in the docs instead.


Change Calendar row

i want change calendar row is two line  ,how to modify.
Many thanks.

I'm sorry, but I'm not sure what you are asking.

DEFAULT_MAX_WEEKS=2  calendarview can Full display

Ok, this is similar to #77. We only plan to support displaying one month. The calendar uses horizontal swiping, and supporting arbitrary rows would be a large architecture change that I don't feel a good idea. If you feel differently, please "+1" on #77 and this may be implemented, some day.


⚠ 366.ru has degraded performance

In 3926428, 366.ru (https://366.ru) experienced degraded performance:

HTTP code: 200
Response time: 2558 ms

Resolved: 366.ru performance has improved in 08d4116.


Ability to define repository deployment key as an env variable

Generating deployment key and storing it in a file gives less flexibility then env variable. It would be useful to have it as an env variable and have access to it e.g. from linked containers. It also might be considered as more secure.

Seems like it's not really feasible. The private key file is rather long and would be hard to provide it in env variable (which means: inline). Closing for now.


Decouple platform-related stuff from Graphics

We're working a project in which we need to replay the game and record it into video on every platform, in which case, it's really not necessary to load the whole platform and Graphics is good enough. In addition, the graphic related configuration is all platform specific graphics need.
This commit will cause code breaks for registering additional fonts on specific platforms. Those can be easily fixed by calling the plat.assets().getFont() or equivalent methods on specific platforms.

Hi, Michael,
What do you think about this pull request?

I think it's the middle of PAX! :) I'll look at it tomorrow because I'm going to be on the floor all day today.
The general idea doesn't sound bad to me, I just need to see how much weirding was necessary to make it all work. I'd prefer not to make the normal use case too weird to accommodate this 0.1% use case. I'm sure that can be accomplished somehow.

Glad to hear that :)


Marker shape & color to vary based on team, status, and/or other fields

Ideally allow a few schemes


Persona identity

This branch is based off #69
It adds the persona identity as discussed in #17

Merged in 5cbddd9d34fa500d151c32db494a9b788bfc40e9


Backwards conversion: MCAP to rosbag1

I would like to use the MCAP CLI to convert data from .mcap to .bag (rosbag1) for the purpose of data verification. Thank you!

Seems like a nice idea, assuming that the mcap file contains only ROS 1 channels.

Just wanted to comment that my company could use this feature as well

for the purpose of data verification

What kind of verification are you hoping to perform on the .bag file?

assuming the objective is to be able to go bag -> mcap -> bag and get an identical hashing bag out, some complications to consider will be,

compression implementations will not always emit the same bytes for the same inputs. I think identical hashes are only likely to come out on uncompressed bag/mcap.
connection ID numbering would need to be preserved going from bag -> mcap. In theory this could be an issue since bags use a uint32 and mcap uses a uint16. In fact, this is technically a problem in conversion today. In practice most bags have under uint16 (65535) connections.
the bag header record reserves some empty space for tooling to fill in. Usually this space is just empty. I'm not sure if tooling actually does fill it in. We would need to figure out some place to stuff this in the mcap file though.


feat: allow redirecting all seasonal notifs to leagues url

Closes #608

Tested the config migration, haven't tested the leagues forwarding


Add Momentum by Hinkik

Song Name
Momentum
Artist Name
Hinkik
Source
Youtube
Youtube Link
jeqUv4F3UYc
Direct File Link
No response
Song ID
557117
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 6508283
Downloaded: Yes

Sorry, but the nong is not related with the level, reject

reject


sort directory context files for determinism

This also fixes the Windows unit tests in CI. According to https://github.com/sourcegraph/cody/actions/workflows/ci.yml?query=branch%3Amain, all main CI runs including and after https://github.com/sourcegraph/cody/commit/ce072f784a049e44653151961122807638a53224 have been failing on the Windows unit test step.
I don't think it's warranted to sort other similar file lists, but it may be.
Test plan
CI

(not urgent) @philipp-spiess do you think we should sort getWorkspaceFilesContext's result for determinism in the tests?


The data cannot currently set up a coordinate system

The data cannot currently set up a coordinate system.I hope to support calculations in different coordinate systems.

Hello! Thanks for opening this issue.
Indeed it is true that DuckDB doesn't store the coordinate system identifier inside the GEOMETRY type yet, but you can still transform between different coordinate systems using the ST_Transform() function. I would recommend that you store a CRS identifier as a separate column to make it easier to track which coordinate system each geometry is in.

您好，您的邮件已收到，谢谢！


ValidationError are too verbose to be used for linting a file

I tried to use jsonschema in order to lint some files but I discovered that ValidationError errors only contain a single error message that is a very long error message, something that would be ineligible for a normal user due to the amount of noise.
Example of error reported when a user introduced an invalid value for an array of enums (licenses):
# e.message
'\'{"name": "foo", "namespace": "bar", "version": "1.2.3", "authors": ["John"], "readme": "../README.md", "description": "...", "dependencies": {"other_namespace.collection1": ">=1.0.0", "other_namespace.collection2": ">=2.0.0,<3.0.0", "anderson55.my_collection": "*"}, "license": ["GPL", "Apache"]}\' is not of type \'object\''

# input file (instance) that used https://github.com/ansible-community/schemas/blob/main/f/ansible-galaxy.json schema
name: foo
namespace: bar
version: 1.2.3
authors:
  - John
readme: ../README.md
description: ...
dependencies:
  "other_namespace.collection1": ">=1.0.0"
  "other_namespace.collection2": ">=2.0.0,<3.0.0"
  "anderson55.my_collection": "*"    # note: "*" selects the highest version available
license:
  - GPL # <-- these are the invalid values
  - Apache

Is there a way to get jsonschema library to raise some errors that could be rendered as linting errors? displaying the entire input json file makes it impossible to use as a practical linter. I was not able to identify other more detailed fields inside the exception, ones that could be used to generate a shorter error message.

Have you seen the ValidationError documentation](https://python-jsonschema.readthedocs.io/en/stable/errors/)?

I suspect what you're looking for here is covered either on that page or on the general validation documentation. Closing for cleanliness, but happy to follow up if you find a specific gap.


is 50-slurm-pmi.sh still needed with pmix_v3 ?

I have an installation where slurm is compiled with openmpi and pmix_v3
I noticed if I try to add the optional 50-slurm-pmi.sh hook file, the containers break with error saying they cannot find the scontrol command
mapping slurm folders and adding bin and sbin to path do not help. removing the file from hooks.d resolve things.

If you use the PMI hook you need scontrol to be available on the compute nodes.
It needs to be available in the PATH given to enroot (i.e. the one from slurmd/slurmstepd).
You can check with something like srun sh -c 'command -v scontrol'

trying to run that, it fails. the scontrol is at /opt/slurm/bin/
#!/bin/bash
#SBATCH --partition=gpu
#SBATCH --job-name=nccl-tests
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=8
#SBATCH --gpus-per-task=1
#SBATCH --exclusive
#SBATCH --comment=stability
#SBATCH --output=%x_%j.out
module load openmpi
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/nccl/build/lib:/opt/aws-ofi-nccl/lib:/opt/amazon/openmpi/lib
export PATH=$PATH:/opt/amazon/efa/bin:/opt/amazon/openmpi/bin:/opt/slurm/bin:/opt/slurm/sbin
export FI_EFA_FORK_SAFE=1
export FI_LOG_LEVEL=1
export FI_EFA_USE_DEVICE_RDMA=1 # use for p4dn
export FI_EFA_ENABLE_SHM_TRANSFER=0
export FI_PROVIDER=efa
export FI_EFA_TX_MIN_CREDITS=64
export NCCL_DEBUG=warn
export NCCL_PROTO=simple
export NCCL_TREE_THRESHOLD=0
export OMPI_MCA_mtl_base_verbose=1
export OMPI_MCA_btl="^openib"
export OMPI_DIR=/opt/amazon/openmpi
export PMIX_MCA_gds=hash

srun --comment stability --container-image=public.ecr.aws\#w6p6i9i7/aws-efa-nccl-rdma:base-cudnn8-cuda11.3-ubuntu20.04 \
        --container-mounts=/opt/slurm:/opt/slurm/ --prolog /opt/slurm/sbin/prolog.sh /opt/nccl-tests/build/all_reduce_perf -b 128M -e 8G -f 2 -g 1 -c 1 -n 20

Why do you have module load openmpi if you are running code from inside a container?

deleted that, I think it is not relevant. still doing this
pyxis: imported docker image: public.ecr.aws#w6p6i9i7/aws-efa-nccl-rdma:base-cudnn8-cuda11.3-ubuntu20.04
slurmstepd: error: pyxis: container start failed with error code: 1
slurmstepd: error: pyxis: printing enroot log file:
slurmstepd: error: pyxis:     [ERROR] Command not found: scontrol
slurmstepd: error: pyxis:     [ERROR] /etc/enroot/hooks.d/50-slurm-pmi.sh exited with return code 1
slurmstepd: error: pyxis: couldn't start container

You most likely need to add /opt/slurm/bin to the PATH of the slurmd systemd service (or other init system)

solved like this:

check command:

# pgrep slurmd | xargs -i grep -zanH PATH /proc/{}/environ
/proc/13957/environ:2:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

fix command:

pssh -h hostsfile -i "(echo 'PATH=/opt/slurm/sbin:/opt/slurm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' | sudo tee -a /etc/sysconfig/slurmd) && sudo systemctl restart slurmd"


Irregular pluralisation support?

Hi, I couldn't find mentions about the support of irregular plurals when settings pluralize: true on the blueprints. Is that supported? Thanks.

Pluralization support is handled through https://www.npmjs.com/package/pluralize.
Do you have a specific example?

So pluralize is taking care of irregular plurals automatically? I did observe that say "currency" was well pluralized to "currencies". What if I need to use specific technical vocabulary down the road and pluralize does not respond properly? Is there any way to manual specify the plural? Sorry I don't really have a example offhand.

@tibotiber IF you look here in the code https://github.com/blakeembrey/pluralize/blob/master/pluralize.js#L235 you can see that a lot of irregular verbs are being taken care of, as well as a lot of different rules. In case an english word that does get pluralised wrong it is probably best to PR there and then update the module here in sails.
Hope that clarifies your question. Let me know if you need anything else.

That's great. Thank you @Globegitter.


Question: How to close the block element after pushing enter?

I am not really good on the front end part so I apologize in advance for spending your time if the answer to this question is simple.
So in order to provide a way to add H4 tags in the editor, I came up with this:
Squire.prototype.makeHeader = function() {
  this.modifyBlocks(function(frag) {
      let header = document.createElement("h4");
      header.appendChild(frag);
      return header;
  });
  return this;
};

It's probably not too good but hey it works ...
So now I am now trying to make it work the way so that when user pushes enter, the cursor goes to the next line but without continuing the h4 tag, so pushing enter means ending the header.
Could you please give me a hint on how I could achieve that?
I probably need to write some wrapper on top of the default enter key binding but I can't understand how to make it work the desired way.
Off topic: The project is fantastic and thank you very much for all the effort put into it :)

The issue is you're wrapping the block elements rather than replacing them. I've added some of our Node helper functions to the exported functions on the Squire variable, which makes this easy:
Squire.prototype.makeHeader = function() {
    return this.modifyBlocks( function( frag ) {
      var output = this._doc.createDocumentFragment();
      var block = frag;
      while ( block = Squire.getNextBlock( block ) ) {
        output.appendChild(
          this.createElement( 'h2', [ Squire.empty( block ) ] )
        );
      }
      return output;
    });
  };

I've also added the above example to Demo.html so you can easily try it out.

I will try it, thank you very much for your help :)


Search 'collapse' button no longer works

Type: Bug

Open the search side panel
Enter a search term
The search returns results
Try and click the 'collapse all' button at the top right of the search panel
Observe: nothing happens.  Also, the icon shows a '+'. It should show a '-' because the list is already expanded.

Before the latest update, this worked as expected.
VS Code version: Code 1.86.0 (05047486b6df5eb8d44b2ecd70ea3bdf775fd937, 2024-01-31T10:28:19.990Z)
OS version: Windows_NT x64 10.0.22631
Modes:

System Info

Item
Value

CPUs
AMD Ryzen 7 5825U with Radeon Graphics          (16 x 1996)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
38.83GB (19.29GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (32)

Extension
Author (truncated)
Version

Bookmarks
ale
13.4.2

path-intellisense
chr
2.8.5

vscode-markdownlint
Dav
0.54.0

vscode-eslint
dba
2.4.4

githistory
don
0.6.20

prettier-vscode
esb
10.1.0

auto-close-tag
for
0.5.15

copilot
Git
1.156.0

copilot-chat
Git
0.12.0

remotehub
Git
0.62.0

vscode-pull-request-github
Git
0.80.0

vscode-graphql-syntax
Gra
1.3.1

path-autocomplete
ion
1.25.0

vscode-env
Iro
0.1.0

rainbow-csv
mec
3.11.0

debugpy
ms-
2024.0.0

remote-wsl
ms-
0.86.0

remote-repositories
ms-
0.40.0

vsliveshare
ms-
1.0.5905

peggy-language
Peg
2.4.1

language-plan
und
0.0.1

excalidraw-editor
pom
3.7.1

quicktype
qui
12.0.46

vscode-yaml
red
1.14.0

vscode-paste-and-indent
Rub
0.0.8

partial-diff
ryu
1.4.3

multi-command
ryu
1.6.0

intellicode-api-usage-examples
Vis
0.2.8

vscodeintellicode
Vis
1.2.30

vscode-icons
vsc
12.7.0

gitblame
wad
10.7.1

copy-hover-type
You
0.0.7

This is a pretty significant bug, because it makes the search near useless when there are a large number of files containing hits, or when there are many hits in a single file. It makes the list very tall to scroll through, and file names are harder to pick out.

Hmm, I can't seem to repro this issue. What value do you have for search.collapseResults? Do you have any other search-related settings?

I am able to reproduce:
Version: 1.86.0 (Universal)
Commit: 05047486b6df5eb8d44b2ecd70ea3bdf775fd937
Date: 2024-01-31T10:29:15.765Z
Electron: 27.2.3
ElectronBuildId: 26495564
Chromium: 118.0.5993.159
Node.js: 18.17.1
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 23.2.0
Looking at the option that was mentioned:
search.collapseResults: "alwaysExpand"
When I search, after results are populated I am not able to collapse them using the button shown in the screenshot.
Workaround
I seem to have restored functionality by modifying the search.collapse  to a different value than alwaysExpand. I unfortunately don't know which specific value fix things, so would recommend trying them each, redo the search, and then attempt to click the collapse button. I am now able to toggle the button regardless of what option search.collapseResults is set to

Hmm. Does your settings.json explicitly say search.collapseResults: "alwaysExpand" now? and if you remove it, can you reproduce the bug?

It does not have that explicitly defined in my case and I don't believe I had it explicitly set previously. I also have since updated to 1.86.1. I'm having a hard time reliably reproducing the bug unfortunately. I will make sure to report back if I reproduce. I do wonder if some of the behavior was less due to the button and maybe the search still loading?

I have submitted a PR that I think fixes the issue.

Waiting for this since a few days. I assume the fix is isn't in 1.86.2.

@Anutrix no, it's in 1.87 which should be published this week.


New feature request - Limit user search count

Please provide us with the following information:

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [x] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

New feature request

Any log messages given by the failure

New feature request

Expected/desired behavior

Can we limit the user searches? A given user should be able to search only 5 results per day

OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)

azd version?

run azd version and copy paste here.

Versions

New feature request

Mention any other details that might be useful
New feature request

Thanks! We'll be in touch soon.

This application does not currently have a notion of users. We have a PR that adds user authentication as an option, so it will soon have such a notion. Then, you would need to use a datastore of some sort (like Azure Redis or Azure PostgreSQL Flexible Server) to track each time a user made a search. Once they had made 5 searches in the last day, you would let them know their quota was up.
You could also try using Azure API Management to achieve this, since they have built-in rate limiting / throttling.


(CAT-2090) - Add workflow-restarter and workflow-restarter-test to wo…

Summary
Adds workflow-restarter and test file to be used to test against nightly workflow later

Proof that it's working:


[v2] threads,android: use syscall directly for affinity

Refs: https://github.com/libuv/libuv/issues/2655 (fixes one issue)

CI: https://ci.nodejs.org/job/libuv-test-commit/2189/console


How to encode datasets where raw and normalized count matrices have different shapes.

@MaximilianLombardo and @pablo-gar identify that we often receive datasets where the "normalized" count data contain a subset of the gene features of the "raw" count data. This occurs because toolchains tend to filter genes to generate better clusters and low dimensional embeddings. This filtering typically removes low variance genes, and genes that are thought to explain more technical variation (ribosomal) or confounding stress information (mitochondrial) than interesting biological information.
While filtering is helpful for downstream steps in the initial analysis, it produces a data reuse problem when other scientists want to explore the expression of a specific gene or set of genes. Many times their genes of interest are not present in the filtered, normalized matrix. It also causes a visualization problem for cellxgene. Since normalized counts are the data that we visualize, and users may only visualize features that are present in the matrix.
I would prefer that data submitters use distance metrics that are aware of feature variance, so they don't need to filter variable genes. We'd also prefer that they regress out confounding signatures instead of filtering "troublesome genes" like mitochondrial and ribosomal genes. However, this is not common practice and the schema's primary goal is to best represent scientific data.
Proposed solution: @MaximilianLombardo suggests the following solution:

Our schema should require that raw and normalized data have the same set of features.
To meet this requirement, when we receive submissions, any feature present in raw but not in normalized should be added to normalized and its values filled with np.nan
An amendment is written to the schema explaining why including all features in the normalized dataset increases the breadth of users who will be able to reuse the data, and maximizes the value of submitted data, and explaining how step (2) above is applied to data that do not meet this requirement.

Corollary: This decision will affect the format of our downloaded files, which can't support matrices of different shapes.
Unresolved question: How do we visualize these np.nan columns in the explorer? cc @signechambers1 @colinmegill
cc @jahilton we're considering this approach instead of the one I suggested to you. The difference here is instead of subsetting to the features of the normalized matrix, we expand to the features of the raw matrix.

I disagree with the proposed solution because filling missing genes with NaN has the following disadvantages (but there can be more we haven't thought about):

Potential miss interpretation of analyses including differential gene expression, where's my gene, gene clustering, etc. A user can make assumptions not limited to these ones: a genes was not covered by reads, a gene was lowly expressed, a gene was filtered out.
It could break cellxgene-independent tools.

For me an ideal solution is one that:

Requires to always have the full raw data.
Allows for storing a "processed" normalized (with lesser genes) expression matrix, i.e. extra layer or extra h5ad.
Requires normalized data with the same dimensions as raw. This doesn't have to be done by the authors as we can apply a standard normalization pipeline on the raw data.

I think we should think about alternative solutions before choosing the proposed one, or at least make sure that this solution is an appropriate one by contacting experts on the field.

I disagree with the proposed solution because filling missing genes with NaN has the following disadvantages (but there can be more we haven't thought about):

Potential miss interpretation of analyses including differential gene expression, where's my gene, gene clustering, etc. A user can make assumptions not limited to these ones: a genes was not covered by reads, a gene was lowly expressed, a gene was filtered out.
It could break cellxgene-independent tools.

For me an ideal solution is one that:

Requires to always have the full raw data.
Allows for storing a "processed" normalized (with lesser genes) expression matrix, i.e. extra layer or extra h5ad.
Requires normalized data with the same dimensions as raw. This doesn't have to be done by the authors as we can apply a standard normalization pipeline on the raw data.

I think we should think about alternative solutions before choosing the proposed one, or at least make sure that this solution is an appropriate one by contacting experts on the field.

Thanks Pablo, I agree with you that the above proposal isn't ideal. I have some questions about yours.

Allows for storing a "processed" normalized (with lesser genes) expression matrix, i.e. extra layer or extra h5ad.

What reuse value do you see in capturing this data? Is it to capture the filtering output of the authors? If yes, is there anything else we'd need to capture to ensure we're passing along the value to other users of the data? For example, rationales for filtering?

Requires normalized data with the same dimensions as raw. This doesn't have to be done by the authors as we can apply a standard normalization pipeline on the raw data.

Is this the layer you'd use to visualize data in cellxgene in cases where the author's normalized matrix isn't full rank? If yes, there are two challenges we've seen in the past with this approach:

While there are a number of "good" normalization strategies, it is difficult to pick one for each data, and some strategies require custom covariates to be used to remove technical variation. It's my experience that authors typically do a better job than third-party curators like us because they know their data better.
Assuming there are cases where we make different choices than the authors, it often means that the data no longer match the author provided embedding. Or the clusters. Or the cell type labels. When aggregating across studies, this is less problematic because we can average over large pools data, however for individual experiments it sows confusion equal to the divergence between normalization algorithms. It leads to feature creep, where we provide a "standard tertiary analysis, up to and including clustering". The DCP is showing that to be a fraught process, particularly because there's no good way (yet) for us to type the resulting cells.

I'm wondering if you see ways to mitigate these issues.

Thanks Pablo, I agree with you that the above proposal isn't ideal. I have some questions about yours.

Allows for storing a "processed" normalized (with lesser genes) expression matrix, i.e. extra layer or extra h5ad.

What reuse value do you see in capturing this data? Is it to capture the filtering output of the authors? If yes, is there anything else we'd need to capture to ensure we're passing along the value to other users of the data? For example, rationales for filtering?

Requires normalized data with the same dimensions as raw. This doesn't have to be done by the authors as we can apply a standard normalization pipeline on the raw data.

Is this the layer you'd use to visualize data in cellxgene in cases where the author's normalized matrix isn't full rank? If yes, there are two challenges we've seen in the past with this approach:

While there are a number of "good" normalization strategies, it is difficult to pick one for each data, and some strategies require custom covariates to be used to remove technical variation. It's my experience that authors typically do a better job than third-party curators like us because they know their data better.
Assuming there are cases where we make different choices than the authors, it often means that the data no longer match the author provided embedding. Or the clusters. Or the cell type labels. When aggregating across studies, this is less problematic because we can average over large pools data, however for individual experiments it sows confusion equal to the divergence between normalization algorithms. It leads to feature creep, where we provide a "standard tertiary analysis, up to and including clustering". The DCP is showing that to be a fraught process, particularly because there's no good way (yet) for us to type the resulting cells.

I'm wondering if you see ways to mitigate these issues.

What reuse value do you see in capturing this data? Is it to capture the filtering output of the authors? If yes, is there anything else we'd need to capture to ensure we're passing along the value to other users of the data? For example, rationales for filtering?

I was thinking about having an "intact" copy of the data as processed by the authors. I don't think we need to capture any more information if this is stored as a layer of the anndata. In schema v1.1.0 we require to have a high-level description of what transformations were applied in each layer.

Is this the layer you'd use to visualize data in cellxgene in cases where the author's normalized matrix is missing genes?

Yes

While there are a number of "good" normalization strategies, it is difficult to pick one for each data, and some strategies require custom covariates to be used to remove technical variation. It's my experience that authors typically do a better job than third-party curators like us because they know their data better.

I agree, this would be tradeoff. If we are performing internal curation we can try different iterations of normalizations to find the most adequate one (we would need to define what this means with the authors)

Assuming there are cases where we make different choices than the authors, it often means that the data no longer match the author provided embedding. Or the clusters. Or the cell type labels. When aggregating across studies, this is less problematic because we can average over large pools data, however for individual experiments it sows confusion equal to the divergence between normalization algorithms. It leads to feature creep, where we provide a "standard tertiary analysis, up to and including clustering". The DCP is showing that to be a fraught process, particularly because there's no good way (yet) for us to type the resulting cells.

I'm not sure I understand what you mean by not matching with embeddings or clusters or cell types. Those are cell-level metadata and can preserved as long as all cells were used for their creation. I do understand that the information that was used to create those embeddings would not be longer present, but it would not change the embeddings themselves -- I however can see how this may lead to its own bag of miss-interpretations.

What reuse value do you see in capturing this data? Is it to capture the filtering output of the authors? If yes, is there anything else we'd need to capture to ensure we're passing along the value to other users of the data? For example, rationales for filtering?

I was thinking about having an "intact" copy of the data as processed by the authors. I don't think we need to capture any more information if this is stored as a layer of the anndata. In schema v1.1.0 we require to have a high-level description of what transformations were applied in each layer.

Is this the layer you'd use to visualize data in cellxgene in cases where the author's normalized matrix is missing genes?

Yes

While there are a number of "good" normalization strategies, it is difficult to pick one for each data, and some strategies require custom covariates to be used to remove technical variation. It's my experience that authors typically do a better job than third-party curators like us because they know their data better.

I agree, this would be tradeoff. If we are performing internal curation we can try different iterations of normalizations to find the most adequate one (we would need to define what this means with the authors)

Assuming there are cases where we make different choices than the authors, it often means that the data no longer match the author provided embedding. Or the clusters. Or the cell type labels. When aggregating across studies, this is less problematic because we can average over large pools data, however for individual experiments it sows confusion equal to the divergence between normalization algorithms. It leads to feature creep, where we provide a "standard tertiary analysis, up to and including clustering". The DCP is showing that to be a fraught process, particularly because there's no good way (yet) for us to type the resulting cells.

I'm not sure I understand what you mean by not matching with embeddings or clusters or cell types. Those are cell-level metadata and can preserved as long as all cells were used for their creation. I do understand that the information that was used to create those embeddings would not be longer present, but it would not change the embeddings themselves -- I however can see how this may lead to its own bag of miss-interpretations.

I do understand that the information that was used to create those embeddings would not be longer present, but it would not change the embeddings themselves -- I however can see how this may lead to its own bag of miss-interpretations.

This is what I was trying to highlight. :+1:
The embedding is supposed to be a low dimensional representation of the data. But, if we renormalized using a different algorithm than the authors without generating new embeddings, this would no longer be the case. Because of this, genes painted on the dataset may not distribute in a way that is consistent with the embedding. And If we updated the embeddings to fix this, then the clusters and cell type labels may no longer match the grouping observed in the embedding. There is a domino effect. And having to generate new cell type labels is high effort.

I do understand that the information that was used to create those embeddings would not be longer present, but it would not change the embeddings themselves -- I however can see how this may lead to its own bag of miss-interpretations.

This is what I was trying to highlight. :+1:
The embedding is supposed to be a low dimensional representation of the data. But, if we renormalized using a different algorithm than the authors without generating new embeddings, this would no longer be the case. Because of this, genes painted on the dataset may not distribute in a way that is consistent with the embedding. And If we updated the embeddings to fix this, then the clusters and cell type labels may no longer match the grouping observed in the embedding. There is a domino effect. And having to generate new cell type labels is high effort.

We discussed this issue today. We discovered that AnnData files support different shapes in AnnData.raw and AnnData.X, which means there is no schema compatibility issue, and no padding needs to be done of AnnData.X to enable us to ingest those datasets.
To optimize data reuse, we agreed that we will ask authors not to remove genes from AnnData.X unless the rationale is to remove specific confounding. This will enable us to:
(a) visualize genes in cellxgene that may not have been relevant for the original use case, but are of interest to a data consumer.
(b) retain flexibility to display author-normalized data in cross-dataset use cases, if we decide we want to go that route.
We will update schema.md to reflect this request.
There is still a UX issue in the explorer, where some datasets may be missing genes, and there is no explanation to the user for the lack of consistency there. cc @signechambers1

We discussed this issue today. We discovered that AnnData files support different shapes in AnnData.raw and AnnData.X, which means there is no schema compatibility issue, and no padding needs to be done of AnnData.X to enable us to ingest those datasets.
To optimize data reuse, we agreed that we will ask authors not to remove genes from AnnData.X unless the rationale is to remove specific confounding. This will enable us to:
(a) visualize genes in cellxgene that may not have been relevant for the original use case, but are of interest to a data consumer.
(b) retain flexibility to display author-normalized data in cross-dataset use cases, if we decide we want to go that route.
We will update schema.md to reflect this request.
There is still a UX issue in the explorer, where some datasets may be missing genes, and there is no explanation to the user for the lack of consistency there. cc @signechambers1

We have a matrix from a contributor in the R object format. It contains 2 layers - scTranform & LogNormalized. Each layer has a different number of genes. We'll add in a raw layer to this without filtering any genes, resulting in 3 layers, each with a different shape.
Can you confirm that AnnData supports this case?

We have a matrix from a contributor in the R object format. It contains 2 layers - scTranform & LogNormalized. Each layer has a different number of genes. We'll add in a raw layer to this without filtering any genes, resulting in 3 layers, each with a different shape.
Can you confirm that AnnData supports this case?

@jahilton thank you for bringing this up. Here's where we landed:

Any non-raw layer must have the same shape, and have the same variable names.
We suggest padding layers that have subsets of columns with np.nan values (if dense matrices) or 0 (if sparse) so they can be submitted.

In your case, I believe scTransform has a subset of the columns in LogNormalized, so you would pad scTransform to make the shape match LogNormalized. The raw layer may differ in shape from the other two.

@jahilton thank you for bringing this up. Here's where we landed:

Any non-raw layer must have the same shape, and have the same variable names.
We suggest padding layers that have subsets of columns with np.nan values (if dense matrices) or 0 (if sparse) so they can be submitted.

In your case, I believe scTransform has a subset of the columns in LogNormalized, so you would pad scTransform to make the shape match LogNormalized. The raw layer may differ in shape from the other two.