Add support for jupyter notebook command line options in binder

I would like to be able to configure jupyter notebook command line options when using binder.
http://jupyter-notebook.readthedocs.io/en/stable/config.html
Currently this is not possible with binder. Please add this functionality.

One way to workaround this is to create a jupyter_notebook_config.py that you copy to ~/.jupyter/ in a postBuild.
What kind of things would you like to be able to configure? Maybe we should make it a special file that if it is in the repo gets copied to the right place for you.

I want to enable websocket_compression_options so that the data sent across the internet from binder to the notebook front-end is compressed. Compression used to be enabled by default but because jupyter notebook running on a local machine does not send data across the internet they decided to turn off compression by default to get a performance boost in a notebook release earlier this year. But with my notebook application sending a lot of data back and forth between Binder and the notebook front-end I would like to compress the data that is  sent across the internet to reduce bandwidth consumption. I would like to be able to configure this option from the jupyter notebook documentation.
NotebookApp.websocket_compression_options : Any
Default: None
Set the tornado compression options for websocket connections.
This value will be returned from WebSocketHandler.get_compression_options(). None (default) will disable compression. A dict (even an empty one) will enable compression.
See the tornado docs for WebSocketHandler.get_compression_options for details.
The PR that resulted in the decision to turn of compression by default can be found here.
https://github.com/jupyter/notebook/issues/2490

Let us know if the above workaround works for you. Let's keep the discussion on whether to enable it by default or not in this issue as well (going to close #376)

We should allow users to specify arbitrary commands to run, instead of making something specific for just Jupyter commands in the long run. Probably a URL parameter like we have for urlpath / filepath now?

+1
On Thu, Dec 21, 2017 at 10:33 PM Yuvi Panda<EMAIL_ADDRESS>wrote:

We should allow users to specify arbitrary commands to run, instead of
making something specific for just Jupyter commands in the long run.
Probably a URL parameter like we have for urlpath / filepath now?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jupyterhub/binderhub/issues/375#issuecomment-353463099,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABwSHQthv7ohROZKEaWCzc_ZIh51_fG0ks5tCs62gaJpZM4RJIhc
.

Not sure, it feels like wanting to run arbitrary commands is an "exotic" thing to do so I'd be Ok with people having to write a Dockerfile to do that. What kind of usecases are there where you need to run an arbitrary command?

I agree not yet, but I want to keep the binderhub code as non-jupyter specific as possible...

https://github.com/jupyterhub/binderhub/issues/258 has more on supporting non-jupyter stuff directly.

Any thoughts on turning on/off websocket compression by default?

I think we should turn it on by default. From the issue it looks like it was turned off by default to optimize for the localhost case, but for our case we should probably turn it on.

(sorry, i posted my comment in the wrong issue and then deleted it :-/)

The workaround worked for me to turn on compression. I configured the line
c.NotebookApp.websocket_compression_options = {}
in jupyter_notebook_config.py file. Then I created a postBuild.sh file with the following 2 lines.
#!/bin/bash
cp jupyter_notebook_config.py ~/.jupyter/
After launching binder and using Chrome browser I checked the websocket request headers and response headers contained the line
sec-websocket-extensions:permessage-deflate
indicating that permessage-deflate compression is configured on the websocket.

I haven't found anything new on this so I'll allow myself to revive this issue.
tl;dr --> Is it possible to give arbitrary command line options to be specified when Binder launches the Jupyter server?
My use case is the following:
I want to run Voilà with Binder and download generated files (by Voilà) from within Voilà. Because Voilà doesn't serve static files by default, I need to configure the Jupyter server with something like jupyter notebook --VoilaConfiguration.file_whitelist="..."(see here).
I haven't found any way to configure this with jupyter_notebook_config.py or anything else, and because I am doing all of this within Binder, my only option right now seems to be the Dockerfile route.
Thank you

I haven't found anything new on this so I'll allow myself to revive this issue.
tl;dr --> Is it possible to give arbitrary command line options to be specified when Binder launches the Jupyter server?
My use case is the following:
I want to run Voilà with Binder and download generated files (by Voilà) from within Voilà. Because Voilà doesn't serve static files by default, I need to configure the Jupyter server with something like jupyter notebook --VoilaConfiguration.file_whitelist="..."(see here).
I haven't found any way to configure this with jupyter_notebook_config.py or anything else, and because I am doing all of this within Binder, my only option right now seems to be the Dockerfile route.
Thank you

Hi Thomas
You can try add a postBuild file your github repository that you are using with myBinder . In my case the contents of the postBuild file is
jupyter notebook --NotebookApp.websocket_compression_optionsAny={}
and this will turn on websocket compression when the jupyter notebook is launched on myBinder . In your case the contents of the postBuild file will be something like
jupyter notebook --VoilaConfiguration.file_whitelist="..."
Here is an example repository on github that contains a a postBuild file
https://github.com/jcoady/notebook
and when you run it on myBinder the command line option
jupyter notebook --NotebookApp.websocket_compression_optionsAny={}
specifed in the postBuild file is executed and websocket compression is turned on in myBinder.
John
From: "thomas-bc"<EMAIL_ADDRESS>To: "jupyterhub/binderhub"<EMAIL_ADDRESS>Cc: "johncoady"<EMAIL_ADDRESS>"Author"<EMAIL_ADDRESS>Sent: Monday, January 11, 2021 8:00:52 AM
Subject: Re: [jupyterhub/binderhub] Add support for jupyter notebook command line options in binder (#375)
I haven't found anything new on this so I'll allow myself to revive this issue.
tl;dr --> Is it possible to give arbitrary command line options to be specified when Binder launches the Jupyter server?
My use case is the following:
I want to run [ https://github.com/voila-dashboards/voila | Voilà ] with Binder and download generated files (by Voilà) from within Voilà. Because Voilà [ https://voila.readthedocs.io/en/stable/customize.html#serving-static-files | doesn't serve static files by default ] , I need to configure the Jupyter server with something like jupyter notebook --VoilaConfiguration.file_whitelist="..." ( [ https://voila.readthedocs.io/en/stable/customize.html#configure-voila-for-the-jupyter-server | see here ] ).
I haven't found any way to configure this with jupyter_notebook_config.py or anything else, and because I am doing all of this within Binder, my only option right now seems to be the Dockerfile route.
Thank you
—
You are receiving this because you authored the thread.
Reply to this email directly, [ https://github.com/jupyterhub/binderhub/issues/375#issuecomment-758044086 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AAD4LZKRE42NUGEGT3NIBQ3SZMODJANCNFSM4EJERBOA | unsubscribe ] .

Hi Thomas
You can try add a postBuild file your github repository that you are using with myBinder . In my case the contents of the postBuild file is
jupyter notebook --NotebookApp.websocket_compression_optionsAny={}
and this will turn on websocket compression when the jupyter notebook is launched on myBinder . In your case the contents of the postBuild file will be something like
jupyter notebook --VoilaConfiguration.file_whitelist="..."
Here is an example repository on github that contains a a postBuild file
https://github.com/jcoady/notebook
and when you run it on myBinder the command line option
jupyter notebook --NotebookApp.websocket_compression_optionsAny={}
specifed in the postBuild file is executed and websocket compression is turned on in myBinder.
John
From: "thomas-bc"<EMAIL_ADDRESS>To: "jupyterhub/binderhub"<EMAIL_ADDRESS>Cc: "johncoady"<EMAIL_ADDRESS>"Author"<EMAIL_ADDRESS>Sent: Monday, January 11, 2021 8:00:52 AM
Subject: Re: [jupyterhub/binderhub] Add support for jupyter notebook command line options in binder (#375)
I haven't found anything new on this so I'll allow myself to revive this issue.
tl;dr --> Is it possible to give arbitrary command line options to be specified when Binder launches the Jupyter server?
My use case is the following:
I want to run [ https://github.com/voila-dashboards/voila | Voilà ] with Binder and download generated files (by Voilà) from within Voilà. Because Voilà [ https://voila.readthedocs.io/en/stable/customize.html#serving-static-files | doesn't serve static files by default ] , I need to configure the Jupyter server with something like jupyter notebook --VoilaConfiguration.file_whitelist="..." ( [ https://voila.readthedocs.io/en/stable/customize.html#configure-voila-for-the-jupyter-server | see here ] ).
I haven't found any way to configure this with jupyter_notebook_config.py or anything else, and because I am doing all of this within Binder, my only option right now seems to be the Dockerfile route.
Thank you
—
You are receiving this because you authored the thread.
Reply to this email directly, [ https://github.com/jupyterhub/binderhub/issues/375#issuecomment-758044086 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AAD4LZKRE42NUGEGT3NIBQ3SZMODJANCNFSM4EJERBOA | unsubscribe ] .

Thank you for your answer. I am aware of the postBuild functionality, it is however - I think? - not fit to be used like this in my use case, as I need Binder to be launched with a specific command, and not simply run a specific command before launching Binder.
It would work if there was a config file I could tweak to change the file_whitelist, but I haven't seen anything like this on the Voila side...
Maybe there's something I missed, I'm not really sure how your repo can work with jupyter notebook ... being run in the postBuild. This should start a jupyter server during the image build, and therefore the build won't ever finish? It's also not the workaround that was described earlier:

The workaround worked for me to turn on compression. I configured the line
c.NotebookApp.websocket_compression_options = {}
in jupyter_notebook_config.py file. Then I created a postBuild.sh file with the following 2 lines.
#!/bin/bash
cp jupyter_notebook_config.py ~/.jupyter/

Thank you for your answer. I am aware of the postBuild functionality, it is however - I think? - not fit to be used like this in my use case, as I need Binder to be launched with a specific command, and not simply run a specific command before launching Binder.
It would work if there was a config file I could tweak to change the file_whitelist, but I haven't seen anything like this on the Voila side...
Maybe there's something I missed, I'm not really sure how your repo can work with jupyter notebook ... being run in the postBuild. This should start a jupyter server during the image build, and therefore the build won't ever finish? It's also not the workaround that was described earlier:

The workaround worked for me to turn on compression. I configured the line
c.NotebookApp.websocket_compression_options = {}
in jupyter_notebook_config.py file. Then I created a postBuild.sh file with the following 2 lines.
#!/bin/bash
cp jupyter_notebook_config.py ~/.jupyter/

I am not a jupyter or binder developer so I don't have an answer to your question aside from my experience in using postBuild which did what I required for my application.
John
From: "thomas-bc"<EMAIL_ADDRESS>To: "jupyterhub/binderhub"<EMAIL_ADDRESS>Cc: "johncoady"<EMAIL_ADDRESS>"Author"<EMAIL_ADDRESS>Sent: Monday, January 11, 2021 11:43:21 AM
Subject: Re: [jupyterhub/binderhub] Add support for jupyter notebook command line options in binder (#375)
Thank you for your answer. I am aware of the postBuild functionality, it is however - I think? - not fit to be used like this in my use case, as I need Binder to be launched with a specific command, and not simply run a specific command before launching Binder.
It would work if there was a config file I could tweak to change the file_whitelist, but I haven't seen anything like this on the Voila side...
Maybe there's something I missed, I'm not really sure how your repo can work with jupyter notebook ... being run in the postBuild. This should start a jupyter server during the image build, and therefore the build won't ever finish? It's also not the workaround that was described earlier:
The workaround worked for me to turn on compression. I configured the line
c.NotebookApp.websocket_compression_options = {}
in jupyter_notebook_config.py file. Then I created a postBuild.sh file with the following 2 lines.
#!/bin/bash
cp jupyter_notebook_config.py ~/.jupyter/
—
You are receiving this because you authored the thread.
Reply to this email directly, [ https://github.com/jupyterhub/binderhub/issues/375#issuecomment-758179587 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AAD4LZKIWAYS2QTO62W6ZJDSZNIFTANCNFSM4EJERBOA | unsubscribe ] .

I am not a jupyter or binder developer so I don't have an answer to your question aside from my experience in using postBuild which did what I required for my application.
John
From: "thomas-bc"<EMAIL_ADDRESS>To: "jupyterhub/binderhub"<EMAIL_ADDRESS>Cc: "johncoady"<EMAIL_ADDRESS>"Author"<EMAIL_ADDRESS>Sent: Monday, January 11, 2021 11:43:21 AM
Subject: Re: [jupyterhub/binderhub] Add support for jupyter notebook command line options in binder (#375)
Thank you for your answer. I am aware of the postBuild functionality, it is however - I think? - not fit to be used like this in my use case, as I need Binder to be launched with a specific command, and not simply run a specific command before launching Binder.
It would work if there was a config file I could tweak to change the file_whitelist, but I haven't seen anything like this on the Voila side...
Maybe there's something I missed, I'm not really sure how your repo can work with jupyter notebook ... being run in the postBuild. This should start a jupyter server during the image build, and therefore the build won't ever finish? It's also not the workaround that was described earlier:
The workaround worked for me to turn on compression. I configured the line
c.NotebookApp.websocket_compression_options = {}
in jupyter_notebook_config.py file. Then I created a postBuild.sh file with the following 2 lines.
#!/bin/bash
cp jupyter_notebook_config.py ~/.jupyter/
—
You are receiving this because you authored the thread.
Reply to this email directly, [ https://github.com/jupyterhub/binderhub/issues/375#issuecomment-758179587 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AAD4LZKIWAYS2QTO62W6ZJDSZNIFTANCNFSM4EJERBOA | unsubscribe ] .

It turns out I found this repo in the Voilà gallery which uses exactly what I'm looking for!
In the jupyter_config.json file, one can specify VoilaConfiguration options for Binder to use.

It turns out I found this repo in the Voilà gallery which uses exactly what I'm looking for!
In the jupyter_config.json file, one can specify VoilaConfiguration options for Binder to use.

It sounds like there are acceptable workarounds, and https://github.com/jupyterhub/binderhub/issues/258 covers the case of arbitrary web applications.


Broken first line rendering in VIM (parseUntilStringTerminator_ aborts)

[x] I am on version 1.0.0
[x] I have searched the issues of this repo and believe that this is not a duplicate
[x] The issue is reproducible in vanilla Hyper.app

OS version and name: OS X 10.12.1 (Sierra)
Hyper.app version: 1.0.0
Link of a Gist with the contents of your .hyper.js: https://gist.github.com/L-A/7a674f3ebb88fa5fbfb78bfdc89bc2ed
Relevant information from devtools:
See right under the screenshots

Issue
This issue was introduced in da4858a76e4faad6e5ee49f9cebf80e3fa981de4
Here is the expected result of opening a given file with vim (from 0.8.3):

Here is what is displayed after da4858a76e4faad6e5ee49f9cebf80e3fa981de4:

Note that the cursor is actually positioned on the first character of the line, and will start re-rendering proper characters once I start moving it.
The very first character on screen (at position 0,0), seems to never be redrawn unless I replace it completely.
From the devtools for this very file:
parseUntilStringTerminator_: aborting: embedded escape: 6 +q436f
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q6b75
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q6b64
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q6b72
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q6b6c
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q2332
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q2334
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q2569
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q2a37
bundle.js:36390 Ignored ESC code: "\\"
bundle.js:36352 parseUntilStringTerminator_: aborting: embedded escape: 6 +q6b31
bundle.js:36390 Ignored ESC code: "\\"

Sad heads up: As of 1.0.0 (2b3c49b), this is still true.

+1, I'm seeing this as well.

+1. Happens every time I do this:

Open vim (.hyper.js in this case)
Edit a line
Exit vim
Open the same file again
The line I edited is overlapped with this strange line shown in the picture from the first comment

However this strange line disappears with vim scrolling

@ppot Edited to point out that it was introduced in da4858a76e4faad6e5ee49f9cebf80e3fa981de4.

Same issue here.

Not ideal, but as a temporary fix, you can currently just scroll down in the file until the first line is not visible, and then scroll back up which should make the first line rendered properly:

+1, I am having the same problem

I'm digging into this a bit more. It's definitely related to vim-airline, and probably hterm's handling of the problematic output. Ref → https://github.com/vim-airline/vim-airline/issues/393
Disabling vim-airline makes all symptoms disappear. The character sequence that's rendered on the first line is actually data that's appended to Airline's printed line in Vim. This also explains why it inherits its last span's color and background.
If any of you want to try, you can add the following line to your .vimrc (the line really ends at =, you just want to assign nothing):
set t_RV=

Source: http://cygwin.1069669.n5.nabble.com/Bad-XTerm-Vim-coloring-td68948.html

did not use the plugin so did not have the issue either.

Confirming this issue persists and this fix works:

If any of you want to try, you can add the following line to your .vimrc (the line really ends at =, you just want to assign nothing):
set t_RV=

As far as I can tell, this still seems to be an issue.

https://github.com/zeit/hyper/issues/2281 was a duplicate of this one.

Hey there, please try again with the new Hyper v2 release and open a new issue if the problem stills exists. Thank you!


Describe in-place-update tool return codes

Provide return codes description , return code 0 - everything is fine, return code 1 or 2 depending if it is possible to solve the problem with a retry or not.

Exit Code
Meaning
Retry-able

0
success
:heavy_minus_sign:

1
invalid arguments
:x:

2
system failure
:x:

3
network problems
:white_check_mark:

So gardener should primarily check if exit code is 0 for all good, 3 for retry, and the distinction between 1 and 2 is essentially:

1: gardener fucked up their input
2: something on the OS is broken, likely beyond repair

https://github.com/gardenlinux/package-gardenlinux-update/pull/5
exit codes are explicitly listed in the --help output of the update tool:
Usage: ./gardenlinux-update [options] <version>

  -media-type string
        artifact media type to fetch (default "application/io.gardenlinux.uki")
  -os-release string
        alternative path where the os-release file is read from (default "/etc/os-release")
  -repo string
        OCI repository to download from (default "ghcr.io/gardenlinux/gl-oci")
  -skip-efi-check
        skip performing EFI safety checks
  -target-dir string
        directory to write artifacts to (default "/efi/EFI/Linux")

exit codes:
        0: success
        1: invalid arguments
        2: system failure
        3: network problems


Expose the emotion ML model via API from Sagemaker

This is related to the following two tasks #46  and #16  We need only the part that determines if the sentence has emotion and determines that emotion. This functionality needs to be exposed via API that we can call.

I'm stuck. I was able to create an API gateway and connect a lambda function to it. I tested this test implementation and was able to get the expected response. So far so good. Next, I went to update the lambda function with the nltk library. This proved to be a little more complicated, since on Lambda you need to include the packages with the function you run. To do that I did the following:

Make sure to install the packages while running linux, or if on windows, using WSL. If you install packages under windows they will not run on Lambda since it is a linux environment. The workaround for this is to download the wheel/.whl files and unpackage them. The .whl files are compiled libraries for specific platforms.
Package all the supporting libraries into a single .zip file. AWS has a  good tutorial for this. https://docs.aws.amazon.com/lambda/latest/dg/python-package.html
Append the lambda_function.py file, or whatever you called your script to the zip file. This ensures that when it executes it has the necessary libraries in the same directory.
Upload your code to Lambda as a .zip file and then execute.

I keep getting an error with importing the regex library.  I've search and tried every workaround I could find. Any help is appreciated.
Error log message
{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'regex._regex'",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "2bd8bb0d-e6e4-4ec5-9d66-3530024288c8",
  "stackTrace": []
}

Time estimate: 10-20hrs
Time spent as of 2/22: 10 hrs

AWS Lambda With Dependencies
Documenting so that I remember what I did, and perhaps to help others.
Deploying a function to AWS Lambda is a little more involved than you may expect, especially if you require non-standard libraries. To ensure that the code that runs locally will work on AWS Lambda, it can be necessary to download the compiled binaries for linux.
Download dependencies
Create a new folder for the binaries and navigate to that directory
mkdir packages

cd packages/

Download the nltk binaries
pip download --platform manylinux1_x86_64 --only-binary=:all: --no-binary=:none: nltk

Unzip all the files
unzip '*.whl'

Remove the .whl files
rm *.whl

Build the .zip file
To run on AWS Lambda all of the package files and script need to be in a single .zip file. Build this as follows.
Package all the dependencies.
zip -r ../[archive_name.zip] .

Navigate back to the project root directory and append the function to the archive
cd ..
zip -g [archive_name.zip] [function_name]

Now the [archive_name.zip] is ready to upload as a Lambda function.


Update wrapless protocol dissector using 5395

I have updated the wrapless protocol dissector according to captures on the 5395 sensor. Most of the work is on the PSK setup and TLS handshake messages, the others are small fixes.
I could not confirm how [0xa][7] messages are composed on this sensor, but the code is related to EC control.

Thanks for your work!


initial framework

Closes #
📑 Description

✅ Checks

[ ] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[ ] All the tests have passed
[ ] Branch name follows type/descript (e.g. feature/add-llm-agents)
[ ] Ready for code review

ℹ Additional Information

This PR lacks description and a proper name. Could you articulate what are the features added and how you did it?

This PR lacks description and a proper name. Could you articulate what are the features added and how you did it?

DOne


Stepper: button becomes white when hovered or pressed

Hover is fixed but press and drag makes it white still.

Good enough!


How to achieve read-write separation

Let's say I have two transactions one while writing and one while reading， the write transaction before the read transaction，Why does the read transaction get the result after the write transaction is completed。
This scenario in the chat function, websocket transparent transmission of information to us to do local storage operations is very common，What can I do so that the read operation and the write operation do not affect each other

It's because transactions are ACID compliant. What you seek can be achieved in dexie@4 with liveQuery() as long as your write operatons are not embedded in any explicit 'rw' transaction. A write operation such as Table.put(), Table.update() or Collection.modify() will then hit the liveQuery immediately and not wait for the implicit transaction to commit.

It's because transactions are ACID compliant. What you seek can be achieved in dexie@4 with liveQuery() as long as your write operatons are not embedded in any explicit 'rw' transaction. A write operation such as Table.put(), Table.update() or Collection.modify() will then hit the liveQuery immediately and not wait for the implicit transaction to commit.

Problem solved Thank you very much for your reply


Fix mistake in wait-for-recovery docs

To run an operation every 10s we specify target-interval rather than
target-throughput.
Relates #800

Thanks for the quick review!


Rule "one-feature-per-file" does not exist

I use "gherkin-lint": "4.2.2". When I run npx gherkin-lint, i get
Error(s) in configuration file:
- Rule "one-feature-per-file" does not exist
- Rule "up-to-one-background-per-file" does not exist
- Rule "no-multiline-steps" does not exist

Minimal .gherkin-lintrc content to reproduce the issue:
{
  "one-feature-per-file": "on",
  "up-to-one-background-per-file": "on",
  "no-multiline-steps": "on"
}

Sorry, but I think that you are wrong.
If you review those rules in the list, you will see that all of them has a *, and the readme says:
* These rules cannot be turned off because they detect undocumented cucumber functionality that causes the [gherkin](https://github.com/cucumber/gherkin-javascript) parser to crash.

So, do you think this is a valid issue? please, decide and if this issue should be open or be closed

Thanks for that clarification – i did not see that docs entry.
FYI My approach was (like i do with other linters too) that i take every rule from the docs and decide rule by rule if i want to enable it or not.
Anyway, I still think this is an issue, because the docs say that i am not allowed to disable it, but i did not disable it, so everything should be fine.


add $ in composer require command

That's even worse than my PR. I salute you.

I wouldn't merge this personally - I'd prefer to have the console in the fenced codeblocks. It's a pita for copy pasta when there's a $ in the line

I like money, but my console command fails if I paste in the $ :-P

Deferring decision to @malukenho

it's for consistencies, just like in contributing.md https://github.com/Roave/StrictPhp/blob/master/CONTRIBUTING.md

Actually a good point. Still, ball to @malukenho :-)

:+1:
I like the leading $ and #, they tell if you should or not run the command with sudo.

Merged as the most of computers has a mouse to select what you want to copy, and also has ways to delete chars if you need.

Thanks @samsonasik  :beers:


.success is not a function

Hi,
i tried with version 1.2.1, 1.5.0 and commit #104 but no success, every time i get
Error: $http.get(url)
.success is not a function. (In '$http.get(url)
.success', '$http.get(url)
.success' is undefined)
How to solve this?
best regards Ivan

Are you using angular 1.6 or greater?
I believe they've now taken out the depreciated .success() and .error() functions from the promise returned from $http.get() (and other functions called from $http).
https://code.angularjs.org/1.5.7/docs/api/ng/service/$http#deprecation-notice
It's advised to use .then() instead.
Guessing angular-localization will need to be updated to cope with this.

I've just had a look at angular-localization codebase.
The following merged pull request seems to cover this:
https://github.com/doshprompt/angular-localization/commit/fc8ea1535b50d3acafc26ad72dfae5e90975d706

I think this issue can only really be closed once the dist folder has been rebuilt and checked in as bower does not pick up the changes from the pull request.

Its definitely not OK to close this, because angular-localization doesn't work with angular 1,6+

Agree, needs to be reopened.
I've see a folk by firemondev that's got it built with the changes needed for angular 1.6


SSL config not added to conf.d/default.conf

Trying to use the latest version of this container I am not getting the required SSL conf generated.
I can see the needed Labels being picked up in the letsencrypt.conf file so I know my container params are being picked up by the RAP container.
HTTP conf for the site is generating.
I do not see any attempt to generate certificates by the cron task in the STDOUT even with debug on. And no HTTPS config is added to the NGINX conf.

A new install and new volume seems to have fixed this. Still unknown what the issue what with the original instance.


Change in variable names

Hi team,
I moved this from here: https://github.com/MicrosoftDocs/azure-docs.de-de/issues/607
@vstokelbusch commented 10 hours ago — with docs.microsoft.com
Hi,
the caption of "iso6391Name" in the output JSON was changed to "iso6391_name". Same goes for the node "detectedLanguages", which is now "detected_languages". Additional node in the output is "additional_properties", but I'm not sure what it contains, since it was empty in my runs. Sadly I don`t have any information when the changes where made.
Cheers
Vincent

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

ID: f54a96e6-ea39-c972-1ee9-56c05be8279a
Version Independent ID: ad96d498-d74e-1aaf-6740-a7f8a03ac7f9
Content: Detect language with the Text Analytics REST API - Azure Cognitive Services
Content Source: articles/cognitive-services/text-analytics/how-tos/text-analytics-how-to-language-detection.md
Service: cognitive-services
Sub-service: text-analytics
GitHub Login: @aahill
Microsoft Alias: aahi

@CeciAc
Thanks for the feedback! We are currently investigating and will update you shortly.

@CeciAc @vstokelbusch We have tried the v2.1 API and the output matches the current description of the documentation. Please find the screen shot below:

We will go ahead and close this issue as the output matches the results from the current API.


issue #34, add badge to readme

Describe the contribution
Add alert badge for lgtm.
Testing performed
Steps taken to test the contribution:

Tested against dummy repository. Needs to verify when real one is created.

Full name and company/organization/center of all contributors ("Personal" if individual work)
Anh Van, NASA Goddard
-Project: CFS Framework

updated.

CCB 20191218 - Reviewed and approved for IC


Rotation of output images in prostate_mri_anatomy

This problem is about the inference.json config file for the prostate_mri_anatomy model. The transformations applied to the test data during preprocessing are not reversed during postprocessing; thus, the resulting predictions have a different rotation compared to the original images and labels. I would like to add an invertd() function to postprocessing.
Additionally, running the inference on a PC without a GPU leads to an error because the handlers function 'CheckpointLoader' attempts to load the model to the GPU. I want to add a parameter that loads the model to the CPU when the GPU is unavailable.

Thanks for posting this issue, the enhancements will be helpful. Welcome to contribute the updates, and if you meet any issues when doing the changes, feel free to ask.

This feature is implemented by @FaresAlMohamad in #482


Mass storage error: Sense 0x2 0xff 0xff

I'm trying to use pmca-gui with my Mac and NEX-6.
I get the error:
pmca.usb.MscException: Mass storage error: Sense 0x2 0xff 0xff
This is using the latest 0.15

Should be fixed with ma1co/Sony-PMCA-RE@a81e2ce7c9fb592e9b9be217722d0710ce809275. If you use the binaries, you'll have to wait for v0.16.

@yisding The v0.16 binaries have been released.

I'm getting the same issue. v0.16 gui, Mac OSX High Sierra, Sony a6000. I was able to replicate with the console command too, which lets me copy-and-paste.
Using drivers OS-X-MSC, libusb-MTP
Looking for Sony devices

Querying mass storage device
Sony DSC is a camera in mass storage mode

Traceback (most recent call last):
  File "pmca-console.py", line 91, in <module>
    main()
  File "pmca-console.py", line 61, in main
    infoCommand(args.driver)
  File "/nevermindmyprojectfolder/Sony-PMCA-RE/pmca/commands/usb.py", line 209, in infoCommand
    info = dev.getCameraInfo()
  File "/nevermindmyprojectfolder/Sony-PMCA-RE/pmca/usb/sony.py", line 251, in getCameraInfo
    data = BytesIO(self._sendCommand(self.SONY_CMD_DevInfoSender_GetModelInfo))
  File "/nevermindmyprojectfolder/Sony-PMCA-RE/pmca/usb/sony.py", line 244, in _sendCommand
    ) + data).ljust(writeBufferSize, b'\0'), readBufferSize)
  File "/nevermindmyprojectfolder/Sony-PMCA-RE/pmca/usb/sony.py", line 67, in sendSonyExtCommand
    self._checkResponse(response)
  File "/nevermindmyprojectfolder/Sony-PMCA-RE/pmca/usb/__init__.py", line 38, in _checkResponse
    raise UnknownMscException(msg)
pmca.usb.UnknownMscException: Mass storage error: Sense 0x2 0xff 0xff

Found a workaround for now. It seems to be fine when I switch the a6000's USB setting to MTP mode.

I tried to update the firmware via the gui. Unfortunately, that appears to kick the A6000 back into Mass Storage mode, and the same problem happens. Digging into the code base now (though I'm no Python programmer...)

One last comment before I'm AFK for the day. I stuck a debug statement after this line in osx.py:
res = iokit.IOConnectCallStructMethod(self.dev, kextSendMemoryBlock, byref(desc), descSize, byref(output), byref(outputSize))

The code I'm getting back is<PHONE_NUMBER>, or 0xE00002BC in hex. Looks like a kIOReturnError? Don't know much about it.

Alright, back at it again today. 😄 Last night, tried specifying libusb driver as a workaround. No luck, it told me usb.core.USBError: [Errno 13] Access denied (insufficient permissions). Maybe that's a new issue, but I don't want that to derail this one.

One more thing I noticed. When it fails (back on the native osx driver), it kicks all of my other USB and Bluetooth devices off.  They reconnect pretty quickly though. I wonder if some subsystem is being rebooted?

I have the same problem with my Sony RX100 V

Switching the USB LUN Setting (the toolbox -> 4) solved the issue for me on an a7R.

Switching the USB LUN Setting (the toolbox -> 4) solved the issue for me on an a7R.

Switched it to what?

@MuffintopSpeedos Can’t quite remember; I think there were only two options? If you’re still running into trouble send me a reminder and I can check in a few hours.


Move Views side panel to the very top

I think it should be always above all the other panel cc @julieg18

From my research, when you first open up a new workspace the "views" is indeed on top, but VsCode doesn't offer a way for us to adjust the views order on workspaces that already have used the DVC extension. At that point, the order can only be adjusted by the user.

Thanks, @julieg18 ! Can someone try to run a fresh codespaces also? For me, even when I build it from scratch, I'm getting this:

it might be it's saving some of my preferences globally, not sure.

That is because the column tree is indeed before the views buttons. I'll switch the order.

Thanks @sroy3 !
Also, qq - was it always the case or did we disable the Discord / Github panel with this change? I think we want to show always show it, wdyt? (it's kinda quick help / support) at the very bottom of the side panel

Thanks @sroy3 !
Also, qq - was it always the case or did we disable the Discord / Github panel with this change? I think we want to show always show it, wdyt? (it's kinda quick help / support) at the very bottom of the side panel

It's still there. At the very bottom for me. I just didn't take a screenshot of the whole sidebar.

Hmm, but on my screenshot it's not here 🤔

Hmm, but on my screenshot it's not here 🤔

It's seems the sidebar is not scrolled to the bottom

Yes, you are right! And there is not easy way to scroll at all (pretty much manually only). Each small container has it's own scroll and intercepts it. That's weird. Too many panels I guess after all.
I'll think if we need to do anything with this. Thanks @sroy3 .


Make modules more generic, Client connection state callback

Some improvements for making the module more generic:

removing references to local.py inside client.py
added reference to local.py to c_app
made client.Client() creation use more args (server, port, ...)
added a callback coro to the client, that is called everytime the connection state changes, as a higher level application might be interested in knowing this. (Maybe the server restarted and needs some information again, ...)
generelly changed import statements to import from current directory (if file structure is used as in the repo) and on Exception use normal import statement (for those just copying needed files).
removed all .mpy files as they would have to be recreated anyway
moved server code into separate package

Thought this was a good way to go forward, making the client module more generic without the need to use the local.py to make it independent. The c_app.py as a higher level application should be in control of all configuration options.
The Client callback on connection change might come in handy for higher level applications as they might need to (re)send some data to the server if the server restarted or do other stuff.
The rest is mostly "cleanup" to my preferences: more dynamic way of importing modules of this repository and moving server files into separate package.

Some of these changes reflect differences in our coding styles. I regard Python packages as a complication too far for "micro" applications and have not used them in any of my efforts. I'm of two minds whether to change this stance.
The callback coro on state change is an excellent idea.
My import of local.py into Client.py rather than into the application is unconventional, but was a design decision based on the assumption that the Client instance would be a singleton. It simplifies the application code; I can't envisage an ESP8266 running more than one Client concurrently. If you have a use-case in mind for multiple Client instances, and have tested its feasibility, my enthusiasm for this would increase :)
If we keep it as a singleton I should explicitly state this in the docs.
To keep you in the loop I am currently working on the extension to the Pyboard, in particular ensuring it is resilient if the ESP8266 crashes (not that it should). I then plan to ensure that the server code is portable to MicroPython. I don't foresee a particular use-case but it seems like a good idea.
I'll then revisit the Client code and implement any changes we settle on.

Two thoughts regarding the state change coro with a view to making it more general. These are just ideas - there may be reasons against.
It can be useful to provide for args to such functions (e.g. an Led instance).
If you look at my asyn.py there is a way to enable a function to be passed which can be a coro or a method (bound or not). An example of its use is here documented here.

Packages
I understand that you want to keep it simple by not using packages in micropython. Let me explain my point of view on this difference, maybe it helps but maybe it will just make the differences of our coding style more solid which is also ok as I won't bring up any changes in that direction again in that case.
Disadvantages of not using packages:

you have to copy every file you need into the root directory of your microcontroller/ports directory
you can easily lose track of where files are from making updating them more difficult
you might not have any license and author information in the file as only the repository contained that information
you don't know when a file gets updated because you'd have to manually compare them to the repo
when looking at your repositories I often have to read the README repeatedly to understand which files are just examples and which ones are the actual libraries as everything is just in the same directory, sometimes even without an easy to understand filename.
pushing a bigger project to github (like my pysmartnode) would be a lot more difficult as you include files from other authors (possibly without containing licence and author) and would have to name the sources in your README. Or push your project without these files and list them as dependencies making it more difficult for the user to use your project.
a bigger project like my pysmartnode would be a horrible mess without a package structure, having over 50 files in the root directory.

Advantages of having packages:

miropython can handle them well
structure is more transparent and you easily understand where a file belongs to
you can include repositories in your project by clonging them/using a submodule making it transparent where the files are from, who's the author and licence (well I guess it should be MIT anyway as multiple licences could be problematic).
You can also easily update these by updating the submodule/repo without manually copying all new files.
you don't have a mess in your microcontroller directory and know which file belongs to what project
it's easier for the user to include or remove your project as he does not need to search for all files that your project added
your project can always have all dependencies (except uasyncio)

Is it ok for you to have packages in your repository to make the structure cleaner? If not then that's of course ok but the next question does not need an answer: Is it a good compromise to use an import statement like this (like I used) to enable bother coding styles to profit from your repositories:
try:
    from . import primitives as asyn
except:
    import primitives as asyn

This allows people like me to use your repository as a package using relative imports while people like you can still put every file into the root directory and it will work.
State change callback
Thanks for your thoughts on this, I think that is a good idea but got me thinking:
As only one callback and args are used, these will be the same regardless of state.
How to "inject" the current state if args for the callback are set? Like callback(,*args)?
local.py
I think you mostly missed my point about the local.py inclusion but I did not explain it well, sorry for that.
I don't think the esp8266 should handle more than one client, that would probably need a reimplementation of the outage detection to prevent multiple clients from constantly reconnecting to the wifi.
If you build a bigger project, you are likely to have more configuration options than the local.py, therefore it would be good to have the option to configure the module using your own configuration file that you use anyway instead of having to use the local.py additionally to your project specific configuration file. I like to have all configurations in one place and not having to look into library specific configuration file just to put my server-ip and port into it.
I'm really looking forward to the pyboard :)
Porting the server code to micropython could be interesting to eliminate the need of an external proxy for usage in a small environment. May be a small field of application but I can definitely think of one.

State change callback
If you look at my examples in my micropython-async repo you'll see that I pass a callback/coro and a tuple of args (default ()) as constructor args. When the function is called the mandatory state arg can be inserted before the user args:
>>> def rats(a,b,c):
...     print(a,b,c)
...
>>> z = (2,3)
>>> rats(99, *z)
99 2 3
>>>

Packages
I think you're probably right about this - I'm probably stuck in (very) old ways here. I'll consider it some more over the next few days.
Config args
I'm also becoming convinced by this. My Pyboard work has an option for the ESP8366 to run a fixed binary firmware image. This therefore requires the config to be set at runtime by the Pyboard rather than from a fixed file baked into the image. Passing the config as constructor args is the neatest way to achieve this. However the idea of 'local.py' was also to promote consistency between multiple ESP8266 devices and the server. I anticipated a user creating the file and distributing it to each node, editing only the client ID. That way all other code files are unchanged between clients. But your solution still enables that approach.

Thank you for the fast answers.
I'll implement the state change coro as proposed, I think this is a good approach.
Just for confirmation: "Please feel free to implement changes to code and directory structures exclusively for packages"
Does that exclusively mean that the code should only support being used as a package resulting in the following relative import statement?
from . import primitives
Ok I'll try to do it in the next days. I'm currently in the last bits of documenting a big server implementation.

Yes, you've convinced me :) I think we should go for packages. You have the experience of using them so please implement them as you think best.
Let's be consistent throughout the project and require that modules are installed correctly.


want to use local cudnn in MXNet, how to modify the Makefile？

I modified Makefile from
ifeq ($(USE_CUDNN), 1)
    CFLAGS += -DMSHADOW_USE_CUDNN=1
    LDFLAGS += -lcudnn
endif

to
ifeq ($(USE_CUDNN), 1)
    CFLAGS += -I/home/ygy/cudnn/cuda_cudnn5.0/include
    LDFLAGS += -L/home/ygy/cudnn/cuda_cudnn5.0/lib64 -lcudnn
endif

it failed, so how to modify it? thx

How did it fail?

@piiswrong the system cudnn is 4.0,when training cifar10 it's speed is 295samples/sec, the local cudnn is 5.0, it's normal speed is 330samples/sec, I want to use local cudnn 5.0, so I modified the Makefile as shown above, it make success, but it's speed only 260samples/sec, so I think it has failed, so how to modify the Makefile to use local cudnn5.0 correctly?

you need to set LD_LIBRARY_PATH properly

@piiswrong
my  LD_LIBRARY_PATH is:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
how to modify it? thx

@blazerygy It's a linux problem not mxnet. I think the followed command may work for you.
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/home/ygy/cudnn/cuda_cudnn5.0/lib64:$LD_LIBRARY_PATH

All pre-built pip packages with GPU support are built with cudnn support now. See instructions here: https://mxnet.incubator.apache.org/get_started/install.html
I'm closing this issue due to lack of activity. Feel free to ping me to reopen if this is still an active issue.


Add teams/organizations to sharing model

This should be a new entity that runs/protocols can be shared with just like users.

Oops, duplicate ticket. Closing.


[BUG] Sum is used when calculating and reporting hot shard metrics

What is the bug?
We are using the sum of all data points in the sliding window to calculate the value of hot shard metrics and reporting it as the final results. This is inconsistent with the threshold which is set for each individual datapoint instead of the sum.
Ideally we should use median or mean to calculate the hot shards and report it as the final results.
How can one reproduce the bug?
Steps to reproduce the behavior:

Enable HotShardClusterRca on a OpenSearch Domain with loads
Check the HotShardClusterRca output with

curl -s --url localhost:9650/_plugins/_performanceanalyzer/rca\?name=HotShardClusterRca -XGET

What is the expected behavior?
The HotShardClusterRca results should be in the same order of magnitude as the threshold.

Thank you @ansjcy for submitting these findings.
I looked into this more in detail and I might have a bit different explanation:
It is true that values are not getting averaged and only getting summarized but the way the HotShard RCAs are configured by default implies that it doesn't matter when it comes order of magnitude of the results. Let me explain - HotShardRCA is only sending non-empty FlowUnits to the HotShardClusterRCA once every minute, and the HotShardClusterRCA is generating reports and clearing all the previous data also once every minute. This means that no combination of Index, Node, Shard can occur twice inside the same HotShardClusterRCA window, regardless of the aligning of different RCA windows that can potentially occur. This means no addition is really happening at all, thus creating no difference if the values are getting averaged or not. I've tried several runs to confirm this and it was as I expected, please correct me if I overlooked something.
The thresholds on the other hand may not be ideally set up as the expected values tend to vary a lot depending on the cluster configuration and the machines the OS is running on. I suggest we run benchmarks on most common cluster configurations used in production and create a table of suggested thresholds for each configuration.


fix #1049

cc @csmith, @RyanSquared, @daurnimator. This implements the latest proposal on the issue, e.g., ORAGONO__SERVER__WEBSOCKETS__ALLOWED_ORIGINS takes a value that can be deserialized as YAML (or JSON) into the Config.Server.WebSockets.AllowedOrigins field.

One of the things I wasn't sure about was error handling. I tried for parity with the backwards-and-forwards-compatibility guarantees associated with YAML: invalid paths are non-fatal errors, but deserialization errors (invalid YAML, invalid type for field) are fatal.

Yeah that approach to error handling seems very sensible.

Yep, that makes sense. And the code LGTM.


Failed to connect.

Hi Guys.
I having trouble is shown failed to connecting. Even though I changed my password.

Does your device work in the TAPO app? I have problems with P100 plugs that become "unavailable" in HA; the fix I have found which works best is to delete the device in the TAPO app and then set it back up using the original name, when complete restart HA and the device should be available again without having to set it back up in HA.
I have no idea why HA loses it, but the above is the quickest method I have found to re-add.

Yeah I am having the same issue :/

Removing and readding the plug in the tapo app solved the issue for me. Bevore I couldn't even ping the plug, after the ping was successful

Try v2.0.0


Scroll issue with nested ListView

Steps to Reproduce
Put ListView inside a ListView, and try scrolling from the inner ListView.
The inner ListView always get the scroll focus so the outer ListView cannot be scrolled from within that area.
cc/ @abarth

Thanks!

Fixed in https://github.com/flutter/flutter/commit/0e8b6aab46e84a08de7ee0cf25a2e664fae2030e


Fixing deletion from catalog during overwrite.

I had to make this fix on the fly during deployment because all sample queries from myria-web were succeeding but would not show results. The issue was a design oversight in the "delete relation" code: it always checked for the is_deleted flag to be set before deleting a relation from the catalog, but that only makes sense if we're going through the deletion API. In the overwrite scenario we shouldn't check the flag at all before deleting the relation.

I like that idea!

Created #757 to address schema issues.


Docstrings and indentation, bugfix and new method.

I've fixed some code style issues and a potential bug in display_bottom_half(), and added a new clear_all_bytes() to experiment with.
main.py should not be merged (custom pinout)!

These changes look great. I appreciate the formatting cleanup and the docstrings.


Brackets full screen OSX

Hey guys!
I just write because the new functions of "El Capitan" (still in beta) introduce a bug in brackets.
The bug is cause when brackets becomes full screen on the side to side function because as it doesn't support Mac OS X full screen size it can't got back to normal. Some other features are affected like change folder.
The solution is just to enable full screen yin brackets, what will change the + symbol to the full screen symbol

@PhysicsApp Thanks for reporting this.


Add localhost webauthn flow support

Currently it is not possible to run the webauthn flow from localhost (for local development purposes)
(This does not apply if you are using Valet with SSL-Certificates enabled)
What must be done for Webauthn support on localhost:

SSL-Certificate or domain (localhost) is in secured_relying_parties
Visit from http://localhost instead of http://<IP_ADDRESS>

This PR adds support for secured_relying_parties for the localhost option.
(This should probably never be active in production and only be added for local development purposes)

Thanks! I'm gonna double-check this one in a bit. Just noting down some references for later:

https://html.spec.whatwg.org/multipage/webappapis.html#secure-context
https://w3c.github.io/webappsec-secure-contexts/#potentially-trustworthy-url
https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts
https://webauthn-doc.spomky-labs.com/symfony-bundle/advanced-behaviors/dealing-with-localhost#secured-context
https://github.com/web-auth/webauthn-framework/pull/126


pypi install

The library should be installable via pypi. I can help you set it up. basically, there should be an option to run pip install ai-feynman. It also brings up the issue that requirements.txt should be working out of the box, but it has a few errors. if you run python3 -m pip install -r requirements.txt there is a big in the 'sympy = 1.4' line. It should be ==. Also, gfortran and cash are not pip installable. Those are yum install or apt-get install

https://python-packaging-tutorial.readthedocs.io/en/latest/uploading_pypi.html

https://snarky.ca/what-the-heck-is-pyproject-toml/


Using with view in layout

Hi @krimin-killr21
Currently we can directly use MaterialScrollBar directly from Java. But it takes the flexibility, so can you create a some view like com.packagename.MaterialScrollBar which would be really cool & flexible to move in layout hierarchy.
Let me know what you think about it.

@AkshayChordiya Do you mean directly in xml-layout files? Look at new version 8. Maybe this issue could be closed.


Bug: Unable to pay to Bolt 12 offers to CLN node

Describe the bug
I seem to be unable to pay to a Bolt 12 invoice generated by CLN.

Expected Behavior:

Should be able to pay the offer.

Actual Behavior:

Generate a Bolt 12 invoice on CLN
bolt12-playground on  cln [!?] via 🐳 desktop-linux via 🐍 v3.11.8 (zap-devenv-py3.11) via ❄  impure (devenv-shell-env) took 18s
❯ ./bin/clncli offer 10000 "test offer from cln"
{
   "offer_id": "6e322a6450edc31661b8376e6f2a25f23ef9eefa8f984914e7ab9537eb5034e2",
   "active": true,
   "single_use": false,
   "bolt12": "lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzsnw3jhxapqdanxvetjypn8ymmdyp3kcmskyypd6pxmsez7v27lrzkya86ktztm534cnp23g2d2l5yyy8t5t3ygnfg",
   "used": false,
   "created": true
}

Decode the invoice using LNDK
bolt12-playground on  cln [!?] via 🐳 desktop-linux via 🐍 v3.11.8 (zap-devenv-py3.11) via ❄  impure (devenv-shell-env)
❯ ./bin/lndk-cli decode lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzsnw3jhxapqdanxvetjypn8ymmdyp3kcmskyypd6pxmsez7v27lrzkya86ktztm534cnp23g2d2l5yyy8t5t3ygnfg
Decoding offer: lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzsnw3jhxapqdanxvetjypn8ymmdyp3kcmskyypd6pxmsez7v27lrzkya86ktztm534cnp23g2d2l5yyy8t5t3ygnfg.
Decoded offer: Offer { bytes: [2, 32, 6, 34, 110, 70, 17, 26, 11, 89, 202, 175, 18, 96, 67, 235, 91, 191, 40, 195, 79, 58, 94, 51, 42, 31, 199, 178, 183, 60, 241, 136, 145, 15, 8, 2, 39, 16, 10, 19, 116, 101, 115, 116, 32, 111, 102, 102, 101, 114, 32, 102, 114, 111, 109, 32, 99, 108, 110, 22, 33, 2, 221, 4, 219, 134, 69, 230, 43, 223, 24, 172, 78, 159, 86, 88, 151, 186, 70, 184, 152, 85, 20, 41, 170, 253, 8, 66, 29, 116, 92, 72, 137, 165], contents: OfferContents { chains: Some([06226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f]), metadata: None, amount: Some(Bitcoin { amount_msats: 10000 }), description: "test offer from cln", features: [], absolute_expiry: None, issuer: None, paths: None, supported_quantity: One, signing_pubkey: PublicKey(a589485c741d4208fdaa29145598b846ba9758569f4eac18df2be64586db04dd64a93e8286d617aa8db2a030bcc67f1493f4543d3fe4c1c4710251832cbb1983) } }.

Attempting to pay the offer from lndk
bolt12-playground on  cln [!?] via 🐳 desktop-linux via 🐍 v3.11.8 (zap-devenv-py3.11) via ❄  impure (devenv-shell-env)
❯ ./bin/lndk-cli pay-offer lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrcgqgn3qzsnw3jhxapqdanxvetjypn8ymmdyp3kcmskyypd6pxmsez7v27lrzkya86ktztm534cnp23g2d2l5yyy8t5t3ygnfg
2024-05-05T10:40:46.688023260+00:00 INFO lndk - Starting lndk for node: 03f42b31c4ee1870a75762c84c165bb74991f3e78818baaf4ad3f908804edda018.
2024-05-05T10:40:46.689176718+00:00 INFO lndk::onion_messenger - Consume messenger events received: messenger event: 02dd04db8645e62bdf18ac4e9f565897ba46b898551429aafd08421d745c4889a5 connected, onion message support: true.
2024-05-05T10:40:46.794970760+00:00 INFO lndk::onion_messenger - Sending outgoing onion message to 02dd04db8645e62bdf18ac4e9f565897ba46b898551429aafd08421d745c4889a5.
2024-05-05T10:42:26.759055+00:00 ERROR lndk - Did not receive invoice in 100 seconds.
Error paying for offer: InvoiceTimeout

Logs from CLN:
cln1-1      | 2024-05-05T10:40:46.796Z DEBUG   02dd04db8645e62bdf18ac4e9f565897ba46b898551429aafd08421d745c4889a5-hsmd: Got WIRE_HSMD_ECDH_REQ
cln1-1      | 2024-05-05T10:40:46.797Z DEBUG   hsmd: Client: Received message 1 from client
cln1-1      | 2024-05-05T10:40:46.797Z DEBUG   02dd04db8645e62bdf18ac4e9f565897ba46b898551429aafd08421d745c4889a5-hsmd: Got WIRE_HSMD_ECDH_REQ
cln1-1      | 2024-05-05T10:40:46.797Z DEBUG   hsmd: Client: Received message 1 from client
cln1-1      | 2024-05-05T10:40:46.798Z DEBUG   lightningd: Got onionmsg reply_path
cln1-1      | 2024-05-05T10:40:46.798Z DEBUG   lightningd: Calling onion_message_recv hook of plugin offers
cln1-1      | 2024-05-05T10:40:46.807Z DEBUG   hsmd: Client: Received message 25 from client
cln1-1      | 2024-05-05T10:40:46.808Z DEBUG   plugin-offers: sendonionmessage gave JSON error: {\"code\":-1,\"message\":\"Unknown first peer\"}
cln1-1      | 2024-05-05T10:40:46.808Z DEBUG   lightningd: Plugin offers returned from onion_message_recv hook call

Environment

LND Version: v0.18.0-beta.rc1
LNDK Version: 0f9b3c291af070ac35641d8b817d8e2ef7b8bbdf
Operating System: Docker

_Please do not include private information in bug reports! _
To Reproduce
See https://github.com/LN-Zap/bolt12-playground - follow the README.

Also having issues trying to pay to an Eclair node:
Generate a Bolt 12 invoice on Eclair
bolt12-playground on  master via 🐳 desktop-linux via 🐍 v3.11.8 (zap-devenv-py3.11) via ❄  impure (devenv-shell-env) took 24s
❯ ./bin/eclair-cli tipjarshowoffer
lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrc2zfjx7mnpw35k7m3qw3hjqetrd3skjuskyyp8sz03wetey0t387a7g3pg8xurvvfawcn9endpellplgc6mhvvpsc

Decode the invoice using LNDK
bolt12-playground on  master via 🐳 desktop-linux via 🐍 v3.11.8 (zap-devenv-py3.11) via ❄  impure (devenv-shell-env)
❯ ./bin/lndk-cli decode lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrc2zfjx7mnpw35k7m3qw3hjqetrd3skjuskyyp8sz03wetey0t387a7g3pg8xurvvfawcn9endpellplgc6mhvvpsc
Decoding offer: lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrc2zfjx7mnpw35k7m3qw3hjqetrd3skjuskyyp8sz03wetey0t387a7g3pg8xurvvfawcn9endpellplgc6mhvvpsc.

Attempting to pay the offer from lndk
bolt12-playground on  master via 🐳 desktop-linux via 🐍 v3.11.8 (zap-devenv-py3.11) via ❄  impure (devenv-shell-env)
❯ ./bin/lndk-cli pay-offer lno1qgsqvgnwgcg35z6ee2h3yczraddm72xrfua9uve2rlrm9deu7xyfzrc2zfjx7mnpw35k7m3qw3hjqetrd3skjuskyyp8sz03wetey0t387a7g3pg8xurvvfawcn9endpellplgc6mhvvpsc 10000
2024-05-05T15:22:08.538998965+00:00 INFO lndk - Starting lndk for node: 032dc046ebc6ef2e8092d9ac9cf2d0522321b5b3468e0d3ab11c79e24cc17f287d.
2024-05-05T15:22:08.539976590+00:00 INFO lndk::onion_messenger - Consume messenger events received: messenger event: 026ee11a8e5ce97eb726d89013b1c0b0a0b49c1c101b5d0ab87a31f1c37d04801b connected, onion message support: true.
2024-05-05T15:22:08.540022257+00:00 INFO lndk::onion_messenger - Consume messenger events received: messenger event: 027809f17657923d713fbbe4442839b836313d76265ccda1cffe1fa31addd8c0c3 connected, onion message support: true.
2024-05-05T15:22:08.645063215+00:00 INFO lndk::onion_messenger - Sending outgoing onion message to 027809f17657923d713fbbe4442839b836313d76265ccda1cffe1fa31addd8c0c3.
2024-05-05T15:22:08.753865632+00:00 INFO lndk::onion_messenger - Consume messenger events received: messenger event: 027809f17657923d713fbbe4442839b836313d76265ccda1cffe1fa31addd8c0c3 incoming onion message.
Error paying for offer: RouteFailure(Status { code: Unknown, message: "unable to find a path to destination", metadata: MetadataMap { headers: {"content-type": "application/grpc"} }, source: None })

Logs from Eclaie:
eclair1-1   | 2024-05-05 15:22:08,651 INFO  f.a.e.i.Peer n:032dc046ebc6ef2e8092d9ac9cf2d0522321b5b3468e0d3ab11c79e24cc17f287d - IN msg=OnionMessage(0231d043ceecd0b6834add529c6665bf560c300dfad94200715596f8e3f42c8e1e,OnionRoutingPacket(0,ByteVector(33 bytes, 0x0231d043ceecd0b6834add529c6665bf560c300dfad94200715596f8e3f42c8e1e),ByteVector(1300 bytes, #1714682055),be1c0f3768fe7d6c4988930a6e44501efb61d497be75fe721f8f6d2d87d782e1),TlvStream(Set(),Set()))
eclair1-1   | 2024-05-05 15:22:08,695 INFO  fr.acinq.eclair.io.Peer n:032dc046ebc6ef2e8092d9ac9cf2d0522321b5b3468e0d3ab11c79e24cc17f287d - received message from 032dc046ebc6ef2e8092d9ac9cf2d0522321b5b3468e0d3ab11c79e24cc17f287d: ReceiveMessage(InvoiceRequestPayload(TlvStream(Set(ReplyPath(BlindedRoute(027809f17657923d713fbbe4442839b836313d76265ccda1cffe1fa31addd8c0c3,02e38e1dbbb20eb2855f4a19daef9e0be21516559537cd6f9aa8504f78de822337,List(BlindedNode(027f0ddc49ba2369bc5c7913fa98bd6cb86d38f935b48fa19ff453f3addb2792ac,ByteVector(51 bytes, 0x13ed240cb9e97f870f319f3a8a53c4332806a2cc098868561a57d932e676d29ca5944feb4c1eddb97fc3b7e014bd3745f55323)), BlindedNode(030b129b0c69c2c07ed520a7e797bffef244774f8ee3cb39f22944e1b7f7704435,ByteVector(16 bytes, 0xe0ea17e1062fb37337692b984fcd078e))))), EncryptedData(ByteVector(16 bytes, 0x710f39ef37bdf067d46d4983b320bb16)), InvoiceRequest(TlvStream(HashSet(OfferDescription(donation to eclair), InvoiceRequestChain(06226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f), OfferNodeId(027809f17657923d713fbbe4442839b836313d76265ccda1cffe1fa31addd8c0c3), InvoiceRequestAmount(10000 msat), InvoiceRequestPayerId(035152aea7e809f8a8d8ab5f10c90fe604f613c8ee4d7cc64b9f9e478da6fdf2f9), OfferChains(List(06226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f)), Signature(8ecb07f6a0246dbd8a59f28c41a532a6f61c60027b2b24c0be291a520974ab2e20b7f9b205ca36b737a14f4a68f27f5103d12dde8e3cbdfd2288e0059f0f1030), InvoiceRequestMetadata(ByteVector(80 bytes, 0x7e3ce0f9e366c91f97f11c2b3f683caf498b38174c27316e99d61c5d86a560e06f0da34d0ffa827e3b2c7498ada3c18792f6d3e0f8b2a070e5a1cff1e5bdf3a0d4f7253e6020788aefea1428187e4b79))),Set()))),Set()),TlvStream(Set(),Set())),<private_key>)
lndk1-1     | 2024-05-05T15:22:08.753908091+00:00 INFO lndk::onion_messenger - Consume messenger events received: messenger event: 027809f17657923d713fbbe4442839b836313d76265ccda1cffe1fa31addd8c0c3 incoming onion message.
lnd1-1      | 2024-05-05 15:22:10.613 [ERR] RPCS: [/lnrpc.Lightning/QueryRoutes]: unable to find a path to destination
lnd1-1      | 2024-05-05 15:22:10.616 [ERR] RPCS: [/lnrpc.Lightning/SubscribeCustomMessages]: context canceled

Actually, got it to work with Eclair. Seems that my eclair regtest node doesn't properly sync with Bitcoind.
Even though I had opened a channel, it was marked as inactive, because Eclair was still on block 0 even though bitcoind and lnd were on block 120. Restarting Eclaier a few times and mining more blocks seemed to get it to sync. There must be some trick I'm not aware of to get an Eclair regtest node to sync properly. Seems really random.
The issue with CLN still stands tho. Which looks possibly related to https://github.com/ElementsProject/lightning/issues/7110

@mrfelton thanks for giving this a test run! Yeah hopefully once the CLN issue that you pointed to is resolved we'll be able to pay CLN offers. Eclair works, and I believe LDK produced offers should work with the latest release as well, though I still need to test/confirm with ldk-sample or something

Yes - can confirm I do have this working with Eclair, so can confirm the issue looks to be with CLN specifically.

I'm having issues with CLN as well. Here are some test results.
This case fails (CLN sender: "WIRE_INVALID_ONION_BLINDING (reply from remote)"):
                    BOLT12 offer with blinded paths
   sender                                                                   receiver
+-----------+   public   +-----------+   public     +--------+   private   +--------+
|   CLN     |   channel  |  public   |   channel    |  LND   |   channel   |  CLN   |
|   v24.08  |   ------>  |  network  |   ------->   |  LNDK  |  ------->   | v24.08 |
+---------- +            +-----------+              +--------+             +--------+

This case fails (LND sender: "failed: InvalidOnionHMAC"):
                    BOLT12 offer without blinded paths
  receiver                                            sender
+-----------+   public   +-----------+   public     +--------+
|   CLN     |   channel  |  public   |   channel    |  LND   |
|   v24.08  |   <------  |  network  |   <-------   |  LNDK  |
+---------- +            +-----------+              +--------+

This case fails (Strike sender: "We were unable to find a payment route"):
                    BOLT12 offer without blinded paths
  receiver                                            sender
+-----------+   public   +-----------+   public     +--------+
|   CLN     |   channel  |  public   |   channel    | strike |
|   v24.08  |   <------  |  network  |   <-------   |        |
+---------- +            +-----------+              +--------+

This case succeeds:
                    BOLT12 offer without blinded paths
  receiver                                                                   sender
+-----------+   public   +-----------+   public     +--------+   private   +--------+
|   CLN     |   channel  |  public   |   channel    |  LND   |   channel   |  CLN   |
|   v24.08  |   <------  |  network  |   <-------   |  LNDK  |  <-------   | v24.08 |
+---------- +            +-----------+              +--------+             +--------+

This case succeeds:
                    BOLT12 offer with blinded paths
  receiver                                                                                sender
+---------------------------+      ?     +-----------+   public     +--------+   private   +--------+
|<EMAIL_ADDRESS>  |   channel  |  public   |   channel    |  LND   |   channel   |  CLN   |
|    probably LDK?          |   <------  |  network  |   <-------   |  LNDK  |  <-------   |        |
+-------------------------- +            +-----------+              +--------+             +--------+

This case succeeds:
                    BOLT12 offer with blinded paths
  receiver                                                            sender
+---------------------------+      ?     +-----------+   public     +--------+
|<EMAIL_ADDRESS>  |   channel  |  public   |   channel    |  LND   |
|    probably LDK?          |   <------  |  network  |   <-------   |  LNDK  |
+-------------------------- +            +-----------+              +--------+

I did some more tests:
This case succeeds:
                    BOLT12 offer with blinded paths
  receiver                                                                     sender
+-------------+      ?     +-----------+   public     +--------+   private   +--------+
|   phoenix   |   channel  |  public   |   channel    |  LND   |   channel   |  CLN   |
|    wallet   |   <------  |  network  |   <-------   |  LNDK  |  <-------   |        |
+------------ +            +-----------+              +--------+             +--------+

This case succeeds:
                    BOLT12 offer with blinded paths
  receiver                                              sender
+-------------+      ?     +-----------+   public     +--------+
|   phoenix   |   channel  |  ACINQ    |   channel    |  LND   |
|   wallet    |   <------  |           |   <-------   |  LNDK  |
+-------------+            +-----------+              +--------+

This case fails:
                    BOLT12 offer without blinded paths
  receiver                                            sender
+-----------+   public   +-----------+   ?          +---------+
|   CLN     |   channel  |  public   |   channel    | phoenix |
|   v24.08  |   <------  |  network  |   <-------   | wallet  |
+---------- +            +-----------+              +---------+

This case fails:
                    BOLT12 offer with blinded paths
   sender                                                                     receiver
+-------------+      ?     +-----------+   public     +--------+   private   +--------+
|   phoenix   |   channel  |  ACINQ    |   channel    |  LND   |   channel   |  CLN   |
|    wallet   |   ------>  |           |   ------->   |  LNDK  |  ------->   |        |
+------------ +            +-----------+              +--------+             +--------+

This case fails because of https://github.com/lndk-org/lndk/issues/123 :
 BOLT12 offer with blinded paths
   sender                receiver
+--------+   private   +--------+
|  LND   |   channel   |  CLN   |
|  LNDK  |  ------->   | v24.08 |
+--------+             +--------+

@TheBlueMatt can you confirm what type of node your offer stored at<EMAIL_ADDRESS>uses? Since I've used it as a test case above, would like to be able to clarify what that test case represented.


MultiChangeBuilder should not throw new IllegalStateException("Cannot commit multiple changes since none have been added"); when empty

Desired Feature
When building a multi change with MultiChangeBuilder it may often occur that no actual changes will be registered (e.g. replace all function with no matching search results).
Either the MultiChangeBuilder should just ignore (i.e. noop) in such a case or at least provide API to allow it's caller to see if there are changes to commit.
Current Workarounds
At the moment one has to clumsily note if there are actual changes in the MultiChangeBuilder, e.g. like this:
	private void replaceAll(ActionEvent e) {
		boolean hasChanges = false;
		MultiChangeBuilder<?, String, ?> multiChange = area.createMultiChange();
		IndexRange range = getSearchFunction().search(area.getSelectedText(), search.getText(), 0);
		while (range != NOT_FOUND) {
			multiChange.replaceText(range.getStart(), range.getEnd(), getReplacement(area.getText(range)));
			hasChanges = true;
			range = getSearchFunction().search(area.getSelectedText(), search.getText(), range.getEnd());
		}
		if (hasChanges) {
			multiChange.commit();
		}
	}

I have no idea what the thinking is behind MultiChangeBuilder throwing IllegalStateException and it not rather being a noop as suggested.  So I've submitted a PR adding a hasChanges() method, which will help.


FIX: type imports not generated correctly for non-fetching endpoints

Fixes #700
To help everyone out, please make sure your PR does the following:

[x] Update the first line to point to the ticket that this PR fixes
[x] Add a message that clearly describes the fix
[x] If applicable, add a test that would fail without this fix
[x] Make sure the unit and integration tests pass locally with pnpm run tests and cd integration && pnpm run tests
[x] Includes a changeset if your fix affects the user with pnpm changeset

This should fix the issue in #700. We were only generating types if it had any fetching process (e.g. a houdini_load or inline query). Now, we generate types if there is a valid file in the route.

@AlecAivazis
I noticed a small caveat which I think shouldn't be too much of a problem but is worth mentioning.
If there is just a +page.gql or +layout.gql in a route, the type gen will fail since there is not corresponding sveltekit type file. Whilst no one should have just a +page.gql in their project alone (as it would have no use whatsoever), it could still happen. Do you think we should cover this case?

Hm, that's a good question. Given your edit, I think we should still support it since it's the "correct" behavior from kit's standpoint. Is there a reason not to?

Hm, that's a good question. Given your edit, I think we should still support it since it's the "correct" behavior from kit's standpoint. Is there a reason not to?

Ok I'll put it in. The only reason not to would be to discourage the behaviour. However a log should suffice.

Ok sorry about that I didn't realise the tests weren't working. Just needed to add stub to generate types.

Hi @AlecAivazis , tests pass locally. I think it just needs to re-run

@AlecAivazis All done now I think.

Ok it passes all tests including the extra e2e coverage. I think this is all good now.
sorry for the extra merge btw, git was being weird.

No problem at all! I appreciate all the time and effort you're putting into this 🙌 There is currently an issue preventing vercel from building the site but I'll just force it through and fix it afterwards

Yea, no worries - I'm watching this. I think this is good to go with your latest update. Thanks again!

Thanks a lot for your work guys <3


Remove leading space in header definition

Header definition with leading space before a colon can lead to broken cURL requests

Thanks for the PR!


C types

fixes #31

Can you rebase for the tests to pass ? (I added a timeout so they would at least crash. I had to crash them by hand here)

I rebased so this can be merged, but it isn't yet ready - I haven't looked at the windows code.

I wasn't done! I'm still working on windows!

Oh sorry, can you push another PR ? I thought you wanted another PR for windows. (Maybe put WIP in PR name, I usually use this to know that it is not meant to be merged)


Log too verbose

When setting up a notification two messages dirty up the log
I/flutter ( 6874): Notification created
D/NotificationScheduler( 6874): Scheduled created
I/flutter ( 6874): Notification created
D/NotificationScheduler( 6874): Scheduled created
I/flutter ( 6874): Notification created
D/NotificationScheduler( 6874): Scheduled created
I/flutter ( 6874): Notification created
D/NotificationScheduler( 6874): Scheduled created
I/flutter ( 6874): Notification created

Can you make it so no message appears?

Sure! Its removed for next release.

@rafaelsetragni thank you very much!

Can you also remove the cancelled notifications verbosity?
D/AwesomeNotificationsPlugin( 6442): Notification cancelled
D/NotificationScheduler( 6442): Scheduled created

Gunny, i did it yesterday. Thanks!
Ive also create the dismissNotification method, to clear the notification from tray withou cancel any active schedule. I will soon release this new version.

Thank you very much!


fix(atomic): fix accessibility issues with pager/results per page buttons

This PR fixes the accessibility issues with the pager/results per page buttons. More specifically, it was not possible to navigating between pager or results per page buttons without selecting one, triggering a refresh of the results.
The solution is to have the buttons inside a toolbar and implement the logic described here:
https://www.w3.org/WAI/ARIA/apg/patterns/radio/#:~:text=For Radio Group Contained in a Toolbar
https://coveord.atlassian.net/browse/KIT-3767

LGTM but google's pagination is very different, why do we need something more complex ? For them it is simply 'tab' to get to the next element.

@alexprudhomme I agree with you, I'm not sure why the pager was made with radio buttons instead of just regular buttons...


datetime-utc dynamically

I need the ability to display the time in local time or utc based on a user selection. Is there currently a way to dynamically change the timezone of the input field?

Currently, no. The timezone is set when linked: https://github.com/eight04/angular-datetime/blob/master/src/directive.js#L199 . It is like a switch to change between input[datetime] and input[datetime-local]. (Note that there is no browser support datetime: https://github.com/whatwg/html/issues/336)
Should we implementing it?

For now i am using ng-if to switch between 2 versions of the directive, which is not ideal. I might do a pull to add support for it dynamically. It would be very useful if the datetime-utc directive could be triggered by a property.

Maybe we can create a binding ($watch) if attrs.datetimeUtc is a string and length > 0.
<input ... datetime-utc="aVar">

Then we create a binding to scope.aVar.

https://github.com/eight04/angular-datetime/compare/dev-dynamic-utc
Try the demo:
https://rawgit.com/eight04/angular-datetime/dev-dynamic-utc/example/demo.html

Fixed in 3.2.0.


Update dust model  to use latest dust model components

The dust model is called or referenced in the following functions that will need to be updated:
mc_generate_dust_params
This function generates the dust parameters based on logsm_obs, log_ssfr, redshift and alt_dustpop_params.
Then once these parameters are available, precompute_dust_attenuation computes the attenuation factors for whatever filters have been selected.
Both of these functions will need to be updated to use the new dust model components.

Resolved by #47


Campaign Manager can't create new Goals under "Manager Campaign" page

Login as campaign manager. Click the "Manage Campaign" button and select a campaign. Click on the "Create New" button under Goals. You will see "Access denied due to insufficient permissions" on the page

Closing as duplicate of #2146
NOTE: this was raised first but have started discussion on #2146 already for validation of the permissions


Add Doxygen+GraphViz Support

Relates to https://github.com/nick-thompson/blueprint/issues/12

Yea, I looked at Doxygen; I realize it's a standard in C++ projects but this project very fluidly spans JavaScript and C++, and I don't know Doxygen well enough to know if it covers both sides or how to integrate the C++ side into some broader docs for the JavaScript side. So, I adopted a plan of just manually documenting to ensure cohesiveness across the language boundary, which is what #12 aims to cover

No worries.

Awesome 😁 sounds great!

Oh! That sounds good. Just an fyi that Doxygen supports JS - I'll see if I can work that in somehow, alongside some README.md or whatever to explain how to go about generating the documentation with it.


Merging master to live for release-0.2.1809

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/prelude/microsoft.quantum.extensions.testing.assertqubitstate.yml
:white_check_mark:Succeeded

articles/libraries/control-flow.md
:white_check_mark:Succeeded

articles/quantum-InstallConfig.md
:white_check_mark:Succeeded

articles/quantum-QR-TypeModel.md
:white_check_mark:Succeeded

articles/quantum-RelNotes.md
:white_check_mark:Succeeded

articles/quantum-computer-trace-simulator-depth-counter.md
:white_check_mark:Succeeded

articles/quantum-computer-trace-simulator-primitive-operations-counter.md
:white_check_mark:Succeeded

articles/quantum-computer-trace-simulator-width-counter.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.


enhancement: support disk type and  io-latency cgroup operations

What type of PR is this?
Enhancements
What this PR does / why we need it:
For io qos features, when we deal with dirtymemory, we need to know the disk type.
When we set io.latency, we need io.latency related cgroup operations.
Which issue(s) this PR fixes:
None.
Special notes for your reviewer:
None.

this pr is based on a out-of-dated version, can't be reviewed at all @lubinszARM

also, pls add labels


[FEATURE] make resolveEntrypoint() async, improve perf

The problem that you want to solve.

In Snowpack v3.1, we use resolveEntrypoint() to resolve every package import.
This function is synchronous and blocking. This causes trouble when many files are loaded at once, since each one blocks the other. Even though it only takes a couple of ms per call, this can easily get up to ~100+ms in a medium/large snowpack app.
We've added some memoization to improve this perf on second load, but first page load still suffers.

Your take on the correct solution to problem.

make resolveEntrypoint() async
convert all synchronous file actions to async
@matthewp I know we talked about this a while back, but can we get rid of explodeExportMap() when we're just trying to resolve a specifier to its final location? We should be able to resolve one specifier without generating an entire object of all possible entrypoints, every time.

Are you willing to submit a pull request to implement this change?
@matthewp would love for you to take a look at this! Here's the snippet that I was testing with in create-snowpack-app (react):
import React, { useState, useEffect } from 'react';
import logo from './logo.svg';
import './App.css';

+import * as pkg from 'antd';
+import * as pkg2 from '@ant-design/icons';
+console.log(pkg, pkg2);

Happy to do this. Did some preliminary investigation and found this:
[snowpack] ! building dependencies...
[snowpack] Installing specifiers Set(4) { '@ant-design/icons', 'antd', 'react', 'react-dom' }
[snowpack] resolveWebDependency: 2.431ms
[snowpack] resolveWebDependency: 1.383ms
[snowpack] resolveWebDependency: 0.716ms
[snowpack] resolveWebDependency: 0.683ms
[snowpack] loopSpecifiers: 6.17ms
[snowpack] ✔ dependencies ready! [16.04s]

Here loopSpecifiers is the fully loop over all install targets (which does some stuff other than just resolveEntrypoint).
Some thoughts:

Making resolveEntrypoint async would be a breaking change.
explodeExportMap is not used by any of these packages because they do not have an exports field.
explodeExportMap is in this function because if the specifier is pointing to an entrypoint that has a wildcard mapping we have to explode it to know if the specifier is valid.  We could refactor this code a little bit, maybe create a findInExportMap(specifier) that just searches for an entry without exploding unless it comes across a wildcard. But it wouldn't help this specific case.
I think resolveEntrypoint could become more of a perf issue if there were lots of specifiers for the same package, because there is no caching in that function. We should be able to cache some of the expensive work like getting the package.json, exploding the export map, etc. by package name. I'm not sure how much it will help the overall slow build though.
My guess is that the slowness here is actually running rollup on the package. May be there's another approach to help with this scenario? For example could we use pre-built versions in some scenarios?

Happy to talk about it, or I can do more investigation on what the bottleneck is here.

The problem is that that function is being called for internal package imports as well. antd is annoying because it has a lot of internal imports. When each one blocks for ~1-2ms (no other parallel work can happen) that's when we run into this issue.
I agree the breaking change is a problem, could we wrap this with something that blocks, for the public function? Hmm, maybe we hold off until a v4.0 (I think we have enough things saved up that it makes sense to target this).

I added memoization one level above this, so it's not a critical issue anymore.

Ah ok, in that case we should look into what can be memoized within resolveEntrypoint as well. Things like getting the package.json can.


Euclidean Distance for KNN

Describe the bug
I cannot seem to find euclidean distance as a metric for KNN
I checked the example file "02_classification_univariate.ipynb"

I found the cell containing euclidean distance disabled

To Reproduce
from sktime.classification.distance_based._time_series_neighbors import KNeighborsTimeSeriesClassifier
knn = KNeighborsTimeSeriesClassifier(n_neighbors=1, metric="euclidean")

ValueError: Unrecognised distance measure: euclidean. Allowed values are names from [dtw,ddtw,wdtw,wddtw,lcss,erp,msm] or please pass a callable distance measure into the constuctor directly.

Expected behavior
Euclidean distance should be implemented
Versions

System:
python: 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]
machine: Windows-10-10.0.18362-SP0
Python dependencies:
pip: 20.3.1
setuptools: 50.3.2
sklearn: 0.23.2
numpy: 1.19.4
scipy: 1.5.4
Cython: 0.29.21
pandas: 1.1.5
matplotlib: 3.3.3
joblib: 1.0.0
numba: 0.52.0
pmdarima: None
tsfresh: 0.17.0

Thanks @isma3ilsamir for raising the issue! Seems like it hasn't been implemented (the distance module generally requires some reworking). Would you be interested in looking into it?

@isma3ilsamir, indeed we wanted to refactor along the lines of sklearn's Gaussian process kernels/distances interface, or #52.

Yes I would like to help by looking into it. I will get in contact with you guys.
As for now, I think I figured out a simple workaround, which I compared to the results of KNN from pyts
I imported euclidean distance from scipy
from pyts.classification import KNeighborsClassifier
knn_pyts = KNeighborsClassifier(n_neighbors=1, metric='minkowski', p=2)

from sktime.classification.distance_based._time_series_neighbors import KNeighborsTimeSeriesClassifier
from scipy.spatial.distance import euclidean
knn_sktime = KNeighborsTimeSeriesClassifier(n_neighbors=1, metric= euclidean)

In my code I am doing a cross-validation on the 'GunPoint' dataset, I got matching test_scores for the best classifiers on both sides, but sktime seems to be slower during testing phase (higher mean_score_time)
classifier                                                    knn_pyts
mean_fit_time                                                0.0150073
std_fit_time                                                0.00407161
mean_score_time                                              0.0148039
std_score_time                                              0.00443729
param_weights                                                  uniform
param_leaf_size                                                      1
param_algorithm                                                   auto
params               {'weights': 'uniform', 'leaf_size': 1, 'algori...
split0_test_score                                                 0.95
split1_test_score                                                 0.95
split2_test_score                                                0.975
split3_test_score                                                0.875
split4_test_score                                                0.975
mean_test_score                                                  0.945
std_test_score                                               0.0367423
rank_test_score                                                      1
dtype: object
######################################################################
classifier                                                  knn_sktime
mean_fit_time                                                0.0113755
std_fit_time                                                0.00174931
mean_score_time                                               0.210663
std_score_time                                               0.0278029
param_weights                                                  uniform
param_algorithm                                                  brute
params                    {'weights': 'uniform', 'algorithm': 'brute'}
split0_test_score                                                 0.95
split1_test_score                                                 0.95
split2_test_score                                                0.975
split3_test_score                                                0.875
split4_test_score                                                0.975
mean_test_score                                                  0.945
std_test_score                                               0.0367423
rank_test_score                                                      1
dtype: object

hi, I have rolled this into this issue just to tidy up a bit and make sure we address all related issues together,
https://github.com/alan-turing-institute/sktime/issues/596

hi, I have rolled this into this issue just to tidy up a bit and make sure we address all related issues together,
https://github.com/alan-turing-institute/sktime/issues/596


Error when trying to make it work as an IoT Edge module on a Raspberry PI3

Hello,
As the title says, I'm trying to use this module with IoT Edge on a Raspberry Pi3.
I couldn't use directly the public repository because of the "exec format error" as explained in the issue #112.
I built my own image of the code with the Dockerfile.arm32v7 and uploaded it to an Azure docker repository, then set it as a module for my Iot Edge instance.
First, the logs showed that it couldn't find the connection string, so I passed it as an environment variable.
After that, I got the message ErrorCode:IotHubUnauthorizedAccess;Unauthorized and I can't find the problem.
The connection string is correct, the clock of the raspberry pi is correctly set and synchronised.
Full error message :
07/02/2018 14:23:05:{"Message":"ErrorCode:IotHubUnauthorizedAccess;Unauthorized","ExceptionMessage":"Tracking ID:edf5471e3e694686a8d8bab84169bb4c-G:16-TimeStamp:07/02/2018 14:23:05"} 07/02/2018 14:23:05:    at Microsoft.Azure.Devices.HttpClientHelper.ExecuteAsync(HttpClient httpClient, HttpMethod httpMethod, Uri requestUri, Func`3 modifyRequestMessageAsync, Func`2 isMappedToException, Func`3 processResponseMessageAsync, IDictionary`2 errorMappingOverrides, CancellationToken cancellationToken)    at Microsoft.Azure.Devices.HttpClientHelper.GetAsync[T](Uri requestUri, TimeSpan operationTimeout, IDictionary`2 errorMappingOverrides, IDictionary`2 customHeaders, Boolean throwIfNotFound, CancellationToken cancellationToken)    at OpcPublisher.IotHubMessaging.InitAsync() in /build/src/IotHubMessaging.cs:line 183
Thanks.

the changes for IoTEdge support will come in the next few days to latest. it would be great if you could validate them on Pi3 after they are in.

Can you give it a try after this PR https://github.com/Azure/iot-edge-opc-publisher/pull/131 has been merged?

a container for ARM32 is now available via Microsoft Container Registry. find the tags available on https://hub.docker.com/r/microsoft/iot-edge-opc-publisher/


Cross compilation support

Any update on this? This flake is awesome, but cross-compilation is pretty important for some projects :).

Hey, thanks for the interest. I intend to work on this, but currently I'm working on dream2nix so that I can use it in nix-cargo-integration (#49). dream2nix currently doesn't implement support for cross-compilation, but when it does it would mean that nix-cargo-integration essentially gets it for free.

Does dream2nix still doesn't support cross-compilation?

I got cross-compilation working on this commit by basically just setting targets in rust-toolchain.toml], but since the migration to flake-parts, it doesn't seem to be quite that simple.

I got cross-compilation working on this commit by basically just setting targets in rust-toolchain.toml], but since the migration to flake-parts, it doesn't seem to be quite that simple.

What exactly is the problem you are having right now? I've an example in the repo that uses targets as well and it seems to be working fine.

I was trying to cross-compile for the Raspberry Pi Pico. I must have updated some flake to a bad revision; the current ones let me compile successfully.


Example of get API linked via axios from React component

HI,
I am trying to make a get request from App.js to my route in app.py, where the documentation says to put all the routes but I receive always 404.
Is it possible to have an example of a working get request with the displayed result on app.js?
I mean, I know how to do a get request with axios but I would be sure I am doing everything right.

I have run app.py by terminal with python3 app.py to fix some errors on my code but then at line 7 I got this error:

something wrong with ports?

Ok I solved, I found out that in my app.js should call localhost with port: 3001. Maybe is it better to write it in documentation?


GitHub Issue #38: truncate payload

Truncation is ready for review. This was implemented to resemble truncation strategies from the Ruby notifier as close as possible.

This looks very good, I'll give it another once over to see if we can get this merged today.

Tests pass, but lint doesn't like the long lines in the tests. Should be a simple fix then we can merge this and release 1.1

Okay, this is ready for merging

👍


refactored the PDDL OSLC shapes, better representation for And, Or, a…

…nd all predicates used in the Goal Description. According modeled the warehouse_domain.ttl with the moveToWayPoint action. Other actions will be modeled later in a similar fashion. Next step is to work on the Prolog part for generating PDDL domain files. Note that current planner_reasoner.pl is outdated.

We should close this without merging as all the changes are merged in #25.

Closed without merging, changes incorporated in #25.


Prev/Next Links at Bottom missing dev/docs

The Prev/Next buttons at the bottom of the page return a link relative to site root:
http://mysite.com/en/documentation/sub_doc/sub_doc/
instead of
http://mysite.com/dev/docs/en/documentation/sub_doc/sub_doc/
All other links on the page are fine.

Closing due to inactivity, feel free to reopen if this is still a problem


Permissionsex does not run in my cracked server

Well, I have a server where my friends and i used to play. One day one friend asked if he could enter, but he was not premium so I had to crack the server. Now the permissions does not work and we have lost all the inventories.
Is there any option to have the server cracked with all the inventories back and permissions?
Thanks

[12:19:13] [Server thread/INFO]: [PermissionsEx] Loading PermissionsEx v1.23.4
[12:19:13] [Server thread/WARN]: [PermissionsEx] This server is in offline mode. Unless this server is configured to integrate with a supported proxy (see http://dft.ba/-8ous), UUIDs may not be stable!

PEX does not support cracked servers - buy the game.
On Sat, Nov 30, 2019, at 03:19, SirAlox wrote:

[12:19:13] [Server thread/INFO]: [PermissionsEx] Loading PermissionsEx v1.23.4
[12:19:13] [Server thread/WARN]: [PermissionsEx] This server is in offline mode. Unless this server is configured to integrate with a supported proxy (see http://dft.ba/-8ous), UUIDs may not be stable!

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/PEXPlugins/PermissionsEx/issues/3060?email_source=notifications&email_token=AAEZSZCJAQQ2ONWINPNW433QWJD5TA5CNFSM4JTGDW42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFQCV7A#issuecomment-559950588, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEZSZCXYP2DRWH6F7BSECLQWJD5TANCNFSM4JTGDW4Q.


Invalid MPL cache entry lifetime value

I've just spotted that OT sets OPENTHREAD_CONFIG_MPL_CACHE_ENTRY_LIFETIME to 5 seconds.
Current specification defines it to 30 minutes (according to RFC7731), but this time may be reduced to 90 seconds (due to errata SPEC-679)
If we adjust our cache lifetime, I believe there is a need to store our MPL Sequence value in a persistent storage, as it is done for MLE and MAC frame counters (e.g. store after each 32 MPL transactions or so..).
Do you think we should implement it, and if yes, where should we store MPL sequence value:
- add a new key of settings to store MPL sequence only e.g. kKeyMplInfo inside the module
- put MPL sequence value into kKeyNetworkInfo  (may be hard to implement)
- add a new key of settings to store IP6 protocol data (currently only MPL) e.g. kKeyIp6Info with function  Ip6::Store() similar to Mle::Store()

Regarding the SEED_SET_ENTRY_LIFETIME value, I believe even 90 seconds is much longer than we need.  With relatively small values of DATA_MESSAGE_IMAX and DATA_MESSAGE_TIMER_EXPIRATIONS should mean that something on the order of 5 seconds should be sufficient.  Thoughts?
I'd like to avoid non-volatile storage of the MPL Sequence value, if possible.

@jwhui I'm fine with the current solution.
But maybe we should propose this change to be included in the specification.
I can easily imagine situation where node with OpenThread stack may have problem to send MPL messages to nodes with other Thread stack. e.g. after reset (in worst case other nodes will not hear up to 27 MPL messages)


Configure sentry to only collect console statements

Configures sentry/browser to only collect console events.
Keeps the default Sentry integrations with default options.

I think I'm missing some context for this.  What's the goal of this PR?