Add TextDocument.buildTarget

Looks like it would be beneficial to add something like TextDocument.buildTarget to keep track of build targets that generated the text document.

I'm a bit unsure about this one. One one side this could help distinguish between different snapshots (JS/JVM/2.11/2.12) of the same source file, but on the other side I feel like this can be handled outside of the semanticdb schema. This would have helped deduplicate js/jvm results in my community build corpus, and I guess you don't have to set if unless you want to.

It could be useful to support multiple versions of a library, as well as to identify the source of the symbol to assist with imports or build file changes.

We also need this internally.

Fair enough. Is the uri field sufficient to encode this information? A URI could have query parameters foo/Foo.scala?target=//path/foo:bar&hash=wjk23j4rhsaa

That is an interesting idea.  It leaves the data fairly unstructured but is a nice place to encode information that isn’t explicitly in the spec, although if we want it to be part of the spec we could call out exactly the query params to be used for this usage.  This gives the option to store information like compile parameters which could influence if a specific semanticdb entry is appropriate for answering a users question.  I will have to think on this a bit, but it sounds pretty reasonable right now.

Also the question is how easy it will be to do "go to definition" or "find all references" queries in this scheme. In general, all our tooling will have to be adapted to correctly handle the new format.

@ShaneDelmore Do we still need this functionality for our internal work?

Yes

Does this need to be part of the SemanticDB spec or can it be handled on your side? I'm still not sure what how exactly this change would enable the following use-case

It could be useful to support multiple versions of a library, as well as to identify the source of the symbol to assist with imports or build file changes.

Can this be added to semanticidx instead?


The links for "De ce să ajuți?" and "Echipa" from jobs pages are not working properly

URL: https://oportunitatisicariere.ro/
Browser: Chrome
Device: Laptop
OS: Windows 11
STEPS TO REPRODUCE:
1 .Open the URL in the browser
2. Scroll down and click "Detalii" from any job
3. Click on "De ce să ajuți?" and "Echipa" links
EXPECTED RESULTS:
These links should send you to the related sections.
ACTUAL RESULTS:
These links do not send you to related sections.
https://github.com/peviitor-ro/oportunitatisicariere/assets/23164347/f30242b6-771f-40bf-a71c-63ddf6acd0ed

If you click on that link it takes you to the specific section.
The issue is that it takes you kind of in the middle of the section but because of your screen height, that looks weird.
I don't know if we should do anything about it, since there are no screens with that height, or maybe there are, on the tablets? I'm not sure.
What height did you use?

1920 X 1080

Can you please check this again?

It's still the same problem for me.

@Florin201092 Can you please check this again?

FIXED!


python37Packages.gradient: 1.4.0 -> 1.4.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python37Packages.gradient is: "The command line interface for Gradient"
meta.homepage for python37Packages.gradient is: "https://github.com/Paperspace/gradient-cli"
meta.changelog for python37Packages.gradient is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 1.4.1 with grep in /nix/store/zi9v6j32ps1kfs78ngpqc0ipg6f672s5-python3.7-gradient-1.4.1

directory tree listing: https://gist.github.com/f4a1f074d423759b86000180d7309df9

du listing: https://gist.github.com/8427c2d92d21b053b0a760ec2356561f

Rebuild report (if merged into master) (click to expand)

9 total rebuild path(s)

3 package rebuild(s)

2 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
3 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python37Packages.gradient
python38Packages.gradient
python39Packages.gradient

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/zi9v6j32ps1kfs78ngpqc0ipg6f672s5-python3.7-gradient-1.4.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python37Packages.gradient https://github.com/r-ryantm/nixpkgs/archive/23494b62f030ab251efeccc355094120ad83f492.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/zi9v6j32ps1kfs78ngpqc0ipg6f672s5-python3.7-gradient-1.4.1
ls -la /nix/store/zi9v6j32ps1kfs78ngpqc0ipg6f672s5-python3.7-gradient-1.4.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python37Packages.gradient
python38Packages.gradient

Maintainer pings
cc @thoughtpolice for testing.

Already on master


Xdebug not installed at Laravel Homestead 4.0

As far as I known Xdebug is installed at previous versions of Laravel Homestead. I don't know if this is a bug or anything else because I haven't found any docs about this.
For whom it may concern I achieve to install manually with this commands:
http://acacha.org/mediawiki/Homestead#Laravel_Homestead_4.0_amb_PHP_7
I've used http://xdebug.org/wizard.php with some litle changes

Thanks, but this is by design. xdebug was removed from the default box now.

@GrahamCampbell Ok thanks for the info!

I just can't get it to work.
I installed and configured Xdebug 2.4.0rc3 following the [docs] (http://xdebug.org/docs/install).
I see the extension in phpinfo() and PhpStorm recognizes the remote debugger, but I can't get it to listen and stop on breakpoints.
The problem is that Xdebug seems to be installed as a PHP extension, instead of a Zend Extension, wich is strange as I configured zend_extension="/usr/.../xdebug.so".
Any ideas?

@GrahamCampbell are you able to share the reasoning behind removing xdebug by default? Solely for our curiosity. :) Is there meant to be a replacement developers should be using?

I think it's because it's not stable yet. For example, my app segfauls on php 7 with code coverage enabled when running phpunit.

@GrahamCampbell Thanks for the info! So there is a chance that future iterations will include xdebug once it's stable with PHP7?

It's not really up to me. It's up to Taylor to decide if and when he wants to put it back in.

Is it possible at least to put a short step by step list on configuring Xdebug with Homestead 4?

FWIW, I was able to get it running following these instructions: http://gilbert.pellegrom.me/setting-up-xdebug-on-homestead-4-php-7/ Although that feels pretty fragile, as it won't stick around if I need to vagrant destroy for any reason.

:+1: @jjeaton


Fix build for OS X.

LevelDB fails to build on OS X with standard GCC from XCode and so on and such
forth.

This patch mixes up the Posix and Chromium port implementations as well as
pulls in a couple Chromium headers so that building on OS X is possible without
requiring that users build GCC 4.5.

Patch commit is at [1] and attached as a diff.

[1]
https://github.com/davisp/leveldb/commit/50e280c9b1cfde0e255d124f38e1aa436d36ba5
2

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 8 May 2011 at 10:17
Attachments:

leveldb_osx.patch

Original comment by<EMAIL_ADDRESS>on 22 May 2011 at 6:07

Added labels: OpSys-OSX

Thanks for sharing this. It seems like I successfully applied the patch using
from the leveldb root:
    patch -p1 -i leveldb_osx.patch

But I'm getting this error when I call 'make'.

    g++ -c -DLEVELDB_PLATFORM_POSIX -I. -I./include -std=c++0x -g2 db/db_bench.cc -o db/db_bench.o
    cc1plus: error: unrecognized command line option "-std=c++0x"
    make: *** [db/db_bench.o] Error 1

This is with gcc version 4.2.1 (Apple Inc. build 5664)

Original comment by<EMAIL_ADDRESS>on 25 May 2011 at 8:01

Also, link rot rears its ugly head.

A more permanent link:

https://github.com/davisp/leveldb/compare/master...osx

Original comment by<EMAIL_ADDRESS>on 23 May 2011 at 11:06

That's the same patch. I attached it as a diff to prevent link rot.

Original comment by<EMAIL_ADDRESS>on 23 May 2011 at 9:39

Would this patch not be better?
https://github.com/davisp/leveldb/commit/50e280c9b1cfde0e255d124f38e1aa436d36ba5
2

Original comment by<EMAIL_ADDRESS>on 23 May 2011 at 9:23

There are a couple lines in the Makefile that you need to change for OS X. The
CFLAGS variable needs to change as well as a change to the list of sources.
There's comments in the Makefile that are specific to what needs to happen.

Original comment by<EMAIL_ADDRESS>on 25 May 2011 at 8:25

Thank you, that worked (I also had to apply your log_test patch [1]).

What is the step following 'make' to actually build the library?

[1] http://code.google.com/p/leveldb/issues/detail?id=6

Original comment by<EMAIL_ADDRESS>on 25 May 2011 at 8:47

There is no library code yet on the Makefile. :(

Patches welcome.

Original comment by<EMAIL_ADDRESS>on 25 May 2011 at 8:53

Adding this to the Makefile:

    library: $(LIBOBJECTS)
	    ar rcs lib-leveldb.a $(LIBOBJECTS)

and calling 'make library' seemed to do the trick.

As a side note, adding -fvisibility=hidden to the CFLAGS seemed to get rid of
33 visibility warnings I was getting.

Original comment by<EMAIL_ADDRESS>on 25 May 2011 at 11:54

Original comment by<EMAIL_ADDRESS>on 16 Jun 2011 at 9:44

Changed state: Fixed

It seems this is fixed as of r29 - make runs without warnings or errors on
XCode 3 and 4.

Original comment by<EMAIL_ADDRESS>on 6 Jun 2011 at 8:55


Feat/dev support file load

Codecov Report

Merging #190 (09ebce2) into master (644e333) will increase coverage by 0.05%.
The diff coverage is 92.30%.

:exclamation: Current head 09ebce2 differs from pull request most recent head 323861e. Consider uploading reports for the commit 323861e to get more accurate results

@@            Coverage Diff             @@
##           master     #190      +/-   ##
==========================================
+ Coverage   85.47%   85.53%   +0.05%
==========================================
  Files          37       37
  Lines        3222     3242      +20
  Branches      901      910       +9
==========================================
+ Hits         2754     2773      +19
- Misses        437      438       +1
  Partials       31       31

Impacted Files
Coverage Δ

packages/cli-plugin-dev/src/index.ts
88.00% <92.30%> (+0.68%)
:arrow_up:

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 644e333...323861e. Read the comment docs.


Performance tweaks for larger solutions

Some performance tweaks for larger solutions when using the CLI tool.
This took my work solution from 15+ minutes to about 2 minutes.

@TheAngryByrd could you retry syncing with the main branch? I believe stuff will work after that.


Third party Key manager Implementation for Auth0

Describe your problem(s)
Implement the Third-party Key manager implementation to the Auth0 identity provider.

docs #https://github.com/wso2/docs-apim/pull/2050


Add chatbot feature to the website for the convenience of users

hi I'm Vishal, I think it should have a chatbot feature so that it can interact with the user easily and be able to convince well
can I work on this idea as Gssoc'21 Participant?

@WebVishal Thanks for opening this issue, but upon discussing with other mentors, we came to a conclusion that this feature doesn't seem much relevant to the project requirements. So I'm closing this issue. Please find some other issue to work on.


What is the procedure for adding my own Zephyr app?

Hello! I have zephyr and microROS working with the example apps, and now I would like to add my own custom application.
I see that create_firmware_ws.sh imports the board.repos file, which then pulls the zephyr_apps repo.
Is the best way to add my own application to replace that url with my own zephyr_apps repo? The issue with this approach is I would have to fork micro_ros_setup to edit create_firmware_ws.sh, which I would prefer not to in order to stay up to date.

Hello @CLansdaleBEC and @MS71, our way of creating a new app is just adding a new folder inside firmware/zephyr_apps/apps and adding the required files as explained here. You can take any of the other folders as an example.
I understand that if you want to have your own custom micro-ROS apps repo it would be fine to have an environment variable pointing to the place where the apps are located. If you see the build script for Zephyr and micro-ROS you can see that we are invoking west in order to build the app, and this command uses UROS_APP_FOLDER environment variable.
So, what do you think about conditionally setting UROS_APP_FOLDER in order to:

set it to the default location in the case that you have not provided an app location (let say something like UROS_CUSTOM_APP_FOLDER)
or, set it to UROS_CUSTOM_APP_FOLDER if you have provided it

Please give feedback about this and I will make the required changes.
By the way @MS71, we have not tested ESP32 with micro-ROS + Zephyr. It would be great to hear about your work in this way and if everything works as expected, creating a Pull Request contribution for integrating this support in the micro-ROS build system.

Yes I think a UROS_CUSTOM_APP_FOLDER optional argument makes a lot of sense. In my case I would like to separate my custom application from the firmware directory to separate it from the build process

Hi,
think using the UROS_CUSTOM_APP_FOLDER env variable approach is fine.
For the ESP32 use case, there are some important files (e.g. sdkconfig or partitions.csv) within the extension folder.
I would propose using the same approach for the extension folder too.
defining UROS_CUSTOM_APP_FOLDER will allow an external APP folder.
defining UROS_CUSTOM_EXT_FOLDER will allow an external EXT folder without any need for a APP folder. In this case "ros2 run micro_ros_setup configure_firmware.sh" is accepted without any or a dummy app argument.
I am not using ESP32 with Zephyr. I just have the same setup issue as reported by CLansdaleBEC.

Regarding the external app folder, I would keep the same approach used with our provided application set, that is, setting UROS_CUSTOM_APP_FOLDER to a path containing all the defined applications by the user, and then allowing, during micro_ros_setup's configuration step, to choose which application you want to compile, from the available application list. This way, we keep the same command structure used for the built-in application set case. I would suggest making the the necessary changes to https://github.com/micro-ROS/micro_ros_setup/pull/183 to adopt this behaviour.

Agreed with @jamoralp.
@MS71 @CLansdaleBEC, please check and test if possible this PR: https://github.com/micro-ROS/micro_ros_setup/pull/183.
Don't hesitate to include any change you require to  feature/custom_app_folder branch.
@MS71 I'm not sure about having understood your proposal of UROS_CUSTOM_EXT_FOLDER, could you please propose the desired changes to this feature/custom_app_folder branch?


refactor patching logic

This is a very early prototype of a refactoring I have in mind. Posting this here for CI :innocent:

The general functionality is there, but we still need to merge with main. Will send more PRs against this one to minimize the risk botching this.

The following PRs need to be ported:

[ ] #114
[ ] #115
[ ] #116
[ ] #117


Minimize unused memory allocated in DataChannel.readLoop.

See https://github.com/pion/webrtc/issues/1516
This patch preserves the semantics of the OnMessage handler and is more safe
but less efficient than the patch first described in #1516.
As expected, when run with GOMAXPROCS=1 there is opportunity for re-use and
syn.Pool is pure overhead.  As allocs/op increases due to sync.Pool overhead
but B/op and ns/op improve drastically.
$ git co datachannel.go && \
  got test -bench=DataChannelSend -run=XXX \
  -benchmem -cpu=1,2,4,8 -count=10 > original.txt
$ git co datachannel.go && git apply pool.patch && \
  go test -bench=DataChannelSend -run=XXX \
	-benchmem -cpu=1,2,4,8 -count=10 > patched.txt

$ benchstat original.txt patched.txt
name               old time/op    new time/op    delta
DataChannelSend      1.45µs ±35%    1.24µs ±40%      ~     (p=0.211 n=9+10)
DataChannelSend-2     885ns ±14%    2221ns ±44%  +150.87%  (p=0.000 n=10+9)
DataChannelSend-4    5.19µs ±15%    3.27µs ±16%   -37.13%  (p=0.000 n=9+10)
DataChannelSend-8    8.07µs ±22%    3.97µs ± 4%   -50.78%  (p=0.000 n=10+8)

name               old alloc/op   new alloc/op   delta
DataChannelSend      1.67kB ±72%    0.31kB ±12%   -81.55%  (p=0.000 n=9+10)
DataChannelSend-2    1.80kB ±21%    0.34kB ±14%   -81.14%  (p=0.000 n=10+8)
DataChannelSend-4    1.47kB ±14%    1.40kB ± 0%    -4.39%  (p=0.031 n=10+8)
DataChannelSend-8    2.18kB ±14%    1.45kB ± 0%   -33.57%  (p=0.000 n=9+8)

name               old allocs/op  new allocs/op  delta
DataChannelSend        6.00 ± 0%      6.80 ±18%   +13.33%  (p=0.008 n=8+10)
DataChannelSend-2      6.00 ± 0%      8.11 ±36%   +35.19%  (p=0.000 n=10+9)
DataChannelSend-4      7.00 ± 0%     37.00 ± 0%  +428.57%  (p=0.000 n=10+10)
DataChannelSend-8      7.70 ± 9%     39.00 ± 0%  +406.49%  (p=0.000 n=10+7)

Description
Reference issue
Fixes #...

@Sean-Der I've addressed all the CI issues I could but I'm not sure how the system is calculating the reduced coverage.  Perhaps it's that Benchmark tests aren't run.

@bshimc We unfortunately don't have any benchmark infrastructure. It would be really awesome if we did though! Do you have anything to automate catching memory/performance regressions?
I am fine with with merging this as is, and we can come back to it. If you are using Pion I would love to add you to the organization and get your help creating a better 'perf culture'. That and fuzz testing are our biggest misses right now.

The original patch in #1516 was a lot nicer without the extra copy.
As v3 is on the way and already has plenty of API changes like the Track interface,
could we add the requirement that OnMessage buffer be only used inside the callback?

Lets do it! @jsmouret  would you mind adding an entry to the 'v3.0.0' release notes for it?
Would you mind doing the original patch @bshimc? Sorry for the churn, I tend to be more cautious but I love seeing community excitement :)
I still would love to see if we could get some CI and start paying down performance debt.

@Sean-Der @jsmouret I appreciate the enthusiasm but I'd recommend holding off on making the aggressive change.  On further reflection the original patch supplied in the issue is poor API design that is begging to be accidentally misused.  The fundamental problem is that we're passing byte buffers around.  Performance sensitive APIs generally pass io.ReadCloser objects around to avoid allocations so I tried taking a page out of the http.Request.Body API where it's the user's responsibility to call .Close().  Most importantly, this allows the user to decide what the lifecycle of the allocated memory should be.  See https://github.com/pion/webrtc/compare/master...bshimc:readcloser for a working example.  Benchmarking that yielded results that suggest that my benchmark is flawed; there are basically no discernable differences between what's shipping now and the rlBufPool implementation in that branch.  I'll try to run a distributed load test to see if there are improvements because I no longer trust my synthetic Benchmark test. This is all along winded way of advising caution.  There are some gaps in my understanding of what's going on that I need to fill.
diff --git a/datachannelmessage.go b/datachannelmessage.go
index 1e3c63b..7cbafdf 100644
--- a/datachannelmessage.go
+++ b/datachannelmessage.go
@@ -1,10 +1,15 @@
 package webrtc

+import "io"
+
 // DataChannelMessage represents a message received from the
 // data channel. IsString will be set to true if the incoming
 // message is of the string type. Otherwise the message is of
 // a binary type.
 type DataChannelMessage struct {
        IsString bool
-       Data     []byte
+
+       // It is the caller's responsibility to close Data to release memory
+       // resources.
+       Data io.ReadCloser
 }
diff --git a/datachannel.go b/datachannel.go
index ba1269d..d44509d 100644
--- a/datachannel.go
+++ b/datachannel.go
@@ -3,6 +3,7 @@
 package webrtc

 import (
+       "bytes"
        "errors"
        "fmt"
        "io"
@@ -44,7 +45,7 @@ type DataChannel struct {
        // "blob". This attribute controls how binary data is exposed to scripts.
        // binaryType                 string

-       onMessageHandler    func(DataChannelMessage)
+       onMessageHandler    func(*DataChannelMessage)
        openHandlerOnce     sync.Once
        onOpenHandler       func()
        onCloseHandler      func()
@@ -260,13 +261,13 @@ func (d *DataChannel) onClose() {
 // in size. Check out the detach API if you want to use larger
 // message sizes. Note that browser support for larger messages
 // is also limited.
-func (d *DataChannel) OnMessage(f func(msg DataChannelMessage)) {
+func (d *DataChannel) OnMessage(f func(msg *DataChannelMessage)) {
        d.mu.Lock()
        defer d.mu.Unlock()
        d.onMessageHandler = f
 }

-func (d *DataChannel) onMessage(msg DataChannelMessage) {
+func (d *DataChannel) onMessage(msg *DataChannelMessage) {
        d.mu.RLock()
        handler := d.onMessageHandler
        d.mu.RUnlock()
@@ -311,11 +312,33 @@ func (d *DataChannel) onError(err error) {
        }
 }

+// See https://github.com/pion/webrtc/issues/1516
+// nolint:gochecknoglobals
+var rlBufPool sync.Pool
+
+type rlBuf struct {
+       *bytes.Reader
+       b [dataChannelBufferSize]byte
+}
+
+func (r *rlBuf) Close() error {
+       r.Reader = nil
+       rlBufPool.Put(r)
+       return nil
+}
+
 func (d *DataChannel) readLoop() {
        for {
-               buffer := make([]byte, dataChannelBufferSize)
-               n, isString, err := d.dataChannel.ReadDataChannel(buffer)
+               var b *rlBuf
+               if v := rlBufPool.Get(); v != nil {
+                       b = v.(*rlBuf)
+               } else {
+                       b = &rlBuf{}
+               }
+
+               n, isString, err := d.dataChannel.ReadDataChannel(b.b[:])
                if err != nil {
+                       rlBufPool.Put(b)
                        d.setReadyState(DataChannelStateClosed)
                        if err != io.EOF {
                                d.onError(err)
@@ -324,7 +347,8 @@ func (d *DataChannel) readLoop() {
                        return
                }

-               d.onMessage(DataChannelMessage{Data: buffer[:n], IsString: isString})
+               b.Reader = bytes.NewReader(b.b[:n])
+               d.onMessage(&DataChannelMessage{Data: b, IsString: isString})
        }
 }

If you are using Pion I would love to add you to the organization

Sure; I'm not able to make any concrete time or resource commitments (and I'm certainly not a domain expert in this area) but I'm happy to help where possible.  Feel free to add my alter ego (@bshi) to the organization.

As expected, the benchmark wasn't representative of what I was testing in issue #1516.  I've corrected that and the results for the fully compatible changes are quite good.  Notably, the original code hits a thresshold where performance falls off a cliff and this change smoothes out said cliff.
$ benchstat original.txt option1.txt
name                 old time/op    new time/op    delta
DSend2-8     20.3µs ±51%     3.7µs ± 6%   -81.74%  (p=0.000 n=10+10)
DSend4-8     23.5µs ±34%     3.6µs ± 8%   -84.80%  (p=0.000 n=10+8)
DSend8-8     18.9µs ±35%     5.8µs ±68%   -69.45%  (p=0.000 n=9+10)
DSend16-8    16.8µs ±30%    10.0µs ±24%   -40.77%  (p=0.000 n=10+10)
DSend32-8    710ms ±100%       0ms ±81%  -100.00%  (p=0.035 n=10+9)

name                 old alloc/op   new alloc/op   delta
DSend2-8     15.3kB ±89%     1.4kB ± 0%   -90.59%  (p=0.000 n=9+10)
DSend4-8     41.7kB ±63%     1.4kB ± 1%   -96.58%  (p=0.000 n=10+10)
DSend8-8     45.0kB ±33%     1.4kB ± 2%   -96.83%  (p=0.000 n=9+10)
DSend16-8    34.0kB ±69%     1.4kB ± 1%   -95.77%  (p=0.000 n=10+10)
DSend32-8   37.4MB ±388%     0.0MB ± 4%  -100.00%  (p=0.000 n=10+7)

name                 old allocs/op  new allocs/op  delta
DSend2-8       15.8 ±46%      38.6 ± 2%  +144.30%  (p=0.000 n=10+10)
DSend4-8       27.1 ±48%      38.0 ± 0%   +40.22%  (p=0.000 n=10+9)
DSend8-8       29.3 ±16%      38.0 ± 0%   +29.55%  (p=0.000 n=9+8)
DSend16-8      23.6 ±41%      37.0 ± 0%   +56.78%  (p=0.000 n=10+9)
DSend32-8    19.3k ±100%      0.0k ± 0%      ~     (p=0.178 n=10+7)

I recommend merging this in as is and then we can continue discussing further improvements in the issue.  In this latest PR update, I've also added -bench=. to the CI go test invocation to get coverage for the benchmark tests.  This just executes one run of the benchmark and shouldn't be considered useful for any kind of performance regression uses.

Merged with 159ba5aca3b96b85f7a653329102ea12046a1b1f
Thank you so much for doing this. Hopefully you can stay involved with Pion, we really need someone who can push us to better in this direction :)

@bshimc
The perf improvement here is really exciting! Check out examples/data-channels-flow-controls
before
2020/11/14 14:46:31 Throughput: 144.323 Mbps
2020/11/14 14:46:32 Throughput: 147.815 Mbps
2020/11/14 14:46:33 Throughput: 147.522 Mbps
2020/11/14 14:46:34 Throughput: 147.551 Mbps
2020/11/14 14:46:35 Throughput: 147.756 Mbps
2020/11/14 14:46:36 Throughput: 145.140 Mbps
2020/11/14 14:46:37 Throughput: 144.695 Mbps
2020/11/14 14:46:38 Throughput: 144.200 Mbps
2020/11/14 14:46:39 Throughput: 144.131 Mbps
2020/11/14 14:46:40 Throughput: 144.841 Mbps
2020/11/14 14:46:41 Throughput: 145.251 Mbps
2020/11/14 14:46:42 Throughput: 145.237 Mbps

after
2020/11/14 14:44:53 Throughput: 204.586 Mbps
2020/11/14 14:44:54 Throughput: 206.091 Mbps
2020/11/14 14:44:55 Throughput: 205.737 Mbps
2020/11/14 14:44:56 Throughput: 205.667 Mbps
2020/11/14 14:44:57 Throughput: 206.387 Mbps
2020/11/14 14:44:58 Throughput: 207.378 Mbps
2020/11/14 14:44:59 Throughput: 208.151 Mbps
2020/11/14 14:45:00 Throughput: 208.919 Mbps
2020/11/14 14:45:01 Throughput: 209.053 Mbps
2020/11/14 14:45:02 Throughput: 209.243 Mbps
2020/11/14 14:45:03 Throughput: 209.546 Mbps
2020/11/14 14:45:04 Throughput: 210.056 Mbps
2020/11/14 14:45:05 Throughput: 210.680 Mbps
2020/11/14 14:45:06 Throughput: 210.781 Mbps
2020/11/14 14:45:07 Throughput: 211.216 Mbps

Playing with that example it will sometimes bomb on throughput for me. It happens without your patch as well though :(


Edge Update blocks GoAwayEdge

After an Edge Update, the IFEO binary will get invalid.

Fixed in Version 1.0.2


Cmd4 causes non-responsive ness of other plugins

Describe The Bug:

Recent versions of Cmd4 causes non-responsiveness of other plugins
Previously, with identical config, these issues were not observed.
To Reproduce:

Setup an environment with a number of plugins from https://github.com/ebaauw, such as
https://github.com/ebaauw/homebridge-ws
https://github.com/ebaauw/homebridge-zp
https://github.com/ebaauw/homebridge-hue
These plugins report warnings if the network is unresponsive
Install and configure Cmd4 and restart Homebridge
Observe the homebridge logs: a lot of warnings of heartbeat drift occur
Disable the Cmd4 plugin and restart Homebridge
Observe that the homebridge logs now no longer shows heartbeat warnings
Enable the Cmd4 plugin and restart Homebridge
Observe that the homebridge logs is once again full of heartbeat warnings

An additional observation is that the Home appears much more responsive with Cmd4 disabled. Devices respond faster, and the instances of "Not responding" and "Updating" are reduced.
As an experiment, I reduced my configured cm4 items.
I noted that the more I reduce the configured items, the less warning issues were observed.
This indicates that Cmd4 might be using synchronous bash cmds, maybe a change to async may improve matters?
Link to Related Bug Report:
See this issue "Logs being flooded with heartbeat drift warnings for Hue and Weather plugins" which I opened on homebridge-hue: https://github.com/ebaauw/homebridge-hue/issues/969
Note the response written by @ebaauw
Expected Behaviour:

I expect Cmd4 to have no observational negative impact on network and device performance.
Previously it worked much better and such non-responsiveness was not observed.
 You have 5
devices which all the characteristics are being polled every 5 seconds. You
are probably taxing your system pretty heavily with so many processes
running so often, which would account for the drift.
So the fault is not really with Cmd4, though for you it certainly looks
that way. If you were happy with the previous response, change the interval
to 60.
You can also set the Cmd4_Mode to "Polled" or "FullyPolled"; not that this
will affect a switch much with only an "On" characteristic. Though "Name"
and "Manufacturer" are technically characteristics and would be asked to be
retrieved by IOS.
As per
https://ztalbot2000.github.io/homebridge-cmd4/autoGenerated/CMD4_AccessoryDescriptions.html#Cmd4_Mode

{ "Cmd4_Mode": "Always" } - All characteristic are sent/retrieved from
the device. ( Default )
{ "Cmd4_Mode": "Polled" } - Polled characteristics are retrieved from
the device. Non polled characteristic values are sent/retrieved from cache.
{ "Cmd4_Mode": "FullyPolled" } - All characteristics are retrieved
from cache. Polled characteristics are sent to the device. Expect any
characteristic to be updated via configuring polling.
{ "Cmd4_Mode": "Demo" } - All characteristics are sent/retrieved from
cache.

I don't know if your using Homebridge-config-UI, but you would probably
notice that the CPU load is much heavier.
I'll close this shortly as it is really just a configuration issue that you
got caught up in in an unfortunate way.
Ttyl,
John
On Sat, Apr 17, 2021 at 9:07 AM jsiegenthaler @.***>
wrote:

Assigned #107 https://github.com/ztalbot2000/homebridge-cmd4/issues/107
to @ztalbot2000 https://github.com/ztalbot2000.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/ztalbot2000/homebridge-cmd4/issues/107#event-4607918960,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSBCXY5GNSLP4HV22U4EGLTJGBXZANCNFSM43DB5SPQ
.

Thanks, that's very interesting.
You are right, CPU is at 50% with Cmd4 enabled, and 0% to 1% with it disabled.
Even when I have the interval set to 60, it still uses 50% CPU constantly.
It is unclear from the documentation what unit is used for the polling interval: I am assuming seconds, but I cannot find any documentation on it. Maybe is is millseconds?
I will disable Cmd4 for the meantime and consider how I can rework my homebridge setup to avoid such high CPU load.

Hmmm, interval is missing. I'll add it
On Sat, Apr 17, 2021 at 10:42 AM jsiegenthaler @.***>
wrote:

Thanks, that's very interesting.
You are right, CPU is at 50% with Cmd4 enabled, and 0% to 1% with it
disabled.
Even when I have the interval set to 60, it still uses 50% CPU constantly.
It is unclear from the documentation what unit is used for the polling
interval: I am assuming seconds, but I cannot find any documentation on it.
Maybe is is millseconds?
I will disable Cmd4 for the meantime and consider how I can rework my
homebridge setup to avoid such high CPU load.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ztalbot2000/homebridge-cmd4/issues/107#issuecomment-821833232,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSBCX7JEYP4FYGLX7G565TTJGM3ZANCNFSM43DB5SPQ
.

The documentation has now been updated too. Interval was there, but you had to look for it under "polling": { "characteristic": < characteristic >, "interval": < seconds >, "timeout": < msec > }
A number of directives are hierarchal in that you can not define them and get the default or define them in the upper platform section, the accessory section or polling section.  Each one supersedes the previous definition.  The documentation now reflects this as well.
interval has always been in seconds, timeout in msec. 60000 msec being a minute.
ttyl,
John

FYI:
I made my own plugin and ping my device once a second. CPU load is 0% to 1%.
Using Cmd4 to do the same thing, and CPU load is 50%

Good for you.  It sounds like you learned a lot. That is what really counts.
Ttyl,
John
On Wed, Apr 21, 2021 at 12:54 AM jsiegenthaler @.***>
wrote:

FYI:
I made my own plugin and ping my device once a second. CPU load is 0% to
1%.
Using Cmd4 to do the same thing, and CPU load is 50%
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/ztalbot2000/homebridge-cmd4/issues/107#issuecomment-823775015,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSBCXYZY4SBI5FB2HXGS33TJZK6RANCNFSM43DB5SPQ
.

Hi @jsiegenthaler do you happen to have published  that plug-in you created (if usable by anyone ofc)? I checked your profile and I wasn't able to see it.
@ztalbot2000 I checked the last update of cmd4 and it's about the same time of this discussion so it's not possible for me to know if you've implemented changes following this thread :/ Have you?
I'm currently using another Dummy accessories plugin and right now, my set up is down because of it, I'm assuming, so I can't even tel you the name of the plugin but I was getting the drift, peaks in CPU and had to reboot every other hour.  I could really use an update on CMD4 whilst getting rid of the former plugin
in advance, thanks !

Hi all,
It is interesting that I do not even remember the first issue. I did a
lot of work years ago for the AdvAir plugin that uses CMD4 to handle one
Set command at a time. During this I had proved multiple commands were
running at the same time. Certainly the script you execute and the interval
you have it updating the values is something you control. Polling can be
changed per characteristic.
I'll poke around Cmd4 and let you know. I do know that my personal
homebridge server has been running fine with multiple plugins for years.
ttyl,
John
On Thu, Feb 2, 2023 at 6:30 AM incline02 @.***> wrote:

Hi @jsiegenthaler https://github.com/jsiegenthaler do you happen to
have published that plug-in you created (if usable by anyone ofc)? I
checked your profile and I wasn't able to see it.
@ztalbot2000 https://github.com/ztalbot2000 I checked the last update
of cmd4 and it's about the same time of this discussion so it's not
possible for me to know if you've implemented changes following this thread
:/ Have you?
I'm currently using another Dummy accessories plugin and right now, my set
up is down because of it, I'm assuming, so I can't even tel you the name of
the plugin but I was getting the drift, peaks in CPU and had to reboot
every other hour. I could really use an update on CMD4 whilst getting rid
of the former plugin
in advance, thanks !
—
Reply to this email directly, view it on GitHub
https://github.com/ztalbot2000/homebridge-cmd4/issues/107#issuecomment-1413589963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSBCX2S5NGHJWKATKFPMNLWVOLEJANCNFSM43DB5SPQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

I am looking more at your issue. If you look at Cmd4PriorityPollingQueue.js
you will see that the state_cmd is run by:
const exec = require( "child_process" ).exec. It has been this way for a
long long time. Not to say that at one time it wasn't as I was
experimenting with concurrency..
The commands do not block the main node.js thread. exec also being the best
for returning small amounts of data, like on or off.
I did mention areas you could look at, like specifying interval or timeout
of each characteristic.  You could also run shellcheck ( depending on what
your script is written in) or something similar.
IF I can help you more, let me know.
John
On Thu, Feb 2, 2023 at 8:04 AM John Talbot @.***> wrote:

Hi all,
It is interesting that I do not even remember the first issue. I did a
lot of work years ago for the AdvAir plugin that uses CMD4 to handle one
Set command at a time. During this I had proved multiple commands were
running at the same time. Certainly the script you execute and the interval
you have it updating the values is something you control. Polling can be
changed per characteristic.
I'll poke around Cmd4 and let you know. I do know that my personal
homebridge server has been running fine with multiple plugins for years.
ttyl,
John
On Thu, Feb 2, 2023 at 6:30 AM incline02 @.***> wrote:

Hi @jsiegenthaler https://github.com/jsiegenthaler do you happen to
have published that plug-in you created (if usable by anyone ofc)? I
checked your profile and I wasn't able to see it.
@ztalbot2000 https://github.com/ztalbot2000 I checked the last update
of cmd4 and it's about the same time of this discussion so it's not
possible for me to know if you've implemented changes following this thread
:/ Have you?
I'm currently using another Dummy accessories plugin and right now, my
set up is down because of it, I'm assuming, so I can't even tel you the
name of the plugin but I was getting the drift, peaks in CPU and had to
reboot every other hour. I could really use an update on CMD4 whilst
getting rid of the former plugin
in advance, thanks !
—
Reply to this email directly, view it on GitHub
https://github.com/ztalbot2000/homebridge-cmd4/issues/107#issuecomment-1413589963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSBCX2S5NGHJWKATKFPMNLWVOLEJANCNFSM43DB5SPQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

@incline02 I no longer use this plugin. I made my own to control my TV.

Hi,
I'm more happy that you made your own plugin than you can imagine.
Teaching yourself something is the best thing a person can do.
Take care,
John
On Fri, Feb 3, 2023 at 1:30 PM jsiegenthaler @.***>
wrote:

@incline02 https://github.com/incline02 I no longer use this plugin. I
made my own to control my TV.
—
Reply to this email directly, view it on GitHub
https://github.com/ztalbot2000/homebridge-cmd4/issues/107#issuecomment-1416247410,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSBCXZATHGBPV4EBRTTKZDWVVFFVANCNFSM43DB5SPQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Fix typo

(I removed the template because this is just a small typo fix.)

Thanks for your contribution @WebSnke!!


refactor: use typescript

This PR converts the js library to TypeScript.
The index.d.ts added previously was mostly there, but the export wasn't implicitly typed and there were a few namings off.  The appInfo() method, for example, was typed as getAppInfo(). Also noticed the signSendChunkfunction was being passed an unused argument.
Let me know if there are any other config changes needed to get this working, or feel free to modify the PR yourselves.
Cheers

Thanks @kyranjamie I will merge it to dev branch so we can run it through all the CI tests


routing.http2.enabled does not work

Setting routing.http2.enabled=false in the alb attributes annotation does not work correctly.
Sometimes i set it to true, and the alb has http2 disabled.
Sometimes i set it to false, and the alb has http2 enabled.
In any case, when i succeed to set it to false, http2 is disabled for a few minutes and is reactivated a few minutes later.
Maybe a sort of cache issue...
Below are the controller logs, notice how it is reset to true after a while though i didn't change the ingress annotations :
I1101 18:55:12.539522       1 attributes.go:144] ingress/internet: Modifying ELBV2 attributes to [{    Key: "routing.http2.enabled",    Value: "true"  }].
I1101 19:23:09.220610       1 attributes.go:144] ingress/internet: Modifying ELBV2 attributes to [{    Key: "routing.http2.enabled",    Value: "false"  }].
I1101 19:55:10.642617       1 attributes.go:144] ingress/internet: Modifying ELBV2 attributes to [{    Key: "routing.http2.enabled",    Value: "true"  }].
I1101 20:42:08.725861       1 attributes.go:144] ingress/internet: Modifying ELBV2 attributes to [{    Key: "routing.http2.enabled",    Value: "false"  }].
I1101 20:55:12.355644       1 attributes.go:144] ingress/internet: Modifying ELBV2 attributes to [{    Key: "routing.http2.enabled",    Value: "true"  }].

/kunb bug

/woof

This is happening consistently to me as well, using v1.1.4, but with a different annotation.
When I first set the annotation alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=300, nothing happened.
Later, I set alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=360 (note the different timeout value), and the following was logged by the controller:
Modifying ELBV2 attributes to [{    Key: "idle_timeout.timeout_seconds",    Value: "300"  }].

I then set alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=300 once more and the following was logged:
Modifying ELBV2 attributes to [{    Key: "idle_timeout.timeout_seconds",    Value: "360"  }].

Further testing yielded the same results - the previous set of attributes are getting synced, not the current set of attributes.


lets find a way to run multiple entry points

reasons

compiling is way way faster since most of the time you can share a large part of the compilation proces
time tracking becomes easier to manage (instead of running 2 or 3 instances)

example
I have a project folder 2 entry points (a phone entry point and a tv) I want to develop them in tandem, now i run 2 gastons for it and this can become quite slow

this is going to take a lot of thinking and changing. I have some ideas...

I working with quite a few tests and I am constantly breaking everything , this feature would be a complete lifesaver :hankey:

this has been implemented already


JSON.minify is not a function

I'm currently using gulp-jade-lint to lint our Jade files. When I run the task, I'm getting this error:
[08:00:21] Starting 'lint:jade'...
[08:00:21] 'lint:jade' errored after 59 ms
[08:00:21] TypeError in plugin 'gulp-jade-lint'
Message:
    JSON.minify is not a function

Using the standalone jade-lint CLI, the linting does work properly. After some digging, I think I found out the cause:

gulp-jade-lint instantiates a new JadeLint
The "main" field in your package.json loads the lib/linter.js file
This file uses JSON.minify
This throws an error, because JSON.minify is undefined at this point. The only place where you define JSON.minify is in lib/config-file.js, which I assume does not get loaded when using the lib/linter.js file directly

This can be fixed by instantiating JSON.minify in the lib/linter.js file as well. I just tested this and it does work like it should, but I'm not sure if this is the way to fix it, or if this is even a problem on jade-lint's end. If it is, let me know if you want me to send over a PR. Thanks!

Hi, and thanks for raising. I've raised an issue on guld-jade-lint too (https://github.com/emartech/gulp-jade-lint/issues/2) and we'll get to the bottom of it

Can we live without JSON.minify? As i see it is not even necessary.

Very true. It was put in as a convenience should anyone wish to have comments in their config files. But I'll take it out

It's been removed in v2.1.0

Awesome, thanks for the super quick response!


Memory Error while reading for large files

I've a file with nearly 70M edges and it fails to load into memory on a machine with 32 GB ram

@RemyLau

I've a graph with 4.5M nodes and 80M edges. What is your rough estimate of running time on large graphs like this.

Hi @KarthikRevanuru , from my rough estimation, it should take no more than 20GB of memory to fully load and convert your graph into the CSR format, which is used as the final graph data structure. I have run some testing with a couple large biological networks (see bench repo). For example, SSN has roughly 72M edges with 800k nodes, and it uses ~10GB of memory throughout the execution of the program (see line 65 or line 71 in this benchmarking result table).
May I ask what mode of execution you are using (i.e. did you explicitly set --mode to PreComp or DenseOTF)?  In this case, since the network has a large number of nodes with very sparse connections, it is best to use SparseOTF (which is the default mode).

Thanks for quick revert @RemyLau
I'm using SparseOTF and I've used 32 GB ram but it throws error. On disk my input data size is 3.4 GB, it's stored as edge list.
I've taken a bigger instance and it seems to work. But it has printed only this since 6 hours.
Took 00:06:06.35 to load graph Took 00:00:00.00 to pre-compute transition probabilities
Do you have any estimates on running time ? Also I've enabled verbose mode and it didn't print anything regarding walks

Hmm.. What error are you seeing? It would be helpful if you can share the error log here.
From the log message you shared here, it only took 6 minutes to load the graph, which is a quite reasonable time for networks of this size. And since you're using SparseOTF, there's no preprocessing step, so 0 sec of preprocessing is expected. But I'm not sure why you only see this after 6 hours. If you look at the command-line interface, there's no other steps before loading graph.
https://github.com/krishnanlab/PecanPy/blob/6a0a73312b99ec476a4d397159becf5e210ab48f/src/pecanpy/cli.py#L202-L233

Error message is killed, after I took 64gb ram its fixed.
@RemyLau this is not printed after 6 hrs. Its printed within 6 min of running, but nothing after that since 6 hrs..

what's the expected time to generate walks and train embeddings

@KarthikRevanuru It honestly depends on a lot of factors, e.g. number of processors, CPU clock, memory clock, etc. But in your case, I'll say 6 hours would be the time where the random walk generation process is finished. So given these couple of clues, I think the issue might be caused by the large number of random walks generated. Previously in my case, although SSN network has roughly the same number of edges as yours, it has an order of magnitude less number of nodes (800k compared to 4.5M). The number of nodes does not affect the size of the sparse graph structure much, but it does affect the size of the corpurs generated (i.e. the random walks).
In particular, your killed error message may very likely be caused by exceeding memory usage from this line of code in the simulate_walks function, which convert the node index sequence into list of strings (of node ids).
https://github.com/krishnanlab/PecanPy/blob/6a0a73312b99ec476a4d397159becf5e210ab48f/src/pecanpy/node2vec.py#L149
This was done originally due to convenience when calling gensim.Word2Vec. I'll try to find an alternative solution where we don't need to convert to list of strings first, but instead, use the index sequence directly to save memory usage for specific cases like these (networks with large number of nodes). So keep posted.
In the meantime, if it is possible, try to further increase your memory allocation to, say 128GB, and see if that could resolve the issue.

Ok thanks !


BUG: ImportError when using numpy2

Issue Description
** Context **
With the new version of numpy 2.0.0, there is an issue in the initialization of the TreeExplainer. Here is my code :
** Code **
from shap import TreeExplainer
from xgboost import XGBClassifier
model = XGBClassifier()
explainer = TreeExplainer(model=loaded_models.model, model_output="raw")
** Error **
It returns the following error :
C extension was not built during install!
[...]
ImportError: numpy.core.multiarray failed to import.
** Patch to solve it quickly **
I needed to downgrade my version of numpy from 2.0.0 to 1.26.4 and it works.
I'll let you check if something is wrong with this new version of numpy.
Minimal Reproducible Example
from shap import TreeExplainer
from xgboost import XGBClassifier

model = XGBClassifier()
explainer = TreeExplainer(model=loaded_models.model, model_output="raw")

Traceback
No response
Expected Behavior
No response
Bug report checklist

[X] I have checked that this issue has not already been reported.
[X] I have confirmed this bug exists on the latest release of shap.
[X] I have confirmed this bug exists on the master branch of shap.
[X] I'd be interested in making a PR to fix this bug

Installed Versions
0.45.1

I can't reproduce this on master with an ubuntu machine. This also looks more like a numpy problem than a shap issue.

we have issues with our test suite on numpy2

we'll track numpy2 compatibility in this issue: #3707, therefore I close this issue


Minor tutorial docs improvement, minor import error quick fix.

minor changes to module import error handling and minor issues in tutorial documents.

Looks good generally.
It looks like the notebooks contain 2 TODO statements, should these be deleted?

Thanks for catching. One TODO is not fixed yet. I notice on the website there are no API document for SqliteSaver. But the API references seem to be generated not within the notebook. I wonder where should I look into to fix this?

@Robert-Jia00129  https://langchain-ai.github.io/langgraph/reference/checkpoints/#sqlitesaver

@Robert-Jia00129 https://langchain-ai.github.io/langgraph/reference/checkpoints/#sqlitesaver

Sorry for the confusion, I mean in the rendered website for this jupyter notebook (https://python.langchain.com/v0.2/docs/tutorials/qa_chat_history/), there are no API references to sqlitesaver.
I think all the API references are auto-generated (as they are not in Jupyter Notebook cells), so I wonder where should I look at to resolve this unreferenced API reference.

@Robert-Jia00129 ah if you'd like to do that, leave it for a separate PR
This is the code that generates api references. It doesn't catch any imports from langgraph right now
https://github.com/langchain-ai/langchain/blob/master/docs/scripts/generate_api_reference_links.py

Thanks. The TODOs are removed. And I'll update the API reference in another PR.

Thanks @Robert-Jia00129


unitcell: too thick

And the default color seems does not match well to the protein color.

There is a radius and a color parameter to change it. The defaults are meant to make the unitcell be clearly visible also in larger assemblies.

I see. Can NGL dynamically adjust based on system size?

Can NGL dynamically adjust based on system size?

In principle yes, but I think finetuning default parameters should be done on the application level to its needs and likings.

Agree. Close now. Thx.


Uninstaller listed as malware

Keybase GUI Version: 1.0.26-20170724101459+b095a79
The upd.exe process is reported as a malware by some antivirus:
https://www.virustotal.com/it/file/70b6675fac69b755dc716b1b6ee14617df15d340eb0aea7f91f3de120fcc603f/analysis/

Same on OSX, unconfirmed on Linux.

i just tested the keybase_i386.deb client installation package - so far, it seems clean
https://virustotal.com/en/file/de8ded63c444d82a0bf914f5b07bb3b094250249a8440d7cb86581e7e828b888/analysis/1501677173/
Also your scan only contains 4/64 positives - all of them are crappy generic heuristic errors caused by the fact that the program is making a connection to the internet.
FYI: Linux does not need uninstallers, since either an application is portable [deleting the folder uninstalls it], or it's a package that can be uninstalled with just a single line of code.
Only crappy operating systems without proper update mechanisms or package management [i.e. Windows] need uninstallers - at least when the software devs aren't using MSI files and don't want users to simply uninstall stuff using control panel -> software -> remove software.

upd is the updater, not uninstaller.
This is a duplicate of https://github.com/keybase/client/issues/7908


Update dependencies

Due to the fact that the old version of Newtonsoft.Json is used here, I have conflicting packages.Please update Newtonsoft.Json up to version 12+

The problem is solved, you need to bind the old versions of the assemblies to the new ones in app.config
https://docs.microsoft.com/en-us/dotnet/framework/deployment/how-the-runtime-locates-assemblies


Remove non-HTML reporters from built mocha.js

See https://github.com/mochajs/mocha/pull/1727, https://github.com/mochajs/mocha/issues/509 for details.
tl;dr: Right now the built mocha.js file includes all of the reporters, even though they aren't useful in the browser.
Seems like we should expose a browser plugin/reporter interface before we remove these, seems like we'll break https://github.com/metaskills/mocha-phantomjs/ otherwise.
cc/ @metaskills @nathanboktae

Yes removing the reporters will break mocha-phantomjs and mocha-casperjs - both use the compiled mocha.js and change the reporter as needed.
One thing to note too is mocha-phantomjs doesn't actually control the version of mocha. The user just points mocha-phantomjs at a flat file or server with their tests that has some version of mocha in it, so that makes life a bit tricker. mocha-casperjs does have control over it's version of mocha though. (Mocha runs in the phantomjs side in mocha-casperjs).
I've implemented ways to pull in 3rd party reporters for both projects (a bit different for both per differences in phantomjs vs the browser) - a bit hacky but it the mocha-phantomjs mechanism provides a way to require other reporters, namely the base reporter.
If per #509 the reporters were packaged separately, and this plugin mechanism was available in a robust, documented way where we could inject all the reporters included today and hook them up to the compiled version of mocha, that would work.
However the challenge is creating a a reporter that runs in node, the browser, and even phantomjs or another JavaScript environment. You can get there today with some "module magic dance" code, but perhaps we could help that situation out with a better plugin model / API.
Off the top of my head, it would look like this, for example:
(function(factory) {
  if (typeof require === 'function' && typeof module === 'object' && typeof exports === 'object') {
    // CommonJS environmnent (node, browserify, phantomjs)
    module.exports = factory(require('./Base'), require('moment'))
  } else {
    // another environment with the compiled version of mocha (e.g. Browser)
    mocha.reporter(factory(Mocha.reporters.Base, moment))
  }
})(function(Base, moment) {
  var myReporter = function MyCustomReporter() { /* ... */ }
  // ....
  return myReporter
})


Does this do hand and face

The demo show body capture but now face and hands.  Just wondering if this can also be converted from Openpose json files?

Not supported now.

You can change the initialization arguments of OpenPose to enable detection of face and hand 2D keypoints. 3D keypoints are not supported now.


04/11/2018 18:07 : Create Pull Request for branch master -> prTesting1_2018041118

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


merge MONDO_0000386 'digestive system neuroendocrine tumor, grade 1/2' with MONDO_0015078 gastroenteropancreatic neuroendocrine neoplasm

From GARD:
For this one, NCI uses “Digestive System Neuroendocrine Neoplasm” but gastroenteropancreatic neuroendocrine neoplasm is included as a synonym.  Again, I think that for this term we should follow NCI.  We have this one as “Gastro-enteropancreatic neuroendocrine tumor”.  https://ordrportal.ncats.nih.gov/ManageDiseases/AddEditDisease.aspx?DiseaseId=2437

Action items:

[ ] merge MONDO_0015078 gastroenteropancreatic neuroendocrine neoplasm with MONDO_0024503 'digestive system neuroendocrine neoplasm'
[ ] remove comment from 'digestive system neuroendocrine tumor, grade 1/2'


Expose breakpointMap

Why?
We'd like to access the breakpoint values directly on apps, as we've currently got a magic number in our CSS: width: 1300px. In the past it's been useful to reference breakpoint widths by name in situations like this, to make the CSS clearer.
@SiAdcock @zeftilldeath is this:

Something that you're ok for the design system to do?
The correct place to be exposing this?

Changes

Exposed a map of the seven breakpoints { [name]: numericValue } from media-queries.

Thanks @JamieB-gu! I've published this as v0.2.3. Let me know if you need anything else


unfreezed layernorms of Bert encoders in houlsby architecture

According to Houlsby's paper, during adapter tuning, the layer normalization layers of BERT encoders should be trained on the downstream task.

I found that the trainable layer normalizations in the Housbly's architecture are new and in addition to the BERT's layer normalizations. So, I closed this pull request.


Rename J.VariableDeclarations.Padding Vars to Variables

Closing this PR for now.. it depends on the next rewrite release


Azure AD Patch request issues

Hey, Azure posts the following when trying to PATCH a user:
{
"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations":[{
        "op":"Add","path":"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
        "value":"45619541-95de-4d5e-9872-571b5d2c5577"}]
}

We are unable to parse and the get following error from go-scim:
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:Error"
    ],
    "status": 400,
    "scimType": "invalidPath",
    "detail": "invalidPath: error compiling path"
}

I think the issue might be that manager is a complex attribute under the enterprise schema, but is sent over with a simple ID.
Do you know if this is a bug in go-scim of if we should format the PATCH request differently? Can you provide an example of what this request should look like so it works in go-scim.
Best Regards!
Plamen

Same thing happens with the employee number field.
{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"Add","path":"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber","value":"6546579"}]}
This is not a complex field, so this leads me to believe that we're just not processing the path correctly

After digging some more it seems that the path compiler does not like the colons (:) in the path name -- it's not clear to me what I should do about it though. I suspect the (.) may trip it up as well. Any advice would be welcome!

@plamenGo looks like a very legit request, will take a look at this the day after.


Three Different Branches

I am not sure that but I think we don't need branches. So only main should be kept.

Actually those branches I have to test something :)

ohk.. no problem.


Feature Request: Rotation

I consider adding a Rotation property to the AcqInfo.
The getter would return a scipy.spatial Rotation  from slice_dir, phase_dir and read_dir, the setter set these from a Rotation.
Even though it is just a one-liner, it could be useful for other to avoid many different ad-hoc implementations dealing with the rotation angles etc..
Or is this unnecessary and the directions are deemed enough as an interface?

I started to implement a pytorch version of Rotation that also works with our axis name order and tensors.
Some of the conversions will not be differentible and happen on cpu. For example, the conversion from a rotation to Euler angles. Reimlementing this in pytorch is IMHO currently not worth the effort and I would call into scipy. I will issue a warning if the conversation is called with a tensor that requires gradients.
Once this is done, we can decide if we want to have it in mrpro.utils, and if yes, we we want to use it in AcqInfo.


trim deb

Trim logic from deb:

dpkg now only installs on disk the binary to bootstrap datadog installer
postrm and prerm keep their wipeout function: prerm calls the bootstrap to trigger an uninstall, postrm removes the directories

/merge --priority urgent


Update dependencies and translations to the most recent versions

The commit messages contain more details about the individual changes.
Fixes #17928.

/botio-linux preview

/botio test


Log out dlopen errors.

https://github.com/openxla/iree/issues/12369#issuecomment-1445267161 Here is what dlerror() returns in an iOS Simulator.


Develop sanjib

Create GUI for Sign Up Task #47
Create GUI for Sign In Page Task #51
Note:
Sign Up & Sign In page after
-removing model from the page
-changing to form action
-adding required to the concerned fields

Looks good!


Is there any plan to open source the imae-to-video model and related code?

Hi, Thanks for your amazing work! May i ask is there any plan to open source the image-to-video model and related code?

Thanks for your interest. Our current code supports both image and text inputs simultaneously. When only an image is input, it functions as an image-to-video model, but the quality of the generated video may degrade.

I have a question. When only an image is input,  how should the input text be set? Can it be set to null? How does text cross attention work?
Thanks a lot.

the input text will be set to "" (Empty string). At this time, all T5 tokens are padding tokens, which means they do not function as text. Of course this will drastically reduce the quality of the generated video

Thanks.


Sandcastle doesn't always alphabetize gallery

This happens intermittently when loading Sandcastle

I'm looking at this one now.


MySQL container configuration

Currently there is no way to configure the username/password/database name of the MySQLContainer. And one cannot even do it using withCreateContainerCmdModifier because e.g. org.testcontainers.containers.MySQLContainer#getUsername returns hard-coded value

See #400 for a possible solution to this problem.


refactor: gateway-client

Remove errors originating solely from the util: they should not be
part of the API. In fact, all of this code should not be part of
production, however this will be dealt with in an upcoming refactor
that create a dedicated integration tests crate.

Use reqwest instead of hyper --- it is a more high-level library, so
less boilerplate.

Split up add_tx into three operations, sending, asserting status
code, and asserting expected value. The DuplicateTransaction use-case
will be added soon, and will require asserting for a different
status-code. The assertion was added to reduce boilerplate in the
test.

Note: no need to pass through utf-8, since Bytes supports comparison
with &str.

Stack:

#177 ⬅
#176

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

This change is

Codecov Report
Attention: Patch coverage is 95.83333% with 1 lines in your changes are missing coverage. Please review.

Please upload report for BASE (spr/main/49254d6a@0cb3a44). Learn more about missing BASE report.

Files
Patch %
Lines

crates/gateway/src/gateway_client.rs
95.83%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@                 Coverage Diff                  @@
##             spr/main/49254d6a     #177   +/-   ##
====================================================
  Coverage                     ?   51.49%
====================================================
  Files                        ?       22
  Lines                        ?      870
  Branches                     ?      870
====================================================
  Hits                         ?      448
  Misses                       ?      398
  Partials                     ?       24

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Remove unnecessary interface modifiers.

Modifiers 'public' and 'abstract' are redundant for interface methods.
Modifiers 'public', 'static', and 'final' are redundant for interface fields.

Redundant perhaps but not harmful either. While I do not wish to be discouraging, I don't see the added value of this PR, and accepting it for the sake of encouragement seems dishonest.


maint: allow user to specify duration to wait for grafana to start #306

Closes #306

This role has been deprecated in favor of a the grafana-ansible-collection collection.


Flip the backend for one day to use the prioritised lists

Make a flip of the backend for one day on the existing API endpoint and measure how well it will work

This has been done.


Is this working?

Seeing this is v0.1.0 according to npmjs, I wasn't really sure if this was working but from https://antelle.github.io/keeweb/ , I figured it had to. However, I haven't been able to succesfully get this to even load.
Loading kdbxweb/dist/kdbxweb.js on chrome returns an error:
Uncaught SyntaxError: Invalid regular expression: /[-.0-9A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFDÂ·Ì€-Í¯\ux203F-â€]/: Range out of order in character class
and trying to use "require(kdbxweb)" also returns an error:
module.js:338
throw err;
^
Error: Cannot find module 'arraybuffer-slice'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object. (c:\Users\sgarcia\code\my-keepass\node_modules\kdbxweb\lib\format\kdbx.js:3:1)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
Are there any demos on how to get this to work? Thanks

Hello! Yes, it should be working.
It's can be loaded successfully in https://antelle.github.io/keeweb/ and in node.js (see the build on travis).
How are you trying to load it, which loader did you use? It looks like encoding trouble.
About node environment: please, try to load the file itself: node --eval "require('./dist/kdbxweb')" - for me, it works ok.

Your chrome example worked perfectly using the cdn at https://cdn.rawgit.com/antelle/kdbxweb/master/dist/kdbxweb.js . I just switched out the dist/kdbxweb.js for that and it loaded without issues, how strange...but thanks!
I think I'll skip the node version for now since I was primarily wanting to use this with browserify to run it on the browser. Either way, do you have any kind of todos you might need help with? Maybe with more documentation?
I just found quite a big lack of decent keepass javascript api's and with lastpass's recent infiltration and purchase by logme inm and 1password's pretty high prices, Keepass needs even more applications to make it more popular, and helping this api grow seems a step in the right direction

I fugured it out: version in npm had bad dependency, and you were installing from npm. Fixed in be0c58a8dab87601833b2915db10c5be5206674f (0.1.19), thanks for this!
Now it loads ok, please check. A quick example is in readme: https://github.com/antelle/kdbxweb#usage but yes, the documentation is not so good yet, I'll try to write more docs to make it more friendly.
Exactly for this core library I have implemented almost all features (some of them need testing though). I've used this in a commercial project but there was used only basic functional: loading, reading entries. More advanced examples - like writing binaries, ... - likely to have bugs in them and should be tested. I'm planning to test them with my KeePass GUI project, https://github.com/antelle/keeweb

Closing as resolved, as it's loading for me. If it still doesn't help for you - please, reopen.

Oh alright, that's awesome. I already checked keeweb and it's pretty sleek looking. I was hoping to build a port of it with material design and ionic (current android app offerings are very ugly/lack a lot of features).
If you don't mind contributions, it would be nice to add a contributing section with things that need doing, even if it's only with things like documentation and more examples, that way you can focus on more important things. Either way, best of luck!

Thanks, I'll add contributing section.
I agree, current mobile apps looks ugly, as well as all mac osx ports existing now - that's why I've decided to create a javascript port hoping that it's easer to develop and style than a native app.
My plans for this webapp include mobile app and webapp (I've already created a desktop app with electron). Good luck with your port! If you'll find some missing features in the library - please, don't hesitate to open an issue or pullreq.


Logo Link to current language

If we click on the on the logo icon we navigate back to the index page of the default language. is there an possibility to go back to the index page of the current language?
i think that would provide a better ux for end users.

Hello @ChrisBlankDe
Ofc it is possible, I've opened a PR #111 to address this.
If that's possible for you, please test it, else I'll just merge since I added and checked this works with tests ;)


Localization of template names

Currently the templates aren't localized, see TemplateWindow::CheckTemplates() and Globals.cpp's EnsureTemplates().
Edit: Oh, and they should also be sentence-case, I suppose.

No real need to change them to sentence case AFAIK.
For translations, best way to do this is just the name of the project rather than all the files for now, so I'll add a NAME_en_GB style tag to the TEMPLATEINFO file for each template.
If people want fully translated templates they can now do this by creating their own hpkg that drops the resultant folder (which must have a TEMPLATEINFO file too) in to /boot/system/develop/Paladin/Templates/ .
Any obvious issues with this approach?


"Module not found:Error: Can't resolve ... Parsed request is a module" for electron in got

Do you want to request a feature or report a bug?
Report a bug.
What is the current behavior?
I have an Ionic project that uses the (node) package trakt.tv that uses the package got. Ionic builds projects with @ionic/app-scripts which uses webpack. Webpack unfortunately doesn't like got require()ing electron in the code but not having it as a dependency:
PS C:\Users\Jan\Documents\yatsa> npm run ionic:build

><EMAIL_ADDRESS>ionic:build C:\Users\Jan\Documents\yatsa
> ionic-app-scripts build

[11:54:01]  ionic-app-scripts 2.0.2
[11:54:01]  build dev started ...
[...]
[11:54:06]  webpack started ...
[11:54:06]  copy finished in 4.72 s
[11:54:18]  ionic-app-script task: "build"
[...]
Error: ./node_modules/got/index.js
Module not found: Error: Can't resolve 'electron' in 'C:\Users\Jan\Documents\yatsa\node_modules\got'
resolve 'electron' in 'C:\Users\Jan\Documents\yatsa\node_modules\got'
  Parsed request is a module
  using description file: C:\Users\Jan\Documents\yatsa\node_modules\got\package.json (relative path: .)
  after using description file: C:\Users\Jan\Documents\yatsa\node_modules\got\package.json (relative path: .)
    resolve as module
      looking for modules in C:\Users\Jan\Documents\yatsa\node_modules
        using description file: C:\Users\Jan\Documents\yatsa\package.json (relative path: ./node_modules)
          Field 'browser' doesn't contain a valid alias configuration
        after using description file: C:\Users\Jan\Documents\yatsa\package.json (relative path: ./node_modules)
          using description file: C:\Users\Jan\Documents\yatsa\package.json (relative path: ./node_modules/electron)
            no extension
              Field 'browser' doesn't contain a valid alias configuration
              C:\Users\Jan\Documents\yatsa\node_modules\electron doesn't exist
            .ts
              Field 'browser' doesn't contain a valid alias configuration
              C:\Users\Jan\Documents\yatsa\node_modules\electron.ts doesn't exist
            .js
              Field 'browser' doesn't contain a valid alias configuration
              C:\Users\Jan\Documents\yatsa\node_modules\electron.js doesn't exist
            .json
              Field 'browser' doesn't contain a valid alias configuration
              C:\Users\Jan\Documents\yatsa\node_modules\electron.json doesn't exist
            as directory
              C:\Users\Jan\Documents\yatsa\node_modules\electron doesn't exist
[C:\Users\Jan\Documents\yatsa\node_modules\electron]
[C:\Users\Jan\Documents\yatsa\node_modules\electron.ts]
[C:\Users\Jan\Documents\yatsa\node_modules\electron.js]
[C:\Users\Jan\Documents\yatsa\node_modules\electron.json]
[C:\Users\Jan\Documents\yatsa\node_modules\electron]
 @ ./node_modules/got/index.js 45:20-39
 @ ./node_modules/trakt.tv/trakt.js
 @ ./src/services/trakt.service.ts
 @ ./src/app/app.module.ts
 @ ./src/app/main.ts
    at new BuildError (C:\Users\Jan\Documents\yatsa\node_modules\@ionic\app-scripts\dist\util\errors.js:16:28)
    at callback (C:\Users\Jan\Documents\yatsa\node_modules\@ionic\app-scripts\dist\webpack.js:119:28)
    at emitRecords.err<EMAIL_ADDRESS>s:263:13)
    at Compiler.emitRecords (C:\Users\Jan\Documents\yatsa\node_modules\@ionic\app-scripts\node_modules\webpack\lib\Compi
ler.js:369:38)
    at emitAssets.err<EMAIL_ADDRESS>:256:10)
    at applyPluginsAsyncSeries1.err (C:\Users\Jan\Documents\yatsa\node_modules\@ionic\app-scripts\node_modules\webpack\l
ib\Compiler.js:362:12)
    at next (C:\Users\Jan\Documents\yatsa\node_modules\tapable\lib\Tapable.js:154:11)
    at Compiler.compiler.plugin (C:\Users\Jan\Documents\yatsa\node_modules\@ionic\app-scripts\node_modules\webpack\lib\p
erformance\SizeLimitsPlugin.js:99:4)
    at Compiler.applyPluginsAsyncSeries1 (C:\Users\Jan\Documents\yatsa\node_modules\tapable\lib\Tapable.js:158:13)
    at Compiler.afterEmit (C:\Users\Jan\Documents\yatsa\node_modules\@ionic\app-scripts\node_modules\webpack\lib\Compile
r.js:359:9)
[...]

Here the relevant part (I think) again:
Module not found: Error: Can't resolve 'electron' in 'C:\Users\Jan\Documents\yatsa\node_modules\got'
resolve 'electron' in 'C:\Users\Jan\Documents\yatsa\node_modules\got'
  Parsed request is a module

Now got doesn't have electron in package.json, that is correct.
In normal execution it doesn't even use electron, and if I understood that correctly it only has some special config option that includes and uses electron (which then is to be though to be installed by the using project or globally):
https://github.com/sindresorhus/got#useelectronnet
https://github.com/sindresorhus/got/blob/c0c6bcf1acb7132356d5fdddcf757466071799f4/index.js#L44-L46
As I don't use electron and don't have useElectronNetset, this shouldn't be relevant to me. Webpack should not try to load electron and crash when it can't find it.
If the current behavior is a bug, please provide the steps to reproduce.

ionic start electrontest blank
cd .\electrontest\
npm install trakt.tv
Add import * as Trakt from 'trakt.tv'; to home.ts
Add private trakt = new Trakt(); directly after export class HomePage { in home.ts
npm run ionic:build

Workaround to see that present electron solves the problem: npm install electron --save-dev
What is the expected behavior?
No crash, as electron is not used in the code.
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Relevant parts of ionic info:
    @ionic/cli-utils : 1.5.0
    Ionic CLI        : 3.5.0

    @ionic/app-scripts              : 2.0.2
    @ionic/cli-plugin-cordova       : 1.4.1
    @ionic/cli-plugin-ionic-angular : 1.3.2
    Ionic Framework                 : ionic-angular 3.5.0

    Node       : v8.1.3
    OS         : Windows 10
    npm        : 5.1.0

You probably didn't set the target option to electron...

@sokra Is there any way I can tell Webpack to ignore the require? Preferably inline in the Got code. Maybe with some kind of directive comment. I'm tired of getting Webpack related bug reports like these on my projects.

Sadly neither the CommonJS nor the ESM spec has "optional" requires/imports.
For the browser builds you can specify:
"browser": {
  "electron": false
}

in package.json. webpack will ignore the electron dependency in this case.

Sorry @sokra, I don't understand what you mean. Should somethin be added to https://github.com/ionic-team/ionic-app-scripts/blob/master/config/webpack.config.js (target elctron? web?)? Or should I set the browser.electron = false in my package.json?

Sorry of the confusion. @janpio At first I assumed you are using electron and wondered why the electron require doesn't work, but this doesn't seem to be the case. You ain't using electron, but one of your dependencies (optionally) depend on it. You can fix this by adding the IgnorePlugin to your configuration and ignoring the electron dependency.
The second comment was addressed to @sindresorhus (who is the package author). The package author can also ignore dependencies in browser build by adding the "browser" field to the package.json. https://github.com/defunctzombie/package-browser-field-spec#ignore-a-module


feat: 36s slots and non-devnet

Continuing on #7850 to try out AZTEC_SLOT_DURATION of 36 seconds without the devnet flag.
Had an issue with some tests stalling in the middle of a slot. And since automine is on, we would just never progress time so it does not get "unstuck" from it. This would often happen in the fee tests, where we are minting funds and doing all kinds of things on L1, meaning that the time of that chain will keep changing.
To address the issue, I'm committing war-crimes again. When we reach processL2Block we will check if willSimulationFail is true, if so, we will try to commitTimeJump if that fails we will return early, otherwise we should be good to simulate again. A reference to issue 8110 is also added.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#8148  👈
#8134
#8133
#8122
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @LHerskind and the rest of your teammates on  Graphite

Benchmark results
Metrics with a significant change:

protocol_circuit_simulation_time_in_ms (private-kernel-tail-to-public): 665 (-52%)
avm_simulation_time_ms (Token:mint_public): 69.9 (+54%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,749
1,566
715
767 (-1%)
774

proof_construction_time_sha256_30_ms
11,473 (-1%)
3,094
1,384
1,435 (-1%)
1,456 (-1%)

proof_construction_time_sha256_100_ms
44,200 (-1%)
11,933
5,528 (+1%)
5,511 (-2%)
5,702 (-1%)

proof_construction_time_poseidon_hash_ms
78.0 (-1%)
34.0
34.0
58.0 (+2%)
88.0 (+1%)

proof_construction_time_poseidon_hash_30_ms
1,532
422
203
225
272 (-1%)

proof_construction_time_poseidon_hash_100_ms
5,647 (-1%)
1,514
675
728
751 (+1%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,324
7,844
14,852

l1_rollup_calldata_gas
49,624
92,366
177,368

l1_rollup_execution_gas
1,375,977
2,109,615
3,894,673

l2_block_processing_time_in_ms
255 (-2%)
452 (+3%)
812

l2_block_building_time_in_ms
9,317 (+4%)
17,611
36,370 (+4%)

l2_block_rollup_simulation_time_in_ms
9,316 (+4%)
17,610
36,370 (+4%)

l2_block_public_tx_process_time_in_ms
7,869 (+4%)
16,096 (+1%)
34,798 (+4%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
2,975 (+5%)
3,904 (+1%)

node_database_size_in_bytes
12,607,568
16,666,704

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Circuit
simulation_time_in_ms
witness_generation_time_in_ms
input_size_in_bytes
output_size_in_bytes
proving_time_in_ms

private-kernel-init
84.7 (-5%)
400 (+1%)
21,755
44,860
N/A

private-kernel-inner
170 (+3%)
709 (+1%)
72,566
45,007
N/A

private-kernel-reset-tiny
460
873
65,675
44,846
N/A

private-kernel-tail
195
159 (+1%)
50,686
52,257
N/A

base-parity
5.62
N/A
160
96.0
N/A

root-parity
35.6
N/A
73,948
96.0
N/A

base-rollup
2,791 (+1%)
N/A
189,136
664
N/A

root-rollup
40.5
N/A
58,173
716
N/A

public-kernel-setup
84.6 (-1%)
N/A
105,085
71,222
N/A

public-kernel-app-logic
97.8 (+2%)
N/A
104,911
71,222
N/A

public-kernel-tail
563 (+1%)
N/A
410,534
16,414
N/A

private-kernel-reset-small
461 (+1%)
N/A
66,341
45,629
N/A

private-kernel-tail-to-public
:warning: 665 (-52%)
651 (+1%)
460,796
1,825
N/A

public-kernel-teardown
82.6 (-1%)
N/A
105,349
71,222
N/A

merge-rollup
20.2 (-2%)
N/A
38,174
664
N/A

undefined
N/A
N/A
N/A
N/A
78,006 (-1%)

Stats on running time collected for app circuits

Function
input_size_in_bytes
output_size_in_bytes
witness_generation_time_in_ms

ContractClassRegisterer:register
1,344
11,731
345 (+1%)

ContractInstanceDeployer:deploy
1,408
11,731
18.4

MultiCallEntrypoint:entrypoint
1,920
11,731
406

FeeJuice:deploy
1,376
11,731
388

SchnorrAccount:constructor
1,312
11,731
76.4 (+1%)

SchnorrAccount:entrypoint
2,304
11,731
399

Token:privately_mint_private_note
1,280
11,731
104 (+2%)

FPC:fee_entrypoint_public
1,344
11,731
29.0 (+4%)

Token:transfer
1,312
11,731
246 (+6%)

Benchmarking:create_note
1,344
11,731
86.2 (-1%)

SchnorrAccount:verify_private_authwit
1,280
11,731
28.0 (+1%)

Token:unshield
1,376
11,731
529 (+1%)

FPC:fee_entrypoint_private
1,376
11,731
708

AVM Simulation
Time to simulate various public functions in the AVM.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
55.5 (-1%)
7,739

FeeJuice:set_portal
11.3 (+2%)
2,354

Token:constructor
82.7 (+1%)
26,051

FPC:constructor
53.8 (+1%)
18,001

FeeJuice:mint_public
39.4 (-1%)
5,877

Token:mint_public
:warning: 69.9 (+54%)
10,917

Token:assert_minter_and_mint
48.0 (-28%)
7,512

AuthRegistry:set_authorized
39.1 (+5%)
4,391

FPC:prepare_fee
247 (+8%)
7,043

Token:transfer_public
22.2 (+17%)
39,426

FPC:pay_refund
54.1 (+1%)
10,234

Benchmarking:increment_balance
937
6,563

Token:_increase_public_balance
41.5 (-20%)
8,433

FPC:pay_refund_with_shielded_rebate
67.8 (-15%)
10,783

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.155 (-6%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.16 (-1%)
3.87 (-3%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.112 (-1%)
0.109 (-3%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.6 (-1%)
17.6
30.5 (-2%)
59.4 (+2%)
114 (+1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.111 (-1%)
0.102
0.0993 (-2%)
0.102 (+2%)
0.102

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.6 (-1%)
25.4 (-2%)
43.3 (-1%)
82.7
163 (+1%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.111 (-1%)
0.102 (-2%)
0.100 (-5%)
0.103 (+1%)
0.102 (+1%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.6 (+1%)
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
132
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.106 (+1%)
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
64,779
668,997

Transaction size based on fee payment method
| Metric |  |
| - |  |


Add /chucknorris command using Chuck Norris API

Command Name
/chucknorris
Public API Resource
https://api.chucknorris.io/jokes/random/
Description
Give you a random Chuck Norris joke.
Implementation Details

Add a new javascript file in the commands folder
Use axios fetch the data from your public API
Format the data in a readable way and send it to the user
Use the discord.js docs to get started

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hey, @JuriKae! thank you for opening this issue.
Unfortunately we already have an open issue with this public api ressource #60.


Custom kitti2bag.py not working

I am unable to create more bag files using the custom kitti2bag.py script. I am running noetic on Ubuntu 20.04 LTS with Python 3.8.5
progressbar was giving me issues, but I fixed them by switching to tqdm, this is superficial though. When I try and create more bag files using the process in the README file I get the following error:
Traceback (most recent call last):
  File "kitti2bag.py", line 422, in <module>
    save_velo_data(bag, kitti, velo_frame_id, velo_topic)
  File "kitti2bag.py", line 262, in save_velo_data
    pcl_msg = pcl2.create_cloud(header, fields, scan)
  File "/opt/ros/noetic/lib/python3/dist-packages/sensor_msgs/point_cloud2.py", line 164, in create_cloud
    pack_into(buff, offset, *p)
struct.error: required argument is not an integer

I am raising an issue here rather on the kitti2bag repo because I suspect it has something to do with the modifications to the LiDAR data

Hi @HMellor
I saw that you're running LIO-SAM on the Ubuntu 20.04 with ROS Noetic. May i ask, how you compile the gtsam-4.0.2 on Ubuntu 20.04?
Best,
Samuel

Hi @HappySamuel,
I've been using gtsam-4.0.3 built using the build instructions on the gtsam website. The only change I had to make was to use sudo make install instead of make install because I had a permission denied error otherwise.
If you don't need to build from source, the gtsam get started page says that there is a published binary for Ubuntu 20.04, so you could use that instead.

good day, have the bug already been fixed? may I ask how?


Allow itest_service to not be started at "boot"

The use case is for testing cron jobs. The ask is to not start a specific itest_service to allow the service_test to exclusively start it through svcctl.
This allows to properly setup the environment from the service_test itself before the "job" starts and the assert on the execution.

Yep this has been on my wishlist but not implemented yet. One thing to think through is the behavior when a non-deferred service depends on a deferred one (and how deps work here in general, I think we may have punted on that for the Start rpc). You interested in giving it a shot?

Non-deferred service depending on deferred services doesn't make sense.
We could probably even do that in Starlark at analysis time.
As for deferred services depending on other deferred services, this could be validated when calling the /start endpoint and validate that all dependencies are currently running.
Wdyt ?

Sounds good to me!


Reorg use of pony-semver library as a submodule

We currently have a copy of the core of https://github.com/btab/pony-semver library as package within Corral. We should propagate our changes back upstream, and change Corral to use this library via a git submodule.
We can use @btab's library directly and have him add a release tag for us. Or, we could use my fork https://github.com/cquinn/pony-semver.

Refactored layout and tagged: https://github.com/btab/pony-semver/releases/tag/v0.1
Let me know if anything is still a pain to integrate.


Use new null part syntax for ffmpeg remote part

Since Snapcraft 2.43 it's now possible to specify building a part
without listing it in an existing part's after clause, which may cause
the depending part been unnecessarily clean due to the dependency.
Refer https://github.com/snapcore/snapcraft/pull/2153 for more info
about the syntax.
Signed-off-by: 林博仁(Buo-ren, Lin<EMAIL_ADDRESS>

Thanks!


Switch Eager vs Lazy method signatures

Eager should be default, lazy should be specified. Re: JSON.NET API surface.

Just deprecate the eager method, the whole API surface will be eager. Laziness can be achieved using the single serialize method and yield.


fix: stringify log field value

stringify all log filed value

Codecov Report

Merging #248 into master will decrease coverage by 0.03%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #248      +/-   ##
==========================================
- Coverage    80.6%   80.56%   -0.04%
==========================================
  Files         190      190
  Lines        6423     6426       +3
  Branches      875      877       +2
==========================================
  Hits         5177     5177
- Misses        858      859       +1
- Partials      388      390       +2

Impacted Files
Coverage Δ

packages/metrics/src/util/TraceUtil.ts
81.25% <0%> (-18.75%)
:arrow_down:

Continue to review full report at Codecov.

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


Rename LFC variable in basicStyle.js

Rename lfc variable in basicStyle.js to average_value

Renamed to avgValues.Find below the code screenshots.


Problem with install latest version of DelphiLens

After compile all packages I try install main project and I get external exception:

Delphi Tokyo 10.2

DelphiLens is still very pre-alpha and in 'sometimes works on my machine'. Current HEAD is not working very well and I'm fixing that right now.
At the moment you can check out https://github.com/gabr42/DelphiLens/releases/tag/mostly-stable-version-1 which is the last known stable version.


What do idx, v and up stand for?

Hi @tinkerspy, very interesting library, I'm just sorting through it now to see if it'll work for my application.
One random question that  I can't seem to find an answer to, what do the callback arguments idx, v and up refer to?  Are they arbitrarily named?  Do they stand for something in the world of automata?
The most I could find was this moderately unsatisfying blurb here:

Callbacks used in a Push Connector always have the three idx, v and up integer arguments. Their function may vary from component to component, check the documentation for details.

idx is a means of re-using a single callback function for multiple machine objects
v contains the value of the object (if relevant) For a button that would be pressed (0 or 1)
up contains the direction of the value (did it go up or down)

For examples of the use of  idx and v check:
https://github.com/tinkerspy/Automaton/wiki/The-button-machine
For an example of the use of 'up' check:
https://github.com/tinkerspy/Automaton/wiki/The-encoder-machine

Thanks!

Reopening this as I think there are a few other places where terminology could use some clarifications.  I can put in a PR for this but just want to make sure I'm understanding things.

idx is a way for a single callback to be used by multiple connectors.  In the button example, its a way of grouping all the relevent "onPress" logic in a single place.
sub specifies which "slot" to use in a multi-slotted connector.  It is a way of having the same connector serve multiple machines and/or callbacks

if you use the overload that does not specify sub, it will fill all the slots by using onPush(..., fill = 1, ...).  The comments also call this multi
if sub has value -1 (aka "auto store") It automatically finds the next available slot for each call to onPush.  In the online editor the generated code no longer exposes the sub field.

broadcast - this is where I'm getting a little lost.  I get the intent is to be able to push to all slots,  but playing around with the editor it doesn't seem to do anything besides update the comments with e.g.:
push( connectors, ON_FINISHED | ATM_BROADCAST, 5, <v>, <up> );

Is that correct that any multi-slot connector could be or'd with ATM_BROADCAST to broadcast to all its slots?
Also, looking at the implementation:
https://github.com/tinkerspy/Automaton/blob/a5b8d5ac9147620f9324f1b70f525c9676d7ae5b/src/Machine.cpp#L163-L165
Seems like this might be a bug?  should i be initialized to 0 here?