Track User vs Internal Error in query log

Once https://github.com/influxdata/flux/issues/1364 is complete we will be able to check error codes of errors produced by Flux and track them in the query log.
At the very least we should track user vs internal errors in the query log, but we could potentially store the error code itself in the query log and defer the decision of user vs internal to reading the database.

This means that we need to explicitly translate the Flux error codes to InfluxDB error codes and then consume those codes inside the log data.
DOD:
We can distinguish between users and internal errors in the query log database.

I tested this out and we're going to need a separate issue to convert a lot of the Flux errors to use the new error library. The places where it does exist get wrapped in other unrecognized error types and so almost everything shows up as an internal error anyway.


Maintenance: decrease aws-sdk usage

Summary
The repo uses aws-sdk (v2) to interact with AWS in several places related to integration tests. We should make an effort to phase out this usage in favor of the more modular AWS SDK v3.
Why is this needed?
Because the AWS SDK v2 is going to be put in maintenance mode in 2023, this way we'll be ahead of the curve when that happens.
Which area does this relate to?
Automation
Solution
Try to switch to AWS SDK v3 for JavaScript wherever possible.
Acknowledgment

[X] This request meets Lambda Powertools Tenets
[ ] Should this be considered in other Lambda Powertools languages? i.e. Python, Java, and .NET

Future readers
Please react with 👍 and your use case to help us understand customer demand.

As the linked PR states, the aws-sdk will still remain in the project in some capacity. The Tracer integration tests function code require the SDK to be present for the time being.


Add polkadot_update.sh script

Maybe it makes sense to use it directly for the next update and improve on it.

Is this mergeable @gaudenzkessler @echevrier ?

I do not use it atm. We have to discuss it with the rest of the team if we think that should be part of the repo


[97] Rotation certificates

This is for issue #97
This pr gives the gem support to the rotation certificate. In case you have many providers and the certificate expires, with this option you can change one by one without having to stop all your services.

As far I understand if we really want to support multiple certificates. Behavior should be different just switch keys with flag.
https://stackoverflow.com/questions/35909251/saml2-metadata-multiple-signing-certificates

@jphenow, @JuarezLustosa  if you guys agree with my suggestion, I would like to suggest to close this pull request. And to create a new feature request that support SAML multiple certificate feature.

@jphenow, @JuarezLustosa  if you guys agree with my suggestion, I would like to suggest to close this pull request. And to create a new feature request that support SAML multiple certificate feature.

@jphenow, @JuarezLustosa if you guys agree with my suggestion, I would like to suggest to close this pull request. And to create a new feature request that support SAML multiple certificate feature.

@Zogoo It's ok to me, you can close this.

@jphenow, @JuarezLustosa if you guys agree with my suggestion, I would like to suggest to close this pull request. And to create a new feature request that support SAML multiple certificate feature.

@Zogoo It's ok to me, you can close this.


Rotation problem when appending movies from different camera on the phone

Hi.
Maybe this has been reported before.
I have this method below that merges my videos into a final mp4 file.
However. When I record with the front camera first and then the back. The orientation changes.
Suddenly, the movie recorded from the back is now showing upside down.
The same happens when I record the backcamera and then the frontcamera.
What is the simple rotate mechanism for a video track?
It doesn't help to set orientation on video recording or the camera. It will give me the same issue.
my code
private void mergeMovies(File outFile) {
    try {
        int totalFilesToMerge = mMoviesToMergeList.get().size();
        Movie finalMovie = new Movie();
        Track[] movieTracks = new Track[totalFilesToMerge];
        Track[] audioTracks = new Track[totalFilesToMerge];

        for (int i = 0; i < totalFilesToMerge; i++) {
            Movie movie = MovieCreator.build(mMoviesToMergeList.get().get(i).getPath());
            if(movie.getTracks().get(0).getHandler().equals("vide")) {
                movieTracks[i] = movie.getTracks().get(0);
            }

            if(movie.getTracks().get(1).getHandler().equals("soun")) {
                audioTracks[i] = movie.getTracks().get(1);
            }

        }
        finalMovie.addTrack(new AppendTrack(movieTracks));
        finalMovie.addTrack(new AppendTrack(audioTracks));

        FileOutputStream fos = new FileOutputStream(outFile);
        BasicContainer container = (BasicContainer) new DefaultMp4Builder().build(finalMovie);
        container.writeContainer(fos.getChannel());
        fos.close();
    } catch (IOException ie) {
        Log.e("ERROR MOVIE", "Something is wrong");
    }
}

Oh my, front and back camera in this are physically oriented differently
and the orientation is correced in the file format. Unfortunately the
rotation is applied globally and there is no way to rotate just 'half of
the movie'. You will need to make sure that the video is fed to the
MediaCodec already in the correct orientation to make the append
operatation work as you expect.
2015-11-04 8:47 GMT+01:00 Khiem-Kim Ho Xuan<EMAIL_ADDRESS>
Hi.
Maybe this has been reported before.
I have this method below that merges my videos into a final mp4 file.
However. When I record with the front camera first and then the back. The
orientation changes.
Suddenly, the movie recorded from the back is now showing upside down.
The same happens when I record the backcamera and then the frontcamera.
What is the simple rotate mechanism for a video track?
It doesn't help to set orientation on video recording or the camera. It
will give me the same issue.
my code
private void mergeMovies(File outFile) {
try {
int totalFilesToMerge = mMoviesToMergeList.get().size();
Movie finalMovie = new Movie();
Track[] movieTracks = new Track[totalFilesToMerge];
Track[] audioTracks = new Track[totalFilesToMerge];
    for (int i = 0; i < totalFilesToMerge; i++) {
        Movie movie = MovieCreator.build(mMoviesToMergeList.get().get(i).getPath());
        if(movie.getTracks().get(0).getHandler().equals("vide")) {
            movieTracks[i] = movie.getTracks().get(0);
        }

        if(movie.getTracks().get(1).getHandler().equals("soun")) {
            audioTracks[i] = movie.getTracks().get(1);
        }

    }
    finalMovie.addTrack(new AppendTrack(movieTracks));
    finalMovie.addTrack(new AppendTrack(audioTracks));

    FileOutputStream fos = new FileOutputStream(outFile);
    BasicContainer container = (BasicContainer) new DefaultMp4Builder().build(finalMovie);
    container.writeContainer(fos.getChannel());
    fos.close();
} catch (IOException ie) {
    Log.e("ERROR MOVIE", "Something is wrong");
}

}
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/130.

hmmm yeah I thought that doing what I did now would solve the problem.
But so as far as I have understood it. I have set the mediarecorder orientation to what I want. But merging the files. It gives med the wrong orientation. I might have misunderstood what you mean. But if it is setting the orientation before recording a movie. Then I have done that. It just doesn't seem to be in effect when merging the files.

There is an 'encoding'  orientation.  That's what the encoder thinks where
the top is. The mp4 container has an orientation as well which is basically
a matrix transforming (this case: rotating) the decoded picture.  If your
two parts have different orientation on encoder level you cannot correct
that on mp4 level as this is applied globally to the full track.
Does that help you?
Khiem-Kim Ho Xuan<EMAIL_ADDRESS>schrieb am Mi., 4. Nov. 2015
9:33 AM:

hmmm yeah I thought that doing what I did now would solve the problem.
But so as far as I have understood it. I have set the mediarecorder
orientation to what I want. But merging the files. It gives med the wrong
orientation. I might have misunderstood what you mean. But if it is setting
the orientation before recording a movie. Then I have done that. It just
doesn't seem to be in effect when merging the files.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/130#issuecomment-153635165.

Hi, i have the same issue, as I understood, there is no way to merge videos from different cameras with different rotations without rotation issue?:(

@kkho did you find any alternative to overcome this problem back then?

@sannies is it possible to merge 2 video recorded in different orientation by changing some lib logic or is this impossible to achieve?

Has anyone managed to solve this issue? And if yes, could you be so kind to put some code snippet, to push other devs.

I'm guessing that no one has solved this issue using MP4Parser. I love the ease of use of the library but it seems like this one sticking point is going to force me to choose another way of joining the video files from opposite cameras.

Facing the same issue. Found any solution yet? Please help.

Hmmm any news? This should be solved somehow since there are many developers that are using the library

@kkho Have been able to solve it somehow with some workaround?

No not yet.. My app had been on hold ever since. But a workaround should be possible but we will see

I solved it by using ffmpeg library.

Explain how you did it?

@wandering7man Yes please explai. If possible please post a sample code showing how your did it?

I tried it with FFMEG library as well [https://github.com/guardianproject/android-ffmpeg-java]. But it has the same issue. @sannies Hope to see the issue solved soon as this is a great library except for this issue.

I need this, too. I believe, we need that a own playback.

@wandering7man How did you solved it with ffmpeg? I also tried, but still ended with the same result.

I hope to help you.
I am trying to encode video from the camera and audio from the microphone using MediaCodec and MediaMuxer. Rendering with OpenGL.
https://github.com/lumyus/FlexCam

I've been stuck with this problem for a while. I tried with ffmpeg and besides that it's really big size library it took ages to append 90 seconds videos. I found a solution using the library CameraView. When I use this library to record videos from both cameras and after use Mp4Parser to append them, they are with the right rotation. I think the library is rotating the videos as it records or something like that. I hope some people find this useful.
EXTRA: I found CameraView library very useful and simple I would recommend people to use it

@HBiSoft I tried your solution but it does not work when you append the videos. I'm still getting the same result

@buntupana i tried what you said by using CameraView to record videos and Mp4Parser to append them together, i still get second to be concatenated video upside down, i was using takeVideo method in CameraView, if i switch to use takeVideoSnapshot the rotation issue will be gone.
Right now, the work around i found is to use another library called https://github.com/natario1/Transcoder, it fixes rotation issue.


fix output parameter name for build-lambda-zip

Fix name of parameter of output in build-lambda-zip command

Hi Alexsandre,
Looks like both are supported: build-lambda-zip/main.go. But I do think it's clearer to use the long name in this case.
Thanks,
-Michael at AWS

Hi Alexsandre,
Looks like both are supported: build-lambda-zip/main.go . But I do think it's clearer to use the long name in this case.
Thanks,
-Michael at AWS

In my tests the error message is displayed: "Incorrect Usage. flag provided but not defined: -o".
Have any new versions been released ??
Thanks!


[Feature Request] Possibility to add Music Video playlist(s) to a new collection?

I've created several Music Video playlists in Emby for the 80's / 90's / 00's etc which displays the title of the playlist, an overview description for the entire playlist, the duration for the entire playlist and all of the genres that are included in the playlist.
I've been trying to think how I might be able to replicate the above format, so that all the videos in a particular playlist would represent one single item in a collection? The idea being, that if I could add multiple music video playlists to a collection, I could then create a new channel made up of just Music Video's with multiple programmes based on the playlist title, the playlist overview description and playlist duration. Just to be clear, I'm not wanting the TV guide to show each individual music video title and duration.
Is this something that might be doable?
If not, maybe somebody could give some guidance on how I might best tackle this in order to achieve what I'm looking to do.
Apologies in advance if such a request has been requested/asked previously.

Jason
Feel free to close this request.
I actually ended up hacking my way to a reasonably simple solution by joining several music videos together to form a single video file. By naming this file as the programme title I want to see in the TV guide and creating a NFO with the programme plot details and then adding to a new music video collection, I'm able to use with a TV channel dedicated to just music videos. All I have to do is repeat the process for other programmes, then add these to the same collection.
It's all working like a charm and just how I had originally envisaged!
Thought I would post an update, as this might be useful to other people who were wanting to achieve the same effect.
The only real downside is each programme title created from the joined music videos will always have the same playback order. Also, I'm not able to show Artist/Album/Year, unless I hardcode that info onto each video, prior to joining them together.
However, one small snag I have is how to add poster art for these music videos. I couldn't find anything in the documentation on how to add artwork for a specific music video. Should I just add my poster artwork to the music video folder? Is there any specific naming convention I should use? Or do I simply add a tag to the NFO file with the associated file path for the artwork? I have tried various things, but artwork is still not being picked up at the moment. Grateful if you could advise on the correct process.
I also noticed that if the character '&' is used on the plot tag within the NFO, then the entire plot description will not be added. I only picked on this when I had the music artist Womack & Womack mentioned in one of my plot descriptions.
Cheers

OMG that isn't acceptable. I tried asking on the discord but man those guys were assholes over there. Nice at first.... I was hoping you had a solution.


[FEATURE] Enhancement - Automated KMS CMK rotation capabilities

Automated KMS CMK rotation capabilities

the ASEA only uses Customer Managed Keys (CMK) within KMS
Different CMK's are created for each distinct purpose within each account

SSM, Secrets, ConfigBucket, EBS, S3Buckets

Currently these keys are being created without automatic key rotation enabled

TASK:

all new installations and all new KMS CMK creations moving forward shall have automatic rotation enabled when the key is created
all existing installations shall shall have all ASEA created keys updated to enable key rotation

Details:

Docs: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
API: aws kms enable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
Console: KMS, CMK, Select Key, select Key Rotation tab, select "Automatically rotate this CMK every year.", select Save

This will ship in v1.2.6


[UIE-51] Move FocusTrap to components

https://broadworkbench.atlassian.net/browse/UIE-51
Continuing to move basic components to the components package... This moves FocusTrap.
I couldn't resist a little renaming. Changed "FocusTrapper" to "FocusTrap". "" vs " doer" fits better with React's declarative model.
Also changed "onBreakout" to "onEscape". I think that preserves the meaning (escaping the trap vs breaking out of the trap) and also makes it clearer how it's triggered (by pressing the escape key).
Also added a test.

Looks like there's an issue that's causing Terra UI tests to fail:
The CommonJS build needs to
const FocusLock = require("react-focus-lock").default;

instead of
const FocusLock = require("react-focus-lock");

Marking this as a draft while I figure out how to work around that.


Add package build to nix flake

Uses crane to build the planus-cli binary with the nix flake.
I think I got the dev shell more or less the same, but I'm not exactly sure what @TethysSvensson and @kristoff3r are doing with it.
SIDE EFFECT: adds Cargo.lock to the repo which is required for the build.
On a related note, these tests are failing on main and v0.4.0 in both the nix build and my normal system environment:
failures:
    planus_test::byte_slices::test_serialize
    planus_test::string_list::test_serialize
    planus_test::strings::test_serialize
    planus_test::vtable_cache::test_serialize

I think the reason this does not work on your machine might be the as #197 ?
They pass in the CI. Can you tell me a bit more about the failures before we merge?

I think this PR is great.
I think it would be nice if we had an automatic update of Cargo.lock and flake.lock as part of the CI. Probably something similar to the one in rustfmt.yml.
Would you be up for adding that in this PR as well? Otherwise I can take a look in a follow-up PR.

This was included in #213.


go get github… does not work

user@machina ~/Tmp go get github.com/wmark/caddy.upload
package github.com/wmark/caddy.upload: code in directory /home/user/Tmp/src/github.com/wmark/caddy.upload expects import "blitznote.com/src/caddy.upload"

With the -v, for verbose output, you will be shown how go get resolved package names:
go get -v blitznote.com/src/caddy.upload

@sirkon I think the real answer to your question is :
first, get the repo:
cd  $GOPATH/src/github.com/mholt/caddy/caddy
go get -v blitznote.com/src/caddy.upload

then building Caddy with the upload plugins, add it to your imports (in the main.go from the caddy folder)  like :
package main

import "github.com/mholt/caddy/caddy/caddymain"
import _ "blitznote.com/src/caddy.upload"
...

and then build :
go build

@prune998 The directory you're in doesn't matter, got get will clone whatever it is and if it is missing into the first directory in $GOPATH. That said, you could add the import _ "…" first and then, in Caddy's main dir, run a go get without any arguments (which will get everything missing).

Locking this because Go has moved to modules.


Update the way of retrieving loader's options

Updated the way of extracting the given loader options from legacy to recommended way. See more details here and here.

Thank you, @shanhaichik!


feed.xml works locally but not online

[x ] This is a question about using the theme.
[ ] This is a feature request.
[x ] I have updated all gems with bundle update.
[x ] I have tested locally with bundle exec jekyll build.
[ ] I believe this to be a bug with the theme --- not Jekyll, GitHub Pages or one of the bundled plugins.

Environment informations

Minimal Mistakes version: 4.4.2
github-pages or jekyll gem version:
Operating system: Windows 10

Expected behavior
Hello,
I have a minor issue with the theme: when I check it locally (with bundle exec jekyll serve) I see the file feed.xml perfectly, but it doesn't show online.
I moved the blog posts away from the homepage to a section named "blog". Could that be the reason?
Thanks.
Steps to reproduce the behavior

Repository: https://github.com/ImAlexisSaez/ImAlexisSaez.github.io.
Web: https://imalexissaez.github.io/.

Duplicate of #1144
Change plugins: in your _config.yml back to gems:. GitHub Pages doesn't use the version of Jekyll that accepts this key change. What's happening is the Jekyll Feed plugin isn't loading, so your feed.xml file isn't being created.
Once github/github-pages updates to support Jekyll 3.5 plugins should work.


Minor tweaks and fixups

This PR makes a few minor tweaks and fixes a couple of things that had broken:

Adds the student data to the professional data viewer
On a few of the viewers, the axis labels were simply 'distance' and 'velocity'. This PR changes them to 'Distance (Mpc)' and 'Velocity (km/s)'
In the first comparison screen, change "All data" -> "All Participant data"
The pan/zoom functionality for the line marks seems to have gotten removed at some point, so this PR re-adds that

The histogram/scatter sync broke at some point when the layout changed, so I took this opportunity to fix that and streamline the helper classes that make it work

@patudom These newest commits fix the slow updating when data points are added to the table - on my machine, there's no delay. I also updated the histogram axis labels, in addition to the scatter ones.
There's some issue with the tox tests that I haven't quite worked out yet. I think the root of the problem is that tox is getting pywwt==0.9.0, rather than pywwt==0.13.0 (which is what was used on the last commit that passed). Based on the error that's popping up when I try forcing pywwt > 0.12.0, I think it's related to https://github.com/pypa/setuptools/issues/2849, but when I tried restricting setuptools to be less than 58.5, I still got the same error.

With https://github.com/WorldWideTelescope/pywwt/pull/317, our tox issues are resolved.


move cupy out of install requirements

This also adds a check that cupy has been propery nstalled to init
@hodgestar  this is what we were talking with @nathanshammah  today.
I had skipped the change on the last PR.
If this is okey with you I'll add the corresponding changes in the readme

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 5 (60.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.6%) to 82.667%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/qutip_cupy/init.py
3
5
60.0%

Totals

Change from base Build<PHONE_NUMBER>:
-1.6%

Covered Lines:
62

Relevant Lines:
75

💛  - Coveralls

@MrRobot2211 Let's do the corresponding README changes in a separate PR. Other than my one suggestion, this PR looks good.

@MrRobot2211 Let's do the corresponding README changes in a separate PR. Other than my one suggestion, this PR looks good.
Yes they are already in #18

I think we can merge now @hodgestar.


Fix compilation of std.math.

This fixes these compilation errors:

phobos/std/math.d(2599): Error: only global variables can be referenced by identifier in naked asm
phobos/std/math.d(2611): Error: only global variables can be referenced by identifier in naked asm
phobos/std/math.d(2612): Error: only global variables can be referenced by identifier in naked asm

Why are you getting these errors?

Ah, wait, I'm very sorry. This is an LDC problem. I thought it was a general asm problem.

I reopened this PR.
Looking at the generated assembler by DMD, I think this is a bug where the original author accidentally copied "naked" from the other implementation.

The asm block does not contain a "ret" and DMD does not generate it for naked asm blocks.
The (very) first two instructions of that function in the generated assembler are:

    mov     dword ptr [ebp-4], 0
    fld     tbyte ptr [ebp+8]

isn't that a clear bug, where the code is using ebp without setting up its own stack frame?

DMD's calling convention is magical I guess.  What is the generated code (obtained via objdump)?

This only affects win32/mscoff, maybe nobody's running those tests?  Or nobody's bothered tracking down the failures yet.  We really need an autotester for it.

I wonder why this is not being caught by the DMD unittests too.

I don't see any tests for ilogb in dmd or phobos.
The bad "naked" was probably a copy'n'paste error on my part. It's not there for any other Win32-MS-Runtime code path.

Auto-merge toggled on


Suggestion: Allow override of default return codes for Add-IntuneWin32App

It would be handy to be able to overring the default return codes when using Add-IntuneWin32App. This would allow adding custom post install behavior for the default codes.
Currently, you can use New-IntuneWin32AppReturnCode to build the custom return code behaviors with the default codes. But when you add them during Add-IntuneWin32App it will accept it and add doubles of the return code behavior. The app will be created, but when you view it in the portal, it throws errors saying "Return code is already used".

I haven't tested deploying an app with the duplicate return codes, but I'm assuming it would break trying to handle two different behaviors for one code.
Maybe add a check during the handling for the -ReturnCode behavior. If one of the objects set for that parameter is 0, 1707, 3010, 1641, or 1618 don't add it to the Win32 app as part of the default return codes.

That makes total sense. Seems to be a bug to me. Let me fix it.


XML error: Cannot read property 'documentElement' of null

From<EMAIL_ADDRESS>on November 17, 2014 13:48:01
What steps will reproduce the problem? 1. Create complex database design with many relationships and keys
2. Generate SQL option 3. What is the expected output? What do you see instead? The expected output is the SQL code but instead I see the following error:
XML error: Cannot read property 'documentElement' of null What version of the product are you using? On what operating system? Windows 8.1
Google Chrome Version 38.0.2125.111 m
Last version of SQL Designer Please provide any additional information below. I've attached the generated output using "Save XML"
Attachment: xml.txt
Original issue: http://code.google.com/p/wwwsqldesigner/issues/detail?id=185

From ondrej.zara on November 18, 2014 06:35:01
Irrelevant, according to the discussion at https://code.google.com/p/wwwsqldesigner/wiki/Manual .
Status: Invalid


default bell is the most annoything thing that distracts me from my work

We have written the needed data into your clipboard because it was
Issue Type: Bug
It pulls me out of my current work state of flow when I hear this bell (does not mesh with my background music).
repro:

open terminal (either powershell or WSL bash)
click backspace right away

expected: nothing (you don't need to tell me that clicking backspace is doing nothing, I can see that)
actual:
bell sound that irritates me, sends a thought "wow that's irksome" and ends whatever I was attempting to do before.
I want this turned off because it's distracting and happens frequently, but there's no obvious way to turn this off.
I tried the powershell command:
Set-PSReadlineOption -BellStyle None
which works once, but when I close and re-open VScode, this is no longer the case and I get this bell sound again.
for wsl bash I tried adding 'set bell-style none' in my /etc/inputrc file, but that does squat for vscode terminal.
 Please paste.

The default is off: "terminal.integrated.enableBell": false, please check your settings.

I think the powershell bell is configured differently to terminal.integrated.enableBell. @toddbellMSFT  I think the proper way to disable it is to add Set-PSReadlineOption -BellStyle None to your powershell start up script

@chrmarti Please open back up. My settings for terminal.integrated.enableBell are set (both default and custom) to false. So this setting seems to be broken.
Beep still happens.

@toddbellMSFT you should look into setting up a powershell profile which will disable the bell on start up, there's no plans on having terminal.integrated.enableBell drive this. It may work in the future but that relies on work from the Windows Console team.


[BUG] Documentation outdated: constellation overlay

Camera model
Raspi HQ
Operating System
Buster
Allsky version
v2023.05.01_05
Pi and amount of memory (512 MB, 1, 2, 4, or 8 GB)
Raspi 4, 4GB
Bug Description
This bug reports is about the AllSky documentation:
https://htmlpreview.github.io/?https://raw.githubusercontent.com/AllskyTeam/allsky/master/html/documentation/explanations/constellationOverlay.html
The information about activating constellation overlay seems not to be up to date: if I go to the editor and try to select the filename in the drop down, there is no "configuration.json" available...
Additionally the link in the following text doesn't work (404 - file not found):
For more information on this, and other Website settings, visit the Allsky Website Settings page.
Log / configuration files
No response

Thanks we will take a look

Some update: I think it was my fault: I tried to activate constellations before pushing the basic website and configure the upload correctly. After that the configuration.json is available in the Web Editor.
The problem with the broken links to other pages of the documentation is still there and occurs on all pages of the documentation with links.

@markusd112, glad you got it working.
The dead links are fixed in the next release.
I'm closing this Issue since you resolved it.


Update docs, comments to nudge timing with monotonic clock

What
Update docs and comments to encourage people to use the monotonic clock.
Why
The docs and comments show use of Time.now for timing interactor descendants. However, Time.now can suffer from "discontinuous jumps" that are solved by using the system's monotonic clock.1

Thanks for the pull request (and sorry for it sitting so long). Do you know if CLOCK_MONOTONIC is available across all operating systems and architectures that Ruby runs on?
Looking at the examples, they're focusing on how to use hooks rather than what's in the code example itself. While using CLOCK_MONOTONIC is the right way to do it I'm not sure changing it meaningfully adds to the example as Time.now is usually good enough. The example could have used Benchmark.realtime { ... } to calculate total runtime which uses CLOCK_MONOTONIC under the hood but that would have obscured the use of interactor.call.

While using CLOCK_MONOTONIC is the right way to do it I think it just complicates the examples for little gain.
Going to close this but open to an alternative change that uses a different example to show the same concept.


Certificate error after helm ugprade

Bug Report
What version of Kubernetes are you using?
v1.14.8
What did you do?
helm upgrade chaos-mesh helm/chaos-mesh --namespace=chaos-testing
 kubectl apply -f delay-example.yaml

What did you expect to see?
Apply successfully
What did you see instead?
Error from server (InternalError): error when creating "delay-example.yaml": Internal error occurred: failed calling webhook "mnetworkchaos.kb.io": Post https://chaos-mesh-controller-manag
er.chaos-testing.svc:443/mutate-pingcap-com-v1alpha1-networkchaos?timeout=30s: x509: certificate signed by unknown authority

I don't know whether this bug has connection with #358 .

Fixed by #369


Discussion: Parallelism in target-bigquery

Parallelism in target-bigquery
I'm opening this issue to discuss the current implementation of parallelism.
Current Workflow
The target currently supports both CPU parallelism and Thread parallelism. When a sink reaches the batch_size, it is considered full and is drained, creating a Job object that contains all the rows of the batch. These jobs are enqueued in a FIFO Queue.
The Target manages a pool of workers. Each time a sink is drained, the Target resizes the worker pool by killing dead workers. It takes into account the following factors:

The number of enqueued jobs
The MAX_WORKERS option
The time since the last worker was created

Each worker pulls jobs from the queue and sends the batch to a GCP API based on the chosen ingestion mode.
Concerns about Parallelism
I have some concerns about using parallelism as it seems to conflict with the spirit of Meltano:

Increased Complexity: Introducing parallelism adds a significant amount of complexity to this package, making it less maintainable. While trying to address issue #43, it became evident that we would need to introduce a Lock mechanism between Sink and Workers, further reducing code readability.

Inconsistency in Data Pipeline: It becomes challenging to handle cases where a single worker fails to send a batch, particularly in storage_write_api mode. Connections may be lost without the stream being committed, while other workers may commit streams and apply a new state, resulting in data loss.

Effectiveness of Parallelism: Based on local tests, the target doesn't scale beyond 1 worker, except when encountering the bug described in issue #43.

Modifications to singer_sdk logic: To make the worker pool logic work, we need to override singer_sdk methods that are marked as final, such as drain_one() and drain_all().

Let's discuss these concerns and evaluate whether parallelism is the best approach. Any suggestions or alternative solutions are welcome.

The problem is conflated by the fact that the Storage Write method is already inherently much more complex than all the other methods. Looking at the batch, legacy streaming, and gcs methods -- the code is actually very simple, readable, and consistently works.
The most bug prone parts of the package are by far going to be storage write, which I think after the last PR is probably in a much better state (we internally leveraged batch job / gcs primarily), and the denormalization / view generation.
If we flagged the storage write as less stable, and the batch as the most stable (and is in vast majority of cases in my experience, the fastest on a single node) we would probably not have as many issues.
Also as a best practice we should flag the denormalization: true with convoluted schemas being less resilient than denormalization: false which was originally the only way to load.
Given these 2 pieces of information, I think most users could self service the right usage pattern for their input data. It was also a requirement for us to be able to scale out loads on a single node because of the volume of data we were dealing with (billions of rows). I can attest to the fact that not only does the autoscaling pool work, it works very well. I think the storage write method is just a rough point (and was not a feature we utilized beyond me developing it).
Thoughts @mattsax ?


Angular 2.0, Protractor config, and C#

I have been looking for an answer to this for a little bit now to no avail. Also, I have asked a similar question on stackoverflow and have gotten crickets. So maybe this is a feature request and not a usability question. We are developing an application in Angular 2.0 and I'm pretty new to Protractor. We already have a pretty robust suite of tests that have been built in Selenium using C# and the page object model. We'd like to keep using this going forward with the new Angular applications, but I'm having a problem setting it up. I can get everything to work, i.e. getting all of the Protractor specific elements to be recognized in Visual Studio and getting all of the Angular objects set up for each page. What I can't seem to do is get Visual Studio to act on these elements. As soon as I try to click on an angular element I get the following error
unknown error: angular is not defined
In Javascript I would need to set the the following attribute in the config.js file in order to run in Angular 2
useAllAngular2AppRoots: true
There seems to be no way of accessing this attribute and/or changing it in my code. Maybe I'm missing something. If this is not the right place to ask about this, please let me know. Perhaps this might be better addressed with the NuGet package we are using
Protractor version installed on system (not sure if this has an effect on what is running through my code) -- 5.1.0
Protractor package referenced in code -- <IP_ADDRESS>
Selenium version 3.0.0
using Visual Studio 2015

Reasons for adopting new feature
--This would increase the ability to test angular 2.0 applications using C# and Selenium
Is this a breaking change? (How will this affect existing functionality)
--I don;t think this would have an effect on current functionality

Hi There,
I'm sorry your StackOverflow question hasn't gotten any answers. Unfortunately since this is about a specific language and setup I don't think this is the appropriate forum. I think your idea of asking about the NuGet package is a great start; you should be able to configure this if you are using protractor without a wrapper.
Thanks! 😄


app.UseExceptionHandler Mvc on a mac crashes dotnet

Hello.  I have an mvc aspnet core 2.0 app and started testing exceptions.  I am throwing all sorts of exceptions to test, regular exception, unauthorized exception, and so on, and the global error handler does not work.
Dotnet crashes and the mvc app is no longer receiving requests.  I've placed
app.UseExceptionHandler() before app.UseMvc().  No difference.  The only thing I see different about my setup than other articles is that I am using a mac os High Sierra.  The stack trace from my exception that I generate is...
Unhandled Exception: System.Exception: hey this is an exception
at yyyyyService.d__12.MoveNext() in /Users/jason/Documents/Service.cs:line 75
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
I've fiddled with this for a few hours to no avail.  Yes, I have tried changing from dev to production but my code only invokes the production app.UseExceptionHandler() from the standard startup.cs class.
Any thoughts on where i can go from here?

Are you using async void methods rather than async Task or queuing items directly to threadpool?

All of my controller methods are like this..so async await all the way thru.  no voids.  it's like it skips the exception handler altogether.
public async Task

Doesn’t look like the exception is happening on a request thread.

@CoderJason123 can you post your app to a GitHub repo so we can take a look?

ThreadPoolWorkQueue.Dispatch() looks suspicious. Unhandled exceptions on thread pool threads has always been problematic.

Unhandled exceptions on thread pool threads has always been problematic.

They crash the process 😄

Dotnet crashes and the mvc app is no longer receiving requests.

Exactly 😉

everyone, if you take the dotnet new mvc app, and make everything async, that is what is I have, literally.  i have not created thread pools manually or anything else.  The stack trace gives me little to go on, as you can see.  Is this a problem because I'm using async controllers?

I don't think it has anything do with async controllers. I think there's code in your application that's either using async void or scheduling work on the thread pool and an exception is being thrown from it.
What is this file and what is on line 75?

/Users/jason/Documents/Service.cs:line 75

@davidfowl -- that is just my service.  My controller calls my service which does the work and business logic.  I really wish I could get on board with folks telling me I'm scheduling work on a thread pool or doing an async void, but I am not.  So, nothing directly.  But, I am willing to investigate something in the framework that is doing this under the covers.

Guess what, you guys were right, i was wrong.  How's that for eating your own words?  The code that threw an exception was an async void because all i needed it to do was throw an exception if a data condition didn't exist.  I changed it to async task and all is well.


dont know how to install it, plz help

i have no experiense to install this extantion, but i installed the composer and all i need to know where to put the extantion to start install it via cmd, plz tell me wich directory i need to put the file, ths

I vote up for this issue, readme file is not clear about installation.

I vote up for this issue, readme file is not clear about installation.


Two displays in a chain problem

Hi,
I use this lib to drive one Waveshare 64x64 display with an ESP12F. Zero problems.
https://www.waveshare.com/wiki/RGB-Matrix-P2.5-64x64
However, when I tried to connect two in a chain, I didn't get the expected result.
I used this modified example from the lib.
// This is how many color levels the display shows - the more the slower the update
//#define PxMATRIX_COLOR_DEPTH 8

// Defines the buffer height / the maximum height of the matrix
//#define PxMATRIX_MAX_HEIGHT 64

// Defines the buffer width / the maximum width of the matrix
//#define PxMATRIX_MAX_WIDTH 64

// Defines how long we display things by default
//#define PxMATRIX_DEFAULT_SHOWTIME 30

// Defines the speed of the SPI bus (reducing this may help if you experience noisy images)
//#define PxMATRIX_SPI_FREQUENCY 20000000

// Creates a second buffer for backround drawing (doubles the required RAM)
//#define PxMATRIX_double_buffer true

#include <PxMatrix.h>

// Pins for LED MATRIX
#ifdef ESP32

#define P_LAT 22
#define P_A 19
#define P_B 23
#define P_C 18
#define P_D 5
#define P_E 15
#define P_OE 2
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

#endif

#ifdef ESP8266

#include <Ticker.h>
Ticker display_ticker;
#define P_LAT 16
#define P_A 5
#define P_B 4
#define P_C 15
#define P_D 12
#define P_E 0
#define P_OE 2

#endif

#define matrix_width 128
#define matrix_height 64

// This defines the 'on' time of the display is us. The larger this number,
// the brighter the display. If too large the ESP will crash
uint8_t display_draw_time=50; //30-70 is usually fine

//PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C);
//PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D);
PxMATRIX display(128,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);

// Some standard colors
uint16_t myRED = display.color565(255, 0, 0);
uint16_t myGREEN = display.color565(0, 255, 0);
uint16_t myBLUE = display.color565(0, 0, 255);
uint16_t myWHITE = display.color565(255, 255, 255);
uint16_t myYELLOW = display.color565(255, 255, 0);
uint16_t myCYAN = display.color565(0, 255, 255);
uint16_t myMAGENTA = display.color565(255, 0, 255);
uint16_t myBLACK = display.color565(0, 0, 0);

uint16_t myCOLORS[8]={myRED,myGREEN,myBLUE,myWHITE,myYELLOW,myCYAN,myMAGENTA,myBLACK};

uint8_t static weather_icons[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00
  ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xdf,0x07,0xdf,0x07,0xdf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xdf,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00
  ,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00
  ,0x00,0x20,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0xff,0xe0,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xdf,0x07,0xff,0x07,0xdf,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x07,0xdf,0x07,0xdf,0x07,0xff,0xff,0xe0,0xff,0xe0,0x00,0x00
  ,0x00,0x00,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0xff,0xe0,0x00,0x20,0x00,0x00,0x07,0xdf,0x07,0xdf,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xdf,0x07,0xdf,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0xff,0xff,0x07,0xff,0x07,0xff,0x07,0xdf,0x07,0xff,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xdf,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00
  ,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x07,0xff,0x00,0x20,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xdf,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xdf,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xdf,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0x07,0xdf,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00
  ,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0xff,0xe0,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0xff,0xe0,0xff,0xe0,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00
  ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xdf,0x07,0xdf,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xdf,0x07,0xff,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00
  ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xdf,0x07,0xdf,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xdf,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0x07,0xdf,0x07,0xff,0x07,0xff,0x00,0x00,0x00,0x00,0x00,0x00
  ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

#ifdef ESP8266
// ISR for display refresh
void display_updater()
{
  display.display(display_draw_time);
}
#endif

#ifdef ESP32
void IRAM_ATTR display_updater(){
  // Increment the counter and set the time of ISR
  portENTER_CRITICAL_ISR(&timerMux);
  display.display(display_draw_time);
  portEXIT_CRITICAL_ISR(&timerMux);
}
#endif

void display_update_enable(bool is_enable)
{

#ifdef ESP8266
  if (is_enable)
    display_ticker.attach(0.004, display_updater);
  else
    display_ticker.detach();
#endif

#ifdef ESP32
  if (is_enable)
  {
    timer = timerBegin(0, 80, true);
    timerAttachInterrupt(timer, &display_updater, true);
    timerAlarmWrite(timer, 4000, true);
    timerAlarmEnable(timer);
  }
  else
  {
    timerDetachInterrupt(timer);
    timerAlarmDisable(timer);
  }
#endif
}

void setup() {

 Serial.begin(9600);
  // Define your display layout here, e.g. 1/8 step, and optional SPI pins begin(row_pattern, CLK, MOSI, MISO, SS)
  display.begin(32);
  //display.begin(8, 14, 13, 12, 4);

  // Define multiplex implemention here {BINARY, STRAIGHT} (default is BINARY)
  //display.setMuxPattern(BINARY);

  // Set the multiplex pattern {LINE, ZIGZAG,ZZAGG, ZAGGIZ, WZAGZIG, VZAG, ZAGZIG} (default is LINE)
  //display.setScanPattern(LINE);

  // Rotate display
  //display.setRotate(true);

  // Flip display
  //display.setFlip(true);

  // Control the minimum color values that result in an active pixel
  //display.setColorOffset(5, 5,5);

  // Set the multiplex implemention {BINARY, STRAIGHT} (default is BINARY)
  //display.setMuxPattern(BINARY);

  // Set the color order {RRGGBB, RRBBGG, GGRRBB, GGBBRR, BBRRGG, BBGGRR} (default is RRGGBB)
  //display.setColorOrder(RRGGBB);

  // Set the time in microseconds that we pause after selecting each mux channel
  // (May help if some rows are missing / the mux chip is too slow)
  //display.setMuxDelay(0,1,0,0,0);

  // Set the number of panels that make up the display area width (default is 1)
  display.setPanelsWidth(2);

  // Set the brightness of the panels (default is 255)
  //display.setBrightness(50);

  // Set driver chip type
  //display.setDriverChip(FM6124);

  display.clearDisplay();
  display.setTextColor(myCYAN);
  display.setCursor(2,0);
  display.print("Pixel");
  display.setTextColor(myMAGENTA);
  display.setCursor(2,8);
  display.print("Time");
  display_update_enable(true);

  delay(3000);

}
union single_double{
  uint8_t two[2];
  uint16_t one;
} this_single_double;

// This draws the weather icons
void draw_weather_icon (uint8_t icon)
{
  if (icon>10)
  icon=10;
  for (int yy=0; yy<10;yy++)
  {
    for (int xx=0; xx<10;xx++)
    {
      uint16_t byte_pos=(xx+icon*10)*2+yy*220;
      this_single_double.two[1]=weather_icons[byte_pos];
      this_single_double.two[0]=weather_icons[byte_pos+1];
      display.drawPixel(1+xx,yy,this_single_double.one);
    }
  }
}

unsigned long last_draw=0;
void scroll_text(uint8_t ypos, unsigned long scroll_delay, String text, uint8_t colorR, uint8_t colorG, uint8_t colorB)
{
    uint16_t text_length = text.length();
    display.setTextWrap(false);  // we don't wrap text so it scrolls nicely
    display.setTextSize(1);
    display.setRotation(0);
    display.setTextColor(display.color565(colorR,colorG,colorB));

    // Asuming 5 pixel average character width
    for (int xpos=matrix_width; xpos>-(matrix_width+text_length*5); xpos--)
    {
      display.setTextColor(display.color565(colorR,colorG,colorB));
      display.clearDisplay();
      display.setCursor(xpos,ypos);
      display.println(text);
      delay(scroll_delay);
      yield();

      // This might smooth the transition a bit if we go slow
      // display.setTextColor(display.color565(colorR/4,colorG/4,colorB/4));
      // display.setCursor(xpos-1,ypos);
      // display.println(text);

      delay(scroll_delay/5);
      yield();

    }
}

uint8_t icon_index=0;
void loop() {
  scroll_text(40,50,"Welcome to PxMatrix!",96,96,250);
  display.clearDisplay();

  draw_weather_icon(icon_index);
  icon_index++;
  if (icon_index>10)
    icon_index=0;

  for (int xx=0; xx<16;xx++)
  {
    display.drawLine(xx+16,0,xx+16,5,display.color565(xx*16,0,0));
    display.drawLine(xx+16,6,xx+16,10,display.color565(0,xx*16,0));
    display.drawLine(xx+16,11,xx+16,15,display.color565(0,0,xx*16));
  }
  delay(1000);
  for (uint8_t dimm=255; dimm>0; dimm--)
  {
    display.setBrightness(dimm);
    delay(5);
  }
  for (uint8_t dimm=0; dimm<255; dimm++)
  {
    display.setBrightness(dimm);
    delay(5);
  }

}

Do I have to set something else in addition?
While driving the first one, I connected as you suggested here, and it is ok. With the second one, I connected the PO of the first to the PI of the second with a 16p IDC cable. The PO of the second I connected to the ESP12F. The connection should be ok.

The other words, not to mess up too much with this lib and displays in a chain?
With one display, the lib is great.

Exactly...it is really meant for low pin count and not much more than 64x64 pixels

Thank you.
The one you gave a link here should do the job. Although the wiring is different.


[CCXDEV-12437] Enable new DVO formatter

Description
This change enables the use of new DVO formatter ccx_ocp_core.core.formats.json.DVOWorkloadsJsonFormat.
Also for testing it uses latest master branches of ccx-ocp-core and ccx-rules-ocp.
Fixes #CCXDEV-12437
Type of change

Breaking change (fix or feature that would cause existing functionality to not work as expected)
Bump-up dependent library (no changes in the code)
Configuration update

/retest

closing as it's duplicate of https://github.com/RedHatInsights/dvo-extractor/pull/35


Question: Wait for SCSS to Load

Question
Is there any way for the page to wait for the scss to load before the page is loaded? Right now the website loads with none of the project's scss and then after a little delay, it all loads.

Hey @Ericky14 ,
Are you testing in dev npm run dev or prod npm run prod mode?

npm run dev

@Ericky14 https://github.com/webpack/webpack/issues/1427
I think this is common problem. I'll try to resolve it.
Thanks

@Ericky14 resolved!


Call hierarchy: use different icons to express semantics of call graph nodes

testing #71083:
Since all nodes of a call graph are functions, representing them with a function icon does not provide additional information:

Instead we could use different icons to express the following semantics:

an icon for the "peeked" function (root of the tree). This could be the icon you are using today.
a strong (bold) up-arrow-like icon (↖) for direct callers
a dimmed up-arrow-like icon for indirect callers

Another dimension to encode in the icon could be information about the caller being local or external.

representing them with a function icon does not provide additional information

Only in my dummy-sample it's always functions. It can also be methods, constructors, getter/setters, and (debatable) fields/variables, e.g the Eclipse JDT does the latter, IntelliJ doesn't.
Tho, I do like the arrow idea. We could show that in addition to the kind icons, similar to how the markers panel shows multiple icons. Not sure what to think about direct vs indirect callers/calls. Function fuzz calling bar  is an indirect caller of foo but also a direct caller of bar...

cc @stevencl

But in the graph/tree the same call site "fuzz" is duplicated for each context. And in one context it is an indirect caller of foo and in another context it is direct caller of bar. So different icons would be used for different contexts even if the function "fuzz" is the same.
So the icon represents the context, not the function.


Missing Link to resonsible AI dashboard

There exists a missing link within the document
"The interpretability component of the [Responsible AI dashboard](LINK TO CONCEPT DOC RESPONSIBLE AI DASHBOARD) contributes"

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

ID: c0438837-e483-8176-952b-1ce8dc9769df
Version Independent ID: 6e777360-f059-dbc7-b022-b971626ad867
Content: Model interpretability (preview) - Azure Machine Learning
Content Source: articles/machine-learning/how-to-machine-learning-interpretability.md
Service: machine-learning
Sub-service: enterprise-readiness
GitHub Login: @minthigpen
Microsoft Alias: mithigpe

@minthigpen Could you please add the link to concept example doc for responsible AI dashboard? I believe this is available from the models tab on ml.azure.com when the dashboard is generated. Thanks!!

#https://github.com/MicrosoftDocs/azure-docs-pr/pull/207197
@VEshelbyMTT The referenced PR will fix the link as soon as it is merged with the doc. Closing out the issue.


Check for existing Contour Prior to Ensuring Contour

Until https://github.com/projectcontour/contour-operator/issues/18 is fixed, the operator does not support running multiple contour instances within the same namespace. However, the operator does not implement this restriction. This can lead to child resources of a Contour, i.e. Contour ConfigMap, being overwritten by a new Contour that specifies the same namespace as the current Contour.

xref: https://github.com/projectcontour/contour-operator/pull/248


Update Date and Fee for Gaussian Process Summer Schools (GPSS) 2021

Gaussian Process Summer Schools (GPSS) 2021 registrations have started. Updated the fee too

Closing the PRs of already finished summer schools


Add option to disable plugins

This change creates a CLI option in the backend + desktop to disable plugins.
Fixes: #2162
How it works

--disable-plugins disables all plugins
--disable-plugins=plugin1,plugin2 disables plugins plugin1 and plugin2

lets sync on this soon

Current status:

--disable-plugins=plugin1,plugin2 removes plugin1 and plugin2 from the plugin list
--disable-plugins does not make any changes to the plugin list
--disable-plugins=all removes all plugins from the plugin list

Recent testing:

Tried to change logic from removing plugins in the list to disabling them within the list, but this seems to be having issues

Disconnect between frontend and backend. If we change the output type in plugins.go from []string to a list of plugin objects with field isEnabled (similar to PluginInfo from pluginsSlice), we see that changes to the backend are not reflected in the frontend and vice versa

Tried to allow for default value using NoOptDefVal but seems to not be working. Could be because the flag arguments are strings? This is unclear atm

Also tried to handle this in the Parse() function from config.go by manually setting the empty string argument to "all", but this was not working either

To be done:

Figure out how to allow for flag with no argument (./headlamp --disable-plugins) to disable all plugins
Figure out how to adjust logic from removing plugins to disabling them without creating synchronization issues with the frontend and backend


Bug reporting - ZPUI log upload app

I'm going to be working on a bugreport upload system, according to this specification.
TODO:

[x] ZPUI-side upload app

[x] Privacy policy
[x] Log storage fallback for when there's no network connection
[x] API for other apps to use
[x] Better log storage settings (logs allowed to be larger, stored longer, and in a separate folder, all configurable)

[x] zerophone.org-side log upload server - FTPS, with anonymous users (configs&code available here)

[x] Should rotate its logs
[x] Should hide uploaded data from other users that log in

[x] zerophone.org-side inotify-driven script

[x] Detects new uploads
[x] Unpacks and verifies them
Filters the files in the archive (wait, what was it that I meant by that?)
[x] Re-packs them
[x] Sends them as a bugreport to an email address
[x] should also warn against suspicious activity somehow - using email, IRC or the like
(Code available here)

Useful links:

Ubuntu Apport - Python application hook on exception

Done!


DavidW: Watch latestgbapps.com

DavidW requests the watch of the watch_keyword latestgbapps\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

latestgbapps\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


Change/Release notes for 3.x

I see there's a 3.0.1 release available via npm, and it's red-flagged as a major release with potentially breaking changes, but I can't find any release notes to know what's in this release, what may break (if anything), and where the test points are.
Am I looking in the wrong place, or are there release notes still coming?
Thanks!

What got flagged? This was a very small change, just a null check fix essentially.

Because it's a major version update (v2.x to v3.x) it gets marked by VSCode as ' "" : Major Update backward-incompatible updates', which doesn't always mean that, but I always check the release notes for breaking changes and that's when I realized there weren't any.

Ah, sorry, I thought you meant 3.0.0 -> 3.0.1
Here's the commit: https://github.com/phenomnomnominal/angular-2-local-storage/commit/d9bf9310868fc11c23b0a154729e439bc9fd3a01
I haven't really put much love into this repo as we haven't been using it for a long time. If you'd like to help maintain it, I'm more than happy to get help.

Great - thanks! I'd be happy to help, but I'm not sure I could add much value to the project.


Implement fixed python version in .toml

Description

Address this issue to implement a fixed version inisde the .toml file for python update.
Checklist

[ ] After merging this I have tested this by manually triggering the action in one of the internal projects

Will test rerunning the action


Clean up partial datasets on load failure

If there is an exception or keyboard interrupt while a dataset is being downloaded / extracted, the partially loaded files cause the dataset to become unusable. Future attempts to load_data will fail with a mysterious EOFError until the partial files are manually removed.
This pull request fixes the issue by deleting the partial files if there is any exception or interrupt during the download / extraction.

This is now fixed --thank you for suggesting this.


dataset

May I have your two datasets uesd in  your project?

您好，来信已收到

Hello, may I obtain the dataset? Thank you.


403 Client Error: Forbidden for url: http://hassio/snapshots

Any idea why I'm getting this error? I have keep_last set to 3.
[Info] Received message with command upload
[Info] Uploading all .tar files in /backup (skipping those already in Dropbox)
 > Skipping already existing file "/6dfda24c.tar"
[Info] keep_last option is set, cleaning up files...
Traceback (most recent call last):
  File "/keep_last.py", line 47, in <module>
    main(args.number)
  File "/keep_last.py", line 15, in main
    snapshot_info.raise_for_status()
  File "/usr/lib/python3.6/site-packages/requests/models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: http://hassio/snapshots

I am seeing this since 0.79.0 as well
{"command": "upload"}
[Info] Received message with command upload
[Info] Uploading all .tar files in /backup (skipping those already in Dropbox)
 > Skipping already existing file "/home-assistant-backups/26065462.tar"
 > Uploading "/backup/725e826b.tar" to "/home-assistant-backups/725e826b.tar"... DONE
 > Skipping already existing file "/home-assistant-backups/773aab24.tar"
 > Skipping already existing file "/home-assistant-backups/91c1f4a0.tar"
 > Skipping already existing file "/home-assistant-backups/a41d76e7.tar"
 > Skipping already existing file "/home-assistant-backups/c7d07f53.tar"
[Info] keep_last option is set, cleaning up files...
Traceback (most recent call last):
  File "/keep_last.py", line 47, in <module>
    main(args.number)
  File "/keep_last.py", line 15, in main
    snapshot_info.raise_for_status()
  File "/usr/lib/python3.6/site-packages/requests/models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: http://hassio/snapshots

Looks like a permissions/authentication problem, I'm guessing stemming from all the recent changes to auth in homeassistant. Taking a look at the developer docs, it looks like maybe this is new:

Hass.io API
To enables calls to the Hass.io API, add hassio_api: true to config.json and read the environment variable HASSIO_TOKEN. Now you can use the API over the URL: http://hassio/. Use the HASSIO_TOKEN with header X-HASSIO-KEY. It could be that you need also change the Hass.io API role like hassio_role: default.

Add-ons can call some API commands without need set hassio_api: true:

/homeassistant/api
/homeassistant/websocket
/homeassistant/stream
/addons/self/...
/services*

Can you try adding hassio_api: true to your config.json and see if that works?

I don't think config.json is in hassio.

Yeah it's only since 0.79.x that I've been seeing it.

What version of hassio are you using?

I’m running 0.79.3

same here. 0.79.3

Not home assistant, hassio

Could this be because of the new Hassio roles security system? It looks like add-one need to have the “manager” role to call snapshot endpoints in the API. I don’t see any docs on this system so I’m just interpreting from the source code.
https://github.com/home-assistant/hassio/blob/dev/hassio/api/security.py

I have no idea.. might need to take it up with awarecan or balloob on the forum/discord

I wondered if you had the same issue, and found that you did. I then found the solution, it is just a simple config.json addition. https://github.com/d0ugal/hassio-dropbox-upload/commit/763e1af11a25343ab3b05dc1dcd565738be0a116

I just edited the config.json (I'm running Hassio in docker on debian so I can access the files) I edited it to show:
{
  "name": "Dropbox Sync",
  "version": "1.2.0",
  "slug": "dropbox_sync",
  "description": "Upload your Hass.io backups to Dropbox",
  "url": "https://github.com/danielwelch/hassio-dropbox-sync",
  "startup": "before",
  "stdin": true,
  "hassio_api": true,
  "hassio_role": "manager",
  "boot": "auto",
  "map": ["backup", "share"],
  "options": {
    "oauth_access_token": "<YOUR_ACCESS_TOKEN>",
    "output": ""
  },
  "schema": {
    "oauth_access_token": "str",
    "output": "str",
    "keep_last": "int(0,)?",
    "filetypes": "str?"
  },
  "image": "dwelch2101/dropbox-sync-{arch}"
}

I'll report back if it works...... (I added the manager role as per @d0ugal

@DavidFW1960 I added the same line and released the 1.3.0 update two days ago. If anyone can confirm that it's working, that'd be great and I'll close this.

Can't find 1.3.0 -- still says 1.2.0 as the latest.

Sorry, forgot to update the repository version. Just pushed that update and updated the schema over there, so hopefully it should show up.
I've moved to a single-repository-per-addon method for newer add-ons so forgot about this step.

Thanks Daniel! Yeah my edit didn't work.... just seeing if it's fixed with 1.3 now. Thanks.


Dockerfile and ActiveCollab cloud support

Added Dockerfile
Added option to use cloud based or self hosted ActiveCollab

See issue https://github.com/JPustkuchen/active-collab-to-jira-migrator/issues/2 (result with empty issue list)


Add opaque context pointer to SwiftRemoteMirror C API Reader API

Memory readers on the C-side of the API may actually have an object-
oriented design, so they may want to pass an instance to revive
when callbacks make it to the other side of the API boundary.

@swift-ci Please smoke test

Hm, not sure what that PR bot is building. Let's try again.

@swift-ci Please smoke test

All right, building the OS X tests myself.

OS X tests pass locally.

Linux looks good. Merging.


Fix endless loop in last commmitted index thread

Which issues of this PR fixes:

This PR try to fix #
Change log:

Fix endless loop in last commmitted index thread
Remove lock when pushing to last committed index manager queue

Benchmark show performance has improved by 2.4%
================= Result (Time measured in microsecond.) =================
thread_size,tps,avgRT(microsecond),TP90(microsecond),TP99(microsecond),TP999(microsecond),failRate
2000,84133,23815.0,30800.0,41600.0,131400.0,0.0
total requests: 9423000
fail count: 0
total time cost:<PHONE_NUMBER>50 microsecond
wallTime: 243 second

test_stale_node_recovery  is flaky and will fixed in another PR.


sdk$runInlineQuery() results in an error

Hiya, spoke with Peggy B. in Looker support earlier today and she asked me to open this issue related to my inability to get the runInlineQuery method of the SDK to work out of the box.
Here are what my attempts to trace the problem while working with Peggy showed...
sdk$runInlineQuery() calculates a JSON body which it passes in to  self$userSession$queryApi$run_inline_query which attempts to use the toJSONString method on the body... which doesn't exist.  This results in Error in body$toJSONString : $ operator is invalid for atomic vectors.
Visual inspection of the JSON body produced by sdk$runInlineQuery() also indicates a potential issue with the zero length vectors for sorts and query_timezone being interpreted as [null] rather than [] or being pulled out of the body.  This might be an issue of version mismatch with jsonlite, in which case specifying the version required to meet the needs of the package would help.
BTW... thanks for this new Swaggered up version of {lookr}.  Relative to the old {rJava} version, for an R programmer, this is so  much easier to use and understand.

Heya @russellpierce! Thanks for the bug report, I know what is causing the problem and am working on deploying a fix for it that is backwards compatible. Hoping to get it out today but it might happen over the long weekend.
I'll take a look at the jsonlite issue here too, but my solution is probably going to avoid using jsonlite in favor of the swagger generated code contained in the Query class. I'll implement the same pattern for runLook if it works well.

Thanks Max! I just ran into this issue as well; I was trying to switch a "runLook" to a "runInlineQuery" to get around the limit issue just now, and ran into this one instead. Great to see you already know about it.

This was fixed here, it's not the most graceful solution and I still haven't implemented the direct response -> data.frame pipeline that I want in a more complete version but since that'll be a breaking change I left it for the future

Thanks for the quick work on this @maxcorbin !


✨ feature: create, remove, update shops and add products to the shop

[x] #32
[x] #33
[x] #34
[x] #35

closed in b60e924f679be51f93626aac023229a8343283bb


Home archive updates

Parse the html and grab any images, download them, and rewrite the html link to it.

Hey Amie, split out the first bit into separate ticket and you can probably do the second bit.

Images embedded in the webpage do not appear  -- MEDIUM priority

This is done and will be in m4.

@steveswinsburg - Image was included in download folder, however, it does not display in the HTML and will not open directly.

@amiedavis could you please check if pngs are coming through ok?

@amiedavis looks like this site: http://ec2-13-58-10-76.us-east-2.compute.amazonaws.com:8080/portal/site/540a0a91-a20d-454b-82e3-e340abe1349d

I think the issue is this line:
Jsoup.connect(imageSource).ignoreContentType(true).execute().bodyAsBytes();
I'll see if I can reproduce locally and fix this.


Expose payload transparency for user code

"payload transparency" is a feature of WAMP AP. Please see here. In particular the use cases described there.
This feature is implemented in AutobahnPython and Crossbar.io, but is currently NOT exposed at the user API level in any direct way.
It is only used internally to implement WAMP-cryptobox. And the latter feature is only experimental/alpha. So we can change things.
As from recent discussion on IRC (#autobahn), there is strong interest in letting user code hook into the "payload transparency" feature.
FWIW, and for the record, I was long fighting for NOT exposing this to user code. But I changed my mind;) Well, the accumulated feedback and arguments from multiple users finally convinced me that the required changes, introduction of new API and deviation from a WAMP principle (automatic payload conversion / serializer independence) are worth it. And that users should be free choose their tradeoff on their requirements - not us. We can't make the tradeoffs involved magically disappear, but I now think we can expose it in a way that still fits into WAMP and keeps the coherence intact.

In AutobahnPython at least, the exposed payload transparency should then also be used in the implementation of WAMP-cryptobox. And also in as far as code is need here to complete the MQTT bridge in Crossbar.io.

Yet another related thing is: we really should get automatic base64 encoding in binary payloads on JSON transports added in the course: https://github.com/crossbario/autobahn-python/issues/574
Note that is related, but only needed when one of the WAMP clients using payload transparency (with binaries) is using JSON. When both clients speak the same binary capable serializer, the (binary) app payload item in the respective WAMP messages won't be touched.
The same will then apply for Crossbar.io with a MQTT client publishing a binary payload: WAMP clients using a binary capable serializer will get the MQTT payload untouched and unprocessed. For WAMP clients that speak JSON, the MQTT payload will be transofrmed according to #574
However, AutobahnJS historically only supported JSON, but now it support MessagePack and CBOR too, so this is not overly pressing.
But the WAMP spec has it, so we should add it. See "15. Binary conversion of JSON Strings" https://github.com/wamp-proto/wamp-proto/blob/master/rfc/draft-oberstet-hybi-crossbar-wamp.txt#L7379

Feature is under dev on branch https://github.com/crossbario/autobahn-python/pull/809

This has landed on 0.18.2


new legendLocation argument (and more locations)

…sition groupbox

Thanks for your hard work @Padanian !


Convert ptr to ref before unsize cast

I'm going to merge this because not crashing is an improvement, but added https://github.com/flux-rs/flux/issues/717 to track the remaining issue


@mzikherman => bump reaction for artist page QA

some artist page tweaks

@mzikherman the name of this branch 😆!!! Shoutout to Percy!!


Overlay only build with OpenVR native support enabled?

It seems that if you enable unity's native virtual reality support in the player settings you can't build an overlay only application. Is there any way around this?

Unity initializes OpenVR as an scene application when VR support is enabled. In order to use Unity's native virtual reality support Unity itself would have to be updated to fully support overlay applications (initialize as overlay application and provide an overlay API).
But you don't actually need Unity's native VR support to build an overlay. None of the Unity XR APIs are useful for building an overlay application. The SteamVR Unity Plugin already has all the APIs you need built-in.
The problem there of course is you need to run the SteamVR Unity plugin without enabling Unity's VR support. Which the plugin doesn't currently allow and is the goal of #108 and #336.


simple question  How to make like this image ?

this image in your library ..... and have a subtitle  how to make it please?

this is a part of video. not subtitle


Warn if file exists on export

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: [e.g. Windows 10]
Python version [e.g., 3.11]
matplotlib version [e.g., 3.9.1]
PySide6 version [e.g., 6.7.2]
FigureForge version [e.g. 0.1.0]
These versions can be found in FigureForge by going to Help > Report Bug.

Additional context
Add any other context about the problem here.

This dialog is raised if the user selects the file path via the browse button, but does not re-raise when the Export button is pressed. Therefore, the user can overwrite an existing file without necessarily knowing if they don't browse for the file (e.g., the previous export path is already filled in the text edit). This is the intended behavior.


WIP: New Splash Version with Updated Snap Scroll

@austintgriffith // it's not ready yet. but it's a WIP so far. It might be worth refactoring some of render because I'm having trouble tracking down some issues. I will probably start tackling that in this PR. Let me know if this is at least closer to what you were looking for.

Closing this because I didn't research enough that the min branch used this tool.


[v2.0] - Reimplement Trackmania Cog

Reimplement the following functions:

Player Details
Update Campaign Leaderboards
Stalkplayer
TOTD
COTD Details

Finished Player Details function

Finished TOTD Function

Finished Update Campaign Leaderboards

finished stalkplayer and cotddetails


Changelog for v2?

I'm looking to update to v2, but I'm not sure what all has changed in it from v1. Particularly of concern, naturally, would be any backwards incompatible changes. Not sure if these versions follow semantic versioning, but a major version increase typically implies breaking changes. Could someone provide a list of at least the incompatible changes in v2? I can try do a diff through git, but I think it'd be ideal for someone who is more familiar with the changes that have been made in case I overlook something. Thank you!

Hello @mstyles!
For the list of changes please see [https://github.com/marcelog/PAMI/releases/tag/v2.0.0]. The API is still pretty much the same, PEAR was deprecated and PSR-4 and PSR-3 are now used in the code. The rest is still the same.
Best!

Now I feel dumb, thanks so much! :)


Support for accepting volume scope when creating service.

Rancher Version:v1.2.0-pre4-rc4
Currently we do not have the ability in UI to support for accepting volume scope when creating services  which is now supported - https://github.com/rancher/rancher/issues/5714

In 2.0


HTML heading sizes should reflect organization of page elements on Home

HTML heading sizes are important for users utilizing screen readers to navigate the Data Portal.
We should make sure that H1, H2, H3 levels correspond to the organization of the information on the page.
Specific issues for Home page:

Items in "blue bar" should not be H1
Text describing the HCA should not be H1
"Start Exploring", "What is the HCA" sections should be H2

Obsolete.


IV-4957 Only install subscription-manager if it is not already instal…

…led because some RHEL images do not have any repos configured before registration

LGTM


post install script errors on npm install or gulp clean

I installed the preset eslint-preset-spfx-react. If I delete node_modules and run npm install, or if I run gulp clean, the postinstall.js throws an error when it doesn't find tslint.json, and the gulpfile.js gets extended with the delta again causing  duplicate variable declaration errors.

fixed in v1.2


Add api to set custom proxy ip

So that I can use different ip address.

@gt-sun Nice suggestion, welcome to submit a PR contribution!


Various fixes

Fixes #175
Removed unneeded print statements
Fixed director shot add modal height so all buttons are displayed
Camera type add modal had wrong title label, fixed
Delete in text field no longer removes shot
Director shots are now deleted on new project (this did not happen before)

One small comments

One tiny comment also. Fix/answer those, and we'll merge. 👍


fix fix get Kafka offset timeout may too long

Proposed changes
for (int32_t partition_id : partition_ids) {
        int64_t low = 0;
        int64_t high = 0;
        RdKafka::ErrorCode err =
                _k_consumer->query_watermark_offsets(_topic, partition_id, &low, &high, 5);
        if (err != RdKafka::ERR_NO_ERROR) {
            std::stringstream ss;
            ss << "failed to get latest offset for partition: " << partition_id
               << ", err: " << RdKafka::err2str(err);
            LOG(WARNING) << ss.str();
            return Status::InternalError(ss.str());
        }

fe getInfo timeout is 5s, but in be, the timeout is 5 * partition num.


SliderPath's positionAt() ignores slider repeats

SliderPath's positionAt(progress) seems to give out the position ignoring the slider's repeats.
I'm not sure if this is a bug, or it needs to be handled by me.
On a slider with 1 repeat, progress 0.5 should give the end position of the slider - but it returns the middle position.

wrong repo!

positionAt(progress) seems to give out the position ignoring the slider's repeats.
Yeah, it works as intended. positionAt() returns relative position of a path (for a single span). You need to use curvePositionAt() to get total progress of a slidable object.

Thanks!


firebase_messaging onLaunch not triggered on iOS and Android

Steps to Reproduce
I am using the firebase_messaging plugin. The onResume and onMessage callbacks are working fine. However the onLaunch callback is never triggered. I was trying to look a bit into the source code and added some NSLog messages here:
https://github.com/flutter/plugins/blob/39ba555c4ccf640b2b31943d7befc9b5cba5781d/packages/firebase_messaging/ios/Classes/FirebaseMessagingPlugin.m#L66
I could see my log output so I would assume that I correctly called the configure method from dart which is then triggering the check for a launchNotification and then calls the onLaunch channel. However, that does not trigger my registered method...
Made this default setup on the dart side. I have a print method in the onLaunch that never prints.
So the setup looks something like this. The first configuring notifications print is always printing, just have that in there as a check to see if printing in general works.
  PushNotification() : _firebaseMessaging = FirebaseMessaging() {
    print('configuring notifications');
    _firebaseMessaging.configure(onMessage: (Map<String, dynamic> message) {
      print('onMessage: $message');
    }, onLaunch: (Map<String, dynamic> message) {
      print('onLaunch: $message');
    }, onResume: (Map<String, dynamic> message) {
      print('onResume: $message');
    });

I am using the latest release version 2.0.2 of firebase_messaging
Am I doing something wrong or is this a bug? At first I thought maybe there is some race condition but from looking at the code, I think that can be ruled out, right? Because after calling configure the objective c code is then pushing the initial notification in the onLaunch channel.

Debugged a bit more and I found out, that the onLaunch method after the configuration is never received on the dart side.. I don't know why.
However the onToken and onIosSettingsRegistered channel methods are correctly triggered and received.
I then experimented and added the onLaunch call at the same place where the onToken is send, and voila, it was working and correctly launched the onLaunch callback in dart..
So the problem is: Why does the channel call not work in the place where it currently is in the code?
Here is my new code that works:
- (void)application:(UIApplication *)application
    didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
#ifdef DEBUG
  [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeSandbox];
#else
  [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeProd];
#endif

  [_channel invokeMethod:@"onLaunch" arguments:_launchNotification];
  [_channel invokeMethod:@"onToken" arguments:[[FIRInstanceID instanceID] token]];
}

Where the onLaunch originally is and does not trigger anything in dart:
- (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result {
  NSString *method = call.method;
  if ([@"requestNotificationPermissions" isEqualToString:method]) {
    UIUserNotificationType notificationTypes = 0;
    NSDictionary *arguments = call.arguments;
    if ([arguments[@"sound"] boolValue]) {
      notificationTypes |= UIUserNotificationTypeSound;
    }
    if ([arguments[@"alert"] boolValue]) {
      notificationTypes |= UIUserNotificationTypeAlert;
    }
    if ([arguments[@"badge"] boolValue]) {
      notificationTypes |= UIUserNotificationTypeBadge;
    }
    UIUserNotificationSettings *settings =
        [UIUserNotificationSettings settingsForTypes:notificationTypes categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

    result(nil);
  } else if ([@"configure" isEqualToString:method]) {
      NSLog(@"called configure in OBJC");
    [[UIApplication sharedApplication] registerForRemoteNotifications];
    if (_launchNotification != nil) {
        NSLog(@"got notification %@", _launchNotification);
        NSLog(@"the channel %@", _channel);
      [_channel invokeMethod:@"onLaunch" arguments:_launchNotification];
    }
    result(nil);

Thanks for digging!
Looks like a dup of #21443.
Can we merge?

I don't know if it is the same issue. The other events trigger just fine for me under iOS. And I also don't have this flutter local notifications package installed.. It really just is the onLaunch that does not work for me.

Ok, I leave it ope then.
Please add the output of flutter doctor -v.

╰─ flutter doctor -v
[✓] Flutter (Channel beta, v0.9.4, on Mac OS X 10.14 18A391, locale en-DE)
    • Flutter version 0.9.4 at /Users/benbieker/Development/flutter
    • Framework revision f37c235c32 (4 weeks ago), 2018-09-25 17:45:40 -0400
    • Engine revision 74625aed32
    • Dart version 2.1.0-dev.5.0.flutter-a2eb050044

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/benbieker/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • ANDROID_HOME = /Users/benbieker/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 2.0.0
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 27.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] VS Code (version 1.26.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.17.1

[✓] Connected devices (1 available)
    • iPhone 8 • 7A400BCD-BB17-4104-A8A6-506481AEE34D • ios • iOS 12.0 (simulator)

• No issues found!

Today I was also trying out everything for Android. And I am sorry to have to inform you that I got the same issues there. Everything works except the initial onLaunch call..
It must be some sort of race condition. When I added a Timer in the FirebaseMessagingPlugin to delay the call to onLaunch it went through. So I guess this is some channel registration related bug on the dart side? Because it happens on iOS and Android?
This is what I added into FirebaseMessagingPlugin.java
  @Override
  public void onMethodCall(MethodCall call, Result result) {
    if ("configure".equals(call.method)) {
      FlutterFirebaseInstanceIDService.broadcastToken(registrar.context());
      if (registrar.activity() != null) {
        new Timer().schedule(new TimerTask() {
          @Override
          public void run() {
            sendMessageFromIntent("onLaunch", registrar.activity().getIntent());
          }
        }, 5000);
      }
      result.success(null);

Ok, I think I found the problem now. I was instantiating and calling the configure method of the FirebaseMessaging instance outside of a widget.
I instantiate all my services outside of widgets because I am using redux for state management.
So instantiating worked, and the configure call could be send over the channel to the native code. But it looks like channel messages can only be received once a widget was rendered? So I have to call configure inside initState and there is no other way?
I guess if it is intended to work like this, this should be mentioned in the readme of the firebase_messaging plugin. In there it just says I have to call it from somewhere of my dart code like it doesn't matter when it is called.

Right, that cause me quite some troubles as well a while ago with Firebase Realtime Database.
It worked only when initialized inside runApp(SomeWidget(...))

Did you guys get this to work? I am having the same problem. onLaunch does not seem to work. I am running configure() in initState() but onLaunch is never fired. Tried both ios and android. And I just tried the example code from the plugin repo with the same outcome.

Ok, I think I found the problem now. I was instantiating and calling the configure method of the FirebaseMessaging instance outside of a widget.
I instantiate all my services outside of widgets because I am using redux for state management.
So instantiating worked, and the configure call could be send over the channel to the native code. But it looks like channel messages can only be received once a widget was rendered? So I have to call configure inside initState and there is no other way?
I guess if it is intended to work like this, this should be mentioned in the readme of the firebase_messaging plugin. In there it just says I have to call it from somewhere of my dart code like it doesn't matter when it is called.

can you please attach some sample code

I suppose it did work all the time. I just did a silly mistake!

If both onLaunch and onResume are not working, then make sure you are sending "click_action":"FLUTTER_NOTIFICATION_CLICK" in the notification payload.  See https://github.com/flutter/flutter/issues/32393#issuecomment-497726280 .

@wwwdata
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/604. Any further collaboration will be done there.

Ok, I think I found the problem now. I was instantiating and calling the configure method of the FirebaseMessaging instance outside of a widget.
I instantiate all my services outside of widgets because I am using redux for state management.
So instantiating worked, and the configure call could be send over the channel to the native code. But it looks like channel messages can only be received once a widget was rendered? So I have to call configure inside initState and there is no other way?
I guess if it is intended to work like this, this should be mentioned in the readme of the firebase_messaging plugin. In there it just says I have to call it from somewhere of my dart code like it doesn't matter when it is called.

Fixed it for me. This definitely should be stated somewhere in the docs.


Rename datasets-server to dataset-viewer in infra internals?

Follow-up to #2650.
Is it necessary? Not urgent in any Case.
Some elements to review:

[ ] https://github.com/huggingface/infra
[ ] https://github.com/huggingface/infra-deployments
[ ] docker image tags (https://hub.docker.com/r/huggingface/datasets-server-services-search -> https://hub.docker.com/r/huggingface/dataset-viewer-services-search)
[ ] Helm chart name
[ ] AWS parameters
[ ] kubernetes namespaces
[ ] Hub app names and tokens
[ ] https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/datasets-server
[ ] buckets: hf-datasets-server-statics-test, hf-datasets-server-statics
[ ] MongoDB databases
[ ] BetterUptime
[ ] shared directories (PARQUET_METADATA_CACHE_APPNAME)

Closing for now, as #2666.


Llama model support

Instead of using OpenAI, it would be cool if we could use Llama 2 instead.
If I made the PR and it works well, would you be open to merging it into this repo?

that'd be great. I think the right way to do it would be via a custom module. Might be worth merging the pr directly to weaviate though, not only verba.
https://weaviate.io/developers/weaviate/modules/other-modules/custom-modules

Hey, thanks a lot for the issue! This is a great idea, we're planning to support Llama in the next version and aim to make it easy for users to plug-in any custom model to Verba ⭐

@thomashacker
When is this "next version" planned for release? Would love to see this integrated with Llama 2 and other open source LLMs

It should be coming in the next weeks! It will include Llama 2 support 🚀

llama server can actually provide an interface similar to openai (API like OAI). I think this may provide a very simple compatibility method.

This issue should be implemented with the new 0.3.0 version 🚀  Thanks a lot!