 ARCore is installed and works with native apps. Canary has camera permission (verified with a getUserMedia demo). webxr and webxr-hit-test flags are enabled.
Visiting the code lab demo link: https://googlecodelabs.github.io/ar-with-webxr/final
On pressing the "Start Augmented Reality" button, I see a toast saying "Installing AR Module..." and then nothing else. Tried re-installing, re-tapping the link, force closing, reinstalling ARCore. No dice.
Is it just me?

Some Chrome folks are looking into this, thanks for reporting! As an FYI, Canary support for WebXR is under development, so there may be some builds that do not work

This issue can be worked around by using Chrome Dev 72.0.3623.0.
I got the same error as @tangobravo on Chrome Canary 72.0.3626.0, Android 9, Pixel 3.

I Too Got The Same Thing . As Its a Unstable ...... May Be Browser Needs Updates

This seems fixed in current Chrome Canary and Chrome Dev (73.0.3640.0).


Add info about which bicepconfig.json file is being used to verbose output

Is your feature request related to a problem? Please describe.
Sometimes when you build or publish a bicep file you want to know which bicepconfig.json file is being used.
Describe the solution you'd like
With the introduction of Get-BicepNetConfig in BicepNet #35, and the corresponding Get-BicepConfig we get the option to see which bicepconfig.json is being used for a specific bicep file, which is great. But I also see a value with adding this information to the verbose output of the following commands. It will simplify the end-user experience.
Build-Bicep
Publish-Bicep
Restore-Bicep

Example:
# No custom bicepconfig.json:

Build-Bicep -Path C:\Templates\Bicep\storage.bicep -Verbose
VERBOSE: Using Bicep version: <IP_ADDRESS>646
VERBOSE: Using bicepconfig.json: Default

# Custom bicepconfig.json file:

Build-Bicep -Path C:\Templates\Bicep\storage.bicep -Verbose
VERBOSE: Using Bicep version: <IP_ADDRESS>646
VERBOSE: Using bicepconfig.json: C:\Templates\Bicep\bicepconfig.json

Love this suggestion, it's a no-brainer imo.


Review & update for Directory Structure

@Rick-Anderson @spboyer @Tratcher @pranavkm @shirhatti @moozzyk @danroth27
I'd like to review and update Directory Structure if that's ok with you.

[ ] Spelling, grammar, structure, and content review
[ ] Review directory structures shown and update as needed
[ ] Review and incorporate relevant information from CLI, IISIntegration, Hosting, and ANCM repo issues

I understand from https://github.com/aspnet/Docs/pull/2179#issuecomment-261017193 that we leave references to publishOptions and project.json in place until sometime next year when MSBuild/csproj becomes first-class.

I understand from https://github.com/aspnet/Docs/pull/2179#issuecomment-261017193 that we leave references to publishOptions and project.json in place until sometime next year when MSBuild/csproj becomes first-class.

correct
Looks good, proceed.


Type error with v9.4.0 and above

[REQUIRED] Step 2: Describe your environment

Operating System version: Mac OSX 11.1
Firebase SDK version: 9.4.0
Firebase Product: (auth, database, storage, etc)
Node.js version: 14.0.0
YARN version: 1.22.10

[REQUIRED] Step 3: Describe the problem
When I upgraded from 8.4.0 to 9.4.0, I get the following type errors, which seem to not be related to my use of the SDK in any way. It works fine on 9.3.0 and below, but everything above 9.4.0 is broken with zero code changes:
node_modules/firebase-admin/lib/firestore/index.d.ts:23:43 - error TS2339: Property 'BulkWriter' does not exist on type 'typeof FirebaseFirestore'.

23     export import BulkWriter = _firestore.BulkWriter;
                                             ~~~~~~~~~~

node_modules/firebase-admin/lib/firestore/index.d.ts:23:43 - error TS2694: Namespace 'FirebaseFirestore' has no exported member 'BulkWriter'.

23     export import BulkWriter = _firestore.BulkWriter;
                                             ~~~~~~~~~~

node_modules/firebase-admin/lib/firestore/index.d.ts:24:50 - error TS2339: Property 'BulkWriterOptions' does not exist on type 'typeof FirebaseFirestore'.

24     export import BulkWriterOptions = _firestore.BulkWriterOptions;
                                                    ~~~~~~~~~~~~~~~~~

node_modules/firebase-admin/lib/firestore/index.d.ts:24:50 - error TS2694: Namespace 'FirebaseFirestore' has no exported member 'BulkWriterOptions'.

24     export import BulkWriterOptions = _firestore.BulkWriterOptions;
                                                    ~~~~~~~~~~~~~~~~~

node_modules/firebase-admin/lib/firestore/index.d.ts:25:48 - error TS2339: Property 'CollectionGroup' does not exist on type 'typeof FirebaseFirestore'.

25     export import CollectionGroup = _firestore.CollectionGroup;
                                                  ~~~~~~~~~~~~~~~

node_modules/firebase-admin/lib/firestore/index.d.ts:25:48 - error TS2694: Namespace 'FirebaseFirestore' has no exported member 'CollectionGroup'.

25     export import CollectionGroup = _firestore.CollectionGroup;
                                                  ~~~~~~~~~~~~~~~

node_modules/firebase-admin/lib/firestore/index.d.ts:40:47 - error TS2339: Property 'QueryPartition' does not exist on type 'typeof FirebaseFirestore'.

40     export import QueryPartition = _firestore.QueryPartition;
                                                 ~~~~~~~~~~~~~~

node_modules/firebase-admin/lib/firestore/index.d.ts:40:47 - error TS2694: Namespace 'FirebaseFirestore' has no exported member 'QueryPartition'.

40     export import QueryPartition = _firestore.QueryPartition;

Steps to reproduce:
Install<EMAIL_ADDRESS>with typescript, then run tsc
Relevant Code:
yarn add<EMAIL_ADDRESS>

You need to upgrade the version of @google-cloud/firestore installed into your node_modules.


added new questions

Ok, I will check.
On Mon, 29 Apr 2024 at 20:40, Jaspreet singh @.***>
wrote:

Hi @Chaitanya985074 https://github.com/Chaitanya985074, all the files
seem to be deleted in this PR. Can you recheck your PR changes?
—
Reply to this email directly, view it on GitHub
https://github.com/Jaspreet-singh-1032/DSA-450-Questions/pull/2#issuecomment-2082999839,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEF2M3K2ANHHX6A4YBMNG33Y7ZPFBAVCNFSM6AAAAABG4YX7Q6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBSHE4TSOBTHE
.
You are receiving this because you were mentioned.Message ID:
@.***>


Is this project dead ?

Has this project been abandoned?

Looks like that :(

Nope, it's not :) I have a lot of other work/projects, but 'vrata' is definitely open to contributions and suggestions. Also, it's actively used in production on daily basis

Sounds good. Is it too much work to fix Travis CI?
PHP Notice:  Undefined index: CODECLIMATE_REPO_TOKEN in /home/travis/build/PoweredLocal/vrata/vendor/codeclimate/php-test-reporter/src/TestReporter/Entity/JsonFile.php on line 40

@head1328 where do you get this error?

@head1328 where do you get this error?

look at the 2 pr's

@head1328 yea I think I found it, its because this env variable is present in my Travis CI setup but not in yours - since you created a fork under your own account. Anyway, added a condition in the script section - it should fix this


Typo fixes on documentation

Before creating a pull request, make sure that you have read the contribution file located at
https://github.com/pnp/powerShell/blob/dev/CONTRIBUTING.md
Type

[ ] Bug Fix
[ ] New Feature
[ ] Sample
[x] Documentation

Related Issues?
Fixes #X, partially fixes #Y, mentioned in #Z, etc.
What is in this Pull Request ?
Typo fix in documentation

This one is last for now. All readme files checked for typos in this repo.
@KoenZomers @gautamdsheth

thanks @gautamdsheth for reviewing, updated files. Agree on Todo's = Todos and Guid's = Guids.

Wonderful job again, thanks @ValerasNarbutas !


Documentation

Hi. I'm new to UMA so I viewed the documentation (UMA_Manual.pdf) but it is so outdated; it relates to version UMA version <IP_ADDRESS>R. Will there be an update any time soon as the UMA_Manual.pdf is deprecated as it stands.

I agree.

Unfortunately being a community project, contributors focus on refining and improving the system and no-one wants to spend time on documentation. I did try to address this with a video tutorial series which you can find here: https://www.youtube.com/watch?v=XN0E1G2ylbs&list=PLkDHFObfS19wRJ9vvaDTwCe-zRPv9jI25

duplicate of #9


Tiny grammatical fix - Obvious Fix

Obvious Fix

@bart-blommaerts Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@bart-blommaerts Thank you for signing the Contributor License Agreement!


[wallet-ext] - update moonplay flag

Description
Describe the changes or additions included in this PR.
Test Plan
How did you test the new or updated feature?

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

Current dependencies on/for this PR:

main

PR #11688   👈

This comment was auto-generated by Graphite.


Table Alias Name in Column Description

I have a FROM clause that has a join. But my use of NPoco looks like this:
.Fetch<CoolestClassEver>("FROM Table1 t1 JOIN Table2 t2...")
Great. If I write the select like so:
SELECT t1.Id T1ID, t2.Id T2ID...
I have no issue. But if I try to avoid writing the SELECT part and do this:
public class CoolestClassEver
{
    [Column("t1.Id")]
    public string T1ID {get;set;}
}

It fails because the SELECT statement is written as [t1.Id] instead of [t1].[Id]
Is there anything I missed in the docs that allows me to provide full table aliasing in the column name to allow this?

can you put it as [Column("[t1].[Id]")]   Or does that end up doing:
[[t1].[id]] in the result?

@schotime I see you closed this, was there a workaround for this or just something not interested in doing? I never found a fix and just wrote all the code out.
*I actually forgot about it and this reminded me

I went on an issue cull and figured anyone who still cared would say, hey, wtf. lol.

Lol. That’s funny. My inbox was flooded was closed issues!
Any thoughts on this one? I’ve never looked at the code that handles this piece.

It depends if . is a valid column name? I don't know that answer, but i'm assuming it could be if its within [ ].
Cause then we could split, otherwise we'd have to do a property that says not to escape eg. AlreadyEscaped

It also feels very dodgy, and once you have the alias in there, its not related to the query at all.

Its main use case is to allow a model to be used when you're using multiple tables with similar column names without having to write the SELECT and possibly the FROM.
If a full join statement was supported in the table name attribute and aliases supported in the column attribute, you could write out a three table join and all columns in a model and just have to just write the WHERE clause (like we do today in a simple one-table query).
I don't think it's a huge issue and I am not sure of demand. You could solved with writing the SQL or a view, so...if you want to close and revisit in the future, I think it's fine. But it would be nice. Not sure what the v5 roadmap looks like.

https://github.com/schotime/NPoco/issues?q=is%3Aissue+milestone%3Av5+is%3Aclosed
Pretty much done, but it mainly concentrated on records, proper async, missing async methods, interface tidy up


Add a command to enable refreshing of stats panel on increment and decrement

Refer to issue #163
Unit test to test the integrity of data included. (i.e. after refresh, the data is not lost and remains the same)
NOTE

We are returning a silent command that does nothing but to refresh the panel.
StatsCard is refreshed on every command. (See here)
Hence, returning a blank state command will refresh the panel.
Logger.info is "disabled" for only this command as it will flood the whole log panel and be hard for us to debug our core commands and being disabled will achieve our aim of just maintaining the refreshed most up to date status of our StatsCard.

Codecov Report

Merging #164 (677071b) into master (94ef106) will decrease coverage by 0.19%.
The diff coverage is 25.00%.

@@             Coverage Diff              @@
##             master     #164      +/-   ##
============================================
- Coverage     69.87%   69.68%   -0.20%
- Complexity      705      707       +2
============================================
  Files           111      112       +1
  Lines          2443     2454      +11
  Branches        293      294       +1
============================================
+ Hits           1707     1710       +3
- Misses          626      633       +7
- Partials        110      111       +1

Impacted Files
Coverage Δ

.../seedu/address/logic/parser/AddressBookParser.java
89.65% <0.00%> (-3.21%)
:arrow_down:

src/main/java/seedu/address/ui/InventoryPanel.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/ui/MainWindow.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/ui/SupplyItemCard.java
0.00% <0.00%> (ø)

...rc/main/java/seedu/address/logic/LogicManager.java
42.50% <50.00%> (-1.09%)
:arrow_down:

...du/address/logic/commands/RefreshStatsCommand.java
100.00% <100.00%> (ø)

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


Document on the order of operations on underlay file systems

I thought the unionfs is trying to operate on underlay file systems in the same order as the use, but after tested it I found it's in reversed order.
It's better to be mentioned in the document.
const {Volume} = require('memfs');
const {ufs} = require('unionfs');

const vol1 = Volume.fromJSON({'/test': '1'});
const vol2 = Volume.fromJSON({'/test': '2'});

ufs
    .use(vol1)
    .use(vol2);

console.log(ufs.readFileSync('/test', 'utf8'));  // 2, NOT 1

Thanks for filing this, @aleung, I had exactly the same question!


多机实验hang住问题

多机实验，没有明显的报错，节点与master失联，以及1.2这个版本的RDMA怎么开启？
2024-06-30 18:08:30

Avoid using tokenizers before the fork if possible
2024-06-30 18:08:30
Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
2024-06-30 18:08:30
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
2024-06-30 18:08:30
To disable this warning, you can either:
2024-06-30 18:08:30
Avoid using tokenizers before the fork if possible
2024-06-30 18:08:30
Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
2024-06-30 18:08:30
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
2024-06-30 18:08:30
To disable this warning, you can either:
2024-06-30 18:08:30
Avoid using tokenizers before the fork if possible
2024-06-30 18:08:30
Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
2024-06-30 18:08:30
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
2024-06-30 18:08:30
To disable this warning, you can either:
2024-06-30 18:08:30
Avoid using tokenizers before the fork if possible
2024-06-30 18:08:30
Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
2024-07-01 12:39:44
2024-07-01 12:39:44
opensorav12-720p-22x8-12-worker-19:92:173 [0] misc/socket.cc:49 NCCL WARN socketProgress: Connection closed by remote peer 10-201-8-92.opensorav12-720p-22x8-12-worker-15.default.svc.cluster.local<53744>

+1  同样会遇到这个问题
一般迭代到一两百次，代码就会hang住

同样问题+1 ，自己配的环境有这个问题
但是luchenyun上的镜像没有这个问题

It is due to deadlock by huggingface tokenizers. Can you follow the error message and set export TOKENIZERS_PARALLELISM=false?

RDMA is normally auto-enabled by NCCL. Can you check which part leads to the hang?

排查到问题可能是由于某次加载的视频文件帧数过多或图片文件过大导致内存爆掉了，dataloader的某个进程被kill掉，多机等待某个节点表现出hang住的问题。

建议代码里改成按只读取视频中被sample的几帧，而不是全部加载。

建议代码里改成按只读取视频中被sample的几帧，而不是全部加载。

谢谢 请问有文档写过数据集的采样逻辑吗 感觉这部分代码不是很好懂 也不太好找到改的地方

I think I have solved this issue by rewrite read_video_cv2

Moreover, I found there are videos more than 5k frames which is too much for memory. Maybe some pre-cutting would also work for this issue.

read_video_cv2

could you please share the codes of read_video_cv2? I meet a similiar problem

read_video_cv2

could you please share the codes of read_video_cv2? I meet a similiar problem

Sorry, I still got deadlock or dataloader issue by my function.
After everything is done, I will share it.
Or hopefully, there would be an official pr by that time.

read_video_cv2

could you please share the codes of read_video_cv2? I meet a similiar problem

Sorry, I still got deadlock or dataloader issue by my function. After everything is done, I will share it. Or hopefully, there would be an official pr by that time.

Thanks, maybe you just need to filter the very long videos for training the model

read_video_cv2

could you please share the codes of read_video_cv2? I meet a similiar problem

Sorry, I still got deadlock or dataloader issue by my function. After everything is done, I will share it. Or hopefully, there would be an official pr by that time.

Thanks, maybe you just need to filter the very long videos for training the model

In fact, I have tried filter out videos longer than 300 frames, it does help to train longer but still get stuck.
My machine has 8*H100 with 1.0T mem. I am worrying this mem is not enough.

read_video_cv2

could you please share the codes of read_video_cv2? I meet a similiar problem

Sorry, I still got deadlock or dataloader issue by my function. After everything is done, I will share it. Or hopefully, there would be an official pr by that time.

Thanks, maybe you just need to filter the very long videos for training the model

In fact, I have tried filter out videos longer than 300 frames, it does help to train longer but still get stuck. My machine has 8*H100 with 1.0T mem. I am worrying this mem is not enough.

maybe you could try these methods:

filter out or down sample the high-resolution video
decrease the video batch size
extract the vae feature(and t5 feature) offline.
Certainly this is just my speculation, and I think it is memory problem

Thanks for your insight but I was wondering these are all work around. Finally I will need trianing on long videos.

+1 同样会遇到这个问题 一般迭代到一两百次，代码就会hang住

Have you solved this? I met the same issue with multi-node training. Thanks!

Thanks for your insight but I was wondering these are all work around. Finally I will need trianing on long videos.

Hello! What's you progress on solving this? I'm having the same issue. Thanks!


Correct link of debugging UI

Using the link provided one receives a response of Cannot GET /[object%20Object].
I've tested this on electron 0.25.3 using the example application and node-inspector version 0.10.0.
The url change is the url provided by node-inspector in the terminal window.

Thanks!


warning  in ./node_modules/node-gyp-build/index.js

WARNING  Compiled with 2 warnings                                      11:32:56
warning  in ./node_modules/node-gyp-build/index.js
13:9-32 Critical dependency: the request of a dependency is an expression
warning  in ./node_modules/node-gyp-build/index.js
20:15-54 Critical dependency: the request of a dependency is an expression

Can you share some more context to when you are getting these warnings?

vue-cli dev project ,  when i  import a module 'ws' , then npm run dev or npm start,
it warning Critical dependency: the request of a dependency is an expression,
if i remove 'ws', it recover and run correct

https://www.npmjs.com/package/ws

I think this is generated by WebPack when it tries to bundle a binary addon. ws does not work in the browser, you should use the native WebSocket object. See the note here https://github.com/websockets/ws#ws-a-nodejs-websocket-library

thank you i'll try it ...

yes i just import ('ws'),,but not use it


fix: round off nearest schedule for lighweight monitors

Round off to the nearest supported schedule instead of picking the lowest scheduled value all the time.
Also, adjust the wording around the Lighweight monitors schedule being adjusted when pushed via project monitors.

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2023-04-05T18:27:41.344+0000

Duration: 14 min 39 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
215

Skipped
2

Total
217

:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.


python311Packages.django-stubs: 4.2.6 -> 4.2.7, python311Packages.types-markdown: init at <IP_ADDRESS>40106, python311Packages.django-stubs-ext: 4.2.5 -> 4.2.7

Changelog: https://github.com/typeddjango/django-stubs/releases/tag/4.2.7
Description of changes
Fix build (https://hydra.nixos.org/build/243933666)

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.


<whois._3_adjust.Domain object at 0xf5488fd0>

Why do I keep getting this either?

please post your code and then we can reopen this.


Post-Adobe future : Brackets alternatives

Forking the discussion in issue #15329 into one focused on sharing with the community the best alternatives to Brackets.
I guess we all have different uses of Brackets, so I suggest you mention what's your main use (html/css, js, php, etc), and openly state the pros & cons.
I think the point should be more to help others pick the alternatives that suits them the best, not to convince people that your favourite alternative is the objective best for everyone ;)

Thanks I prefer to use the html buttin to get started

I first became aware of Adobe Brackets a couple of years ago, when it seemed that every Web developer was using Sublime Text unregistered on their personal computers. Clearly Sublime Text is better than Notepad. But if you don't want to pay the $70 or $80 license, is it really worthwhile to rationalize continuing to use it unregistered? For me it's not. So I tried Brackets and have been using it ever since.
I work with JavaScript once in a while, but mostly I use Brackets to write, update and manage groups of related HTML files. The program has vastly improved my accuracy for links and images, because when Brackets completes a relative URL for me, I don't have to worry about switching a couple of letters or using the wrong case. Also, editing three or four HTML files in tandem is much easier than with three or four Notepad instances.
For Java and Scala, I use a specialized IDE like NetBeans or IntelliJ, but I'm sure there are one or two people who use Brackets for those languages. Brackets has a JavaScript linter, but I haven't found it particularly helpful. Then again, I'm not really up on ES6, so take that with a grain of salt.
The alternatives to Brackets that I'm aware of are:

Notepad++. I haven't tried it myself yet.
Visual Studio Code. I have used it, but it seems more geared for programmers who do a lot with JavaScript.
Lite. I haven't tried it, but I've read it uses very little resources compared to Brackets or Visual Studio Code.
And of course Sublime Text, which, from my experience using it during a reasonably finite trial period, seems to perform very well on Macs as well as lower-end Windows laptops. I like it enough to recommend trying it, I don't like it enough to abuse the open-ended trial period.

back when i was choosing a tool to replace other tools ... i also looked at atom which i suppose is where i'll go next if brackets should break/languish

I guess MicroSoft's VIsual Studio Code conquered them?  I am worried about the IDE market control Microsoft is getting, it could turn against us one day.

Would Nova  (formerly Coda) do the trick?

Would Nova (formerly Coda) do the trick?

For Mac only users, definitely. As someone who uses both Windows and Mac, I think I like the idea that certain programs (Brackets, NetBeans, etc.) are pretty much the same on both platforms.

there's Atom, lite, Notepad++ (Windows Only), TextMate (Mac Only), and Sublime Text. That's all I can think of

Looks promising albeit subscription based

I teach code and I recommend brackets for my students since it needs 0 configuration or extensions to start coding css and js.
VScode is good, fast and reliable and terminal friendly but it takes time to install several extensions like live server, lint, autocomplete.
However it doesn't have css quick edit and live preview highlighting stuff so when it comes to writing css, there isn't any good alternatives.

The first time I started to code, I used brackets as the editor. It was so much fun working with it, especially with features like Live Preview. I switched to VsCode about a year later, but I still use brackets for light and simple html/css/js projects.
Hope it will not die this soon!

I present my alternatives, however I think it would be better to fork brackets or make an alternative based on Eclipse, IntelliJ IDEA or Eclipse Theia. If there is anyone who knows Java well and is able to deal with an Eclipse or IntelliJ IDEA based editor, please open an issue in adobe / brackets and refer it here.
There are some nice editors that can replace Brackets in case nobody is interested:
Eclipse Theia
Eclipse Theia is a VSCode based code editor, however it has some valuable things:
Pro:

Independent of M$ (subjective Pro)
It can run in a browser instead of an electron application as well as a desktop application.
Has its own add-on store and is compatible with VsCode add-ons

Cons:

It was based on an older version of VSCode so some may be dissatisfied with its appearance / operation
It is designed as a browser application
It was designed as a Framework, so according to the Eclipse Foundation, it is not suitable for production use. In my opinion you can use it anyway.

If you want to use Eclipse Theia as a desktop application, use Eclipse Theia Blueprint. He's better in this case.
Geany
Geany is a simple editor designed to create standard applications (C, C ++, Java), but it also works well for web applications.
Pro:

Fast, written in gtk
designed as a code editor and not as an IDE for a specific language
Information about stored variables, functions, classes, etc.
Makefiles support
Build command support

Cons:

It is not possible to change the color to dark (or other) mode entirely. Only the code writing area can be changed.
Focused on "traditional" applications.

Eclipse + Plugins
Eclipse is an IDE for Java, but by using a variety of plugins you can program in Python and other programming languages.
Pro:

Based on Eclipse, it is extensible
You can customize the language list

Cons:

Written in Java + SWT (some custom platforms may not work)
Mainly intended for Java
You have to find the right plugs
##Atom
Atom is a code editor, the first electron application. Created / developed by Microsoft (Github).
Haven't used, can't list Pro and Cons.

KDevelop
KDev is an IDE from KDE. I do not use it, but it looks good.

an alternative based on IntelliJ IDEA

That's called WebStorm, and that costs 100 bucks per year.

It is not possible to change the color to dark (or other) mode entirely. Only the code writing area can be changed.

On linux systems, you can use a dark GTK theme which will change the UI appearence.

##Atom

Looks like there's a slight formatting issue over there.
I'll add another alternaitive for those on a linux system :
GNOME Builder
An IDE designed f,or making GNOME Desktop apps, but seems to have pretty decent HTML/CSS/JS support. Has a modern GTK-based interface and most useful features, but it is not available on Windows or Mac.

That's called WebStorm, and that costs 100 bucks per year.
I know, but community can make a fork of IntelliJ Idea and make FLOSS alternative for WebStorm
On linux systems, you can use a dark GTK theme which will change the UI appearence.
Yes, I know, but Geany itself does not offer dark mode for all elements of UI.
Looks like there's a slight formatting issue over there.
Fixed

I was annoyed enough by this that I made my own (very buggy) code editor: https://scanuproductions.com/sierra/

have fun


Productize Libuv wrapper

[ ] #555
[ ] #538
[ ] #556
[ ] #565

System.Net.Libuv was deleted as part of https://github.com/dotnet/corefxlab/pull/2244.


componentWillUnmount is not called

I just written simple hello world application using proton native.
And I'm wondering why componentWillUnmount is not called, when:

I'm doing Quit
Closing main window

Is it by design?
I've pasted console.log in these methods.
componentDidMount is working fine.
Win10 Node v10.12.0
`--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>

When the main window is closed, then the libui loop is immediately stopped and as a result everything stops. There are callbacks, such as onShouldQuit for menu and onClose for window close. These should do the same things and be more clear than componentWillUnmount.


Pandas labels deprecation

Should I still add a whatsnew? It's very small and very internal

No need for what's new, but we do still want this to work on older versions of pandas.

Great, and found a few examples in docs too

Thanks for catching this @max-sixty.


feat(pie-icons): DSW-1867 icons updates

Describe your changes (can list changeset entries if preferable)
[Added] - Icons
Misc

flag
flag-large

Travel & Transport

dashboard-filled
dashboard-filled-large

Restaurant

grouped-order
grouped-order-large

Pay

instant-bank-filled
instant-bank-filled-large
budget-add
budget-add-large
wallet-add
wallet-add-large
pin-code
pin-code-large

Map

map
map-large

Payment

bimpli
braintree-paypal
up

[Updated] - Icons
Social

twitter-static
twitter-static-large
twitter-circle
twitter-circle-large
twitter-circle-filled
twitter-circle-filled-large

Alert & Info

alert-triangle
alert-triangle-large
alert-triangle-filled
alert-triangle-filled-large

Restaurant

prepare

Online

network-error
network-error-large
notification-off
notification-off-large

Author Checklist (complete before requesting a review)

[x] I have performed a self-review of my code
[x] I have reviewed the PIE Storybook/PIE Docs PR preview
[ ] I have reviewed visual test updates properly before approving

Reviewer checklists (complete before approving)
Reviewer 1

[ ] I have reviewed the PIE Storybook/PIE Docs PR preview
[ ] If there are visual test updates, I have reviewed them

Reviewer 2

[ ] I have reviewed the PIE Storybook/PIE Docs PR preview
[ ] If there are visual test updates, I have reviewed them

/test-aperture

/test-aperture

/test-aperture


Open DWG files and manipulate them

I am trying to figure out if it is possible to open multiple already existing dwg files through pyautocad and manipulate them to create a single dwg file. Basically, I am trying to figure out if I can take various drawings of different length walls and manipulate those walls to create a single room. I am trying to automate this process as each wall is already drawn and it is tedious to pull in each wall every time I go to draw a room. Does pyautocad support something like this? I was unable to find anything in the documentation on opening and manipulating previously created DWG files.

Sure, you need a CAD platform like AutoCAD,
with pyautocad you can use AutoCAD's ActiveX API to insert each sub drawing into a main drawing with
InsertBlock, you can then manipulate each item in the block, or explode all the blocks into modelspace

Would you mind possibly walking me through how I could take four walls and manipulate them in a way where I rotate the walls to create a room in this capacity? If I have each wall drawn and I just need to insert them into the drawing, I would need to make each wall a block right? And then pyautocad lets me rotate each wall and place it in a manner where they line up so it creates the room right? Would a previously existing subdrawing be able to be placed in this manner?

Inserting blocks is a fundamental operation you should probably understand before you begin writing code.
it’s also a good idea to become somewhat familiar with the API pyautocad accesses
https://help.autodesk.com/view/OARX/2023/ENU/?guid=GUID-A809CD71-4655-44E2-B674-1FE200B9FE30
insertBlock imports the drawing and creates the block(s) for you
The insert block has insertion point, scale and rotation arguments
https://help.autodesk.com/view/OARX/2023/ENU/?guid=GUID-17F86FDD-B7FC-4F43-9F16-B4958F73A66D
`pseudo code
from pyautocad import Autocad,APoint
acad = Autocad(create_if_not_exists = True)
#one for each wall
point = APoint(0,0)
wallX = acad.model.InsertBlock(point, “wallpath.dwg”, scaleX, ScaleY, scaleZ, Rotation)
doc = acad.ActiveDocument
Save
doc.SaveAs("C: \room.dwg")
`


Create way to visualize dependency graph

Create a way to visualize dependency graph. I think the best way to implement this is just to modify the Graph data structure to output a graph in some sort of standard graph format that can be ingested by a graph visualization tool, e.g. Graphviz

Hi, I'd like to take on this ticket.

Sweet, that would be great. I think this ticket basically should create some sort of graph encoder for the Graph struct in this package that encodes the graph into some common file graph format that can be easily interpreted by an external tool like GraphViz.
I'lll leave the choice of graph file format up to you.
Feel free to respond to this ticket with any questions you might have!

Thanks for the pointers!
One quick question, when do you think we should generate this graph output? Some options would be:

on every plan and/or apply cmd
create a flag to enable/disable creation of the graph output e.g. --output-graph

As for the graph format, I'll go with the format that GraphViz accepts, as you recommended, which is .dot. pprof also uses the same format.


ttnn.ldexp_bw operation does not work with row major layout

ttnn.ldexp_bw operation does not work when input tensor is in row major layout. Documentation states it should.
Steps to reproduce
You can reproduce this error with sweep test tests/sweep_framework/sweeps/eltwise/binary_backward/ldexp_bw.py. To run:
python3 tests/sweep_framework/runner.py --elastic cloud --module-name eltwise.binary_backward.ldexp_bw

Results can be found on elastic cloud as explained here: https://github.com/tenstorrent/tt-metal/tree/main/tests/sweep_framework

Documentation has been updated


Kotlin type classes

The first draft of the article on Kotlin Type Classes.
Let me know your thoughts :)

Done. my friend.

Done, man.


WARNING: Could not compute the probability for the mate interval priors

Dear,
I am using Circle-map to  predict ecDNA，My data is download from SRA (for example, https://www.ncbi.nlm.nih.gov/sra/?term=SRR9089606). I firstly downsample this data to about 10X by seqtk like this:
      seqtk sample -2 -s606 {input.r1} 103333333 | gzip -c > {output.out1}
      seqtk sample -2 -s606 {input.r2} 103333333 | gzip -c > {output.out2}
But at the finally step, Circle-Map Realign report so many warnings like this:

UserWarning: WARNING: Could not compute the probability for the mate interval priors [['chr4', 63670302, 63670344, 'DR', 'R', '0.999999'], ['chr4', 63670302, 63670344, 'DR', 'R', '0.999999']] due to the following error cannot convert float NaN to integer

You can download and review my pipline written by snakemake from https://send.firefox.com/download/ae3406fc3df56d2a/#MvYyGhVOUUgspILl8UWUAQ , and could you please give me some advises about this problem, thanks for your attention and kindly help.
Best.
Zhang.

Dear Zhang,
Which version of Circle-Map are you using?

Also, If you run it without seqtk does it work?

Dear @iprada,
Thanks for your reply and patient advice. I recheck and sure I am using the lastest version installed from conda version=1.1.4, and this is my envirment:

Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       0_gnu    conda-forge
alsa-lib                  1.1.5             h516909a_1002    conda-forge
bedtools                  2.29.2               hc088bd4_0    bioconda
biopython                 1.76             py37h516909a_0    conda-forge
bwa                       0.7.17               hed695b0_7    bioconda
bz2file                   0.98                       py_0    conda-forge
bzip2                     1.0.8                h516909a_2    conda-forge
ca-certificates           2<IP_ADDRESS>           hecc5488_0    conda-forge
certifi                   2<IP_ADDRESS>       py37hc8dfbb8_0    conda-forge
circle-map                1.1.4                      py_0    bioconda
curl                      7.69.1               h33f0ec9_0    conda-forge
cutadapt                  1.18             py37h14c3975_1    bioconda
edlib                     1.2.3                h2d50403_1    bioconda
fastqc                    0.11.9                        0    bioconda
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
fontconfig                2.13.1            h86ecdb6_1001    conda-forge
freetype                  2.10.1               he06d7ca_0    conda-forge
giflib                    5.2.1                h516909a_2    conda-forge
htslib                    1.9                  ha228f0b_7    bioconda
icu                       64.2                 he1b5a44_1    conda-forge
jpeg                      9c                h14c3975_1001    conda-forge
krb5                      1.17.1               h2fd8d38_0    conda-forge
lcms2                     2.9                  hbd6801e_1    conda-forge
ld_impl_linux-64          2.34                 h53a641e_0    conda-forge
libblas                   3.8.0               14_openblas    conda-forge
libcblas                  3.8.0               14_openblas    conda-forge
libcurl                   7.69.1               hf7181ac_0    conda-forge
libdeflate                1.0                  h14c3975_1    bioconda
libedit                   3.1.20170329      hf8c457e_1001    conda-forge
libffi                    3.2.1             he1b5a44_1007    conda-forge
libgcc-ng                 9.2.0                h24d8f2e_2    conda-forge
libgfortran-ng            7.3.0                hdf63c60_5    conda-forge
libgomp                   9.2.0                h24d8f2e_2    conda-forge
libiconv                  1.15              h516909a_1006    conda-forge
liblapack                 3.8.0               14_openblas    conda-forge
libllvm8                  8.0.1                hc9558a2_0    conda-forge
libopenblas               0.3.7                h5ec1e0e_6    conda-forge
libpng                    1.6.37               hed695b0_1    conda-forge
libssh2                   1.8.2                h22169c7_2    conda-forge
libstdcxx-ng              9.2.0                hdf63c60_2    conda-forge
libtiff                   4.1.0                hc7e4089_6    conda-forge
libuuid                   2.32.1            h14c3975_1000    conda-forge
libwebp-base              1.1.0                h516909a_3    conda-forge
libxcb                    1.13              h14c3975_1002    conda-forge
libxml2                   2.9.10               hee79883_0    conda-forge
llvmlite                  0.31.0           py37h5202443_1    conda-forge
lz4-c                     1.9.2                he1b5a44_0    conda-forge
ncurses                   6.1               hf484d3e_1002    conda-forge
numba                     0.48.0           py37hb3f55d8_0    conda-forge
numpy                     1.18.1           py37h8960a57_1    conda-forge
openjdk                   11.0.1            h600c080_1018    conda-forge
openssl                   1.1.1g               h516909a_0    conda-forge
pandas                    1.0.3            py37h0da4684_1    conda-forge
perl                      5.26.2               h14c3975_7    genomedk
pigz                      2.3.4                hed695b0_1    conda-forge
pip                       20.1               pyh9f0ad1d_0    conda-forge
pthread-stubs             0.4               h14c3975_1001    conda-forge
pybedtools                0.8.1            py37he513fc3_0    bioconda
pysam                     0.15.3           py37hda2845c_1    bioconda
python                    3.7.6           h8356626_5_cpython    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python-edlib              1.3.8.post1      py37hc9558a2_0    bioconda
python_abi                3.7                     1_cp37m    conda-forge
pytz                      2020.1             pyh9f0ad1d_0    conda-forge
readline                  8.0                  hf8c457e_0    conda-forge
samtools                  1.9                 h10a08f8_12    bioconda
scipy                     1.4.1            py37ha3d9a3c_3    conda-forge
seqtk                     1.3                  hed695b0_2    bioconda
setuptools                46.1.3           py37hc8dfbb8_0    conda-forge
six                       1.14.0                     py_1    conda-forge
sqlite                    3.30.1               hcee41ef_0    conda-forge
tk                        8.6.10               hed695b0_0    conda-forge
tqdm                      4.45.0             pyh9f0ad1d_1    conda-forge
trim-galore               0.6.5                         0    bioconda
wheel                     0.34.2                     py_1    conda-forge
xopen                     0.7.3                      py_0    bioconda
xorg-fixesproto           5.0               h14c3975_1002    conda-forge
xorg-inputproto           2.3.2             h14c3975_1002    conda-forge
xorg-kbproto              1.0.7             h14c3975_1002    conda-forge
xorg-libx11               1.6.9                h516909a_0    conda-forge
xorg-libxau               1.0.9                h14c3975_0    conda-forge
xorg-libxdmcp             1.1.3                h516909a_0    conda-forge
xorg-libxext              1.3.4                h516909a_0    conda-forge
xorg-libxfixes            5.0.3             h516909a_1004    conda-forge
xorg-libxi                1.7.10               h516909a_0    conda-forge
xorg-libxrender           0.9.10            h516909a_1002    conda-forge
xorg-libxtst              1.2.3             h516909a_1002    conda-forge
xorg-recordproto          1.14.2            h516909a_1002    conda-forge
xorg-renderproto          0.11.1            h14c3975_1002    conda-forge
xorg-xextproto            7.3.0             h14c3975_1002    conda-forge
xorg-xproto               7.0.31            h14c3975_1007    conda-forge
xz                        5.2.5                h516909a_0    conda-forge
zlib                      1.2.11            h516909a_1006    conda-forge
zstd                      1.4.4                h6597ccf_3    conda-forge

I am working on alignment with raw data without downsample to eliminate possible seqtk errors，As soon as I have the results, I will post them here.

Dear @iprada,
I have run  circle-map without seqtk, but look like not work. I also see many warning like this:

/home/user/miniconda3/envs/trim/lib/python3.7/site-packages/circlemap/utils.py:728: UserWarning: WARNING: Could not compute the probability for the mate interval priors [['chr6', 5256485, 5256516, 'DR', 'L', '0.999999'], ['chr6', 5256485, 5256516, 'DR', 'L', '0.999999']] due to the following error cannot convert float NaN to integer
Skipping intervals

and finally the program will output a empty "my_unknown_circle.bed" file.

Dear Zhang,
Thanks a lot for the report. Could you please tell me which sample produced the issue? Was it sample SRR9089606? or was it all of them?
I will try to reproduce the error to see what went wrong, and fix the issue.
I have to admit that I am very busy at this moment. So the timeline for the fix will take around 2 weeks.
Best,
Iñigo

Dear @iprada ，
Thank you for your quick response, you are right , I am currently using the data saved on the SRA to verify some results，so you can download this data from https://www.ncbi.nlm.nih.gov/sra?LinkName=bioproject_sra_all&from_uid=504942 .
If you want to save time, you can contact me （zhang616123#outlook.com)
, I can provide access to the server so that you can access the data I have downloaded
Best.
Zhang.

Dear @zhang919
I wrote you a mail. Did you receive it?

Dear @iprada,
I'm sorry to ignore your message because outlook puted this your mail to unimportant mail folder along with a lot of advertising mails automatically. Unfortunately, because I haven't seen your email for a long time and we no longer plan to use cloud servers as an alternative means to work, I cleaned the disk to free up space today morning (;´༎ຶД༎ຶ`) . So I just spent some time to reproduce the bug again. Now you can access via the information I have sent to you.

No worries, and no harm done. I just wrote you a mail :)

dear @iprada,
I'm having the same issue with Circle-Map. Is there a way to solve this problem?
Best regards.
Michele

dear @iprada
I have the similar issues, which has stuck me for a long time. It would be great if you can provide a way to solve it.
Best regards,
Phaedo

Hi @iprada @zhang919,
I recently encountered the same issue. Is there a solution for it? Thanks!
Best,
Haiqi


[T-Bot] Help Message animations

[x] Create react-spring animations for help prompt messages
[x] Add react-lottie animation to application for message loading Dots.
[x] Configure TBot 'tickle' animation through TBotManager props.

Found some issue on Windows and created a ticket for it: #252


DO NOT REVIEW, using PR to test. chore: run e2e test with v8 canary build

@nolanmar511 According to https://bugs.chromium.org/p/v8/issues/detail?id=8003#c12, the issue with the crash should have been fixed and promoted to the canary-base branch of node. Can you try re-running the Kokoro tests here to see if they pass now?

There are some issues installing v8 canary builds using nvm recently, filed https://github.com/nodejs/node/issues/22757. Reported on https://github.com/creationix/nvm/issues/1551 too.

Blocked by https://github.com/nodejs/node-v8/issues/77

Now seeing some deprications warnings in some dependencies, like nan.h and v8.h, during node-gyp rebuild (I'm not immediately concerned with those), and some errors in sampling-heap-profiler that I'm working on fixing now.
This was the output from node-gyp rebuild:
make: Entering directory '/home/nolanmar/cloud-profiler-nodejs/build'
  CXX(target) Release/obj.target/sampling_heap_profiler/bindings/sampling-heap-profiler.o
In file included from ../node_modules/nan/nan.h:52:0,
                 from ../bindings/sampling-heap-profiler.cc:19:
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/node.h: In function ‘v8::Local<v8::Value> node::NODE_UNIXTIME_V8(double)’:
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/node.h:290:62: warning: ‘static v8::Local<v8::Value> v8::Date::New(v8::Isolate*, double)’ is deprecated: Use maybe version. [-Wdeprecated-declarations]
   return v8::Date::New(v8::Isolate::GetCurrent(), 1000 * time);
                                                              ^
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
     __attribute__((deprecated(message))) declarator
                                          ^~~~~~~~~~
In file included from /home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-internal.h:13:0,
                 from /home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:25,
                 from /home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10,
                 from ../bindings/sampling-heap-profiler.cc:18:
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:5053:37: note: declared here
                        Local<Value> New(Isolate* isolate, double time));
                                     ^
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8config.h:326:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../bindings/sampling-heap-profiler.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE StartSamplingHeapProfiler(Nan::NAN_METHOD_ARGS_TYPE)’:
../bindings/sampling-heap-profiler.cc:64:67: error: no matching function for call to ‘v8::Integer::Uint32Value()’
     uint64_t sample_interval = info[0].As<Integer>()->Uint32Value();
                                                                   ^
In file included from /home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10:0,
                 from ../bindings/sampling-heap-profiler.cc:18:
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2441:41: note: candidate: v8::Maybe<unsigned int> v8::Value::Uint32Value(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
                                         ^~~~~~~~~~~
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2441:41: note:   candidate expects 1 argument, 0 provided
../bindings/sampling-heap-profiler.cc:65:59: error: no matching function for call to ‘v8::Integer::IntegerValue()’
     int stack_depth = info[1].As<Integer>()->IntegerValue();
                                                           ^
In file included from /home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10:0,
                 from ../bindings/sampling-heap-profiler.cc:18:
/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2439:40: note: candidate: v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(

I adjusted the lines where we were getting errors in sampling-heap-profiler.cc, and am now seeing errors in nan.h, and other dependencies.
In file included from ../node_modules/nan/nan.h:52:0,
                 from ../bindings/sampling-heap-profiler.cc:19:
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/node.h: In function ‘v8::Local<v8::Value> node::NODE_UNIXTIME_V8(double)’:
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/node.h:290:62: warning: ‘static v8::Local<v8::Value> v8::Date::New(v8::Isolate*, double)’ is deprecated: Use maybe version. [-Wdeprecated-declarations]
   return v8::Date::New(v8::Isolate::GetCurrent(), 1000 * time);
                                                              ^
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
     __attribute__((deprecated(message))) declarator
                                          ^~~~~~~~~~
In file included from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-internal.h:13:0,
                 from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:25,
                 from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10,
                 from ../bindings/sampling-heap-profiler.cc:18:
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:5053:37: note: declared here
                        Local<Value> New(Isolate* isolate, double time));
                                     ^
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8config.h:326:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../node_modules/nan/nan_new.h:189:0,
                 from ../node_modules/nan/nan.h:222,
                 from ../bindings/sampling-heap-profiler.cc:19:
../node_modules/nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:
../node_modules/nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
   return v8::StringObject::New(value).As<v8::StringObject>();
                                     ^
In file included from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10:0,
                 from ../bindings/sampling-heap-profiler.cc:18:
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:5135:23: note: candidate: static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)
   static Local<Value> New(Isolate* isolate, Local<String> value);
                       ^~~
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:5135:23: note:   candidate expects 2 arguments, 1 provided
In file included from ../node_modules/nan/nan_new.h:189:0,
                 from ../node_modules/nan/nan.h:222,
                 from ../bindings/sampling-heap-profiler.cc:19:
../node_modules/nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
   return v8::StringObject::New(value).As<v8::StringObject>();
                                                          ^
../node_modules/nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
   return v8::StringObject::New(value).As<v8::StringObject>();
                                                            ^
In file included from ../bindings/sampling-heap-profiler.cc:19:0:
../node_modules/nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
../node_modules/nan/nan.h:1063:53: error: no matching function for call to ‘v8::Value::ToString()’
       v8::Local<v8::String> string = from->ToString();
                                                     ^
In file included from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10:0,
                 from ../bindings/sampling-heap-profiler.cc:18:
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2402:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                            ^~~~~~~~
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2402:44: note:   candidate expects 1 argument, 0 provided
In file included from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-internal.h:13:0,
                 from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:25,
                 from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10,
                 from ../bindings/sampling-heap-profiler.cc:18:
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2418:35: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const
                     Local<String> ToString(Isolate* isolate) const);
                                   ^
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8config.h:348:48: note: in definition of macro ‘V8_DEPRECATE_SOON’
 #define V8_DEPRECATE_SOON(message, declarator) declarator
                                                ^~~~~~~~~~
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2418:35: note:   candidate expects 1 argument, 0 provided
                     Local<String> ToString(Isolate* isolate) const);
                                   ^
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8config.h:348:48: note: in definition of macro ‘V8_DEPRECATE_SOON’
 #define V8_DEPRECATE_SOON(message, declarator) declarator
                                                ^~~~~~~~~~
In file included from ../bindings/sampling-heap-profiler.cc:19:0:
../node_modules/nan/nan.h:1073:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’
         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                          ^
In file included from /usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8-profiler.h:10:0,
                 from ../bindings/sampling-heap-profiler.cc:18:
/usr/local/google/home/nolanmar/.nvm/versions/node/v11.0.0-v8-canary20181008e856131bd5/include/node/v8.h:2612:7: note: candidate: int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const
   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
       ^~~~~~~~~

So, it seems like there have been some pretty major V8 API changes at least somewhat recently -- I'm starting to be a bit concerned about how difficult this change will be do maintain, since we can probably expect some changes in the V8 API, and these changes won't be supported by nan.

@nolanmar511 We discussed that you are going to set up the test against canary Node as a continuous build as opposed to presubmit so that its failures are not blocking the commits, correct?

Modified so V8 canary should only be used in continuous tests.
PTAL

Continuous tests are currently running 2 hours, and we get emailed when they fail.
Once this change is submitted, I'll confirm that a continuous test with v8 canary does run.

PTAL

PTAL


Not showing hover-documentation in RLS mode

Version of VSCode: 1.10.2
Version of the extension: 0.3.10
OS: macOS Sierra 10.12.3
Description:
I installed this extension along with racer, RLS, rustfmt, rustsym following instructions in each repo, using rustup, but in VSCode in RLS mode, I hover my pointer on some type the related docs doesn't show up, while legacy mode acts normal on this.
When I have "RUST_LOG": "rls=debug" in config, the Output of the Rust Language Server output channel shows this:
DEBUG:rls::server: response: "Content-Length: 62\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":4,\"result\":{\"contents\":[],\"range\":null}}"

My User Settings:
"rust.actionOnSave": "check",
"rust.rls": {
    "executable": "rustup",
    "args": [
        "run",
        "nightly",
        "rls"
    ],
    "revealOutputChannelOn": "error",
    "env": {
        "RUST_LOG": "rls=debug"
    }
},
"rust.executeCargoCommandInTerminal": true

Output of the "Rust logging" channel:
DEBUG: Language Client Manager: start

It is fixed.


Poor message when hinting about a missing return statement when used with a switch statement and enum

The following code produces a hint (This function declares a return type of 'int', but does not end with a return statement):
enum TestEnum {
  VAL1,
  VAL2
}

int f(TestEnum val) {
  switch (val) {
    case TestEnum.VAL1:
      return 0;
    case TestEnum.VAL2:
      return 1;
  }
}

but the switch statement covers all enum values; the method always returns a result.
(copied from https://github.com/dart-atom/dartlang/issues/1067)

null is also a valid value for val, in which case the method will fall off the end and return an implicit null, which might not be what the user intended.
NNBD would solve this problem.

Perhaps there should be a lint that explains the issue?

I'd rather just improve the message produced by the hint.

/cc @mehmetf, for @bwilkerson explanation

I have this issue as well. Adding a default means adding unreachable code and hurts my coverage. I don't see why switch statements of enums should have a default.

It wouldn't be unreachable in the example above: just pass null in to the method f and the default case would be executed.
As it was written above, passing in an argument of null would cause the function to fall off the end, resulting in an implicit return of null. This particular hint attempts to find places where you explicitly specify a return type but could implicitly return null, which this code does.

Given that this is only a hint, I think it would be reasonable to simply not consider null case. Nobody in dart writes null checks for every single parameter, it would be far to cumbersome to do. The general assumption is that you are not passed nulls.
This hint actually encourages bad practices as it stands now, because it encourages people to use the default case to silence the lint. This hides the actual useful lint that ensures you are handling all the possible enum values.
What is the recommendation for silencing this? Add a throw at the end of the body? Return null at the end of the body?

Right now I often throw an exception after the switch statement. Although to me this is not the perfect solution since the code is practically unreachable (and therefore will show up as missing lines in coverage reports). I would find it ideal if the analyzer could detect an assertion before the switch where it is asserted that the value is not null, but perhaps that kind of behavior is too specific for the analyzer.

See also dart-lang/linter#1139

I also just bumped into this problem. Here's how I'm dealing with it:
enum AppTab { Items, ItemSets, Reminders }

  int _tabToInt(AppTab tab) {
    switch (tab) {
      case AppTab.Items: return 0;
      case AppTab.ItemSets: return 1;
      case AppTab.Reminders: return 2;
    }
    throw FallThroughError();
  }

Will this problem go away once we have non-nullables?

Yes. If the enum type is non-nullable then we should be able to know that null isn't a possibility and that everything else has been covered.

But in general, the issue can still be reported, even after the Null Safety type system.
enum TestEnum {
  VAL1,
  VAL2
}

int f(TestEnum? val) {
  switch (val) {
    case TestEnum.VAL1:
      return 0;
    case TestEnum.VAL2:
      return 1;
  }
}

This will still report MISSING_RETURN, and may still confuse users.

I think this can be closed with our new null-aware "missing case" switch logic.
enum E {one, two}

void f(E? e) {
  switch(e) {
    case E.one:
    case E.two:
  }
}

reports "missing case clause for 'null'."


lazy creating of dynamic_reconfigure client for each node

This fixes #19.
In current implementation, the rqt_reconfigure node tries to connect all nodes available when it starts.
If I understand ROS ecosystem correctly, each connection uses one socket, so if there are many nodes running in one ROS master such as PR2 robot, it can use up all available sockets.
In this pull request, I fixed codes not to connect to all nodes on the start of the node and only connect when any node is selected instead.
I'm not sure if there is any side effect on this change, but at least it works on my laptop, so any feedback from community is very welcome!

Could you please review and merge if there is no problem so that every PR2 users can use this?
If you have any problem (or question), please let me know.

Thanks for the PR - I was able to verify your change.
I can see how connecting to all of the available dynamic reconfigure nodes could slow things down, and it looks like the only benefit is that unusable nodes would be dropped from the list and become unavailable. Unfortunately, this experience was incomplete as-is, because if a node went down after rqt_reconfigure startup, it wasn't removed from the list. I'm not sure you would want to remove it from the list, either, so it is probably best to take the master at its word, and trust that sending us dead nodes won't become a problem.
Maybe we could consider adding functionality to trigger a "pruning" on-demand or something, if folks are finding this to be a problem. But after your change, at least the experience is consistent.


Add Ruby, Yarn and Node.js to .tool-versions

Since we already support asdf, let's add these tools to .tool-versions as well since they are required to build and run the example app.
There is some duplication in how this is managed; I wonder if eventually it would be best to only have a top-level .tool-versions file and use build tasks to build and run the sample app in examples/?
I also noticed that the versions sometimes do not match; for instance, in Procfile.dev we run a Redis 7 Docker image, but we require Redis 6 here.

@eliias WDYT? The tooling setup is a bit messy. I wonder if we should rely purely on a single top-level .tool-versions, or perhaps even better, provide a build container? That could be a future iteration, for now I'm just looking for things to switch from red to green!

We should also consider dropping .ruby-version; asdf subsumes this and I'm not sure how many different environment managers we need to support and maintain?

I also get a dirty package.json when running the example app, which triggers build:js:
diff --git a/examples/collaborative-text-editor/package.json b/examples/collaborative-text-editor/package.json
index ed2350a..b8571df 100644
--- a/examples/collaborative-text-editor/package.json
+++ b/examples/collaborative-text-editor/package.json
@@ -10,7 +10,7 @@
     "@tiptap/extension-collaboration": "^2.0.0-beta.209",
     "@tiptap/extension-collaboration-cursor": "^2.0.0-beta.209",
     "@tiptap/starter-kit": "^2.0.0-beta.209",
-    "@y-rb/actioncable": "*",
+    "@y-rb/actioncable": "^0.1.5",
     "esbuild": "^0.16.10",
     "lib0": "^0.2.58",
     "prosemirror-commands": "^1.5.0",

is that because I use a different version of yarn?

I'm confused about what caused this change; I am not familiar with how node manages packages, but this suggests that package.json is manually maintained and not generated from something else? https://docs.npmjs.com/cli/v9/configuring-npm/package-json

There are a few things here. The yrb-actioncable repo is a monorepo, so this might help to understand why there isn't a single root config for everything. e.g., packages/* contains the npm modules, gems contains the Ruby gems, examples is for demo applications. For npm modules, this is a bit easier to solve, because you can have local (private) npm module to share configuration (e.g., see custom eslint rules).
The monorepo is organized via https://turbo.build/repo and utilizes Yarn workspaces. This automatically de-duplicates node modules across all workspace. You should be able to simply run yarn in the root folder to set everything up (let me know if the lock file issue is still prevalent after that, but I think it should be gone).
👍 on adding Ruby/Node/Yarn to the respective .tool-versions files. npm comes with Node, but we use yarn, so adding both should be better.

We should also consider dropping .ruby-version; asdf subsumes this and I'm not sure how many different environment managers we need to support and maintain?

.ruby-version is by far the most common dotfile used to control Ruby versions. I think it is not safe to assume that folks use asdf. As asdf falls back to .ruby-version to determine the correct Ruby version, this seems to be the best compromise to support Ruby only development for rvm, rbenv, chruby users.

I also get a dirty package.json when running the example app, which triggers build:js:

This is due to how turbo works, we use the "*" pattern, as described in the turborepo guide, to get the latest local version of the npm package. This is particularly useful when a developer updates any code in @yrb/actioncable. The changes will be immediately reflected in the collaborative-text-editor demo without running yarn or yarn install. In other words, when you run yarn turbo build:watch, the produced JavaScript artifacts will automatically lead to Rails reloading the JavaScript bundle.
diff --git a/examples/collaborative-text-editor/package.json b/examples/collaborative-text-editor/package.json
index ed2350a..b8571df 100644
--- a/examples/collaborative-text-editor/package.json
+++ b/examples/collaborative-text-editor/package.json
@@ -10,7 +10,7 @@
     "@tiptap/extension-collaboration": "^2.0.0-beta.209",
     "@tiptap/extension-collaboration-cursor": "^2.0.0-beta.209",
     "@tiptap/starter-kit": "^2.0.0-beta.209",
-    "@y-rb/actioncable": "*",
+    "@y-rb/actioncable": "^0.1.5",
     "esbuild": "^0.16.10",
     "lib0": "^0.2.58",
     "prosemirror-commands": "^1.5.0",

Ah, two more things:

For commit messages, all the y-rb repos follow the pattern described here https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit. This allows for automatic release management and changelog generatino (determine major, minor, patch version).
I'd pin to the latest Node.js LTS instead of the latest, which is 18.14.0

Thanks for the detailed explanations!

The monorepo is organized via https://turbo.build/repo and utilizes Yarn workspaces.

Ah thank you, I did not know -- sorry for stumbling around this, the last time I even touched JS and related tooling was probably 10 years ago and I'm pretty sure yarn wasn't even a thing then, much less Turborepo :grimacing: I have some catching up to do.
I will add this explanation to the README if you don't mind; I don't think we can assume that a newcomer to this repository will know what Turborepo is and how it affects the build process.

There are a few things here. The yrb-actioncable repo is a monorepo, so this might help to understand why there isn't a single root config for everything.
...
You should be able to simply run yarn in the root folder to set everything up

I'm not sure how to reconcile these two ideas: either we want to be able to build everything from the project root, which means we need a top-level .tool-versions/.ruby-version/.nvmrc etc. Otherwise running yarn will just fail unless it's installed globally, which I don't think we should assume. Or, we provide a top-level build script that dives into subfolders and runs yarn, bundler etc. there.
Also, it looks like Turborepo suggests we should use the turbo build command to build everything laid out this way: https://turbo.build/repo/docs/handbook/building-your-app
I think this requires installing it globally first:
npm install turbo --global

It will require adding a top-level .tool-versions as well since turbo requires npm... Lots of turtles stacked on top of each other :grimacing:
I will see if I can produce something working today and update the PR accordingly.

For commit messages, all the y-rb repos follow the pattern described here https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit. This allows for automatic release management and changelog generation (determine major, minor, patch version). The package used for that is https://github.com/changesets/changesets

My bad -- I'll make sure to review the contribution guidelines :+1:

I'd pin to the latest Node.js LTS instead of the latest, which is 18.14.0

Will do!

I will add this explanation to the README if you don't mind; I don't think we can assume that a newcomer to this repository will know what Turborepo is and how it affects the build process.

Yes please. Thanks 🙌

I'm not sure how to reconcile these two ideas: either we want to be able to build everything from the project root, which means we need a top-level .tool-versions/.ruby-version/.nvmrc etc. Otherwise running yarn will just fail unless it's installed globally, which I don't think we should assume. Or, we provide a top-level build script that dives into subfolders and runs yarn, bundler etc. there.

Yeah, this is tricky. I am not sure what is best here. From the turbo perspective, having Node.js/yarn on the path should be enough, as turbo is a root-level dependency (see package.json in root). That said, the Ruby gem isn't included in the turbo setup, because it is mostly a JavaScript ecosystem tool.
I think we could make it work, but then we would need to make sure that Ruby is available + bundle install runs in all Ruby sub-repos, which isn't a feature turbo offers for Ruby. Thinking ahead, the same is true for automated releases, which is only done for npm packages (see GitHub releases, which are created automatically). The current state kinda assumes that Ruby devs know what to do in a gem and the JavaScript part is heavily automated.

It will require adding a top-level .tool-versions as well since turbo requires npm... Lots of turtles stacked on top of each other 😬

I think this should just work right now, as there is already a .ruby-version and .nvmrc file at the root level which asdf should pick up properly?

My bad -- I'll make sure to review the contribution guidelines 👍

I'll add a section to the README, as I also want to make sure it is easy to understand how to create a changeset and an automated release.

Hm… the more I think about it, the more I agree with your original statement about root level .nvmrc, .ruby-version and .tool-versions files. I also believe we might want to maintain both, .tool-versions and .ruby-version to avoid friction (see https://github.com/asdf-vm/asdf-ruby#ruby-version-file).

@mttkay check https://github.com/y-crdt/yrb-actioncable/pull/27 for reference.

Yeah I was going to say, I don't think asdf falls back to these tool-specific files by default.
With ruby pinned in .tool-versions:
[13:17:33] work/yrb-actioncable::mk-add-ruby-to-tool-versions ✗ asdf which ruby
/home/mk/.asdf/installs/ruby/3.2.0/bin/ruby

Dropping ruby entry:
[13:17:14] work/yrb-actioncable::mk-add-ruby-to-tool-versions ✗ asdf which ruby
/home/mk/.asdf/installs/ruby/3.0.5/bin/ruby

Which is my global default Ruby currently, not what's specified in .ruby-version.
Thanks for the proposal -- I'll test your PR :+1:

I rebased my changed onto your @eliias --thanks for helping out to disentangle this!
The branch name does not make sense anymore because all that's left in this PR are the changes to the README file, but I renamed the PR to reflect this.
Could you have another look?


Is this project abandoned?

Thanks for your great work so far 🌷
@maxim-kht Is this project abandoned?
Any chance of getting #116 merged?
Thanks again

I think this project is abandoned.
I hope someone can develop and maintain an improved version of this project.

We have resumed work on this project


detecting host system time clock offset with NTP server?

Currently, I see there is a plugin that checks to see if ntpd service is actively running via this
/config/plugin/check_ntp_time.sh script.   Are there additional checks that can be considered to detect system clock offset with NTP servers?  Services like ZooKeeper are sensitive to system clock offsets and it can be difficult to debug or troubleshoot distributed applications in virtual environments where computation resources are oversubscribed.
Here are couple of example of this type of check.
https://www.monitoring-plugins.org/doc/man/check_ntp_time.html
https://nagios-plugins.org/doc/man/check_ntp_peer.html

Also: https://github.com/citellusorg/citellus/blob/master/citellusclient/plugins/core/system/clock-1-ntpd.sh


Web Audio Api not working in Safari

This tracker is for issues related to:

dart2js

web_audio_api

Dart SDK Version 2.12-2.14

Browser Safari version < 14.
Web Audio Api in Dart Web, throws error in Dart versions 2.12 -2.14 when using Safari on iOS or MacOS with safari version less that 14. It works with Dart version 2.10 so a regression from old versions. I haven't tested it with 2.11.  I suspect it lines up with the "webkit" prefix for web audio versions lower than 14 of Safari (https://caniuse.com/?search=web audio api)
This use to work. Audio works fine using Audio Context. And I have tested it with 14.5 Safari, and that is fine as well.
Here is a copy of the error from safari, it is minified, but you can see the issue is occurring when it calls "decodeAudioData". This is not when playing, just when loading the audio ready to play.

I suspect it has something to do with this commit (https://dart-review.googlesource.com/c/sdk/+/161628), as it is the only change to the web_audio_dart2js.dart since 2.10 version except for null-saftey changes, and it happens to be in "decodeAudioData".

I have created a quick reproducible example which I have tested with different devices with same results as mentioned above.
Here is a Gist of it: https://gist.github.com/AndrewLugg/3cab8b444cafd14c7ba97c4bb3bde6e5
The order might be slightly odd, it is because it is some stripped down code from my project that I use it in. The reason it is copying the buffer, is because we replay audio, and decoding the buffer destroys the original buffer, and we don't want to re-download the file.
This code works in Dart 2.10 on all devices, but in dart 2.14 only on newer Safari, Chrome. Below version 14 of safari, it will just say "starting.." with an error appearing in console, the "try and catch" doesn't catch it.

After doing some more testing, I have found this is related to null-safety. If I set "sound_null_safety" to false for dart2js, the issue goes away.

I haven't been able to repro this, since I can't seem to find an approved way to downgrade Safari to test this with.
However, from your latest comment, it seems like this is triggering a null-assertion. decodeAudioData is typed to return a non-nullable Future, and it seems with a previous version of Safari, this wasn't true. The toString here is just an optimized null-check, and since the function doesn't seem to return a value, it's triggered. It's also likely why you don't see this behavior if you turn off sound null-safety.
https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/decodeAudioData seems to backup this hypothesis noting that the API returns a Promise since 14.1. The fix here might to just type the API as nullable, although that may be a breaking change.

Another option would be swapping to use the callback, and generate the promise/future in dart. It would make it a non-breaking change, and would provide the promise for all browsers.

Can you clarify what you mean by "swapping to use the callback"? You might be referring to this, but I can imagine one way of handling this is just directly calling the callbacks in the future we construct if they're provided. This would make _decodeAudioData nullable, and have us always returning the completer's future instead, keeping the return type the same.

I was meaning that all recent browsers offer baseAudioContext.decodeAudioData(ArrayBuffer, successCallback, errorCallback);
instead of using the newer Promise<decodedData> baseAudioContext.decodeAudioData(ArrayBuffer); that returns a promise, the sdk/library could create a completer and return  as a future of the completer, with it completing on the callback.
It would mean that the Future, would be not nullable, because it is just the future of the completer, which would make it a non-breaking change, but also it means that developers would get a consistent response without it acting differently on older browsers. Otherwise you may get some developers waiting on the promise and the response, and it gets null back on an old browser, and finding it a hard bug to track down.
It would kind of make Dart polyfilling this browser difference.

Any plans to implement a fix?

Yes, I have a fix that I was playing around with a bit a while ago, but kept coming across issues with timing and inconsistencies between the two possible call syntaxes (might be specific to Chrome). I'll take a look again and see if I can resolve them and report back. Are you currently blocked/unable to work around this with interop?

I am having to have null-safety off on our deployments to make it work with safari which isn't ideal. I haven't swapped to using the interop instead because I was hoping it would be patched.

I have a CL up for this, but the issues within Safari made it a little more complicated. Can I have you try this on an older Safari version and report back, Andrew? It works on my Safari version but it's >= 14.1.

decodeAudioData
Future<AudioBuffer> decodeAudioData(ByteBuffer audioData,
      [DecodeSuccessCallback? successCallback,
      DecodeErrorCallback? errorCallback]) {
    // `decodeAudioData` can exist either in the older callback syntax or the
    // newer `Promise`-based syntax that also accepts callbacks. In the former,
    // we synthesize a `Future` to be consistent.
    // For more details:
    // https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/decodeAudioData
    // https://www.w3.org/TR/webaudio/#dom-baseaudiocontext-decodeaudiodata
    var decodedBuffer;
    var decodeError;

    void success(AudioBuffer decodedData) {
      decodedBuffer = decodedData;
      successCallback?.call(decodedData);
    }

    void error(DomException? error) {
      decodeError = error;
      // Safari has a bug where it may return null for the error callback. In
      // the case where the Safari version still returns a `Promise` and the
      // error is not null after the `Promise` is finished, the error callback
      // is called instead in the `Promise`'s `catch` block. Otherwise, and in
      // the case where a `Promise` is not returned by the API at all, the
      // callback never gets called (for backwards compatibility, it can not
      // accept null). Instead, the `Future` completes with a custom string as
      // the error, indicating that null was given.
      // https://github.com/mdn/webaudio-examples/issues/5
      if (error != null) errorCallback?.call(error);
    }

    var nullErrorString =
        '[AudioContext.decodeAudioData] completed with a null error.';

    var decodeResult = JS("creates:AudioBuffer;", "#.decodeAudioData(#, #, #)",
        this, audioData, allowInterop(success), allowInterop(error));

    if (decodeResult != null) {
      // Promise-based syntax.
      return promiseToFuture<AudioBuffer>(decodeResult).catchError((error) {
        // If the error was null in the callback, but no longer is now that the
        // `Promise` is finished, call the error callback. If it's still null,
        // throw the error string.
        if (decodeError == null) {
          if (error != null) {
            errorCallback?.call(error);
          } else {
            throw nullErrorString;
          }
        }
        throw error;
      });
    }
    // Callback-based syntax. Note that with this syntax, the call to
    // `decodeAudioData` is blocking, so there is nothing to `await`. Using the
    // `Completer` within the callbacks we provide to the function leads to
    // unexpected errors within the browser, so we just `complete` with either
    // the resulting `AudioBuffer` or `DomException` (if not null).
    var completer = Completer<AudioBuffer>();
    if (decodedBuffer != null) {
      completer.complete(decodedBuffer);
    } else {
      completer.completeError(decodeError ?? nullErrorString);
    }
    return completer.future;
  }

I am happy to try and test it, but I am unsure how I can do that being an internal library without compiling the SDK.

Ah, I didn't realize you can't test with recompilation. I toyed around with the code logic to see if the callback-based syntax would give us the expected behavior, and I think it does. I just submitted a CL fixing this API, it should flow into a dev release soon. If it's possible for you to try a dev release, let me know if this resolves the issue. If not, feel free to reopen. Thank you!

I was able to test this on the current dev branch (2.17.0-169.0.dev) and there is a new error that is now showing.

Also this error is not fixed by turning off "sound_null_saftey" so it now breaks all older versions of safari.
Versions tested with:
Safari 15.3  - Works
Safari 14.1  - Works
Safari 13.1  - Breaks
Safari 12.1  - Breaks

That's unfortunate, can you share the compiler output as well? Judging from the error (where the call to decodeAudioData doesn't have enough arguments), I'm assuming this is because a successCallback is not passed? In that case, the code assumes it can be called with only 1 argument (the buffer). In your case, if you want to support older Safari versions, I think you'd need to always pass callbacks to be consistent.
I'll try to see if I can use BrowserStack if there are still issues.

Is this what you are after?

I can zip up the project I am using for testing with compiled code if that would help. Its just a barebones test project.

Yup, and sure, from that I'm assuming the Dart API is being called as decodeAudioData(<buffer>). Can you change the calling code to include non-null successCallback and errorCallbacks?

So swapping to the callbacks does fix the issue with the decodeAudioData, and my original code works now, but if try to play the audio it fails on that instead.

Here is my simple testing script, with the callback changes, you will see it works with null-safety false, but it fails with it set to true.
web_audio_null_safety.zip

Running with 2.17, I'm unfortunately not seeing the issue reproduce. I'm using the run.sh script and loading index.html. I can hear the audio fine with and without the null-safety option enabled in the pubspec on the latest versions of Chrome, Firefox, and Safari. Judging from what you've mentioned, I'm assuming this is because a native null assertion is being triggered somewhere, but I can't tell without more information. Can I have you share the output along with the stack trace (preferably unminified, I believe the flag --no-minify should do that)?

Are you running it on older version of Safari I was testing it on Safari 10.1?
It works fine in the latest version of Safari, Chrome.

Yup, just uploaded a CL for review changing it to be nullable. Will report back once it's landed.

FYI - https://github.com/dart-lang/sdk/commit/a16bd37ed23fd5419785f40b21e97893f86a42dd has landed
In the next day or so, there should be a dev version available with this CL. You can find the dev version by looking at the tags of the above commit once it's been added. Let me know if this resolve the issue, thanks!

I have just tested this with 2.17.0-246.0.dev on Safari version 10.1 with Null-safety on, and confirm that you can now play audio on old versions Safari.
There is a another null-safety issue with setValueAtTime on GainNode, but that is a minor inconvenience. And also only occurs on old safari.
Thank you for fixing it.


[occm] Not all OpenStack providers support AllowedAddressPairs

What this PR does / why we need it:
Without this PR controller will not be able to create routes and end up errors with message like
{"NeutronError": {"type": "HTTPBadRequest", "message": "Unrecognized attribute(s) 'allowed_address_pairs'", "detail": ""}}

This PR introduces new config option to disable altering allowed_address_pairs for VM ports, so that routes could be created successfully.
Which issue this PR fixes(if applicable):
fixes #2491
Special notes for reviewers:
Bootstrap k8s cluster on OpenStack with disabled allowed_address_pairs feature.
Release note:
[openstack-cloud-controller-manager] introduces a config option to skip changing allowed_address_pairs on configuring routes

@sircthulhu basically you'd like to disable routing support for your k8s installation? Is it an option for you just to skip the [Routes] config section?

@kayrus
I'd like to use networking but with allowed_address_pairs I cannot create via controller. If I create routes manually the same way as controller does, networking works fine

@sircthulhu networking will work, but with the overlay network. Adding routes allowes to avoid overlay network and set custom routes per each node's CIDR using a router. If you skip the [Routes] config section, k8s will use overlay network with kube-proxy based routing. Can you give it a try?

/hold

@kayrus
Returned with test results :)

Bootstrapped talos linux cluster on my cloud provider with cilium in kube proxy replacement mode with native routing cidr equal to pod cidr.
Created route manually in openstack via cli
I can communicate from pod-to-pod and pod-to-world finely
On tcpdump I see bare pod ip addresses.

So, I can confirm, this change won't break anything but provide an opportunity to use native routing for providers with disabled support of allowed address pairs

/unhold

/ok-to-test

@sircthulhu can you adjust the release notes in the initial message?

@kayrus
Sure! Is it correct now?

/lgtm

Should we log a warning message, if the port has port_security_enabled=true while allowed_address_pairs extension is disabled?
If I'm not mistaken, Neutron will block traffic from pods, as it is not aware of such ips.

This PR introduces new config option to disable altering allowed_address_pairs for VM ports, so that routes could be created successfully.

I didn't find the new config option after I walked through this PR's code. Could you update the description?

I think the config is here which is a param to be more specific
https://github.com/kubernetes/cloud-provider-openstack/pull/2492/files#diff-cff10f4fa8015498d12b1ee3f0d27d37b4c21f8f405405da80e1b4c10b5629f1R47

@jeffyjf
Sorry, PR description was a bit outdated :)
Updated PR description to better align with current state of code.

/approve

Looks like strange connectivity issue to ubuntu mirror. Should I just rerun tests?

/test openstack-cloud-controller-manager-ovn-e2e-test
um.. ovn is new CI to me :)

/test openstack-cloud-controller-manager-e2e-test

Ubuntu serves experience some turbulence this week...
curl -sSL https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64.img -o ubuntu-jammy.img
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

/test openstack-cloud-controller-manager-e2e-test


Changelog for PRO version

Would be nice to have more visibility of what’s changed in PRO, probably good marketing as well for the FOMO factor ;)

I'll blog about each major release (https://medium.com/@tjholowaychuk) but I agree, needs to have a concise view on the site or something

Will continue merging to History.md for now, until I can add a mailing list / RSS feed


Fixing mwc-icon import on mwc-textfiled readme

This PR proposal is to fix mwc-icon import on mwc-textfiled readme. It was based on this issue reported here: https://github.com/material-components/material-components-web-components/issues/86

Closing as obsolete with new incoming docs


Add seeAlso link to MARC metadata in Manifest

In addition to the jsonld. Useful for Digital Library of the Middle East

Closed by #1402


Carthage compatibility?

Is there a particular reason why this library is not compatible with Carthage? The way Operadics is wired in other libraries (e.g. in Abstract), and the requirement of a manual build even for nested dependencies seems too cumbersome.

This was a hack I did to get it to support Swift Package Manager -- at the time I couldn't come up with a way to make both work without the extra command in Carthage. It would be awesome if you know of a way to get around it. I totally agree with you!

Is there a particular reason why this library is not compatible with Carthage?

No particular reason, just never needed to support it and nobody before you has asked for it.

The requirement of a manual build even for nested dependencies seems too cumbersome.

Sure.  I'd certainly take the cartfile, but it would also mean that if Abstract consumed it that it'd be the only library of ours that uses Carthage as a primary build system.

I see Carthage compatibility as a purely additive feature, designed to make these libraries work out-of-the-box in a iOS development context. I'm using Abstract (thus, Operadics) at large in my daily work, both the library itself and other libraries I wrote that use it, and I can tell that making it fully compatible with Carthage (or CocoaPods, but I don't use it and I don't care about it) is basically needed to avoid alienating potential users. The reason why I asked "is there a particular reason" is that in "modern" modular iOS development I consider Carthage support as a given.

if Abstract consumed it that it'd be the only library of ours that uses Carthage as a primary build system

That's mostly due to the sad state of dependency management in Swift development: the most relevant area for Swift developers is iOS by far, but it's not compatible yet with the Swift package manager. I'd personally favor an approach that makes iOS/macOS development easier, with workarounds for other platforms, than the other way around.
Still, I think we can leave the things as they are but clearly document in the READMEs what has to be done if you want to use Operadics or libraries that depend on it. For example, in one of my libraries I suggest (in the README) to let carthage update fail and then launch this script.
I'm going to prepare a pr for Abstract in which I rewrite the README, and if things stay as they are, I'm going to add the script to build Operadics and add a line in the README for it.


TabView fixed

Before we need to set the MoneySubtitle string else script was crashing.

Thank you!

Np, just have a question, is there a control to enter text in your lib ?

You can use Game.GetUserInput()

Know this way, thank's.


"Shipping to" column of Shipment remain blank if shipment for order is generated first and then invoice is created.

Framework Version: 0.1.4
Test Steps:

Place an order
Generate shipment for this order.
Now generate invoice.

Framework Version: 0.1.4
Fixed