Frame drops with larger worlds – mergeSubmeshes slow

After 15 seconds of running the profiler:

Narrowing it down to a point where FPS dropped a decent amount:

This is running on the latest Macbook Pro on macOS with AMD Radeon Pro 5500M 8 GB on latest stable Chrome
To some extent, this method is probably always going to be a little slow. But I wonder if some of this code could be moved into a web worker? That way, it won't cause frame drops. If the data is Transferable, then there wouldn't be a performance hit from moving it to a worker, and I think it might be since its mostly a lot of numbers and arrays of numbers?
If its helpful, here's the profile: https://www.dropbox.com/s/cchbewrmn7pt1ib/Profile-20200419T173521.json.zip?dl=1. I compressed it into a .zip because my internet is slow at uploading files

Hi, thanks for poking around! The code here is pretty heavy, yeah - broadly it's the code that processes each chunk of voxel IDs into meshes the 3D engine can render, which means it needs to fully sweep through the whole chunk three times (for each axis). I'm not sure why mergeSubmeshes particularly is slow, maybe those big array concatenations could be done faster? May need to look into that.
But for the big picture, it would be ideal to do meshing in a worker but I haven't looked closely at whether it's possible. My guess is, the big complication would be that the mesher runs on each chunk's voxel ID array, and various game logic also needs to access those arrays (to do physics, etc). I guess this could be worked around by copying each chunk's voxel data (into a transferable array) so that the copy can be meshed while the real data stays where it is. My guess is that the copy would be fast compared to the meshing so it would be an overall perf improvement. But the bigger worry is that meshing is already the most complex part of the engine, and making it more complex and asynchronous is reasonably scary ;)
So, I think this may every well be worth doing but it'd be very nontrivial. But I haven't looked at it carefully, and will use this issue to track any progress.
Aside: if the FPS drop is affecting your game one option is to decrease your chunk size - which doesn't reduce the total amount of meshing in your world, but it splits the work into smaller bites. I think chunk size defaults to 24, but I use 32 and am finding the performance to be okay on old-ish hardware.

Hi @Jarred-Sumner, what chrome version and OS did you do your testing on?
I assume the cause of your perf issue was the calls to Array.concat, since the function we're looking at doesn't do anything else, and various articles from last year claim that concat is slow. But in some rough benchmarks, in my browser (chrome 81, OSX) concat is now moderately faster than the alternatives. And in an actual noa game, mergeSubmeshes has no perf impact (it's too fast to measure reliably compared to the rest of the terrain meshing).
So I'm guessing this is related to either your environment or the specifics of your game. Can you test and see if mergeSubmeshes is still slow in, say, a different browser, or with a different game world (like from noa-examples)?
Thanks!

Thanks for investigating.
 A lot of these have alpha, and having AO with that might be making it slower. I'll also see if using jpg for the ones without alpha makes it faster

Hrm. Is mergeSubmeshes measurably slow all the time, or occasionally? At a guess it seems related to how v8 is optimizing the relevant code (e.g. a deopt happening or the optimizer deciding to give up or whatever), which can be pretty hard to pin down.
The only settings I'd expect to be involved would be the variety of voxels and materials getting meshed, AO, and maybe the chunk size. Things happening at render time (like what's onscreen or how the camera is set up) shouldn't matter, since world generation is long done by then. If can check whether, e.g., the issue stops or starts happening in any particular case that would help.
If the problem happens reliably and you have noa cloned locally, you might try jumping in here and changing those [].concat calls into something equivalent? If it's an optimizer issue that might be what v8 isn't liking...

If the problem happens reliably and you have noa cloned locally, you might try jumping in here and changing those [].concat calls into something equivalent? If it's an optimizer issue that might be what v8 isn't liking...

That definitely makes it a lot faster!
- target.positions = target.positions.concat(mdat.positions);
- target.normals = target.normals.concat(mdat.normals);
- target.colors = target.colors.concat(mdat.colors);
- target.uvs = target.uvs.concat(mdat.uvs);

+ let posOffset = target.positions.length;
+ target.positions.length += mdat.positions.length;
+ for (let i = 0; i < mdat.positions.length; i++) {
+   target.positions[posOffset + i] = mdat.positions[i];
+ }

+ let normalsOffet = target.normals.length;
+ target.normals.length += mdat.normals.length;
+ for (let i = 0; i < mdat.normals.length; i++) {
+   target.normals[normalsOffet + i] = mdat.normals[i];
+ }

+ let colorsOffset = target.colors.length;
+ target.colors.length += mdat.colors.length;
+ for (let i = 0; i < mdat.colors.length; i++) {
+   target.colors[colorsOffset + i] = mdat.colors[i];
+ }

+ let uvsOffset = target.uvs.length;
+ target.uvs.length += mdat.uvs.length;
+ for (let i = 0; i < mdat.uvs.length; i++) {
+   target.uvs[uvsOffset + i] = mdat.uvs[i];
+ }

🟢 without concat:

🔴 with concat:

These were taken with the same map position chunks and noa config immediately after page load.

Hmm, weird! On my machine/world/etc. doing the merges with concat is slightly faster than using loops. But it's not really hot code, so I'll just get rid of the concat calls. Should be in #develop later today.

Maybe it’s because I have the chunk add distance set higher than the
default
On Sun, May 3, 2020 at 9:52 PM Andy Hall<EMAIL_ADDRESS>wrote:

Hmm, weird! On my machine/world/etc. doing the merges with concat is
slightly faster than using loops. But it's not really hot code, so I'll
just get rid of the concat calls. Should be in #develop later today.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/andyhall/noa/issues/96#issuecomment-623255874, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFNGS4VTROPXRSA67UW7GTRPZCXJANCNFSM4MMA6ZOA
.

Hi, thanks for the PR on this. However, now that I look at this closely I've realized that the logic we're talking about was broken to begin with - the merge criteria was wrong so the first call to mergeSubmeshes never actually merged anything.
Anyway I've just pushed a fix to #develop (which overlaps your PR so I need to reject that, sorry). Can you check that it fixes your performance issue? I removed the calls to concat and also changed the merge criteria to not be a closure, so I'm guessing either/both of those changes should make sure v8 optimizes things properly.
BTW, happy to receive future PRs but please send them on the #develop branch, and check that your formatter isn't adding semicolons.  Thanks!

Hi, thanks for the PR on this. However, now that I look at this closely I've realized that the logic we're talking about was broken to begin with - the merge criteria was wrong so the first call to mergeSubmeshes never actually merged anything.

Yeah I noticed that there were two calls there and thought it seemed suspicious
No worries at all re: rejecting my PR and I'll check for semicolons in the future
I ran the latest of the develop branch in the profiler and walked around for a few seconds - overall, it feels a little slower I think.

I wonder if this is relevant: https://github.com/BabylonJS/Babylon.js/blob/master/src/Materials/multiMaterial.ts#L62
Its not a built-in Array, they override it to mark submeshes as dirty automatically

Hm. I see what you mean about the multiMaterial array, but I wouldn't think that should affect noa, since those arrays just get created once (per chunk) and then are never touched again.
I'm wondering about those big 200ms gaps though, and the time spent in StringList.remove. StringList is a struct that noa.world uses to manage lists of chunk ID strings, for keeping track of which chunks are loaded, need to be removed, etc, and I wouldn't think it would be a bottleneck unless there are many tens of thousands of chunks in memory (in which case, using larger chunks with a smaller chunkAddDistance would probably perform a lot better).
What kind of output do you get from noa.world.report()? Or alternately, if you change this line to 1, what kind of profile numbers do you see in the console?

 So I think you may see better overall performance with e.g. chunkSize 32 and half the add distance. But it's all down to how your world is set up of course.
For reference, day-to-day I use chunkSize 32 and addDistance of 4-5, and things seem to run okay on old hardware. But as I write this I notice that apparently I switched it to chunk size 64 a few days ago to stress test something, then forgot about it, and I didn't really notice the slowdown. So if you see dramatic FPS drops at smaller sizes there may be other perf issues we can find and fix.

Another comment: if the chunk size 16 is dictated by something server side (e.g. something minecraft related), you might find it performs better to abstract that away and have the clients use larger chunks - e.g. the client requests a 32-sized chunk, and the server merges together multiple 16-sized chunks to send over.
One other thing - you may find it useful to run-length-encode the chunks before sending them over the wire. I use voxel-crunch for this, and have found it plenty fast enough to use synchronously, and the compression is great - when a chunk is mostly air or ground it often compresses down to just a few bytes.

I set chunkSize to 32 with a chunkAddDistance of 6, and moved the server code to get the voxel chunks into a separate node worker thread + websocket server so that it doesn't have the multiplayer ticker stuff. I also added voxel-crunch too - thanks for the suggestion.
The chunks fetch faster now, but the game & fps feels slower.

Hmm, I'm really not sure why your world is profiling so differently from what I've seen. mergeSubmeshes really isn't doing a lot of work, compared to the rest of the meshing process, so my only guess is that v8 is optimizing it really badly in your case for some reason.
Can you see if things look different in, e.g., the testbed world (npm test in the noa-examples repo)? For reference, here's how that world profiles for me, using chunk size 128 in order to magnify performance issues:

The hello world example loads great. Is it possible that larger images (32x32) and ~20 active but ~150 registered textures causes issues? Since this world is mostly green blocks
Here it is with a 128 chunkSize:

I made some additional changes here and I think it feels fast enough now.
https://github.com/andyhall/noa/commit/75584514171dee5532855ddac340c1b1c6899739?w=1#diff-f04dd27998ae6dd6f014341a0e847960R249
most of these changes are from accidentally running prettier...
but the relevant ones are:

Switching Object.keys with for (var key in subMeshes) { when checking whether or not the list of subMeshes is empty

Pre-allocating the array of materials:

var mats = new Array(results.matIDs.length);
        for (let index = 0; index < results.matIDs.length; index++) {
            let id = results.matIDs[index];
            mats[index] = getTerrainMaterial(id, ignoreMaterials);
        }

This change was probably most noticable:

Hm. Okay, I've pushed another update here. It removes the closure inside MeshBuilder.build, and also changes the list of meshes to be an array rather than a hash. Previously the merge logic used delete on that hash, which has been known to trigger bad performance in v8 (or, at least to disable optimizations). Can you try it out?

here's 30 seconds:

I would say it feels slower, but I also made some changes to picking a little bit ago that might make render slower so I'm not really sure

Ok, thanks for checking. It looks like the merge issue is cleared up - the heavy stuff in that profile looks like the stuff that's unavoidable (though it looks like rendering is dominating, so I'm guessing there wasn't any active meshing for most of the time).
I'll go ahead and mark this issue closed. If you find other specific problems do file a new issue, and thanks for seeing this one through...


SUGGESTION: schema lint

Have the schema checked.

Schema follows the convention classes uppercase etc.
Check if everything has a description and keywords and warns if not (maybe even makes suggestions?).
Check if all classes and properties are uniquely named.
Check for general validity (does json contain all fields etc.)

This might be helpful for creating high quality schemas.

Closing this for now due to relatively low relevance and possible other solutions like autogenerating a schema or using a UI.


refactoring IEmailSender and ISmsSender out of AdminController

I'm currently working on this.

@tonysurma, you can close this. I've already completed this work


xtask: replace "lint" command by a simply cargo alias

This strips the run_clippy implementation out of xtask and replaces it by
a simple "cargo lint" alias which runs clippy with the corresponding flags.
Unfortunately  I could not name the alias "clippy" because that would lead to infinite recursion. :sweat_smile:

bors r+
Indeed, there’s no need for a custom command here!
On Sunday, 14 March 2021, Matthias Krüger @.***> wrote:

This strips the run_clippy implementation out of xtask and replaces it by
a simple "cargo lint" alias which runs clippy with the corresponding flags.
Unfortunately I could not name the alias "clippy" because that would lead
to infinite recursion. 😅
You can view, comment on, or merge this pull request online at:
https://github.com/rust-analyzer/rust-analyzer/pull/8012
Commit Summary

xtask: replace "lint" command by a simply cargo alias

File Changes

M .cargo/config
https://github.com/rust-analyzer/rust-analyzer/pull/8012/files#diff-f6009bd0d260464389ace37ab2f89adae993e1fa4a47f779e4c9859937005ced
(1)
M xtask/src/flags.rs
https://github.com/rust-analyzer/rust-analyzer/pull/8012/files#diff-24fc1aac9c36abb39a768ec4e42c31cf85d2f9de972313c3528b193134d32dfb
(2)
M xtask/src/main.rs
https://github.com/rust-analyzer/rust-analyzer/pull/8012/files#diff-9c5e61698d6d8a8ef4a3da7075c31857769134a932ac141d4eb62f68f131aa35
(20)

Patch Links:

https://github.com/rust-analyzer/rust-analyzer/pull/8012.patch
https://github.com/rust-analyzer/rust-analyzer/pull/8012.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rust-analyzer/rust-analyzer/pull/8012, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANB3M24HHQQHQYMBEHURI3TDSU7ZANCNFSM4ZE54RNA
.


Support Chrome with proxy.pac file support (#3), subresource integrity stripping (#4) and meta refresh tag stripping (#5)

dynamically create a proxy.pac file with the right port and domain set

proxy all http requests, regardless of host

update dependency and compilation instructions

correct proxymap.json gitignore

imrpove docs

proxyme-hostname -> source-hostname

[Review 2nd] Add subresource integrity stripping (#4)

add docs on how to run the tests

strip subresource integrity attributes from link and script tags

format comments better

case insensitivity

[Review 1st] Add meta refresh tag stripping (#5)

add meta refresh tag stripping

fixing tabs issue

use render.percy.local

update example to use supplied proxymap

add test to insert an element between meta refresh tags

use /Users/djones in instructions

include gunit in glide file

don't reference renderer.percy.local

remove comment

no need to ignore this file anymore

remove final reference to render.percy.local

It's worth noting I didn't actually need the proxy pac file in the end for Chrome... but we're going to keep it around just incase another browser in the future needs it.


Role Permission Fix

Fixes the problem that permissions are not saved, when the role had no other permissions.

Changes Unknown when pulling c9c98adf5c3ee3696ecb1d95d018c65ecf5ea835 on noxify:master into ** on pingpong-labs:master**.


Create second subpage (.html file)

Must be stored in a subfolder of the root folder

Second subpage will be gallery.html

Completed in main


chore: refactor is_domain

Refactor the definiton of IsDomain to use IsCancelMulZero instead of NoZeroDivisors. This is the correct property for a semiring (to do in a future refactor). We also fix some names in Algebra.Group.Defs.
Corresponding mathlib3 PR #17721.

bors d+
Please merge once the mathlib3 PR is approved.


FR: StaticConstructor and StaticDestructor line and column

this is a minor feature request: line and column info in the ASTNode StaticConstructor  and StaticDestructor.

feature implemented in #55


Tag value warnings

It looks like the Rosemary editor can create a tag that gives warnings in JOSM editor version 11441.
Changeset: 34767398
Node: 462911379
Version 8
created_by 	rosemary v0.4.4
wheelchair:description
There are 2 warnings:
Multiple white spaces
Character code less than 0x20

Forgot to add screen dump:

This error message does not make any sense to me. Is it because of multiple whitespaces in the description text? Or is there a special character in it?

Both, see hex-dump.

Ok, thanks for providing that. Even then I'm not sure if it wasn't job of the API to make sure clients don't send "malicious" data and refuse to serve these API calls.
It's easy to implement a check for double whitespaces. But hey, i can see people with pitchforks and torches coming after me because there is a very good reason to support double whitespaces as tag values.
What is the statement of the OSM API maintainers?

Maybe a warning can do it.
Like JOSM editor do.

Rosemary editor

According to https://github.com/sozialhelden/rosemary Rosemary is API client, not editor. Creating a proper editor requires (among others) handling poor/invalid user input.

It looks like the Rosemary editor can create a tag that gives warnings in JOSM editor version 11441.

It did what user instructed it to do, right? It is not a job of API client to run validation rules like that - it should be implemented in editor itself.


build INSERT INTO table SELECT ...

Is there a way to build such a query in knex? I think this syntax is postgres-specific, but the operation isn't. For example, duplicating one or more rows of a table:
INSERT INTO votes SELECT * FROM votes WHERE id = 99;

@tgriesser how to execute a query similar to:
INSERT INTO table (col1)
SELECT (:col1)
WHERE NOT EXISTS (SELECT 1 FROM table WHERE col1 = :col1)

Knex binds only the second :col1 parameter.

@koistya seems to work with knex.raw
https://runkit.com/mikaelle/58f750ea718530001238757e/branches/master
How are you getting your error?


Change how our release zip file is put together

We need to change two things in how we put the zip file together so we can actually use the zip file as our release in the asset library:

the zip file needs a project folder as the root because the asset library will deploy the file from that folder onwards. So the current addons/godot-openvr would result in the plugin being dumped into res://godot-openvr.
I want to get rid of the godot-openvr-asset repository all together. Right now we read from that repository to build out zip file. We no longer need the files in the root so we can construct the asset completely from this source repository.

The OpenXR plugin already works in this way and is now used to deploy the asset directly to the asset library.
Obviously archiving the godot-openvr-asset repository also means we need to move the wiki to this repository.

Ben, if you have time for this that would be great, else I'll find a moment to make the needed changes

Will look at it tomorrow after work :)

Taken care of in https://github.com/GodotVR/godot_openvr/pull/128


Add ability to resolve snapshot latest date

State of the art date and branch resolver to support snapshots. ~I have locally tests, but they currently require a request to GitHub API, if it will go forward, I'll add cached responses to run tests with them.~ Added tests, with some of them disabled by requiring GitHub API Token, still would need adding cached responses to complete.
Original discussion: https://github.com/swift-actions/setup-swift/issues/673

~I cannot understand how to glue it together with existing installation process. If this snapshot retrieval makes sense, with some hints I can try to complete implementation.~ I have added according to my understanding snapshot resolution as fallback option of simver resolve, but trying to run as action fails to unpack it on macOS. Works for Ubuntu though.

Update.
Sorry for too many pushes that created pending jobs, I didn't know that it actually creates jobs within each push, thought needs approval for this. I've figured out how to setup locally most of the stack.
As for the implementation,

It works for Ubuntu runners.
Will try fix for macOS today-tomorrow.
Need to check if everything is fine for release versions.

Open questions without answer as for now:

Current implementation requires GitHub API token in the repo, Swiftly manages to do this without token as it seems (need to look more how it handles that), and it is not really convenient to ask adding API key.
Version of the Swift for snapshot is hardcoded right now in Package, the one used to check against already installed.

@fwal , have you been able to check this PR?


Font selections broken for TSV files

Changing the fonts for any TSV Resource does not work in translationCore Create - v1.10 build 229-566bd64.
It does work for .md Resources i.e tA and tW, both in Chrome and Firefox.
The last build it worked fine was translationCore Create - v1.9.1 build 215-30d207e. This came out after we released v1.9.1 build 214.
https://deploy-preview-1521--tc-create-app.netlify.app/

The problem is resolved in translationCore Create - v1.11 build 233-c58d06c. Fonts selections are changing the fonts for TSVs as well as .md resources.


Rename Combo

Combo is a typical desktop widget, a combination (hence the name) of an editable text field and a drop-down list. This widget is alien to mobile UIs. In fact, both platforms do not support the editable variant.
I propose to rename this widget into something like Spinner (Android) or Picker (iOS).

Combo has been renamed to "Picker" in commit d2d46b57db06f82bee00cb3aaf8bf9fe21b3c414.


Support for Payment Card Industry Data Security Standard (PCI DSS) standard

Please up-vote if you want this feature. Do not submit a new feature request.

Delivered in v1.3.0


Fix karma tests.

Fixes https://github.com/digitalbazaar/http-digest-header/issues/10.

Codecov Report

Merging #11 (7423ade) into master (581fded) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #11   +/-   ##
=======================================
  Coverage   85.71%   85.71%
=======================================
  Files           2        2
  Lines          35       35
=======================================
  Hits           30       30
  Misses          5        5

Impacted Files
Coverage Δ

lib/httpDigest.js
84.84% <ø> (ø)

Continue to review full report at Codecov.

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

universal-base64 doesn't handle Uint8Array so I switched this to js-base64.
js-base64 is already used through cborld->cborg.
Hopefully tree shaking will just use the minimal parts we need.
This is going to result in some duplication with what base64-universal does.  The url safe flag also exists in js-base64 and will do a regular base64 and replace chars and strip trailing '='.  So less code but maybe less performance?  Would need to test if that matters here.
We already use base64-universal all over elsewhere in our code so I figured we'd just keep that as is.  But that may not be the case for other users where just a dep on one lib might be better.
Can revisit these micro optimizations if needed.


Drop aarch64 / ppc64le as they were never successful

Fixes #17

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

Jinja2 variable references are suggested to take a {{<one space><variable name><one space>}} form. See lines [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 42].
License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Cut few segments from a video and save each one as a separate file

I tried to change target file for MediaComposer but it caused an error.
Using multiple MediaComposer's led to deadlock.

Did you get any solution, I have the problem with the processing sometimes it stucks while cutting and merging the clip on the latest android version devices


code example of the keyword flush is invaid

The code example of the keyword flush is invaid and will occurs a compiler error.
It should be flush YourTable; instead YourTable ytBuffer; flush ytBuffer;

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

ID: f5857659-f5cd-b687-8f59-d619bfa0595b
Version Independent ID: 7ce52bf5-267f-d135-908e-e3ea1cdbcb91
Content: X++ syntax - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/dev-ref/xpp-syntax.md
Service: dynamics-365-cross-app
GitHub Login: @josaw1
Microsoft Alias: josaw

Bug 777597 has been logged to address this issue.

Hi @twheeloc, I removed DhurataJ' from the assignees list. I think you were looking for someone else perhaps. Thank you :)

This fix will be published today. Thank you.


Other Api method

Hello,
I saw snippet function in the wiki
Have you plan for other api function like circ functions in native api in the future?
And have you got a roadmap? if yes can you share it? :-)

Hi,
I don't have plans to add circ function to the api because I've never needed it and no one has requested it before. If you really need it I can add 😃
I'm going to add TIC Roadmap to the Wiki in near future.

Yes I want :-)

you might add my 'ell' (ellipse) function too

If you think to add circ function, just add Andres algo, it's the best !

added new api
circ x y radius color
circb x y radius color
So, I used Bresenham algorithm

The example based on rectb demo written by @Effer :)
closing on .18

@Raidez I used bresenham because it draws the circle with 1px width border instead andres which uses 2px width on some parts and it seemed strange to me
There is time before release, so let discuss if you don't like bresenham

I like bresenham it's more consistent. Andres almost looks AA'd.

@nesbox that demo is having a great success :)

@Effer yes, your demo is an easy way to make WOW effect :)

Have you copy circ function I made ?
If yes, I didn't found how to fill circle on bresenham so I use andres to fill the circle.
And my perfectionism, didn't like use/cheat :)

@Raidez yes, I ported your bresenham algorithm to C lang
Also I used bresenham to detect left and right sides of a circle and then fill it with horizontal lines

Probably I'm too late, but does make sense to have circ draw also ellipses? So have not only one radius but two. I'll will have the same sign as rect/rectb.

@Effer don't know, no one requested ellipses, let's wait and I'll add if it really needed

Ok, just fund a small bug anyway. If you draw a circle with x<0
You can see there's a wrong line in the border.

oops, I know where is an error :) pls create an issue.
Thanks


feat: add TensorShape

Closes #857
Summary of Changes

added class TensorShape to store the shape of tensors
with method get_size() and attribute dimensionality
made ModelImageSize a subclass of TensorShape
adjusted various Layers to use TensorShape for output- and input-size

why are tests failing that we didn't change or write :(


Style tokens as guide rather than 1:1 transfer

Thanks again for the great work on Mellotron.
The usual implementations of Global Style Tokens allow for transfer of style without locking the target inference to a 1:1 rhythm transfer.
For example, using a 1min reference audio with Mellotron appears to be generating a 1min output regardless of the text input, whereas other GST implementations transfer the style without locking in the rhythm / duration of the reference audio 1:1, such as inference of a 5sec sentence on a 1min reference, while still keeping the 'style' of the reference audio.
Is there any change to the model to enable such a scenario?

In reference to the GST part of mellotron, there is no 1:1 lock. You can use GST the same way as in other repos.
If you want to do inference with the mellotron model however, we additionally extract two things from a reference audio: the rhythm and the pitch which creates the 1:1 correspondence. It's the rhythm that creates the 1:1 correspondence actually. But your automatically-extracted pitch might not make sense if you do not additionally condition on the rhythm.
If you don't want rhythm (which you can disable by using model.inferece()) and pitch conditioning (which you can disable by sending zeros as the pitch), you get essentially tacotron 2 with GST and speaker ids.

Thank you @blisc for the quick reply - much appreciated!

thanks @blisc

@blisc .. I have a question on similar lines.. I have trained the  model using this repo on LJ speech. During inference i use a out of dataset file as style file. The synthesized speaker quality has changed very much. The quality is decent but it doesn't sound like the original speaker of LJ speech. How to fix that? Please can you help. Thanks.


how to get the resulting file name ?

Hey, I'm trying to build a git tutorial as a notebook; in the process I'd like to automatically show the inner objects as svg, and git-graph looks like an promising alternative
My workflow would then be to run something like git graph -nc -f svg -c but immediately after that I'd need to retrieve the name of the produced svg so I can embed it in my notebook
I could not see how to do that at first sight, what am I missing ?
thanks in any case !

Hi, I am really sorry but my GitHub was not correctly set and was not notified of your issue.
In case it is still open, you could run:
ls -A1t .gitGraph/ | grep .svg | head -1 immediately after generating the svg with git graph (this will output the name of the latest svg file in the .gitGraph folder where all graph representations are generated).
Would this solve your issue ?
Cheers.

Hi. Good news: git-graph version 1.2 has just been released. It returns the produced image and its folder path.


FoundryVTT v10 compatability warnings

Environment Details

Foundry Core Version: v10
System & Version: n/a
OS & Browser: Chrome and Firefox
Hosting: Oracle Cloud

Describe the bug
When loading Foundry the user sees a warning that there are compatibility issues. Console contains the following:
[gm-screen] The module "gm-screen" is using the old flat core compatibility fields which are deprecated in favor of the new "compatibility" object setup.js:145:17
[gm-screen] The module "gm-screen" is using "name" which is deprecated in favor of "id"
To Reproduce
Steps to reproduce the behavior:

Log in to foundryvtt v10
Warning displays
Press f12 to view the console display
See warnings

Expected behavior
gmScreen updates the appropriate fields
Screenshots

See #130


write to file

Any interest in adding this to the core api?
const write = (file, contents) => {
  new shell.ShellString(contents).to(file)
}

@ccorcos is there a unix write command with similar semantics? If there's a standard command, I would have no issues with adding that. Otherwise, feel free to implement this as a plugin if you think others can benefit

ah I see. only want to support unix commands here?

Yeah, that's the idea. We have some non-unix commands, but we're trying to phase them out with unix-y alternatives.

I see. Although idk if we should look to unix as the gold standard. There
are some many weird quirks like using cat to read a file, lol
On Wed, Nov 23, 2016 at 22:51 Nate Fischer<EMAIL_ADDRESS>wrote:

Yeah, that's the idea. We have some non-unix commands, but we're trying to
phase them out with unix-y alternatives.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/shelljs/shelljs/issues/568#issuecomment-262702999,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABth3-0GnR7a5IW9YUNBDWAGYECrDsqrks5rBTP3gaJpZM4K6Nnb
.

I agree that Unix is very quirky. I can personally never remember the order of arguments sometimes, or find myself forgetting the occasional -r. Nonetheless, Unix is very well standardized, and many people have exposure to it. In the past, we've had issues where users expect Unix behavior and are surprised at the differences


super huge and large amount of negative modes for an interface

Hi Phonopy,
I am using VASP and Phonopy to calculate an interface system, but I found the number of negative phonon modes with more than 300. That doesn't make sense at all. The system is terrylene+hBN monolayer. I checked isolated molecule and h-BN itself. There is no negative mode. I attached the phonon DOS for monolayer of h_BN here, which makes perfectly sense.
total_dos_hBN.pdf
For my interface case,  here is my INCAR: !ISTART = 1     ! start from scratch  For HSE, we should copy wavecar, chgcar into the folder, and change this to 1
!ICHARG = 2     ! superposition of atomic charge densities
! electronic optimization
ENCUT  = 520   ! energy cutoff
ISMEAR = 0     ! Gaussian smearing
SIGMA = 0.02   ! broadening
NELM = 500     ! maximum number of electronic self-consistency steps
LORBIT = 11    ! write the KS level spin up spin down
EDIFF  = 1E-7  ! energy criterion
EDIFFG = -1E-3 ! force criterion converge both positive and negtive force (-0.02)
PREC = Accurate
ADDGRID = .TRUE.
NEDOS = 3000
LWAVE = False   !save wave function
LCHARGE = False !save the optimized charge density (CHGCAR CHG)
!ISPIN = 2      ! open spin:2   no spin:1
!MAGMOM = 1000.0 1000.0 300.0 160.1
! ionic relaxation
ISIF = 2       ! relax lattice parameter, atomic position, 2 only relax atomic position
IBRION = 2     ! the relaxation algorithm
NSW = 10000      ! 100 ionic steps
POTIM = 0.005
ISYM = 0
IVDW = 11      ! DFT-D3 grimme
GGA = PE       ! pbe level
dipole correction
LDIPOL = T
IDIPOL = 3
Dipol = 0.51 0.47 0.52
NCORE = 8
I checked the supercell size of 10x10x1 that contains 246 atoms and lattice constant of 25, 25, and 20, and the supercell size of 12x12x1 that contains 334 atoms and lattice constant of 30, 30, and 20. It doesn't help. I also tried different displaced amplitude reduced from 0.01 to 0.001, which doesn't change the story. My EDIFF and EDIFFG should be strict enough. I attached my phonon PDOS here.
partial_dos_1010.pdf
As you can see, the frequencies start from -51.1181025974 THZ, which is huge. And there are more than 300 negative frequencies. Do you have some suggestions? Is it something wrong?   Thank you so much in advance.

Github issue is mainly used for discussing phonopy software development. For that of usage, please send your question to the phonopy mailing list.

Dear @atztogo , many thanks for your reply. I also wanted to bring to your attention that a significant number of negative frequencies that I have observed might be related to Phonopy. When I performed calculations on an exact system using the finite difference method in VASP, the phonon frequencies appeared reasonable. However, when I attempted calculations in phonopy, I encountered a multitude of negative frequencies exhibiting more than 300. All the systems with 174 atoms (1044 displaced structures), 246 atoms (1476 displaced structures), and 334 atoms (2004 displaced structures) are facing the same problem.
However, a smaller system consisting of 118 atoms with 708 displaced structures. Surprisingly, in this case, negative phonon frequencies were not observed.
Attached you will find the input and output files for both the smaller system with 118 atoms (reasonable case) and the larger system with 246 atoms (non-physical case). Upon examination, it appears that the issue may be related to the FORCE_SETS generated by phonopy.
I would greatly appreciate it if you could review the provided files and offer any suggestions for resolving this issue. Thank you for your assistance in advance.
For_phonopy.zip

Please send your question to the phonopy mailing list.


(windows) Fixes #362

Platforms affected
Windows
Motivation and Context
Fix #362
Checklist

[+] I've run the tests to see all new and existing tests pass
[-] I added automated test coverage as appropriate for this change
[+] Commit is prefixed with (platform) if this change only applies to one platform (e.g. (android))
[+] If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct keyword to close issues using keywords)
[-] I've updated the documentation if necessary

I'm sorry that this didn't get the attention at the time, but now that cordova-windows is deprecated making this PR and the issue obsolete. Community work is being done to bring this plugin to the electron platform as a replacement.


O-CNN repository for local installation

Greetings, Andrej! Thanks for impressive and well documented work!
In README.md you mention that for local installation should be installed your O-CNN fork, but in drl_grasping.repos specified official repo URL
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/drl_grasping.repos#L40
What repo i should use?
Thanks!

Hello, the fork specified in README.md is the correct one.
You can also follow docker/Dockerfile that has all instructions, in case there are some problems.
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/docker/Dockerfile#L96-L98
Please let me know if you encounter any other issues :smile:.

... but in drl_grasping.repos specified official repo URL
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/drl_grasping.repos#L40

This line is actually commented out (#) because it is not a project compatible with colcon.
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/drl_grasping.repos#L33
But thanks for letting me know! I will update it to reduce the confusion.

Btw. If you only want to test this repo, I still recommend using the pre-built Docker image (more info in README.md). Local installation is needed only if you are planning to do some modifications that are currently not exposed as parameters.
docker pull andrejorsula/drl_grasping:latest

Yep, i already installed project via docker image and it's working fine. So test is OK!)
After that i decided to understand how it works more deeply, install locally and (maybe) change some parameters and algorithms. Is it possible for docker variant ?

... change some parameters and algorithms. Is it possible for docker variant ?

Yes, it is possible to change parameters also inside docker container - however, it is not ideal. I generally used this approach for few very small changes (e.g. use of different algorithms, different robot, and combinations of hyperparameters). The workflow can look something like this:
## Spin up docker container with `bash` cmd
<drl_grasping dir>/docker/run.bash andrejorsula/drl_grasping:latest /bin/bash

## Edit files (any file)
## Inside docker, this repository is awkwardly in `./repos/drl_grasping/src/drl_grasping` relative to WORKDIR
## You can install editor of your choice if you do large changes (`nano` is used here)
# Selection of env, algo, robot, ... (or you can use custom `ros2 run drl_grasping train.py $YOUR_TRAIN_ARGS`)
nano ./repos/drl_grasping/src/drl_grasping/examples/ex_train.bash
# Hyperparams for algo, feature extraction, randomiser, ...
nano ./repos/drl_grasping/src/drl_grasping/hyperparams/tqc.yml
# Environment config
nano ./repos/drl_grasping/src/drl_grasping/drl_grasping/envs/tasks/__init__.py
# Further environment config (ugly right now)
nano ./repos/drl_grasping/src/drl_grasping/drl_grasping/envs/tasks/grasp/grasp_octree.py

## Run commands/examples
ros2 run drl_grasping ex_train.bash
ros2 run drl_grasping <executable>

So, you can do it all inside docker. This is just an example - you could instead modify the Dockerfile to include some persistent volumes or do something completely different. But I generally used local setup when trying out more complicated edits.

Where exposed parameters listed ?

I listed the files above, but I will give some more detailed description here.
In ex_train.bash, you can set the desired environment (including robot) and algorithm combination. It also allows you to continue training of previous agents, store replay buffer and others. It is pretty much just an interface for train.py that also spins up MoveIt2 action server. When run, it should show you what is the corresponding ros2 run drl_grasping train.py $YOUR_TRAIN_ARGS script.
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/examples/ex_train.bash#L1-L49
The ex_enjoy.bash is almost the same. You just select whatever trained agent you want to evaluate. Datasets stay the same, so you need to change them manually if you want different for training/testing.
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/examples/ex_enjoy.bash#L1-L41
All hyperparams/*.yml contain hyperparameters for algorithms (e.g. SAC), see stable-baselines3 docs for more info. It also contains hyperparameters for feature extractor and some config for randomizer (for domain randomization).
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/hyperparams/sac.yml#L187-L233
In drl_grasping/envs/tasks/__init__.py, you can find config of the registered environments. Some additional environment config for each environment is also directly in their corresponding file, e.g. drl_grasping/envs/tasks/grasp/grasp_octree.py.
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/drl_grasping/envs/tasks/__init__.py#L145-L187
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/drl_grasping/envs/tasks/grasp/grasp_octree.py#L15-L53
There are many many parameters, some of which were experimental and do not provide any/much improvement, e.g. stages in curriculum are disabled by default. As I wrote somewhere else, I might clean it up later if I have time for it. For now, feel free to ask if there are certain parameters that are unclear.
If you want to create your own tasks inside Ignition Gazebo, I recommend you taking look at Gym-Ignition first. Then Reach task and #87 list all that needs to be added for each tasks to make them work with directly with this repo.

@AndrejOrsula I also encountered an issue. I installed everything mostly by following DockerFile instructions, however pyoctree module wasn't found:  File "/home/janisa/drl_grasping_rep/drl_grasping/install/lib/python3.8/site-packages/drl_grasping/utils/conversions.py", line 7, in <module>     import pyoctree ModuleNotFoundError: No module named 'pyoctree'
Any Ideas?

@janisa9 It seems that pyoctree is not installed together with ocnn for some reason. Can you try the following?
export PATH=<path_to>/O-CNN/octree/build:${PATH}
export PYTHONPATH=<path_to>/O-CNN/octree/build/python:${PYTHONPATH}

Please let me know if that helps.

I totally forgot to mention it in README, but I added such workaround inside the entrypoint. I will try to look into a proper fix.
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/docker/entrypoint.bash#L10-L12

@AndrejOrsula Unfortunately this didn't work.

Hmm. Does import ocnn work for you?
python3
>>> import ocnn

And just to be sure, these are the instructions that you followed. Right? Everything went fine without any error?
https://github.com/AndrejOrsula/drl_grasping/blob/3d9fa038dc2855b9ca97d9d1570b06abe17a0b89/docker/Dockerfile#L96-L103

Thank you for support. Yes I was following the instructions, I didn't have permissions for some folders and therefore installation was incomplete and thus the way I tried to solve the permission issue wasn't the right way :smile:
`unning install
error: can't create or remove files in install directory
The following error occurred while trying to add or remove files in the
installation directory:
[Errno 13] Permission denied: '/usr/local/lib/python3.8/dist-packages/test-easy-install-120112.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
/usr/local/lib/python3.8/dist-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.
`
Installing convert-caffe2-to-onnx script to /usr/local/bin error: [Errno 13] Permission denied: '/usr/local/bin/convert-caffe2-to-onnx'
Now by giving permissions to these folders it and adding  thepaths, it can find the pyoctree. :partying_face:

@janisa9 Yes, the instructions in Dockerfile assume that you have sudo permissions.
If not, sudo apt-get install ..., sudo cmake install/cmake --build . --target install, sudo python3 setup.py install... and similar are required if you want to install on system-level. Although for some of them, user installation or target install directory can also be specified.

@AndrejOrsula Yes!
There was one more issue, the stable-baselines3 has new release [1.1.0 ((https://github.com/DLR-RM/stable-baselines3/commit/b52c6fc18fa4b48a259c839e8159b6c9f826e8ad) which got installed by following instructions, but I suppose you used different version as I got following error:
drl_grasping/install/lib/python3.8/site-packages/drl_grasping/envs/tasks/grasp/curriculum.py", line 482, in _log_curriculum     logger.record("curriculum/current_stage", AttributeError: module 'stable_baselines3.common.logger' has no attribute 'record'
I installed 1.1.0a7 version which seems to work.

Closing this issue due to inactivity (two weeks).
Feel free to re-open if anyone encounters this issue again and suggestions above do not provide a solution.


Create a Contact Page 📧 [FrontEnd]

Contact page (Make it Interactive ⚡ and minimal 🐼)
Heading -
Contact us

Sub Heading -
Any question or remarks? Just write us a message.

Contact page must
- Be Responsive
- Use Full height
- Have a min-height
- Have Little bit Animation

Forms inputs [Required]
- Name
- Email
- Subject
- Message

Socials
- GitHub
- Discord
- LinkedIn

Pls assign this to me!

@5tupidbrain Can I start working on this.?
Please assign me

@Shivangi-ch
Yess.!!


[DatePicker] support on Safari, IE, Edge

See last comment on issue #200
@oliviertassinari -- can you also cc some other people who have worked on DatePicker recently?

This will be resolved by the following PR. https://github.com/callemall/material-ui/pull/3739
Closing this issue for now.


Configurable storageClass name

It would be great if from the UI you could configure the storageClass name used for the marshall.
At present it will use the cluster default, e.g. "standard" which causes issues if you have set up a new storageClass say for NFS in your cluster.

Hi @cliveseldon this is something that is definitely feasible. We are planning to revamp the "Volumes" UI in the Kale sidebar and, when that will happen, we will keep in mind this aspect as well. Thanks for feedback! Of course, contributions are always welcome :)


[FR] Make warmup_steps configurable

I would like to make warmup_steps configurable and not have it by default set to 0.1 times steps.
I can provide a PR if wanted.
My experience from hyperparameter optimization with optuna and sentence embeddings is that a value between 0.2 and 0.3 is best.

PR is merged. Closing this.


v0.0.2

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@0064a88). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #1   +/-   ##
=======================================
  Coverage        ?   88.31%
=======================================
  Files           ?        8
  Lines           ?      154
  Branches        ?        0
=======================================
  Hits            ?      136
  Misses          ?       18
  Partials        ?        0

Continue to review full report at Codecov.

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


GraphQL Voyager

GraphQL Voyager #23

Since graphql voyager integration is pretty unique to our template the only thing we’re missing to merge this thing is some docs on how to configure the voyager specific things, please add those to readme and we’re good to merge


load pretrained model fix

Minor fix with loading the pre-trained model. The dist_util module does not have a load_state_dict function.

Thanks !


tgt_emb_as_output_layer config parameter

❓ Questions and Help
I do not understand tgt_emb_as_output_layer parameter.
    tgt_emb_as_output_layer: bool, default=False
        When this option is set ``True``, the output projection layer(It is used to project RNN encoded # noqa
        representation to target sequence)'s weight will be shared with the target vocabulary's embedding. # noqa

For some example, I see it is set to TRUE while for some it is False.
Can anyone please explain this parameter?

This is determined according to the specific experimental results.

@AlanSwift not quite sure what you meant? Is it a hyper-parameter then?

Yes. It is a hyper-parameter.

@AlanSwift This is determined according to the specific experimental results Can you please explain?

@AlanSwift when should I set it and why?

@AlanSwift should I set it for a classification task?

You have to tune this parameter. There is no clear conclusion.


Use temporary PVs instead of local node disks for user notebook servers.

Use the storage class with a DELETE retain policy for user servers with some default size. We could make the size be an option at notebook launch.

duplicate of #106


A lethal combo.

Apologies for the fancy bug title but I couldn't think of any more descriptive one.
I've managed to isolate a series of issues in a single snippet that fails with babili 0.0.11
const that = (...args) => {
  let i = args.length;
  if (!i) return;
  else {
    const info = {args};
    while (false);
    return info;
  }
};

Despite being useless, it's valid JS syntax that's part of the real-world logic I am using.
How to make above snippet not to fail?
Please note the following is a list of OR conditions.
Each point itself will change the result, making babili happy.

use do ; while(false); instead
avoid the creation of the info constant and return directly return {args};
keep the info but return {args}; instead
drop the else and use if (i) { instead
don't access args.length and let i = 1;
drop the while(false) line
use if (false); instead of while (false);

Thanks in advance for figuring out how come such little snippets can produce so many failures/not-failures scenarios.

Nice example.
With #408, the output is
const that = (...a) => {
  let b = a.length;
  if (!b) return;

  return { args: a };
};

but still, it should be
const that = (...a) => {
  let b = a.length;
  if (b) return { args: a };
};

Ultimately, it could be
const that = (...a) => a.length ? {args: a} : void 0;

But, because we treat a.length to possibly be a side-effecty getter and not computing side-effects between defn of b and usage of b (yet) (#221) , we are not able to safely replace it.

Please also keep in mind in my case I had to create a new variable in order to circumvent the failure.


Add Topics

In GSSoC'24, GitHub Topics will help the discoverability of your project.
I see that you already have great topics on your repository!
I would recommend adding the name of the company like the software you use to build like "vs-code, ghdesktop" to improve your discoverability.
If you are happy with the topics you have, feel free to close this issue. 👍

Yup, added some more tags to improve repo's discoverability
Thank you


appcache-tiles.html sample needs refactoring

This sample is temporarily broken. OfflineTilesEnablerLayer needs to be replaced with OfflineTilesAdvanced pattern.

Closed via https://github.com/Esri/offline-editor-js/commit/157c2ccc70691c6dabb971bd6ae6092201add5e8


Error creating new deals via API

Not documented on the help page but you must enter a value when creating a new deal via the API... the documentation currently shows:

$client = new \BaseCRM\Client(['accessToken' => '<YOUR_PERSONAL_ACCESS_TOKEN>']);
$deal = $client->deals->create(['name' => 'Website redesign', 'contact_id' => $id]);

But, the second line should be:

$deal = $client->deals->create(['name' => 'Website redesign', 'contact_id' => $id,  'value' => <amount|0> ]);

The offending code is on line #63 in `vendor\basecrm\basecrm-php\lib\DealsService.php:

$attributes["value"] = Coercion::toStringValue($attributes['value']);

should be changed to:

if (isset($attributes["value"])) $attributes["value"] = Coercion::toStringValue($attributes['value']);

Hi @AlCaughey thanks for the note. It's fixed in version 1.3.1.


fix: some fixes for swaps

This PR should resolve the following issues brought to my attention by @Tofel.
1 - Ask user to connect wallet on mount.
3 - Revert to old TokenSelector for Transfer modal.
4 - Missing tooltip for slippage tolerance in AdvancedSettings.
5 - Limit/clamp max slippage tolerance.
8 - Bug: Able to execute swap even though user doesn't have a valid market.
14 - Bug: If user doesnt have sufficient balance we show Injective Hub link instead of Go to Portfolio link.
16 - Bug: In case of "not a valid number" error we're currently seeing a Go to Portfolio link, this should not be the case.
25 - Bug: Maxing TokenSelector will not hide the max button if the amount of decimal places do not match.
27 - When searching the assets layout doesn't match Figma. 1/2
28 - Bug: Balances don’t show up correctly when there is no valid market.
29 - Flip default market for swaps to USDT → INJ instead of USDT → INJ.
30 - Fix z-index issue for the flip tokens button.

Nice one!

15. fixed ✅
31. fixed ✅
32.  waiting for @terencetang9 input whether we should block all inputs and selector or just the SWAP button ❓
33. almost ✅  / ❌  it works as expected if the query params are missing, but it doesn't if they have invalid value (e.g.from=dhdhsdsd&to=usdt)
35. fixed ✅
36. fixed ✅

fixed ✅

Are there other things that are pending to be fixed? @afterburn @Tofel


setup faild

Problem encountered on https://dotnet.microsoft.com/en-us/learn/dotnet/hello-world-tutorial/intro
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.

the installation package not supported by processor type

What was the error you got? What version of Windows are you running and what is the processor type? What version of the SDK did you try to install?

Hello.
my proccesor is Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz   2.20 GHz.
Win 10, 64-bit operating system, x64-based processor.
the SDK  version I tried to run is "dotnet-sdk-6.0.300-win-arm64". yes itried to install got message **"the installation package not supported by processor **type"
thanks

Hi @megose, the SDK you were trying to install is for ARM64, but you have x64 processor. So you need to install "dotnet-sdk-6.0.300-win-x64", not "...-arm64"


os/exec: "fork/exec ... cannot allocate memory" on linux,!amd64

What version of Go are you using (go version)?

$ go version
go version devel +5286b2a Thu May 9 14:58:03 2019 +0000 linux/s390x

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
linux/s390x
What did you do?
On a linux/s390x LPAR with 12GB of RAM:
package main

import (
        "log"
        "os/exec"
)

func main() {
        c := 8 * 1024 * 1024 * 1024
        a := make([]byte, c, c)
        for i := range a {
                a[i] = byte(i % 255)
        }

        log.Print(exec.Command("sleep", "1").Run())
}

$ go build -o fork fork.go

What did you expect to see?
$ ./fork
2019/05/07 04:21:46 <nil>

What did you see instead?
$ ./fork
2019/05/07 03:59:54 fork/exec /bin/sleep: cannot allocate memory

This causes a production impact since various Go programs cannot fork/exec (including the Go compiler at times).
This is reproducable under Linux on most architectures aside from linux/amd64, where the problem has been addressed via issue #5838. The memory consumption will need to be altered depending on the available host memory.

Still have the problem with linux/mipsle (compiled with go 1.13.4 windows/amd64)

this issue is impacting us pretty hard even on go 1.15 on linux/mipsle.
Is there any workaround? Adding swap space (with zram) helps a bit, but it still happens.

@csystem-it - there is no real work around for this issue, short of either fixing the the syscall package, or rearchitecting your application. Feel free to try https://go-review.googlesource.com/c/go/+/295849 (the mipsle portion of that should be easy to backport to Go 1.15).

I tried to backport and it seems to be working.
Any idea when we can see this in a stable release?
I see that it is merged, but I'm not familiar with the Go development cycle,  so I don't know if it will make it for a 1.16.x release, 1.17 or if it has not been decied.

@csystem-it The change in https://golang.org/cl/295849 will be in the upcoming Go 1.17 release.  It was not in the Go 1.16 release.

@csystem-it The change in https://golang.org/cl/295849 will be in the upcoming Go 1.17 release.  It was not in the Go 1.16 release.


How to handle increment and decrement badge using fcm notifcation ?

How to handle increment and decrement badge using fcm notifcation ?

Please post this question on StackOverflow.


Diamond Governance SDK integration

Type of change
New feature / bug fixes
Does it contain breaking changes?
YES
Removes certain env variables, adds a new one for the diamond.
Have a look at the .env.example file
Description
Moved to the Diamond Governance SDK for most interactions with the DAO.
Aragon's SDK is still being used to fetch the DAO data (which does not work), and to fetch DAO transfers and balance.
Also fixed various smaller bugs and issues.
Changes

[x] Added instance of DiamondGovernanceClient in a context for the entire app
[x] Removed instance of TokenVotingClient and related variables from AragonSDK context
[x] Updated hooks to use the Diamond Governance SDK instead of Aragon SDK wherever applicable
[x] Updated components to use the new data formats of Diamond Governance SDK wherever necessary
[x] Switched to DAO deployed on Mumbai
[x] Added a function contractTransaction that will show a toast showing the progress of a smart contract transaction (to be used for voting, executing, creating new proposal etc.)
[x] Added tags to proposal cards for the types of actions attached to the proposal
[x] Added a hook to fetch and periodically update the voting power (REP balance) of a given wallet address
[x] Updated types of the mint tokens action and Github PR action to match the format expected by the smart contracts
[x] Added a warning for when the user does not have enough REP to vote or create a new proposal (also disabling the button)
[x] Added the call to create a new proposal with correctly converted form data to the new-proposal page
[x] Changed the primary-highlight color for dark mode to be slightly lighter
[x] Made the props object itself optional for hooks that only had optional variables in the props (which allows for calling the hook without having to pass an empty object {})
[x] Added the body of a proposal to the HeaderCard on the view-proposal page
[x] Added the address of the wallet that executed a proposal to view-proposal page (only for executed proposals)

Mostly looks very good, but there are a few changes needed before this can be merged:

Storybook gives the following error for all stories: 'invalid contract address or ENS name (argument="addressOrName", value=undefined, code=INVALID_ARGUMENT, version=contracts/5.7.0)'. This seems to happen when the env variables are not correct.
I don't think 'actionToName' should be in utils, as it is not really a generic JS/TS utility. [While you're at it, you could also move 'countdownText' from utils to 'date-utils'. Perhaps also rename 'data-utils.test.ts' to 'date-utils.test.ts' ]
'WithdrawAssetsInput' should not have 'number' as type, as this does not allow decimals. Two possible solutions: Set step to something like 0.000001, or just leave it as string (and then convert it later)


How to define a block that compiles to custom JavaScript?

I can define blocks like this:
namespace pxsim.myblocks {
  //% block="for $item in $list"
  //% draggableParameters
  export function forEach(list: any[], handler: (item: any) => void): void {
    for (let _item of list) {
      handler(_item);
    }
  }
}

This block transpiles to
myblocks.forEach(null, function (item) {

})

How can I create a custom block that transpiles to
for (let item of list) {
}

Will I be able to receive any help with this?

Language constructs like for require specific handling in the blocks->TypeScript and TypeScript->Blocks compiler so those blocks are "baked into the compiler". So the answer is no, unless you integrate your changes in pxt itself as a pull request.

It looks like I can edit pxt-blockly instead of a target to do this


Add files via upload

@ignaciopaso Please provide us with an URL of a page on the official website where an IT-related long-term (>1 year) course is offered by the school

@ignaciopaso You might miss my previous comment. Please react.

@ignaciopaso I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the abovementioned issue. Thank you for the understanding!


Add json option for get and set functions

Thanks for the great library! As I was using it, I ran into a potential improvement dealing with handling of JSON values. I see the global json flag passed into the constructor, but I have some values that aren't JSON so the class level flag set to true doesn't work for me when I'm getting those keys.
This PR adds the json flag to the get and set function options allowing the values to be parsed/stringified on a per-call basis. I added a test and updated the readme as well. Thanks!

Awesome! Released in 2.4.0. Do you want to help maintain this library?

Sure. I'll help maintain it.

Great. I've added you as collaborator on this repo now


ShapeEditorWindow.cs error

Hi.
I put the SabreCSG-master zip file content into assets folder and i am getting following errors. There is no sabrecsg object in the GameObject menu. I tested with Unity 5.6.5f1 and 2017.1.2f1.
Assets/SabreCSG-master/Scripts/Brushes/CompoundBrushes/Editor/ShapeEditorWindow.cs(990,49): error CS0117: UnityEngine.Screen' does not contain a definition for safeArea'
Assets/SabreCSG-master/Scripts/Brushes/CompoundBrushes/Editor/ShapeEditorWindow.cs(990,113): error CS0117: UnityEngine.Screen' does not contain a definition for safeArea'
Assets/SabreCSG-master/Scripts/Brushes/CompoundBrushes/Editor/ShapeEditorWindow.cs(1350,40): error CS0117: UnityEngine.Screen' does not contain a definition for safeArea'
Assets/SabreCSG-master/Scripts/Brushes/CompoundBrushes/Editor/ShapeEditorWindow.cs(1480,47): error CS0117: UnityEngine.Screen' does not contain a definition for safeArea'
Assets/SabreCSG-master/Scripts/Brushes/CompoundBrushes/Editor/ShapeEditorWindow.cs(1480,131): error CS0117: UnityEngine.Screen' does not contain a definition for safeArea'

Hey Zabbarian,
the latest version using the Download Zip option or one of the releases?

v1.6.1, or the latest master, should have already fixed those errors... I am going to double check to make sure.

Sorry it seems there is indeed a problem with those Unity versions. I will let you know when it's fixed. May take me a couple minutes.

Please try this version and let me know if it works properly. :)

Hi Henry.
I just tested last version you put with both Unity 5.6.5f1 and 2017.1.2f1. It's working fine now with no errors. I can see the "Create CSG" object in the GameObject menu. Thanks.

Thank you so much, that was one of the most important findings yet as it broke all versions of Unity between 5.3 and 2017.2. Thanks again! 😁


feat: add skill images (1)

please check! Thank you~

Great! I have reviewed it and will add more details soon.😉


React spectrum not building/running in a react app.

Provide a general summary of the issue here
Creating a fresh react app using npx create-react-app my-app and installing @adobe/react-spectrum works. However, importing any react-spectrum components results in an error when running/building the application.
Failed to compile.

Module not found: Error: Can't resolve '@adobe/react-spectrum' in '/path/to/project/src'
ERROR in ./src/App.js 4:0-71
Module not found: Error: Can't resolve '@adobe/react-spectrum' in '/path/to/project/src'

webpack compiled with 1 error

My code is the same as the one in the documentation:
import { Button, defaultTheme, Provider } from '@adobe/react-spectrum';

function App() {
  return (
    <Provider theme={defaultTheme}>
      <Button
        variant="accent"
        onPress={() => alert('Hey there!')}
      >
        Hello React Spectrum!
      </Button>
    </Provider>
  );
}

export default App;

🤔 Expected Behavior?
Normally, the project builds and runs on the browsers.
😯 Current Behavior
On running npm start or npm build, I get this error:
Failed to compile.

Module not found: Error: Can't resolve '@adobe/react-spectrum' in '/Users/labuser/Documents/temp/adobe-spectrum-test/src'
ERROR in ./src/App.js 4:0-71
Module not found: Error: Can't resolve '@adobe/react-spectrum' in '/Users/labuser/Documents/temp/adobe-spectrum-test/src'

webpack compiled with 1 error

💁 Possible Solution
No response
🔦 Context
No response
🖥 Steps to Reproduce

Create a react project using npx create-react-app my-app
Run cd my-app to go to the project folder
Run npm install @adobe/react-spectrum to install react-spectrum
In your App.js file replace everything with the following code:

import { Button, defaultTheme, Provider } from '@adobe/react-spectrum';

function App() {
  return (
    <Provider theme={defaultTheme}>
      <Button
        variant="accent"
        onPress={() => alert('Hey there!')}
      >
        Hello React Spectrum!
      </Button>
    </Provider>
  );
}

export default App;

Run the application using npm start

Version
3.32.1
What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
MacOS
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

Reproduced, thanks for letting us know! We'll be fixing this asap.

3.32.2 is out now, let us know if you run into any issues. Thanks @devongovett for the speedy turnaround!

Thank you so much! It works perfectly now.


ubi task: Failed send a request

I think i managed to get v 0.5 running. but ubi task has a network problem, how could i fix that?
it tires to conenct to the external multiaddress ip, not the internal ip. so it cannot appear onchain.
time="2024-06-14 09:23:27.840" level=info msg="ubi task received: id: 521842, type: 1, zk_type: fil-c2-512M, input_param: https://286cb2c989.acl.swanipfs.com/ipfs/Qmb1WzuvjaH6MMkgHGvt9jxFuTLkGEsdWepzre5Mk1G3ni, signature: 0x012de65d0b9ce1891491c73c6f74bfb78c9a621f783b6d9a3090f6cefe2270cf39cd1212abf48a5632a25fc3e992f3777c5d8acc57f44333d389ba90b73c1b5001, contract: 0x188776A3Fe39e76430AdD728085BD93DDB0C0c41" func=DoUbiTaskForDocker file="ubi.go:444"

docker ps -a
CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS                     PORTS                                         NAMES
ec69f4cfaf7c   filswan/ubi-worker-gpu-amd:v2.0   "ubi-bench c2"           7 minutes ago   Exited (0) 7 minutes ago                                                 fil-c2-512m-5218421zokl

docker logs ec69f4cfaf7c
2024-06-14T07:23:28.218Z	INFO	ubi-bench	ubi-bench/main.go:96	Starting ubi-bench
2024-06-14T07:23:28.218Z	INFO	ubi-bench	ubi-bench/main.go:556	get param from mcs url: https://286cb2c989.acl.swanipfs.com/ipfs/Qmb1WzuvjaH6MMkgHGvt9jxFuTLkGEsdWepzre5Mk1G3ni
...
2024-06-14T07:23:55.839 INFO filecoin_proofs::api::seal > verify_seal:start: SectorId(0)
2024-06-14T07:23:55.839 INFO filecoin_proofs::caches > trying parameters memory cache for: STACKED[536870912]-verifying-key
2024-06-14T07:23:55.839 INFO filecoin_proofs::caches > found params in memory cache for STACKED[536870912]-verifying-key
2024-06-14T07:23:55.840 INFO filecoin_proofs::api::seal > verify_seal:finish: SectorId(0)
2024-06-14T07:23:55.840 INFO filecoin_proofs::api::seal > seal_commit_phase2:finish: SectorId(0)
time="2024-06-14 07:24:15.847" level=error msg="Failed send a request, error: Post \"http://<IP_ADDRESS>:40037/api/v1/computing/cp/docker/receive/ubi\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)" func=func4 file="main.go:644"
2024-06-14T07:24:15.848Z	WARN	ubi-bench	ubi-bench/main.go:113	Post "http://<IP_ADDRESS>:40037/api/v1/computing/cp/docker/receive/ubi": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Fix the bug that is not working on this branch：https://github.com/swanchain/go-computing-provider/tree/fix-doc.
Use this branch to compile the binary to replace the old binary.

thank you! now we are in a great workflow.
2024-06-14T09:58:49.695 INFO filecoin_proofs::api::seal > seal_commit_phase2:finish: SectorId(0)
seal: commit phase 2 finished, total time: 6.024157, sector_id: 0
user@swanZK:~/go-computing-provider$

time="2024-06-14 11:58:49.696" level=info msg="task_id: 522050, c2 proof out received: {TaskId:522050 TaskType: Proof:hdRsud7nldlWxCantlU+rYVPz2xJ/nOUUPpXUMWhcDHh1ZJlY2TtanqAn1R3nQydgYXNsIuqAP8sHHshCFx6pVz5XbnmYWAu3S2KNitWwTz5XCuZ1YRvVt5TNqHKrkL6GCsxJ2BILApAtDEitx1/17tZBsrscisOcrcQwjW5VzboeAx/8chU6q8Af8XRLyQAhbQLUlC2rnWz5WxdWopjkMhgzyfSviEbEe9gp1HZ7n9a25nEj4NNA+PUWyQMw4CX ZkType: NameSpace:}" func=ReceiveUbiProofForDocker file="ubi.go:733"
time="2024-06-14 11:58:53.483" level=info msg="taskId: 522050, submitUBIProofTx: 0xf2d38c44b6b31cb680859549b35dcef103995d15f8e4a54bb69a4ba7bf6e9289" func=submitUBIProof file="ubi.go:873"


mp4decrypt binary was not found at the specified path

run this command:
python3 kinescope-dl.py -r https://referer_site --best-quality https://kinescope.io/203976684 test.mp4

I also have ffmpeg, ggprobe, mp4decrypt files on this same level with kinescope-dl.py file:
root@ndev:/home/kinescope-dl# ls -la
total 80543
drwxr-xr-x  7 root root       14 Jul 20 00:23 .
drwxr-xr-x 34 root root       37 Jul 19 22:44 ..
drwxr-xr-x  7 root root        7 Jul 19 22:48 bento
-rwxrwxrwx  1 root root 78683840 Mar 12 23:52 ffmpeg
drwxr-xr-x  4 root root        9 Jul 19 22:47 ffmpegbin
-rwxrwxrwx  1 root root 78557440 Mar 12 23:52 ffprobe
drwxr-xr-x  8 root root       13 Jul 19 22:44 .git
-rw-r--r--  1 root root       93 Jul 19 22:44 .gitignore
drwxr-xr-x  3 root root        8 Jul 19 22:46 kinescope
-rwxr-xr-x  1 root root     2441 Jul 19 22:44 kinescope-dl.py
-rwxrwxrwx  1 root root  1018392 May 20 01:42 mp4decrypt
-rw-r--r--  1 root root     1915 Jul 19 22:44 README.md
-rw-r--r--  1 root root       58 Jul 19 22:44 requirements.txt
drwxr-xr-x  2 root root        2 Jul 20 00:47 temp

but I got this error:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~                KINESCOPE-DL                ~
~         Kinescope videos downloader        ~
~ https://github.com/anijackich/kinescope-dl ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

= DOWNLOADING =================
Video: 100%|██████████| [1/1]
Audio: 100%|██████████| [1/1]
[*] Decrypting... Traceback (most recent call last):
  File "/home/kinescope-dl/kinescope/downloader.py", line 58, in _decrypt_video
    Popen(f"{self.mp4decrypt_path if self.mp4decrypt_path else 'mp4decrypt'} "
  File "/usr/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.9/subprocess.py", line 1823, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'mp4decrypt --key 1:6b734e6945736e583570644d3544773d "temp/277ead141c634596abbc2952a1e6fbe2_video.mp4.enc" "temp/277ead141c634596abbc2952a1e6fbe2_video.mp4"'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kinescope-dl/kinescope-dl.py", line 73, in <module>
    main()
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/kinescope-dl/kinescope-dl.py", line 64, in main
    downloader.download(
  File "/home/kinescope-dl/kinescope/downloader.py", line 156, in download
    self._decrypt_video(
  File "/home/kinescope-dl/kinescope/downloader.py", line 63, in _decrypt_video
    raise FFmpegNotFoundError('mp4decrypt binary was not found at the specified path')
kinescope.exceptions.FFmpegNotFoundError: mp4decrypt binary was not found at the specified path

I also tried this one:
python3 kinescope-dl.py -r https://referer_site --best-quality --ffmpeg-bin ./ffmpegbin/ --mp4decrypt-bin ./bento/bin/mp4decrypt  https://kinescope.io/203976684 test.mp4

What I do wrong ?
I saw your activity here, I think you should know the solution, sorry if not  @ic-it

Try explicitly specifying where mp4decrypt is located.
I see that you did this in your second try, but I also see that mp4decrypt is in ./mp4decrypt and not ./bento/bin/mp4decrypt (based on your ls -la).

I see that you did this in your second try, but I also see that mp4decrypt is in ./mp4decrypt and not ./bento/bin/mp4decrypt

./mp4decrypt  this is binary file it self, the same for ./ffmpeg So I expect this files to be used by default.
In my second try I use folders where binaries are located. But both don't work

in downloader.py I add shell=True in Popen functions that call ffmpeg and mp4decrypt. And I have to specify --ffmpeg-bin and --mp4decrypt-bin. Then it works perfect!
Popen(f"{self.ffmpeg_path if self.ffmpeg_path else 'ffmpeg'} "
                  f"-i {source_video_filepath} "
                  f"-i {source_audio_filepath} "
                  f"-c copy {target_filepath} "
                  f"-y -loglevel error", shell=True).communicate()

Popen(f"{self.mp4decrypt_path if self.mp4decrypt_path else 'mp4decrypt'} "
                f"--key 1:{key} "
                f"\"{source_filepath}\" "
                f"\"{target_filepath}\"", shell=True).communicate()

python3 kinescope-dl.py --best-quality --ffmpeg-bin ./ffmpeg --mp4decrypt-bin ./mp4decrypt video_id


Visual Problem with Gridmaps

Godot v3.0.2
Windows 10, GeForce 1070
There's an issue with the Gridmap node not displaying the correct geometry when you go to place it in the viewport IF you have more than one Gridmap node in your scene.

Create two Mesh Libraries with different geometry in both
Create a new scene with a Spacial node
Create a child node under Spacial that is a Gridmap (name it as you like, such as Gridmap1)
Load the first Mesh Library into your first Gridmap
Create a second Gridmap as a child of Spacial (name it as you like, such as Gridmap2)
Load the second Mesh Library into your second Gridmap
Select the first Gridmap and the first object and place a few in the viewport
Select the second Gridmap and the first object and go to place one in the viewport

When you do this, you should notice that the viewport displays the first object from the FIRST gridmap (Gridmap1), but places the object from the second gridmap (Gridmap2) when you click. So, the function is correct (the correct object is placed), but the display is incorrect (the first object is displayed).
I am using multiple Gridmaps for two reasons - 1) to better categorize my geometry and 2) when I use another Gridmap, it allows me to actually "overlap" geometry. #2 is important to keep as it allows me to use Gridmaps to quickly place items in my game by "brushing" them into place. So, I don't want to lose the functionality of #2, but I definitely need to see the object I am placing, especially if I need to rotate it.
Thanks.

Additional Info:
This problem happens if you select the geometry that is in the same "slot". For example, if you select the first object in Gridmap1 and place a few in the viewport, then select the first object in Gridmap2, then the viewport will display the geometry from Girdmap1. However, if you go back to Gridmap2 and select the second object (or any other object) then the correct object will be displayed in the viewport. If you select the second object in Gridmap2, place a few, and then go to Gridmap1 and select the second object, then the incorrect object will be displayed.
It does not matter what the names of the objects are. It seems that Godot gets confused and displays the object from the same "slot", regardless of name.

Can anyone still reproduce this bug in Godot 3.2.1 or 3.2.2beta4?

Closing due to lack of response. Please comment if you can still reproduce this bug.
PS: If no minimal reproduction project was included in the original bug report, please upload one as well to ease troubleshooting.


Prettier

🎉 🎉 🎉
Maybe add a git pre-push hook with husky? 👍

@nickwaelkens it already has a pre-commit hook.

@lowiebenoot @nickwaelkens fixed conflicts, re-approve please?


Using local resource for ffmpeg-core dependency in place of cdn

Followed the instructions for self hosting listed on ffmpeg libraries docs
https://github.com/ffmpegwasm/ffmpeg.wasm#use-other-version-of-ffmpegwasm-core--ffmpegcore
Testing
Did some manual testing and the development enviroment works as expected

Gif generated with branch changes

@okorkov Is there anyway we can get a previews for each PR?

you can emulate deployment locally with firebase emulators:start command, try to rebase and run it


[FLINK-32715][test] Make test wait for application to stop before shutting down the other services

What is the purpose of the change
We introduced a Precondition checking whether the contenders deregistered themselves before closing the HA backend of the service. ProcessFailureCancelingITCase doesn't do that properly because it's not waiting for the dispatcherResourceManagerComponent application to stop. That might lead to test instabilities if stopping the application takes longer.
Brief change log

Made the stopApplication call to block

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@flinkbot run azure


Sync failure on Android 2.0.2

When database column “__updatedAt” is null (Empty) and sync is using Table.pull(mPullQuery, “query").get() will not sync and first and last item is null (with exception), while using Table.pull(mPullQuery).get() works well but do full sync.

The __updatedAt column being populated (non-null) is a requirement for incremental sync workflows at this time.  By default, your column should have been created with a trigger to populate its value.  How did you create your column that it is null?

2 simple steps:

Create Mobile service table with required columns, __updateAt / __createdAt / __version / ... created automatically on table creation.
import data with "SQL server Import and Export" tool. It is required since some of the data already exists from other system.

I did try to override it by the following server side read script:
function read(query, user, request) {
request.execute({
success: function(results) {
results.forEach(function(item) {
if (item.__updatedAt == null) {
item.__updatedAt = "2015-06-01T00:00:00.000+00:00";
}
});
request.respond(); //Writes the response
}
});
}
It did not worked, I got same page sync forever...

The updatedAt needs to be populated in the SQL Db for the query to function as expected, since its evaluated in your request.execute call.


CircuitX - ImpressionEffect

Changes

Adding some specific side-effects for use with clogging/analytics, typically for use in circuit presenters
ImpressionEffect: A side effect that will run an impression once based on the retain strategy
LaunchedImpressionEffect: A [LaunchedEffect] that will run a suspendable impression once, based on the retain strategy
rememberImpressionNavigator: A [LaunchedImpressionEffect] that will also re-run the impression if it re-enters the composition after a navigation event.

The tests are excellent! I do have a concern about them though - currently we don't run instrumentation tests on CI (we moved everything to robolectric). Is it possible to do that here? Relatedly, is it possible to test (a subset) of the impl in common tests for more multiplatform coverage?

Turns out, we can! Interesting use of molecule and some expect/actual to get it all working though. Did that with c04d79feafe3e04fd6bca4783881b942efe03fcd.

are we married to "sideffects" or should we just call it "effects"?

Nope effects is better 👍🏻  162fd214b8f1537b38dcc0342af52e3e02740e68

I'm somewhat of the mind that we should actually make this a core circuit library, I think this pretty quickly becomes required for any app using Circuit

I think for the basic circuit use it's fine to not have it in foundation, and have it as an extension for advanced use. Don't really mind either way though 🤷🏻

Do you think we should account for LocalPinnedContainer (per our offline discussions wrt event listeners) here?
Uses of this should be very deliberate so I don't think we need to do any extra support for sub-circuit use with this.

That said, added a test for the impression in a lazy container with 895b7356da60e131c172a74f9b42d5a1395e44f3


Connection timed out when internet bandwidth at max capacity

I had three consoles running the script downloading 3 different albums and a game downloading on steam.
At a glance, it looks like it timed out before it got an http response of some kind.
Traceback (most recent call last):
  File "C:\Python36\lib\urllib\request.py", line 1318, in do_open
    encode_chunked=req.has_header('Transfer-encoding'))
  File "C:\Python36\lib\http\client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Python36\lib\http\client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "C:\Python36\lib\http\client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "C:\Python36\lib\http\client.py", line 1026, in _send_output
    self.send(msg)
  File "C:\Python36\lib\http\client.py", line 964, in send
    self.connect()
  File "C:\Python36\lib\http\client.py", line 936, in connect
    (self.host,self.port), self.timeout, self.source_address)
  File "C:\Python36\lib\socket.py", line 722, in create_connection
    raise err
  File "C:\Python36\lib\socket.py", line 713, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\James\Documents\_Github-Projects\imgur_downloader\imgurdownloader\imgurdownloader.py", line 414, in <module>
    main()
  File "C:\Python36\lib\site-packages\click\core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "C:\Python36\lib\site-packages\click\core.py", line 697, in main
    rv = self.invoke(ctx)
  File "C:\Python36\lib\site-packages\click\core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Python36\lib\site-packages\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "C:\Users\James\Documents\_Github-Projects\imgur_downloader\imgurdownloader\imgurdownloader.py", line 398, in main
    downloader.save_images(albumFolder)
  File "C:\Users\James\Documents\_Github-Projects\imgur_downloader\imgurdownloader\imgurdownloader.py", line 287, in save_images
    dl, skp = self.direct_download(image_url, path)
  File "C:\Users\James\Documents\_Github-Projects\imgur_downloader\imgurdownloader\imgurdownloader.py", line 335, in direct_download
    urllib.request.urlretrieve(image_url, path)
  File "C:\Python36\lib\urllib\request.py", line 248, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "C:\Python36\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Python36\lib\urllib\request.py", line 526, in open
    response = self._open(req, data)
  File "C:\Python36\lib\urllib\request.py", line 544, in _open
    '_open', req)
  File "C:\Python36\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Python36\lib\urllib\request.py", line 1346, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "C:\Python36\lib\urllib\request.py", line 1320, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>

May not behave as expected when internet bandwidth is at maximum and this program is running.


[Artur] GN: Suggestion for application to Mbed integration

My first suggestion about example application directory (for example: example/shell/mbed):

Use Cmake build system for  mbed application example
CMakeList of mbed example should be modified - use environment mbed path, add CHIP root path, include path to CHIP library cmake, link CHIP library to project
Create a symlink to CHIP root (mbed/third_party/connectedhomeip - according to the design)
I would personally start with custom main.cpp file (some simplest implementation using CHIP) than integrated it with shell common files

My first suggestion about example application directory (for example: example/shell/mbed):

Use Cmake build system for  mbed application example
CMakeList of mbed example should be modified - use environment mbed path, add CHIP root path, include path to CHIP library cmake, link CHIP library to project
Create a symlink to CHIP root (mbed/third_party/connectedhomeip - according to the design)
I would personally start with custom main.cpp file (some simplest implementation using CHIP) than integrated it with shell common files

Next suggestions:

Point 3. from the previous note is not correct due to the problem with symlinks inside mbed project symblink issue
CMakeList of mbed example should add a subdirectory to Mbed config directory - Cmake and GN connecting layer
Mbed config directory - add CMakeLists which prepares CHIP build configuration and defines 'chip-gn' target that builds CHIP library and defines 'chip' target that exposes CHIP headers & libraries to the application; add CHIP GN "project" to build GN library

I think we should also consider creating some cmake extension functions (like the zephyr platform extensions.cmake. They may be useful in getting for example compilation flags that should be passed to GN build.

The compilation flags should be propagated to the gn build through mbed. The flags and helpers are defined in this folder: https://github.com/ARMmbed/mbed-os/tree/master/tools/cmake


Update README.md for other languages

What could be improved
After the v1 release the alternative README.md files for other languages are outdated.
Why should this be improved
To keep the docs aligned
Any risks?
No
More information

[x] Ping @woodsoul507 for Spanish
[ ] Ping @mbiesiad for Polish
[ ] Ping @unger1984 and @damalmax for Russian
[x] Ping @HarrisonQi and @AlexV525 for Mandarin
Are any of you willing to take on the update of said languages?

Hello. Sure I can pick the Spanish one. You will get news on next days. Cya.

I'll see if I can manage to update it tomorrow. Thanks for the ping.

Hello. I made a PR #1215 for the Spanish translation. Any hint in order to improve the translation is welcome. Cya.

Thanks @woodsoul507!

Ping @unger1984 @damalmax @mbiesiad any of you that have time to bring your languages translatations up to date?

@spydon I will try to update the translation as soon as possible.

@spydon, hope, will have time to check and update docs this weekend.

@spydon, hope, will have time to check and update docs this weekend.

They are already updated by @unger1984, but it would be good if you could review that PR. :)

@spydon Thanks for the ping. I'll try to work on it this weekend. Let's keep in touch.

My pleasure! Greetings


Consider using fft to rfft

I ran into this issue a few months ago. So apologies for the late report.
For the FNO, rfft is used.
From https://github.com/FluxML/Zygote.jl/issues/1406 , see that Zygote's gradient is wrong.
A quick fix is to change this to fft for now.

That seems like a fine temporary workaround. I'd accept it.


[Web] open link in a new tab on mouse wheel click

On a flutter web page, center clicking on links does not open it in a new tab - instead it wants to scroll up and down.
Is this standard behavior? Will this change to feel like a normal web page?

Related to https://github.com/flutter/flutter/issues/44865

Center click does open the link in a new tab. are you still facing this issue? @Dooks123 .


Misc fixes for client.py

Fix typing: Replace any (the function) with typing.Any
Remove OrderedDict: for newer Python (>=3.7) versions the insertion order into dicts is already kept
Move default arguments for hourly_start and hourly_end into the function body. Otherwise they are executed when the the class is initialized. I.e. those arguments would stay the same for new method calls.
Replace datetime.utcnow with the timezone aware datetime.now(tz=UTC).
utcnow will be deprecated with Python 3.12.

I wasn't sure about the + "Z" which you added manually to the iso datetime. Could you check which format the API expects? datetime.isoformat would return YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM.
https://docs.python.org/3/library/datetime.html#datetime.datetime.isoformat

I wasn't sure about the + "Z" which you added manually to the iso datetime. Could you check which format the API expects? datetime.isoformat would return YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM.

Passing a date in that format (I used 2023-09-14T16:09:38.522987+00:00) results in a 400 from the API. Passing the same date in the previous format (2023-09-14T16:09:38.522987Z) works fine. The documentation never explicitly mentions a date format to use (the scalar type is just date-time and there is no description of this type anywhere), but the responses all use UTC dates in the format YYYY-MM-DDTHH:MM:SSZ.

Passing a date in that format (I used 2023-09-14T16:09:38.522987+00:00) results in a 400 from the API. Passing the same date in the previous format (2023-09-14T16:09:38.522987Z) works fine. The documentation never explicitly mentions a date format to use (the scalar type is just date-time and there is no description of this type anywhere), but the responses all use UTC dates in the format YYYY-MM-DDTHH:MM:SSZ.

Added some logic to convert the datetime arguments to UTC (if they aren't already) and to remove the timezone afterwards. Note that it will only convert to UTC if the datetime was passed with a timezone, otherwise it would assume UTC. Does this make sense?

Sounds good to me.

Released this as 1.0.3.
@cdce8p Do you anticipate making any more PRs soon? If not, I will go ahead and create the PR to bump the version in HA core.

@cdce8p Do you anticipate making any more PRs soon? If not, I will go ahead and create the PR to bump the version in HA core.

No 😉
Just saw the DeprecationWarning in Home Assistant and wanted to fix it. I've already started testing Python 3.12 on my fork.

Great, thanks! I'm not too familiar with Python and its ecosystem/idiosyncrasies so I appreciate you catching and fixing these.


The name 'Events' does not exist in the current context

Hi,
I am getting the following error from the application: after updating to net9.
The name 'Events' does not exist in the current context : Payment Service: Line 86
https://github.com/Atharva-System/blazor-ecommerce/blob/9765f3fb8170cbb75eeb662bfe5086aff777c81b/src/BlazorEcommerce.Infrastructure/Service/PaymentService.cs#L86
I believe it's now a string and should be "checkout.session.completed"
My solution is the following:
I created a constatnt for this in Infrastructure.
namespace BlazorEcommerce.Domain.Events
{
public static class Events
{
public const string CheckoutSessionCompleted= "checkout.session.completed";
}
}

The stripe API has changed a little, Events is now EventTypes so that line should be
if (stripeEvent.Type == EventTypes.CheckoutSessionCompleted)

I have a working version on .NET 9 with a lot of improvements, I'm working on posting it as a public fork of this project if you are interested

Thanks for getting back to me on this. It ports to net9 pretty well, the only issue I did have is with EF Core sending me in the schema not updated loop even though I had pushed all the updates to the database, I got around it with:
optionsBuilder.ConfigureWarnings(warnings => warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
In the DbContext but I am not sure if that was the correct way.
Yes, I am definitely interested the forked code, are you interested in me adding UIX modifications to the project?

I would not recommend ignoring those warnings - the way the seeding code was written, new Guids and other data are created dynamically every time the app is run, creating conflicts between what's in the db and what the migration says should be in the db, causing this warning.  The solution is to remove the .HasData parts of the migration, and replace with seeding of the initial data after the migrations are complete.  My fork has all this code in it, and it seems to work well.    I'd love some input on UI/UX improvements, that's not my strength.  My fork is here:  https://github.com/rgamage/blazor-ecommerce-v9


Release

Dry run release; Julia should go through the process with Eric's help.

Did the release on Github, Julia working on adding links

Done!


PDF not generating, nothing happening

I'm really trying my best to figure this out.
Here is my repo: https://github.com/GatesDupont/StateLevelForest
I have paper.md, paper.bib, .github:workflows:draft-pdf.yml, draft-pdf.yml
When I go to the "Actions" tab on the repo nothing relevant is showing up, it's acting like there are no Actions besides default suggestions.
I've tried following the documentation here and on the JOSS site, and I've tried searching elsewhere and I'm hitting a wall.
Can you help?
Thank you.

Figured it out, it was an issue with the .github hidden file structure.


fix incorrect convert function restore

What problem does this PR solve?
restore CONVERT('Müller' USING UtF8) is incorrect
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

/run-build-integration

/run-all-tests

/merge

/run-all-tests

/run-all-tests

@kennytm can this PR be merged?


Bind handler (Exception and Rejection) to Router

Now.
When binding different handlers to each router, it is necessary to do as like this.
val router1 = Router(...)
val route1 = router1.routes.map { r =>
  DefaultExceptionHandler.handler {
    DefaultRejectionHandler.handler {
      route
    }
  }
}.reduce(_ ~ _)

val router2 = Router(...)
val route2 = router2.routes.map { r =>
  OtherExceptionHandler.handler {
    OtherRejectionHandler.handler {
      route
    }
  }
}.reduce(_ ~ _)

Http().bindAndHandle(route1 ~ route2, "localhost", 8080)

I want to be able to handle as it is Router.

Keep it simple.
This library is an idea and a suggestion.
There is an alternative.