keyDown does not work with IE9

With IE9, keyDown() does not work. I am trying to select multiple items, holding the command key. With Chrome and Firefox everything works fine, but the internet explorer first selects the first item and then the other one (= the cmd key isn't hold down)
browser.actions()
    .keyDown(protractor.Key.COMMAND)
    .click(element(by.id(...)))
    .click(element(by.id(...)))
    .keyUp(protractor.Key.COMMAND)
.perform();

Tell me if I have overlooked a solution for this problem. But in the hours I googled this problem I neither found many others having the same issue nor a good solution/workaround for it.
Best regards
Miro

This sounds more like a Selenium issue than one with Protractor core. I would suggest asking a StackOverflow question or opening an issue at the Selenium project.

Thank you for your suggestion, I took your advice and created an issue in the Selenium project.
They looked at it, but weren't able to reproduce it. Maybe the bug is after all not on their side?  Because they used a different setup (C# and NUnit), with which it worked.

I'm going to close this because we only support the latest two versions of browsers, which means IE 10 and IE 11. See http://www.protractortest.org/#/browser-support


Skipping prompt steps leads to later prompts not waiting for input

Version
4.10.3
Describe the bug
When working with nested dialogs I have found that if a dialog that is branched off from the main dialog and uses waterfall steps has a step skipped, in my case a prompt step(file/choice), then the steps that follow do not wait for their respective inputs from the user.
To Reproduce
In my project I have a main Dialog that is registered with my DI on startup
// My second Dialog
services.AddSingleton<SecondDialog>();
// The Dialog that will be run by the bot.
services.AddSingleton<MainDialog>();
// Create the bot as a transient. In this case the ASP Controller is expecting an IBot.
services.AddSingleton<IBot, MyBot<MainDialog>>();

and sent to my MyBot<T> : ActivityHandler where T : Dialog
How I start my main Dialog from MyBot(With Parameters)
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
   var messageObj = turnContext.Activity;
   if (messageObj.Text.ToUpper().Trim() == "Run Second Dialog".ToUpper())
	{
		var dialogSet = new DialogSet(DialogStateProperty);
		dialogSet.Add(Dialog);

		var dialogContext = await dialogSet.CreateContextAsync(turnContext, cancellationToken);
		await dialogContext.BeginDialogAsync(Dialog.Id, new SecondDlgRunInfo
		{
			a = new List<Guid>(),
			b = new List<string>(),
			c = new List<Guid>()
		}, cancellationToken);

		await ConversationState.SaveChangesAsync(dialogContext.Context, false, cancellationToken);
	}
}

My MainDialog
public class MainDialog : ComponentDialog
{
    private readonly UserState _userState;
    private readonly IStatePropertyAccessor<UserProfile> _userProfileAccessor;

    public MainDialog(UserState userState, AuthenticationDialog authDlg, SecondDialog secondDlg)
        : base(nameof(MainDialog))
    {
        _userState = userState;
        _userProfileAccessor = userState.CreateProperty<UserProfile>("UserProfile");
        AddDialog(authDlg);
        AddDialog(secondDlg);

        AddDialog(new WaterfallDialog("MainWaterFallDialog", new WaterfallStep[]
        {
            InitialStepAsync,
            FinalStepAsync,
        }));

        InitialDialogId = "MainWaterFallDialog";
    }

    private async Task<DialogTurnResult> InitialStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        var userProfile = await _userProfileAccessor.GetAsync(stepContext.Context, () => new UserProfile(), cancellationToken);

        if (!userProfile.Valid)
        {
            return await stepContext.BeginDialogAsync(nameof(AuthenticationDialog), userProfile, cancellationToken);
        }
        else if (stepContext.Options is SecondDlgRunInfo info)
        {
            info.UserId = userProfile.UserId;
            return await stepContext.BeginDialogAsync(nameof(SecondDialog), info, cancellationToken); ;
        }
		//More Logic
    }

    private async Task<DialogTurnResult> FinalStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        var userInfo = (UserProfile)stepContext.Result;

        if (userInfo != null)
        {
            var accessor = _userState.CreateProperty<UserProfile>(nameof(UserProfile));
            await accessor.SetAsync(stepContext.Context, userInfo, cancellationToken);
        }

        return await stepContext.EndDialogAsync(null, cancellationToken);
    }
}

My Second Dialog where the issue happens
public class SecondDialog : ComponentDialog
{
    private const string DlgInfo = "value-dlgInfo";

    public SecondDialog() :
        base(nameof(SecondDialog))
    {
        AddDialog(new WaterfallDialog("AutomationRunWaterfallDialog", new WaterfallStep[]
        {
            UserEnabledStepAsync,
            AskChoiceStep1Async,
            Choice1StepAsync,
            AskChoice2StepAsync,
            Choice2StepAsync,
            FileStepAsync,
            FileChoiceStepAsync,
            ConfirmStepAsync,
            ConfirmChoiceStepAsync
        }));

        AddDialog(new ChoicePrompt(nameof(ChoicePrompt)));
        AddDialog(new AttachmentPrompt(nameof(AttachmentPrompt)));

        InitialDialogId = "SecondDlgWaterfallDialog";
    }

    private async Task<DialogTurnResult> UserEnabledStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        //Get User data
        if (user.Disabled)
        {
            //User Diabled Prompt
            string message = @"Your account has been Diabled or Expired.
			Please contact your administrator to rectify this.";
            await CardResponses.SendUnauthorizedCardAsync(stepContext.Context, cancellationToken, message);
            return await stepContext.EndDialogAsync(cancellationToken: cancellationToken);
        }
        return await stepContext.NextAsync(cancellationToken: cancellationToken);
    }

    private async Task<DialogTurnResult> AskChoiceStep1Async(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        bool haschoice = false;
		if(haschoice)
		{
			//Waits fine
			return await stepContext.PromptAsync(nameof(ChoicePrompt), new PromptOptions
			{
				Choices = ChoiceFactory.ToChoices(choice),
				Prompt = ChoicesToCard(choice),
				Style = ListStyle.None, // We're displaying the choices ourselves so we don't want ChoicePrompt to do it for us
			});
		}
		else
		{
			////////ISSUE////////
			//After this the Choice2StepAsync does not wait for input from AskChoice2StepAsync
			return await stepContext.NextAsync(new FoundChoice { Value = "###"}, cancellationToken: cancellationToken);
		}
    }

    private async Task<DialogTurnResult> Choice1StepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        await stepContext.Context.SendActivityAsync(new Activity { Type = ActivityTypes.Typing }, cancellationToken);
        var response = (FoundChoice)stepContext.Result;
        //Do some parsing of result
        if (valid)
        {
            input.val = response.Value;
            return await stepContext.NextAsync(cancellationToken: cancellationToken);
        }
        else if (response.Value.ToUpper() == "Cancel".ToUpper())
        {
            await CardResponses.SendCardNotification(stepContext.Context, cancellationToken, "Run Automation Cancelled", "This conversation will now end...");
            await CardResponses.SendHelpCardAsync(stepContext.Context, cancellationToken);
	    return await stepContext.EndDialogAsync(cancellationToken: cancellationToken);
        }

    }

    private async Task<DialogTurnResult> AskChoice2StepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        return await stepContext.PromptAsync(nameof(ChoicePrompt), new PromptOptions
        {
            Choices = ChoiceFactory.ToChoices(secondChoices),
            Prompt = CreateHeroCardActivity(secondChoices),
            Style = ListStyle.None, // We're displaying the choices ourselves so we don't want ChoicePrompt to do it for us
        });
    }

    private async Task<DialogTurnResult> Choice2StepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        // do some validation and end the dialog if failed else next step
		return await stepContext.NextAsync("", cancellationToken: cancellationToken);
    }

    private async Task<DialogTurnResult> FileStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        bool HasFileUpload = false;

        if (HasFileUpload)
        {
            return await stepContext.PromptAsync(nameof(AttachmentPrompt),
            new PromptOptions
            {
                Prompt = MessageFactory.Text($"Please upload the required files?"),
            }, cancellationToken: cancellationToken);
        }
		////ISSUE////////
		//After this the ConfirmChoiceStepAsync does not wait for input from ConfirmStepAsync
        return await stepContext.NextAsync(new List<Attachment>(),cancellationToken: cancellationToken);
    }

    private async Task<DialogTurnResult> FileChoiceStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        await stepContext.Context.SendActivityAsync(new Activity { Type = ActivityTypes.Typing }, cancellationToken);
        List<Attachment> attachments = (List<Attachment>)stepContext.Result;
        if (attachments.Count())
        {
            string message = @"You did not supply a file, this conversation will now end...";
            await CardResponses.SendCardNotification(stepContext.Context, cancellationToken, "No Files", message);
            return await stepContext.EndDialogAsync(cancellationToken: cancellationToken);
        }
        else
        {
            //download file

            return await stepContext.NextAsync("", cancellationToken: cancellationToken);
        }
    }

    private async Task<DialogTurnResult> ConfirmStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        var card = new HeroCard
        {
            Title = "Confirmation",
            Text = "Everything looks good, do you want to continue?",
            Buttons = new List<CardAction>
                {
                    new CardAction(ActionTypes.PostBack, "Yes", null, "Yes", "Yes", "Yes"),
                    new CardAction(ActionTypes.PostBack, "No", null, "No", "No", "No"),
                }
        };

        return await stepContext.PromptAsync(nameof(ChoicePrompt), new PromptOptions
        {
            Choices = ChoiceFactory.ToChoices(new List<string> { "Yes", "No" }),
            Prompt = MessageFactory.Attachment(card.ToAttachment()) as Activity,
            Style = ListStyle.None, // We're displaying the choices ourselves so we don't want ChoicePrompt to do it for us
        });
    }

    private async Task<DialogTurnResult> ConfirmChoiceStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
		var response = (FoundChoice)stepContext.Result;
        await stepContext.Context.SendActivityAsync(new Activity { Type = ActivityTypes.Typing }, cancellationToken);

        //Finish dialog
        return await stepContext.EndDialogAsync(cancellationToken: cancellationToken);
    }
}

Expected behavior
I would expect that if I go to a next step, and still supply a valid result type that the following prompt would all wait as expected.
Screenshots
None
Additional context
I'm using this in a Service Fabric Stateless Service

Hello @Deon-v
I want to mention that you should always make sure you indent your code with spaces and not tabs when you paste it into GitHub. You may or may not have noticed that GitHub makes tabs 8 spaces wide instead of 4. I can see that your code is inconsistently indented with a mix of both spaces and tabs, which makes it hard to read.
I also want to mention that your code doesn't always make sense and isn't always valid C#. The code that you say runs the main dialog seems to be triggered by the command "Run Second Dialog," and messageObj appears to be an undefined variable. I can assume that the variable is populated by the incoming activity in the turn context, but what's more important is that you later have this invalid code:
return await stepContext.NextAsync(var f = new FoundChoice { Value = "###"}, cancellationToken: cancellationToken);

If that is indeed the relevant code that is causing your problem then I think it's important for me to see the actual code. If this isn't the actual code you're running then it will be hard to help you.
I'm also having a hard time understanding what the problem is that you're experiencing. Could you provide screenshots or some kind of transcript of a faulty conversation?

Hi @v-kydela
Sorry for the messy code I was not aware of the indentation issue.
Again sorry for the mistakes in code, i did this after a 14hour day.
I will create a project and try to reproduce the issue and upload it on here?

@v-kydela I have re-produced the issue here to mirror my project as closely as possible without all the external/internal api calls.
There are a few dialogs in here, but the main one to look at is DoThingsDialog.
To reproduce follow the dummy authdialog by sending the bot a message.
Once authenticated send "help" to the bot and you will have a card presented with options, choose the "Do Things" option.
Follow the dialog prompts, when the prompt asks if you want to upload a file, choose no, from there the file prompts are skipped and a confirmation prompt is presented, if you choose to upload a file, the confirmation prompt works fine, if you choose to not upload a file then the final step of the DoThingsDialog does not actually wait for you to confirm or decline with the presented confirmation.
SkipIssue.zip

Thanks for the code, @Deon-v. I was able to run your code and reproduce the problem. The problem is not in your dialogs, but in your MyBot class:
var results = await dialogContext.ContinueDialogAsync(cancellationToken);

switch (results.Status)
{
    case DialogTurnStatus.Waiting:
        {
            await Dialog.RunAsync(turnContext, DialogStateProperty, cancellationToken);

You are going through two prompts in one turn because you are continuing your dialog twice in one turn. When you call ContinueDialogAsync, a prompt receives the incoming activity and the waterfall continues to the next steps where another prompt is added to the stack. When this happens, the dialog turn status will be Waiting because the prompt needs user input in order to proceed. You then check the status and see that it's waiting and call RunAsync which calls ContinueDialogAsync internally, thus making the prompt think it's a new turn so it uses the same incoming activity that was used to continue the previous prompt. The only reason you don't see this happen when you activate your attachment prompt is because when the attachment prompt continues the incoming activity fails validation because it has no attachment. A retry prompt is only shown when the bot had not sent any other messages on that turn, but if you manually sent an "upload failed" message in a validator function for the prompt then I bet you'd see it.
RunAsync was introduced to make a lot of your code unnecessary. It creates a dialog context, continues the active dialog, and checks the results for you so that you don't have to do that. It doesn't make any sense to use RunAsync while also doing all the things RunAsync does outside of RunAsync.
You may find it easier to build bots using adaptive dialogs and Bot Framework Composer.
Does this resolve your issue?

Thanks @v-kydela
You can close the issue.


exprecss.css.map is missing

exprecss.com is not working due to exprecss.css.map file is missing. can someone fix it ?

Exprecss.css.map is an auto-generated file used in development and debugging. It is not used in production.


Readme: invite community to contribute

Context
Describe / explain why we should do this: motivations, context or other info. Keep it brief and simple - PM
User flow
Describe the user flow using user stories so the end result is super clear - PM
How to
List the step-by-step to get it do if needed - PM
Technical details
Give the technical insights so anyone in the team can tackle the tasks - Dev
QA testing
Does this task require some QA tests?
If yes, explain how to validate it

@Thykof add context pls

I close this because I think it's outdated : https://github.com/massalabs/massa-standards/blob/main/CONTRIBUTING.md


WIP: Add tests for layer map

This adds a basic unit test, in pageserver/src/tenant/layer_map_test.rs, and a micro-benchmark, in pageserver/benches/layer_map.rs.
The test data was extracted from our pgbench benchmark project on the captest environment, the one we use for the 'neon-captest-reuse' test.
I'm not sure about how the code is organized. I had to expose a few modules, changing them from "mod" to "pub mod", so that I could use them in the benchmark. Is there a better way.
TODOs:

the test data is duplicated between the unit tests and the benchmark
add tests for other operations than 'search'
add tests for different input keys and LSNs

With the old implementation, before commit f3073a4db93e2d4e39e2bbef03ed6b742ef3afa0, I got these results from this micro-benchmark: (on my laptop)
search                  time:   [93.272 µs 94.682 µs 96.358 µs]

And with the new R-tree implementation:
search                  time:   [62.367 µs 63.178 µs 64.053 µs]

I'm a little disappointed that the R-tree implementation isn't faster than that.  For comparison, here's the results for an incorrect, dummy implementation that just always returns the first layer from the array:
search                  time:   [122.04 ns 123.02 ns 124.05 ns]

So that's the theoretical minimum, if the search function didn't need to do any work other than return the result (note the diffence in the unit). I'm a little disappointed the R-tree is only a little faster than the linear search. Not sure how significant that 60-90 µs is compared to all the other work that page reconstruction does, though; maybe that's good enough already. And maybe the R-tree performs better with different inputs. Still, somewhat disappointing.

Next steps:

Add benchmarks for the other operations than 'search'. The immediate problem we have is with the image_coverage function. It's not very latency-critical, as it's only called by background operations. But we seem to have some nasty O(n^2) behaviour there, because on the captest environment, the CPUs are running 100% busy just running that code.
Improve or rewrite layer_map.rs, to fix the image_coverage performance problem. Ideally, improving 'search' too.

I also created a google doc with more explanations of the layer_map operations: https://docs.google.com/document/d/1typEoK8eYIfOykjkkYFdu39ozYF3Zoaqn_a6kvNPI-Y/edit. I hope that helps. It would be nice to copy that information into comments in the code itself, but the diagrams are difficult.
I don't plan to do any further work on this myself. It's up for grabs. If you pick this up, please assign to yourself.

New work is active at #2979, #2515, #2979, #2998


Push state

Branched off of #50
Relies on https://github.com/purescript-web/purescript-dom/pull/139
Fixes #29

This is ready for review.

This needs doc comments.

Added doc comments
Added path field to LocationState.

@chexxor I've added a not about why I'm using a mutation observer.

Use Data.Map
Remove Basename and Path newtypes
Fix path behavior since we don't have Basename.

@safareli I've addressed your comments.

I've actually found a bug! Hashchange is async and only notifies you of the last hash for a given tick. So if you do:
window.onhashchange = () => console.log(location.hash)
location.hash = "foo"
location.hash = "bar"
location.hash = "baz"

Then it will only log "#baz". I think we should do the same for route changes, which also simplified the path implementation since I can completely rely on the browsers handling rather than trying to piece together my own crippled version.

I've update the notification behavior which has drastically simplified the implementation :D

Sorry I accidentally pushed here, at first
Here is small pr which might make schedule part a bit more clearer
https://github.com/natefaubion/purescript-routing/pull/1

After this, using pushState for routing will be optional, right? Or will it always be used for the routing?

Yeah, you choose between importing Routing.Hash or Routing.PushState as necessary.

Can I also use both? Hash-url routing with pushState?

Not sure what you mean exactly, but I don't really see why not.

I mean so that the urls are hash-based but it also pushes a history entry when the url changes.

That's what happens when the hash changes anyway :smile:

Ok, and is it possible to use urls without hash, because google deprecated hash-based urls:
https://developers.google.com/webmasters/ajax-crawling/docs/getting-started
Most of the big sites who used hash-based urls in the past moved away from it (e.g. Twitter) to allow google to index their content.
The advantage with normal urls is that when a crawler sends a request to the server for the url, the server gets a request that's not to / (because the hash segment wouldn't be transmitted) but the full path, and it can detect the crawler by User-Agent header and serve the appropriate meta tags and opengraph tags.
Here is this described in detail:
https://www.michaelbromley.co.uk/blog/enable-rich-social-sharing-in-your-angularjs-app/
https://rck.ms/angular-handlebars-open-graph-facebook-share/
So when a non-crawler (normal user) requests the site, the server will deliver the full content, but the crawler gets a page with only the relevant meta tags that it cares about.
This only works when using non-hash URLs for client side routing, e.g. previously I was using Polymer with page.js for client-side routing and it allowed switching from hash-based URLs to normal URLs by using the setting hashbang: false.
Is this also possible with this lib?

@Boscop That's what this PR did (expose an interface for pushState routing).

@natefaubion But I mean the urls for client-side routing are still always hash-based, right?
So like /#!/route (or /#/route, instead of /route?
Is it possible to use urls without hash, like /route?

🤯... that's what pushState routing is for

With page.js even when I set hashbang: true it still added history entries that allowed navigating back and forth...
So I thought whether or not pushState is used is orthogonal to what format the url has.
Is that wrong?

Yes, as I said before - if the hash part of a URL changes it creates a browser history entry regardless of any special wiring. It's how anchor links work in entirely static documents: you can click between them and then use the browser back button to return to the previous anchor.
pushState is for creating new history entries by changing the path part of the URL without leaving the page.

Ah ok, I see. Thanks for explaining it :)


Add unespar.txt

@matheusmazeto First stage of verification passed, official domain is unespar.edu.br as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@matheusmazeto Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Fix typo in tests tutorial

Minor fix to the docs for adding tests.
Specifying flags to make test is done with 'ARGS=' not 'TEST_ARGS='.
Verified using make test ARGS="-VV" as working on an LLNL code.

Thanks @aaroncblack ! Sorry for the momentary confusion from our docs!


ARROW-11725: [Rust][DataFusion] Make use of the new divide_scalar kernel in arrow

This is a small PR to make DataFusion use the just-merged divide_scalar arrow kernel (#9454).
Performance-wise:

on the arrow side, this specialized kernel is ~40-50% faster than the standard divide, mostly due to not having to check for divide-by-zero on every row;
on the datafusion side, it can now skip the scalar.to_array_of_size(num_rows) allocation, which should be a decent win for operations on large arrays.

The eventual goal is to have op_scalar variants for every arithmetic operation — divide will show the biggest performance gains but all variants should save DataFusion a (possibly expensive) allocation.

I plan to merge this once the CI goes green

CI failure seems unrelated. Note that the first commit already passed CI, and this second commit only changes a few error strings, so it should be safe to merge.

The integration failure looks like https://issues.apache.org/jira/browse/ARROW-11717

Merged. 🎉  Thanks @abreis


(hacky) update embedded-io to 0.5

I realize there is already discussion and plans to address this in #39 but I had the urge to update my hobby embassy project now: ;)
I'm still posting it, in case someone finds it useful
I mostly propagate WriteAllError or collapse it down to embedded_io::ErrorKind when that's not an option.

No objections, there's very little point in waiting for future changes to happen. We will be able to revert this in whole or in parts if the WriteAll stuff gets removed. Worst case, the 0.7 version of reqwless will be short lived.

Released as 0.7.0


Split email layouts into HTML and Plain

Done.  Will require future changes to rendering to make it less verbose.


document must be declared to function in Deno

https://github.com/Sharpiro/wabt.js/compare/3c13807f1008e4451544a90fc108e8307cc5fc80...Sharpiro:a71274e6ffbd38b58a0b6a2ea84c80336bc9c4a6
The above declaration fordocument was necessary to remove document is not defined error when running with deno
basically there is a property access on document that only seems to be an issue in deno

This looks like a change to be proposed upstream to WABT itself (the wabt.js buildbot reuses its buildstep for JS), that might as well be related to how the file becomes compiled by Emscripten.

Closing this issue as it seems this must be handled upstream :)


Evaluate Bob's Mods

Bob's (plus Angel's ores, and maybe some other mods) significantly expands the recipe graph, and poses a significantly greater challenge for modeling than the vanilla game does. Investigate how far this calculator can get when the Bob's data is thrown at it, and how much work it would take to make it a practical tool.

I would love you forever so much if you added bob's recipes in here. I personally don't do any of angels stuff, but that would indeed make it even more complicated.
Bob's I feel is still pretty straightforward, though there is often times multiple ways to get to the same item which would be tough to decide. Though it could be like the machine choosing now. If you're going to make brass, you'd just have to select which of the 8 different furnaces that's possible in, haha.

Bob's mods is mostly extra complexity in scale. There's another major recipe group (the water/salt water electrolysis, as well as air filtering that collectively produce hydrogen, nitrogen, oxygen, and chlorine), which could end up agglomerated onto the oil recipe group (I don't recall the entire situation with sulfur). Other than that, it's pretty much an explosion of recipes (mostly 1 recipe for 1 item), and an explosion of different assembling machines.
Angel's mods on top of Bob's is a different story. The subset of the recipe matrix involving items with multiple recipes is no longer block diagonal in any meaningful way. It's also large--about 228 items by 730 recipes. Even reducing it to a block triangular form still gives the largest block as 132 items with 200-ish recipes (blocks here are those recipes that all produce the same items), consisting of all of refining, most of petrochem, some bioprocessing, and some smelting. This ignores barreling.
I've found that Angel's also depends on the cost function a lot more. Minimizing power consumption turns out to produce better results than minimizing resource use, since you can milk water into everything with pretty high gains, at the cost of craptons of machines.

I've been analyzing the Bob's recipe graph, in the interests of improving the algorithm that extracts the subgraphs for which linear programs are necessary. (The algorithm currently in the calculator is a hack that works for the vanilla graph but is inadequate for the general case.) My as-yet-incomplete result for the Bob's graph (minus Angel's) looks like this:

As I improve the algorithm, it will likely end up pulling more and more of the graph into that one huge subgraph.
And that's probably fine. I recently conducted an experiment in which I had the calculator perform all of its calculations using one huge linear program covering the whole vanilla recipe graph. This took calculation time from about 30 ms to over a second. While that is considerably slower, it means that, even if I have to throw half the Bob's recipe graph into a single massive matrix, it shouldn't render the calculator utterly unusable.
As to the cost function, something will have to change there. With vanilla, there are very few alternative ways of making a given item. The only truly substantial alternative use of resources is the choice between ordinary oil processing, and coal liquefaction. This is not true of Bob's, which offers quite a number of alternative ways of making a number of different items.
The solution I'm leaning towards is adding a UI for allowing the user to adjust the list of resource priorities, e.g. to let the user choose between prioritizing lead over nickel or the reverse (or to treat them equally). The alternative is to provide an explicit option for each alternative recipe, e.g. to choose between making sulfuric acid from sulfur, vs. making it from sulfur dioxide. (This is complicated to describe, but my hope is that the UI will be intuitive enough that its function will be clear to see.)
I have yet to start looking at the Angel's-plus-Bob's recipe graph, but my hope is that, by making the code work for Bob's, it should work for any recipe graph I will throw at it after that.

For Angel's, I spent some time working out how to shrink the matrix down before trying a better solver than scipy's simplex parser (which I now know, after the fact, to be absolute crap). When I went with the better solver, it happily ate up the the full recipe matrix (sans unbarrelling recipes, since those muck up the heuristics to sort the output), taking about 100ms even for the "do every science pack" recipe. As a bonus, the solver I'm using will also output within what bounds the cost function can be adjusted to give the same result. For the simple simplicity of the rest of the application, I gave up trying to generate smaller matrices, since 100ms isn't slow enough to matter (I have the advantage of not being limited to JS for implementation), and the most obvious compression method is already a fairly standard presolve heuristic.

Personally I don't necessarily want a recipe graph but rather a simple 4 step solver.

Use script to rip game recipes
Upload script to solver
Select recipes (maybe create a dummy recipe that includes 1 of each of the sciences
Profit???
PS. I've been looking into this more recently because I've been modifying the Bobs Angels science recipes and I've wanted a way to calculate the total resource costs so that I can have an understanding of the balance of each of the different tiers of resources. I started working on a excel spreadsheet that basically uses a matrix to solve for 1 of each science but found it a bit impractical with almost 500 recipes to sort through. I've used Helmod to the best of its ability but things like Silicon Ingot which takes 6 Ingots + Silane Gas and outputs 24 Silicon Ingot just messes with Helmod. And don't get me started on the GUI and the fact that once Helmod reaches a certain point with the number of recipes its handling it decides to straight up just rearrange everything however which way it wants.

While working on seablock support I made my own export process that's pretty similar

run a factorio mod that exports game data as json to their factorio script-output directory
process that file with a python script to make the sprite sheet
edit settings.js to add a reference to the new data file

I've got it working pretty reliably, and was planning on putting up a PR once I verify that the data output is similar enough. Let me know if I shouldn't.
I also have a script that reads a savegame and downloads all relevant mods. I was thinking of turning that into a website that allows users to upload their savegame then be redirected to a version of the calculator specifically for that save's combination of mods. If that sounds good, I can link the repo when its up.
All this is a long winded way of saying that I really like this issues gets a big 👍 from me. I'd also like to see more of an itemized of known issues if you have one.

@KirkMcDonald what are the current issues that you know of preventing this calculator from being a practical tool when using bobs mods?
I've implemented a proof-of-concept solution for taking a factorio save and generating an instanced calculator from it. I've noticed a number of issues, some I can probably fix easily:

Item/Recipe names don't match their ingame counterparts #92
display() takes much longer (~4600ms) with 3400ms of that being recipeTable.displaySolution (for advanced circuits)
the factory for lithia water is missing in the visualize tab

Some I probably cannot fix easily:

Calculation is a lot slower. Comparing ~16ms vanilla to ~800ms bobs for advanced circuits
the raw wood recipe raises an uncaught exception. Maybe due to the circular nature of the recipe?
and others I'm sure

But before I go too far far down this rabbit hole, is help something you want on this issue? And if so, what can we do to help?

The primary issue, which I recently had a breakthrough with, is replacing the algorithm that extracts the subgraphs for which a simple graph traversal cannot produce a solution; or, in other words, replacing essentially the entirety of subgraphs.js. It is this code which determines which recipes make up the matrices to which the simplex method may be applied.
The current version of that file is, as I've mentioned before, a hack that works in vanilla, but which will fail utterly in the face of more complex recipe graphs. Much of the calculator-related work I've been doing in the last several months has been analyzing the Bob's recipe graph in order to design an algorithm that works in the general case.
Parts of this problem are obvious. For example, it should probably have an explicit cycle detector. Other parts are more subtle: It is possible for one of these subgraphs to depend on another (e.g. the uranium matrix depends on the oil matrix, via the sulfuric acid used to mine uranium ore), but if that relationship is too complex, the graphs must be merged (e.g. solid fuel must be modeled as part of the oil matrix).
Defining what "too complex" means, algorithmically, is an interesting problem, and one which has been taking up a lot of my calculator-development time. In my notes, I have taken to referring to relationships like the solid fuel-to-oil relationship as "multivariate," meaning that you cannot reduce solid fuel to its raw resource costs in isolation. The most efficient overall solution will depend on any other consumers of oil products that happen to exist, and thus you must solve for solid fuel at the same time as those oil products.
I have a function, now, which can identify that sort of relationship, while distinguishing it from the uranium-sulfuric acid-oil sort of relationship, which has exactly one solution, and thus the two matrices may be solved separately. Expect an update to the code in the next few days.
I'll add that the algorithm I've come up with may, in certain edge-cases, combine matricies for which there is, strictly speaking, no need to do so. However, the results will still be "correct," in that it will still permit the calculator to work.
In any case, the Bob's recipe graph is one huge rat's nest, and the result of the algorithm is that a huge chunk of its recipe graph is merged into a single 203 recipe matrix. This means that running the calculator on Bob's will be slow, but it should work. Some new settings will need to be added to make it actually useful, but it'll be neat to see what the end result actually looks like.

4998dd38d44fc1414c0ded2e8d283e4f34828b27 adds the new subgraph-detection algorithm. All I will guarantee right now is that it produces the same output as the old one when applied to the vanilla recipe graph. It is possible that it will produce useful results for other recipe graphs, but I haven't really tested it yet.
This was the single largest change required to support Bob's, but a number of smaller changes will be needed, as well. One necessary input when making a solution is the priority-order of the resources used as inputs to the linear programs. This order is currently hard-coded. At a minimum, this list will need to be expanded for other datasets. A better solution may be to expose this list to the user and to allow them to configure it.
Other options may be needed, as well. The vanilla option to choose between the different oil processing recipes is instructive: The Bob's graph adds many such choices, so it may make sense to add more options like this; or it may make sense to rely on the resource-priority order to make these decisions; or it may make sense to provide both sets of options. This is the sort of thing I'll need to play around with to see what works best.
For now I'm going to concentrate on #83, which is a relatively simple problem that can benefit immediately from this new algorithm.

b9fea836973eaccd102a83693bc377bf51131538 adds experimental support for Bob's mods. The calculator is capable of producing results, but I'm not sure how actually useful it is without the additional settings that I would like to add. Here's a link with Bob's enabled.
As expected, it is very slow. Some more optimization may be possible, but there is an extent to which this may be unavoidable.
I haven't stress-tested it too much yet, but this serves as a proof of concept.

I dug into the slow parts. For 100 factories producing space science packs, the first render recipeTable.displaySolution(totals) takes over 9 seconds for me, while solver.solve takes around 1.4 seconds after my patch in #105.
Displaying after a minor update (e.g. changing something to use an effectivity module) only takes around 100ms, though the solver takes about the same amount of time.

I'd imagine a substantial fraction of that render time comes from rendering all those module icons. It might take a substantial rewrite of how the dropdowns work, but it would be possible to do this rendering lazily, the first time a given dropdown is opened.


update video creation guide

We need to review and update all copy here to support zoom and not MSFT team
instructions should relate the participant guide in notion

Need instructions for Zoom, zip, and other tools

This issue has been completed and can be found in video-creation-guide.md


Keycloak OIDC - Improve logging for refresh token

Rancher Server Setup

Rancher version: 2.6 master-head 94bca99 or later
Installation option : Any
Proxy/Cert Details: byo-valid (but shouldn't matter for this issue)

Describe the bug

When a refresh token request if made to extend the Access Token Lifespan, there's no indication in the Rancher server trace logs that this was done.

To Reproduce

Enable Keycloak OIDC
Enable Rancher server trace logging
In the keycloak OIDC backend make sure to use a low value of Access Token Lifespan
Wait more than the time value of the Token Lifespan
Do a search in Auth Provider site access members input or in a cluster RBAC members add input.

Result
No logs about Keycloak actions are observed in the logs.
When a token is expired I see Errors logged but not for other tokens/sessions actions like token refresh
Expected Result

Trace logs about session refresh in the Rancher server logs

Assigning ryan for dev-validate.

Ready for dev-validate

This has been validated on rancher v2.6-head (f6120e0)
Here are is the output that shows the refresh log:


feat(material/schematics): Switch custom theme schematic to use theme mixin instead of define-theme and add high contrast override mixins

I renamed the schematic to theme-color instead of m3-theme. Although the generated file is still m3-theme.scss which doesn't feel right. @andrewseguin What do you think about renaming the generated file to something like custom-theme-colors.scss instead?

Yeah we should rename the file. Maybe just _theme-colors.scss?


Missing files

I am updating .travis.yml files across several portlets and I noticed that some files are missing. It seems as if this portlet was not created using the cookiecutters, but I might be wrong.
Are you having troubles with Travis? Can I assist you somehow?

It was created with cookie cutter. Will check on monday whther I accidentally missed pushing the files

Added the files


App Crash on login

[ ] on the latest dev apps (392) after I enter the PIN code I get a blanch white screen and nothing shows up.

Don't think it is relevant: https://bithyve-workspace.slack.com/archives/C018J9CUR1N/p1726232311598829?thread_ts=1726231433.752869&cid=C018J9CUR1N
@Deveshshankar Please ensure.

Not relevant


Light theme with white tabs

Hi there,
first of, this is an awesome firefox customization!
I wonder if it is possible - to get white tabs and the whole above section (bookmark bar, adress bar) in white like chrome.
Any help would be appreciated

Thanks! Would you mind showing a screenshot? It sounds like perhaps it isn't quite set up correctly, or maybe a compatibility issue with your OS.

Hi sure!

This is what i get, when i use the firefox light theme
Oh, just for info, iam on windows 10

Ah i figured it out, i missed that in private mode - the dark theme is automatically used!
is there a possibility to use the light theme in private mode?

Hey, sorry I didn't get back to you on this. Currently not possible but if you look inside, I think, vars.css, and remove any line referring to [privatebrowsing], it should produce the behaviour you're after.


Fix Deploys. Assistant#create() Performs an Update

An assistant can be modified.
https://platform.openai.com/docs/api-reference/assistants/modifyAssistant
We should made the create() function do an update if the same name is found. In this way, we can update a new deployments descriptions and instructions. Few things to remember:

[ ] Remove tip from README about deployments and names.

Fixed by #4


clr-tabs should support lazy initialization of tab content

[ ] bug
[X ] feature request
[ ] enhancement

Expected behavior
While defining the tabs and tab contents (using the clr-tabs) we would like to define:

Tab content as a template to be eagerly loaded
Tab content as a template/template url/component to be lazy loaded as soon as the user opens the tab for the first time.

Actual behavior

Is available
Is not available, but is essential for some of the use cases

This should be covered by the implementation of #898
Leaving open for now, yet linked to that issue, so that we can verify it works after #898 is completed


Updated to make WorkExecutedEvent\AddedJobResponseRecord a [0..*] option

systems should be able to post more than 1 JobResponseRecord when reporting work that has been executed if they wish to package this data into a single message.

We don't have objections to proposed changes.


Side-effect derived files not installed in parallel build

This issue was originally created at: 2014-10-30 07:49:17.
This issue was reported by: bgolding.
bgolding said at 2014-10-30 07:49:17

Minimal reproducer:

tgt = Command('tgt', 'src', 'touch $TARGET sf0 sf1')
sf = SideEffect([ 'sf0', 'sf1' ], tgt)
Install('dir', tgt + sf)

Running the above with 'scons -j1 -Q' works correctly.
When using -j2 (or greater), the file 'sf1' is created, but not copied
to 'dir/sf1'.
I tried adding

Depends('dir', sf[1])

but this only causes the issue to move to 'dir/sf0' instead.
RHEL 5.7 x64 / python 2.7.2 / scons 2.3.4

This is working now as far as I can tell:
$ python3.7 ~/devel/scons/git/as_scons/src/script/scons.py  -j2
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
touch tgt sf0 sf1
Install file: "sf1" as "dir/sf1"
Install file: "sf0" as "dir/sf0"
Install file: "tgt" as "dir/tgt"
scons: done building targets.

$ ls -ltR
total 8
drwxr-xr-x  5 bdbaddog  staff  160 Feb 15 19:45 dir
-rw-r--r--  1 bdbaddog  staff    0 Feb 15 19:45 sf1
-rw-r--r--  1 bdbaddog  staff    0 Feb 15 19:45 sf0
-rw-r--r--  1 bdbaddog  staff    0 Feb 15 19:45 tgt
-rw-r--r--  1 bdbaddog  staff    0 Feb 15 19:43 src
-rw-r--r--  1 bdbaddog  staff  117 Feb 15 19:43 SConstruct

./dir:
total 0
-rw-r--r--  1 bdbaddog  staff  0 Feb 15 19:45 sf1
-rw-r--r--  1 bdbaddog  staff  0 Feb 15 19:45 sf0
-rw-r--r--  1 bdbaddog  staff  0 Feb 15 19:45 tgt


Add a column for the type of the jobs

Adding another column for the type of the jobs offered by the companies. The column will contain values like : IT, Web design, Writing ....

Interesting idea but it would become cluttered in the current layout :-1:
I think this might be something Jessica may have thoughts on but my take is that most of these companies will offer a range of roles.
If there is a move to a website of the information, it could be something filterable. However I think this repository is great as it gives information about the company to allow you to decide if you want to work for them - also I've seen a lot of companies state something like "email us if there isn't a job opening for you but you're interested". :+1:

+1 for this.

instead of type of jobs column please add column describing programming stack/system those companies utilize e.g javascript , HTML5 ,  angularJS, node.js , Java, C#, C++ , Unix , MacOS , Linux , etc.

Hi @venediktov this isn't entirely developer based so that column type wouldn't mean anything to someone looking for a Customer Support role. Like I was.
These are companies who fall under the "tech" umbrella and who hire remotely. That's it.

I think it would be useful the have the type of the company as well, like which industry it belongs, technology, health, etc...

I can see the use for this @glauberramos, this repo started as:

A list of semi to fully remote-friendly companies in or around tech.

I will give it some thought, and look at including this in the ideas in #44

Closing in favour of #44


Can I compute gradient of the model output w.r.t input?

Hello,
First of all, I appreciate your effort to maintain this nice repo.
I am wondering if I can get a gradient of the network model output w.r.t input similar to this function in tensorflow.

As far as I know, the gradient support is rather poor in the C++ API. See
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/cc/gradients
and https://github.com/tensorflow/tensorflow/issues/6268


Elements can not be deleted

After inserting and moving lots of elements on the landing page (http://editor.ory.am/) no element can be deleted any more. Due to #344 the modified layout has been lost.

I checked our sentry logs and was not able to find anything. Unfortunately, without a reproducible case there is not a lot I can do :(
If you encounter the issue again, feel free to reopen this!

He did some pretty weird stuff and had a rather deeply nested layout 😁


Throwing a Meteor.Error inside meteor meteor method cause UnhandledPromiseRejectionWarning

Hi, I'm using beforeAllMethods to dynamically check a user's access rights.
Putting throw new Meteor.Error() inside the callback of a Meteor.call causes this:
(node:22100) UnhandledPromiseRejectionWarning: Error: You are not authorized to do that. [403] W20210429-12:02:28.013(8)? (STDERR)     at imports/startup/server/register-api.js:38:28 W20210429-12:02:28.013(8)? (STDERR)     at packages/ddp-server/livedata_server.js:1634:19 W20210429-12:02:28.013(8)? (STDERR)     at C:\Users\Administrator\AppData\Local\.meteor\packages\promise\0.11.2\npm\node_modules\meteor-promise\fiber_pool.js:43:40 W20210429-12:02:28.014(8)? (STDERR) (node:22100) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag--unhandled-rejections=strict(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) W20210429-12:02:28.015(8)? (STDERR) (node:22100) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Pseudo code:
Meteor.beforeAllMethods(function () {
  const action = this._methodName

  // exclude these methods
  if (excludeMethods.includes(action)) return

  Meteor.call('checkUserRole', [action], (error, result) => {
      console.log('running roles check')
      if (error) throw new Meteor.Error(501, 'Something went wrong while processing your request.')

      // throw meteor error if user has no access to this action
      if (!result) throw new Meteor.Error(403, 'You are not authorized to do that.') // this causes UnhandledPromiseRejectionWarning

      return
    })
}) // /Meteor.beforeAllMethods(function () {

I'm using Meteor 2.2.
I can't remember if this wasn't an issue before though, since I've used this package in Meteor 1.8.
Thanks!

Closing this, I resolved my problem using fibers.
Cheers!


npx create-react-app produces react app that will not compile.

Describe the bug
I started a fresh react application at my console by entering npx create-react-app my-app. Then, I changed my directory to my-app and ran the command npm start. When the application loaded in Chrome, it failed to compile...error given in console:
$ npm start

<EMAIL_ADDRESS>start
react-scripts start

i ｢wds｣: Project is running at http://<IP_ADDRESS>/
i ｢wds｣: webpack output is served from
i ｢wds｣: Content not from webpack is served from C:\Users\my-path\my-app\public
i ｢wds｣: 404s will fallback to /
Starting the development server...
Failed to compile.
./src/index.js 1:97
Module parse failed: Unexpected token (1:97)
File was processed with these loaders:

<EMAIL_ADDRESS>./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.

$RefreshRuntime$ = require('C:/Users/my-path/my-app/node_modules/react-refresh/runtime.js');
| $RefreshSetup$(module.id);

Did you try recovering your dependencies?

Yes.
Which terms did you search for in User Guide?

(Write your answer here if relevant.)
Environment

(paste the output of the command here.)
Steps to reproduce

(Write your steps here:)

In a shell window, create a react app using command [npx create-react-app my-app]
Change directory to my-app and enter command [npm start]
Wait for browser to open and note that the browser is displaying an error as is the shell used to run the commands in steps 1 and 2

Expected behavior

(Write what you thought would happen.)
Actual behavior

(Write what happened. Please add screenshots!)
Reproducible demo

(Paste the link to an example project and exact instructions to reproduce the issue.)

I have the same issue.
<EMAIL_ADDRESS>10:41
Module parse failed: Unexpected token (10:41)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|   useEffect(function updatePathOptions() {
|     if (props.pathOptions !== optionsRef.current) {
>       const options = props.pathOptions ?? {};
|       element.instance.setStyle(options);
|       optionsRef.current = options;

I'm getting the same error as well


Prepare for 6.0.0

Todos

[x] npx publish-please --dry-run does not work
[ ] npm run test-browsers fails

I think I know why npx publish-please --dry-run isn't working, and it's my fault. 🙃
With the dependency pinned to my fork, publish-please itself has not yet been built and published with... publish-please. So I'm going to publish my fork in my own scope for now as @eyelidlessness/publish-please, and validate that that works which I strongly suspect it will.

@MartijnR Do you usually run npm run test-browsers before a release of core?

No, I think I have been forgetting to do that for the past few years.... 😳 I'm guessing it's not looking good?

No, I think I have been forgetting to do that for the past few years.... 😳 I'm guessing it's not looking good?

I’ll look into it in a few. I suspect something may have broken in some of the tooling changes recently.
We should also see if we can get it running in CI so we catch it sooner next time 😬


Allow External dependencies to be installed via policy instead of downloading over Internet

In Secure environments,   access to GitHub could be blocked (as it is in my secure space).
The request is to allow Erase-install.pkg, MovablePython3 ,IBM Notify, etc to be installed via policy and pulled from our available Jamf Repositories.

This issue implies that super doesn't "allow" those items to be installed. To be clear, super doesn't care how the dependencies got there, it just checks that they are validly installed in the expected locations.
In other words, there is nothing to prevent you from doing just what you asked. Use a Jamf Policy to install the dependencies before running super and then super won't have to install the items via GitHub.
Further, if you want to change how super locates or validates those items, this can be accomplished by modifying the clearly named variables in the setDefaults() function.


Missing dishes

Kårrestaurangen has 3 salads but only 1 is showing on the site. Linsen's second dish is also missing.

I'll check on it!

Still checking on it!

I think this is fixed by (45dddff)[https://github.com/adamse/mat-chalmers/commit/45dddff746be84cd65acf174b2cbbd36dfaba037].
Closing this, please reopen if not fixed


new currencies and solana validator

support 5 new currencies

CGU
XAUD
GF
TIME
ALK

Solana validator and support SOL currency

You can merge


helm chart allow image tage to be overwritten

added the option to overwrite the container image in the helm chart
fallback is existing behavior to use chart app version as container image version

Hey @wilkej - could you update this README to include the new parameter? Thanks!

Hello @ryaneorth the readme is updated


Updates to support running smoke against real hardware

Updates for bare-metal regression stacks.

added separate init script rackhd_stack_init_baremetal.py

verifies the hardware inventory before smoke starts
skips any power on reset of the nodes before smoke starts

update sel_alert_poller_tests to skip performing full SEL injection tests against real hardware
update system tests to skip power-reset type tests
updated coreos repository in install_coreos_minimum.json
added stackType and stack_nodes into stack_config.json for running manually

@keedya @johren


Support building ngx_pagespeed as a dynamic module

As of 1.9.11, nginx supports loading dynamic modules:
https://www.nginx.com/resources/wiki/extending/converting/#loading-a-dynamic-module

Also interested in this feature, compiling ngx_pagespeed was all but a breeze for 1.9.10

@crowell is there any documentation anywhere at this point to show how to build and use ngx_pagespeed as a dynamic module?

@shawncarr there's an issue for tracking documentation status https://github.com/pagespeed/ngx_pagespeed/issues/1135, I left a short comment there which explains how to build ngx_pagespeed as a dynamic module.


Update enable-power-bi-for-gia.md

Bug 751244

:x: Organization membership check failed
Members of the MicrosoftDocs organization should use the private repo. Please move your changes to https://github.com/MicrosoftDocs/Dynamics-365-Operations, and close this pull request.

Moving this edit to the private repo and closing this PR. New PR is:
https://github.com/MicrosoftDocs/Dynamics-365-Operations/pull/15338/files


thread return PollPeriod error

Describe the bug A clear and concise description of what the bug is.
In function "otLinkGetPollPeriod", it calls GetKeepAlivePollPeriod. I think this might be GetExternalPollPeriod.
To Reproduce Information to reproduce the behavior, including:

Git commit id
IEEE 802.15.4 hardware platform
Build steps
Network topology

Expected behavior A clear and concise description of what you expected to happen.
Console/log output If applicable, add console/log output to help explain your problem.
Additional context Add any other context about the problem here.

In function "otLinkGetPollPeriod", it calls GetKeepAlivePollPeriod. I think this might be GetExternalPollPeriod.

@taoyinzhou , the current implementation is as intended. GetKeepAlivePollPeriod() returns the maximum poll interval that the device will use. In other words, it returns the minimum of the user-specified poll interval and the default poll interval.

Closing stale issue.


Some functional requirements about pulsar sql

Is your feature request related to a problem? Please describe.
There is currently a need to manage and display pulsar's unconsumed metadata. But currently pulsar SQL will display the consumed data.
Describe the solution you'd like
According to the cursor to get the largest markDeletePosition, which is the location of the last spent cursor, and then reassemble the messageId, like this message_id > '(850,0,0)'. Data pagination can then be paged according to publish_time, like this: publish_time > timestamp'2019-10-23 21:32:00' LIMIT 100.If it is a partition theme, filter the corresponding data according to the partition.
Describe alternatives you've considered
#Use the consumer to get the data directly, but not ack, do this to the data display.
# If pulsar is logically deleted, it should have a logo, which can consume the consumed data according to that identifier.
Finally thank all the staff of pulsar.

Closed as stale. Please open a new issue if it's still relevant to the maintained versions.


♻ Refactor to use UPath everywhere

heh, accidently named the branch "umap_refactor"...

Yeah, fun branch name! :D

When completing this, could you also rename _storage.py to _settings_storage.py, so that it's consistently named with the other settings modules?

@falexwolf you can rename, i think i will need to redo this anyways.

Confirming: Are you really sure you're willing to lose all this work that went into this already? Or didn't you spend a lot of time here?

Ok then!

Thinking more: Could you maybe do it while you'll work on this code anyway? It might take me a while to get things to work (even though I think it's a simple rename).

yep


Post-release April 2023

This PR:
Updates package-lock.json for recently published packages
Updates CDN link and usage docs for MSAL Browser

Codecov Report

Merging #5850 (f9e42ae) into dev (81d34b4) will increase coverage by 0.01%.
The diff coverage is 77.53%.

Flag
Coverage Δ

msal-angular
96.63% <100.00%> (+0.13%)
:arrow_up:

msal-browser
?

msal-common
84.17% <82.44%> (-0.38%)
:arrow_down:

msal-core
?

msal-node
80.68% <41.81%> (-2.71%)
:arrow_down:

msal-node-extensions
?

msal-react
94.68% <100.00%> (ø)

node-token-validation
88.46% <66.66%> (-0.43%)
:arrow_down:

Impacted Files
Coverage Δ

...msal-common/src/cache/entities/CredentialEntity.ts
91.66% <ø> (-0.50%)
:arrow_down:

lib/msal-common/src/network/NetworkManager.ts
86.66% <ø> (ø)

lib/msal-node/src/config/Configuration.ts
100.00% <ø> (ø)

...ib/msal-node/src/client/PublicClientApplication.ts
49.27% <21.21%> (-27.05%)
:arrow_down:

lib/msal-node/src/utils/NetworkUtils.ts
40.00% <25.00%> (-60.00%)
:arrow_down:

lib/msal-common/src/error/ClientAuthError.ts
83.83% <50.00%> (-1.43%)
:arrow_down:

lib/msal-common/src/response/ResponseHandler.ts
73.24% <50.00%> (-0.78%)
:arrow_down:

lib/msal-common/src/request/ScopeSet.ts
95.18% <66.66%> (-2.23%)
:arrow_down:

...ode-token-validation/src/cache/NodeCacheManager.ts
80.89% <66.66%> (-1.46%)
:arrow_down:

lib/msal-common/src/client/OnBehalfOfClient.ts
65.59% <75.00%> (+0.32%)
:arrow_up:

... and 18 more

... and 115 files with indirect coverage changes


Odd behavior: when missing a data field, uses server instead of custom validators

I'm developing a TypeBox adapter for Superform and encountered an odd behavior.
If I provide superForm with a validators object and my custom superValidate returns a data object that is missing a value for a property found in the form, superForm completely ignores the validators object and instead hits the server for validation.
Your superValidate provides defaults for all fields, and I can certainly do that, so this is not a problem for me.
I realize that the protocol between superForm and superValidate is an internal protocol that need not provide robust support for adapters like mine, but I thought I'd report the behavior in case you might be inclined to instead emit an error so that folks making adapters (all one of us?) aren't spending hours debugging the problem.

Sorry, but that's how it is with open source software - you pay with your time. The client validation is complicated due to the deep object comparison and tainted checks. Do you know more precisely where the problem is occurring?

 ;-) But I didn't try to locate the problem in the superforms source.
Anyway, I've let you know about the strange behavior. If it's not immediately apparent how to deal with it, or that anything should be done, I'll close this issue.

I appreciate you reporting it, but I'm not sure how to deal with the multitude of validation libraries, that I really would like to support with Superforms (with something like typeschema), but given their current limitations, I cannot do that without more planning. #120 is the main issue for this.
A separate JSON Schema for completing the lack of features is an alternative, but it complicates things.

Oh, I think I see now what you were responding to.
Actually, the most helpful thing you could do for me is to treat the return value of superValidate as part of the public interface and bump the major version on any breaking change to it.
I've implemented my own superValidate for TypeBox, and it needs to work with your superForm.
As for the relevance to the present issue, I had to discover that this interface requires a default value for each field in the form. Now that I know that, I'm good, but it was odd that failing to meet this requirement caused superForm to ignore the validations object and instead hit the server. It was just something odd and likely unintentional on your part.

It's already a part of the public interface, a type called SuperValidated: https://github.com/ciscoheat/sveltekit-superforms/blob/54ac25fc49ad960085bcee1ba02145229d524f33/src/lib/index.ts#L147
Its data field is the inferred schema type, so the data must always be set according to the types. Then it depends on the schema if a field has a default value or not. The rules are described here: https://superforms.rocks/default-values
If you can figure out where this silent error occurs, I can probably add an error in a future release.

Thanks. I'm already basing my output type on SuperValidated but didn't know if you considered its specifics to be internal implementation or something meriting upping major revisions on breaking changes. And yeah, I had to plug any in for the Zod schema, though I may yet base the data return type on the TypeBox schema.
I have things generally working and am now testing, though only for superValidateSync(). I was surprised that I was able to get TypeBox to work -- a testament to how well abstracted Superforms is.

Glad you've gotten this far, it's hopeful for an eventual typeschema integration in v2.0. :) Any Superforms-related reason you've made a sync version only?

It's sync-only for now just for proof of concept. I don't want to create unnecessary machinery if the idea fundamentally won't work.
I'm basing the solution on my typebox-validators library, which offers optional lazy compilation with caching and failing at first error, among other things. Any generic solution would need to be compatible with features like these that Zod doesn't support. TypeBox itself has optional compilation, though not lazy and cached.

I'd like to see if there's anything that can be done easily enough for this. You say that the problem occurs when data returned from superValidate doesn't correspond to the schema type (like a missing field) - in that case, client-side validation fails?
What kind of validation is then used on the client, a Zod schema or the built-in Superforms validators?

When I get a chance, I'll have a look at it again and see if I can get you code that does it.

I'm starting to get a sense of what it would take to generalize superValidate to support TypeBox. I think this would be the better solution, because much of the HTTP handling code is the same, and the remaining code would be structured similarly as well. But for now, I just want to hardcode a TypeBox solution, as that'll be easier and faster, and I want to be certain it's possible before investing more effort.

Why do form actions assign defaults for missing values after submission to the server? This is an expensive process to perform, especially when the defaults should already have been provided client-side.
The main reason people choose TypeBox over Zod is that it benchmarks at about 200 times faster. I'd rather try to keep a TypeBox solution performant.

Another question for ya: Why do you hash the schema instead of just creating a random number with virtually zero chance of conflict? Seems like the latter would be much more efficient. I'm not seeing the hash used to equate different instances of identical schemas. It seems to just be a unique ID.

I'm now questioning the suitability of using Superforms with TypeBox. The Zod ecosystem is rich, while there is very little for TypeBox. When people choose TypeBox, it is because they're prioritizing performance.
To prioritize performance with Superforms, I would compile and cache each schema's form-parsing code. But then even better performance could be gained by submitting JSON and relying on the built-in JSON-parsing library. And if we're submitting JSON, we have JS on the client and so little need to use SvelteKit form actions.
But I still highly value the amazing work you've done on form usability, so I'll be thinking of the best way to leverage that.
In case you're curious, I've written probably 95% of what is needed to support TypeBox with the Superforms approach. I didn't quite finish the async superValidate(), but the missing bits are bits you'd understand better than I would. The port gave me quite an education. Thank you for that!

Why do form actions assign defaults for missing values after submission to the server? This is an expensive process to perform, especially when the defaults should already have been provided client-side.

To ensure type-safety for the schema data. If a schema field is defined as z.string() it cannot be undefined or null, and since you can't guarantee any posted data, a default value must be added. All the metadata is cached after first use, so it's not expensive.

The main reason people choose TypeBox over Zod is that it benchmarks at about 200 times faster. I'd rather try to keep a TypeBox solution performant.

There's a big difference between object validation and html form validation over http. Forms aren't in a hot code path, so I'd be surprised if form posting with a "slow" library (Zod isn't slow, just not fastest) will cause a performance issue. Still waiting for the first report of that. :)

Why do you hash the schema instead of just creating a random string with virtually zero chance of conflict? Seems like the latter would be much more efficient. I'm not seeing the hash used to equate different instances of identical schemas. It seems to just be a unique ID.

The hash is cached so there's no performance problem. It's a backwards compatibility issue, not setting an id counts as the same id, at least for each schema. That will probably change to a unique hash, as you say, in v2.0.

The missing property problem that you initially reported should be fixed now with 1.5.1. All validators are now checked against missing properties, and a console error is now reported if a validator throws an exception.

Thanks for fixing that!
Sorry I've been out of touch these past few days. An amazing opportunity has come up for me, and I was trying to make a decision.

Why do form actions assign defaults for missing values after submission to the server? This is an expensive process to perform, especially when the defaults should already have been provided client-side.

To ensure type-safety for the schema data. If a schema field is defined as z.string() it cannot be undefined or null, and since you can't guarantee any posted data, a default value must be added. All the metadata is cached after first use, so it's not expensive.

Yeah, I'm changing my mind about this. Assigning defaults isn't that much more expensive because the server must iterate over the provided values anyway, to parse them. Technically, it's only necessary to assign defaults for values that or optional or can be null, since FormData can't represent these values; the server could require the client to provide all other values, including their defaults if that's what the client wants. This approach does present a problem for evolving form actions that must work with third party clients, because it prevents the server from providing default values for new fields that the client might not yet support. An unlikely problem, but still a potential one.

The main reason people choose TypeBox over Zod is that it benchmarks at about 200 times faster. I'd rather try to keep a TypeBox solution performant.

There's a big difference between type validation and html form validation over http. Forms aren't in a hot code path, so I'd be surprised if form posting with a "slow" library (Zod isn't slow, just not fastest) will cause a performance issue. Still waiting for the first report of that. :)

I think the fact that TypeBox exists and is popular explains why you won't be getting complaints about slow performance. It's likely that Zod itself is the limiting factor in your case. The folks would would express concern won't be using Zod.
Even so, it should be possible for a TypeBox user to decide that a form is not on a critical path and use TypeBox with form actions.

Why do you hash the schema instead of just creating a random string with virtually zero chance of conflict? Seems like the latter would be much more efficient. I'm not seeing the hash used to equate different instances of identical schemas. It seems to just be a unique ID.

The hash is cached so there's no performance problem. It's a backwards compatibility issue, not setting an id counts as the same id, at least for each schema. That will probably change to a unique hash, as you say, in v2.0.

It'll affect cold starts in serverless environments.
Anyway, I'm coming back to this project with a fresh perspective. I'm looking at creating a package that provides the services Superforms needs to support TypeBox, while still being independent of Superforms. I'll make sure I can integrate it properly with an other package that uses Superforms with TypeBox before committing to making it available, though. That way I can get Superforms support for TypeBox now, and you'd get a little assistance with TypeBox support in Superforms 2.0.
Thanks again for fixing the bug, and for helping me to understand Superforms better.

Here's a package you can use for TypeBox integration: typebox-form-parser.

Thank you, though it is quite a task to make everything work, especially on client-side and with correct typing, as mammoth types like these are quite integrated with Zod. If they are possible to convert to TypeBox or any other library, I'll be quite impressed...!

Thank you, though it is quite a task to make everything work, especially on client-side and with correct typing, as mammoth types like these are quite integrated with Zod. If they are possible to convert to TypeBox or any other library, I'll be quite impressed...!

I don't know Zod, but TypeBox supports introspection of nested objects because it is valid JSON Schema. Anything you can do with JSON Schema, you can do with TypeBox.
My above library doesn't support nested objects at present, but it does support nested arrays and unions in meaningful circumstances.
Client-side TypeBox validation is easy with the custom validators object. However, I'm putting my TypeBox superforms implementation on hold for a while to deal with a more pressing issue.


How to customize commands?

I installed the terminal from the app store and I want to customize some commands.
for exmaple:

Key Binding
Desc

ctrl+shift+c
copy selected  text

ctrl+u
clear cmd

Thanks in advance.

CTRL+L clear cmd

Here's a blog post on a few of the neat things you can do to customize your terminal: https://devblogs.microsoft.com/commandline/windows-terminal-microsoft-store-preview-release/
You can also check out our docs folder in /doc/cascadia. We're populating it more and more as we go. One doc of interest here might be SettingsSchema.md
If there's any commands you want us to create, please submit an issue as a feature request. 😊

thanks :D


An open XFREERDP windows interferes with client screen lock

The problem:
An open xfreerdp windows prevent on the client the switch to the lock login screen.
As the lock time is elapsed, seem that there is no lock (the screen remain the same) but if the user move the mouse or try to use the keyboard suddenly the lock screen appear.
A minimized windows don't create the same problem.
Ubuntu 13.10
3.11.0-13-generic
connecting toward a windows 2008 server

I have compiled and installed freerdp in this way
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
rm -rf FreeRDP
git clone git://github.com/FreeRDP/FreeRDP.git
cd FreeRDP
sudo apt-get install build-essential git-core cmake libssl-dev libx11-dev libxext-dev libxinerama-dev libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev libcups2-dev libxml2 libxml2-dev libxrandr-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install libpulse-dev
sudo apt-get install libudev-dev
sudo apt-get install uuid-dev
sudo apt-get install libdbus-glib-1-dev
sudo apt-get install libavcodec-dev
sudo cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DWITH_CHANNELS=ON -DWITH_SERVER=OFF  -DWITH_CLIENT=ON -DWITH_PULSE=ON -DWITH_CUPS=ON -DWITH_FFMPEG=ON -DCHANNEL_URBDRC_CLIENT=ON -DWITH_PCSC=OFF -DWITH_XINERAMA=OFF -DWITH_GSTREAMER=OFF -DWITH_DIRECTFB=OFF -DWITH_SSE2=ON
sudo make
sudo make install
sudo gedit /etc/ld.so.conf.d/freerdp.conf
*** /usr/local/lib/x86_64-linux-gnu
sudo ldconfig

launched in this way
xfreerdp<EMAIL_ADDRESS>/v:srv03.xxxxx.local /sec:rdp /w:1210 /h:970 +clipboard

Closing due to lack of activity.
Reopen/create a new issue if still relevant.


libvirtd NSS module not working (nscd, nsncd, libnss, libc)

Describe the bug
I was happy to learn that in NixOS 24.05 the virtualization module gained NSS module support for libvirtd.
However, I found it not working: getent hosts <hostname> does not resolve to an IP address, even though the VM host name and IP is present in libvirt.
Steps To Reproduce
With the following NixOS configuration:
virtualisation = {
    libvirtd = {
      enable = true;
      nss = {
        enable = true;
        enableGuest = true;
      };
    };
  };

The following entry in /etc/nsswitch.conf is correctly created:
hosts:     mymachines resolve [!UNAVAIL=return] files myhostname libvirt libvirt_guest dns

The path to libnss_libvirt.so.2 and libnss_libvirt_guest.so.2 is also correctly added to the LD_LIBRARY_PATH environment variable of the nscd.service, as evidenced by systemctl show nscd:
Environment=LD_LIBRARY_PATH=/nix/store/gzvzqc3lyya4xwjrplmfk3x6l160rr62-libvirt-10.0.0/lib:/nix/store/xjiifrz7ha6s29gp0p0j3w0155phxmia-systemd-255.6/lib

The data source of libnss_libvirt* are plain text files in /var/lib/libvirt/dnsmasq, which makes it a lot easier to reproduce the issue because no actual VMs have to be created using libvirt. Here are two files that can be used for reproduction (Note: The expiry-time below is significant, and should lie in your future, otherwise the name lookups will not work.)
/var/lib/libvirt/dnsmasq/virbr0.macs:
[
  {
    "domain": "debian11",
    "macs": [
      "52:54:00:60:dc:fe"
    ]
  }
]

/var/lib/libvirt/dnsmasq/virbr0.status:
[
  {
    "ip-address": "<IP_ADDRESS>",
    "mac-address": "52:54:00:60:dc:fe",
    "hostname": "debian11",
    "expiry-time":<PHONE_NUMBER>
  }
]

The actual querying of the name can now be done with getent hosts debian11. This does not return a result (exit code 2).
Expected behavior
getent hosts debian11 should return the IP address <IP_ADDRESS>.
Additional context
Having more than one directory in LD_LIBRARY_PATH does not work.
Having just one directory in LD_LIBRARY_PATH, the libvirt one, does work.
To verify those two statements, do the following steps as root.
Please take extra care below to distinguish between nscd and nsncd.
systemctl stop nscd
nix-shell -p nsncd
LD_LIBRARY_PATH="/nix/store/gzvzqc3lyya4xwjrplmfk3x6l160rr62-libvirt-10.0.0/lib" NSNCD_WORKER_COUNT=1 NSNCD_HANDOFF_TIMOUT=10 strace -f nsncd 2>&1 | grep dnsmasq # adapt the libvirt path to your Nix store

In a different terminal, the name resolution is successful:
getent hosts debian11
# -><IP_ADDRESS>   debian11

strace in the first terminal shows that the data source /var/lib/libvirt/ndsmasq is actually consulted:
[pid  9358] openat(AT_FDCWD, "/var/lib/libvirt/dnsmasq/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 8
[pid  9358] openat(AT_FDCWD, "/var/lib/libvirt/dnsmasq//virbr0.status", O_RDONLY) = 8
[pid  9358] openat(AT_FDCWD, "/var/lib/libvirt/dnsmasq/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 8
[pid  9358] openat(AT_FDCWD, "/var/lib/libvirt/dnsmasq//virbr0.macs", O_RDONLY) = 9
[pid  9358] openat(AT_FDCWD, "/var/lib/libvirt/dnsmasq//virbr0.status", O_RDONLY) = 8
[pid  9358] openat(AT_FDCWD, "/var/lib/libvirt/dnsmasq/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 8
[pid  9358] openat(AT_FDCWD, "/var/lib/libvirt/dnsmasq//virbr0.status", O_RDONLY) = 8

Now, repeat the same experiment, but add the second path to LD_LIBRARY_PATH (the actual value from systemd show nscd), e.g.
LD_LIBRARY_PATH="/nix/store/gzvzqc3lyya4xwjrplmfk3x6l160rr62-libvirt-10.0.0/lib:/nix/store/xjiifrz7ha6s29gp0p0j3w0155phxmia-systemd-255.6/lib" to the nsncd invocation.
This time, grep does not match any lines and getent hosts debian11 does not return a result.
Note: If you pass --service libvirt (or similar) to getent, this will bypass the call to nscd and attempt to go to the libnss libraries directly, so this will always fail on NixOS (unless the needed shared libraries are in scope).
I do not know enough about the actual NSS mechanism inside glibc to understand why libnss_libvirt.so.2 and libnss_libvirt_guest.so.2 are not consulted.
Since nsncd does not do actual lookups, and only calls into glibc (gethostbyname() or such), this looks to me like a glibc issue, but this is currently out of my depth to analyze.
In any case, the NixOS feature as I think it was intended to work, does not, hence I think that this is a bug.
I'm happy to provide more details if needed.
Notify maintainers
Sorry for notifying so many of you but this issue looks like it could be interconnected between several parts.
nixos/modules/virtualization/libvirtd.nix: @jchv
nixos/modules/config/nsswitch.nix: @dasJ
nsncd: @flokli  @picnoir
libvirt: @fpletz @globin @lovesegfault
Metadata
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"

 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.33, NixOS, 24.05 (Uakari), 24.05.20240615.752c634`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - nixpkgs: `/nix/store/mcwr2j04fikfsrsaq76f4bviinvl6zql-source`

Add a :+1: reaction to issues you find important.

@jchv The following flake declares a system that exhibits the issue:
# flake.nix
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
    nixos-generators = {
      url = "github:nix-community/nixos-generators";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };
  outputs = { self, nixpkgs, nixos-generators, ... }: {
    packages.x86_64-linux = {
      default = nixos-generators.nixosGenerate {
        system = "x86_64-linux";
        format = "qcow";
        modules = [
          ({ ... }: { nix.registry.nixpkgs.flake = nixpkgs; })
          ({
            lib,
            pkgs,
            ...
          }: {
            services.sshd.enable = true;
            system.stateVersion = lib.version;
            users.users.root.password = "root";
            services.openssh.settings.PermitRootLogin = lib.mkOverride 999 "yes";
            services.getty.autologinUser = lib.mkOverride 999 "root";
            services.resolved.enable = true;
            virtualisation = {
              libvirtd = {
                enable = true;
                nss = {
                  enable = true;
                  enableGuest = true;
                };
              };
            };
          })
        ];
      };
    };
  };
}

On the host, build the image and start the VM:
nix build
cp result/nixos.qcow2 .
export LIBVIRT_DEFAULT_URI=qemu:///system
virt-install --disk ./nixos.qcow2 --os-variant=debian11 --name nsstest --import --noautoconsole

In the VM:
# stub the VM IP address to resolve
cat <<EOF > /var/lib/libvirt/dnsmasq/virbr0.macs
[
  {
    "domain": "debian11",
    "macs": [
      "52:54:00:60:dc:fe"
    ]
  }
]
EOF

getent hosts debian11 # this should get the IP address out of the plain text file in /var/lib/libvirt/dnsmasq
# no result, exit code 2

Thanks for your viewpoints.

So, as long as resolved can be reached, none of the other NSS modules will be consulted.

This is indeed how NixOS currently writes nsswitch.conf, but this explicitly and practically prevents all current and future resolving methods other than resolved, which cannot be the goal.
But I might have found the original reason for coding it like this in NixOS. From man nss-resolve (my emphasis):

To activate the NSS module, add "resolve [!UNAVAIL=return]" to the line starting with "hosts:" in /etc/nsswitch.conf. Specifically, it is recommended to place "resolve" early in /etc/nsswitch.conf's "hosts:" line. It should be before the "files" entry, since systemd-resolved supports /etc/hosts internally, but with caching. To the contrary, it should be after "mymachines", to give hostnames given to local VMs and containers precedence over names received over DNS. Finally, we recommend placing "dns" somewhere after "resolve", to fall back to nss-dns if systemd-resolved.service is not available.

So far, NixOS got that right: mymachines is before the resolved module. However, the libvirt module is conceptually very close -- or even identical -- to mymachines (because "hostnames given to local VMs"). So I would argue that the "workaround" that you suggested is the actual solution that should be permanently implemented in NixOS, iow. that libvirt and libvirt_guest should be right next to mymachines. Note that the man page (just) recommends "early" and means with this "before the 'files' entry", but it does not insist on being first or excluding other modules.
That internal domains take precedence over the DNS is pretty much expected.

Sounds good. It should be also performant because libnss_libvirt just reads local files, there is no network involved.
While reading code, I saw that the entries in nssDatabases are actually sorted by mkOrder priorities: mymachines is 400, and resolve is 501; so maybe good values for libvirt would be somewhere around 410?

@jchv I created a PR and successfully tested it using the flake from above.


decomp: level-info

This decompiled seemingly without issues, output looks pretty readable, just a bunch of keyword-value data.

No longer needed


Feature Request: disable auto update status？

Hello, Dalao!
When using slimeform, is it possible to pass in an options like this:
const { form, status, verify } = useForm({
    form: () => ({
        userName: '',
        ...
    }),

    lazy: true,
})

When lazy is set to true, data updates in form won't automatically cause status to change, unless user call verify() or status.userName.verify() manually.
I think it can be useful if I want to verify content in a Text Input after it's done inputing, i.e. blurred.
Similar behavior can be found here: https://quasar.dev/vue-components/input#example--lazy-rules .

Looks good, maybe you can implement this feature.
I have another neng solution here that achieves a similar effect.
You can change the v-model to v-model.lazy
Reference document: https://vuejs.org/api/built-in-directives.html#v-model


Example of handling big amount of events in a timeline

https://time.graphics/line/47134

What is it you want to do with this issue?

Better handling of Overlaying events when zoomed out. Particularly avoid forcefuly resizing the frames height.


workflow_by_code cannot run

🐛 Bug Description
import qlib
import pandas as pd
from qlib.constant import REG_CN
from qlib.utils import exists_qlib_data, init_instance_by_config
from qlib.workflow import R
from qlib.workflow.record_temp import SignalRecord, PortAnaRecord
from qlib.utils import flatten_dict
error information is following:

ModuleNotFoundError                       Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_30552/3062347313.py in
1 import qlib
2 import pandas as pd
----> 3 from qlib.constant import REG_CN
4 from qlib.utils import exists_qlib_data, init_instance_by_config
5 from qlib.workflow import R
ModuleNotFoundError: No module named 'qlib.constant'

I tried to run it on the Google Colab without any changes, it works (but failed on another cell...).
Maybe there is some inconsistency between qlib.constant commit history and pyqlib latest release (Apr 25, 2022) on PyPI.


Allow sorting by timestamp

This is very useful when trying to get the 'top x' most recent entries.
Please add support for this in the TopN and GroupBy queries.

This is now possible with GroupBy v2 (and in Druid SQL)
@gianm please confirm and close.

Yes, it is. It became possible as part of the numeric dimensions feature.


Logitech HD Pro Webcam C920 not working in 3rd party Apps (Zoom, Microsoft Teams)

So, I have this issue I don't know how to resolve: my C920 works fine in Photobooth and Facetime on my Lenovo T530. But when using any 3rd party apps like Zoom or Microsoft Teams, the cam won't turn on because I can't grant the apps access to it.  The cam is working fine on my desktop pc in Ventura which is even weirder:

Teams and Zoom both ask me to change the Security settings so access to the cam is granted (screenshot from Zoom):

But on the Notebook, the apps don't show up in the Security/Privacy settings :

I tried mapping USB ports which is not a necessity on this system but it had no effect. Changing SIP to EF0F0000 didn't have any effect either. I think the issue is related to this: https://superuser.com/questions/1441270/apps-dont-show-up-in-camera-and-microphone-privacy-settings-in-macbook
I'v tested it in Mojave, Big Sur, Monterey and Ventura – same result. Any suggestions on how to fix this would be highly appreciated.

I have got 2 apps listed under camera and microphone: Camera Recorder Lite and ond of my own iOS apps in a Catalyst version. Those permissions survived the upgrade from BIg Sur where the internal webcam is still functioning. The Camera Recorder Lite turns my internal webcam automatically on. But the internal webcam is not working any more in Monterey and Ventura (VDA decoder failed on my 1366*768 HD4000 screen). But the microphone still worked. Even the mike of a USB headphone that have never been connected before to this Ventura. So I could record a ‘video’ with only sound.
I could not get any microphone working for Skype (in Chrome), the Zoom app or the Teams app. All of them asked to give them permission in the System Settings but no new entries were there. So existing permissions (migrated from Monterey) are respected, but new ones aren’t added.

Okay, I found 2 solutions to fix the issue.

With SIP disabled (not a complete solution):

Reboot
In Bootpicker, hold Shift and Press Enter to boot macOS in Safe Mode… boot will take longer and graphics acceleration won't be available
Run the App that needs access to the mic/cam
The system will ask for permissions. Once you grant them, the App will be in the list of apps with access to the mic/cam
Reboot normally.
Voila

Problem: This worked fine for Zoom but Microsoft Teams won''t run in Safe Mode. There's no GUI and the promt for granting the app access to the mic/cam were not triggered. ;(

Enabling SIP: In order to be asked by the system to grant access to the camera and mic, SIP has to be enabled.  Once I re-enabled and rebooted , the prompts for grnating access were working immediately.

Problem: If you are using macOS 12+ you can't boot with SIP enabled.

There might be a third way: ask for permission for the Teams app in Big Sur and do the update to Ventura, maybe even in 2 steps. Something you really do not want to do.

This case is already covered in Option 1

It is now. But it was not in the 1st version of the comment (which I receuved by mail). In that version younonly had 2 options 👍


[DO NOT MERGE]repository delegation and cleanup

Moving direct repository calls behind the related service when possible with delegate pattern
Some removed imports and unused methods
Fixing some visibility leaks
More repository interfaces are now returning Optional instead of the given type

@gregito what should we do with this pr? is it obsolete or should be updated?

@gregito what should we do with this pr? is it obsolete or should be updated?

@horadla23 I suppose we should wait with this until it gets into one of the future sprints. the content is not obsolete, just needs a proper rebase.
@doktoric do we have any future plans for this topic which could include this pr's content?

Is this PR still active and being worked on?

Is this PR still active and being worked on?

I've just created a jira for this topic, so I'm going to close this PR


Update advanced-spam-filtering-asf-options.md

Updating article to show deprecation

@nenonix @JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.

@MSFTTracyP  - PR has been copy edited and is ready for final review.
Thank you.
cc: @kenwith


Error when installing and Workaround

During the installation I got the following Error:

c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
make[2]: *** [CMakeFiles/dlib_python.dir/src/image.cpp.o] Error 4
CMakeFiles/dlib_python.dir/build.make:326: recipe for target 'CMakeFiles/dlib_python.dir/src/image.cpp.o' failed
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/dlib_python.dir/all] Error 2
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/dlib_python.dir/all' failed
make: *** [all] Error 2
Makefile:83: recipe for target 'all' failed
Traceback (most recent call last):
  File "setup.py", line 257, in <module>
    'Topic :: Software Development',
  File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 129, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/setuptools/command/install.py", line 67, in run
    self.do_egg_install()
  File "/usr/lib/python3/dist-packages/setuptools/command/install.py", line 109, in do_egg_install
    self.run_command('bdist_egg')
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/setuptools/command/bdist_egg.py", line 172, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "/usr/lib/python3/dist-packages/setuptools/command/bdist_egg.py", line 158, in call_command
    self.run_command(cmdname)
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/setuptools/command/install_lib.py", line 24, in run
    self.build()
  File "/usr/lib/python3.6/distutils/command/install_lib.py", line 109, in build
    self.run_command('build_ext')
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 133, in run
    self.build_extension(ext)
  File "setup.py", line 173, in build_extension
    subprocess.check_call(cmake_build, cwd=build_folder)
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j4']' returned non-zero exit status 2.

When trying to run sudo howdy add I got the following Error:
Traceback (most recent call last):
  File "/lib/security/howdy/compare.py", line 18, in <module>
    import dlib
ModuleNotFoundError: No module named 'dlib'
Unknown error: 1
[sudo] password for caspar:
No module named 'dlib'

Can't import the dlib module, check the output of
pip3 show dlib

Installing delib using $ sudo -H pip3 install dlib seems to fix the issue foe me.
Linux distribution (if applicable): Debian/Ubuntu
Howdy version: Nov 19, 2019

Dlib installation is such a pain during install, will need to be handled differently in the next release

No real way yet to reliablyinstall dlib without building from source yet, bumping to next release

Closing this now as there have been no other dlib compilation errors posted and as there does not seem to be a better solution right now


Receiving/sending addresses

I think you should change or improve "Your receiving addresses" and "Your sending addresses" texts because it's very easy to misunderstand them. I suggest changing them to "Incoming addresses" and "Outgoing addresses". Or at least you could descriptive tooltip (label) to explain what they mean.

Thanks Arvis,
Yes the 'Your receiving addresses' and 'Your sending addresses' are not
very good texts.
I am going to do a rework of the UI and one of the suggestions was to
change:
'Receive Bitcoins' to
'Request Bitcoins'
which is more descriptive of what the operation is.
I will have a think about your suggestions and how they will work with
the new UI layout.
Good idea to have a descriptive tooltip for the address header text
which most of the other visual elements have.
If you are interested, our ideas for the UI rework is here:
http://groups.google.com/group/bitcoinj/browse_thread/thread/e26b178e8c8888e8
Regards,
Jim
On Fri, Dec 30, 2011, at 02:34 AM, Arvis Lācis wrote:

I think you should change or improve "Your receiving addresses" and "Your
sending addresses" texts because it's very easy to misunderstand them. I
suggest changing them to "Incoming addresses" and "Outgoing addresses".
Or at least you could descriptive tooltip (label) to explain what they
mean.

Reply to this email directly or view it on GitHub:
https://github.com/jim618/multibit/issues/8

--
http://multibit.org    Money, reinvented