Improve the Requirements documentation by suggesting an apt source for libgcrypt.

Thanks for sharing blocksync-fast.   I'm in the process of trying it out.   I use UrBackup with a btrfs partition as the backup repository.  UrBackup hashes and de-dupes across many client backup snapshots, so many backups are (ref-)linked in some complex ways.   I think that this tool will help me make copies of the backup partition to offline/offsite disks.
Going through the install, I initially followed the link you provide to libgcrypt.   I had some problems compiling and installing those tools because the link went to a maintainers site, and required a lot of other development tools (mostly for the docs) that I did not have.   What I finally determined - was that Ubuntu already had libgcrypt, but not the header files.
The upshot is that all I needed to do before compiling blocksync-fast was:  apt install libgcrypt-dev   That put in the header files for the programs already included with Ubuntu.   Such a clue might make it easier for other Ubuntu users that want to try blocksync-fast.

Hi @dadr , We should ideally document all the major distros!  We should get everything we can together on this issue for the developer to use.   You should also install libxxhash-dev on your ubuntu and rebuild, if you didn't have it show up in the ./configure output.  blocksync-fast will default to the XX3Low hash.
For Fedora Core, you can install the extra dependenices with:   sudo yum install libgcrypt-devel xxhash-devel
For Debian it's:   sudo apt install libgcrypt-dev libxxhash-dev
...and if the Debian build complains about the automake vesrion, run: autoreconf -f -i` and try again.
I just love blocksync-fast so much.. I'm literally using it right now!!  :-)


subprocess.py error: Ninja not building from source on Windows 8

I tried building from source. I did:
$ git clone git://github.com/martine/ninja.git && cd ninja
$ git checkout release

Then in a Visual Studio command line I ran configure.py with Python:
$ C:\Python27\python.exe configure.py --bootstrap
But here I get the following error:
C:\ninja>C:\Python27\python.exe configure.py --bootstrap
bootstrapping ninja...
Traceback (most recent call last):
  File "configure.py", line 320, in <module>
    if platform.msvc_needs_fs():
  File "configure.py", line 84, in msvc_needs_fs
    stderr=subprocess.PIPE)
  File "C:\Python27\Lib\subprocess.py", line 390, in __init__
    errread, errwrite)
  File "C:\Python27\Lib\subprocess.py", line 640, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

Any ideas what to do?

What happens if you run cl.exe? Is this in a shell where you ran vcvars32 / vcvarsall?
If that doesn't mean anything to you, try Start->All Programs->Visual Studio->Visual Studio Tools->VS x64 Native Tools Command Prompt, and run the script in that shell. Does that help?

I had the same problem, and it works when I do the following:
" Start->All Programs->Visual Studio->Visual Studio Tools->VS x64 Native Tools Command Prompt, and run the script in that shell. Does that help?"
Many thanks!

Thanks for the comment.
I'm afraid that this is such a common issue that we probably want to add 2 lines to configure.py to detect this and give a better error message :-/

Yes, that solves the problem. Thanks guys!


sdbootutil add-all-kernels logs loading <n> failed

I've been getting logs like this for a while now when updating my system, but up until recently, I haven't encountered any other issues. A week or two ago, when rebooting after an update, I wasn't shown my usual password entry screen (full disk encryption) and the system would just wait indefinitely while booting. I tried running sdbootutil -vvv add-all-kernels manually and here is what I got:
> sudo sdbootutil -vvv add-all-kernels
found kernel 6.11.5-2-default = badc0775f7ad3d76f75bcdac00c6aa037530dd92
found kernel 6.11.6-2-default = f29f8d1f7af2da7705bf2c882ad9972314920ee2
installing 6.11.5-2-default
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Failed to check file system type of "/efi": No such file or directory
File system "/boot" is not a FAT EFI System Partition (ESP) file system.
Using EFI System Partition at /boot/efi.
Directory "/boot" is not the root of the file system.
Didn't find an XBOOTLDR partition, using the ESP as $BOOT.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
open("/sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") failed: No such file or directory
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Found default: id "4af6fb6762e74c2db6a9d9f7c264c196-6.11.7-1-default-628.conf" is matched by pattern "4af6fb6762e74c2db6a9d9f7c264c196-*"
found existing initrd /4af6fb6762e74c2db6a9d9f7c264c196/6.11.5-2-default/initrd-b90cc353e130387d27678058a7d1f593b9fe66eb
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Failed to check file system type of "/efi": No such file or directory
File system "/boot" is not a FAT EFI System Partition (ESP) file system.
Using EFI System Partition at /boot/efi.
Directory "/boot" is not the root of the file system.
Didn't find an XBOOTLDR partition, using the ESP as $BOOT.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
open("/sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") failed: No such file or directory
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.

Failed to check file system type of "/efi": No such file or directory
File system "/boot" is not a FAT EFI System Partition (ESP) file system.
Using EFI System Partition at /boot/efi.
Directory "/boot" is not the root of the file system.
Didn't find an XBOOTLDR partition, using the ESP as $BOOT.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
open("/sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") failed: No such file or directory
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Found default: id "4af6fb6762e74c2db6a9d9f7c264c196-6.11.7-1-default-628.conf" is matched by pattern "4af6fb6762e74c2db6a9d9f7c264c196-*"
reusing /boot/efi/4af6fb6762e74c2db6a9d9f7c264c196/6.11.5-2-default/linux-badc0775f7ad3d76f75bcdac00c6aa037530dd92
/boot/efi/loader/entries/4af6fb6762e74c2db6a9d9f7c264c196-6.11.5-2-default-620.conf unchanged
installing 6.11.6-2-default
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Failed to check file system type of "/efi": No such file or directory
File system "/boot" is not a FAT EFI System Partition (ESP) file system.
Using EFI System Partition at /boot/efi.
Directory "/boot" is not the root of the file system.
Didn't find an XBOOTLDR partition, using the ESP as $BOOT.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
open("/sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") failed: No such file or directory
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Found default: id "4af6fb6762e74c2db6a9d9f7c264c196-6.11.7-1-default-628.conf" is matched by pattern "4af6fb6762e74c2db6a9d9f7c264c196-*"
found existing initrd /4af6fb6762e74c2db6a9d9f7c264c196/6.11.6-2-default/initrd-d351476ecaa1c53b09fce1b2260bfcd5581ce7c8
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Failed to check file system type of "/efi": No such file or directory
File system "/boot" is not a FAT EFI System Partition (ESP) file system.
Using EFI System Partition at /boot/efi.
Directory "/boot" is not the root of the file system.
Didn't find an XBOOTLDR partition, using the ESP as $BOOT.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
open("/sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") failed: No such file or directory
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Found default: id "4af6fb6762e74c2db6a9d9f7c264c196-6.11.7-1-default-628.conf" is matched by pattern "4af6fb6762e74c2db6a9d9f7c264c196-*"
Cleaning /boot/efi
Using entry token: 4af6fb6762e74c2db6a9d9f7c264c196
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Failed to check file system type of "/efi": No such file or directory
File system "/boot" is not a FAT EFI System Partition (ESP) file system.
Using EFI System Partition at /boot/efi.
Directory "/boot" is not the root of the file system.
Didn't find an XBOOTLDR partition, using the ESP as $BOOT.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
open("/sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") failed: No such file or directory
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Reading EFI variable /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
Found default: id "4af6fb6762e74c2db6a9d9f7c264c196-6.11.7-1-default-628.conf" is matched by pattern "4af6fb6762e74c2db6a9d9f7c264c196-*"
reusing /boot/efi/4af6fb6762e74c2db6a9d9f7c264c196/6.11.6-2-default/linux-f29f8d1f7af2da7705bf2c882ad9972314920ee2
/boot/efi/loader/entries/4af6fb6762e74c2db6a9d9f7c264c196-6.11.6-2-default-620.conf unchanged

My boot entries don't seem to be getting updated either. Any ideas?

Instead of -vvv (that will enable the systemd logs) use this: sudo bash -x sdbootutil add-all-kernels. Maybe the output will be long, so you can paste it in https://paste.opensuse.org/ or any other place

Thanks for the quick follow-up @aplanas. I've pasted the log here: https://paste.opensuse.org/pastes/c09bb3e13fa8
It looks like the line that generates the output is sudo snapper --jsonout --no-dbus list --disable-used-space. If I run it directly, I get this:
> sudo snapper --jsonout --no-dbus list --disable-used-space
loading 2 failed
loading 45 failed
loading 46 failed
loading 57 failed
loading 58 failed
loading 59 failed
loading 60 failed
loading 67 failed
loading 68 failed
loading 69 failed
loading 70 failed
loading 71 failed
loading 72 failed
loading 73 failed
loading 74 failed
loading 75 failed
loading 76 failed
loading 77 failed
loading 78 failed
loading 79 failed
loading 80 failed
loading 81 failed
loading 82 failed
loading 83 failed
{
  "root": [
    {
      "subvolume": "/",
      "number": 0,
      "default": false,
      "active": false,
      "type": "single",
      "pre-number": null,
      "date": "",
      "user": "root",
      "cleanup": "",
      "description": "current",
      "userdata": null
    },
    {
      "subvolume": "/",
      "number": 650,
      "default": false,
      "active": false,
      "type": "single",
      "pre-number": null,
      "date": "2024-11-28 14:02:42",
      "user": "root",
      "cleanup": "number",
      "description": "rollback backup of #648",
      "userdata": {
        "important": "yes"
      }
    },
    {
      "subvolume": "/",
      "number": 652,
      "default": false,
      "active": false,
      "type": "pre",
      "pre-number": null,
      "date": "2024-11-28 14:23:52",
      "user": "root",
      "cleanup": "number",
      "description": "zypp(zypper)",
      "userdata": {
        "important": "yes"
      }
    },
    {
      "subvolume": "/",
      "number": 653,
      "default": false,
      "active": false,
      "type": "post",
      "pre-number": 652,
      "date": "2024-11-28 14:41:36",
      "user": "root",
      "cleanup": "number",
      "description": "",
      "userdata": {
        "important": "yes"
      }
    },
    {
      "subvolume": "/",
      "number": 654,
      "default": false,
      "active": false,
      "type": "single",
      "pre-number": null,
      "date": "2024-11-28 15:15:39",
      "user": "root",
      "cleanup": "number",
      "description": "rollback backup of #651",
      "userdata": {
        "important": "yes"
      }
    },
    {
      "subvolume": "/",
      "number": 655,
      "default": true,
      "active": true,
      "type": "single",
      "pre-number": null,
      "date": "2024-11-28 15:15:39",
      "user": "root",
      "cleanup": "",
      "description": "writable copy of #620",
      "userdata": null
    },
    {
      "subvolume": "/",
      "number": 656,
      "default": false,
      "active": false,
      "type": "pre",
      "pre-number": null,
      "date": "2024-11-28 15:17:52",
      "user": "root",
      "cleanup": "number",
      "description": "zypp(zypper)",
      "userdata": {
        "important": "no"
      }
    },
    {
      "subvolume": "/",
      "number": 657,
      "default": false,
      "active": false,
      "type": "post",
      "pre-number": 656,
      "date": "2024-11-28 15:18:00",
      "user": "root",
      "cleanup": "number",
      "description": "",
      "userdata": {
        "important": "no"
      }
    }
  ]
}

Thanks. I suspect that this is a similar issue with snapshots that we saw in #164, but in an early stage.
My recommendation is to address ASAP this issue with the snapper maintainer.  For that it is better to create the issue in the snapper project: https://github.com/openSUSE/snapper


sound-of-sorting: 2015-07-21 -> 2017-12-23

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build sound-of-sorting


Move back to building on top of the anaconda distribution.

This fails in the installation with:
Error: Unable to locate executable file: C:\Users\runneradmin\miniconda3\condabin\conda.bat. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.


Need ability to use Debounce Effect

Issue
An api is fired upon every key press of a TextField, need an action for debouncing the api call with n mili seconds and onComplete callback (such that there'd be n number of mili seconds wait time before firing the api, and api would be fired with latest inputs)
This action may look like this:
useDebounce:
   time: 1000 # mili seconds
   onComplete:

Use this:
TextInput:
  delayedKeyPressDuration:     # default delay 300ms
  onDelayedKeyPress:               # action to execute.


[Feature] support for Discord Developer

Is your feature request related to a problem? Please describe.

i have problem with installing it for discord development edition
Describe the feature you'd like

4'th option in installer
Additional context

@Methosss did you try to install it manually ?
I don't know if adding it to the .exe Installer (I think you mean the .exe one) is a good idea since this client is just a canary clone and is deprecated.

Discord Dev is the same as Canary with a few extra feats, by modifying one line of code in the ./scripts/inject.js to contain the following line:
const release = releaseInput === "canary" ? "Discord Canary" : releaseInput === "dev" ? "DiscordDevelopment" : releaseInput === "ptb" ? "Discord PTB" : "Discord"; Instead of const release = releaseInput === "canary" ? "Discord Canary" : releaseInput === "ptb" ? "Discord PTB" : "Discord"; then running the command "npm run inject dev" this will work.

Duplicate of #520


Update package.nls.json file

For #5479

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] ~ Appropriate comments and documentation strings in the code.
[x] ~Has sufficient logging.
[x] ~Has telemetry for enhancements.
[x] ~The wiki is updated with any design decisions/details.

Codecov Report

Merging #15140 (58bbb5f) into main (a0db4f1) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##            main   #15140   +/-   ##
======================================
  Coverage     65%      65%
======================================
  Files        561      561
  Lines      26516    26516
  Branches    3797     3797
======================================
  Hits       17262    17262
  Misses      8554     8554
  Partials     700      700

Codecov Report

Merging #15140 (58bbb5f) into main (a0db4f1) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##            main   #15140   +/-   ##
======================================
  Coverage     65%      65%
======================================
  Files        561      561
  Lines      26516    26516
  Branches    3797     3797
======================================
  Hits       17262    17262
  Misses      8554     8554
  Partials     700      700

@vvijayalakshmi21 Thanks for the PR. Please add a 5479.md file to news/1 Fix with text like below so that you get credit for this change:
Change description of `Pyramid` debug config.
(thanks [vvijayalakshmi21](https://github.com/vvijayalakshmi21/))

@vvijayalakshmi21 Thanks for the PR. Please add a 5479.md file to news/1 Fix with text like below so that you get credit for this change:
Change description of `Pyramid` debug config.
(thanks [vvijayalakshmi21](https://github.com/vvijayalakshmi21/))

@vvijayalakshmi21 Please sign the CLA so we can merge this. https://github.com/microsoft/vscode-python/pull/15140#issuecomment-768585699

@vvijayalakshmi21 Please sign the CLA so we can merge this. https://github.com/microsoft/vscode-python/pull/15140#issuecomment-768585699

Hi @karrtikr
I've signed the CLA. Thanks for your help with this PR.

Hi @karrtikr
I've signed the CLA. Thanks for your help with this PR.

@vvijayalakshmi21 Looks like you accidently closed it.

@vvijayalakshmi21 Looks like you accidently closed it.


Regression with routes in IE6

In Backbone 0.3.3, the Controller routes specs passed.
In Backbone 0.5.3, Router spec 67 fails. (They do pass in IE7 and IE8)

confirmed in IE6

@tbranyen informed me that Backbone.js only supports IE7...
BUT this isn't clearly documented anywhere, so we need to fix that. tagging this ticket as "documentation"

I'm inclined to let sleeping dogs lie unless we get more complaints -- I think that folks developing JavaScript-heavy web applications and targeting IE6 are very few and far between.

@jashkenas Agreed. The issue was worth noting, but not important enough for me to provide a fix.


I have read the docs page about Saving and it seems simple enough. However, whenever my game attempts to load a save game with the persisted progression data, it explodes in Serialize because the USuqsQuestProgression* QuestProgression has an invalid memory address (all zeroes).
I'm storing my game's progression object on a LocalPlayerSubsystem, which seems to work fine, including assigning it to the SaveGame during the save process.
So, my question is this: How should I set up my save game so that I can be sure that the quest progression is always valid?
Here is my subclass content that's exploding on load:
// UMySaveGame.h
class MYGAME_API UMySaveGame: public USaveGame
{
	GENERATED_BODY()

public:
	UMySaveGame();

	UPROPERTY(VisibleAnywhere, SaveGame, BlueprintReadOnly, Category = "Campaign|Quests")
	USuqsProgression* QuestProgression;

private:
	virtual void Serialize(FArchive& Ar) override;
}

// UMySaveGame.cpp
UMySaveGame::UMySaveGame()
{
	QuestProgression = NewObject<USuqsProgression>(this, "QuestProgression");
}

void UMySaveGame::Serialize(FArchive& Ar)
{
	Super::Serialize(Ar);
	QuestProgression->Serialize(Ar);
}

And here is the code in the LocalPlayerSubsystem subclass that creates the SaveGame and assigns the progression:
// in MyLocalPlayerSubsystem::WriteSaveGame
CurrentSaveGame = Cast<UMySaveGame>(UGameplayStatics::CreateSaveGameObject(UMySaveGame::StaticClass()));
CurrentSaveGame->QuestProgression = QuestProgression;

The subsystem then keeps this save game in memory, assigning new values to its properties before saving it when the user saves the game.
I have loved using SUQS to build out my quests, so I'm eager to figure out what dumb thing I'm doing and move on to the next one! Thanks for any insight you can provide.

Hi, glad you like SUQS! The issue is probably that UE actually doesn't call the basic no-argument constructor in most circumstances, so on restore you're not actually getting that NewObject called in the UMySaveGame constructor. Instead a constructor with the argument FObjectInitializer& ObjectInitializer is being called, which doesn't have that NewObject in it.
It's a bit odd, but unless you're always constructing UObjects yourself (in which case the no-arg constructor is fine), you should always implement a constructor which takes a FObjectInitializer& ObjectInitializer argument, because that's the route UE will go through when constructing your classes.

Thanks for the info and quick reply. I've got it working now using the FObjectInitializer argument, but also with a bunch of checks on initialization of the quest progression object that I feel like I shouldn't need. I've also had a few crashes that I'm trying to nail down. I'm going to close this out, since it's definitely not a problem with SUQS, per se. If I can nail down exactly what the issue turns out to be, I'll post back for posterity..


find optimal Windows installer package

I thought I had a solution which was "easy", but it is failing with:
_msi.MSIError: Could not insert [('__init__.py.591', 'scripts4', '__INIT__.PY|__init__.py', 0L, None, None, 512, 32768)] into File

The 32768 looked suspect, which led me to the fact that the limit is 32,767 on the number of installed files: https://msdn.microsoft.com/en-us/library/aa367767(v=vs.85).aspx
What I was trying to do was include all of Anaconda so I wouldn't have the dependency problem. I got
the python startup to work with cx_freeze, but then this happened. These "builds" take about an hour
on my Mac running a Windows 8 VM so it is pretty slow going.
We may have to have the installer pull down other installers (miktex and anaconda) dynamically, and run them behind the scenes. My first attempt tomorrow will be to create a custom action that will unzip blobs.

David, you can find a RadTrack win32 installer:
bruhwile@dev.radiasoft.org:RadTrack-1.0-win32.msi (about 1GB)
The first phase of the install is just like normal. You select what directory you want, and it puts files there. It puts an icon on your desktop.
When you run RT the first time, it will ask you again for permissions to modify things, and you'll get a console window telling you it's doing a second install phase. This one takes more time than the initial install, because it is unpacking Anaconda, TeX, and APS. Once the unpacking is complete, it will start RadTrack.
There will be an extra console window hanging around while RT runs. I will probably drop that once I've debugged the process. If you get an error during the install or running the program, you'll see it in the console window. It may go away quickly.
I didn't try this on Win7 yet. Just try it on Win8 if that's convenient, and I'll debug Win7 once I know it works for you for Win8.

Thanks a lot, Rob.
At first glance, the install on Win8 was fine.
Only exception is a lingering windows terminal that I had to close by hand.
The lower plots on the beam tab are being clipped.
Which executables are included?
I'll try to run something with Elegant, but need to do other things for a
couple of hours.
David
On Tue, Feb 24, 2015 at 6:08 PM, Rob Nagler<EMAIL_ADDRESS>wrote:

David, you can find a RadTrack win32 installer:
bruhwile@dev.radiasoft.org:RadTrack-1.0-win32.msi (about 1GB)
The first phase of the install is just like normal. You select what
directory you want, and it puts files there. It puts an icon on your
desktop.
When you run RT the first time, it will ask you again for permissions to
modify things, and you'll get a console window telling you it's doing a
second install phase. This one takes more time than the initial install,
because it is unpacking Anaconda, TeX, and APS. Once the unpacking is
complete, it will start RadTrack.
There will be an extra console window hanging around while RT runs. I will
probably drop that once I've debugged the process. If you get an error
during the install or running the program, you'll see it in the console
window. It may go away quickly.
I didn't try this on Win7 yet. Just try it on Win8 if that's convenient,
and I'll debug Win7 once I know it works for you for Win8.
—
Reply to this email directly or view it on GitHub
https://github.com/radiasoft/radtrack/issues/18#issuecomment-75885944.

--
David Bruhwiler
RadiaSoft LLC
+1<PHONE_NUMBER>

I just tried to drop the terminal window by setting up the app as a Win32GUI. This works, but it doesn't show the console window with the unzips. Since there's no locking on the unzips, it would cause thrashing if someone clicked multiple times without knowing that the unzips are happening in background.
I can fix radtrack_start_win32.py to invoke RbGlobal.py in background. Another alternative is to make the second phase installer a PyQt app with locking (a good thing in any event).
For now, I think we should leave it with the lingering console window so Bryce can get it going.
Here's a public link for the previous installer: [[https://user.radiasoft.org/nagler/pub/RadTrack-20150224.msi]]

Thanks a lot, Rob!
I'll close the issue.
If more work is required on the installer, we'll open a new issue.
Mark -- if you have a chance, please give the installer a try.
Thanks,
David
On Wed, Feb 25, 2015 at 5:46 PM, Rob Nagler<EMAIL_ADDRESS>wrote:

I just tried to drop the terminal window by setting up the app as a
Win32GUI. This works, but it doesn't show the console window with the
unzips. Since there's no locking on the unzips, it would cause thrashing if
someone clicked multiple times without knowing that the unzips are
happening in background.
I can fix radtrack_start_win32.py to invoke RbGlobal.py in background.
Another alternative is to make the second phase installer a PyQt app with
locking (a good thing in any event).
For now, I think we should leave it with the lingering console window so
Bryce can get it going.
Here's a public link for the previous installer: [[
https://user.radiasoft.org/nagler/pub/RadTrack-20150224.msi]]
—
Reply to this email directly or view it on GitHub
https://github.com/radiasoft/radtrack/issues/18#issuecomment-76100422.

The installation was successful on my computer (Windows 7).
Why is the installation a two-stage operation? Why not do all the unpacking during the installation instead of putting a 10-minute delay in the first run of RadTrack? This would also solve the issue:

Since there's no locking on the unzips, it would cause thrashing if someone clicked multiple times without knowing that the unzips are happening in background.

The uninstaller doesn't remove the Anaconda, APS, or tex folders.

The uninstaller doesn't remove Anaconda, APS, and tex folders. The next
install will delete them before installing the new versions.
The problem with the installer is that it relies on cx_freeze, which is a
quick way of building an installer for a Python app. It was a "quick hack"
to get Bryce using RT with all the necessary dependencies.

Closing again. The installer is good enough for now. The limiting factors are elsewhere. We will open a new issue or issues in the future, when it is time to improve the installer.


Missing trading pairs reported in list command

version: v0.6.18
Not all the valid trading pairs for a given market are reported using the list  command.  I'm running the alertsrsi strategy with the following configuration in the index.js file.
alertsrsi: {
       name: "Alerts RSI",
       maxTradingPairs: 5,
       excludeTokens: ["TRX", "ETH", "ADA", "BCC", "LTC", "ONT", "ICX", "ETC", "TUSD", "QTUM", "XLM"],
       targetMarket: "USDT"
}

and get the bot reports the following 4 tokens as valid:
Valid Pairs [4]:
#BNB/USDT
#BTC/USDT
#NEO/USDT
#XRP/USDT
I expect at IOTA, EOS to be listed as well.

Check the alertsrsi.js file.
Inside checkValidWorkingPair function, it is excluding pairs in the following line:
setPairValid(volume24h >= 100 && stoch5mAvg >= 25 && maxDiff5m < 60)
If the pair doesn't match the above condition, it won't be a valid pair:

Volume needs to be higher than 100 for the past 24h (in this case USDT);
Stochastics average for the last 2 hours need to be higher than 25;
Max diff between the highest price and the lowest price needs to be below 60% (this one will avoid pump & dumps).

Try to adjust that condition or remove everything and see if all tokens appear, like this:
setPairValid(true);

Thanks for the suggestion.  I've tried adjusting the condition to true and no change.  To ensure it's reaching that point in the code I set setPairValid(false) and no pairs were displayed as expected.
Is there any way that I can confirm that those pairs are being passed to the checkValidWorkingPair function?

Ok, I know what's going on.
if(chart1h.length < 500 || chart5m.length < 500) {
	setPairValid(false)
	return
}

This ensures there are enough candlesticks to work with to avoid new tokens or empty return results from Binance. Both EOS/USDT and IOTA/USDT are relatively new (less than 20 days). The first condition is to have at least 500 candlesticks for 1h timeframe (which sums up to almost 21 days). So, you can lower that value and they will pass through.
Anyway, you can always console.log(pair.name) at the beginning of checkValidWorkingPairs and check the console to see if those pairs appear.

Found why they are getting rejected.  Neither EOS or IOTA are passing the charts length checks in the checkValidWorkingPair function.
Pair name:  EOSUSDT
chart1h.length:  479
chart5m.length:  500
Pair name:  IOTAUSDT
chart1h.length:  403
chart5m.length:  500
Is it OK to change the check from 500 to a lower number?   Why was 500 chosen?

Thanks for the explanation.  All making sense now.

Nice! Closing the issue.


POC - Lumedic - Full Testing of Web Portal

Refactoring EHR portion due to attribute names not corresponding to Credential attributes.


multiple snapshots: how to do getFromSnapshot using version

Browsing through the docs and this looks great.
One thing that caught my eye, is that I want to create a new snapshot after N events have happened. This results in M snapshots over time that I want to be versioned.
createSnapshot allows me to define an optional version. Normally I'd like to retrieve the latest snapshot (is there a shortcut to get to the latest without defining a version ? ) but sometimes I want to fetch an arbitrary version. However, getFromSnapshot (at least from the docs) doesn't seem to allow to pass version
How to do this?

Hi @adrai,
Instead of creating a new issue, I prefer to ask my question here.
Actually, I have the same question: How could I easily get only the latest snapshot (with only the new events), without knowing the current revision ?
I'm using redis store, and it seems that the snapshots are all scanned by default (using revMax === -1).
I was using snapshots to enhance performance because of a lot of events on an aggregate. But it won't if all snapshots are scanned.
And I don't have the current revision of the aggregate because the time I'm reloading the aggregate form a snapshot.
Looking at the code of redis storage, I thought passing 1 as revMax would avoid many useless GET on redis, because of these lines:
https://github.com/adrai/node-eventstore/blob/831698514af8bfb0d6d8c0f65e139250e1bb7b3a/lib/databases/redis.js#L579-L585
The snapshot keys are reduced to the last snapshot key.
But once the snapshot is loaded, it is filtered because its revision (usually above 1) doesn't fit this filter:
https://github.com/adrai/node-eventstore/blob/831698514af8bfb0d6d8c0f65e139250e1bb7b3a/lib/databases/redis.js#L606
So I feel like, if I want the latest snapshot, I need to pass the the "real" revision, but by doing this, all of the snapshots will be loaded, hence causing some "n+1 selects" issue with no need.
Correct me if I'm wrong. Thanks for your awesome work. I would love to help.

By the way, we can also reverse the question by asking: how is it possible to get the snapshot of revision 1, if there is already a snapshot for revision 4 ?

Finally made a pull request to improve the way snapshots are loaded.

Sorry, had no time to take a look at it...
Will look at it asap.
Thanks for your contribution.


The CircleCI badge is a lie

It is actually passing, I don't know what to do though because I tried all the things like cache busting etc.

Removed it.


Rename positionSiblings?

@jessegreenberg I feel like siblings means something to us because we are familiar with how PDOMPeer is set up and named, but perhaps a more holistic name to encompass the entire PDOM representation makes more sense do you.
What do you think about any of these?

positionPeer
positionInPDOM
positionPDOM
positionA11y
positionPDOMNode

I like positionInPDOM the best.

This makes sense to me! I like positionInPDOM as well, renamed in the above commits. Anything else for this issue?

This makes sense to me! I like positionInPDOM as well, renamed in the above commits. Anything else for this issue?

That's great. Thanks!

That's great. Thanks!


1.20.30 not supported

why? 1.20.30 is not supported when i litteraly removed and re installed the bedrock-protocol

Update your dependencies
Npm update --depth 9999


Add a substitution pass

I'd like there to be a way to inject secrets or other per-instance values into an ignition file when fcct is run.
Use case
An application config file contains numerous settings, and so should be kept in version control. However, one of those settings is an authorization token for accessing privileged data. That token needs to be kept secret, so a repository containing it cannot be published. It should also be different for each instance, leading to either churn or duplication.
Instead, it should be possible to put a some kind of placeholder in the config file so the repository can be public, and substitute a particular value for the authorization token from some external source when the instance is created.
Implementation suggestions
I'd like the transpiler to apply some kind of template or variable expansion pass. So I could have this server.yaml in a public repository:
storage:
  files:
    - path: /etc/app/config
      contents:
        inline: |
          memory 50M
          queue 10
          fetch https://example.com/jobs
          token {{ auth_token }}
          timeout 200

And then fcct would substitute the actual value for auth_token when it creates server.ign. The secret could be taken from the environment or from another (yaml?) dictionary file passed as an additional argument:
$ fcct --strict --pretty --var secrets.yaml server.yaml > server.ign

This would also be useful for any content that varies by instance, like upstream urls or resource limits. It might make more sense to call it local.yaml in that case.
A possible enviroment-based substitution:
$ auth_token=$(fetch_app_token.py --expires +90d)
$ fcct --strict --pretty server.yaml > server.ign
$ unset auth_token

Of course one can achieve this by running either the source yaml or the target ignition files through an external template engine (which might just be ad-hoc sed commands) as part of a wrapper or deployment script. However it's a common enough use case that I think it's worth supporting a standard solution for it.
Issues

IIRC go has some handlebarsesque template library, which is why I suggested the {{ var }} syntax above. It looks like Azure pipelines use shell-style $(var) expansion instead. Yaml already has in-file variable substitution (aliases) but I rarely see anyone use it. That might enable implementation just by concatenating the file before parsing.
Either way, care should probably be taken with how the macro expansion interacts with surrounding context. Must the substitution end up as a single value? Auto-escaped? Or can it include arbitrary sub-trees? Arbitrary file sections? I don't know what the correct choice is.

A number of other solutions use encrypted values instead, so only a single key needs to be injected, which then decrypts all the secret values. This is simpler in some ways, and allows a kind of change-tracking for values themselves. See Travis CI and Ansible Vaults.

An application config file contains numerous settings, and so should be kept in version control. However, one of those settings is an authorization token for accessing privileged data. That token needs to be kept secret, so a repository containing it cannot be published. It should also be different for each instance, leading to either churn or duplication.

@rillian thanks for the report. Just wondering, did you see the configuration entry to source local filesystem resources (https://github.com/coreos/fcct/pull/99)? It seems to solve the usecase described above (committing the config, but not the secret file) without introducing a full templating language.

In past projects, I have added a step myself to run the code through j2cli.
Advantages:

Jinja2 is a powerful template language (You probably won't run into situations where you need a hack on top of this)
Existing template language so examples are easy to find
Doesn't add complexity to the tool that you want to template (more Unix-y philosophy)

Disadvantages:

You need to have some kind of automation (makefile, shell-script, etc). Usually if it's complex enough for me to need a template, it's complex enough for me to have some automation.
Jinja2 needs Python. Inconvenient if the machine you're deploying from is bare-bones
Not under control of fcct. With extra work, you could do something like Terraform's secret variables, where they don't show up in error output?

Just adding my two cents, having a YAML file with variables and running butane with a file or list of variables (similar to Terraform templatefile) would be really helpful. Right now we are using Terraform templatefile -> YAML -> Butane (CT provider) to generate Ignition configurations... This feature would allow testing locally without involving Terraform.

envsubst is available in most distros,  so envsubst < server.yaml | butane > server.ign should replace all the exported environment variables.

yaml doesn't play very well with multiline envsubst variables. For example, I need to add a couple of network interface configurations using /etc/NetworkManager/system-connections/ensXXX.nmconnection files in butane. I can't pull a multiline network config from a bash variable unless the indentation perfectly matches the yaml file.


Contribution to some algorithm implementations in Python Language

At first, I would like to thank you for this project, it helped me a lot.
And I'd like to know if it would be helpful if I contribute to some algorithm implementations in Python Language.
Thank you
Ahmed Henteti

Hi @ahenteti
It’s a good idea

Please feel free to send PR in python as long as code logic is similar to Java.


dual_quaternions: switch to kinetic-devel branch

I must've missed this while running the prerelease test. Got an error that setuptools isn't supported in kinetic (doesn't happen in Noetic) so switched back to distutils.core on branch kinetic-devel.
I'm not sure if this is the way to do it or if I have to use the bloom-release tool.
Previous PR: #25174

Holding for Kinetic sync.

This will only change the devel and doc jobs that build from source. The debian packages only use the artifacts generated by bloom-release. You'll have to make a new release and rerun bloom to get the debians updated to use that release.


Can not edit when paste HTML as the default value

After pasting HTML as the default value, an error appears when trying to edit:
TypeError
Cannot read properties of null (reading 'append')

https://codesandbox.io/p/sandbox/mdx-editor-paste-html-ld5366?file=%2Fsrc%2FApp.tsx%3A20%2C21-20%2C29
something is with the parsing, because the
 tag without attributes wraps the whole content or every tag
 is wraped by other
 without attributes

Nesting paragraphs is certainly not correct, but I want to get the obvious question out first - what's the purpose of P tags in a markdown file? White you can (quite inconveniently) edit HTML with the editor, there are much better tools for that purpose. And if you want to convert an exsiting HTML content to markdown, you will be much better off pre-processing it firstbefore passing it into the editor.
Apart from that, I can't reproduce a problem, but likely I'm missing something - what do you mean by "pasting"?

The example is in the sandbox, the link does not work?
https://codesandbox.io/p/sandbox/mdx-editor-paste-html-ld5366?file=%2Fsrc%2FApp.tsx%3A20%2C21-20%2C29
"pasting" wrong word, sorry, I meant to simply add the initial value as HTML
Preparing data from HTML to Markdown is probably the only solution in that case

import<EMAIL_ADDRESS>import { MDXEditor, headingsPlugin } from "@mdxeditor/editor";

const fromDB = `
Lorem Ipsum is simply dummy text of the printing and

  \n
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s

  \n
desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum

  \n
'Content here, content here', making it look like readable English.

  \n
Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

  \n
lorem bold impsum!.

  \n`;

const otherFromDB = `
Lorem Ipsum is simply dummy text of the printing and

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s

desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum

'Content here, content here', making it look like readable English.

Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

lorem bold impsum!.
`;

function App() {
  return <MDXEditor markdown={otherFromDB} plugins={[headingsPlugin()]} />;
}

export default App;

I opened the link, but then I'm not sure what I'm supposed to do there to trigger the error. I see no errors in the console, and I can type in the editor just fine.

Try pressing "Enter" e.g. after "Lorem Ipsum"

Got it. I will fix that at some point, probably a matter of handling the P paragraphs explicitly. But in general, you are still better off converting the HTML explicitly, given the whitespace specifics of the markdown.


godot engine crashes

Tested versions
Godot 4.2.1
System information
windows 11, 8gb ram, GPU 0  	AMD Radeon(TM) Graphics  	Driver version:	31.0.12042.18002 	Driver date:	14-09-2023 	DirectX version:	12 (FL 12.1) 	Physical location:	PCI bus 3, device 0, function 0  	Utilization	5% 	Dedicated GPU memory	439/512 MB 	Shared GPU memory	0.1/3.6 GB 	GPU Memory	0.6/4.1 GB,CPU  	AMD Ryzen 3 7320U with Radeon Graphics   	Base speed:	2.40 GHz 	Sockets:	1 	Cores:	4 	Logical processors:	8 	Virtualization:	Enabled 	L1 cache:	256 KB 	L2 cache:	2.0 MB 	L3 cache:	4.0 MB  	Utilization	11% 	Speed	2.30 GHz 	Up time	0:22:21:31 	Processes	248 	Threads	3589 	Handles	212486, Memory  	8.0 GB  	Speed:	5500 MHz 	Slots used:	2 of 2 	Form factor:	Other 	Hardware reserved:	773 MB  	Available	1.4 GB 	Cached	1.5 GB 	Committed	10.2/15.2 GB 	Paged pool	593 MB 	Non-paged pool	590 MB 	In use (Compressed)	5.8 GB (206 MB),
Issue description
crash while starting the engine
Steps to reproduce
i happens while opening the exe file
Minimal reproduction project (MRP)
it just for a while then closes instantly

Related to https://github.com/godotengine/godot/issues/86954.

Which executable did you try to run? The one with the console.exe suffix, or the one without console?

Related to Godot 4.2.1 closes instantly when opening  the _console.exe file. #86954.

Which executable did you try to run? The one with the console.exe suffix, or the one without console?

for both of them.

i also tried different like v4.0 & v3.5.3, it works fine in my laptop but v4.2.1 was not working


👥 Add new author and contributor

PR to update the list of authors of this collection.

@guidograzioli Ready for your review!


If I want to make my own project dataset, how can I get this pkl file.

real_test\cat\000001-coor.pkl.
Hello.What does the content of this pkl file mean? If I want to make my own project dataset, how can I get this pkl file.Can I train the model without this pkl file? What impact will it have?

I also would like to know how to create the XXX-coor.pkl file, too.

I would also be interested in knowing how to train our own data to create *-coor.pkl.  Thanks.

@xyysname @hirohitokato @chyphen7 Thanks for your questions. These "*-coor.pkl" coordinates files are the ground-truth coordinates labels to train the rotation head of our CDPN model. They can be created by the 3D object models and the pose annotations provided by the LM/LMO dataset. Concreately, you can simply project the 3D object models to the image plane using the ground-truth pose annotation to create them.

@LZGMatrix Thank you so much for a comment!
Do you use/create the tool for building the "*-coor..pkl" files?
If so, I want to use it so that we can train your model with the best performance.

@LZGMatrix Thanks for your answer, but I want to confirm whether the specific production steps I now know are correct.
Now,I don't have depth pictures in my hand, only the ply file (point cloud coordinates) and pose information of the model. Can I directly use the 3D point cloud coordinates of the model, that is, the point cloud coordinates in the ply file, to create the coor in the pkl file?  Is the "coor" in the plk file obtained by using the pose matrix to transform the point cloud coordinates in the ply file?

我现在制作数据集遭遇了制作这个 pkl文件里面the ground-truth coordinates 的困难。这个coor坐标的含义是物体像素点对应的真实的3d坐标，那我怎么能够得到这个真实的3d坐标呢，具体要使用哪些工具呢？我现在手里不能得到深度图片，只有rgb图片和图片对应的pose矩阵以及物体的ply点云文件，那我能用这些东西把那个ground-truth coordinates制作出来吗？

I am trying to create a -coor.pkl file, but I still can't get it to work. I would like to know what tool or scripts you used to convert it.

I too am interested in setting up my own dataset and am getting hung up by the pkl files. I see that there are .ply & .obj files in root/dataset/lm/models. If would be great if a method to convert one of the 3d model files to a .pkl file were made available. I think that would answer a lot of questions. Thanks.

@LZGMatrix, correct me if I'm wrong, but I think I was able to reverse engineer the image portion of the pkl file.  After some normalizing of the data it appears to be a 2D rendering of the corresponding 3D model with the matching pose.txt rotations applied, as @LZGMatrix mentioned above. Each raw channel value is roughly between -0.05 & 0.05. When normalized to between 0 & 1, to make matplotlib happy, each pixel has a different color of the rainbow.
@LZGMatrix:

Does the different color per pixel & -0.05 to 0.05 value range matter to the algorithm?
Is it essentially a unit vector field?
Should I file a separate 'Issue' to request a method to generate .pkl files from the .ply/.obj & pose.txt files or would you like to use this one?

I've written a small script to convert the .pkl files to .pngs in case anyone is interested.
import pickle as pkl
from matplotlib import image

def norm(coor):    # Normalize between 0.0 & 1.0
    return ((coor - coor.min()) * 255. / (coor.max() - coor.min())) / 255.

with open("path/to/coor.pkl", "rb") as f:
    image.imsave('coor.png', norm(pkl.load(f)['coor']))

我现在制作数据集遭遇了制作这个 pkl文件里面the ground-truth coordinates 的困难。这个coor坐标的含义是物体像素点对应的真实的3d坐标，那我怎么能够得到这个真实的3d坐标呢，具体要使用哪些工具呢？我现在手里不能得到深度图片，只有rgb图片和图片对应的pose矩阵以及物体的ply点云文件，那我能用这些东西把那个ground-truth coordinates制作出来吗？

我也遇到了一样的问题，怎么制作生成pkl文件呢？不然一直无法训练自己的数据集....

@LZGMatrix Thank you so much for a comment!
Do you use/create the tool for building the "*-coor..pkl" files? If so, I want to use it so that we can train your model with the best performance.

Hi, as said before, these *-coor.pkl are generated by projecting the 3d object model (i.e. *.ply file) using the ground-truth pose annotations. It can be implemented with no more than 100 lines of code.

@hirohitokato @lululovecode @xyysname @chyphen7 Hi, as said before, these *-coor.pkl are generated by projecting the 3d object model (i.e. *.ply file) using the ground-truth pose annotations. It can be implemented with no more than 100 lines of code. If all people still cannot achive it, maybe in the near future (when I have spare time), I will provide a short technical article to illustrate it. Anyway, it is a very simple and straightforward thing.

@hirohitokato @lululovecode @xyysname @chyphen7 Hi, as said before, these *-coor.pkl are generated by projecting the 3d object model (i.e. *.ply file) using the ground-truth pose annotations. It can be implemented with no more than 100 lines of code. If all people still cannot achive it, maybe in the near future (when I have spare time), I will provide a short technical article to illustrate it. Anyway, it is a very simple and straightforward thing.

I'm so soory, but I try the code, and get a similar but different result. Can you take some time to help me find the wrong?
the 'model' is the point get from cat.ply, and the box mean the box corner of 'model'.
=======================
R = pose[:,:3]
t = pose[:,3]
box = get_model_corners(model)
model = model - box[0] # 0~1 instead of -0.5~0.5
rgb_x = model[:,0]/np.max(model[:, 0]) # 0~1 instead of -0.5~0.5
model_new = np.dot(model, R.T) + t
xyz = np.dot(model_new, K.T)
xy = xyz[:, :2] / xyz[:, 2:]
xy = xy.astype(np.int16)
coor_h, coor_w = 480, 640
coor = np.zeros((coor_h, coor_w, 3)).astype(np.float32)
coor[xy[:,1],xy[:,0],0] = rgb_x
plt.figure()
plt.imshow(coor[:,:,0]*255)
plt.show()

Thanks for your questions. These "*-coor.pkl" coordinates files are the ground-truth coordinates labels to train the rotation head of our CDPN model. They can be created by the 3D object models and the pose annotations provided by the LM/LMO dataset. Concreately, you can simply project the 3D object models to the image plane using the ground-truth pose annotation to create them.

Hello，has this technical article been published?

@BoBoINVIDICUS
Hi, I will release it in several days, hold on~

大佬你好，请问这个.pkl文件存储的是在当前相机坐标系下的3D坐标吗？可以用深度相机结合相机内参计算的到吗？

@LZGMatrix, just wondering if the report has been released? Thanks for your great effort.
George

@LZGMatrix, I am afraid this is not as straight forward as you said. You probably need a renderer to render the .ply object in order to generate .pkl files, which is the reason that makes it complicated and not straight forward, since render a 3D object is non trivial. Correct me if I am wrong. Someone used OpenGL tools to render. And the code can be hundreds of lines.

@george66s
Hi,  if you get bad results such as holes in the coordinates map, you may need to do some interpolation operations in the 3D model or in the projected coordinates map, and it should not cost too many lines~
best

@george66s Hi, if you get bad results such as holes in the coordinates map, you may need to do some interpolation operations in the 3D model or in the projected coordinates map, and it should not cost too many lines~
best

Is is possible that you can release a technical article on the whole thing? Thanks a lot!

The hole issue is exactly why it is non trivial. You may do interpolation when holes are inside the projection. It's quite difficult when holes are on edges of the project since you don't know if points belong to the object or not. This is why you need a renderer, or you'll have to write a renderer yourself, which is totally not necessary and would probably coast you thousands of lines.

我现在制作数据集遭遇了制作这个 pkl文件，里面the ground-truth coordinates 的困难。这个coor坐标的含义是物体像素点对应的真实的3d坐标，那我怎么能够得到这个真实的3d坐标呢，具体要使用哪些工具呢？我现在手里不能得到深度图片，只有rgb图片和图片对应的pose矩阵以及物体的ply点云文件，那我能用这些东西把那个ground-truth coordinates制作出来吗？

我也遇到了一样的问题，怎么制作生成pkl文件呢？不然一直无法训练自己的数据集....

你好，请问你生成pkl文件成功了吗？？


link in question notification is wrong

should be grant_submissions/

This is more complicated than just changing the URL in an email.
Would need to add some logic when a user tries to visit a page while not logged to keep track of which page they want to visit and to redirect after login.


No token

Hello,
I followed your documentation and copied the sample in my project.
But i still can't receive notifications.
The TOKEN when it is displayed is empty ?
Could you please provide some help ?

I tried to check if my Android SDK Manager libraries are up to date like the FAQ said. But i didn't find where to do it in visual studio.

I deleted the project in firebase then recreate an other. Now the token is displayed.
But i still dont receive any notifications.


Unified data reader / writer interfaces

This post summarizes some of the inconsistencies in the reader / writer APIs.
Inconsistencies naturally arise as open source projects develop.  I think the project is now in a place where we can think about the readers / writers holistically and design an interface that'll be internally consistent.  This'll also be a great opportunity to revisit assumptions and defaults (e.g. default append behavior, default compression algo for CSVs, and filenaming conventions that'll be less error prone).
I expect a lot more readers / writers will be added in the future and would like to avoid even more ways of doing things.
I think we can get the best of all worlds with some well thought out work:

give users a better interface
eliminate some tech debt
keep code backwards compatible

Writer inconsistencies

Here’s how to append with to_parquet: ddf.to_parquet(“some_folder”, append=True)
Here’s how to append with to_csv: ddf.to_csv(“some_folder”, mode=”a”)

There are also functionality differences.  to_csv allows for filename customization with name_function but to_parquet doesn't allow for customization.
There are some behavior/convention inconsistencies:
to_parquet
df = pd.DataFrame(
    {"nums": [1, 2, 3, 4, 5, 6], "letters": ["a", "b", "c", "d", "e", "f"]}
)
ddf = dd.from_pandas(df, npartitions=2)

ddf.to_parquet("some_parquet_folder") # nothing is returned

Here are the files that are outputted:
some_parquet_folder/
  _common_metadata
  _metadata
  part.0.parquet
  part.1.parquet

to_csv
ddf.to_csv("some_csv_folder") # this returns a list of filenames that are outputted, which is bad for huge writes

Here are the files that are outputted:
some_csv_folder/
  0.part
  1.part

It'd be better for these files to be named part.0.csv and part.1.csv to be consistent with the Parquet filenames.  The Spark convention of part-00000-78f9c583-ea60-4962-af99-895f453dce23-c000.snappy.csv would be even better to allow identification of files written per batch and lessen the probability of filename collisions.
Reader inconsistencies
There are also lots of subtle inconsistencies with the data readers (CSV wants glob notation and Parquet does not).

dd.read_csv( "s3://coiled-datasets/timeseries/7d/csv/2000/*.csv")
dd.read_parquet("s3://coiled-datasets/timeseries/7d”)

Recommended next steps

Get thoughts from the core team if this project sounds interesting
I can provide suggested next steps is the team would find them useful

Thanks for writing this up @MrPowers .  In general I think that it makes sense to assess our I/O routines.  cc @dask/io

I can provide suggested next steps is the team would find them useful

I encourage you to write up your thoughts as a proposal.  I think that it's easier for folks to think about a possible solution than it is to talk about an existing problem.  I don't think that we'll get much disagreement here that inconsistency is bad.  The one caveat might be that "well, we just follow whatever Pandas does, so this discussion should probably start there".

Moving on to proposals:
Save modes

append - add files to existing folder
overwrite - delete all files in folder, then write
errorifexists - throw an error if any files are in the folder, then write

The default save mode should be append.  The current default save mode is clobber, which I don't think should even be an option.  Clobbering makes partial overwrites possible, which I don't think users ever want.
Compression
Use Snappy compression by default.  Seems like Snappy is the generally accepted winner in the big data space (it's not the best at compressing, but allows for quick inflation)
Filenames
Current filename conventions make filename collisions likely and cause issues like this one.
Think it'd be better to write files like this:

part-00000-01234567890123456789012345678912.snappy.csv
part-00001-01234567890123456789012345678912.snappy.csv

Advantages of this convention:

leading zeros in part keep files ordered in filesystem
UUID per batch makes it easy to figure out what files are written per batch and minimizes risk of filename conflicts
add file extension in case folks aren't sure when they come across the files in a filesystem like S3
Martin previously argued against adding the compression algo in the filename for Parquet files, so maybe that's not a good idea

Disk partitioning
to_parquet has Hive-compliant Disk partitioning via partition_on and we should bring partition_on to CSV writers and any other files that also can benefit from disk partitioning.
Builder interface
We currently have single method interfaces that take lots of arguments:

The builder pattern could provide a more ergonomic end user API:

ddf.write.save_mode("append").compression("gzip").csv("some-folder")
ddf.write.save_mode("append").compression("gzip").parquet("some-folder")

Think the builder pattern is consistent with how users chain method calls when using other Dask APIs (e.g. DataFrames).
The builder pattern could also help reduce tech debt.  We'd have a single place in the codebase to implement the partition_on, save_mode, and compression logic, so we wouldn't need to handle this logic in every writer.
It's possible the builder pattern is unPythonic, but not sure huge argument lists are Pythonic either.
Backwards compatibility
I'm suggesting creating a new interface and keeping the existing backwards compatible with a refactoring like this:
def to_parquet(df, path, engine='auto', compression='default', write_index=True...):
    df.write.engine("auto").compression("default").write_index(True).parquet(path)

I'm not suggesting adding a big burden of maintaining two separate APIs.
Strength of my opinion
This is what I'd like as a user and I'm sure there are tons of details I'm missing.  Feel free to educate me if this suggestion is a bad idea.  This is a weakly held opinion and I welcome feedback.
Other details
I am glossing over some details to avoid making this message too long (e.g. the single_file option in to_csv).  I'll be happy to go through each and every option if folks are interested in investigating this further.

A few high-level thoughts, without getting into too much detail.
I totally agree that the large number of options available in the various IO functions currently makes them hard to use and hard to optimise. Obviously they have grown organically, as more options have become available.
Secondly, I agree that we can revisit what reasonable defaults to have, such as data overwrite and filename generation. Some of these will be the same across IO storage types, some not.
I am against the "builder" interface, I don't see what it gains us, except for a lot of extra . in the code.  Given that the eventual IO routine will not be known until the end, we cannot verify the values held in the builder (e.g., compression, in your example, which could be "gzip", but could be a dict for parquet) in the chain. Indeed I find it unpythonic!


Various CVE fixes

Description
Additional CVE fixes:

bumping minimist and minimatch.
removed start-server-and-test as that isn't used anymore, we only used it for e2e testing when we had cypress in house
manually bumped moment in yarn-lock (Same as here: https://github.com/opensearch-project/anomaly-detection-dashboards-plugin/pull/323, cherry-picking gave me some issues with other yarn-lock changes)

Check List

[x] Commits are signed per the DCO using --signoff

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.

Thanks for the fixes! do any of these also apply to main/2.x?

Codecov Report

Merging #452 (21d3c29) into 1.3 (0113155) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##              1.3     #452   +/-   ##
=======================================
  Coverage   45.91%   45.91%
=======================================
  Files         150      150
  Lines        4957     4957
  Branches      956      956
=======================================
  Hits         2276     2276
  Misses       2463     2463
  Partials      218      218

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@amitgalitz is this PR needed anymore or is it covered by #463 ?

@amitgalitz is this PR needed anymore or is it covered by #463 ?
Yeah this can be closed


[ZEPPELIN-1711] Create Docker Images for Released Zeppelin Binaries

What is this PR for?
This PR

added Dockerfiles for released zeppelin binaries (0.6.0, 0.6.1, 0.6.2)
refactored Dockerfiles scripts/docker/zeppelin-base so that we can keep small size base images
added missing R, python packages to run tutorials properly
also included scripts/docker/create-dockerfile.sh to create docker images for newly released zeppelin binaries

├── zeppelin-base
│   └── alpine
│       ├── java
│       │   └── Dockerfile   # base image just including openjdk7 and dumb init
│       ├── python
│       │   └── Dockerfile   # base image including python related package based on alpine/java
│       └── r
│           └── Dockerfile   # base image including R related package based on alpine/java
└── zeppelin-bin-all
    ├── Dockerfile.template  # Dockerfile template for zeppelin binary images
    ├── alpine
    │   ├── 0.6.0_java
    │   │   └── Dockerfile
    │   ├── 0.6.0_python
    │   │   └── Dockerfile
    │   ├── 0.6.0_r
    │   │   └── Dockerfile
    │   ├── 0.6.1_java
    │   │   └── Dockerfile
    │   ├── 0.6.1_python
    │   │   └── Dockerfile
    │   ├── 0.6.1_r
    │   │   └── Dockerfile
    │   ├── 0.6.2_java
    │   │   └── Dockerfile
    │   ├── 0.6.2_python
    │   │   └── Dockerfile
    │   └── 0.6.2_r
    │       └── Dockerfile
    └── create-dockerfile.sh  # shell script used to create zeppelin binary images

For Reviewers
I have things to be discussed in this PR

Support other linux (centos) or not: Alpine linux is designed for light weight OS so it doesn't have graphic devices. But usually people use zeppelin to render graph like things. In this case Alpine is not enough
Extracting scripts to installing required packages into testing/install_external_dependencies.sh or not: Alpine linux has it's own command to install packages like apk add. I think this is not reusable. And extracting scripts from Dockerfile causes other problems. For example, we need to add script just for building base images for python, r to copy scripts for external dependencies because Docker command COPY and ADD doens't support relative paths. It means, we have to copy external dependency scripts before building into the path where Dockerfile is built.
Including git to base images or not: I am not sure git is used in zeppelin as default. It will increase the size of base images about 20MB.
Adding Binary Zeppelin Image to docker-library/official-images: I haven't experiences about this.
We can reduced size by removing packages such as googleVis, data.table and ramnathv/rCharts in R images for example. But then we might not be able to run tutorials properly.

What type of PR is it?
[Feature]
What is the Jira issue?
ZEPPELIN-1711
How should this be tested?
Building Base Images
$ cd scripts/docker/zeppelin-base/alpine/java
$ docker build . -t zeppelin:alpine-base_java

$ cd scripts/docker/zeppelin-base/alpine/python
$ docker build . -t zeppelin:alpine-base_python

$ cd scripts/docker/zeppelin-base/alpine/r
$ docker build . -t zeppelin:alpine-base_r

Building Zeppelin Images
Make sure you have base images before building
$ docker images
REPOSITORY               TAG                   IMAGE ID            CREATED             SIZE
zeppelin                 alpine-base_java      5a24572968d6        5 hours ago         145 MB
zeppelin                 alpine-base_python    e41dcf04760b        4 hours ago         684.9 MB
zeppelin                 alpine-base_r         80c2d7aa7156        4 hours ago         538.9 MB

$ scripts/docker/zeppelin-bin-all/alpine/0.6.2_java
$ docker build . -t zeppelin:alpine-0.6.2_java

$ scripts/docker/zeppelin-bin-all/alpine/0.6.2_python
$ docker build . -t zeppelin:alpine-0.6.2_python

$ scripts/docker/zeppelin-bin-all/alpine/0.6.2_r
$ docker build . -t zeppelin:alpine-0.6.2_r

# build 0.6.1, 0.6.0 images too

Running Zeppelin Images
Make sure you have zeppelin docker images before running containers
$ docker images
REPOSITORY               TAG                   IMAGE ID            CREATED             SIZE
zeppelin                 alpine-0.6.2_java     c65b2f6a1128        3 hours ago         786.4 MB
...
...

 I am not sure whether this is a problem of zeppelin or spark.
Since alpine linux doesn't have graphical device, some function may not work (e.g plot in R). Some R examples throw invalid images like chunked.png
For the same reason, we have to change some code of Python - matplotlib basic before testing otherwise it will throw tkinter errors in the python interpreter

// before
%python
import numpy as np
import matplotlib.pyplot as plt

// should be
%python
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as pet

Then, run each zeppelin container and run tutorial while replacing tags by accessing localhost:8080 in your browsers
# run: Zeppelin Tutorial
$ docker run -it --name zeppelin --rm -p 8080:8080 -p 7077:7077 zeppelin:alpine-0.6.2_java

# run: Zeppelin Tutorial, Python - matplotlib basic
# and modify the code mentioned above before running paragraphs
$ docker run -it --name zeppelin --rm -p 8080:8080 -p 7077:7077 zeppelin:alpine-0.6.2_python

# run: Zeppelin Tutorial,  R Tutorial
$ docker run -it --name zeppelin --rm -p 8080:8080 -p 7077:7077 zeppelin:alpine-0.6.2_r

# test 0.6.1, 0.6.0 containers too

Testing create-dockerfile.sh
$ scripts/docker/zeppelin-bin-all/create-dockerfile.sh -h

USAGE: ./create-dockerfile.sh version linux platform
* version: 0.6.2 (released zeppelin binary version)
* linux: [alpine]
* platform: [java, python, r]

# For example,
# This command will create `scripts/docker/zeppelin-bin-all/alpine/0.7.0_java/Dockerfile
$ ./create-dockerfile.sh 0.7.0 alpine java

Screenshots (if appropriate)
Image Sizes
zeppelin base image size added in #1538: 301.3 MB
REPOSITORY               TAG                   IMAGE ID            CREATED             SIZE
zeppelin                 alpine-base_java      5a24572968d6        5 hours ago         145 MB
zeppelin                 alpine-base_python    e41dcf04760b        4 hours ago         684.9 MB
zeppelin                 alpine-base_r         80c2d7aa7156        4 hours ago         538.9 MB
zeppelin                 alpine-0.6.0_java     85b4502fd255        2 hours ago         737.7 MB
zeppelin                 alpine-0.6.0_python   709dc585b94c        2 hours ago         1.278 GB
zeppelin                 alpine-0.6.0_r        f6fba0c66563        2 hours ago         1.131 GB
zeppelin                 alpine-0.6.1_java     ed95ca6204a9        3 hours ago         751.3 MB
zeppelin                 alpine-0.6.1_python   34ceea2aeba8        3 hours ago         1.291 GB
zeppelin                 alpine-0.6.1_r        3886596f3759        3 hours ago         1.145 GB
zeppelin                 alpine-0.6.2_java     c65b2f6a1128        3 hours ago         786.4 MB
zeppelin                 alpine-0.6.2_python   16c2c3630545        3 hours ago         1.326 GB
zeppelin                 alpine-0.6.2_r        544311ec1e6a        3 hours ago         1.18 GB

We can reduced size by removing packages such as googleVis, data.table and ramnathv/rCharts in R images for example. But then we might not be able to run tutorials properly.
Questions:

Does the licenses files need update? - NO
Is there breaking changes for older versions? - NO
Does this needs documentation? - YES, I updated docs/install/docker.md

\cc @bzz @mfelgamal @astroshim Thanks!

@1ambda awesome!.

My apologies if discussed before, but is there a reason for separating into Scala, Python, R individual Docker images? Don't people want to run Python and R together, for example?
Also, +1 for graphing being important for Python and R.

@1ambda ping

@felixcheung Thanks for review.
Previously, we discussed about separating images in ZEPPEILN-1711
IMO, having 1 image which includes R, Python related packages is better. Since

it's usually case.
easy to maintain

I would like to use ubuntu which is comfortable as a desktop OS instead of centos.
What do you think? @felixcheung @jongyoul @bzz

Let me create new PR which including only 1 OS (ubuntu) based on this PR.

#2264 was merged.


Infinite looping of the notify function

Infinite looping of the notify function !

Was due to the first * in the CRON exp : * 30 14 * * * ! Be careful !


find_project_manifest raising errors when attempting to use quarto

👋 first – thanks for your work on this! this definitely made switching to pixi much simpler than it would've otherwise been. 😄
i've been playing around with quarto lately, trying to use it instead of ipynbs. however, when i run quarto check juypter (with a pixi environment that indeed has jupyter), i appear to get errors from pixi-kernel of the variety:
Quarto 1.5.57
[✓] Checking Python 3 installation....OK
      Version: 3.12.5 (Conda)
      Path: /workspace/.pixi/envs/analysis/bin/python
      Jupyter: 5.7.2
      Kernels: pixi-kernel-xcpp14, pixi-kernel-python3, pixi-kernel-ir, pixi-kernel-xcpp11, pixi-kernel-bash, pixi-kernel-xcpp17, python3

(-) Checking Jupyter engine render....[pixi-kernel]: found Pixi 0.28.2
[pixi-kernel]: found empty project at /tmp/quarto-sessione0fecd1f23658c1e/37f126bda7102a58: PixiInfo(environments_info=[], project_info=None)
[pixi-kernel]: found empty project at /tmp/quarto-sessione0fecd1f23658c1e/37f126bda7102a58: PixiInfo(environments_info=[], project_info=None)
[pixi-kernel]: found empty project at /tmp/quarto-sessione0fecd1f23658c1e: PixiInfo(environments_info=[], project_info=None)
[pixi-kernel]: found empty project at /tmp/quarto-sessione0fecd1f23658c1e: PixiInfo(environments_info=[], project_info=None)
[pixi-kernel]: found empty project at /tmp: PixiInfo(environments_info=[], project_info=None)
[pixi-kernel]: found empty project at /tmp: PixiInfo(environments_info=[], project_info=None)
[pixi-kernel]: found empty project at /: PixiInfo(environments_info=[], project_info=None)
[pixi-kernel]: found empty project at /: PixiInfo(environments_info=[], project_info=None)
(\) Checking Jupyter engine render....[pixi-kernel]: No such comm target registered: quarto_kernel_setup

...

----- stderr -----
Pixi Kernel could not find a project manifest file in the current working directory /tmp/quarto-sessione0fecd1f23658c1e/37f126bda7102a58 nor in any of its parents.
Make sure you initialize a Pixi project by running 'pixi init' in the project directory and restart your kernel.

If you continue to face issues, please report them at https://github.com/renan-r-santos/pixi-kernel/issues
------------------

so, before claiming this is an issue with pixi-kernel, i'm curious: what is find_project_manifest aiming to do? i lightly read the code and wasn't able to infer what's going on, so i'm hoping you might be able to clarify.
aside: this is a project i'm running in a dev container – so it's possible some of these errors are dev container idiosyncrasies – but at face-value is seems like the error stems from quarto trying to work in a temporary file tree, rather than the project-local file tree.

Hi @jmuchovej, thank you for your detailed report. I'm not familiar with quarto, but I tried using it with pixi-kernel and it seemed to have worked fine. Here is my setup and log output
# pixi.toml
[project]
authors = []
channels = ["conda-forge"]
description = "Add a short description here"
name = "quarto"
platforms = ["osx-arm64"]
version = "0.1.0"

[dependencies]
quarto = ">=1.5.57,<2"
pixi-kernel = ">=0.4.0,<0.5"
jupyterlab = ">=4.2.5,<5"

Note that I installed quarto with Pixi too. With that, I get
pixi run quarto check jupyter
Quarto 1.5.57
[✓] Checking Python 3 installation....OK
      Version: 3.12.6 (Conda)
      Path: /Users/rrodrigues/Documents/coding/quarto/.pixi/envs/default/bin/python
      Jupyter: 5.7.2
      Kernels: pixi-kernel-xcpp17, pixi-kernel-xcpp11, python3, pixi-kernel-ir, pixi-kernel-bash, pixi-kernel-xcpp14, pixi-kernel-python3

[✓] Checking Jupyter engine render....OK

Then, if I run pixi run jupyter lab --notebook-dir ../myproject where myproject is a different folder where I have the following Pixi project
[project]
authors = []
channels = ["conda-forge"]
description = "Add a short description here"
name = "myproject"
platforms = ["osx-arm64"]
version = "0.1.0"

[dependencies]
ipykernel = ">=6.29.5,<7"
serialite = ">=0.3.4,<0.4"

I can create a notebook and use quarto render and preview commands:
Documents/coding/myproject quarto preview hello.ipynb
pandoc
  to: html
  output-file: hello.html
  standalone: true
  section-divs: true
  html-math-method: mathjax
  wrap: none
  default-image-extension: png

metadata
  document-css: false
  link-citations: true
  date-format: long
  lang: en

Output created: hello.html

Watching files for changes
Browse at http://localhost:7641/

Could you post all the steps it takes to reproduce the issue you're reporting?
Regarding find_project_manifest, it looks for the nearest pixi.toml or pyproject.toml starting from your current working directory, usually the directory where you have your notebook opened. If it can't find one of these files, it goes up one directory and tries again or fails if it is in the root of the file system.
If it finds your project manifest, it will use that Pixi project environment to run your Notebook.

👋 Sorry for the slow reply on this! Just circling back – I believe a the crux of this stems from not being able to install quarto from conda.
There's an open PR to add arm64 support for Linux here: https://github.com/conda-forge/quarto-feedstock/pull/43, but it seems that its a problem further upstream with deno.
I'm gonna keep poking around to figure out how I might be able to get a system-installed quarto to play nicely with pixi-kernel.
Further, I suspect that part of the problem is that the system-installed quarto is starting from a true /tmp directory, while the conda installed one you tested with probably starts around .pixi/.

Nice to hear it is working fine with the new pixi-kernel. I'll close this issue but feel free to reopen it if you encounter other issues.


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/104520

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/118742


Text Vertical Alignment

text vertical alignment is different in browsers, any clean solutions?
I got this weird text alignment issue, if I set text to var test = paper.text(30, 22, "something);
and then
test.remove();
and again
test = paper.text(30, 22, "something);
vertical alignment for y becomes 26 in FF and chrome, any ideas?
Thank you

Well it seems there is still a problem (at least between chrome & FF). I've played with the @uiteoi's gist (http://gist.github.com/265480) on the playground and alignements are differents.
Any idea?
(Btw, I reopen this issue because I've the probleme too. You can try it with the official exemple : http://raphaeljs.com/analytics.html remove .hide() on lines 78 and 79)
Thank you :)

it seems chrome play badly with _getBBox (a console log here https://github.com/DmitryBaranovskiy/raphael/blob/master/raphael.js#L4021 show only rounded value with chrome, I dunno if it's normal but it sounds weird)


Bug Report: Jupyter Data Viewer Filter will generate duplicated data in the viewer

When there are many columns and many rows in the data (for example in the sample data I have more than 50 columns and more than 5000 rows), using the filter in the data viewer will display a wrong line of duplicated data.
Screenshot:
When using the filter (looking up for ID = 1):

Actually, the data in line 1852 is:

The bug can be replicated by the following file:
testbug.zip
The Python extension version that I use: v2021.3.658691958
VS code Version: 1.54.3 (user setup)
Commit: 2b9aebd5354a3629c3aba0a5f5df49f43d6689f8
Date: 2021-03-15T10:55:45.459Z
Electron: 11.3.0
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042

Issue moved to microsoft/vscode-jupyter #5200 via ZenHub

/extJupyter


add a show all button to explorer

From<EMAIL_ADDRESS>on 2010-09-12T18:03:50Z
the file explorer may also get a "show all files" button like the project explorer
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=352

From pierre.raybaut on 2010-09-25T02:07:30Z
It already exists: options menu > show all files
Status: Invalid


Clearable

I don't understand how to implement a Clearable
I have this class ClearAbleRecordPersister extends RecordPersister implements Clearable {
...
@Override
public void clear(@NonNull BarCode key) {
//TODO what show i do here?
}
My Store persister instance:
val cacheDir: File = MyApplication.getContext().cacheDir
return ClearAbleRecordPersister.create(cacheDir,30,TimeUnit.MINUTES)
}
Could not erase the data in any way. Can someone help me with it

tryed the folowing in onClear method
fileEraser.delete(key)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
Log.d("clearing", "subscribe");
}
        @Override
        public void onNext(Boolean aBoolean) {
            Log.d("clearing", "next " + aBoolean);

        }

        @Override
        public void onError(Throwable e) {
            Log.d("clearing", "error " + e.getMessage());

        }

        @Override
        public void onComplete() {
            Log.d("clearing", "complete");

        }
    });

I got this error: : error unable to delete /data/user/0/packagename/cache/subscribtion/42961


[Bug] Download from GitHub not detected by import

We have set where we only look for .git directory when having the module bypass use of allcommands file. Downloading the module from GitHub now won't include the .git folder, it only has .github.
Import process should include looking for this directory as well unless there is are reason we are not?
https://github.com/sqlcollaborative/dbatools/blob/de150c789285f82678cd87ba5558b0d93c9a32e5/dbatools.psm1#L179-L185

Great question! In the last Twitter poll, 20% of our audience said they use the zip for normal installs. .git is there when you clone the directory, which is why we check specifically for that. Otherwise, we'd slow down 20% of installs by searching for github.

@wsmelton @potatoqualitee Does this mean that allcommands is now used when downloading and importing the development branch (unless you manually add a .git directory)?  If so, it might explain the situation I had while reviewing and commenting on https://github.com/sqlcollaborative/dbatools/issues/6003 last week.

It has always been used @SQLGB as we have only ever had it look for .git when we implemented the all commands file. You don't get that .git folder unless you do git clone.


Docs point to unexisting wait setting for Assertoor results

The README mentions Offers the option to wait for Assertoor test completion and return results but I can't find any related setting in the inputs.

After trying the action looks like by default it waits for the results (and looks like it is not possible to configure it to not doing it), so looks like a docs issue, will try to prepare a PR to update


Update troubleshooting-api-connectors-using-error-messages.md by adding unsupported licenses issue of Zendesk.

@idbasre : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@dcurwin : Thanks for your contribution! The author(s) have been notified to review your proposed change.


console fragments starting with $ sign

There are two code fragments for console starting with $ signs. These dollar signs are unnecessary (because the code is already shown in a box) and are taking with when you click on the Copy button on the top right of the box.
$ kubectl get pods
$ kubectl apply -f azure-vote-hpa.yaml
$ kubectl get hpa

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

ID: 6ab10c96-1f2f-e48f-a084-b1715156e33f
Version Independent ID: a113b8e9-259a-2a65-2e54-a2661c78ddb5
Content: Kubernetes on Azure tutorial  - Scale Application - Azure Kubernetes Service
Content Source: articles/aks/tutorial-kubernetes-scale.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@WilliamMauclet Thanks for the Feedback. The document is updated and the changes will go live soon.


Memory/recall database with previous experiences (successes, failures, solutions, ...)

Is your feature request related to a problem? Please describe.
The agent can retrieve valuable information from past experiences (e.g., failures, successes, solutions, etc.) using n-shot or fine-tuning. Without the ability to train the model or search for similar problems during runtime, the agent may end up solving the same set of problems repeatedly.
Describe the solution you'd like
Database storing previous experiences.
Problem example:
There is a problem with robot's navigation. The robot can't reach the final position.
Agent reasons and finds the solution in 10 steps, which took considerable amount of time.
The problem could be added to the db as:
problem:
 title: nav2 problem, can't reach the final step
 description: ...
 solution: ...

One of the possible solutions could rely on using external RAG vendor such as https://github.com/EmbeddedLLM/JamAIBase.


Can't find usable index (even with indexes created)

I've created index but pouchdb-find doesn't find it (Error: couldn't find a usable index.)...when I put getIndexes() I get all my indexes.
My index has 5 fields and my search uses only two of them.
Another strange behavior is that when I go on my couchDB instance on the index, it doesn't display anything and the "progress circular" continues to move indefinitely.
It used to work but I had to clear the cache and since then, nothing!
Here is the debug log:
pouchdb:find planning query +18s
Object {selector: Object}
selector: Object
nickname: Object
$regex: "^.Albert.$"
proto: Object
type: Object
$eq: "entity"
proto: Object__proto__: Object__proto__: Object
tsp-services.js:655 Error: couldn't find a usable index. try creating an index on: type, nickname. Make sure that only $eq, $gt, $gte, $lt, and $lte are used for the indexed fields.

I ran into this problem too. Your index has to have the exact same fields as your query. This makes it run most efficiently.
Another option (what has worked for me) is one field for index:
    var indexFields = ['type', 'date', 'description', 'details', 'amount'];
    var setup = [];
    indexFields.forEach(function(field) {
      setup.push( db.createIndex({ index: { fields: [field] } }));
    });
    var ready = Promise.all(setup);

Yep, I think we can safely close this. It's a confusing aspect of Mango, but this is just how it's designed unfortunately. 😕

@nolanlawson what you need to do is make the README documentation clear about what is valid and what is not. Write an index trouble-shooting guide. Cloudant's docs are quite confusing.
I've spent hours pulling my hair out and I am still not personally clear on how it works.

@colinskow thanks for the tip... I've tried your technic of indexing each field but I still ran into troubles. For example:
selector: {       $or: [         {type: 'animal'},         {type: 'human'}}       ],       name:'John'     }
does't work.
@nolanlawson The problem here is that I have 20 fields and it would be impossible to make indexes for all the possible combinations. Do you have any solution for that?

@natcohen try creating a free Cloudant account and run your queries there. Cloudant is the reference implementation so if it works there but not with a local pouchdb-find then file a bug.

@colinskow Thanks, that's a good idea but it would be better to understand what pouchdb-find is capable of...

@colinskow Yes, I hope that at some point we can modify the PouchDB docs/guides themselves to include pouchdb-find docs. That can happen after pouchdb-find gets pulled in to core.
Cloudant query also keeps changing, and so it'll be good to keep the docs up to date. Honestly I mostly learned Cloudant query by writing this thing. :/

@nolanlawson by specifying in the doc what can be done with the current version you would avoid a lot of filed issues. It will also make it more accessible to people... I guess. I'm still not clear with what can or can't be done.

@natcohen and @colinskow you have good points. It would be great if you could help with the documentation. We using CouchDB master branch as reference as it has a few more fixes than Cloudant. Cloudant will roll all those fixes into prod soon.

Mango doesn't have very good documentation and it takes some trial and error to figure out. Basically the search indexes spit out map reduce keys which are arrays. Your query must be translatable into a start_key and end_key based on that index or it will either fail, or fall back to an inefficient memory query of the entire db.
This article sheds a little bit of light on the underlying system:
https://cloudant.com/blog/mango-json-vs-text-indexes/#.V0Qrd1e4FSU

I tried to explain it a bit more here
http://www.redcometlabs.com/blog/2015/12/1/a-look-under-the-covers-of-pouchdb-find
On Tue, May 24, 2016 at 12:26 PM, Colin Skow<EMAIL_ADDRESS>wrote:

Mango doesn't have very good documentation and it takes some trial and
error to figure out. Basically the search indexes spit out map reduce keys
which are arrays. Your query must be translatable into a start_key and
end_key based on that index or it will either fail, or fall back to an
inefficient memory query of the entire db.
This article sheds a little bit of light on the underlying system:
https://cloudant.com/blog/mango-json-vs-text-indexes/#.V0Qrd1e4FSU
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/nolanlawson/pouchdb-find/issues/168#issuecomment-221228576

BTW the next version of pouchdb-find will provide warnings rather than errors when there's no usable index.


chore: giving up on patching node-fetch

The patch was only useful to avoid some logs locally in our dev env.
We can remove node-fetch completely once we remove Node 16

That should unblock https://github.com/prisma/prisma/actions/runs/6468260487/job/17563361433#step:7:1


CameraPageCS is redundant on this page.

Please delete it.
And also from source code example.

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

 Some users prefer to write their UI in C#, rather than XAML. So many samples include both C# and XAML implementations of the same page. The CS postfix indicates that it's a C# version of the page.


No license document

What license is this code released under?

Modified BSD. The license document is called COPYING.
(cf. "In GNU programs the license is usually in a file called COPYING." in this article)

I think this article indicates that COPYING is used for programs that use the GNU licenses.
The common practice that I have seen for projects using other licenses seems to be to use a LICENSES file instead of COPYING.

You may be right in regards the origin of the name COPYING and the link certainly suggests so, however, besides that it is standard to name this file either LICENSE or COPYING, there is no common "rule" as to what it has to be for any non-GNU software. People are familiar to look for either. Further, a look at the source file headers you use is always the best you can do...


Move codegen into src/ folder

Which issue does this PR close?
Closes #3332.
Rationale for this change
Described in issue.
What changes are included in this PR?
A change to the generated code location.
Are there any user-facing changes?
no

I would love to see code completion working with protobuf generated code. That has been frustrating not being able to do that.
The only concern I have with this change is that cargo clean will no longer remove generated source files. I don't know how much of a problem that will be in practice though.

Example of it working in CLion:

Codecov Report

Merging #3333 (fdfc37d) into master (3d37016) will increase coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3333      +/-   ##
==========================================
+ Coverage   85.74%   85.80%   +0.06%
==========================================
  Files         294      294
  Lines       53770    53764       -6
==========================================
+ Hits        46104    46134      +30
+ Misses       7666     7630      -36

Impacted Files
Coverage Δ

datafusion/core/tests/sql/timestamp.rs
99.65% <ø> (-0.01%)
:arrow_down:

datafusion/proto/src/lib.rs
93.52% <ø> (ø)

datafusion/sql/src/planner.rs
80.46% <0.00%> (-0.16%)
:arrow_down:

datafusion/common/src/scalar.rs
84.58% <0.00%> (-0.07%)
:arrow_down:

datafusion/expr/src/logical_plan/plan.rs
78.22% <0.00%> (ø)

datafusion/physical-expr/src/planner.rs
96.05% <0.00%> (+0.74%)
:arrow_up:

...tafusion/optimizer/src/common_subexpr_eliminate.rs
94.38% <0.00%> (+1.53%)
:arrow_up:

datafusion/expr/src/expr_rewriter.rs
86.66% <0.00%> (+2.91%)
:arrow_up:

datafusion/expr/src/expr.rs
84.92% <0.00%> (+6.95%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@tustvold @alamb What do you two think? This seems (to me) to be the best of all worlds:

generated code is not checked in
generated code is in source folders so IDEs work again

The only downside is that protoc is required, but that was already a requirement for datafusion. If anyone is interested I can (in another PR), have build.rs download and unzip the appropriate protoc for the platform.

I will review this in more detail, likely tomorrow morning.
On Thu, Sep 1, 2022 at 5:11 PM Brent Gardner @.***>
wrote:

@tustvold https://github.com/tustvold @alamb https://github.com/alamb
What do you two think? This seems (to me) to be the best of all worlds:

generated code is not checked in
generated code is in source folders so IDEs work again

The only downside is that protoc is required, but that was already a
requirement for datafusion. If anyone is interested I can (in another
PR), have build.rs download and unzip the appropriate protoc for the
platform.
—
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow-datafusion/pull/3333#issuecomment-1234787188,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADXZMOFBEEMKESLDLOXYOTV4ELW3ANCNFSM6AAAAAAQCTKVW4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Sorry I ran out of time today to give this a careful look. It is on my list...
There was all sorts of good stuff happening in DataFusion I still haven't fully caught up

This PR appears to need a merge or rebase against master

I believe these changes were also included in https://github.com/apache/arrow-datafusion/pull/3311 so closing this PR -- @avantgardnerio  please let me know if that is incorrect and reopen


[dif] Migrate dif_uart.h to the new DIF names

This PR also includes a script for automatically instantiating the DIF template, which should be helpful for users of the template.

Given that I was already refactoring the entire unit test, I cleaned up all the expectations to match standard googletest style. I think this kind of minor cleanup is acceptable in a change that has to touch the entire file anyway. I could have broken it up into commits but that frankly seemed like too much work, in such a way that the tests built in both commits.

@mcy thank you for fixing this up!

I agree with @lenary - template generation code and fixup should go in a separate PR.
Anyone who is refactoring existing DIFs to match the new template. Please only do the necessary changes. For example, in dif_uart_unittests.cc unnecessary changes have been made to a number of places:

  result = dif_uart_configure(nullptr, &dif_uart_config_);
  EXPECT_EQ(result, kDifUartConfigBadArg);

to
EXPECT_EQ(dif_uart_configure(nullptr, config_), kDifUartConfigBadArg);

which should have been
result = dif_uart_configure(nullptr, config_);
EXPECT_EQ(result, kDifUartConfigBadArg);

It makes change harder to review, any refactoring that is not directly related to main goal of this PR, should be done as a separate PR, specifically: unittest, sanity test, maybe I have missed some other places.

I agree that this is a lot of non-mechanical-rename delta here. @mcy can you please split changes this into multiple commits in the future? It will help review.
I think we should land this change (after @mcy splits out the templating part) given that it would be painful to recreate now as multiple commits.

I pulled the script out into its own change. I'll try to keep followups broken into commits; in this case, the changes to the UART test were so intrusive that I had already rewritten most of it by the time I was done doing the main refactor. Hopefully other renames will be easier to break up.

@silvestrst technically you're correct in that I removed some test cases, but that's because init() and configure() used to share code, and now they don't. However, coverage didn't change.


Detect an image by trained model?

Hello,
As the title says, after training, how can I detect an image by trained model?
Does anyone know?

I just realized that we can execute simple_ssd_demo.py.


How to access eureka server with inetutils/preferredNetworks

I need to choose the network, but I didn't find the configuration
Is there a configuration like "inetutils/preferredNetworks"

@yangzhiqing001
Can you explain more on what you mean "I need to choose the network"?
Dave

@TimHess @dtillman
ifconfig -a
eth2      Link encap:Ethernet  HWaddr 00:50:56:B3:7E:9B
inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>
inet6 addr: fe80::250:56ff:feb3:7e9b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:5279275 errors:0 dropped:0 overruns:0 frame:0
TX packets:4629500 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1793212014 (1.6 GiB)  TX bytes:708143077 (675.3 MiB)
lo        Link encap:Local Loopback
inet addr:<IP_ADDRESS>  Mask:<IP_ADDRESS>
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:22702 errors:0 dropped:0 overruns:0 frame:0
TX packets:22702 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1271292 (1.2 MiB)  TX bytes:1271292 (1.2 MiB)
this is my network config.
when i use this config register to the eureka server.
i found that the registered IP address is <IP_ADDRESS>.i think thas is a wrong address

You know what... Re-reading this, I think we already have an alternative to the preferredNetworks feature that should work for you today - you can change the registration method and set the address directly.
Use settings in the second table on this page: https://steeltoe.io/docs/steeltoe-discovery/#1-2-2-eureka-client-settings to register by hostname or IP address and to select the method to use