Cleanup of jetty user and /app symlink

Fixes #85 by

removed the symlink that is created in the Dockerfile
updated docker-entrypoint.bash to look for content in app and only create the symlink if needed
removed the setuid module
add USER jetty to the Dockerfile

Thanks Greg! I just updated description to use issue auto-close keyword, and created a more descriptive title.

@meltsufin This is ready again for consideration.
Note that the openjdk image does an apt-get update, then installs some packages and then apt-get clean.  So I have followed that pattern here.    However I can see an argument to remove the clean from both images.
With the clean, every image has to update the apt repos before installing every module. This means they get a view of the repos at the time they are built rather than at the time the parent image was built.
However, it could be argued that when using a parent image, it would be best to install the packages that were available at the time the image was created.   If users want the latest/greatest, they are always free to update themselves.
Note that cleaning the cache does not reduce image size, as the files will still be added in one layer and removed in the next.  In fact an image that is extended several times in this way may have the apt cached added and deleted several times, so it may have several copies in the image file.

I just came across these docker best practices regarding apt-get, and they say that you don't actually need to run apt-get clean at all.
If you're removing the cache as part of the same RUN command, why would it be added to any layer?

You are probably right that by being part of the same RUN command, it does not add to the layers.  However, shall we follow the best practises and remove the clean from openjdk and jetty runtimes?

From that link ...

In addition, cleaning up the apt cache and removing /var/lib/apt/lists helps keep the image size down. Since the RUN statement starts with apt-get update, the package cache will always be refreshed prior to apt-get install.

apt-get clean or apt-get clean all will remove the /var/cache/apt cache contents and update the internal metadata tracking of that cache.
rm /var/lib/apt/lists/*_* will remove the apt lists (different then the apt cache)

Does the official google linux image have a bootstrap that cleans out the apt cache every time the docker image is started?
The ubuntu image does it like this : https://github.com/docker/docker/blob/03e2923e42446dbb830c654d0eec323a0b4ef02a/contrib/mkimage/debootstrap#L82-L105

@joakime thanks for pointing out that text.  I think we are doing the right thing by update&&install&&clean&&rm in a single RUN command.  This will give us minimal size image and no cleanup to do on boot.

Our base image is Debian. It looks like we do have the auto clean setup. Doesn't this mean we can remove the apt-get clean statements without affecting the image size?

Wow - I've been corrected back and forth 3 times in 5 minutes :) Yes that does indicate we can remove the cleans from our docker file in both jetty-runtime and openjdk-runtime.

If you want to be careful of image size, then we should apt-get clean to produce a smaller image.
If we went the route of the debian auto clean setup then that means the image will contain the /var/cache/apt and everyone that downloads / uploads that image will have that directory, but the moment they run that image the /var/cache/apt is removed.
To explain this in more detail, lets use /jetty-runtime/ as an example.
And lets say the /openjdk-runtime/ was built without the apt clean step.
IIRC, The /jetty-runtime/ Dockerfile does no apt-get of its own, so ...

Build /jetty-runtime/ Dockerfile
FROM openjdk-runtime image (it has /var/cache/apt present, and downloads an image with /var/cache/apt present)
Apply /jetty-runtime/ RUN commands
openjdk-runtime image starts
automatic debian 'auto clean setup' runs and removes /var/cache/apt
RUN commands for /jetty-runtime/
Stop /jetty-runtime/ image on specified new tag (does not contain /var/cache/apt)

This means that the /openjdk-runtime/ has the /var/cache/apt, but the resulting /jetty-runtime/ image does not.  Does this make sense?

Ultimate the decision comes down to ...

Do we want a small image at runtime?
Do we want a small image for upload/download reasons?

If you want a small image at runtime, and don't care about upload/download sizes, then remove apt-get clean, as everyone will just use FROM jetty-runtime and then do their own thing, which will automatically clean up the results from the /jetty-runtime/ image.  Leaving the small image size question for the user of this image.
if you want a small image for upload/download of the /jetty-runtime/ base image reasons, then keep the apt-get clean

Sorry guys I'm a bit slow this morning..., but now I think I'm fully up to speed:

Jetty-runtime Dockerfile currently does no apt-get itself, but this PR adds one.
the debian base image has been modified so that an apt-get clean will also do a com/google/apphosting/runtime/jetty9
our openjdk image and this PR go 1 step further and also do rm /var/lib/apt/lists/*_*
since the recommendation from Docker is to always do an update before any other installs, it makes little sense to leave a package cache in the image.

So I think openjdk-runtime and this PR are doing the right thing.   My only question now is should the rm /var/lib/apt/lists/*_* be moved to the debootstrap?

Note that you can see the layers of an image, and their individual sizes with ...
docker history <image-id>

Test it with, and without, the apt-get clean and see what the results are (instead of speculation based on debian behavior, docker behavior, and docker documentation interpretation)

Testing this PR, the command to add sudo with a clean adds a 3.4MB layer to the image. Without the clean it add a 14.15MB layer to the image.  This is approx 3% of the image size and thus a saving I think is worth making.

Ok, I think that settles it! :) Thanks @joakime and @gregw
The note in Docker's guide is a bit misleading because it makes it sound like there's no point to running 'apt-get clean'.

On a different note, I'm trying to run the image built from this PR and getting this:
$ docker run --rm -p8080:8080 jetty:9.4
/bin/bash: /docker-entrypoint.bash: Permission denied

Sorry, going back to measuring the size of the layer with and without the clean, I'm not getting the same results as @gregw. For me, the layers and the resulting images are same size either way.
sha256:13fe747872d67c7105cc2b9d4541927475c2576f10f9886cf7117d33c3dad5e1   42 minutes ago       /bin/sh -c groupadd -r jetty  && useradd -r -g jetty jetty  && apt-get -q update  && apt-get -y -q --no-install-recommends install sudo  && apt-get clean  && rm /var/lib/apt/lists/*_*                                                                                3.146 MB

sha256:cead9d196f8d45df9edb797a5146b08ff834d7354c2b79cb080b9aeb9e0ed91f   4 minutes ago       /bin/sh -c groupadd -r jetty  && useradd -r -g jetty jetty  && apt-get -q update  && apt-get -y -q --no-install-recommends install sudo  && rm /var/lib/apt/lists/*_*                                                                                3.146 MB

@meltsufin Ah, I also removed the rm /var/lib/apt/lists/*_*, so I guess that is where the savings are!
On the image generated by this PR I can do docker run --rm -it jetty:9.4 bash without permission issues.  Without the bash, it still runs and fails with the 'No Context' ISE as expected.

I can confirm that removing the clean makes no difference to the image size, it is rm of the apt lists that saves 10MB.
I also notice the following warning when adding sudo:
Get:1 http://httpredir.debian.org/debian/ jessie/main sudo amd64 1.8.10p3-1+deb8u3 [855 kB]
debconf: delaying package configuration, since apt-utils is not installed

Should the base image have apt-utils installed?  see https://github.com/phusion/baseimage-docker/issues/319

I'd rather not add apt-utils if it's not strictly necessary and will only be taking up more space.
I'm still getting 'Permission denied' and it seems to be happening on this line.
# Switch user to jetty
if [ "$UID" = 0 ] ; then
  exec sudo -HEu jetty -- "$0" "$@"
fi

Are you sure your image was fully rebuilt? Can you try this command sequence to verify?
$ docker run --rm -it --entrypoint=bash jetty:9.4
root@62a10b3732fb:/var/lib/jetty# cd /
root@62a10b3732fb:/# grep 'exec sudo' docker-entrypoint.bash
  exec sudo -HEu jetty -- "$0" "$@"
root@62a10b3732fb:/# ./docker-entrypoint.bash
/bin/bash: ./docker-entrypoint.bash: Permission denied

@meltsufin WFM??
[2224] docker run --rm -it --entrypoint=bash jetty:9.4
root@9ac8cc85d6aa:/var/lib/jetty# cd /
root@9ac8cc85d6aa:/# grep 'exec sudo' docker-entrypoint.bash
  exec sudo -HEu jetty -- "$0" "$@"
root@9ac8cc85d6aa:/# id
uid=0(root) gid=0(root) groups=0(root)
root@9ac8cc85d6aa:/# ./docker-entrypoint.bash
-XX:InitialHeapSize=9642704896 -XX:MaxHeapSize=9642704896 -XX:+ParallelRefProcEnabled -XX:+PrintCommandLineFlags -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)

2016-12-13 22:51:00.195:INFO::main: Logging initialized @497ms to org.eclipse.jetty.util.log.StdErrLog
2016-12-13 22:51:00.447:INFO:oejs.Server:main: jetty-9.4.0.v20161208
2016-12-13 22:51:00.485:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///var/lib/jetty/webapps/] at interval 0
2016-12-13 22:51:00.504:INFO:oejs.AbstractConnector:main: Started ServerConnector@6d00a15d{HTTP/1.1,[http/1.1]}{<IP_ADDRESS>:8080}
2016-12-13 22:51:00.504:INFO:oejs.Server:main: Started @806ms
org.eclipse.jetty.server.Server@614c5515 - STARTED
...

what user are you before you try to run the bash script?

@gregw I think I know what the problem is. It's the permissions on the /docker-entrypoint.bash.
root@d9bd4da47763:/# ls -l docker-entrypoint.bash
-rwxr-x--x 1 root root 1395 Dec 14 15:55 docker-entrypoint.bash

Since we're now reading and executing the script under the jetty user, it needs to be readable by jetty.
The fix is as simple as changing the chmod line in the Dockerfile to:
RUN chmod +rx /docker-entrypoint.bash

All other language runtimes execute under root, and it seems to be acceptable to do that. We can simplify things quite a bit by switching to running jetty under root.

@meltsufin I think in order to simplify the process, I should update this PR to just keep using the setuid mechanism and then we can discuss the pros/cons of using the jetty user (or not) in #99

@meltsufin would be good to get these changes in to simplify other PRs in progress


Added sort option for DeleteOneCommand

What this PR does:
Added sort option for DeleteOneCommand
Which issue(s) this PR fixes:
Fixes #396
Checklist

[x] Changes manually tested
[x] Automated Tests added/updated
[ ] Documentation added/updated
[x] CLA Signed: DataStax CLA

LGTM 👍

Just added updateOne changes to the same PR.


About model checkpoint

Hi, thanks for your great work.
When I load the checkpoint of KAIST, it reports Recovering from ./PID_KAIST/epoch=000235-step=000059999.ckpt with 299 missing and 1048 unexpected keys. Is this right? Thanks.

Thanks for your question.
Please check if you have placed the VQVAE-f8 checkpoint and TeVNet checkpoint in right paths which are set in configs/latent-diffusion/kaist512-vqf8.yaml.
There may be some unexpected keys in VQVAE-f8 pretrained model(it doesn't matter), but others have no anomaly.

Thanks. Yeah, there is something wrong with the path of ckpts.

Thanks. Yeah, there is something wrong with the path of ckpts.


Drop Stretch support

I suggest to drop support of Stretch.
I think we can safely assume that no new installations are done on Stretch, which is EOL since July 2020. Buster is available since July 2019.
To be honest, I’m not even sure, if installations still work on Stretch.
Stretch uses Python 3.5, which is also already EOL.
For existing installations it should be easy to upgrade from Raspian Stretch to Buster, e.g. http://baddotrobot.com/blog/2019/08/29/upgrade-raspian-stretch-to-buster/
Any thoughts?
@MiczFlor ?

For the moment I would just update docs explicitly stating that Stretch isn't supported anymore and remove the requirement for Python to be compatible to 3.5.
We could keep Stretch related code for the moment, but not require them to be up to date anymore.

New implementation for USB encoder #1249 fails on python 3.5 (see https://github.com/MiczFlor/RPi-Jukebox-RFID/runs/1633225851?check_suite_focus=true#logs).
But as I said we should drop the Stretch and Python 3.5 support

New implementation for USB encoder #1249 fails on python 3.5 (see https://github.com/MiczFlor/RPi-Jukebox-RFID/runs/1633225851?check_suite_focus=true#logs).
But as I said we should drop the Stretch and Python 3.5 support

New implementation for USB encoder #1249 fails on python 3.5 (see https://github.com/MiczFlor/RPi-Jukebox-RFID/runs/1633225851?check_suite_focus=true#logs).
But as I said we should drop the Stretch and Python 3.5 support

If you @s-martin like I can implement that backwards compatible?

New implementation for USB encoder #1249 fails on python 3.5 (see https://github.com/MiczFlor/RPi-Jukebox-RFID/runs/1633225851?check_suite_focus=true#logs).
But as I said we should drop the Stretch and Python 3.5 support

If you @s-martin like I can implement that backwards compatible?

If it's an easy fix you could do that for the moment.

If it's an easy fix you could do that for the moment.

@s-martin see #1253

@s-martin see #1253

I removed now Stretch from the INSTALL wiki and from CONTRIBUTING.md as well as the Python Action


Adding public attribute to ComputedFile model

Context

In the ComputedFile model, ComputedFile objects are currently built by ways of a class method inside of ComputedFile.get_(project/sample)_<modality>_file, and then saved inside of ComputedFile.process_computed_file, right before their associated archives are uploaded to s3.
Problem or idea

This behavior creates an ambiguity as to the goal of what ComputedFile objects are intending to represent. The confusion is as follows:

If their goal is to represent a computed file which has been uploaded to s3 and is available for download, then ComputedFile objects should only be saved to the db after a successful upload.
If their goal is to represent the internal state of a computed file, with the goal of querying and aggregating computed file values as an intermediate step before uploading, then there's no reason to wait until right before uploading to save them.

Solution or next step

A clarifying improvement to this design pattern would be to add another attribute to the ComputedFile model called public. This new attribute would satisfy both items of confusion detailed out above:

It would allow for each ComputedFile object to be able to be saved for internal purposes right after being built (with public=False), satisfying the desire to maintain an internal state for ComputedFile objects.
It would also allow for objects to be able to maintain a public=True state right after the computed file archive would be uploaded to s3, allowing for the available to query for computed files which are hosted on s3 and available for download.

At this time it doesn't make sense to add a public computed file. Instead we should open an issue for indicating if a project has been "loaded" meaning the metadata is in the DB but not "packaged" meaning the computed file variants are available are on s3.


additional non blocking DNS from the Chaos Computer Club

additional non blocking DNS from the Chaos Computer Club
https://www.ccc.de/censorship/dns-howto/

For a DNS to be added it needs to meet the following requirements:

Anycast
Uncensored and unfiltered (OpenDNS is currently an exception to this rule)
No NXDOMAIN hijacking (Level 3 got removed because of this)
Hosted by a reliable organization which can provide continuity over the years
Decent coverage around the world (small anycast networks with lacking coverage aren't considered)

Your proposed DNS don't fit some of those requirements, so they will not be added.

[ckeck ] Anycast
[ckeck ] Uncensored and unfiltered (OpenDNS is currently an exception to this rule)
[ckeck ] No NXDOMAIN hijacking (Level 3 got removed because of this)
[ckeck ] Hosted by a reliable organization which can provide continuity over the years
[ckeck ] Decent coverage around the world (small anycast networks with lacking coverage aren't considered)

what does it matter of your opinion?
global availability? google is also not available in North korea xD

[ckeck ] Anycast
[ckeck ] Uncensored and unfiltered (OpenDNS is currently an exception to this rule)
[ckeck ] No NXDOMAIN hijacking (Level 3 got removed because of this)
[ckeck ] Hosted by a reliable organization which can provide continuity over the years
[ckeck ] Decent coverage around the world (small anycast networks with lacking coverage aren't considered)

Fixed that for you.


RTL Languages Support in feeds

Hi, First of all thank you for this great app! :)
I am trying to read some feeds in Persian but looks like the generated content does not support RTL languages.
When I use the Send to Kindle extension, it seems to support RTL languages. For example try converting this page.

Hey I just noticed that this happens because the ebook is in mobi format while azw3 format has no problem with RTL languages. Can I convert the output from mobi to azw3 format before sending it to my kindle?

#6
mail service of Amazon don't accept azw3.

How about pdf? I converted the output of KindleEar with Calibre to pdf and sent it with email without asking it to be converted. It seems to work very well this way. Maybe we can push both the mobi and pdf file? This way, I can read my English news on the mobiformat and Persian news on pdf format.

pdf is much complicate, I don't have much time to consider and improve it.
Or other guys can help me to do it?

I can do it myself but I need to know where to start at. There are so many python codes in your project and I cannot find the relevant codes.

apps/Work/Worker.py

Hey, I have just noticed that fabreadly fixed this problem. They have changed their format but I am not sure which format they use yet.

It's azw3!

Ok. based on this link, I tried sending the both format; it was delivered but it showed me the old format and the file was renamed to .azw (while I sent an .mobi file). I also tried renaming the .azw3 file to .mobi and send it by email but its delivery was rejected.
However, the file delivered by fabreadly has the .azw3 extension and RTL works there.

you may try use Amanzon's kindlegen for converting a book to 'mobi:both' format and send it to Amazon?

@183amir
azw3 cant be sent, amazon doesnt support that format. Maybe you can try azw. I used kindlegen convert  epub to mobi, then sent this book to amazon by mail. It can be renamed to .azw


Fix table borders in Vulnerability details UI #1356

Reference: https://github.com/nexB/vulnerablecode/issues/1356

Thank you for catching this @TG1999 .  👍  Looks good in Chrome and Firefox.  Even looks good in Edge.  ;-)  325 passed, 1 skipped, 1 deselected, 10 warnings in 36.00s.


Gnome Terminal templates missing colors 01, 02, 04, 06, 09, and 0F

Hi,
In Line 66 of this Gnome Terminal template:
https://github.com/chriskempson/base16-builder/blob/master/templates/gnome-terminal/dark.sh.erb#L66
(and a few other places in Gnome terminal templates) it looks like we only use 10 of the 16 colors, namely these 10 (in numerical order, not the order in which they appear):
{00, 03, 05, 07, 08, 0A, 0B, 0C, 0D, 0E}
In other words, it looks like colors 01, 02, 04, 06, 09, and 0F are completely missing from the Gnome Terminal templates.
This may also explain a couple of reported issues around the web with getting base16 to work with Gnome Terminal.

Anybody is working on this issue? It seems like it has been fixed, but it doesn't push the commit into the repository to merge it to master. Please help to push forwad and thanks.

@kevin4fly look at trobleshooting here. You should execute shell script from .bashrc (README says to source it but my terminal crashes; I exucute it and it works) and put let base16colorspace=256 in your .vimrc if you use vim.


fix: Change "postgresql" to "postgres"

Background:

See Google-internal: b/350774994#comment8.
Currently, the Cloud Console "Database type" drop-down uses postgres but our Terraform database_type input variable expects postgresql.
Sorry about the miscommunication.

Solution:

I'm updating the Terraform to use postgres instead of postgresql.

Feel free to review and approve. But do not merge. Need to decide on this PR or cl/678683958.

We went with cl/678683958.


Impl async admin

In this PR (#1772 ) only following methods are implemented with their respective test cases.
BigtableAsyncAdmin methods:

truncateTable(TableName arg0, boolean arg1)
deleteSnapshots()
deleteSnapshots(Pattern arg0)
deleteTableSnapshots(Pattern arg0)
restoreSnapshot(String arg0)
restoreSnapshot(String arg0, boolean arg1)
cloneSnapshot(String arg0, TableName arg1)

BigtableAdmin:
truncateTableAsync

In general, I prefer smaller pull requests with targeted implementations.  Can you please break up this pull request into a truncate pull request and snapshot pull requests?


Integration with an external driver on Windows

You mention the limitations for Windows and that:

The only option left is to write a custom driver to implement Linux-like functionality in the Windows NT kernel, which is hard to do in a secure way and costs multiple hundreds of dollars to publish because of certification requirements. I am not doing that.

As far as I understand, there exists such a driver https://github.com/oblitum/Interception (not open source and has a huge bug that it bricks after a ~9 re-connects of input devices)
Have you thought about adding an option to integrating your library with that external driver to have a better stop-gap functionality than using Linux and send network events?

The reason I am not super interested in the existing Windows solutions is because they are built on top of Windows drivers which to my understanding cannot be properly published without paying a few hundred dollars to Microsoft (I believe because they require them to be somewhat certified, I am a bit confused by how much engineering work they can put in that for such a low price though). This is why the driver-based approach you linked has a paid version, and limits keyboards to 10 connected keyboards at once.
I am against adding this feature because of this, and even if someone PRs it I don’t think I could accept it because I would most likely not be able to maintain it afterwards.
I genuinely find the Linux device approach more practical, you can use a Raspberry Pi if you absolutely have nothing else. The real good approach would be for Microsoft to offer the feature, but I understand it is hard because of all the malware issues they struggle with, it would require a better design than the somewhat naive way it is done on Linux.

For context I started this project because I thought it was weird for this feature to only be available as a paid product. I wanted it to be cross-platform so I implemented the Linux thing basically trivially and started looking into Windows to my dismay.


There are no threads for gtest

target_link_libraries(unit_tests PUBLIC
${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
example
)

Well this is not supposed to be the perfect setup for gtest, just an example on how to create a cmake project with some test framework. At the moment I am not sure, how much this improves the value of this project as an example.

ok, but I wanted to note that the project does not compile completely.

can you elaborate? I just tried it again, and when you made this issue. The tests compile and run and pass on my machine. When the line you wrote is important to make gtest work on another machine that is not mine, it is important that I put it in the example.

@LewMar
What platfor are you running?


Updated license headers

Updated the license headers inside source files.

This looks sane to me. I'm sure if we missed any eBay attributions, they'll come out in incubation.

ShipIt! :rocket:

Pretty cool! Can't wait! :) Thanks Mohit.
On Wed, Aug 26, 2015 at 9:56 AM, Adam<EMAIL_ADDRESS>wrote:

ShipIt! [image: :rocket:]
—
Reply to this email directly or view it on GitHub
https://github.com/mesos/myriad/pull/126#issuecomment-135107213.


#Include statements for single file containing themes

Description of the new feature/enhancement
Not really to solve a problem, but having the ability to use #include statements for referencing another file i.e. a huge theme file. Just a thought :)
Proposed technical implementation details (optional)
See above.
Unless it's already possible. If so, please delete.
Thanks. And thanks for the great app.

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #2933 for more discussion.
/dup #2933
There was more discussion in #2303 as well, but that was effectively merged into #2933.


The object name "NodeDelegateModel" is misleading.

NodeEditor is one of the few open source flow graph QT libraries. I can understand the intent of QT's MVD pattern from simplegraph example.But the NodeDelegateModel concept confused me. I think it is not a "Delegate" or "Model" in "MVD". It is more like Data containing In/Out member and a compute function because nodedelegatemodel is stored directly in DataflowGraphModel. Maybe existing pattern and "NodeDelegateModel" obj can be given other names.
I've been thinking about it lately. If the nodeeditor is strictly designed as MVD in the future, how should it be desigened? A generic flow graph pattern is more valuable than more and more functional details.

Thanks to nodeeditor for the inspiration.In my subsequent practice, I think this approach will be more versatile and reduce the amount of development: the data flow display framework does not bear the responsibility of propagating node data, but only provides logical APIs such as node connection. As for data flow propagation and dependency resolution, users need to implement feature-rich graph structures and related algorithms based on the basic model. It may be healthier to strengthen the functions at the view level while avoiding complex business requirements of the model.


[FEATURE] mpv dynamic customization of mpv/input.conf

I would like to add the ability for mov-cli to dynamically load new input configs to the user's input.conf file. My current idea is to copy the user's current input.conf file so we keep the user's current input configs and append our custom ones onto it. Then when mpv is called pass --input-conf to change the path to the modified input.conf.
Why this feature.
Because it would be cool if I made a mov-cli plugin that could easily incorporate Anime4K to upscale your 1080p anime to 4k. 🔥 🤤

@r3tr0ananas I'm going to remove this from v4.4 todo, I think it would be better for another release.

alright


unnecessary update to the same version

Hi ADU Team
In our scenario we continuously build new yocto based linux firmware images, with adu agent configured to that latest version. Later on, the newest available version of the image is flashed to the device in a factory environment. In parallel to building the firmware, we also create and import an update of the same version into adu and create a deployment respectively.
We experienced that after the device was successfully provisioned and is visible in iothub for the first time, an update to the same version is offered by iothub. This is a bug in our opinion since there is no need for updating in that case.
Regards
Jan

Hi Jan, if I understand the scenario, I think you are saying that you may have devices already using the latest version of your image/update, however in the ADU console, it shows you the ADU update for that version is still applicable to your device (and that it is out of compliance?).
There are actually two versions here: the version of your image itself, and the version of the ADU update that contains that image. The latter is the version number ADU uses to understand what is on the device (and that ADU update is 'currency' that's used to describe updates everywhere in ADU, starting from when you import it).
I can confirm that today that unless you have previously used ADU to deploy the update specifically to the device, ADU is unaware of what version is on the device, but after the update is deployed it should appear properly in the dashboard. There are conceivably ways in which the ADU update identity can be embedded inside the images themselves so this "bootstrapping" scenario can avoid reporting that an update is needed unnecessarily, but don't yet have that capability.

@alancshi  thanks for your answer. you got me correct - we produce devices with a flashed firmware image version that we also provide as adu update (in order to update older devices that are already in the field). unnecessarily the adu console also provides this update to devices which have been already produced with this same version.
If I understand your answer correctly, adu determines, if to provide an update, by an "adu update version" and not by the sw version. Can we see this update version somewhere in iothub? Is it returned when importing an update or at time of deployment creation? Where can we see this version after an update on the device (adu agent)? I assume in our CI/CD environment we need to:

build the firmware image
create and import the adu update into iothub and get the update version
add this version to the adu agent in our flash image
flash the device with this image in our production

BR
Jan

Hi @JanZachmann , yes you understood this correctly. The ADU update version is the version that is specified in the import manifest (which you used to upload the content to the ADU in the first place). The identity specified in that import manifest is the "currency" that ADU uses throughout the system to determine what to install (so you can think of it as an abstraction that embodies identity of the update, regardless of what update technology is being used--swupdate, apt, etc). You can see this identity in the import manifest JSON as the "updateId" property (and it contains three elements: provider, name, version).
In the portal, you can see the the updates you imported in the Updates pane (these are the updates available to send to devices). If you have devices that match those updates, you can see that in the "groups" pane (the details view also shows you what ADU thinks it has installed on those devices).
As for figuring out what version ADU thinks is installed on the device, you can see this in the device twin for the device (I believe it is the installedUpdateId property). I'm am not 100% sure if the agent persists this version inside the device itself, though. @Jerry-GeGarcia , do you know?

For the swupdate image updates, the reference agent looks at /etc/adu-version, which would be baked into the image.
For apt package updates, it looks at /var/lib/adu/installedcriteria

Hi again. I spent some time meanwhile with looking into the adu-agent code and studying the logs of my RPI4. For me it seems that the agents workflow never triggers reporting "installedUpdateId" to adu twin on first boot of a flashed device. After I apply the update of the same version everything seems like expected.
Can you please have a look into the log files attached:
adu-agent logs and adu-agent twin after first start of freshly flashed device:
adu-agent-fresh-device.log
adu-agent-twin-fresh-device.log
adu-agent logs and adu-agent twin after update of the same version was applied and installed:
adu-agent-after-initial-update.log
adu-agent-twin-after-initial-update.log
Thanks
Jan

So, in the first log (adu-agent-fresh-device.log), you mentioned that it is needlessly processing the update the first time and that is what was the bootstrapping issue that was mentioned earlier, where it will ask the agent to process the update.  For this, I noticed in the log that SWUpdateHandlerImp::IsInstalled() was not being called via
ADUC_Workflow_HandleStartupWorkflowData  -> ADUC_MethodCall_IsInstalled

Instead it is proceeding straight into downloading. Was the code modified perhaps?
In the reference swupdate handler, to determine if the update is installed or not, it compares the contents of /etc/adu-version with the Criteria String that was in the import manifest.
If they match, then the agent considers the the update as installed; otherwise, if there's a mismatch OR /etc/adu-version doesn't exist, then the update is considered not installed.
However, in the log, I saw something like that but it was called /etc/sw-versions.
Jan 21 08:28:29 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:28:28.9716Z [I] read os name "***sanitized***" from /etc/sw-versions [DeviceInfo_GetOsName]

Ok, so now going into the question about why it's not reporting the "installedUpdateId" on the first boot:
In the first set of logs, I see that the agent reported InstallSucceeded(4) and it was able to PATCH the twin, but the twin you provided shows state as 0, which means Idle state:
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7534Z [I] Action 'Install' complete. Result: 1, 0 [ADUC_Workflow_WorkCompletionCallback]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7534Z [I] WorkCompletionCallback: Install succeeded. Going to state InstallSucceeded [ADUC_Workflow_WorkCompletionCallback]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7534Z [I] Setting UpdateState to InstallSucceeded [ADUC_SetUpdateStateHelper]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7535Z [I] Reporting state: InstallSucceeded (4) [AzureDeviceUpdateCoreInterface_ReportStateAndResultAsync]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: -> 08:36:36 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/PATCH/properties/reported/?$rid=11 | PAYLOAD_LEN: 59
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: <- 08:36:37 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/res/204/?$rid=11&$version=8 | PAYLOAD_LEN: 0
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: <- 08:36:40 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/PATCH/properties/desired/?$version=4 | PAYLOAD_LEN: 3024

However, the twin should have in it reported state of 4 (InstallSucceeded) instead of 0 (Idle).
This suggests that the backend either did not receive or successfully process the twin change notification.
That would then explain why the cloud-based orchestration (CBO) did not issue an Apply action in the twin. I will talk to someone tomorrow in the backend to see if we are able to determine what happened here.
In the 2nd set of logs, I see the Apply(2) action and see it reporting the installedUpdateId after successful apply, which aligns with what was mentioned about applying the update after the first boot seems to make things work as expected:
Jan 21 08:37:25 raspberrypi4-64 AducIotAgent[652]: 2022-01-21T08:37:25.1601Z [I] IsInstalled call was true - setting installedUpdateId to ***sanitized*** and setting state
 to Idle [ADUC_Workflow_HandleStartupWorkflowData]
Jan 21 08:37:25 raspberrypi4-64 AducIotAgent[652]: 2022-01-21T08:37:25.1601Z [I] Reporting state: Idle (0); UpdateId ***sanitized*** [AzureDeviceUpdateCoreInterface_Report
UpdateIdAndIdleAsync]

and it patched the twin
Jan 21 08:37:25 raspberrypi4-64 AducIotAgent[652]: -> 08:37:25 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/PATCH/properties/reported/?$rid=5 | PAYLOAD_LEN:
217

So, in the first log (adu-agent-fresh-device.log), you mentioned that it is needlessly processing the update the first time and that is what was the bootstrapping issue that was mentioned earlier, where it will ask the agent to process the update. For this, I noticed in the log that SWUpdateHandlerImp::IsInstalled() was not being called via
ADUC_Workflow_HandleStartupWorkflowData  -> ADUC_MethodCall_IsInstalled

Instead it is proceeding straight into downloading. Was the code modified perhaps?
In the reference swupdate handler, to determine if the update is installed or not, it compares the contents of /etc/adu-version with the Criteria String that was in the import manifest. If they match, then the agent considers the the update as installed; otherwise, if there's a mismatch OR /etc/adu-version doesn't exist, then the update is considered not installed.
However, in the log, I saw something like that but it was called /etc/sw-versions.
Jan 21 08:28:29 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:28:28.9716Z [I] read os name "***sanitized***" from /etc/sw-versions [DeviceInfo_GetOsName]

Ok, so now going into the question about why it's not reporting the "installedUpdateId" on the first boot:
In the first set of logs, I see that the agent reported InstallSucceeded(4) and it was able to PATCH the twin, but the twin you provided shows state as 0, which means Idle state:
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7534Z [I] Action 'Install' complete. Result: 1, 0 [ADUC_Workflow_WorkCompletionCallback]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7534Z [I] WorkCompletionCallback: Install succeeded. Going to state InstallSucceeded [ADUC_Workflow_WorkCompletionCallback]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7534Z [I] Setting UpdateState to InstallSucceeded [ADUC_SetUpdateStateHelper]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: 2022-01-21T08:36:36.7535Z [I] Reporting state: InstallSucceeded (4) [AzureDeviceUpdateCoreInterface_ReportStateAndResultAsync]
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: -> 08:36:36 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/PATCH/properties/reported/?$rid=11 | PAYLOAD_LEN: 59
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: <- 08:36:37 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/res/204/?$rid=11&$version=8 | PAYLOAD_LEN: 0
Jan 21 08:36:40 raspberrypi4-64 AducIotAgent[1820]: <- 08:36:40 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/PATCH/properties/desired/?$version=4 | PAYLOAD_LEN: 3024

However, the twin should have in it reported state of 4 (InstallSucceeded) instead of 0 (Idle). This suggests that the backend either did not receive or successfully process the twin change notification. That would then explain why the cloud-based orchestration (CBO) did not issue an Apply action in the twin. I will talk to someone tomorrow in the backend to see if we are able to determine what happened here.
In the 2nd set of logs, I see the Apply(2) action and see it reporting the installedUpdateId after successful apply, which aligns with what was mentioned about applying the update after the first boot seems to make things work as expected:
Jan 21 08:37:25 raspberrypi4-64 AducIotAgent[652]: 2022-01-21T08:37:25.1601Z [I] IsInstalled call was true - setting installedUpdateId to ***sanitized*** and setting state
 to Idle [ADUC_Workflow_HandleStartupWorkflowData]
Jan 21 08:37:25 raspberrypi4-64 AducIotAgent[652]: 2022-01-21T08:37:25.1601Z [I] Reporting state: Idle (0); UpdateId ***sanitized*** [AzureDeviceUpdateCoreInterface_Report
UpdateIdAndIdleAsync]

and it patched the twin
Jan 21 08:37:25 raspberrypi4-64 AducIotAgent[652]: -> 08:37:25 PUBLISH | IS_DUP: false | RETAIN: 0 | QOS: DELIVER_AT_MOST_ONCE | TOPIC_NAME: $iothub/twin/PATCH/properties/reported/?$rid=5 | PAYLOAD_LEN:
217

Thanks for your support. With 0.8.0 we could see that there is no update with the same version anymore since orchestration was moved to device.


The accuracy of the PruningNet

Hi, though I have implemented the accuracy of the pruned network in the paper, I found that the performance of  pruning net trained in the first stage is not well. Combining the results of the following two stages, the better the pruning net is, the higher the accuracy of pruned network is.
Could you please share your accuracy of pruning net?

Hi, the accuracy of pruning net is around 50%. As long as the PruningNet can give us a reliable accuracy ranking of different Pruned network structures, it don't need to be as high as the retrained individual Pruned networks.


Create a build template for the Pipeline

Create build template for the pipeline build jobs. Most of them are the same, the only thing that differs is the BUILD_TYPE for cmake and conan.
TODOS 👍

[x] Create template build for Ubuntu
[x] Create template build for Windows

Closed with #57 & #56


update github actions

@juliansteenbakker

Only build on pull requests and merging to master
Update all github actions
Cache flutter sdk

Thanks for the contribution!


Test PR: Test of duplicate branch of PUN Classic

Overview
Just a test to see if the same file changes are in #3111

Closing per "Just a test to see if "


Function: Add Support for .NET 6.0 Minimal APIs

Update existing dotnet handler to detect and support dotnet minimal APIs. This addresses https://github.com/serverless-stack/sst/issues/2124 and Roadmap Item #11769369.
Minimal APIs are able to bypass the bootstrap requirements previously required as the AddAwsLambdaHosting dependency injection for ASP.NET now takes care of initializing the runtime client automatically. See this AWS Blog for more details.

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


how to show multirelation?

As tow entities may have multirelation , like a couple may also are classmates

explorer.html shown like this, relation "竞争"covered relation "合作”

Hi, thank you for your question. We will solve it as soon as possible.


upgrade typespec to 0.42.0

Description
Fix https://github.com/Azure/autorest.csharp/issues/3219

upgrade typespec library to 0.42.0

Checklist
To ensure a quick review and merge, please ensure:

[ ] The PR has a understandable title and description explaining the why and what.
[ ] The PR is opened in draft if not ready for review yet.

If opened in draft, please allocate sufficient time (24 hours) after moving out of draft for review

[ ] The branch is recent enough to not have merge conflicts upon creation.

Ready to Land?

[ ] Build is completely green

Submissions with test failures require tracking issue and approval of a CODEOWNER

[ ] At least one +1 review by a CODEOWNER
[ ] All -1 reviews are confirmed resolved by the reviewer

Override/Marking reviews stale must be discussed with CODEOWNERS first

I found some SDK change for OpenAI in the autogen PR,
Please help to check whether this is related to this PR or from the spec updates of OpenAI.
cc @m-nash,

Can we link the regen PR?

https://github.com/Azure/azure-sdk-for-net/pull/35064#discussion_r1147911243

Azure/azure-sdk-for-net#35064 (comment)

This regen PR is based on previous OpenAI spec which use the legacy tsconfig schema and after upgrade to 0.42, the legacy schema is deprecated, so the configure is not right set.
I have upgrade the OpenAI spec to apply 0.42 configure schema, but the regen pipeline is broken, so no latest PR is not generated.

regen PR: https://github.com/Azure/azure-sdk-for-net/pull/35149


Using local or wwwroot folder for views

Hi,
I've been trying to use videos from local folders or wwwroot and both are being blocked and not loading. Is there a way to do this? Or do the videos need to be hosted?
Thanks in advance!

Resolved.
removing "~" from source path. Blazor doesn't seem to like that.


Relenvs - Apply Mongodb Auth Rules

Apply new auth rules that have been applied in devenvs
#993

Work has been completed in the following branches
https://github.com/ForgeCloud/secure-api-gateway-relenv-deployments/tree/1022-mongodb-auth
https://github.com/ForgeCloud/secure-api-gateway-relenv-deployer/tree/1022-mongodb-auth
Will create PRs when the release of Blur is complete
Passwords have been stored slightly differently to devenvs, where the passwords are stored in the .pipelineenv file with base64 encryption


Default color not shown when using HtmlFormatter with noclasses option

As mentioned in issue pygments/pygments#206, background, line-height, and color are lost when using the noclasses option. It seems background and line-height have been fixed, but default color still isn't shown.
I think I have a potential solution, with:
https://github.com/harrydowning/pygments/blob/a89510089bf87a8d6f5e7ec8b51d1a8a885c6a37/pygments/formatters/html.py#L795
and
https://github.com/harrydowning/pygments/blob/a89510089bf87a8d6f5e7ec8b51d1a8a885c6a37/pygments/formatters/html.py#L715-L716
Although this makes test cases fail because the output html has been changed.
Could this be looked into?

Actually, it also seems that when the linenos option is used the line numbers in the first column don't have line-height: 125%; set, causing a slight misalignment.


Save terminal tabs together with file tabs as current project folder layout

Hi there, I'm a immediately became a big fan of this atom plugin.
I'm not sure where this project is headed, but the one thing that would be really great for me is:

To have an easy cross-platform way to save my files/terminal partitioned screen

How I work

I have several open tabs in multi-colomn/row panes next to tree-view to get project overview
With tab fullscreen and zen mode i can focus on the work in the current tab
with ctrl-(shift)-tab i move between tabs in a pane, with alt-arrows i move between panes

In the past:

My tabs were only opened files showing me project content in my project folder hierarchy.
One or many terminals, sometimes with multiple tabs and/or partitioned terminals

What I hope for in the future:

Add terminal tabs in the panes next to my project files

Benefit:
I hope I can save my project related "terminal-views" together with my project related "file-views" in atom tabs & panes
Current Problem:

My copy&paste works buggy when i use atom-term2
When I ctrl-shift-tab into a terminal tab, the terminal doesnt get the focus
When I close atom and restart it in the same folder, the terminal tabs are not restored

For copy/paste issue see #23
For the focus issue, see #6
For the saving, it's might be done, but I am not sure how we can restore the appropriate path and terminal state. I know that tmux can do that using tmux-resurrect but doesn't make sense to add that in this plugin.
We can probably just restore terminal pane for a start. PR welcome.

Would it be possible that on closing atom, all the terminals opened as tabs will be read

their title
their path
and it will be saved to some extension related settings file, so that when they are re-opened, some commands are run on all of them to set the title and path to where they were they were the last time?


how to use sound model from teachable machine using tflite_audio in Flutter :( >> Please I need help or online tutorial

hi,
I'm trying to build a Flutter app that recognizes human voices and then display the speaker's name
the app should upload or record the voice then processing the voice offline to tell the user who is talking
I did the model by using teachable machine but I do not know how to integrate the sound model using tflite_audio in Flutter
is there any course or video that can help me how to do this?
also, I have two questions

is it possible to process the audio offline? (not streaming)
can I train a new entry for the model within the code?

You can use this flutter plugin. It’s compatible with sound for teachable machine
https://pub.dev/packages/tflite_audio

You can use this flutter plugin. It’s compatible with sound for teachable machine
https://pub.dev/packages/tflite_audio

Hi @Malakmud,
I’m the writer for the tflite_audio plugin. You’ve mentioned that  you had difficulties integrating the model to the plugin. Is there a particular step that you are stuck in?

Hi @Malakmud,
I’m the writer for the tflite_audio plugin. You’ve mentioned that  you had difficulties integrating the model to the plugin. Is there a particular step that you are stuck in?

Thank you
I tried your code for teachable machine in flutter but when I run the app it keeps loading the model and I couldn't use the functionality
how can I improve that? it takes a lot of time to load the model
also, can you tell me how to do it offline?
and is there any tutorial that explains these things because I'm a beginner in Flutter, ML, Voice Recognition</3

Thank you
I tried your code for teachable machine in flutter but when I run the app it keeps loading the model and I couldn't use the functionality
how can I improve that? it takes a lot of time to load the model
also, can you tell me how to do it offline?
and is there any tutorial that explains these things because I'm a beginner in Flutter, ML, Voice Recognition</3

Hmm, considering that this is a problem with the plugin and not teachable machine, could you open the issue over there? Link here

Hmm, considering that this is a problem with the plugin and not teachable machine, could you open the issue over there? Link here

can you imagine that the model still loading!
ok, I will open this issue
I meant by "offline":   can I upload audio then do the function on it rather than recording?
can I talk with you on LinkedIn or any app other? it will be easier for me? @Caldarie

can you imagine that the model still loading!
ok, I will open this issue
I meant by "offline":   can I upload audio then do the function on it rather than recording?
can I talk with you on LinkedIn or any app other? it will be easier for me? @Caldarie

Unfortunately, I do not use Linkedin.
As for your question, I will answer it if can you open the issue here, This would really help others like you.
Michael

Unfortunately, I do not use Linkedin.
As for your question, I will answer it if can you open the issue here, This would really help others like you.
Michael

Hi, is there any demo on how to run audio tflite model on raspberry PI?@Caldarie


Doesn't work in Godot 4.0.1 stable

After loading in the addon from the repo and enabling it, correctly creates the Sfxr audio stream node, but using the audio stream node has none of the special properties, it acts like a regular audio node as in the screenshot below.

Opening the project directly from your repo in godot 4.0.1s doesn't work either.

In script editor: Search > Replace in Files...
Find: property: String
Replace: property: StringName
Should be 10 matches in 4 files. Replace All. Save All.
Works in Godot 4.1
Credit goes to @fskfskfsk https://github.com/tomeyro/godot-sfxr/issues/9#issuecomment-1435782133 :)
PS. Don't forget to disable/enable in Project Settings > Plugins after saving.

It was such a small change but I really didn't have the time to look into it. Thanks @makabeus :) The fix is on 4.x


Might fail because of missing Compat

This code https://github.com/NHDaly/ApplicationBuilder.jl/blob/8bb5f60b2e408e08674431d5e6461be77e317b1a/src/ApplicationBuilder.jl#L156-L169 might fail because nothing ensures that Compat is available when the code is run by PackageCompiler. That was indeed the case for me. Maybe this can be fixed with
using ApplicationBuilder: Compat

instead. However, PackageCompiler doesn't pass the project file information to the subprocess so it might also be the case that my suggested solution fails.

👍  Thanks, great catch!
I think I need to just make a clean break from pre 0.7 releases and tag a new release! I haven't  updated ApplicationBuilder in a while, but i'm starting to get back around to it.

:) Thanks!
I've just gone ahead and dropped 0.6 support, and Compat along with it. :) Lemme know if I missed anything!


Reference scancode from utils repo. but preserve local copy (phase 1)

Phase 1: Reference Travis to new home of scancode, but preserve one here until confirmed.

@mrutkows we have used the assign field for the person who will merge the pull request. Hence I am assigning @csantanapr since we do not merge our own prs as a matter of policy.

@rabbah of course, thanks )

Please note that I am privately working on a PyPi package for scancode which in the future could be used in place of a "clone".

@csantanapr see if you like the text I put in after restoring what was there previously.

git-guidelines updated with scancode process


JSON RPC/Hyperion: Enable/Disable components during runtime

Hyperion

[ ] smoothing (activate bypass as it is already used if enable false?)
[ ] blackborder
[x] kodicheck
[ ] forwarder
[x] udplistener
[x] boblight server
[ ] grabbers (this should be handled though a platform depedent selection. To keep the command easy/platform independent)

JSON RPC

[ ] smoothing
[ ] blackborder
[ ] kodicheck
[ ] forwarder
[ ] udplistener
[ ] boblight server
[ ] grabbers

So close to cose! :D
Very good, can't wait for testing :)

I can tell you, it's amazing.
A side effect ... I had to make big grabber refactoring ... that's why it take longer as expected. Last thing the bb detection is also tricky, because it is hidden in templates and factory ...

bb was easier as I thought, because of my prior grabber refactoring all needed code was just there. Only a few additions were necessary.


Implemented \JsonSerializable

This addresses #5 partially or fully depending on what you had in mind. This works great for JSON API's that use this library.

Hi!
@tylercrompton Can you please add JsonSerializable interface class for passing php-5.3 tests?
<?php
interface JsonSerializable {
    public function jsonSerialize();
}

Right. I forgot JsonSerializable isn't in PHP 5.3. Eh. I would actually consider upgrading the PHP dependency to 5.4+ instead. PHP 5.3 hasn't even have security support for nearly six months now.

To pass the php-5.3 test is sufficient to add the \JsonSerializable stub and using spl_autoload_register function in phpunit bootstrap file:
spl_autoload_register(function ($class) {
    include 'money/tree/master/tests/' . $class . '.php';
});

Personally, I prefer not to add support for a version of a language that the implementers no longer support. Besides, the test would pass with aforementioned change but the code would still fail in production. In order to add support, we'd have to provide a custom json_encode function that would handle objects implementing \JsonSerializable. That just seems like too much to me.

Thanks, see https://github.com/mathiasverraes/money/pull/86

The minimum requirement for the nextrelease branch will be php 5.4

:+1:


GDPR-compliant version

Dear Eduardo,
First of all, thank you for this great theme :) :wink: :1st_place_medal: I really like the features you added, like the featured post slider and the Tags page. I'm currently testing it and I usually like to modify themes in a way, that they do not depend on any CDNs, especially to avoid any GDPR issues, directing my visitors information to third-parties outside the EU. Usually for e.g. jquery, mathjax, or prism this is super easy, but for your theme this isn't trivial with Google webfonts and polyfill:
Google Webfonts - This is urgent for all sites with visitors from the EU!
Google definitely stores the IP of the visitor for analytics: "Google Fonts logs records of the CSS and the font file requests, and access to this data is kept secure."
That means that Google stores data it doesn't need to provide the service and hence the use of Google webfonts from the Google API needs the users consent, otherwise you risk to get a letter from a lawyer that wants to make some money...
Options to solve this issue:

Host the fonts locally, basically include them in your theme as css
Don't use Google fonts....
Use a consent management tool (which I personally don't want as I hate those pop ups with sliders or ticks...)
Do you have other ideas?

polyfill.io
I think it is safe and a nice feature for downward compatibility. On the privacy site it states:
"We use that information to determine which polyfills are required by your browser. We then retain only the following information:

the domain of the web page which has made the request to the Service;
the user agent string for your browser;
the set of polyfills that were requested by the web page."
https://polyfill.io/v3/privacy-policy/

Hence, I think it is safe to keep, especially as it is hosted via its own CDN.
I am looking forward to read about your point of view :nerd_face:

This was partly discussed in #153 , but not with a focus on the legal implications.

Hey, thanks for using this theme!
In the latest version Google webfonts are now loaded locally ;)
Regarding to polyfill.io I will keep it as it is now.

Nice, great work :slightly_smiling_face:  :+1:


Very helpful

It was very helpful why we don't have a quick video on how to get started with Blend?
[Enter feedback here]

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

ID: 285a65b7-d68e-ce1c-b5ba-56b10a50ac10
Version Independent ID: 6aecce84-ff32-ade9-aa66-5b2f68648a8e
Content: Modify the style of objects - Blend for Visual Studio
Content Source: docs/xaml-tools/modify-the-style-of-objects-in-blend.md
Product: visual-studio-windows
Technology: vs-xaml-tools
GitHub Login: @TerryGLee
Microsoft Alias: tglee

@rogerms -- thank you for your compliment!  Please add your suggestion here:

Visual Studio Developer Community

cc @TerryGLee for awareness
I am closing this issue now.  You are welcome to @ mention me for any followup.  We hope to hear from you again.


feat(docs): Nits

Please read contributing guidelines and remove this line.

Docs Preview
Hey there! 👋 You can check your preview at https://66b49ab066964ddf3950c6b6--aztec-docs-dev.netlify.app

Benchmark results
No metrics with a significant change found.

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

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,764
1,559
707
750 (-3%)
769

proof_construction_time_sha256_30_ms
11,908
3,195
1,419 (+1%)
1,442 (+1%)
1,482 (+1%)

proof_construction_time_sha256_100_ms
45,506
12,025 (+1%)
5,485 (+1%)
5,412
5,408 (+1%)

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
58.0
86.0 (-1%)

proof_construction_time_poseidon_hash_30_ms
1,529
422
203
230 (+2%)
267

proof_construction_time_poseidon_hash_100_ms
5,643
1,514
680
725 (-2%)
752 (+1%)

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

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,324
7,844
14,852

l1_rollup_calldata_gas
49,696
92,338
177,752

l1_rollup_execution_gas
1,294,359
2,041,969
3,869,422

l2_block_processing_time_in_ms
257
443 (-2%)
855 (+5%)

l2_block_building_time_in_ms
9,313
18,193
36,448 (+1%)

l2_block_rollup_simulation_time_in_ms
9,313
18,192
36,448 (+1%)

l2_block_public_tx_process_time_in_ms
7,857
16,641 (+1%)
34,860 (+1%)

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

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
2,973 (+1%)
3,812 (-5%)

node_database_size_in_bytes
12,750,928
16,805,968

pxe_database_size_in_bytes
16,254
26,813

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

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
53.3 (-1%)
8,139

FeeJuice:set_portal
9.87 (-5%)
2,362

Token:constructor
83.6 (-1%)
31,107

FPC:constructor
53.0 (-3%)
22,380

FeeJuice:mint_public
38.2
6,150

Token:mint_public
71.1 (-3%)
11,720

Token:assert_minter_and_mint
39.5 (-1%)
8,028

AuthRegistry:set_authorized
36.4 (-22%)
4,537

FPC:prepare_fee
247 (-6%)
8,812

Token:transfer_public
22.0
47,374

FPC:pay_refund
58.1 (-8%)
12,114

Benchmarking:increment_balance
974 (+1%)
7,450

Token:_increase_public_balance
45.6 (+16%)
8,960

FPC:pay_refund_with_shielded_rebate
69.7 (+4%)
12,663

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.166 (+2%)

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

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

batch_insert_into_append_only_tree_16_depth_ms
2.18 (-1%)
3.85 (-3%)
N/A
N/A
N/A
N/A
N/A

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

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

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.4 (-1%)
18.0 (-2%)
31.9 (+4%)
58.7 (-2%)
112 (-3%)

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

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.109 (-1%)
0.104 (-3%)
0.103 (+3%)
0.101 (-2%)
0.0996 (-4%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.4
25.8 (-2%)
43.6
82.2 (-1%)
161 (-2%)

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

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.109 (+1%)
0.104 (-1%)
0.105
0.102 (-1%)
0.101 (-2%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.3 (-1%)
N/A
N/A
N/A
N/A

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

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.104 (-1%)
N/A
N/A
N/A
N/A

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

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
64,779
668,997

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


-calcuate producing inconsistent results

When I crack open an excel file, inject some values and save with -calculate, some of the formulas dont calculate properly
Example of working formula
Style                 : OfficeOpenXml.Style.ExcelStyle StyleName             : Normal StyleID               : 31 Value                 : sfo-m01-fd-nsx Text                  : sfo-m01-fd-nsx Formula               : IF(ISBLANK(input_mgmt_sddc_domain),"Value Missing",mgmt_sddc_domain&"-fd-nsx") FormulaR1C1           : IF(ISBLANK(input_mgmt_sddc_domain),"Value Missing",mgmt_sddc_domain&"-fd-nsx") Hyperlink             : Merge                 : False AutoFilter            : False IsRichText            : False IsArrayFormula        : False RichText              : {} Comment               : Worksheet             : Value Reference Tables FullAddress           : 'Value Reference Tables'!P65 FullAddressAbsolute   : 'Value Reference Tables'!$P$65 ConditionalFormatting : OfficeOpenXml.ConditionalFormatting.RangeConditionalFormatting DataValidation        : OfficeOpenXml.DataValidation.RangeDataValidation Current               : Address               : P65 Start                 : OfficeOpenXml.ExcelCellAddress End                   : OfficeOpenXml.ExcelCellAddress Table                 : IsName                : False Rows                  : 1 Columns               : 1
Another cell, leveraging the same source named cell, but appending different text to the end of it results in this
Style                 : OfficeOpenXml.Style.ExcelStyle StyleName             : Normal StyleID               : 31 Value                 : OfficeOpenXml.FormulaParsing.EpplusExcelDataProvider+RangeInfo-fd-edge Text                  : OfficeOpenXml.FormulaParsing.EpplusExcelDataProvider+RangeInfo-fd-edge Formula               : IF(ISBLANK(input_mgmt_sddc_domain),"Value Missing",mgmt_sddc_domain&"-fd-edge") FormulaR1C1           : IF(ISBLANK(input_mgmt_sddc_domain),"Value Missing",mgmt_sddc_domain&"-fd-edge") Hyperlink             : Merge                 : False AutoFilter            : False IsRichText            : False IsArrayFormula        : False RichText              : {} Comment               : Worksheet             : Value Reference Tables FullAddress           : 'Value Reference Tables'!P66 FullAddressAbsolute   : 'Value Reference Tables'!$P$66 ConditionalFormatting : OfficeOpenXml.ConditionalFormatting.RangeConditionalFormatting DataValidation        : OfficeOpenXml.DataValidation.RangeDataValidation Current               : Address               : P66 Start                 : OfficeOpenXml.ExcelCellAddress End                   : OfficeOpenXml.ExcelCellAddress Table                 : IsName                : False Rows                  : 1 Columns               : 1
Note the value/text properties are different for the second instance than for the first, even tho the format of the formula and the named cell it references are the same
Running Build 7.8.5

Some updates from further troubleshooting. It seems to be related to the location of the named cells in question within the file. For instance, in the above case there were three similar cells, one under the other (P64,P65,P66). P64 and P65 were calculating successfully, P66 was not, even with a copy of the formula from P65. Placing the same formula further down the worksheet with a new named cell name also failed to calculate BUT would work fine if you put a simple cell reference in it (rather than the string concatenation formula)
I change the order of P64, P65, and P66 by cutting and pasting P66 in above P64, moving P64 and P65 down one row each. At that point, when I calculate, P64 and P65 still work and P66 still doesn't, even though the content of P66 worked previously when in P65!
Is there some form to maximum number of formula calculations that can be done per worksheet or some other limitation I might be hitting?

Thanks for using ImportExcel.
The -Calculate switch is simply implemented like this. There may be additional params for it. I don't know.
https://github.com/dfinke/ImportExcel/blob/edf25cf94615b0b2795cc084be579b6ac254391b/Public/Close-ExcelPackage.ps1#L19


Consider time() instead of $_SERVER['REQUEST_TIME']

Steps to reproduce
Experimenting in a slow (long-running) script.
Expected behavior
When you create a cache entry the created time-stamp to be reflecting the time of the call.
Actual behavior
L1 & L2 APIs have the created data available for a given cache item. The thing is that it's hard-coded against the global $_SERVER['REQUEST_TIME']. So for a script running for an hour, created will always be the start of that hour.
Frameworks tested
Which module / plugin were you using?

[ ] Using lcache/lcache directly

It would be bad to purely move to time() because it creates a syscall to the kernel and then to the realtime subsystem. In short, it's expensive. However, I think it would be a good move to remove the consideration from LCache control entirely and just have a timestamp passed in with writes.

If we let the consumer of the library inject their own timestamps, it will have two advantages:

Frameworks can use their own value of choice, like Drupal's REQUEST_TIME constant.
Tests will be easier to write in terms of mocking old and new writes.

+1 for consumer libraries injecting timestamps (and anything else currently being pull out of $_SERVER)


Improve indentation for codable routing

This PR fixes the indentation issue in the Codable routing guide.

@Andrew-Lees11 As part of this PR I'll fix for the rest of the guides as well. Thanks.

Merging this for now so we can work on fixing up the docs without merge conflicts.


feat: implement route specific middlewares

Currently, this idea only applies to barf.Get() routes. An implementation example can be found within example/simple/main.go file.

okay, would adjust to accommodate these changes.
I also think that it should be possible to register a middleware that should apply to all routes under a subroute. I have you've partially implemented this but there is no "actual" way to add middlewares to subroutes

okay, would adjust to accommodate these changes.
I also think that it should be possible to register a middleware that should apply to all routes under a subroute. I have you've partially implemented this but there is no "actual" way to add middlewares to subroutes

Actually, there's a way to register for subrouters. Check inside the example/middleware folder, you'll see something like barf.Hippocampus().Hijack()


Chocolatey FossHub Extension 0.4.0 seems to break compatibility with 0.2.0

Seems to break compatibility with 0.2.0, I haven't investigated fully. IrfanView package won't download now. (No, IrfanView didn't release a new ver.)
Does this still support two URLs for 32 and 64 bit?
I'm passing: $urlArray = $urlArray = @('https://www.fosshub.com/IrfanView.html/iview442_setup.exe','https://www.fosshub.com/IrfanView.html/iview442_x64_setup.exe') to it.
This is the result:
IrfanView v<IP_ADDRESS>61101 (forced) [Approved]
irfanview package files install completed. Performing other installation steps.
Could not find a part of the path 'C:\Users\bcurran\AppData\Local\Temp\chocolatey\IrfanView\<IP_ADDRESS>61101\cbtmqeco.ii5.istext'.
Download of cbtmqeco.ii5 (-1 B) completed.
Download of 0t4oqpx2.m4c (-1 B) completed.
Attempt to use original download file name failed for 'IrfanView.html'.
Copying irfanview
from 'IrfanView.html'
Cannot find path 'C:\WINDOWS\system32\IrfanView.html' because it does not exist.
ERROR: Chocolatey expected a file to be downloaded to 'C:\Users\bcurran\AppData\Local\Temp\chocolatey\IrfanView\<IP_ADDRESS>61101\irfanviewInstall.exe' but nothing exists at that location.
The install of irfanview was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\IrfanView\tools\chocolateyInstall.ps1'.
See log for details.
Chocolatey installed 0/1 packages. 1 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Failures

irfanview (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\IrfanView\tools\chocolateyInstall.ps1'.
See log for details.

C:\WINDOWS\system32>

@bcurran3 can you help me out here...
I don't think any of the versions of the fosshub extension included support for a URL Array.  Perhaps this "might" have worked, but I don't think that this was ever the intention 😢
All the examples within the documentation for the method show a single url being passed in, and returned.

I swear .2 worked (for IrfanView and I think something else)!
But we definitely need a way to pass two URLs for x86/x64.

| __ )(_) | |
|  _ | | | |
| |_) | | | |
|_/||||
From: Gary Ewan Park<EMAIL_ADDRESS>Sent: Friday, November 25, 2016 1:36 AM
To: chocolatey/chocolatey-coreteampackages<EMAIL_ADDRESS>Cc: bcurran3<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [chocolatey/chocolatey-coreteampackages] Chocolatey FossHub Extension 0.4.0 (#413)
@bcurran3 https://github.com/bcurran3  can you help me out here...
I don't think any of the versions of the fosshub extension included support for a URL Array. Perhaps this "might" have worked, but I don't think that this was ever the intention 😢
All the examples within the documentation for the method show a single url being passed in, and returned.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chocolatey/chocolatey-coreteampackages/issues/413#issuecomment-262916257 , or mute the thread https://github.com/notifications/unsubscribe-auth/ANYHaJhkqe0FmOkzAvbC752POqus8Bymks5rBqv9gaJpZM4K7-OK .  https://github.com/notifications/beacon/ANYHaBTqPJaYV2CC_Zp-FO9GSdbZglT2ks5rBqv9gaJpZM4K7-OK.gif

@bcurran3 said...
I swear .2 worked (for IrfanView and I think something else)!

And it may very well have, but I don't think it was meant to :smile:

@bcurran3 said...
But we definitely need a way to pass two URLs for x86/x64.

The workaround, for now, would be to call the function twice, once for each URL.

Hmmmmmmmmmmmmm, why didn’t I think of that?

I swear .2 worked (for IrfanView and I think something else)!
And it may very well have, but I don't think it was meant to 😄
@bcurran3 https://github.com/bcurran3  said...
But we definitely need a way to pass two URLs for x86/x64.
The workaround, for now, would be to call the function twice, once for each URL.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chocolatey/chocolatey-coreteampackages/issues/413#issuecomment-262917764 , or mute the thread https://github.com/notifications/unsubscribe-auth/ANYHaAG7vJxNLqvhoDxBV7gU6sMDyzUWks5rBq3OgaJpZM4K7-OK .  https://github.com/notifications/beacon/ANYHaHzfFvTS0p1C5qHpgyQAewPqamAzks5rBq3OgaJpZM4K7-OK.gif

Yes, that is the way function is used.

@bcurran3 said...
Hmmmmmmmmmmmmm, why didn’t I think of that?
That I will do. (later)
Perfect! 👍


Setup frontend repository

We could either:

use some framework to setup our web page (React, Angular or Vue)
work without any js frameworks (I know @MKuranowski preferes this option, but we are open to any propositions)

@LeXmor15 Have you got any experience with web design and javascript development?

I don't have any experience with web design (I had with WordPress but I don't think that's what we are looking for). Neither with Angular but I think I can learn, It may not be so hard, I hope.

This was completed in #108 and #128.


Add lvm provisioner

Problem:
Add LVM provisioner
Solution:
Add LVM provisioner
Related Issue:
https://github.com/harvester/harvester/issues/6014
https://github.com/harvester/harvester/issues/5724
Test plan:
TBD

codeFactor complains about the generated code. Please ignore that.

@mergifyio backport v0.7.x


Performance issues with reporter (AsciidocTemplate + CycloneDX at least)

We experience problems with the reporter with very large projects. The issue can be seen with a vanilla scan of Keycloak (https://github.com/keycloak/keycloak).
Furthermore, we use the reporter options: -f AsciidocTemplate,CycloneDX,NoticeTemplate,SpdxDocument,StaticHTML,WebApp.
The report will usually just not finish - no stacktrace, nothing. If it finishes, the run takes > 1 hour on a 8 GB 4 CPU core machine.
Profiling revealed the biggest issue to be the CopyrightStatementsProcessor.kt:

On my system, ORT never finished https://github.com/oss-review-toolkit/ort/blob/8fa22855c6e32d6f7e399fe5af41726ac7f0a5ef/utils/src/main/kotlin/CopyrightStatementsProcessor.kt#L146 - this can be fixed by making     val originalStatements: List<String> a Set<String> in Parts. What is the rationale here for needing a list if everything gets merged anyways?
When using the List <-> Set quickfix, the reporter still used a lot of time (in particular disclosure document and CycloneDX). About 60% of that time is spent with replacing regexes in https://github.com/oss-review-toolkit/ort/blob/8fa22855c6e32d6f7e399fe5af41726ac7f0a5ef/utils/src/main/kotlin/CopyrightStatementsProcessor.kt#L213 - the comment in this method seems to imply this is not necessary? I could try optimizing this method, but if it is only interesting for debugging purposes, I would tend to delete/replace it.

RAM usage is about 4 GB (in particular due to loading a lot of copyrights) but that may still be acceptable.

this can be fixed by making     val originalStatements: List<String> a Set<String> in Parts. What is the rationale here for needing a list if everything gets merged anyways?

the comment in this method seems to imply this is not necessary? I could try optimizing this method, but if it is only interesting for debugging purposes, I would tend to delete/replace it.

For both questions, I believe @fviernau is in the best position to provide an answer.

this can be fixed by making     val originalStatements: List<String> a Set<String> in Parts. What is the rationale here for needing a list if everything gets merged anyways?

the comment in this method seems to imply this is not necessary? I could try optimizing this method, but if it is only interesting for debugging purposes, I would tend to delete/replace it.

For both questions, I believe @fviernau is in the best position to provide an answer.

I''m looking into it...

I''m looking into it...

As promised, here is some more data on a report I did using a version of ORT from december (and the map <-> list replacement I needed).
The following shows a complete run on local infrastructure with VisualVM attached. Timings for reports were:
Asciidoc template: 868s
CycloneDX: 1264s
NoticeTemplate: 418s
SpdxDocument: 3s
StaticHtml: 27s
WebApp: 149s
The timings are similar (a bit lower) without VisualVM attached, so I am somewhat confident that the relative results are correct.
My most immediate concerns are clearly Asciidoc, CycloneDX and NoticeTemplate reports. Since this is a very large project, the other times are probably acceptable.
Here is what I see in VisualVM:

The picture shows several phases:

The first steep increase in heap usage corresponds to loading of Licenses and the ORT results into the Heap (note: I did not have the License files but used a local cache)
The creation of templates starts after the sudden drop in heap space used.
The first part with large heap usage changes corresponds to Asciidoc + CycloneDX report creation
The second part where the overall used heap space slowly increases while the spikes remain the same corresponds to the Notice Template
The last part with smaller increase and a sudden spike corresponds to the remaining reports.

It is clear that this uses up the most time, so this would be the first part where I proposed optimizations.
CPU sampling reveals the following profile:

This shows where the process spent its time and more than 60% appear to be spent inside the CopyrightProcessor as I noted above. It makes sense to see regex appear there as well as regex processing is most of the nontrivial part happening in replaceYears and it is generally known that regexes tend to be tricky for optimisation purposes.

Thanks @Martin-Idel-SI !
The CopyrightStatementsProcesser.process() is indeed not ultra fast.
However, I'm almost 100% certain that it is fast enough, and that the real problem is that the function is called "a bit more often" than needed. I doubt 3 million calls to it (as I observed) is the right amount. Working on the PR...

@fviernau - clearly reducing the number of calls would also work and be even better!
I saw 1 million copyrights at some point on the heap - according to samples - so I assumed that's the number of copyrights to be processed, in which case 3 million calls (for three reports processing copyrights) seemed necessary if reusing the results of one report generation for different reports is an architectural challenge (my assumption). If the 1 million copyrights do not represent unique copyright statements (seems a bit large, but then again - the whole project produces very large output), then of course this should be the source of optimisation.
Again, thanks for looking into this. If I can help in any way with my very limited understanding of the code, I'm happy to help.

Just to confirm here: This actually cuts reporter time by 2/3rd (from over an hour to around 20min). This is good enough for now!

Thanks @Martin-Idel-SI ! Just out of curiousity.
Is this measured for computing all reports in one go or for computing the reports separately?
...With or without profiler enabled?
...and with which -Xmx value for the JVM?
Note: my measure were done with computing reports separately, with -Xmx16G.

@fviernau I did this on our production instance, so:

No profiler enabled
Xmx12g, although I think the machine running the request only had 8GB
Reports were computed in one go

Before, we had failures of the report stage and >1h on the same machines, now it took 17 minutes (the whole step took 21 minutes, but we need some setup and uploading reports and such). Final performance output:
Successfully created the 'AsciiDocTemplate' report at [/output/results/AsciiDoc_disclosure_document.pdf, /output/results/AsciiDoc_vulnerability_report.pdf] in<PHONE_NUMBER>32s.
Successfully created the 'CycloneDx' report at [/output/results/CycloneDX-BOM.xml] in 59.858172153s.
Successfully created the 'NoticeTemplate' report at [/output/results/NOTICE_default, /output/results/NOTICE_summary] in 65.9136707s.
Successfully created the 'SpdxDocument' report at [/output/results/document.spdx.yml] in 14.103918558s.
Successfully created the 'StaticHtml' report at [/output/results/scan-report.html] in 44.180965227s.
Successfully created the 'WebApp' report at [/output/results/scan-report-web-app.html] in<PHONE_NUMBER>86s.
Created 6 of 6 report(s) in<PHONE_NUMBER>01s.

So the CycloneDx and NoticeTemplate reports are now an order of magnitude faster, the AsciiDocTemplate is still somewhat slow but that will probably due to the pdf processing and such (about 2 mins is spent retrieving licenses from the license archive).

the AsciiDocTemplate is still somewhat slow but that will probably due to the pdf processing and such

Yeah, there probably is the while JRuby overhead involved, with AsciiDoc being written in Ruby.

about 2 mins is spent retrieving licenses from the license archive

That probably get faster with @mnonnenmacher's plans to move the license archive also to a database.


native: reset image attachment after sending

Should fix the issue Pat reported where hitting send with an image attached left the image preview open even though the message was actually sent. Believe this is related to the recent async changes there.
Fixes TLON-2392

@dnbrwstr yes it does the same thing as what's happening in ChannelScreen, I suppose if we bump that call above the await we can rely solely on that instead. Removing the setTimeout as well to make sure it feels responsive and doesn't delay itself a tick.
Can confirm it wasn't just send failure because of ship weirdness. It repros consistently, awaiting store.sendPost was only added yesterday. If you leave the input open after sending for long enough, it does eventually close once delivery of the message is confirmed.


'The results could not be loaded.' message during typing when request was cancelled by select2

During the typing in select2 searchbox with 'ajax' option on in Chrome browser, select2 sends requests to server, and some of them it cancels. When it happens, the message 'The results could not be loaded.' appears in dropdown, then gets replaced with results. Seems a bit confusing.
Haven't tested in other browsers.
This bug happens also on the examples page (https://select2.github.io/examples.html)
Found such code in select2.full.js:
        // Attempt to detect if a request was aborted
        // Only works if the transport exposes a status property
        if ($request.status && $request.status === '0') {
          return;
        }

The condition here could be replaced with ($request.status && $request.status === '0' || $request.status === 0) condiiton, but I can't be sure than it doesn't break something else

bug appears also in Firefox

@eternalfame I started experiencing this all of a sudden. Seemed to work fine before.\
Did you find any solution?

I'm having this issue too. Specially noticeable in slow connections.

Seeing this also, and given workaround fixes it. It seems that in JQuery status is 0, not "0", which triggers issue.

Is there a PR for this yet?

@lordplagus02 there is a fix in #4356, but it needs some test cases before it can be merged in.

is it possible that there's also an issue with the delay option? It seems to actually ignore the delay for me, displaying the aforementioned "error" message before I'm done typing.

My bad, just used the code from the PR, definitely fixes the issue.

#4356 has been merged into the 4.0.6-rc.0 pre-release.

I just tried out "4.0.6-rc.0" and I'm still seeing these errors

Hey guys,
I'm still getting this issue... just downloaded latest version of ACF I'm seeing the following
http://www.flowpress.com/screenshots/screenshot_2018-02-14_at_6.50.21AM.png
ajax call returns the data
http://www.flowpress.com/screenshots/screenshot_2018-02-14_at_6.50.56AM.png
Any thoughts?

@raptor235 according to this pull request, they will release in 4.0.6.  https://github.com/select2/select2/pull/4356.  It looks like the merged and have a release candidate out.  Check what version you're using.


6492 verify message

Summary
Add ability to verify eip6492 messages.  This introduces using viem.
How did you test your changes?

yarn dev
Connect an scw from keys.coinbase.com
Click example "personal sign" , verify that message verification is successful.

[x] Verify personal sign for an eoa
[x] Verify eip 712 with scw
[x] Verify eip712 with eoa

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
1

Sum
2

Summary
Add ability to verify eip6492 messages. This introduces using viem.
How did you test your changes?

yarn dev
Connect an scw from keys.coinbase.com
Click example "personal sign" , verify that message verification is successful.

* [x]  Verify personal sign for an eoa
* [x]  Verify eip 712 with scw
* [x]  Verify eip712 with eoa


Website UX and styling fixes

Checklist:

[x] Make links underlined and slightly bolder.
[ ] Use separate pages for docs and FAQ, or integrate them both into a docs page.
Example:

Will start working on this


[WIP][SPARK-41271][SQL] Parameterized SQL queries

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?
No, this is an extension of the existing APIs.
How was this patch tested?
By running new tests:
$ build/sbt "test:testOnly *PlanParserSuite"
$ build/sbt "test:testOnly *AnalysisSuite"
$ build/sbt "test:testOnly *QueryCompilationErrorsSuite"

Can you provide more information on how this proposal compares to the behavior of other popular SQL dialects (e.g. ANSI, Postgres, MySQL, Trino, HiveQL, Snowflake)? One thing that stands out to me is that this PR only supports named parameters; I think positional parameters are more common? For example AFAIK JDBC only supports positional parameters (ref).

Can you provide more information ... of other popular SQL dialects

@xkrogen Named parameters are supported by:

Redshift: https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html#data-api-calling
BigQuery: https://cloud.google.com/bigquery/docs/parameterized-queries#api
MS DBSQL: https://learn.microsoft.com/en-us/azure/databricks/sql/user/queries/query-parameters

All 3 of the examples you provided use different syntax (:id vs @id vs {{ id }}). Can we provide more motivation for why we are picking the syntax used in this implementation? SQL-92 defined ANSI Dynamic SQL which uses colons (:id). One other example using : is SQLAlchemy.
Other examples (besides JDBC) only supporting positional arguments:

Trino & PrestoDB
PostgreSQL
Snowflake
[MySQL](https://dev.mysql.com/doc/refman/8.0/en/user-variables.html

So from what I am seeing, positional arguments (with ? placeholders) are the most common, and when named parameters are supported, colons are the most common way to denote them (including ANSI support). I feel there is a good argument to be made that named arguments are much easier to work with than positional so I am supportive of using named args rather than positional, but I feel we should at least follow the ANSI standard and use colons rather than at-signs.

Can we provide more motivation for why we are picking the syntax used in this implementation?

@xkrogen The @ marker has been chosen to make migrating from BigQuery to Spark SQL easier.

SQL-92 defined ANSI Dynamic SQL which uses colons (:id).

Actually, this is just Oracle's proprietary implementation.

I feel we should at least follow the ANSI standard and use colons rather than at-signs.

I agree that we should follow standards whenever it is possible but there are no standards for this feature so far.

Actually, this is just Oracle's proprietary implementation.

I don't think this is true, but admittedly my knowledge of the SQL standardization process is limited, so please correct me if you find gaps in my reasoning. In the SQL-92 standard (this is the only reference to the full standard I can find with a few minutes of searching; please let me know if you have a better source), Dynamic SQL is defined in section 17, and on page 98 it explicitly defines a parameter name as being prefixed by a colon:
         <parameter name> ::= <colon> <identifier>

The @ marker has been chosen to make migrating from BigQuery to Spark SQL easier.

This seems, to me, like a pretty shaky argument? I could just as easily say that we should choose : to make it easier to migrate from Redshift, or, what seems to be a strong argument based on what I found in my last comment, that we should choose positional argument support (?) to make it easier to migrate from Trino, PrestoDB, PosgreSQL, Snowflake, and MySQL. Why are we giving BigQuery precedence here?


Describe how nix-your-shell works

PTAL @adrian-gierakowski
Closes #33

Thanks, this clarified things for me!


Fuzzy imagery in historical imagery tests

Sometimes when historical imagery is turned on imagery that should be high resolution is shown in low resolution.  The imagery switches to high resolution when historical imagery is turned off.  The reverse symptom has also occurred: imagery is high resolution when historical imagery is enabled and low resolution when it is not.
This may be caused by setting up the hostname improperly.

We have consistently seen that the hostname does effect historical imagery, so there really isn't a bug here if the hostname is set correctly.


[CPU] Enable DT for [i8, i4 -> i32/f32] mmt4d

This only provides some tile sizes to target SMLAL instructions using DT only (no UK). We can enable the UK side targeting SMMLA once we have one written for that mmt4d configuration.

Blocked by LICM


Add overview of gnpy & "vision statement" to Readme

Summary
We believe that openly sharing ideas, specifications, and other intellectual property is the key to maximizing innovation and reducing complexity
PSE WG Charter
Goal is to build an end-to-end simulation environment which defines the network models of the optical device transfer functions and their parameters. This environment will provide validation of the optical performance requirements for the TIP OLS building blocks.
The model may be approximate or complete depending on the network complexity. Each model shall be validated against the proposed network scenario.
The environment must be able to process network models from multiple vendors, and also allow users to pick any implementation in an open source framework.
The PSE will influence and benefit from the innovation of the DTC, API, and OLS working groups.
The PSE represents a step along the journey towards multi-layer optimization.

Features
GNPY simulation of an amplified optical link

Background
Data Centers are built upon interchangeable, highly standardized node and network architectures rather than a sum of isolated solutions. This also translates to optical networking. It leads to a push in enabling multi-vendor optical network by disaggregating HW and SW functions and focussing on interoperability. In this paradigm, the burden of responsability for ensuring the performance of such disaggregated open optical systems falls on the operators. Consequently, operators and vendors are collaborating in defining control models that can be readily used by off-the-shelf controllers. However, node and network models are only part of the answer. To take reasonable decisions, controllers need to incorporate logic to simulate and assess optical performance. Hence, a vendor-independent optical quality estimator is required. Given its vendor-agnostic nature, such an estimator needs to be driven by a consortium of operators, system and component suppliers.
Founded in February 2016, the Telcominfraproject (TIP)is an engineering-focused initiative which is operator driven, but features collaboration across operators, suppliers, developers, integrators, and startups with the goal of disaggregating the traditional network deployment approach. The group’s ultimate goal is to help provide better connectivity for communities all over the world as more people come on-line and demand more bandwidth- intensive experiences like video, virtual reality and augmented reality. Within TIP, the Open Optical Packet Transport (OOPT) project group is chartered with unbundling monolithic packet-optical network technologies in order to unlock innovation and support new, more flexible connectivity paradigms. The key to unbundling is the ability to accurately plan and predict the performance of optical line systems based on an accurate simulation of optical parameters. Under that OOPT umbrella, the Physical Simulation Environment (PSE) working group set out to disrupt the planning landscape by providing an open source simulation model which can be used freely across multiple vendor implementations.


Better way for manage user sessions

i think if we have some changes in code to when user request for login, check this user for active session with same user agent and if have, system dont create new session and reply that active session exist ... github sessions working like that !

In the next version of Frame I've simplified session handling a bit. I've removed the revoked property from sessions and also decided (for now) not to include any restoring session logic (this issue) by default.
I intend for Frame to be generic. This results in less opinions forced on other people and also less to maintain. For example; we're using hapi-auth-basic which I don't recommend that anyone use. In 100% of my use cases I remove hapi-auth-basic as almost the first step.  In some cases hapi-auth-cookie with keep alive configured has a really good session retention experience for me.
Thanks again for getting involved.


seem to stuck initializing dns clients

https://github.com/hickory-dns/hickory-dns/issues/2070

https://github.com/Watfaq/clash-rs/pull/258


[SP-5922] Backport of PDI-19082 - The timestamp format in Text File O…

…utput gets passed to the next Text File Output in the stream if that step has no format selected (8.3 Suite)
Original PR: pentaho-kettle#7918
@ssamora @bcostahitachivantara @moraesvc

:white_check_mark: Build finished in 29m 21s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:ok_hand: All tests passed!
Tests run: 3673, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message


meross MSG100 is currently not supportet - homebridge-meross v6.0.0-beta.4

homebridge-meross v6.0.0-beta.4
in the log file of homebridge i received the following message:
[Garage] is currently not supported, do create a github issue https://git.io/JtfVC with info:
with info:
{
uuid: '21031902xxxxxxxxxxxxxxxxxxxxxxxxxxx',
onlineStatus: 1,
devName: 'Garage',
devIconId: 'device039_un',
bindTime:<PHONE_NUMBER>,
deviceType: 'MSG100',
subType: 'us',
channels: [Array],
region: 'eu',
fmwareVersion: '3.2.3',
hdwareVersion: '3.5.0',
userDevIcon: '',
iconType: 1,
skillNumber: '',
cluster: 1,
domain: 'mqtt-eu.meross.com',
reservedDomain: 'mqtt-eu.meross.com'
}
[7/26/2021, 5:02:11 PM] [Meross] [Garage] failed to refresh status as Cannot read property 'payload' of undefined at deviceLocalGarage.requestDeviceUpdate (/homebridge/node_modules/homebridge-meross/lib/device/local/garage.js:244:47).

Closing this issue as duplicate of #302


Introduction to custom widgets

In the previous doc, we had a section dedicated to custom widgets. It was very minimal but it was there. Now we don't have the necessary key elements for the creation of new custom widgets.

This has been shipped with v2.1.0, you can find the guide here


Search results are not scrollable

Hey guys,
Search is impossible to use if you can't see all the results. Consider this:

I think body should have overflow: hidden with every modal opened.

We're using the default Algolia search component, so unfortunately we don't have a lot of control over that. It's something we're looking to improve in the new site but won't be spending any time for the current one.