snr and c50 detailed arrays are in an unexpected length

Hi, thanks for your work. I ran brouhaha on a file of length 3:37:57.326, which is 13077.326 seconds. I examined the c50 and detailed_snr_labels .npy files, and their shape was (756644,). I expected that 756644 * 16 / 1000 would equal the length of the clip (16ms per frame, as per the paper), but I saw it is not the case.
The ratio between the length of the audio file and the length of the arrays came out to 17.28ms per frame. I manually verified this by looking graphing the SNR and seeing that it lines up with speech starting and ending, only when I used 17.28/1000 as the conversion factor from frames to seconds. Where does the number come from? It doesn't come out to a whole number of samples in 16KHz (it's around 276.5 samples per frame, though maybe padding can explain the .5?)
An interesting side-note is that the .rttm file has correct timings, so it's not that everything is off.

Same issue. But the length/frame was 16.86ms and 269.82 samples/frame in my case. (The input audio is 16KHz, and the length is 30.304s, but len(c50)*16/1000 is 28.752s )

Another question is, what kind of speaker can be identified by the model? My data contains multiple speakers, basically mothers and children, and the model only recognized the mother's vocals but not the children's.

Negative values are given to SNR, but the range should be between 0 to 30dB written in the paper?

Hi to both of you,

The frame duration is precisely 16.875 ms (270 samples per frame) and is determined by the stride parameter in the SincNet architecture. I realized the paper was a bit misleading, and will fix this with the exact frame duration!
@shenberg I'm not sure why you end up with a frame duration of 17.3ms. I ran Brouhaha on a 16-hour-long audio file and got the right frame duration. Are you sure your audio file is sampled at 16kHz? Could you send it to me so that I can try to reproduce this behavior?

I wouldn't use this model to detect child speech as it has only been trained on adult speakers. For child speech detection (but no SNR/C50 estimation), you could maybe try this github repo. Maybe using the information returned by both models would be enough for your use case (SNR/C50 from Brouhaha and CHI from vtc).

Audio segments are indeed augmented with additive background noise using a [0,30] dB range to create the training set. However, when we recompute the SNR at the frame level, it can take values outside of this range (including negative values).

From the paper:

These are the parameters that determine the output range. For the SNR, it is bounded between -15 and 80 dB.
Best,
Marvin

Awesome! Please let me know of your progress! I feel like the reason behind this strange behavior is obvious, but I can't see it yet!

Closing for now! Feel free to re-open if you're still struggling to figure out what the model returns :)


handleUniversalLink always return false iOS 11

Hi everyone:
I have an issue, I try to get the original URL https://bebler.com/email_code/12345678, testing the universal link on Firebase console is https://axd87.app.goo.gl/CF5F, but when I open the dynamic link on my iOS app the method "handleUniversalLink" always return me false and the userActivity.webpageURL logs me: https://axd87.app.goo.gl/CF5F?huid=UO12cAtyFjvBtBW4ehRI9A, my code is as suggest the documentation and the GitHub example:
 @available(iOS 8.0, *)
        func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
            debugPrint("---> userActivity restorationHandler")
            guard let dynamicLinks = DynamicLinks.dynamicLinks() else {
                return false
            }
            let handled = dynamicLinks.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
                // [START_EXCLUDE]
//                let message = self.generateDynamicLinkMessage(dynamiclink!)
                let message = "APP URL:\(String(describing: dynamiclink?.url?.absoluteString))"
                debugPrint("---> message:\(message)")
                debugPrint("host:\(String(describing: dynamiclink?.url?.host))")
                debugPrint("path:\(String(describing: dynamiclink?.url?.path))")
//                self.showDeepLinkAlertView(withMessage: message)
                // [END_EXCLUDE]
            }

            // [START_EXCLUDE silent]
            if !handled {
                // Show the deep link URL from userActivity.
                let message = "continueUserActivity webPageURL:\n\(userActivity.webpageURL?.absoluteString ?? "")"
                debugPrint("---> message:\(message)")
//                showDeepLinkAlertView(withMessage: message)
            }
            // [END_EXCLUDE]
            return handled
        }

how can I force to get the original URL?, thanks!

Also having this issue, my app captures the URL fine (https://<my_app_code>.app.goo.gl/?link=https://www.test.com/?premiumId=123456&ibi=<my_bundle_id>) through Universal Link and Custom Scheme, but the DynamicLinks().handleUniversalLink() always returns false and never calls the completion closure.

@OleksiyA FYI

@DennisMostajo You are likely tapping on FDL from Google Hangouts or Gmail iOS Apps. The issue you are seeing going to be fixed in those Apps soon.
Also we fixed issue in FDL side. In M20.1 release (Firebase Dynamic Links version 2.2.0) such link will work fine.
Core reason here that FDL do not expect any parameters in FDL short link, but here parameter huid is being added.
@edulpn You issue seems unrelated to original poster's issue. Your link looks broken as there two question mark characters in the link. As a debug try to navigate to https://<my_app_code>.app.goo.gl/?link=https://www.test.com/?premiumId=123456&ibi=<my_bundle_id>&d=1 Here verify that what is being displayed is what you actually expect.
If that does not help, please open separate Github issue or Firebase support ticket. Also take at stackoverflow questions for Firebase Dynamic Links https://stackoverflow.com/questions/tagged/firebase-dynamic-links .

@OleksiyA What is the ETA of M20.1 release (Firebase Dynamic Links version 2.2.0) ? We have a feature that needs to go out asap.
Thanks!

@bhavinmdesai Firebase Dynamic Links version 2.2.0 released on November 14th and is currently available with pod update.


MWPW-137993 Setup global deferred promise

For external code (martech) they want to know when the deferred event fires, but sometimes it fires before their code loads.
This adds a global promise at window.milo.deferredPromise that will resolve at the same time as the milo deferred event fires.
Resolves: MWPW-137993
Test URLs:

Before: https://main--milo--adobecom.hlx.page/?martech=off
After: https://137993-deferred-promise--milo--adobecom.hlx.page/?martech=off

Verified on bacom and milo.


Add yaml config file to image tool command usage

@opencontainers/image-spec-maintainers
Now we are appending more and more flags to image tool commend. For conveniently using, it had better to introduce a yaml config file, like that:
cmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)")

In which user can fulfill his all flags.
If you allow my idea, I'd like to take on it. Thanks a lot!
/cc @philips @stevvooe @s-urbaniak @runcom @wking

I don't like this, I expect the image tool to be just (if possible) a simple tool w/o any state or config saved on disk.

On Wed, Sep 07, 2016 at 01:54:58AM -0700, Antonio Murdaca wrote:

I expect the image tool to be just (if possible) a simple tool w/o
any state or config saved on disk.

I agree.  What sort of config state were you tired of typing out? ;)

It is OK. I just feel the command line become long to readable, and seen some config file convenient usage via cobra package.

On Wed, Sep 07, 2016 at 02:33:58AM -0700, xiekeyang wrote:

It is OK. I just feel the command line become long to readable…

Is that because create-runtime-bundle is really long?  Or can you paste
an example of a typical long line that you'd like to abbreviate?

would it suffice if you could use environment variables to specify command line options?

would it suffice if you could use environment variables to specify command line options?

is there any tool out there which duplicates command line opts with env variables? I'm not sure... then the "long line" will be the one specifying the env vars (e.g. REFS=a,b,c,d,e,f,... imagine it longer...)

What do you mean by "duplicates"? if you're asking about a library that'll map env vars to flags, something like e.g. globalconf, or the simpler package we use for CoreOS projects:
https://github.com/rakyll/globalconf
https://github.com/coreos/pkg/blob/master/flagutil/env.go#L10

What do you mean by "duplicates"?

I mean having an env var for a command line option.
I don't see any gain in having env vars because, as explained early, one can have a really long list of references (for instance) to use with $REFS and thus having still a long line to type paste.

Now we are appending more and more flags to image tool commend. For conveniently using, it had better to introduce a yaml config file, like that:

The op here probably refers to the fact the --ref is a string slice now and one can specify it multiple times (no new flags have been added recently afaict). Having this as env vars seems the same to me (can you make me an example on how it would be different with env vars? even splitting REFS=$refs_list; oci-image-tool validate imagepath has a long line, the first one)

On Wed, Sep 07, 2016 at 04:53:10AM -0700, Antonio Murdaca wrote:

I don't see any gain in having env vars because, as explained early,
one can have a really long list of references (for instance) to use
with $REFS and thus having still a long line to type paste.

I think the best solution to this is to remove the the v1.0 default
ref and have the default be “validate all the refs in the bundle”.
If you only want to validate most of the refs, you can always build
REFS incrementally (if you're using Bash or other shell that supports
arrays):
$ REFS=()
$ REFS+=('--refs' 'hi')
$ REFS+=('--refs' 'there')
$ oci-image-tool validate "${REFS[@]}" image.tar

I think the best solution to this is to remove the the v1.0 default
ref and have the default be “validate all the refs in the bundle”.

I'm all for this.

Note that there is also https://github.com/spf13/viper, which integrates well with cobra.
Solutions like https://github.com/coreos/pkg/blob/master/flagutil/env.go#L10 are fine, as well, but they do need to be able to handle repeated flags.
In general, I don't quite see the need for introducing a yaml format. What problem are we trying to solve here?

runcom commented 23 hours ago
The op here probably refers to the fact the --ref is a string slice now and one can specify it multiple times (no new flags have been added recently afaict).

I'm not sure except log output and log level set.

wking commented a day ago
would it suffice if you could use environment variables to specify command line options?

stevvooe commented 16 hours ago
Note that there is also https://github.com/spf13/viper, which integrates well with cobra.

Agree, we need way to record and fulfill the flags via env vars. I would take a comparison by coreos and viper.

wking commented 19 hours ago
I think the best solution to this is to remove the the v1.0 default
ref and have the default be “validate all the refs in the bundle”.

Agree.

Agree, we need way to record and fulfill the flags via env vars. I would take a comparison by coreos and viper.

I'm not for this - and not sure at all we need to do this unless there's a specific thing it's solving. So far, no one has provided a valid reason to have env vars in oci-image-tool and just for convenience it's not a valid one at all.

In general, I don't quite see the need for introducing a yaml format. What problem are we trying to solve here?

Please, do reply to what @stevvooe is also asking - why do we need this?

In general, I don't quite see the need for introducing a yaml format. What problem are we trying to solve here?
Please, do reply to what @stevvooe is also asking - why do we need this?

I'm not sure if you like to use a convenient way to fulfill command, so make a discussion here. I'm honesty not defending to introduce a yaml file.

On Thu, Sep 08, 2016 at 04:09:51AM -0700, xiekeyang wrote:

In general, I don't quite see the need for introducing a yaml
format. What problem are we trying to solve here?  Please, do
reply to what @stevvooe is also asking - why do we need this?

I'm not sure if you like to use a convenient way to fulfill command,
so make a discussion here. I'm honesty not defending to introduce a
yaml file.

I think this means “we can close this issue with #279”.  Or are there
other actions folks want to take based on this issue?

can be closed


Fixed jumbotron background + navbar brand

This PR contains new background jumbotron + new navbar brand in exercises detail.
@raulraja @dialelo could you review this PR please?

LGTM!


Always output GGGGGGG when encountering problems that will not occur... .

What is the issue?
https://ollama.com/library/glm4
OS
Linux
GPU
Nvidia
CPU
Intel
Ollama version
0.2.7

dupe https://github.com/ollama/ollama/issues/5668

me too

me too too

只要出现“ GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG” 接着问任何问题 都是“ GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG”

+1

+1

Make sure you're on the latest version of Ollama and you ollama pull glm4 to get the latest version. I just tested it w/ both linux and mac and it's working correctly. I'll go ahead and close this, but we can reopen if people are still seeing problems.


Not enough spacing when using >10 core processor

Hey rai,
thanks for updating the suite for HWInfo v7 :)
I've got an issue with spacing with core name, temp and voltage:

As I imagine making the widget wider would not look good so maybe is there a way to parse the values to drop decimal separator?

There was a recent change to HWiNFO in which it started reporting temps to one decimal place for Ryzen processors (Intel is still no decimals).  It is -- unfortunately -- not a simple fix.

In the meantime, you could disable core voltages or something. Alternatively, you can increase the gadget width by setting bgWidth=200 (default is 150) in GlobalSettings.inc.

Not that I didn't want that, just thought it would not scale well with wider container. I didn't found the variable you have mentioned in that file, but I did find gadgetBgWidth in StyleSheet.inc. Changing it to 165 make it look great. It also changes other gadgets' width so it matches :) Thanks!

Yeah, bgWidth does not exist in GlobalSettings, but adding it there will override what is in StyleSheet, and will be preserved across versions.

I noticed this issue as well, another workaround for now: you can change the number of decimals in HWiNFO's sensor settings.

This will be addressed in the CPU meter rewrite to fix #278. I will be removing the "core" part of each label which will free up a ton of space for the stuff in the middle.


Releasing on Maven

What version of UAA are you running?
4.24.0
How are you deploying the UAA?
Official Maven WAR from Maven Central
Issue
Can you please explain how the process of releasing on Maven works?
Usually a release on Github is not on Maven for a while
and there were other issues related to this like; https://github.com/cloudfoundry/uaa/issues/813
Any ETA for 4.28.0 to get to maven, or even 4.29.0 or 4.30.0?
Thanks!

@bernardpletikosa Thanks for your question. We're currently blocked on publishing new releases to Maven central after some process changes require us to reorganize some permission structures. I don't have an ETA on this.
Could you share with us how you're using the UAA? We don't have a lot of information about who is consuming UAA from Maven central.

@jCaseyPivotal We are currently running v4.24.0 using official Maven JAR from Maven Central.

@bernardpletikosa Could you let us know what jars are you using, and what are your use cases? Thanks!

Sorry, I was not clear enough.
We get the WAR from here:
http://central.maven.org/maven2/org/cloudfoundry/identity/cloudfoundry-identity-uaa/4.27.0/
and package it in a Docker (https://hub.docker.com/_/tomcat) container.

We also use the releases from Maven Central and repackage the war with customized pages because Branding alone doesn't provide enough customization options.

@wc22222 can you please check upload of server ja, e.g. https://repo1.maven.org/maven2/org/cloudfoundry/identity/cloudfoundry-identity-model/4.30.0/ this is not visible there, the other artifacts have been uploaded with your update , thanks

The cloudfoundry-identity-server jar was not released properly. The signature file was uploaded instead (i.e. https://repo1.maven.org/maven2/org/cloudfoundry/identity/cloudfoundry-identity-server/4.30.0/cloudfoundry-identity-server-4.30.0.jar.asc)

@strehle @mouellet The UAA team is currently fixing it in this tracker story: https://www.pivotaltracker.com/story/show/165541470

@wc22222  thanks, works now


Message overflowing

First of, such a cool package.. s/o to the author.
I am having a minor UI challenge here and would appreciate the help. The message text overflows on the snackbar as displayed in the picture below.

This is my component that I use across my app:
import 'package:flutter/material.dart';
import 'package:awesome_snackbar_content/awesome_snackbar_content.dart';

class SnackBarUtil {
  static void showAwesomeSnackBar(
      BuildContext context, String title, String message, ContentType contentType) {
    final snackBar = SnackBar(
      elevation: 0,
      behavior: SnackBarBehavior.floating,
      backgroundColor: Colors.transparent,
      padding: const EdgeInsets.only(
        top: 20,
        bottom: 20,
        left: 15,
        right: 15,
      ),
      width: MediaQuery.of(context).size.width - 30,
      content: AwesomeSnackbarContent(
        title: title,
        message: message,
        contentType: contentType,
        // These properties ensure text wraps properly
        inMaterialBanner: false,
        messageFontSize: 14,
        titleFontSize: 16,
      ),
    );

    ScaffoldMessenger.of(context)
      ..hideCurrentSnackBar()
      ..showSnackBar(snackBar);
  }
}

I would appreciate the assistance.
Thank you.

Hello,
Since version 0.1.4 you can pass a messageFontStyle (ndlr: TextStyle)
So you can add to your AwesomeSnackbarContent ->
final snackBar = AwesomeSnackbarContent(
messageFontStyle: TextStyle(
  overflow: TextOverflow.visible, // This is the line added
  fontSize: size.height * 0.016, // lib default copied code
  color: Colors.white, // lib default copied code
),
...

And you might have in your theme some kind of overflow for all texts in app.
You can also force a local theme to override your overflow to visible for this widget only. And avoid using the messageFontStyle


fixing secrets schema id

Signed-off-by: Tihomir Surdilovic<EMAIL_ADDRESS>Many thanks for submitting your Pull Request :heart:!
Please specify parts this PR updates:

[ ] Specification
[x ] Schema
[ ] Examples
[ ] Extensions
[ ] Roadmap
[ ] Use Cases
[ ] Community
[ ] TCK
[ ] Other

What this PR does / why we need it:
we merged the secrets schema with an incorrect id. this fixes it
Special notes for reviewers:
Additional information (if needed):

we should get this in now as it fixes a bug.


Beeps on success as well as error

According to documentation, it's supposed to do a console beep when there are errors, but for me it happens on every run. Using 0.4.3 and MacOSX 10.9.5. Any ideas?

Hmm, thats odd.
It's working fine for me, can you show me the config you're using?
Can't see anything immediately in the code that could cause it to beep when successful.
Cheers,
Charlie

@charliedowler
The whole app is here: https://github.com/svileng/react-es6-browserify-flowtype
I found that when I do a fresh run, if I have no errors, it doesn't beep; however, once I start getting errors, the beep never stops, even if I fix everything and it's all green.
Thanks for having a look!

Fixed!
Thanks for the issue @svileng, this affects everyone using gulp-flowtype in a watch task.
Will publish later tonight.

Cheers, thanks for fixing it!


e2e runs a dockerized environment in runtime - now also on CI

It would be nice if you could reintroduce mount points for each node from ./logs/SERVICE_NAME/NODE_NAME/:/opt/orbs/logs, so we could save them as artifacts.


Add LICENSE

Hey!
Great project! It is a really interesting implementation of ext2/3/4. I was planning on integrating your project into something I am working on. It would be great if you could a license so I could use it.
Usually the MIT or Apache 2.0 are good enough.

https://github.com/nerd2/gexto/commit/39468ec063f630a4824d82e1a06e608a07f0aec7


Assign multiple Actors to a Builder

My UI is pretty static, as in it defines all in one file and there are not many changes to the hierarchy during the runtime of the program. Therefore, I don't really need factories, only one Builder instance is enough.
But I'd still like to split my design into multiple actors: for example, the full screen handling is a separate strand of logic that works independently of the rest and thus can be encapsulated as a separate actor.
I can create multiple BuilderUtilizer instances from one builder object and for the widgets it works fine. But for the signals it does not, only the first actor will get all the signals and all others won't.

So my first instinct is to do something like this: https://gist.github.com/idanarye/25b24d72e30edf23cf3057c4b62b506c. Basically I'm putting a part of the GUI into a a container, and use woab::Factories to take the GUI part out of the XML. Then, in the code, I create both the main app and the sub-GUI and add the sub-GUI to the container that held it in the designer. The end result is the same as we see in Glade, but there are two builder invocations with two different XML files, which splits the signals each to its appropriate builder.
In that gist I'm using gtk::ListBox as the container, because all the other containers have <packing>. But I can probably make a more elegant solution by making the WoAB XML manipulation replace it with a simpler container (gtk::Box? Ideally I would use gtk::Bin but subclassing it is an overkill...)
Of course - this is assuming you are splitting the actors based on the GUI, where each actor is responsible for one subtree of the GUI and receives all the signals from that subtree (as long as they don't come from a subtree of that subtree that was taken by another actor). If this is not the case, then we may need a more elaborate scheme - maybe namespacing the signals?

So my first instinct is to do something like this: https://gist.github.com/idanarye/25b24d72e30edf23cf3057c4b62b506c. Basically I'm putting a part of the GUI into a a container, and use woab::Factories to take the GUI part out of the XML. Then, in the code, I create both the main app and the sub-GUI and add the sub-GUI to the container that held it in the designer. The end result is the same as we see in Glade, but there are two builder invocations with two different XML files, which splits the signals each to its appropriate builder.
In that gist I'm using gtk::ListBox as the container, because all the other containers have <packing>. But I can probably make a more elegant solution by making the WoAB XML manipulation replace it with a simpler container (gtk::Box? Ideally I would use gtk::Bin but subclassing it is an overkill...)
Of course - this is assuming you are splitting the actors based on the GUI, where each actor is responsible for one subtree of the GUI and receives all the signals from that subtree (as long as they don't come from a subtree of that subtree that was taken by another actor). If this is not the case, then we may need a more elaborate scheme - maybe namespacing the signals?

Of course - this is assuming you are splitting the actors based on the GUI, where each actor is responsible for one subtree of the GUI and receives all the signals from that subtree

At the moment, I am referring to widgets from within multiple actors. For example, the header bar is shown and hidden by the fullscreen actor, but other actors hold a reference to it as well in order to add buttons etc. I also have a HdyDeck with multiple cards. Each card has its own actor managing the content, but they all hold a reference to the deck to flip pages. Of course, one could always transform this into a "pure" tree hierarchy by factoring out widgets that are used multiple times and then let the actors communicate within each other.

If this is not the case, then we may need a more elaborate scheme - maybe namespacing the signals?

How does this work internally? Is there anything preventing me to have multiple actors listen on a signal if they use the same name? If I can have multiple actors share a widget, why shouldn't they share signals as well?

Of course - this is assuming you are splitting the actors based on the GUI, where each actor is responsible for one subtree of the GUI and receives all the signals from that subtree

At the moment, I am referring to widgets from within multiple actors. For example, the header bar is shown and hidden by the fullscreen actor, but other actors hold a reference to it as well in order to add buttons etc. I also have a HdyDeck with multiple cards. Each card has its own actor managing the content, but they all hold a reference to the deck to flip pages. Of course, one could always transform this into a "pure" tree hierarchy by factoring out widgets that are used multiple times and then let the actors communicate within each other.

If this is not the case, then we may need a more elaborate scheme - maybe namespacing the signals?

How does this work internally? Is there anything preventing me to have multiple actors listen on a signal if they use the same name? If I can have multiple actors share a widget, why shouldn't they share signals as well?

BuilderUtilizer::stream_builder_signals() is calling BuilderSignal::stream_builder_signals(), which BuilderExtManual::connect_signals() - a GTK utility that allows allows registering signals from a builder by name. The macro generates a big match with an arm for each enum variant that translates the &[glib::Value] to a value of the signal type with proper variant and fields, and sends it via a Tokio stream. Finally stream_builder_signals() returns that stream, so that it could be connected to the StreamHandler.
I thought calling stream_builder_signals() multiple times should create multiple streams that all transmit the same signals. Did this not work for you?

Thanks for the insights.

I thought calling stream_builder_signals() multiple times should create multiple streams that all transmit the same signals. Did this not work for you?

I expected this as well, but it doesn't. Apparently it isn't intended to be called multiple times. Fixing this would require the implementation to switch to using gtk_builder_add_callback_symbol[s]: we can do this, because we know all signals of our interest as these are precisely the enum variants. This has the advantage to only add a callback when it's specified, so this would only register twice if the user would do so.
I don't know about the behavior of calling gtk_builder_add_callback_symbol multiple times, but if it ignores all but one I'd be fine with simply documenting that fact. We can later optionally add some renaming and namespacing features if desired.

So the semantic of those methods is: you can call them multiple times, only the first callback for each signal is registered.

I'm not a big fan of using unsafe FFI outside the crate that's supposed to wrap it. I'd like to propose a different solution - using an actor to route the signals: https://gist.github.com/idanarye/de191a9b42fd5b5afbc0dd3ceef83b6e
I can start with a simple router that just clones the signal and transmits it to all registered recipients, and in future updates, if the need arises, I can add routers that route by namespace, or by tags, or by parsing the arguments, and it can all be composed to fit the projects' requirements.

I'm not a big fan of using unsafe FFI outside the crate that's supposed to wrap it.

Oh, I didn't notice this. There are no bindings for this function. I've also had a closer look at it, and the way gtk_builder_add_callback_symbol is defined makes it pretty useless for our use case and offers only little benefit over the current situation.
Regarding your proposal, do I understand it correctly that all actors that potentially share signals also share a Message enum? So they all get all messages, even though they probably ignore most of them?
I have a vague idea in mind on how this could be done in a way that keeps them separate, but I'll have to think about that one some more.

With the basic router - yet. But I can probably work a more advanced router. I envision something like that:
#[derive(Clone, woab::SignalNamespace)]
pub enum Namespace {
    #[namespace(root)]
    Root(RootSignal),
    Namespace1(Namespace1Signal),
    Namespace2(Namespace2Signal),
}

#[derive(Clone, woab::BuilderSignal)]
pub enum RootSignal {
    Signal1,
    Signal2,
}

#[derive(Clone, woab::BuilderSignal)]
pub enum Namespace1Signal {
    Signal3,
    Signal4,
}

#[derive(Clone, woab::BuilderSignal)]
pub enum Namespace2Signal {
    Signal5,
    Signal6,
}

This represents the signals:

Signal1
Signal2
Namespace1::Signal3
Namespace1::Signal4
Namespace2::Signal5
Namespace2::Signal6

And each actor can use its own namespace:
impl actix::StreamHandler<RootSignal> for Actor1 { ... }

impl actix::StreamHandler<Namespace1Signal> for Actor2 { ... }

impl actix::StreamHandler<Namespace2Signal> for Actor3 { ... }

Of course, nothing stops two actors from using the same namespace - they'll each get a copy of the signal - and nothing stops one actor from using two namespaces - it just has to be a StreamHandler of both types.
Routing registration can use the same message as the basic router, but we'd have to specify the specific signal type because the router supports multiple signals (though if the actor only has one signal I think Rust can infer that):
Actor1::create(|ctx| {
    let stream = woab::register_route<RootSignal>(router_ctx.address().recipient()).unwrap();
    Actor1::add_stream(stream, ctx);
    Actor1 { ... }
});

Actor2::create(|ctx| {
    let stream = woab::register_route<Namespace1Signal>(router_ctx.address().recipient()).unwrap();
    Actor2::add_stream(stream, ctx);
    Actor2 { ... }
});

Actor3::create(|ctx| {
    let stream = woab::register_route<Namespace2Signal>(router_ctx.address().recipient()).unwrap();
    Actor3::add_stream(stream, ctx);
    Actor3 { ... }
});

I feel like I now know enough about the problem and the code base that I'd like to try to solve this myself (though it may take some time).

When you say "solve" you mean "do a PR" or are you going to solve this externally, in your own code (e.g. with manual routing)? If you are going to solve this externally I may still want to add routing facilities to WoAB somewhere in the future.
Either way, I should probably finish #2 and make a release without waiting for this ticket, because while the multiple builders problem is not relevant for all architecture (it's not relevant for mine. It is relevant for yours. So far this is our entire sample...) and can be worked around externally, the signal return value prevents the usage of certain signals, which is a serious issue.

When you say "solve" you mean "do a PR" or are you going to solve this externally, in your own code (e.g. with manual routing)?

I'm hoping to make a PR in the end, yes :)


Users can use k8s master URL instead of kubernetes.default.svc

Users can customize the service. However, in the case of multiple nodes, the hosts files on each machine are different, so you need to adjust the hosts files.
Please see for more details https://github.com/fluent/fluentbit-operator/issues/184
Signed-off-by: chengdehao<EMAIL_ADDRESS>

This is not the most suitable way to solve this problem, I think it is a better solution to make FluentBit CRD support volumes and volumeMounts.
Volumes []v1.Volume `json:"volumes,omitempty"`
// Pod volumes to mount into the container's filesystem.
// Cannot be updated.
VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"`


How to close the modal from inside a command or onSelect?

I want to perform an asynchronous action inside a command, but I can't figure out how to close the pallet once the action is complete.
export function AppCommandPalette () {
  const commands = [
    {
      name: 'Do Something',
      command() {
        doSomething().then(() => {
          doSomethingToCloseTheModalHere();
        });
      },
    },
  ];

  return (
      <CommandPalette commands={commands} resetInputOnOpen={true} />
  );
}

Here's an example. Begin by setting closeOnSelect to false which will prevent the palette from automaticaly closing. Also you can optionaly set showSpinnerOnSelect to false prevent the spinner from showing. Make resetInputOnOpen true so that the palette will reset the next time its opened.
Now that the palette won't close when the user selects the command use a react hook to update open prop to false. For the next time the palette is opened you may need to change the open state back to true again
      onAfterOpen={() => {
        setOpen(true);
      }}

Here's a complete example:
https://codesandbox.io/s/react-command-palette-closemodal-hoq90?file=/src/index.js


Selects in Gatsby allow scrolling

Using the selects component in on a Gatsby site allows you scroll. The selects box will stay with you as you scroll down the page

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
On a Gatsby site the select box when opened does not lock scrolling. When you scroll the selects box scrolls with you down the page disconnecting from its base

Expected Behavior 🤔
When the selects box is open scroll is locked except in the box itself

Steps to Reproduce 🕹

Launch a gatsby dev site.
Add material ui as a dependency
Add the selects component to a page

Example below
https://codesandbox.io/s/gatsby-starter-default-4v42v?fontsize=14

Context 🔦
I am trying to use the select component on a Gatsby site

Your Environment 🌎

Tech
Version

Material-UI
v4.5.0

React
^16.10.2

Browser
chrome

TypeScript
no

etc.

The problems come from layout.css, it's the first time I see such approach:
html {
  overflow-y: scroll;
}

Where does this template come from?

Oh boy, it's present with
npm install -g gatsby-cli
gatsby new gatsby-site
cd gatsby-site

Ok, maybe we should apply overflow: hidden to the <html> element. Gatsby's owner has provided an interesting answer on why the overflow style on the element is important: https://github.com/gatsbyjs/gatsby/pull/18411#issuecomment-541633814.
I would like to explore a diff that adds overflow hidden to the body and the html element, when required. What do you think of?
diff --git a/packages/material-ui/src/Modal/ModalManager.js b/packages/material-ui/src/Modal/ModalManager.js
index a0e9dc0a2..d640b34ef 100644
--- a/packages/material-ui/src/Modal/ModalManager.js
+++ b/packages/material-ui/src/Modal/ModalManager.js
@@ -59,35 +59,46 @@ function findIndexOf(containerInfo, callback) {
 }

 function handleContainer(containerInfo, props) {
-  const restoreStyle = {};
-  const style = {};
+  const restoreStyle = [];
   const restorePaddings = [];
+  const container = containerInfo.container;
   let fixedNodes;

-  if (!props.disableScrollLock) {
-    restoreStyle.overflow = containerInfo.container.style.overflow;
-    restoreStyle['padding-right'] = containerInfo.container.style.paddingRight;
-    style.overflow = 'hidden';
+  if (!props.disableScrollLock && isOverflowing(container)) {
+    const parent = container.parentElement;
+    if (parent.nodeName === 'HTML') {
+      restoreStyle.push({
+        value: parent.style.overflow,
+        key: 'overflow',
+        el: parent,
+      });
+      parent.style.overflow = 'hidden';
+    }
+    restoreStyle.push({
+      value: container.style.overflow,
+      key: 'overflow',
+      el: container,
+    });
+    restoreStyle.push({
+      value: container.style.paddingRight,
+      key: 'padding-right',
+      el: container,
+    });
+    container.style.overflow = 'hidden';

-    if (isOverflowing(containerInfo.container)) {
-      const scrollbarSize = getScrollbarSize();
+    const scrollbarSize = getScrollbarSize();

-      // Use computed style, here to get the real padding to add our scrollbar width.
-      style['padding-right'] = `${getPaddingRight(containerInfo.container) + scrollbarSize}px`;
+    // Use computed style, here to get the real padding to add our scrollbar width.
+    container.style['padding-right'] = `${getPaddingRight(container) + scrollbarSize}px`;

-      // .mui-fixed is a global helper.
-      fixedNodes = ownerDocument(containerInfo.container).querySelectorAll('.mui-fixed');
-      [].forEach.call(fixedNodes, node => {
-        restorePaddings.push(node.style.paddingRight);
-        node.style.paddingRight = `${getPaddingRight(node) + scrollbarSize}px`;
-      });
-    }
+    // .mui-fixed is a global helper.
+    fixedNodes = ownerDocument(container).querySelectorAll('.mui-fixed');
+    [].forEach.call(fixedNodes, node => {
+      restorePaddings.push(node.style.paddingRight);
+      node.style.paddingRight = `${getPaddingRight(node) + scrollbarSize}px`;
+    });
   }

-  Object.keys(style).forEach(key => {
-    containerInfo.container.style[key] = style[key];
-  });
-
   const restore = () => {
     if (fixedNodes) {
       [].forEach.call(fixedNodes, (node, i) => {
@@ -99,11 +110,11 @@ function handleContainer(containerInfo, props) {
       });
     }

-    Object.keys(restoreStyle).forEach(key => {
-      if (restoreStyle[key]) {
-        containerInfo.container.style.setProperty(key, restoreStyle[key]);
+    restoreStyle.forEach(({ value, el, key }) => {
+      if (value) {
+        el.style.setProperty(key, value);
       } else {
-        containerInfo.container.style.removeProperty(key);
+        el.style.removeProperty(key);
       }
     });
   };

This somewhat relates to my gripe with dislodged scrollbars for modals (scrolle=body vs scroll=paper). My guess was always that this was intended to direct mousewheel scrolling while hovering over the body to the dialog.
Would it make sense to prevent event defaults in mouse wheel event handlers?

Would it make sense to prevent event defaults in mouse wheel event handlers?

@eps1lon As an alternative implementation of the scroll lock to the overflow: hidden approach? I don't have all the context on this matter, from what I know, there is no way to prevent manual interactions with the scrollbar buttons.

The scroll bar maybe not. Though I think you can prevent mousewheel scroll. I doubt many people actually click on scrollbars. Those are tiny :smile:

@leMaik Do you remember a past effort in the prevent scroll wheel approach, maybe around 2017? I have a reminiscence of a past exploration of this direction. Ah, hup: #5098.


Refactor import gesture

The most important changes include the addition of better documentation and error handling in the import_gesture method as per the fixme that was above import_gestuer and as mentionend in issue #8199.
Enhancements to gesture recognition:

kivy/multistroke.py: Added detailed documentation and error handling to the import_gesture method, including argument descriptions and raised exceptions. Implemented a new _compare_data function to improve gesture matching performance.

Maintainer merge checklist

[ ] Title is descriptive/clear for inclusion in release notes.
[ ] Applied a Component: xxx label.
[ ] Applied the api-deprecation or api-break label.
[ ] Applied the release-highlight label to be highlighted in release notes.
[ ] Added to the milestone version it was merged into.
[ ] Unittests are included in PR.
[ ] Properly documented, including versionadded, versionchanged as needed.

Hi @ricleta ,
I see there are multiple files being added to this commit that should not be there, can you take a look?

Sorry about that. It seems like I ended up accidentally including some files from compiling kivy and creating a venv.
Should I close this PR, fix on the branch and open a new PR? Or should I try to remove the files from this one directly?


Flip Explore to use NL backend by default

This change includes support for:

"Explore More" functionality in NL backend
Some truncations done in Explore backend for SVPGs with too many SVs
Validation of sdg functionality with NL backend

This excludes two features of Explore:
a) SVG expansion
b) Categories for sub-topics
We might come back to do (a) and (b) later.
The diffs largely come from (b).
TODO: Validation of this backend with SDG frontend

Thanks!


Add more subdomains

Coverage remained the same at 100.0% when pulling 578656cbe5d1716aa4b0b7262150bb8cd066a03f on fea-new-subdomains into 998f76971cb53e5a38665813e8a81e3ec58f5dd5 on master.

Coverage remained the same at 100.0% when pulling 578656cbe5d1716aa4b0b7262150bb8cd066a03f on fea-new-subdomains into 998f76971cb53e5a38665813e8a81e3ec58f5dd5 on master.

Coverage remained the same at 100.0% when pulling 578656cbe5d1716aa4b0b7262150bb8cd066a03f on fea-new-subdomains into 998f76971cb53e5a38665813e8a81e3ec58f5dd5 on master.

Coverage remained the same at 100.0% when pulling 578656cbe5d1716aa4b0b7262150bb8cd066a03f on fea-new-subdomains into 998f76971cb53e5a38665813e8a81e3ec58f5dd5 on master.

Coverage remained the same at 100.0% when pulling 578656cbe5d1716aa4b0b7262150bb8cd066a03f on fea-new-subdomains into 998f76971cb53e5a38665813e8a81e3ec58f5dd5 on master.

Coverage remained the same at 100.0% when pulling 578656cbe5d1716aa4b0b7262150bb8cd066a03f on fea-new-subdomains into 998f76971cb53e5a38665813e8a81e3ec58f5dd5 on master.


Tool generates incorrect platform tag in output filename when run on Linux when using wheel version >0.34.2

pywhlobf currently (as of 0.2.3) generates an uninstallable wheel on linux due to an error in the platform tag in the output filename:
As an example:
Running pywhlobf test-0.1.0-py3-none-any.whl dist will produce the output dist/test-0.1.0-cp38-cp38-linux-x86_64.whl. Attempting to run pip3.8 install dist/test-0.1.0-cp38-cp38-linux-x86_64.whl will produce the error ERROR: test-0.1.0-cp38-cp38-linux-x86_64.whl is not a supported wheel on this platform. because linux-x86_64 is not a valid platform tag, it should be linux_x86_64 (note the use of an underscore rather than a dash). Manually renaming the file to the correct pattern solves the issue.
This seems to be related to changes in wheel.bdist_wheel.get_platform in versions 0.35.0 and above.
Related: https://github.com/huntzhan/pywhlobf/issues/1

investigating

@hutchisr pls help verify this issue has been resolved. feel free to re-open if something is still wrong.


CircleCI: go-tests/fix dac url config

Fix error:
dac.urls must be set for sequencer when l2 blob time is set

Should we disable l2blob in e2e test by default, and enable it explicitly if we want to test it?
Then the test here should be the only one that has l2blob enabled.

Should we disable l2blob in e2e test by default, and enable it explicitly if we want to test it?
Then the test here should be the only one that has l2blob enabled.

Same concern

Should we disable l2blob in e2e test by default, and enable it explicitly if we want to test it?
Then the test here should be the only one that has l2blob enabled.

How to disable the test? The problem is a lot of tests cannot pass the check here.

Should we disable l2blob in e2e test by default, and enable it explicitly if we want to test it?
Then the test here should be the only one that has l2blob enabled.

How to disable the test? The problem is a lot of tests cannot pass the check here.

Explicitly disable l2 blob here?
Just ensure it's on for our own l2blob e2e test.


.NET Core Support

Are there any plans to support .NET Core in the future?

Going to track this request under [#53] to remove dupes.


[keyvault quick start] Fixing some dead links and minor issues with wording/formatting

CC: @sadasant

@richardpark-msft : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Prevent int overflow and underflow

Fixes #31138
This show message like:
ERROR: to_int: Cannot represent<PHONE_NUMBER>111111111 as int, provided value is too big.
   At: core/ustring.cpp:1778.

when found overflow or underflow.

Maybe the message should tell that it happens due to overflow? Or even simpler - that the number is too big.

I added info about overflow to error message.
It is a little strange that in core/math/expression.cpp, num variable from below, is never negative(minus sign is added later), so in this case, error message is not accurate.

https://github.com/godotengine/godot/blob/51def4dab9d0e787c519aef914764a6140565d90/core/math/expression.cpp#L1149

Maybe change "as a long int" with "as a 64-bit integer" in the error messages? Also, I'm not sure that int64_t's maximum value is LONG_MAX.

Also, I'm not sure that int64_t's maximum value is LONG_MAX.

Indeed, at least the guaranteed max for INT_MAX would be 16-bit and for LONG_MAX would be 32-bit. In practice I think it's twice that for each on x86_64, but that's still a bit unclear whether this bounds properly match the actual implementation we have on each platform.
http://www.cplusplus.com/reference/climits/

There should be INT64_MAX according to https://en.cppreference.com/w/cpp/types/integer

Thanks!


One broken manifest should not take down the world of manifest parsing.

A couple of days ago I broke Words.recipes by renaming Post.manifest, which it imports, to Post.schema. With a broken import, I found that @yuinchien was in a state where her launcher provided no suggestions and had an exception about Post.manifest that didn't cite which parsed manifest was involved. I assumed it was Social.recipes, but eventually realized it was Words.recipes through sheer contemplation.
@sjmiles mentioned similarly the other day in discussion with @shans
There are two issues here:

manifest parsing is fragile and one broken manifest takes down the world
a manifest parse failure would ideally include more information such as what happened, which manifest file (full url and filename) was being parsed, and the line number in the file at which the error occurred.

In chat discussion it sounded like improving this may be non-trivial, which is entirely believable. Perhaps improving the error info would be easier and worth doing first.

We have the MVP specified here, can file another issue if we want to take this further later.


Bring back broken Inheritance Graphs

As currently the links in the Inheritance Graphs are broken, this pr will try to fix this.
In 0.8.0 the links were working:
https://docs.manim.community/en/v0.8.0/reference.html#mobject-inheritance-graph
Since 0.9.0 the links are broken:
https://docs.manim.community/en/v0.9.0/reference_index/mobjects.html#inheritance-graph
It broke in https://github.com/ManimCommunity/manim/pull/1778
Here are the diagrams fixed:
https://manimce--2056.org.readthedocs.build/en/2056/reference.html#mobject-inheritance-graph
(Note that this is only fixed in the Reference page, not fixed in the e.g. Reference/Mobject page)
Example of the Star:
This pr from clicking the link in the diagram:
https://manimce--2056.org.readthedocs.build/en/2056/reference/manim.mobject.geometry.Star.html#manim.mobject.geometry.Star
vs latest master from clicking the link  in the diagram (broken):
https://docs.manim.community/en/reference/manim.mobject.geometry.Star.html#manim.mobject.geometry.Star
vs latest master searching from search bar:
https://docs.manim.community/en/stable/reference/manim.mobject.geometry.Star.html?highlight=Star

I reverted this file now back to commit 0cb5778 , hope it will show now properly.

Still seems broken.


Minor Bug fixes

Added quotations around $QCMD in if on line 21, solves common "too many arguments" error
Added where the port is found for summary, added -w flag to grep, this makes it less likely to have multiple ports but not impossible, Lowers the number of ports shown when this does happen

@ThomasGillespie Since you discovered this issue already, do you mind applying the same double-quotes fix to lines 9, 13, 17, and 71. The same problem may occur and have impacted me locally as well. Thanks!


Memory Dump Report

gives me an unavoidable error

(link for the files)
https://drive.google.com/drive/folders/1OsJ0czW9DROyHl0cRSQrjKLE9WXheJRj?usp=sharing

You might want to delete the dumps in your Google Drive.
Memory dumps can contain sensitive information, send a PM to Bitdancer on the DevForums: https://devforum.roblox.com/u/bitdancer

Ok

Remove the link from your original message

The link itself is just an 404 error page now, no need of trying to remove it


Second swing at event delegation - RFC

Description of the pull request:
This is the follow-on to #2841, where instead of adding manual insertion points for delegates, iterative sections that are nested within an element automatically set their containing element as the delegate target. Fragments automatically inherit their parent delegate, and there's special casing for handling components.
Unlike the first swing, this does not allow delegating custom events because there's really no way to control exactly which events should be delegated. As such, the event directive has to check to see if there is a matching custom event in the hierarchy. This adds a bit of overhead over the first swing too, so it looks like the performance gap drops from 20-30% to 15-25%. On the plus side, you can't accidentally break custom events, because they will still be rendered on the element containing the directive where the DOM events may be shuffled upstream.
To be clear, any events that are within an iterative section that is within an element will automatically be delegated. If there's not a wrapping element, then there's nowhere to install real listener. Nested iterative sections inherit their parent delegate target, so there's only one target element.
To complete the comparison, here's the adjusted example from the first swing

{{#each lotsOfRows}}

    <button on-click="@.select(.)">Select</button>
    {{.description}}
    {{.something}}
    <button on-click="event.splice('../../', @index, 1)">Remove</button>

{{/each}}

Questions

Does tracking the delegate target element seem lightweight enough to justify the render gains?
The search for ractive events to fire should be pretty darn fast, but I've heard rumors that delegation can cause lag with things like touch scrolling. Would that be a problem here? With jquery, I believe the delegated events have to execute a query selector, which is where the lag generally comes from?
If this is ok, should it go out defaulted to on or off?
If lag could be a problem, would having a directive for elements to disable delegation be useful? Something like
{{#each ...}}...{{/each}}
, perhaps.

TODO

[x] Add an instance flag to disable delegation
[ ] Maybe have a directive for enabling/disabling delegation explicitly at one point (element containing iteration)?
[x] Tests for disabling delegation

Fixes the following issues:
The remaining bits of #846
Is breaking:
Kinda sorta... if delegation defaults to off, it's not breaking. If it defaults to on, it may be a little breaking due to the way bubbling can get out of order.
Reviewers:
Yep

There is now an option delegate that defaults to true. Delegation is configured by the component hierarchy of the template rather than the component prototype hierarchy alone. If a component has a set delegate flag, it will be used. Otherwise, it will use the setting of the parent instance in the template.

I've heard rumors that delegation can cause lag with things like touch scrolling.

Delegation has performance issues when the delegate target is way up in the tree. If I remember correctly, this was why jquery.live was replaced with jquery.on. jquery.live used document as the predetermined delegate target while jquery.on allows the user to pick an ancestor lower in the tree.
Given that jQuery already provides jquery.on to mitigate this issue, any issues that still exist probably developer error, like attaching too many scroll handlers, very slow scroll handler performance, and stuff like that.
This case would be comparable to jquery.on as it's scoped within the bounds of the component, which is presumably small and only a few elements deep.

If this is ok, should it go out defaulted to on or off?

If it currently breaks, it's safer to be off. But a global switch (i.e. Ractive.defaults.delegate = true) would be nice for those adventurous enough to try it.
If it is safe to do so or if nobody really cares about order, on by default would be nice.

I personally don't care about bubble order. It's kind of expected especially when dealing with dynamic objects, even when dealing with jQuery.
The only time I cared about order is when I need to stop propagation, like stopping clicks inside a modal from closing a modal that is configured to close when clicking outside of it (the close handler was on ). And this already felt hacky and edge-case to me, considering I could have put a transparent non-ancestor shade to capture the outside click instead of putting the handler on .
My 2c


Problem running Flask with an ssl_context under Werkzeug 0.10.1

With the last Werkzeug (0.10.1) I get the following error message:
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\PGM\Python27\lib\threading.py", line 810, in __bootstrap_inner
self.run()
File "C:\PGM\Python27\lib\threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "C:\PGM\Python27\lib\site-packages\werkzeug\serving.py", line 602, in inner
passthrough_errors, ssl_context).serve_forever()
File "C:\PGM\Python27\lib\site-packages\werkzeug\serving.py", line 506, in make_server
passthrough_errors, ssl_context)
File "C:\PGM\Python27\lib\site-packages\werkzeug\serving.py", line 450, in init
self.socket = ssl_context.wrap_socket(self.socket,
AttributeError: 'Context' object has no attribute 'wrap_socket'
Reverting to Werkzeug 0.9.6 make it work again like a charm.

Which code do you use? Which Python version do you use?

I use Python 2.7 for win32
As for code I suppose you mean version of Flask. Then it is the last available on PIP (Flask 0.10.1)

No, the code of a Flask app that replicates this problem.

Also, please mark your traebacks as code (put triple-backtick fences in the line right before and right after the code) so they are formatted properly.

My code is of the following form:
.... other imports
from OpenSSL import SSL

.... my app code

if __name__ == "__main__":
    app = Flask(__name__)
    .... some more inits (db, mail, compress, login...)

    context = SSL.Context(SSL.TLSv1_2_METHOD)
    context.use_privatekey_file(app.config['PRIVATE_KEY_FILE'])
    context.use_certificate_file(app.config['CERTIFICATE_FILE'])

    app.run(debug=True, ssl_context=context)

Ah yes, OpenSSL contexts have been discontinued in favor of using Pythons' stdlib SSLContext. It is easier to support across Python versions.

Hum... Then perhaps pip should not have let me install that version due to incompatibility with python...

Which Python version are you using then? How is this a pip issue?

I use Python 2.7.8 win32.
Why a PIP issue? Because as PIP check for library version dependency, it should check for Python version dependency too. I did get this problem trying to update Flask (who was up to date) but it updated Werkzeug. It should have know that this version of Werkzeug would not work with my Python version or at least warned me of some possible incompatibilities...

SSL in the dev server is the only thing that requires 2.7.9 - so I don't think it would make lots of sense to require that version.

Not even that, only if you want to use the SSLContext class.


Fix end quote around note in beancount format

bundle exec rake spec
success: 1000 tests

Good catch, thanks @stephas!


Warning: Non-serializable values were found in the navigation state.

Non-serializable values were found in the navigation state. Check:
Login > params.rest.instance (Function)
This can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-w…g-non-serializable-values-were-found-in-the-navigation-state for more details.

The problem comes from the native react navigation which seems to deserialize class and turn them into JS objects
But it's impossible for an object to have


JEE example for AngularJS and Core-UI

This example is a clone of the AngularJS example demonstrating Core-UI in a JEE application. The scss files aren't build in this version as it seems to be a wro4j issue. I created a pull request and waiting for a response. As soon it is possible the code might look like:
https://github.com/sterlp/CoreUI-Free-Bootstrap-Admin-Template/tree/wro4j-build/JEE_Angular_Starter_Wro4j

Please review also https://github.com/mrholek/CoreUI-Free-Bootstrap-Admin-Template/issues/189


Move symbols from SPI group ExperimentalParameterizedTesting to ForToolsIntegrationOnly.

This PR moves various symbols from the ExperimentalParameterizedTesting SPI group to the ForToolsIntegrationOnly SPI group per the SPI policy outlined here.
Checklist:

[x] Code and documentation should follow the style of the Style Guide.
[x] If public symbols are renamed or modified, DocC references should be updated.

@swift-ci please test

@swift-ci please test


Validations of elements that should not be displayed

In a lot of instances, I need to be able to validate that an element is not there. The only way I see to do this is to check the .Displayed property, but this doesnt really work because it will throw errors around the element not being found which is exactly what I want..
I can obiviously catch this exception, but when we include a maximum wait time with the startup, this means this validation will take that amount of time every time which is just too slow.
Is there a way in WinAppDriver to do something like a .Exists? Where it will just look to see if an element is found in the tree, and if not move on without throwing errors?

I have the same  problem - I want to verify that element is NOT displayed.
Please help.

I've achived this by using  assertTrue(findElementsByAccessibilityId("elementName").isEmpty()).
findElementsByAccessibilityId will return a list so if the list is empty the element is not displayed.

@andonyns actually I do not want to use assert but rather a condition.
The code looks like here:
protected static WindowsDriver session;
session = new WindowsDriver(new Uri(WindowsApplicationDriverUrl), desiredCapabilities);
if (session.FindElementByName("Wanted element").isEmpty())
{
//turn on the option in the system to make "Wanted element" visible for the user
}
However you appeach with .isEmpty gives me an error: 'WindowsElement' does not contain a definition for 'isEmpty' and no accessible extension method 'isEmpty' acepting a first argument of type 'WindowsElement' could be found (are you missing a using directive or an assembly reference?)

Use findElements NOT findElement

@andreii88 looks like it works with additional "s" but not exactly with this method. Instead of isEmpty, IsNullOrEmpty works fine for now. Below version is correct:
if (session.FindElementsByName("Wanted element").IsNullOrEmpty())
{
//turn on the option in the system to make "Wanted element" visible for the user
}
Thanks @andreii88

@andreii88 thank you!


Ignition templating

Summary
Add functionality to the metal-operator to process and manage the generation of ignition secrets for ServerClaim objects. This feature will ensure that ignition secrets are derived from ignition templates and filled in with values computed by various ignition providers (e.g., networking, storage). The status of the ServerClaim will reflect the readiness state of the operation for each ignition provider.
Example workflow for the feature:

A ServerClaim object is created:

ServerClaim:
apiVersion: metal.ironcore.dev/v1alpha1
kind: ServerClaim
metadata:
  name: somehostname-claim
spec:
  serverRef:
    name: somehostname-server
  serverSelector:
    cpu: 100
  ignitionProviders:
    - name: someprovider-networking
      spec:
        foo: bar
    - name: someprovider-storage
      spec:
        bar: foo
  ignitionRef:
    name: somehostname-ignition
  ignitionTemplateRef:
    name: someignition-template

The specified ignition template someignition-template will contain place holders to be updated, by operator,  with the computed values from the ignition providers.

Ignition providers (e.g., someprovider-networking and someprovider-storage) will compute their values and update the valuesConfigRef.

Each controller will update the ServerClaim status to show the readiness state of each provider:

status:
  ignitionProviders:
    - name: someprovider-networking
      state: Ready
      valuesConfigRef:
        name: someprovider-networking-values
    - name: someprovider-storage
      state: Pending
  status: Bound

the operator will  merge/inject the computed values into the ignition template and create the an ignition secret. Also set the ServerClaim annotation to reflect the readiness state of the operation.

Motivation
Streamline the process of generating ignition secrets for ServerClaim objects by dynamically populating values from ignition providers.

A few comments:

General question: Should the provider config be fulfilled by an external operator or is this a build in feature of the metal-operator?

How should the ignitionProviders slice look like? Should we have a ProviderConfig type which looks like the following?

type ProviderConfig struct {
   name string
   config *runtime.RawExtension
}

In the case of an external operator we can't import the spec of the provider specific type.

Do we expect an IgnitionTemplate + provider config being present which are then being rendered and a Secret is being created + the ServerClaim.Spec.IgnitionRef being mutated to ref this Secret?

Is the IgnitionTemplate the same for all Providers?

General question: Should the provider config be fulfilled by an external operator or is this a build in feature of the metal-operator?
How should the ignitionProviders slice look like? Should we have a ProviderConfig type which looks like the following?

I think these should be dedicated controllers, so a separation is possible. We can consider providing some bundled for shared concerns in the metal-operator though. This would also imply the runtime.RawExtension stuff in case an external controller is supposed to provider some values.

Do we expect an IgnitionTemplate + provider config being present which are then being rendered and a Secret is being created + the ServerClaim.Spec.IgnitionRef being mutated to ref this Secret?

Sounds good to me.

Is the IgnitionTemplate the same for all Providers?

I think this meant to hold a golang template string. The content will differ between the chosen providers, because the values available for templating will depend on the given provider configs.


Imports in ES modules revert to loading CommonJS

Bug report

What is the current behavior?
In the latest version of Webpack 4 with default config, imports in .js files prefer a package module, whereas identical imports in .mjs files for some reason revert to loading the package main.
This is true within an app, but it's also true within node_modules. For example, if package A that exports ES modules depends on package B that also exports ES modules, Webpack will correctly prefer ES modules for package A, but will revert to bundling the CommonJS entry point for package B.
The most visible symptom of this issue is package code being in the bundle twice. This is bad for file size, but more importantly, some packages cause errors when they are loaded twice. We first saw this issue with the styled-components package, which depends on having only one copy of itself in the bundle.
If the current behavior is a bug, please provide the steps to reproduce.
Here's a very simple reproduction app: https://github.com/aldeed/webpack-es-module-resolution-issue
See the Readme there.
This is a reproduction of the issue within an app. I've also reproduced the package variation of this bug mentioned above. I can post that if it's helpful, but I suspect they're both the same root cause.

What is the expected behavior?
Webpack docs state that by default module will be preferred in v4+. This is true when imported from CommonJS only. I believe this should be true regardless of whether the import source is CommonJS or is itself a module.

Other relevant information:
webpack version:  4.35.0
Node.js version: 11.8.0
Operating System: OSX
Additional tools:

Since .mjs is an experimental node.js feature, it tries to behave identical to .mjs in node.js which doesn't support the module field.
EXPERIMENTAL: .mjs should not used in production.

This is true @sokra but a few counter-points:

Webpack default config prefers module now, so you are saying "don't use default Webpack config in production"?
The variation of this issue that happens with package imports is an issue through no fault of the app maintainer. They are not opting in to anything experimental. As long as two packages I'm using have module entry points (increasingly common), I'll experience the double loading issue.

Also, is there any config option that would fix this as a workaround for now? It seems more like a bug than a configuration thing.

Webpack default config prefers module now, so you are saying "don't use default Webpack config in production"?

The module field is fine. I said don't use .mjs files in production. It's an experimental node.js feature.

The variation of this issue that happens with package imports is an issue through no fault of the app maintainer. They are not opting in to anything experimental.

The library opts-in to an experimental feature by using the .mjs extension. But you are right the app developer didn't opt-in. It was a wrong decision to enable .mjs support by default in webpack 4. So webpack 5 disables experimental features by default and you must opt-in in config (experiments.mjs).
By using the .mjs extension you opt-in into the mjs way of resolving, which comes with it's own issues...

Also, is there any config option that would fix this as a workaround for now?

You can override this behavior with:
module.rules: [
  {
    test: /\.mjs$/,
    resolve: { mainFields: [ "browser", "module", "main" ] }
  }
]

Thank you @sokra, that is helpful. I was confusing module field with .mjs extension, assuming you had to use .mjs extension for a module field file. If I instead use module with a normal .js file, I don't see the double loading.
You mention that Webpack is trying to follow Node behavior. Digging into the Node docs, I assume you are referring to the fact that Node doesn't support module field, but rather expects a type: "module" or .mjs extension and always uses the main field.
https://nodejs.org/api/esm.html#esm_package_entry_points
I don't quite understand that reason, because Webpack does respect the module field, and it isn't Node. Why would it make sense for Webpack to respect module until it hits a .mjs file and then revert back to resolving from main?
To put the question another way, when I import "random_package" that has a module field, isn't it confusing that the bundle will be different just based on what file extension the package author used?


Fix iOS Build warning

The platform specifications cause a build warning in Xcode 12. They're not necessary since VTS supports all versions supported by Xcode versions that support Swift Package Manager.
Details in nanopb/nanopb#585, firebase/firebase-ios-sdk#6449, https://forums.swift.org/t/minimum-ios-version-xcode-12-and-build-warnings/40224, and https://github.com/apple/swift-evolution/blob/master/proposals/0236-package-manager-platform-deployment-settings.md

Thanks for taking care of this!


Home layout

I am actually a noobie to the whole Jekyll area,and new to programming in general so bare with me.
I am trying to find the home layout that it  is supposed(according to the index at your site)  to exist but i can't find it. I want a homepage like (http://mmistakes.github.io/skinny-bones-jekyll/) in the original site and not an archive as a homepage, is that doable?
Thank you for your time

Yes that's doable. Check the gh-pages branch of the Skinny Bones repo to see how I did the homepage that isn't an archive layout.

Yeah , as i told you i am new in github, so it took me some time to discover that there are branches and what branches are etc ,etc.
In the end i found it and applied to my site, thank you for your swift response(i read it as soon as you posted it ) and sorry for my late reply.
Cheers :)


Update tooling

Just some tooling additions that you might like.

Update actions/setup-python to V2
Added dependabot config to check for new github action version
Added pre-commit Ci check for quality assurence
Added workflow to autoupdate .pre-commit-config.yaml

Description
Changes since actions/setup-python@v1

Improved logs & output when downloading and setting up Python versions
Improvements and updates to downloading Python versions from actions/python-versions
Support for pre-release Python distributions
Fix installation logic to prevent leaving files in GITHUB_WORKSPACE
Ability to download python packages from actions/python-versions
Easy setup when using a self-hosted runner
Support for GHES

For the pre-commit autoupdate workflow to work you need to set a secret ACTION_TRIGGER_TOKEN, which is an access token with repo or public_repo scope. This is needed in order for the action generated PR's to trigger the CI.
Motivation and Context
I saw that actions/setup-python was still at v1 and that some pre-commit repo revisions are outdated, so why not use the latest and greatest? 😄
Have you tested this? If so, how?
I'm using a similar/identical setup in my repos 😉

Dude this is fantastic, thank you! I went ahead and setup the secret, can't wait til monday to see how it works :D
Let me know if you're ever at PyCon or EuroPython (if we ever have physical conferences again) - I'm getting logo stickers printed and you deserve one 😄

No need to wait, that workflow can also be triggered by workflow_dispatch.
So just got to the Actions tab, select Update pre-commit config , press the Run workflow button at the top and see the action rolling. 😄

@s-weigand was this for hacktoberfest? Need me to add it as a repo topic so it counts for you?

Nah im fine with stickers 😜


Fix for iOS 6 Compatibility

Is it possible to work on iOS 6?
Thank you so much for your brilliant work :)

tested on iOS 6 but filed to compile . would you do a  support for iOS6


Undo the assumption of driver version 11.4 on WSL2

The WSL2 preview driver (which identifies itself as 510.06/ CUDA 11.6) only supported PTX up to version 7.4. However, the latest release driver (496.49) correctly reports the CUDA version it supports (11.5).
Instead of making assumptions about the supported PTX version on WSL based on incorrect behaviour of the preview driver, we should use the reported version as normal, and recommend the use of the latest release driver (and to discontinue use of the preview driver).
This PR also includes some small logging improvements that would have been useful when debugging related issues on WSL2 recently.
After this PR is merged, I think we will need to do another release of ptxcompiler so that WSL2 users don't get the patch erroneously applied.
cc @shwina @taureandyernv @jakirkham

Merging now that the latest driver is confirmed working without the assumption of PTX version 7.4 (many thanks to @taureandyernv)

Thanks Graham! 😄
Should we be rebuilding with this change soon? Or can this be handled the next time we need to build packages (like a new CUDA version)?
cc @quasiben (for vis)

Should we be rebuilding with this change soon? Or can this be handled the next time we need to build packages (like a new CUDA version)?

Sorry for the slow response on this one - I got tied up with various things and didn't get to loop back to this for a while. I do think we should be building a new release as soon as we can, from the 0.3.0 tag.

Filed an issue to track ( https://github.com/rapidsai/ptxcompiler/issues/14 )


GH-2240: Bug fix for KafkaTemplate.receive(..)

Fixes GH-2240 (https://github.com/spring-projects/spring-kafka/issues/2240)

Ensures that we dont get ConsumerRecords with nulls in the list
Ensures that we do not allow null offsets

...and cherry-picked after resolving conflicts to 2.9.x, 2.8.x.
@gurpiarbassi Thanks for the contribution.
In future, please don't force push (unless you rebase), just add more commits to the PR so we can see what changed more easily (not really an issue with this small PR, but it is with larger PRs).
Also, please leave a blank line after the commit headline.


Compatibility between xt::pytensor and xt::xtensor

Thank you for developing xtensor and xtensor-python, which are very practical libraries.
In some cases, I want to write the following functions and export to Python with pybind11:
void foo(const xt::pytensor<double, 1> &a)
{
  xt::xtensor<double, 1> b = 0.5 * a;
}

This function can be compiled with g++ (5.4.0@ubuntu 16.04).
However, the following Python code stops with Segmentation Fault (core dumped):
foo(np.array([1]))
although this code works correctly:
foo(np.array([1,2,3]))
If you have some ideas about this bug and don't have enough time for debugging,
I would like to try fixing according to your comments.

Thank you for reporting!
Which version of xtensor and xtensor-python do you use ?

Thank you for your reply.
I am using latest version of them.
I cloned their git repositories just few minutes ago and installed with cmake.

Ok, it seems the bug is in xtensor. I can reproduce it with the following code:
xt::xtensor<int, 1> a = { 1 };
xt::xtensor<int, 1> res = 2 * a;

I'm working on a fix.

@yoshipon the bug has been fixed in xtensor master. Can you confirm it works for you ?

@JohanMabille Thank you very much for your super-fast response.
I confirmed that now the problem is fixed.

you're welcome!

@yoshipon we have made a patch release of xtensor with this bugfix.
xtensor 0.11.3.
The conda recipe is building on conda forge.

I cloned their git repositories just few minutes ago and installed with cmake.

Cool!
If you are working with other xtensor projects such as xtensor-python, we recommend using the latest the latest tagged version in general.
Also, we have a fairly active chat room here: https://gitter.im/QuantStack/Lobby !

@SylvainCorlay Thank you for informing about them!


Q about asymetrical barcodes

Dear Vladimir,
We work with assymetrical barcodes in order to multiplex a large number of samples on our Sequel-IIe (inspired from the 16S pipeline and using the same layouts).
I read in your usage page that assymetrical barcodes are not currently supported. Very sad! This marks the end of my exploration as I cannot change that in the wet lab and multiple samples always share the same barcode on either end.
Do you have an estimate on when this could be implemented?
Thanks in advance

Hello Stéphane!
Thank you for reaching out and sharing your feedback. I understand the importance of this feature, especially when you're multiplexing a large number of samples.
You're right; as of now, we don't support asymmetric barcodes. However, as a workaround, you can pre-demultiplex your data outside of NextITS and then proceed with the analysis. When doing this, you would set --input as a directory containing your fastq files and also specify --demultiplexed true.
While I don't have a concrete estimate for when asymmetric barcode support will be implemented, I genuinely believe it's a feature worth adding. We just need to allocate the time and resources to make it happen. Your feedback is invaluable in helping us prioritize such features.
On a side note, I'm curious about the nature of your barcodes. Are they "purely asymmetric" (i.e., only different barcodes on each end, like A-B), or do you also use symmetric combinations (like A-A)?

Hello Vladimir,
This is great news, especially since I get my reads already demuxed from the Sequel-IIe.
I try this as soon as I receive the first run.
I cant wait to see the first results.
The barcodes are the exact same used in the PB 16S kit and are purely assymetrix indeed, you can find them here (https://www.pacb.com/wp-content/uploads/Asy_M13_BUP_Sequence_384plate.xlsx). For ITS, I used the first 2 plates combination only (1 forward set and 2 reverse sets), which can be extended with a second reverse set to reach 384 plex (we normally go only until 192 plex).
Best regards

NextITS now supports asymmetric barcodes.
Please use the --lima_barcodetype  parameter to specify the barcode type.
The supported options are single, dual_symmetric (default), dual_asymmetric,  and dual (for a mixture of symmetric and asymmetric barcodes).
For dual_asymmetric  and dual types, barcodes should be specified as follows:
>Run01__Sample1
ACTCATCTTCCA...ACTCATCTTCCA
>Run01__Sample2
AGCAATCGGTAT...AGTAATAGGGAT
>Run01__Sample3
AGTCCACTGGTA...GACGGACTGGTG


New Action: VERSION_FROM_LAST_TAG (parses version numbers with regex from last git tag)

+----------------------------------------------------------------------------------------+
|                                 version_from_last_tag                                  |
+----------------------------------------------------------------------------------------+
| Fetchs the latest git tag and parses version info in the form of (anything)0.0.0       |
|                                                                                |
| This action is designed specificlaly for cases where your repo was shallow cloned      |
| It will fetch the last branch tag and try to parse it using a regex.  The default      |
| regex format is ^\D+([\.0-9]*)                                                         |
|                                                                                |
|                                                                                |
| It will look for a sequence of non-digets and then at the first digit it will capture  |
| any of the following characters:    0 1 2 3 4 5 6 7 8 9 .                              |
|                                                                                |
| So for example                                                                         |
|   release-1.2   => 1.2                                                                 |
|   v1.0          => 1.0                                                                 |
|   version1      => 1                                                                   |
|   version 1.2.3 => 1.2.3                                                               |
|                                                                                |
| Created by Jeeftor                                                                     |
+----------------------------------------------------------------------------------------+

This action will run a regex on the last git tag and attempt to parse out a version number.  If you are using release tagging this is a useful function .

If the regex passes it will extract tag info
if there is a regex error it will use the default version string
if it cannot extract tag info it will use the default version string
if it has not tags it will use the default version string

I've collapsed everything to a single commit now.

Hey @jeeftor, thanks for this awesome pull request. I added some comments before it's ready to be merged :+1:

Do you want these changes in a 2nd commit or should I just update the existing one (squash)

Hey, thanks for reviewing my comments. Please update the existing commit, thanks :+1:

So I'm having trouble with the CI process - I may just "re-fork" the repo and start this pull request completely a-new... we'll see...

I re-forked this request init #1115

Cool, thanks :+1:


DATE is in the wrong format for std.datetime.Date.from*

jurily reported this on 2019-07-09T09:15:29Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=20038
CC List

razvan.nitu1305

Description
I wanted to reproduce a Webpack feature of not working on Monday. I feel this should be enough:

```
int main(string[]) {
        import std.datetime;
        static assert(Date.fromSimpleString(__DATE__).dayOfWeek != DayOfWeek.mon);
        return 0;
}
```

Instead there's an error:

```
$ rdmd scratch.d
/data/data/com.termux/files/usr/bin/../include/d/std/datetime/date.d(7766): Error: uncaught CTFE exception core.time.TimeException("Invalid string format: Jul  9 2019"c)
scratch.d(3):        called from here: fromSimpleString("Jul  9 2019")
scratch.d(3):        while evaluating: static assert(cast(int)fromSimpleString("Jul  9 2019").dayOfWeek() != 1)
Failed: ["/data/data/com.termux/files/usr/bin/ldmd2", "-v", "-o-", "scratch.d", "-I."]
```

razvan.nitu1305 commented on 2023-04-18T12:04:49Z
This is not a compiler issue, rather than a phobos one. std.datetime lacks the functionality to transform a compiler provided date into an internal representation.


Add ability to pass users array if file is not specified.

There currently doesnt seem to be the ability to pass users array into the config. I had a file which has a custom format so I decided to parse the user credentials manually from the file and pass them in directly as an array in options. But that did not work. I look into the code for base and found the lines:
this.options = options;
this.checker = checker;

// Loading users from file, if file is set.
this.options.users = [];

if (!checker && options.file) {
  this.loadUsers();
}

I think the problem is that the options.users array is cleared even if the file isn't added as a configuration option. I think it should be made a part of the if block to allow passing in a users array.
Please let me know if this makes sense to you or if anything Im doing is incorrect?

@shees-usman thanks for suggestion, currently htpasswd, htdigest formats are the only ones supported to pass in credentials. In case of custom authentication you can implement any strategy using abstraction layer provided.
Not sure if I want to extend library with additional configuration for specific case.


Issue98 smart contract simplify

Rewrite of smart contract with the following main changes and/or simplifications:

Tie kyc attribute to specific member
Remove usage of member-specific token including redeem/swap between member and dcc coins
Members can mint without supply restrictions
Members can burn any coin held by member
Validate and msg from and to attributes for all transfers for easier transaction aggregation and reporting for settlement
Simplify joining process by making admin do it
Add remove member tx
Remove balance queries

Migrates all states to new models to handle new behavior.

With the breaking schema changes, the code calling this will just update at the same time?

yeah all downstream services impacted will need to be upgraded at same time
will PR service changes for this separately, as well as review all Figure apps impacted

added ability to change the admin in state through execute message


couldn't initialize a Kubernetes cluster

Sealos Version
4.2.0
How to reproduce the bug?
最新版4.2.0搭配labring/kubernetes:v1.24.13 无法部署

What is the expected behavior?
No response
What do you see instead?
No response
Operating environment
- Sealos version:
- Docker version:
- Kubernetes version:
- Operating system:
- Runtime environment:
- Cluster size:
- Additional information:

Additional information
No response

https://github.com/labring-actions/runtime/actions/runs/4818194801/jobs/8580124303 same cluster image is ok .

crictl images
crictl ps -a
journalctl -xeu kubelet

centos https://github.com/labring/sealos/issues/3014


rework rmq_es to work with tests

[Current coverage][cc-pull] is 55.00%

Merging [#27][cc-pull] into [master][cc-base-branch] will decrease coverage by 0.26%

@@             master        #27   diff @@
==========================================
  Files            19         19
  Lines          1594       1598     +4
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits            881        879     -2
- Misses          713        719     +6
  Partials          0          0

Powered by Codecov. Last updated by [7a79596...c49a639][cc-compare]
[cc-base-branch]: https://codecov.io/gh/CyberReboot/vent/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/CyberReboot/vent/compare/7a79596c230aad85a354440c1c3e1ca0f1ed57f5...c49a6399e2585fae3b3600f66d00ad3ce32742f8
[cc-pull]: https://codecov.io/gh/CyberReboot/vent/pull/27?src=pr


feat(tutorial): complete step 3

Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

I don´t know what happens, but in my local the repositories is properly


Allow using EVP_CIPHER_CTX_copy on ChaCha20Poly1305 EVP_CIPHER_CTX

With OpenSSL 3.1.2, if you create an EVP_CIPHER_CTX from a ChaCha20Poly1305, it cannot be copied with EVP_CIPHER_CTX_copy.
It us useful to be able to support creating a "base" context, with only a key, and then coping it and then providing the nonce (and performing the encryption/decryptiong). This pattern works with other ciphers (e.g., AES-SIV) but not ChaCha20Poly1305.

I hadn't noticed this when I filed the bug, but this appears to work fine with OpenSSL 1.1.1v.

Minimal reproducer. Works on 1.1.1, fails on 3:
#include <stdbool.h>

#include <openssl/err.h>
#include <openssl/evp.h>

void openssl_assert(bool b, char *op) {
	if (!b) {
		printf("%s failed\n", op);
		ERR_print_errors_fp(stderr);
		exit(1);
	} else {
		printf("%s succeeded\n", op);
	}
}

const char *KEY = "abcdefghijklmnopqrstuvwxyz123456";

int main() {
	EVP_CIPHER_CTX *base_ctx = EVP_CIPHER_CTX_new();
	openssl_assert(base_ctx != NULL, "base_ctx = EVP_CIPHER_CTX_new");

	int res = EVP_EncryptInit_ex(base_ctx, EVP_chacha20_poly1305(), NULL, (const unsigned char *)KEY, NULL);
	openssl_assert(res == 1, "EVP_EncryptInit_ex");

	EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
	openssl_assert(ctx != NULL, "ctx = EVP_CIPHER_CTX_new");

	res = EVP_CIPHER_CTX_copy(ctx, base_ctx);
	openssl_assert(res == 1, "EVP_CIPHER_CTX_copy");
}

(I originally filed this as a feature request, but now that I've realized it's a regression, I think it's more accurately characterized as a bug.)

This also impacts EVP_aes_128_gcm

Duplicate of #20978


GetAlbumArt doesn't do anything?

Is it just here, or do these functions just not return anything?
bigAlbumPicture.Image = await track.GetAlbumArtAsync(AlbumArtSize.Size640);
smallAlbumPicture.Image = await track.GetAlbumArtAsync(AlbumArtSize.Size160);
How do i get album art from Spotify?

await track.GetAlbumArtAsync(AlbumArtSize.Size160); will get you the track album
Perhaps you want to share some more example code of what you have, since the function returns the album art just fine.
Is everything else working for you ? Like getting the track info ?

Well, i just re-downloaded the source code, ran the Example again.
And it doesn't show album art.. If i go through the debugger the AlbumResource.Uri contains "TODO", not an actual Uri.
I had to change the function to get the AlbumArt for the track:
In Track.cs:
Before:
if (AlbumResource.Uri == null || !AlbumResource.Uri.Contains("spotify:album:") || AlbumResource.Uri.Contains("spotify:album:0000000000000000000000"))
return "";
After:
if (TrackResource.Uri == null || !TrackResource.Uri.Contains("spotify:track:") || TrackResource.Uri.Contains("spotify:track:0000000000000000000000"))
return "";
Before:
raw = wc.DownloadString("http://open.spotify.com/album/" + AlbumResource.Uri.Split(new[] { ":" }, StringSplitOptions.None)[2]);
After:
raw = wc.DownloadString("http://open.spotify.com/track/" + TrackResource.Uri.Split(new[] { ":" }, StringSplitOptions.None)[2]);
Thats all, now it works fine.

Could you specify what version of spotify you have ?
http://open.spotify.com/track/2leURyZTNszWf0NOrbWOW4 doesn't exist when i test (i'm on <IP_ADDRESS>.g5e1cd7b2)

I'm on <IP_ADDRESS>.g5e1cd7b2 as well o_O

Still comes in how it should ...

Strange, i get this.. ofc stops at the first check in GetAlbumArtUrl

Is this a local track? A file on your pc?

I just tested this with spotify:album:50SGucGvMan1kbLqyuaEr6, works fine here.

No, not a local track. Freshly installed Spotify, fresh account.. played a song from "Infected Mushroom"
Strange :P

Most times this is related to some ISP's not being able to contact Spotify's image-CDN.


the ' intergrated Terminal ' outputs unreadable ascii characters

We have written the needed data into your clipboard because it was too large to send. Please paste.
Issue Type: Bug

installed VS code

install Microsoft Python extensions

launched VS code and created file " simple.py" ------> print("simple output")

saved file

Ctrl  & F5  to run

' intergated Terminal ' outputs random ascii characters

system : Raspberry Pi - Buster 10
have also install VS code on a brand new image without any additional programs or applications installed with identical results - unreadable text in the ' integrated Terminal ' window. Shown below:

VS Code version: Code 1.52.1 (ea3859d4ba2f3e577a159bc91e3074c5d85c0523, 2020-12-16T16:30:35.090Z)
OS version: Linux arm 5.4.83-v7+

System Info

Item
Value

CPUs
ARMv7 Processor rev 4 (v7l) (4 x 1400)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_renderer: enabled_onvideo_decode: unavailable_offvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
3, 1, 1

Memory (System)
0.90GB (0.10GB free)

Process Argv
--no-sandbox --unity-launch --crash-reporter-id f39243d2-8505-4c31-acbe-1d7d12154df3

Screen Reader
no

VM
0%

DESKTOP_SESSION
LXDE-pi

XDG_CURRENT_DESKTOP
LXDE

XDG_SESSION_DESKTOP
lightdm-xsession

XDG_SESSION_TYPE
x11

Extensions (18)

Extension
Author (truncated)
Version

doxdocgen
csc
1.1.0

vscode-pull-request-github
Git
0.22.0

better-cpp-syntax
jef
1.15.5

python
ms-
2021.1.502429796

vscode-pylance
ms-
2021.1.3

jupyter
ms-
2020.12.414227025

remote-containers
ms-
0.155.1

remote-ssh
ms-
0.63.0

remote-ssh-edit
ms-
0.63.0

remote-wsl
ms-
0.52.0

cmake-tools
ms-
1.5.3

cpptools
ms-
1.2.0-insiders3

cpptools-extension-pack
ms-
1.0.0

vsliveshare
ms-
1.0.3577

vsliveshare-audio
ms-
0.1.91

vsonline
ms-
1.0.3076

python
tht
0.2.3

cmake
twx
0.0.17

(1 theme extensions excluded)

A/B Experiments
vsliv368:30146709
vsreu685:30147344
openlogontheside:30221877
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492cf:30211402
wsl2promptcf:30224613
vstry244cf:30250196
pythonvsdeb440:30248342
unusedprompt:30224610
folderexplorercf:30224615
openfilemenu:30224647
pythonvsded773:30248341
pythonvspyt600cf:30251589

/extPython

i also see the  unreadable characters in the integrated Terminal when using C/C++

hey @meganrogge, this issue is not Python specific, we don't control what is written on the terminal. It also happens when using the C/C++ extension.
Do you mind reopening it?


Don't require image support on GPU devices

There is no mention of this rule that I could find in the
OpenCL 1.2 specification. cl12_trunk was the only branch
with this behaviour.
Signed-off-by: Kévin Petit<EMAIL_ADDRESS>

Thanks for the review.


[SMALLFIX]Supply the variable name to Preconditions.checkNotNull

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17892/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17893/
Test PASSed.


Google.Protobuf.InvalidProtocolBufferException in GrpcServiceSample

Expected Behaviour
Locally launching the sample GrpcServiceSample with the dapr run --app-id grpcsample --app-port 5050 --app-protocol grpc --dapr-http-port 5051 -- dotnet run I should be able to reach the service via any Dapr sidecar.
For example:
POST http://localhost:5051/v1.0/invoke/grpcsample/method/deposit
Content-Type: application/json

{ "id": "17", "amount": 12 }

The invocation should reach the service method and process the req.
Actual Behaviour
The request v1.0/invoke/grpcsample/method/deposit reaches the method but I get a Google.Protobuf.InvalidProtocolBufferException: Full type name for Transaction is Transaction; Any message's type url exception_ on the line var transaction = request.Data.Unpack<GrpcServiceSample.Generated.Transaction>();.
The detailed exception is the following:
Request starting HTTP/2 POST http://<IP_ADDRESS>:5050/dapr.proto.runtime.v1.AppCallback/OnInvoke application/grpc
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'gRPC - /dapr.proto.runtime.v1.AppCallback/OnInvoke'
fail: Grpc.AspNetCore.Server.ServerCallHandler[6]
Error when executing service method 'OnInvoke'.
Google.Protobuf.InvalidProtocolBufferException: Full type name for Transaction is Transaction; Any message's type url is
at Google.Protobuf.WellKnownTypes.Any.Unpack[T]()
at GrpcServiceSample.BankingService.OnInvoke(InvokeRequest request, ServerCallContext context) in C:\Repos\dotnet-sdk\examples\AspNetCore\GrpcServiceSample\Services\BankingService.cs:line 63
at Grpc.Shared.Server.UnaryServerMethodInvoker`3.AwaitInvoker(Task`1 invokerTask, GrpcActivatorHandle`1 serviceHandle)
at Grpc.Shared.Server.UnaryServerMethodInvoker`3.AwaitInvoker(Task`1 invokerTask, GrpcActivatorHandle`1 serviceHandle)
at Grpc.AspNetCore.Server.Internal.CallHandlers.UnaryServerCallHandler`3.HandleCallAsyncCore(HttpContext httpContext, HttpContextServerCallContext serverCallContext)
at Grpc.AspNetCore.Server.Internal.CallHandlers.ServerCallHandlerBase`3.<HandleCallAsync>g__AwaitHandleCall|8_0(HttpContextServerCallContext serverCallContext, Method`2 method, Task handleCall)
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'gRPC - /dapr.proto.runtime.v1.AppCallback/OnInvoke'

The request.Data is { "@type": "", "@value": "ew0KICAgICJpZCI6ICIxNyIsDQogICAgImFtb3VudCI6IDMNCn0=" } with the base64 encoded representation of the JSON payload above.
Should I be able to reach the Dapr service method with a payload regardless of the way Dapr interact with the service, gRPC in this case? If expectation is correct, any idea on what could be going wrong?

Hi @dabedin - there's nothing in Dapr that converts JSON requests to Protobuf.

Should I be able to reach the Dapr service method with a payload regardless of the way Dapr interact with the service, gRPC in this case?

You are reaching the Dapr service method. You can see that because the call stack includes GrpcServiceSample.BankingService.OnInvoke
The code in the GrpcServerSample expects a Protobuf message which is why this is failing. Please let me know if you think I'm missing something.

My Q was not well written:

Should I be able to reach the Dapr service method with a payload regardless of the way Dapr interact with the service, gRPC in this case?

Yes, I get the exception on the line var transaction = request.Data.Unpack<GrpcServiceSample.Generated.Transaction>();  at the reached method.
Apparently I misunderstood the following cases, mutuating from  #https://github.com/dapr/dapr/issues/2342:

case 1, caller app: http -> Dapr sidecar -- always grpc --> Dapr sidecar -> http -> called app
case 4, caller app: http -> Dapr sidecar -- always grpc --> Dapr sidecar -> grpc -> called app

While both 1 and 4 are supported, in 4 the caller should be aware it does need to pass a protobuf payload, right?

While both 1 and 4 are supported, in 4 the caller should be aware it does need to pass a protobuf payload, right?

Yes, exactly. There are no restrictions inherent to Dapr regarding the format of an invoke method payload. The client and server need to agree on the format that's in use.
To explain this a bit:

Yes, I get the exception on the line var transaction = request.Data.Unpack<GrpcServiceSample.Generated.Transaction>(); at the reached method.

var transaction = request.Data.Unpack<GrpcServiceSample.Generated.Transaction>();

This line of code uses a Protobuf type (Transaction) and the Protobuf .Unpack() method to read the payload in the Protobuf binary format.
When you're receiving an invocation request as a Grpc server in Dapr, .Data is a property of type Any - this could contain a Protobuf message (example above), this could contain UTF-8 encoded JSON text, or it could contain any other format.
Its your responsibility to read the content according to what you expect.
If all of this sounds messy and confusing, I'd really suggest using HTTP as the protocol, JSON as the format and letting MVC model binding handle serialization.

Agree, I do prefer HTTP + JSON.
The corresponding client for the gRCP + Protobuf service example GrpcServiceSample  is the InvokeServiceGrpcExample, correct?

yes, that should be right

Thanks for clarifying the topic!


Steemit Inc. specifies domain registrar for steemconnect.com

To close this issue, leave a note here including information about the domain registrar and where the code for the registration change can be found.

the new registrar will be google domains - the account used is<EMAIL_ADDRESS>(outside of our gsuite), and the details are shared with our admin accounts