MediatR Blazor wasm - notification target component not updating

.NET Standard 2.1
.NET Core 3.1.402
MediatR - 8.1.0

Start with a clean Blazor WebAssembly project in VS 2019 (16.7.4)
When the button is clicked I get the following error message in the browser (The render handle is not yet assigned):

Publishing ping
Got ping with data 'Clicked'
updating
System.InvalidOperationException: The render handle is not yet assigned.
   at Microsoft.AspNetCore.Components.RenderHandle.ThrowNotInitialized () <0x2ebe310 + 0x0000c> in <filename unknown>:0
   at Microsoft.AspNetCore.Components.RenderHandle.Render (Microsoft.AspNetCore.Components.RenderFragment renderFragment) <0x2bc4a60 + 0x0000a> in <filename unknown>:0
   at Microsoft.AspNetCore.Components.ComponentBase.StateHasChanged () <0x2bc48a0 + 0x0004e> in <filename unknown>:0
   at BlazorApp1.Components.Component2Base.Handle (BlazorApp1.Components.Ping notification, System.Threading.CancellationToken cancellationToken) [0x00035] in

Program.cs
register MediatR in DI
builder.Services.AddMediatR(typeof(Program));

Component1.razor
Publish notification when button is clicked
@inherits Component1Base

Component1

<button type="button" @onclick="@ButtonClicked">Click me!</button>

Component1Base.cs
    public class Component1Base : ComponentBase
    {
        [Inject]
        public IMediator Mediator { get; set; }

        protected Task ButtonClicked(EventArgs obj)
        {
            Console.WriteLine("Publishing ping");
            var ping = new Ping("Clicked");
            Mediator.Publish(ping);
            return Task.CompletedTask;
        }
    }

Component2.razor
Handle notification and try to update the value of the input
@inherits Component2Base

Component2

<EditForm Model="@Data">
    <InputText @bind-Value="@Data"></InputText>
</EditForm>

Component2Base.cs
    public class Component2Base : ComponentBase, INotificationHandler<Ping>
    {

        protected string Data { get; set; }

        protected override void OnInitialized()
        {
            Data = "1234";
        }

        public Task Handle(Ping notification, CancellationToken cancellationToken)
        {
            Console.WriteLine($"Got ping with data '{notification.Data}'");
            try
            {
                Console.WriteLine("updating");
                Data = notification.Data;
                StateHasChanged();
                Console.WriteLine("updated");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            return Task.CompletedTask;
        }
    }

Ping.cs
Notification class
public class Ping : INotification
    {
        public Ping(string data)
        {
            Data = data;
        }
        public string Data { get; }
    }

Index.razor
Use the 2 components
@page "/"
@using BlazorApp1.Components

Hello, world!

Welcome to your new app.

<Component1></Component1>
<Component2></Component2>

Likely the problem here is that you are using a single class for both the razor backend and the notification handler.  The .AddServices() extension method registers the handlers as Transient, which creates a new instance of the class to handle the notification.  That means the one that is being used in rendering is not the same instance as the one that is handling the notification.  In order to share data between the handlers and the Razor components you will need a shared dependency that both can interact with.  I don't know the details of the lifecycle of the Razor components though so you will have to work that out yourself.

@orantwolinkme, if you solved this can you share your solution?

@ryanbuening I have created a library just for this, with it you can subscribe/unsubscribe to and from MediatR notifications through an ICourier interface:
https://dev.azure.com/kandras9642/MediatR.Courier

@KuraiAndras awesome, thanks for sharing.

@KuraiAndras I have a similar problem only with Blazor Server. Having wired up your package I am not able to capture the event. Could you help please?
Registration:
builder.Services
    .AddMediatR(Assembly.GetAssembly(typeof(Program))! ,Assembly.GetAssembly(typeof(SyncService))!)
    .AddCourier(Assembly.GetAssembly(typeof(Program))!, Assembly.GetAssembly(typeof(SyncService))!);

Blazor page summary:
@using MediatR.Courier
@inject ICourier _courier

protected override void OnInitialized()
{
    _courier.Subscribe<DataSyncResult<SalesOrder>>(Handle);
}

public Task Handle(DataSyncResult<SalesOrder> notification, CancellationToken cancellationToken)
{
    _messages.Add(notification.ToString());
    StateHasChanged();
    return Task.CompletedTask;
}

Where:
public class DataSyncResult<T> : INotification
{ ...

and down the stack...
await _mediator.Publish(result, cancellationToken);
If I use Mediatr instead (with page implementing INotificationHandler<>), the Handle() method gets called but throws exception "The render handle is not yet assigned" which is why I am trying your suggestion.


Spoon screenshot not showing up on the report?

Hi,
Thanks for the great work.
Just wondering did you #ever get Spoon screenshot working with Cucumber + Espresso, I can see the screenshot being taken and pulled to build/spoon/images folder, but can't get the images showing on the Spoon report.
Thanks.

Hi,
Yes, this line below is where I use cucumber embed method to embed all the image directly into the html report:
https://github.com/neoranga55/espresso-cucumber/blob/master/espresso-test-lib/EspressoInstrumentation/src/com/tomtom/espresso/test/CucumberHelperTestSteps.java#L86

Thanks for the replay, does this embed method adds the images to the Cucumber HTML report or the Spoon HTML report?
Thanks

This attaches the screenshot to the cucumber report which is the runner executing the tests.
I assume that if you want the Spoon report you'll need to switch to the Spoon runner and he will generate the report. So you have to make a choice between running the test in parallel on multiple devices or using the cucumber BDD language.

That's interesting, because I have configured Cucumber to run with Spoon. Basically if you do "./gradlew spoon", it deploys the tests to all connected devices and generates a Spoon reports at the end. Anyway, I have got the screenshot display in the Spoon report :), here is a sample project I made.
Cheers,

Awesome, I haven't used Spoon for multi-device execution but it's fantastic to know they can work together so well :+1:


DOC: remove references to deprecated numpy negation method

[ ] closes #xxxx
[ ] tests added / passed
[x] passes git diff upstream/master | flake8 --diff
[ ] whatsnew entry

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

Merging [#13310][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master     #13310   diff @@
==========================================
  Files           138        138
  Lines         50666      50666
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits          42672      42672
  Misses         7994       7994
  Partials          0          0

Powered by Codecov. Last updated by [ae2ca83...3b46a1b][cc-compare]
[cc-base-branch]: https://codecov.io/gh/pydata/pandas/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/pydata/pandas/compare/ae2ca83d31ebc2f95bb4f71b504f454ec399ee41...3b46a1b847013b0429bc6dcd2c58ea175c23b5cf
[cc-pull]: https://codecov.io/gh/pydata/pandas/pull/13310?src=pr

thanks!


3D lines need at least 4 points instead of 2 <- bug

Just as a reminder :)

2D lines don't render without 3 points either:
 x = range(0, stop = 2.0pi, length = 2)
 f2(x) = exp.(-x) .* cos.(2pi*x)
 y2 = f2(x)

 scene = Makie.lines(x, y2, color = :blue)

Could this be related:
julia> using Makie

julia> x = range(-0.3, stop=0.8, step=0.075)
-0.3:0.075:0.75

julia> y = rand(length(x));

julia> scene = lines(x,y)
scene[Axis][:ticks, :ranges]
Observable{Tuple{Array{Float64,1},Array{Float64,1}}} with 2 listeners. Value:
([-0.25, 0.0, 0.25, 0.5, 0.75], [0.4, 0.6, 0.8, 1.0])

Makie seems to be skipping the first point here and only plotting  (x[2:end],y[2:end])

This is a bit strange
julia> scene = lines(x[1:9],y[1:9])

julia> scene[Axis][:ticks, :ranges]
Observable{Tuple{Array{Float64,1},Array{Float64,1}}} with 2 listeners. Value:
([-0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3], [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

julia> scene = lines(x[1:10],y[1:10])

julia> scene[Axis][:ticks, :ranges]
Observable{Tuple{Array{Float64,1},Array{Float64,1}}} with 2 listeners. Value:
([-0.2, 0.0, 0.2, 0.4], [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

With 10 points, the first point seems to be chopped off, while with 9 points, the range seems correct.

Hm, OK, I think this is perfectly fine, actually, and I just confused myself. The ranges just reflect the ranges spanned by the x-ticks, of course, and has nothing to do with how many points are drawn. Please ignore my comments : ).

The line thing has been fixed. The old axis is basically gone so I assume that to be irrelevant now.


Add an option to close chat panel

Can we have a visible button to close the chat panel? Double click hides the UI. Only way to close it is by clicking the chat button which is behind the chat box. Barely visible.

https://user-images.githubusercontent.com/35926530/214377449-63a9cdd8-19d2-4176-b178-ed4e83d0b0bd.mp4

Made obsolete with new UI


[fips] Support a flag that indicates that the cluster requires mandatory FIPS mode on all nodes

This is implemented by:

Changing the cluster ID to indicate whether FIPS is required.  If so, the certificates all have the cluster ID in them, so when a node starts up, it looks at its cert, and matches the FIPS requirement against its own FIPS mode.  If it's not running in FIPS mode, and it should, it shuts down.
Changing the join token only if, and to indicate whether, FIPS is required.  So when you try to join a node to a cluster, if the join token indicates that it's a FIPS cluster, the node will refuse to join.

This may conflict a little against https://github.com/docker/swarmkit/pull/2586, since both propagate the FIPS boolean to the manager.

Thanks @anshulpundir and @dperny - I think the comments are addressed, and I've squashed it to 2 commits (generated API changes and code changes)

LGTM


Add SetProfile / SetBinary for Edge driver

I read comment by longvh211 commented May 10, 2022
"I was able to pull this off by adding the same ExtendCapabilities functions in the ChromeDriver.cs to the EdgeDriver.cs. After doing this, you just need to rebuild the solution and install. In VBA execution, the "user-data-dir" argument works as expected for Edge."
I re-install SeleniumBasic-<IP_ADDRESS>_New.Webdriver.Path.No.Shortcut.exe. There is no modification on EdgeDriver.cs file.
I'm just an end-user using Selenium (self learning excel VBA on Windows), no clue how to recompile. Would you please upload/post your modification (.exe) with Edge driver SetProfile SetBinary capability same as Chrome?
Thank you,

这是来自QQ邮箱的假期自动回复邮件。
已经收到，等我看到了，立马回复。


Support for leveraging reusable components

Following this guide allows a user of the KFP SDK the ability to use the kfp.components.load_component_from_url API to pull in reusable components as a part of a pipeline. Maybe I've missed this feature with Kale but it'd be awesome to handle this maybe via Notebook Cell annotations?

Looking at the component development page it doesn't seem like it would be very difficult to add this functionality. I will be looking at this in the near future hopefully. What would be more interesting in my eyes is the functionality to have Kale create a pipeline component from a cell or notebook. It would need to create a docker image and have a registry (with credentials) that it should push the image too. For the component.yaml I'm not sure how much of that can be automated and what all would need manual input from the user.


Docker packaging

Fixes #484

Rename Dockerfile for dist tests to Dockerfile.dev
WIP: scripts/release: add docker_tags command to find suitable tags
update .dockerignore
WIP: pipeline job that builds a docker image
WIP: production docker image

TODO

[x] Proper tagging
[ ] Documentation

Contributor Checklist:

[x] I have added or updated my entry in the creators.json file
[x] I have added a changelog entry for my contribution
[x] I have added/updated documentation for all user-facing changes
[x] I have added/updated test cases
[ ] I have included the rebuilt production build of the client (only if changes were made to the GUI)

Reviewer Checklist:

[ ] /azp run libertem.libertem-data passed

Note: need to take care when merging, as the pipeline definitions most likely have already changed since I created this branch.
IIRC the missing part of this PR is mostly fixing the listen address for this specific case - we need to listen on <IP_ADDRESS>, but keep token auth disabled. Maybe add an --insecure command line flag to allow for this configuration, or something similar?
Also missing is proper image tagging (see the newly added docker_tags command in the release script - that needs to be used to tag and push the resulting image)
Possibly we could also push to the github container registry in addition to docker hub, so we are not 100% dependent on docker hub continuing to work.
/cc @shabihsherjeel

The bash script kind of works locally, but it is hard to test since scripts/release draws a lot of its info from the Azure env. Also, I don't have the token so I can't really test if pushing works. Let's first see if the pipeline runs through for the PR first.
After that, I'm a bit unsure. My only idea would be to just merge it and see what happens, also when baking RCs. 🙈

Also, I don't have the token so I can't really test if pushing works

If you have a docker hub login, I can add you to the libertem organization there

If I understood the flow of events correctly, we are building and pushing the production image only in the second stage now, right? That means it is untested and completely independent of the dev version, if I understood correctly. A bit of a chicken-egg problem since we'd have to tag and push something before the dist tests, but don't know yet if it is sth we want to push, right?
I can think of three ways to solve this:

Use a special tag, for example "triage"
Use libertem-dev repository with a "testing" tag
Use libertem-testing repository

Or is there a way to first build the image locally, then derive the test image from it, start up the workers, and only push it after the dist tests passed?
In the previous push it seemed that it tried to run the docke release also for a PR. It also does that for the dev image. Isn't that a security issue? A bad actor could replace our Dockerfile with FROM:my_crypto_miner_pwn and change scripts/release to push the image to latest, and it would be live in production for our users, right?
Generally, what about the tokens $(DOCKER_ACCESS_TOKEN), $(LT_RELEASE_UPLOAD_PYPI_PASSWORD), ...? Can't someone just make a PR and include "email me $TOKEN" in the azure-pipelines.yml?

change scripts/release to push the image to latest

I mean, change the bash script in azure-pipelines.yml

In the previous push it seemed that it tried to run the docke release also for a PR. It also does that for the dev image. Isn't that a security issue? A bad actor could replace our Dockerfile with FROM:my_crypto_miner_pwn and change scripts/release to push the image to latest, and it would be live in production for our users, right?
Generally, what about the tokens $(DOCKER_ACCESS_TOKEN), $(LT_RELEASE_UPLOAD_PYPI_PASSWORD), ...? Can't someone just make a PR and include "email me $TOKEN" in the azure-pipelines.yml?

Ah, sorry, I forgot to mention, and this makes testing a bit harder, of course: only builds on master have access to the tokens, so a maintainer has to merge such a change to leak a token. That's also the reason we get errors like this:
/home/vsts/work/_temp/232ec229-6ffe-41cf-a7d3-5b6dbc7f24ba.sh: line 6: DOCKER_ACCESS_TOKEN: command not found

Previously this error was just ignored, because our process for dist builds is tolerant to such errors. Maybe here we should check if the token is set and only then try to push, and also err out the pipeline if the push fails in this case?

In the previous push it seemed that it tried to run the docke release also for a PR. It also does that for the dev image. Isn't that a security issue? A bad actor could replace our Dockerfile with FROM:my_crypto_miner_pwn and change scripts/release to push the image to latest, and it would be live in production for our users, right?
Generally, what about the tokens $(DOCKER_ACCESS_TOKEN), $(LT_RELEASE_UPLOAD_PYPI_PASSWORD), ...? Can't someone just make a PR and include "email me $TOKEN" in the azure-pipelines.yml?

Ah, sorry, I forgot to mention, and this makes testing a bit harder, of course: only builds on master have access to the tokens, so a maintainer has to merge such a change to leak a token. That's also the reason we get errors like this:
/home/vsts/work/_temp/232ec229-6ffe-41cf-a7d3-5b6dbc7f24ba.sh: line 6: DOCKER_ACCESS_TOKEN: command not found

Previously this error was just ignored, because our process for dist builds is tolerant to such errors. Maybe here we should check if the token is set and only then try to push, and also err out the pipeline if the push fails in this case?

Ah, that makes sense, I was wondering already! I'll look into it. :-)

If I understood the flow of events correctly, we are building and pushing the production image only in the second stage now, right? That means it is untested and completely independent of the dev version, if I understood correctly. A bit of a chicken-egg problem since we'd have to tag and push something before the dist tests, but don't know yet if it is sth we want to push, right?

Yeah - we have a similar issue with the rest of the tests already - we don't really have the typical build->test->deploy cycle, because we don't run our test cases against the wheel we build, but we rebuild the wheel instead in the "deploy" stage.

Use a special tag, for example "triage" [...]

The "right way"™ would be to tag with the git sha, because we can also have two different builds running in parallel. The current setup for dist tests (tagging as libertem/libertem-dev) is just set up this way for caching - we don't care where the cache base comes from, as long as there is something we can build on.

Or is there a way to first build the image locally, then derive the test image from it, start up the workers, and only push it after the dist tests passed?

Yeah, this isn't such an easy issue - there are some issues if we want to test against something that is as close to the "production" docker image as possible.
For running the dist tests, we do need an image with many non-trivial changes compared to the production image, like an installation of ipyparallel and all test requirements (so if we base the test docker image, the test requirements could overwrite a package with a newer version than installed in the prod image).
We could make this a bit more faithful by making the dist test setup a bit more complicated: instead of using a "mono-image" for all cases (ipyparallel-{worker,scheduler}, dask-{worker,scheduler}, test environment), we could build separate images on top of the prod image for ipyparallel-* and test environment, and use the prod image unchanged for dask-{scheduler,worker}.
Another idea was to run tests/server/* against a libertem-server started from the prod image, to make these "true" integration tests - that involves quite a bit of work.

Ok, thx for the explanation!

The "right way"™ would be to tag with the git sha

Hmm, these would accumulate over time, right? I'll try sth two-stage: Build the production image with the dist tests, use it for dask-{scheduler,worker}, and base the libertem-dev image on the local libertem:continuous image.
Only if on master and after passing the tests I'd then push the production image to continuous, hoping that the previous successful test in the PR and the successful dist tests mean that the image is "good enough" for continuous. In reality the CI pipeline practically never fails after merging if it passed for the PR, so this is a reasonable assumption IMO.
In the deploy phase I'd then only re-build, tag and push for other tags than "continuous", using "continuous" as a cache. These would have passed the full CI so that "latest" and named tags should all be good. What do you think?

@sk1p

branch = env['branch']
is_master = branch == "master"
is_stable_branch = branch and STABLE_VERSION_PAT.match(branch) is not None

# ...

if is_stable_branch:
    tags.append("stable")

if is_master:
    tags.append("latest")

That means "latest" is also true for "continuous" and RCs? Intuitively I'd expect that "latest" is the latest stable release. How is it usually done on Docker?
A service release for an older release would overwrite "stable"? I mean, currently we only do service releases for the last stable release, it just looks like sth. that may throw us off course later.
Maybe "continuous", "latest" for the newest stable release, and named versions would be enough? Maybe one can list all tags an only update "stable" (resp. "latest", see above) if the tag is actually the newest stable tag?

I've just given it a shot. The build works locally on moellenstedt. There's a local test failure in the cache dataset which I don't fully understand. :-)

/azp run libertem.libertem-data

/azp run libertem.libertem-data

/azp run libertem.libertem-data

This should now be in a state where it can be reviewed again. :-)

@sk1p can you perhaps check the access token in CI? Somehow it isn't working. I'm not sure if it was working at all before because of the  || true to skip silently in case of failure.

It seems that "$DOCKER_ACCESS_TOKEN" is actually not "", otherwise it wouldn't try to run. It SHOULD be wrong and it SHOULD not be leaked if I push in this PR, so I'll just debug it's content and force-push it away after so that we don't have the dangerous state in Master.

We'd still have to see if the cache works also in CI. I had run the build locally and pushed libertem/libertem:triage, but it rebuilt the  whole thing. Locally, the cache worked.

can you perhaps check the access token in CI? Somehow it isn't working. I'm not sure if it was working at all before because of the  || true to skip silently in case of failure.

It definitely worked before, see for example the job logs for the latest master build here. It was also evident that the image was being pushed to docker hub. The CI job just won't have access to the token in the PR, so we will have to "test in master" for some of these changes...

We'd still have to see if the cache works also in CI. I had run the build locally and pushed libertem/libertem:triage, but it rebuilt the whole thing. Locally, the cache worked.

To reproduce this locally, it's a good idea to prune away the local images. For this to work, you first need to docker container prune to remove stopped containers, and then something like docker image prune -a to remove the images themselves.

It looks like I could reproduce and fix the issue locally. Apparently it was using an older version of python:3.9-slim, which made the cache ineffective in CI where it likely used a more recent version of python:3.9-slim.

It looks like I could reproduce and fix the issue locally. Apparently it was using an older version of python:3.9-slim, which made the cache ineffective in CI where it likely used a more recent version of python:3.9-slim.

That's a very good point, and good catch!

It looks like I could reproduce and fix the issue locally. Apparently it was using an older version of python:3.9-slim, which made the cache ineffective in CI where it likely used a more recent version of python:3.9-slim.

I just confirmed that this fixed the issue for me for locally building - after pruning the cache was successfully used :tada:

In CI it cached RUN apt-get update && apt-get install, but not RUN python3.9 -m venv /venv/. Probably we should see how it behaves in subsequent PRs when the first version from CI is pushed on Docker hub? Maybe there are subtle differences? 🤷

In CI it cached RUN apt-get update && apt-get install, but not RUN python3.9 -m venv /venv/. Probably we should see how it behaves in subsequent PRs when the first version from CI is pushed on Docker hub? Maybe there are subtle differences?

That is weird indeed, as you suggest, it could be differences in different docker versions (maybe?) - as I understand, a RUN layer should only run the command exactly once, and it should only be invalidated by previous layers: in this case, it should only be run if the builder0 layer is different from the previous run...

/azp run libertem.libertem-data

Should be ready for final review now! :-)

I'm now trying to run the dist tests locally, and it hangs at tests/test_ipython.py - is there anything special that now needs to be done for running dist tests locally? I just used dist-build.sh and ran docker-compose run tests afterwards. Maybe docs for this need an update, too? Or am I not supposed to use the dist-build.sh locally, and instead use docker-compose build, as documented?

Hmm, it works for me™ on Moellenstedt. We have to tell users to also "docker -compose down", by the way. Maybe that also helps in your case?

Hmm, it works for metm on Moellenstedt. We have to tell users to also "docker -compose down", by the way. Maybe that also helps in your case?

Yeah, there were still some old worker containers hanging around, now it makes progress!


Enhancement: change default output to JSON

We should change the default output mode to JSON. This will not only make it easier for folks to use CLI but will also help us align with the Azure CLI so it's easier for folks to use both.

#2599 duplicate


Add tox and tests

Sadly with python3 this fails with another issue in https://github.com/unbit/uwsgi/blob/2.0.18/uwsgidecorators.py#L29-L33 - it should not decode the bytes with utf-8 because pickle.dumps created them.
But I don't see how we can fix this from this library… this would need a fix in the decorators.py to not decode which wasn't encoded.

Hi guys! I tried to use this package, connected it to uwsgi spooler and finally encountered the error
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
from decorators.py. Is there any way to fix this issue or is this a dead end?

We fixed it by replacing https://github.com/unbit/uwsgi/blob/2.0.18/uwsgidecorators.py#L29-L33
with:
def _decode1(val):
    if sys.version_info >= (3, 0) and isinstance(val, bytes):
        # Fix decoding of bytestings from pickle dump
        try:
            return val.decode('utf-8')
        except UnicodeDecodeError:
            return val
    else:
        return val

The proposed fix is also working for me. Thanks @toabi!

Thanks @toabi and sorry for the late response, I haven't used this project in many years (I only used it in a small app where I didn't want to spin up a worker with celery or something else with a big infrastructure) thus I am not putting too much effort into it.
I will create a basic test just to cover task.py in order to make sure it is covered and this basic stuff still works.
If you would like you can also send what is interesting to you and I can cut some releases.
Thank you again!


Overhaul keymapping experience

 Issue by chaorace
Saturday May 20, 2017 at 20:29 GMT
Originally opened as https://github.com/CQUI-Org/cqui/issues/536

Currently, we offer only a few options for key bindings and the majority are completely hardcoded. We need to reimplement so that the majority of binds can be configured from an in-game UI. This feature won't be a main focus until more pressing issues like #514 and #271 are resolved, probably post-beta release

 Comment by chaorace
Saturday May 20, 2017 at 20:29 GMT

See issue #64 for related discussion, which this ticket absorbs, for related discussion

 Comment by JHCD
Sunday May 21, 2017 at 07:08 GMT

Hi Chris,
some of the bindings are changeable in the game already.
Do we have a chance to change them? Select option in CQUI-Gui -> Mapping in Civ GUI is changed?
Then we only have to build a gui for the "extended binding".
I didn't use any key bindings because of using a tablet.

 Comment by chaorace
Friday May 26, 2017 at 23:53 GMT

I'm only concerned with bindings introduced by CQUI. What you're suggesting is already what I had in mind from the outset.


changing logs

I'm using Pangamma's PixelStacker v1.14.2a to create schematics for schematica and recently found out that schematica changes all logs to oak. I'm using schematica <IP_ADDRESS> and I'm playing in minecraft version 1.12.2

I'm trying to make a pixel art from this picture:

and as you can see from this small area of the pixel art it has multiple log types:

but when I save it as a schematic and open it in minecraft it looks like this:

ps: I also just noticed more changes in blocks


How to debug backend in Pycharm or VSCode

I run the project with docker successfully, but I want to know how can I debug backend in PyCharm or VSCode step by step?

I checked #7 , but no satisfied answer. Can anyone provide best practice for debugging?

How would you normally debug something, what does that look like?
If you create tests then run the debugger through them I'd suggest setting up pytest integration and using pycharm's professional version connect it to the docker compose interpreter. A Google search for the keywords should get you there.

I run the backend individually. Steps as following.

copy  backend to your own directory.
add the code in the main.py:

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(
        "main:app",
        host="<IP_ADDRESS>",
        port=settings.SERVER_PORT,
        log_level="debug",
        reload=True,
        workers=1
    )

modify the config.py: add values to the variables(without value default)
e.g.:

SERVER_NAME: str = ""
SERVER_HOST: AnyHttpUrl = "http://<IP_ADDRESS>:10088"
PROJECT_NAME: str = "proName"
SENTRY_DSN: Optional[HttpUrl] = ""  # None --> ""

POSTGRES_SERVER: str = "postgres ip"
POSTGRES_USER: str = "database user"
POSTGRES_PASSWORD: str = "user password"
POSTGRES_DB: str = "db name"

SMTP_PORT: Optional[int] = smtp port with ssl (maybe 465)
SMTP_HOST: Optional[str] = "smtp server or others"
SMTP_USER: Optional[str] = "your email"
SMTP_PASSWORD: Optional[str] = "your password"
EMAILS_FROM_EMAIL: Optional[EmailStr] = "your email"
EMAILS_FROM_NAME: Optional[str] = "your name"

FIRST_SUPERUSER: EmailStr = "your email for admin"
FIRST_SUPERUSER_PASSWORD: str = "your password"

run main.py  --- the project maybe works.

I was able to get it working based on this repo: https://github.com/Kludex/fastapi-docker-debug
I can restart the backend container in debug mode and connect to the session via VS Code.
Launch.json
{
  "configurations": [
    {
      "name": "Python: Remote Attach",
      "type": "python",
      "request": "attach",
      "port": 5678,
      "host": "localhost",
      "pathMappings": [
        {
          "localRoot": "${workspaceFolder}/app",
          "remoteRoot": "/app"
        }
      ]
    }
  ]
}

docker-compose.debug.yml
version: "3.3"
services:
  backend:
    environment:
      - SERVER_NAME=${DOMAIN?Variable not set}
      - SERVER_HOST=https://${DOMAIN?Variable not set}
      # Allow explicit env var override for tests
      - SMTP_HOST=${SMTP_HOST}
    env_file:
      - .env
    build:
      context: ./backend
      dockerfile: backend.dockerfile
      args:
        INSTALL_DEV: ${INSTALL_DEV-false}
    command:
      [
        "sh",
        "-c",
        "pip install debugpy && python -m debugpy --wait-for-client --listen <IP_ADDRESS>:5678 -m uvicorn app.main:app --reload --host <IP_ADDRESS> --port 8000",
      ]
    volumes:
      - ./backend/app:/app
    ports:
      - 8000:8000
      - 5678:5678

networks:
  traefik-public:
    # For local dev, don't expect an external Traefik network
    external: false

Command to run backend in debug mode
docker-compose -f docker-compose.debug.yml up

I was able to get it working based on this repo: https://github.com/Kludex/fastapi-docker-debug
I can restart the backend container in debug mode and connect to the session via VS Code.
Launch.json
{
  "configurations": [
    {
      "name": "Python: Remote Attach",
      "type": "python",
      "request": "attach",
      "port": 5678,
      "host": "localhost",
      "pathMappings": [
        {
          "localRoot": "${workspaceFolder}/app",
          "remoteRoot": "/app"
        }
      ]
    }
  ]
}

docker-compose.debug.yml
version: "3.3"
services:
  backend:
    environment:
      - SERVER_NAME=${DOMAIN?Variable not set}
      - SERVER_HOST=https://${DOMAIN?Variable not set}
      # Allow explicit env var override for tests
      - SMTP_HOST=${SMTP_HOST}
    env_file:
      - .env
    build:
      context: ./backend
      dockerfile: backend.dockerfile
      args:
        INSTALL_DEV: ${INSTALL_DEV-false}
    command:
      [
        "sh",
        "-c",
        "pip install debugpy && python -m debugpy --wait-for-client --listen <IP_ADDRESS>:5678 -m uvicorn app.main:app --reload --host <IP_ADDRESS> --port 8000",
      ]
    volumes:
      - ./backend/app:/app
    ports:
      - 8000:8000
      - 5678:5678

networks:
  traefik-public:
    # For local dev, don't expect an external Traefik network
    external: false

Command to run backend in debug mode
docker-compose -f docker-compose.debug.yml up


Which tracking code should I use?

Hi, sorry if my question is silly but I'm wondering, which tracking code should I use?
import { defineNuxtPlugin } from '#app';
import VueGtag from 'vue-gtag-next';

export default defineNuxtPlugin((nuxtApp) => {
  const config = useRuntimeConfig();
  nuxtApp.vueApp.use(VueGtag, {
    property: {
      id: config.public.GOOGLE_ANALYTICS_TRACKING_CODE
    },
    appName: 'Website',
    pageTrackerScreenviewEnabled: true
  }, nuxtApp.vueApp.router);
});

So, should I use the Google Tag Manager Container's code which has the form GTM-XXXXXX or the Google Analytic's GA4 Property Code which has the form XXXXXXXXX (it is just 9 numbers. the universal's analytics code was UA-XXXXXXX-XX).
Thanks in advance.

I personally use the pageview to track all pages that the browsers access...
nuxtApp.vueApp.use(VueGtag, {
    property : {
        id : "Xxxxxx",
        params : {
            send_page_view : true --> by default it is false.
        }
    },

The GTM tag seems to not work because the GTM installation code is different.
I use the G-(GA4) property code to track all my data and custom events. But I am figuring out how to add GTM using this library because I need to add custom events with custom params, and (not completely sure) I need to setup GTM in order to do that


Would you be ok with making Prosopite.pause, Prosopite.scan, and Prosopite.resume handle nesting?

Hi @charkost
I've a situation where my specs do something like this:
let(:x) { create(:something) }
it "does that thing" do
  SomeService.new(something).call
end

The create(:something) uses FactoryBot to build a whole series of nested objects and relationships. I've wrapped specs in Prosopite.scan blocks as per https://github.com/charkost/prosopite
In my factories, some parts of the build code perform N+1 queries, and the let clause is triggering them. Since I'm trying to find N+1s in SomeService (not in my FactoryBot Factories) I'd like to ignore them. First question: Do you know of some way to avoid that?
The second problem that I'm encountering is that it doesn't seem that the pause/resume functionality is built with nesting in mind. If I pause at the top level, and then pause/resume in a 'lower' level, the second resume will un-pause the first pause. So if I Prosopite.pause inside a factorybot builder, and that builder uses another factorybot builder that also uses Prosopite.pause/Prosopite.resume, the second Prosopite.resume un-pauses the first one.
Here's a test that shows the behaviour.
  def test_pause_reentrant
    # 20 chairs, 4 legs each
    chairs = create_list(:chair, 20)
    chairs.each { |c| create_list(:leg, 4, chair: c) }

    Prosopite.scan
    # Immediately pause
    Prosopite.pause

    Chair.last(20).each do |c|
      Prosopite.pause
      c.legs.last
      Prosopite.resume
    end

    # This shouldn't trigger N+1s because we paused before the each loop above
    Chair.last(20).each do |c|
      c.legs.last
    end
    Prosopite.resume

    assert_no_n_plus_ones
  end

One way to avoid this would be to change pause and resume to increment a counter, and only resume fully on when the most-outmost resume is set. That'd mean undoing https://github.com/charkost/prosopite/commit/98bcb2bcab509722a3d1b4bad2db60ab970a3d14 though. I think there are other ways to deal with that problem though (someone calling resume when scan hadn't been called.

Related: https://github.com/flyerhzm/bullet/issues/435


Thanos gossip deprecated

Thanos has deprecated the gossip clustering.  Wanted to make sure maintainers were aware of the impending change.
see:
https://github.com/improbable-eng/thanos/blob/master/docs/proposals/approved/201809_gossip-removal.md
https://github.com/improbable-eng/thanos/issues/734

Thank you for notifying us.
Frederic, one of the Prometheus Operator developers/maintainers, is now one of the maintainers of Thanos too. We're in close contact with the Thanos developers and follow its development closely.
I'll close this and once we need to change the Operator for the next Thanos version we'll simply create a new issue or better - a PR. :relaxed:

Thanks for the heads up :) we'll need to update our API types, jsonnet, and docs to get rid of the peers field and add the new relevant FileSD stuff.

What @squat said :100: . I personally don't think this needs any integration in the Prometheus Operator, as all of this can be generated via jsonnet. Only the ruler component might need some integration eventually, but that's tracked in #2288.

Hi @squat @brancz and @metalmatze , seems that I still got gossip style manifest generated in the kube-prometheus project, just wondering if the changes to support thanos service discovery available now?

Thanks
Ben

No, we have not yet worked on this. Feel free to work on PRs for the necessary changes.

From what I understand this mostly means removing the flag from the current prometheus operator integration, more difficult is how can we enable the Querier to discover the stores. Maybe DNS discovery is sufficient though. It will need a little bit of investigation.

ok, I'll think about it.
From Thanos Query yaml , possible should allow Querier to add multiple --store args ?
And then add --cluster.disable to querier, store, ruler, sidecar, remove other cluster args
Ben

@brancz , looks like the thanos sidecar --cluster.address args  should be removed from prometheus operator thanos code, right?
And if gossip will not be supported anymore, maybe more code should be removed from the sidecar code ? for example:
https://github.com/coreos/prometheus-operator/blob/master/pkg/prometheus/statefulset.go#L687
https://github.com/coreos/prometheus-operator/blob/master/pkg/prometheus/statefulset.go#L690
https://github.com/coreos/prometheus-operator/blob/master/pkg/prometheus/statefulset.go#L693
https://github.com/coreos/prometheus-operator/blob/master/pkg/apis/monitoring/v1/types.go#L316
https://github.com/coreos/prometheus-operator/blob/master/pkg/apis/monitoring/v1/types.go#L346
https://github.com/coreos/prometheus-operator/blob/master/pkg/apis/monitoring/v1/types.go#L349

Cluster peers and advertise address can be removed yes, the GRPC advertise address needs to stay, as the querier still communicates with the store API.

And if gossip is deprecated, maybe more code should be removed from the sidecar args ?
If we still need to support gossip, then a switch is needed to turn it on/off

As gossip is being removed entirely, I see no value it having it stick around in this experimental API, so always off I'd say.

The thanos sidecar doc mentioned that :

So maybe the querier can comm with the store api by specifying --store args?

Good catch, sorry I was confusing grpc-address with grpc-advertise-address. You're absolutely right good catch! We should convert grpc-advertise-address to just grpc-address.


Updated auth-flow-bot

Added note for size of popup window for issue #2028 and duplicate issue #2344

Docs Build status updates of commit dfc22ce:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/authentication/auth-flow-bot.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit c7acc32:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/authentication/auth-flow-bot.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 3742f3e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/authentication/auth-flow-bot.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Physx3 cmake

Support for PhysX 3.x with CMake. I will make a thread very soon about this, basically NVidia doesn't supply binaries any more for PhysX and only source code access so you have to compile yourself. I will outline the steps in the forum post.
Also had to add two new macros for adding libs with CMake, addLibRelease and addLibDebug. The original addLib macro will work just as before but these two new macros allow the use of different libs for debug/release modes. The original addLib obviously still adds the lib to both builds so this will not change any other current CMake modules. Perhaps I should have split this into two separate PR's??
Tested with latest PhysX 3.3.4

Oh yeah if you are wondering why I didn't add VS 2010 CMake support for PhysX 3, that is because NVidia no longer support it.

It's only 5 years old! :x
Seriously though, this is cool. I'll be giving this a whirl along the weekend for sure.

Ok sweet, i'll install linux tonight and see if i can get it working there too and just amend this PR if i do.


DrupalVM Mysql Version Problems ubuntu1604

Issue Type

Bug Report / Support Request

Your Environment

Drupal 7
geerlingguy/ubuntu1604
Vagrant 2.0.1
Virtualbox: 5.2.6r120293
Ansible: <IP_ADDRESS>
python: 2.7.14

Your OS

macOS (version)

Summary

Vagrant up completes.
Experiencing almost never ending page load times. (literally 5 minutes plus). I believe this is due to mysql version being the newest and my db sync is coming from Acquia.
Seems to be fine with mysql 5.7.18. The latest which is installed automatically is a no go.
Work around right now is to use geerlingguy/ubuntu1404 since it defaults to lower my sql version.
If the problem is really upstream with mysql, is there a way to use a specified version?
Any work arounds you know of other than downgrading the box to 1404.

Hello geerlingguy  ,
again i am facing same issue , that will be great if you help us .


How to test the VGG?

i'm using your code to train the VGGNet on TensorFlow . Your work is really impressive, but i have a question about how to test the VGGNet. It seems like you have not added the test part to the code. Do i have to write it myself? Or maybe i just didn't notice the test part.. i really appreciate you or someone else can answer it.

I'll release the code of test part as soon as possible, thanks for your reply. Hope this repository can help you.


[Feature Request] Shutdown PC option

Ask: Drop-down option for 'Shutdown System'
Helpful for those using remote; I do 99% of the time.

Fixed with 3.7.0


Fix forbid-prop-types exploding on object spread

If you pass an object spread to propTypes, forbid-prop-types currently freaks out.  This at least keeps it from throwing a Cannot read property 'type' of undefined

Coverage decreased (-0.05%) to 96.754% when pulling 85118d0cf1d2aa84a405074915f90e1a3cf51397 on nevir:patch-1 into ffc2b9eefa937738f9c6d8048de819bd6d222446 on yannickcr:master.

Coverage decreased (-0.05%) to 96.754% when pulling 85118d0cf1d2aa84a405074915f90e1a3cf51397 on nevir:patch-1 into ffc2b9eefa937738f9c6d8048de819bd6d222446 on yannickcr:master.

Coverage decreased (-0.05%) to 96.754% when pulling 85118d0cf1d2aa84a405074915f90e1a3cf51397 on nevir:patch-1 into ffc2b9eefa937738f9c6d8048de819bd6d222446 on yannickcr:master.

Thanks! Could you please add a test that would have caught this bug, prior to your fix?

👍

Coverage increased (+0.003%) to 96.807% when pulling 4165c0d5586c11f4a2bf5b4601a98cdbe77d26ef on nevir:patch-1 into 6c46f57f6f4a3c3dc91f98cc9a7da3f379ae6a19 on yannickcr:master.

Sorry, missed your PR :( Seems it was fixed in https://github.com/yannickcr/eslint-plugin-react/commit/6950cbd73dd39385326cea233908df8232678450
But thank you for the fix :)


quarto on darwin is missing bin/tools/ subdirectory and can't run Deno scripts

Describe the bug
Quarto is missing the bin/tools/ subdirectory, and can't run scripts using Deno.
You should be able to call quarto run script.ts, and it will execute that script using deno, which is normally installed in bin/tools/
This is the help page for quarto run:
$ quarto run --help

  Usage:   quarto run [script] [args...]
  Version: 1.3.450

  Description:

    Run a TypeScript, R, Python, or Lua script.

    Run a utility script written in a variety of languages. For details, see:
    https://quarto.org/docs/projects/scripts.html#periodic-scripts

  Options:

    -h, --help              - Show this help.
    --log         <level>   - Path to log file
    --log-level   <level>   - Log level (info, warning, error, critical)
    --log-format  <format>  - Log format (plain, json-stream)
    --quiet                 - Suppress console output.
    --profile               - Active project profile(s)

  Commands:

    help  [command]  - Show this help or the help of a sub-command.

Steps To Reproduce
Run the following:
echo 'console.log("hello");' > script.ts
quarto run script.ts

It will result in this error:
WARNING: Specified QUARTO_DENO does not exist, using built in deno
ERROR: Error executing '/nix/store/g39cfbmkga19nxc1izgp21zrhxn4fv07-quarto-1.3.450/bin/tools/deno': No such file or directory (os error 2)

Error: Error executing '/nix/store/g39cfbmkga19nxc1izgp21zrhxn4fv07-quarto-1.3.450/bin/tools/deno': No such file or directory (os error 2)
    at execProcess (file:///nix/store/g39cfbmkga19nxc1izgp21zrhxn4fv07-quarto-1.3.450/bin/quarto.js:5630:15)
    at Object.run (file:///nix/store/g39cfbmkga19nxc1izgp21zrhxn4fv07-quarto-1.3.450/bin/quarto.js:122732:22)
    at runScript (file:///nix/store/g39cfbmkga19nxc1izgp21zrhxn4fv07-quarto-1.3.450/bin/quarto.js:103932:26)
    at eventLoopTick (ext:core/01_core.js:183:11)
    at async quarto (file:///nix/store/g39cfbmkga19nxc1izgp21zrhxn4fv07-quarto-1.3.450/bin/quarto.js:127524:26)
    at async file:///nix/store/g39cfbmkga19nxc1izgp21zrhxn4fv07-quarto-1.3.450/bin/quarto.js:127563:9

Expected behavior
It should print hello.
Additional context
Being able to call quarto run script.ts is needed for some extensions. For example, the shinylive extension (which I maintain) calls it here:
https://github.com/quarto-ext/shinylive/blob/213a995285e5f8c46293532f6cd9ac3e0d050b7a/_extensions/quarto-ext/shinylive/shinylive.lua#L417-L421
The cause of the problem is that, for darwin, it is downloading the linux tarball, and then removing the bin/tools/ directory here:
https://github.com/NixOS/nixpkgs/blob/985a00b9c3bd235f99e9b6f07ca754b605ee9a50/pkgs/development/libraries/quarto/default.nix#L59
I believe the solution is to download the Mac tarball and then not remove bin/tools/
Notify maintainers
@minijackson @mrtarantoga

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

system: "aarch64-darwin"
host os: Darwin 23.0.0, macOS 14.0
multi-user?: yes
sandbox: no
version: nix-env (Nix) 2.18.1
nixpkgs: /nix/store/mrckm9b3v6wg2fljdp3z4pja1sz07g3z-source

Another possible fix is to add this to the preFixup:
--prefix QUARTO_DENO : ${prev.deno}/bin/deno

This might be a cleaner solution.


Examples

Hello, thanks for making this cool tool! Can you add some examples to the start page, in addition to new and import?

Great idea! I'll start working on it.


developer time locked

I noticed that it is no longer counting the time since this period of 08/18/2022, it stuck at this value..

I apologize for the delayed response. The issue was caused by an unreasonable back-end design, which I have now completely rewritten to prevent similar errors from happening again in the future. Your satisfaction is our top priority, and we are committed to providing you with the best possible service. Thank you for your patience and understanding.


interactive plots in HTML output - how?

First, thank you for this great package. It has already helped me communicate my results using Julia. I have no doubt this package is improving scientific communication around the world.
In my view, what would really bring Weave reports to the next level are embedded interactive plots. Such a report is beyond a traditional document editor with static plots (e.g., MS Word). I have been trying to embed interactive plots within a Weave HTML report, and read issues #47 and #186. But so far I have been unsuccessful. I tried searching online but have not found examples or instructions for how to generate an interactive HTML output, so I thought to open this issue and ask for help.
I am using a Windows 7 machine and VS Code with the Julia extension (v.0.12.0). Here are my attempts:
Attempt 1
In the editor, I entered and ran the following:
using Plots
plotly()
plot(randn(100))

I save the file as "test_interactive_weave.jl". Then in the VS Code Julia console, I entered the following Weave command:
using Weave; weave("C:/Julia/test_interactive_weave.jl", out_path=:doc, doctype="md2html")
But in the rendered HTML file, I see the code but instead of a plot, I see red text that reads:

ERROR: only png or svg allowed. got: :html

Attempt 2
Next, I tried changing "plotly()" to "plotlyjs()", but after entering the same Weave command, in the rendered HTML output I see the following red text:

ERROR: UndefVarError: data not defined

Attempt 3
So then I tried changing the doctype to "pandoctohtml", i.e., the following Weave command:
using Weave; weave("C:/Julia/test_interactive_weave.jl", out_path=:doc, doctype="pandoc2html")
When I use plotly() as the backend and pandoctohtml, I see the "got :html" error as before:

ERROR: only png or svg allowed. got: :html

Attempt 4
And when I use plotlyjs() and pandoctohtml, I see the same "data not defined" error:

ERROR: UndefVarError: data not defined

Package status
The following is the output of using Pkg; Pkg.status()
  Status `C:\Users\jmarturano\.julia\environments\v1.1\Project.toml`
  [0825541b] ANOVA v0.2.0 [`C:\Users\jmarturano\.julia\dev\ANOVA`]
  [537997a7] AbstractPlotting v0.9.8
  [f9309374] ApplicationBuilder v0.4.0
  [b19378d9] ArrayFire v1.0.4
  [c52e3926] Atom v0.8.8
  [67c07d97] Automa v0.8.0
  [fbb218c0] BSON v0.2.3
  [ba4760a4] BayesNets v3.1.0
  [6e4b80f9] BenchmarkTools v0.4.2
  [00701ae9] BioAlignments v1.0.0
  [37cfa864] BioCore v2.0.5
  [7e6ae17a] BioSequences v1.1.0
  [a0d4ced5] BioServices v0.3.2
  [3c28c6f8] BioSymbols v3.1.0
  [fa51a905] BioTools v1.0.0
  [ad839575] Blink v0.12.0
  [e28b5b4c] Bootstrap v2.1.0
  [5f4fecfd] BrowseTables v0.3.0
  [336ed68f] CSV v0.5.9
  [aaaa29a8] Clustering v0.13.2
  [861a8166] Combinatorics v0.7.0
  [34da2185] Compat v2.1.0
  [8f4d0f93] Conda v1.3.0
  [3a865a2d] CuArrays v1.1.0
  [717857b8] DSP v0.5.2
  [d58978e5] Dagger v0.8.0
  [0fe7c1db] DataArrays v0.7.0
  [a93c6f00] DataFrames v0.19.1
  [864edb3b] DataStructures v0.17.0
  [7806a523] DecisionTree v0.8.3
  [0c46a032] DifferentialEquations v6.6.0
  [aaf54ef3] DistributedArrays v0.6.2
  [31c24e10] Distributions v0.21.1
  [a1bb12fb] Electron v1.0.0
  [89b67f3b] ExcelFiles v1.0.0
  [587475ba] Flux v0.8.3
  [da1fdf0e] FreqTables v0.3.1
  [38e38edf] GLM v1.1.1
  [8d5ece8b] GLMNet v0.4.2
  [28b8d3ca] GR v0.41.0
  [c91e804a] Gadfly v1.0.1
  [9bc6ac9d] GeneticVariation v0.4.0
  [c27321d9] Glob v1.2.0
  [aa1b3936] GraphIO v0.4.0
  [a2cc645c] GraphPlot v0.3.1
  [6735fb99] Hive v0.3.0
  [09f84164] HypothesisTests v0.8.0
  [7073ff75] IJulia v1.19.0
  [6a3955dd] ImageFiltering v0.6.4
  [916415d5] Images v0.18.0
  [c601a237] Interact v0.10.2
  [42fd0dbc] IterativeSolvers v0.8.1
  [6042db11] JDBC v0.4.1
  [033835bb] JLD2 v0.1.2
  [682c06a0] JSON v0.20.0
  [4076af6c] JuMP v0.19.2
  [a93385a2] JuliaDB v0.12.0
  [e5e0dc1b] Juno v0.7.0
  [031d7243] Keras v0.0.0 [`C:\Users\jmarturano\.julia\dev\Keras`]
  [5ab0869b] KernelDensity v0.5.1
  [b4fcebef] Lasso v0.4.0
  [093fc24a] LightGraphs v1.2.0
  [160ba089] LightGraphsMatching v0.1.0
  [4345ca2d] Loess v0.5.0
  [f0e99cf1] MLBase v0.8.0
  [add582a8] MLJ v0.2.3
  [da04e1cc] MPI v0.9.0
  [ee78f7c6] Makie v0.9.4
  [3bd8f0ae] Microbiome v0.4.0
  [e1d29d7a] Missings v0.4.1
  [ff71e718] MixedModels v1.1.6
  [f8716d33] MultipleTesting v0.4.1
  [6f286f6a] MultivariateStats v0.6.0
  [6ef6ca0d] NMF v0.4.0
  [be6f12e9] ODBC v0.8.4
  [47be7bcc] ORCA v0.2.1
  [a15396b6] OnlineStats v0.23.0
  [429524aa] Optim v0.19.2
  [9b87118b] PackageCompiler v0.6.4
  [eadc2687] Pandas v1.3.0
  [46a55296] ParquetFiles v0.2.0
  [f0f68f2c] PlotlyJS v0.12.5
  [91a5bcdd] Plots v0.26.0
  [f27b6e38] Polynomials v0.5.2
  [438e738f] PyCall v1.91.2
  [d330b81b] PyPlot v2.8.1
  [612083be] Queryverse v0.3.1
  [ce6b1742] RDatasets v0.6.3
  [b0e4dd01] RollingFunctions v0.6.2
  [c4c386cf] Rsvg v0.2.3
  [0aa819cd] SQLite v0.8.1
  [3646fa90] ScikitLearn v0.5.1
  [d2ef9438] Seaborn v0.4.1
  [47aef6b3] SimpleWeightedGraphs v1.1.0
  [e3819d11] Spark v0.4.0
  [60ddc479] StatPlots v0.9.2
  [2913bbd2] StatsBase v0.32.0
  [4c63d2b9] StatsFuns v0.8.0
  [2cb19f9e] StatsKit v0.3.0
  [3eaba693] StatsModels v0.5.0
  [8365b1bb] SubstitutionModels v0.4.0
  [fd094767] Suppressor v0.1.1
  [8a913413] Survival v0.1.0 [`C:\Users\jmarturano\.julia\dev\Survival`]
  [70df011a] TableReader v0.4.0
  [40c74d1a] TableView v0.4.0
  [1d978283] TensorFlow v0.11.0
  [a2db99b7] TextAnalysis v0.6.0
  [9e3dc215] TimeSeries v0.16.0
  [0796e94c] Tokenize v0.5.5
  [b8865327] UnicodePlots v1.1.0
  [0ae4a718] VegaDatasets v0.5.0
  [112f6efa] VegaLite v0.7.0
  [44d3d7a6] Weave v0.9.1
  [0f1e0344] WebIO v0.8.9
  [fdbf4ff8] XLSX v0.5.4
  [e88e6eb3] Zygote v0.3.2
  [8ba89e20] Distributed

I would appreciate any thoughts or help. Thank you for your time.

Related:
https://github.com/JuliaPlots/Plots.jl/issues/2003

Today the Plots team released v0.26.1 for Plots.jl (link here). So now we can at least produce an interactive output using the plotly() backend to Plots, like so:
using Plots
plotly()
plot(randn(100))

When I run the above with Plots.jl 0.26.1, and then Weave to html:
using Weave; weave("C:/Julia/test_interactive_weave.jl", out_path=:doc, doctype="md2html")
I do get an interactive html output. So I am closing this issue. Thanks.

I am getting issues too. When I put in the following:
using Plots
plotly()
plot(rand(10))

And then output via weave using:
weave((“doctest.jmd”), out_path=:pwd,doctype=“md2html”)
I get this:

Error:
[ Info: Weaving chunk 1 from line 7
┌ Warning: ERROR: BoundsError occurred, including output in Weaved document
└ @ Weave ~/.julia/packages/Weave/UOxmI/src/run.jl:243
[ Info: Report weaved to test.html
[ Info: Weaving chunk 1 from line 7
┌ Warning: ERROR: BoundsError occurred, including output in Weaved document
└ @ Weave ~/.julia/packages/Weave/UOxmI/src/run.jl:243
[ Info: Report weaved to test.html

With plotlyjs():

See: https://discourse.julialang.org/t/trouble-getting-weave-to-output-plotly-based-plots-on-html-document/34244

I am seeing the same issues reported here (for both plotly() and plotlyjs()). The linked thread indicated that an update to Julia 1.2 fixed the issue however I am on Julia 1.5.3.
Here are the installed package versions:
[717857b8] DSP v0.6.8
[682c06a0] JSON v0.21.1
[9b87118b] PackageCompiler v1.2.3
[58dd65bb] Plotly v0.3.0
[a03496cd] PlotlyBase v0.4.2
[f0f68f2c] PlotlyJS v0.14.0
[91a5bcdd] Plots v1.8.1
[44d3d7a6] Weave v0.10.6

Any help or insight very much appreciated!

Yeah it actually did stop happening for a while, I realize it was because of an update, but after I upgraded to Julia 1.5 it came up again. (Not sure if it is due to the Julia version).

I'm getting the same thing
  [58dd65bb] Plotly v0.4.0
  [f0f68f2c] PlotlyJS v0.14.1
  [91a5bcdd] Plots v1.16.2
  [44d3d7a6] Weave v0.10.9

julia> versioninfo()
Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)
Environment:
  JULIA_EDITOR = atom  -a
  JULIA_NUM_THREADS = 4

I'm getting the same thing as well,
(testplotlydocs) pkg> status
     Project testplotlydocs v0.1.0
      Status `~/projects/testplotlydocs/Project.toml`
  [e30172f5] Documenter v0.27.14
  [f0f68f2c] PlotlyJS v0.18.8
  [f3b207a7] StatsPlots v0.14.33
  [44d3d7a6] Weave v0.10.10

julia> versioninfo()
Julia Version 1.7.0
Commit 3bf9d17731 (2021-11-30 12:12 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin19.5.0)
  CPU: Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake)

Getting this during weave process of this code:
using StatsPlots
plotlyjs()

plot(rand(100))

┌ Info: Weaving chunk 3 from line 0
└   progress = 0.6666666666666666
┌ Warning: ERROR: UndefVarError occurred, including output in Weaved document
└ @ Weave ~/.julia/packages/Weave/lQPaO/src/run.jl:224

It works in the notebook in vscode, but not when trying to weave
the resulting html document showing, same result happens for markdown output as well.


the inaccurate rate limit in redis when the node time is different in the multi-node scenario

Describe the bug
We deployed 10 gateway nodes in production, and the rate limit tokens was inaccurate during the recent stress test.
Through tcp packet capture and reading lua script, it is found that when redis receives an old time command, it will fill the token unexpectedly, which often occurs in our production environment.
Guess that there may be problems in the following scenarios:

The machine time is inconsistent, with a slight deviation
When the gateway load is high, the connection is blocked and the execution of expired commands is postponed

Sample
I set both replenishRate and burstCapacity to 150.
And add log code to request_rate_limiter.lua
redis.log(redis.LOG_WARNING, "ip:" .. ip .. " timestamp:" .. now .. " allowed:" .. tostring(allowed) .. " new_tokens:" .. new_tokens)

For example, the time of node A is<PHONE_NUMBER>, after node A fills the token and consumes 2 token, and the time of node B is still<PHONE_NUMBER>, node B consumes 10 token, set the token refresh time to<PHONE_NUMBER>, then node A see refresh time is<PHONE_NUMBER>. will fill tokens again when timestamp is still<PHONE_NUMBER>.It will cause many tokens to be overissued
The following log take from redis server:
11097:M 21 Oct 2021 17:24:50.015 # ip:base-gateway-vip-644f49b956-fnvsh timestamp:1634808290 allowed:true new_tokens:149
11097:M 21 Oct 2021 17:24:50.015 # ip:base-gateway-vip-644f49b956-fnvsh timestamp:1634808290 allowed:true new_tokens:148
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808289 allowed:true new_tokens:147
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808289 allowed:true new_tokens:146
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808289 allowed:true new_tokens:145
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:149
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:148
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:147
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:146
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:145
11097:M 21 Oct 2021 17:24:50.070 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:144
11097:M 21 Oct 2021 17:24:50.071 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:143
11097:M 21 Oct 2021 17:24:50.071 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:142
11097:M 21 Oct 2021 17:24:50.071 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:141
11097:M 21 Oct 2021 17:24:50.071 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:140
11097:M 21 Oct 2021 17:24:50.083 # ip:base-gateway-vip-644f49b956-r69hc timestamp:1634808289 allowed:true new_tokens:139
11097:M 21 Oct 2021 17:24:50.083 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:149
11097:M 21 Oct 2021 17:24:50.083 # ip:base-gateway-vip-644f49b956-r69hc timestamp:1634808290 allowed:true new_tokens:148
11097:M 21 Oct 2021 17:24:50.083 # ip:base-gateway-vip-644f49b956-r69hc timestamp:1634808290 allowed:true new_tokens:147
11097:M 21 Oct 2021 17:24:50.083 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:146
11097:M 21 Oct 2021 17:24:50.083 # ip:base-gateway-vip-644f49b956-v87xp timestamp:1634808290 allowed:true new_tokens:145
11097:M 21 Oct 2021 17:24:50.088 # ip:base-gateway-vip-644f49b956-r69hc timestamp:1634808290 allowed:true new_tokens:144
11097:M 21 Oct 2021 17:24:50.088 # ip:base-gateway-vip-644f49b956-r69hc timestamp:1634808290 allowed:true new_tokens:143
11097:M 21 Oct 2021 17:24:50.088 # ip:base-gateway-vip-644f49b956-r69hc timestamp:1634808290 allowed:true new_tokens:142
11097:M 21 Oct 2021 17:24:50.088 # ip:base-gateway-vip-644f49b956-r69hc timestamp:1634808290 allowed:true new_tokens:141

Closed via #2411


build a captured picture file example

Hi,
i completed to build the ESP32-CAM support micropython bin file and loaded to the board. The current consumption looks reasonable. But, no idea on how to capture the image and save into a file. Can you help on an example script ? Or, please advise how to check out the supported class function. thanks million.
jasper

Hi,
There is only single function in the camera module called capture() which captures JPG image and returns that as a buffer.  You can see it being used in the web server script webcam.py. It returns the image as HTTP response, but it could just as well be saved into a file.
The capture() function currently does not take any parameters, so there is no control over the detailed sensor settings.  You can see the C implementation calling the camera driver here with those hardcoded sensor settings.

Hi, Can you send me a copy of your bin file? the email is<EMAIL_ADDRESS>

I uploaded firmware image here https://github.com/tsaarni/esp32-micropython-webcam/releases/tag/2019-02-24

Hi,
thanks for the upload... i measure the power consumption result (shown in below) and looks very close with my compiled code. i feel exciting and appreciate on your notes. but,, the remain question is : how to adjust the camera parameters such as resolution or AWB settings?  Please let me know which file to start with if possible.
thanks

The methods can be implemented in this file https://github.com/tsaarni/micropython-with-esp32-cam/blob/esp32-camera-for-micropython/ports/esp32/modcamera.c by following the example of existing methods. I used this document as reference how to add methods to micropython. You'll find also how to add methods with arguments, that is, how to convert between Python and C data types.  Rest of the type conversion methods are defined here.
The functions to control the sensor seem to be listed here. To controlling resolution, I only find set_framesize() which takes enumeration framesize_t argument (defined in the same file).  I'm not sure though, if this is the only way to control resolution.
So I think minimum viable code could look something along the lines like this
STATIC mp_obj_t camera_set_framesize(mp_obj_t framesize_obj){
    framesize_t framesize_enum = mp_obj_int_get_truncated(framesize_obj);
    sensor_t *control = esp_camera_sensor_get();
    set_framesize(control, framesize_enum);
    return mp_const_true;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(camera_set_framesize_obj, camera_set_framesize);

STATIC const mp_rom_map_elem_t camera_module_globals_table[] = {
    // all the existing methods remain also here but add following....
    { MP_ROM_QSTR(MP_QSTR_capture), MP_ROM_PTR(&camera_set_framesize_obj) },
}

Of course this would leave lot to be desired from usability and error handling. Note: I have not tested this, so it probably does not even compile, but I hope it provides a starting point anyway!

I checked the resolution issue a bit more and I suspect that the sensor has fixed resolution options. So maybe rest would need to be done in software.
If you look at the driver the set_framesize() function for ov2640 supports only three options out of the framesize_t enum: UXGA, SVGA, CIF.  The information in the datasheet of ov2640 seems to match (see
bits for resolution selection in table 13 on page 24).


Update co19-co19.status to reference co19 issue.

@whesse @peter-ahe-google
Fixes #27183

Closing as stale, cc @lrhn FYI


[#731][FOLLOWUP] feat(Spark): Configure blockIdLayout for Spark based on max partitions

What changes were proposed in this pull request?
The configuration of the block id layout for Spark2 and Spark3 can be simplified and by only providing the maximal number of partitions.
Why are the changes needed?
Currently, three values have to be provided: the number of bits for sequence number, partition id and task attempt id. The task attempt id has to provide more bits than the partition id, in the sense that the maximal number of attempts can be stored. This requires to also account for speculative execution.
The RssShuffleManager can do the computation and derive the optimal block id layout configuration from the maximal number of partitions only.
Does this PR introduce any user-facing change?
Adds optional configuration spark.rss.blockId.maxPartitions.
How was this patch tested?
Unit and integration tests.

NOTE: if the client does not send any layout, the BlockIdLayout.DEFAULT has to be used by the server. The default config will use the optimal layout for $2^{20}$ partitions, which is explicitly sent as a layout to the server.


feat: Indicator whether KeepAwake functionality is supported

Is your feature request related to a problem? Please describe:

At the moment there seems to be no easy way to determine whether or not the Browser supports KeepAwake without calling it once, and fishing for an exception. It would be handy if the plugin would supply this information.
Describe the solution you'd like:

Ideally, KeepAwake would have a boolean-prop that I can read once during the initialisation of my app that tells me whether or not the plugin will work.
Describe alternatives you've considered:

My current workaround is to try calling keepAwake() once when my app starts, and see if it throws an error:
import { KeepAwake } from "@capacitor-community/keep-awake"

const KEEP_AWAKE_TEST = KeepAwake.keepAwake()
  .then(() => {
    KeepAwake.allowSleep()
    return true
  })
  .catch((e) => {
    return false
  })

// then, later:
const keepAwakeAvailable = await KEEP_AWAKE_TEST
if (keepAwakeAvailable ) { /* ... */ }

Additional context:

n.a.

Hi @Sirs0ri,
thank you for your request.
I created a dev version. You can give it a try:
npm i<EMAIL_ADDRESS>


Connect to database using environment variables

refactored DBClient class
parametrized database connection string to use environment variables

good to go.

good to go.


[T4A4][T16-B1]Xie Jihui

Ready for review

Avoid accumulating unrelated changes into a single PR.
Tip: If you are currently on branch1 and want to create a new branch2, you need to switch back to master branch before creating branch2. If not, changes in branch1 will appear in the PR created from branch2 later.

@xjh666 Good effort. Some comments added. Please close the PR after reading comments.


fix(deps): update gaxios

fix: update gaxios to 2.1.0 to resolve https-proxy-agent vulnerability https://www.npmjs.com/advisories/1184

@loganhasson thank you for the contribution.

@bcoe thanks for getting it approved and merged so quickly!


docs: update typing -> typing_extensions for TypedDict

Nice - can we add a lint rule?

we don't currently lint notebooks, but i think worth adding a linter! will add next week


[1200] save on form - degree details

Context
https://trello.com/c/HYRdwMNN/1200-m-implement-save-on-confirm-degree-details
Changes proposed in this pull request

Many degrees for a trainee, had to think of a new way to deal with this
Created DegreesForm, which has many DegreeForm
DegreeForm represents individual Degree and is used in the view to create/update
DegreesForm knows how to store the data in FormStore

Guidance to review

 [M] Implement save on confirm - degree details

All good


Compile Error for compiling bidaf-9 with 'onnx.CategoryMapper' op input rank must be one or two

We get the following error for compiling bidaf-9 by the latest main branch ( cd7cf7eef3d045c63732731929ba2867a804c6c5 ), because one CategoryMaper has rank-4 input tensor.
Error Message
./build/Debug/bin/onnx-mlir -mcpu=z14 --EmitONNXIR  bidaf-9.onnx
loc("CategoryMapper_5"): error: 'onnx.CategoryMapper' op input rank must be one or two

CategoryMapper op in bidaf-9 causing the error (Rank of input is 4)
   %56 = "onnx.CategoryMapper"(%arg1) {
        cats_int64s = [0, 137, 114, ..., 136], cats_strings = ["", "\E1\B9\83", "<", ..., "\C9\92"],
        default_int64 = 1 : si64, default_string = "_Unused", onnx_node_name = "CategoryMapper_5"} :
        (tensor<?x1x1x16x!onnx.String>) -> tensor<*xi64>

In the definition of the (  https://github.com/onnx/onnx/blob/main/docs/Operators-ml.md#ai.onnx.ml.CategoryMapper ), the input tensor's rank should be [N,C] or [C], so that rank should 1 or 2.
CategoryMapper op definition
ai.onnx.ml.CategoryMapper
Converts strings to integers and vice versa.
...
Inputs
X : T1
    Input data
Outputs
Y : T2
    Output data. If strings are input, the output values are integers, and vice versa.

Type Constraints
T1 : tensor(string), tensor(int64)
    The input must be a tensor of strings or integers, either [N,C] or [C].
T2 : tensor(string), tensor(int64)
    The output is a tensor of strings or integers. Its shape will be the same as the input shape.

How should onnx-mlir support Bidaf-9?
Although the rank3+ inputs are illegal, onnx-mlir can handle any rank(shape) of input, because it simply sets shape of the input as shape of the output.

Created https://github.com/onnx/models/issues/601 as an issue on onnx.model and https://github.com/onnx/onnx/issues/5118 as an issue on onnx.

Thanks @negiyas I let you decide when to close this one.


[CI] osbuild vhd boot tests are failing (ServiceCode=AuthenticationFailed)

osbuild Schutzbot test failing, TestImages/fedora_33-x86_64-vhd-boot.json/boot :
[2021-06-19T10:15:49.512Z]         	            	===== RESPONSE ERROR (ServiceCode=AuthenticationFailed) =====
[2021-06-19T10:15:49.512Z]         	            	Description=Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
[2021-06-19T10:15:49.512Z]         	            	RequestId:44e0fd93-301e-002e-3bf4-6464d8000000
[2021-06-19T10:15:49.512Z]         	            	Time:2021-06-19T10:15:49.0342378Z, Details:
[2021-06-19T10:15:49.512Z]         	            	   AuthenticationErrorDetail: The MAC signature found in the HTTP request 'DHpHxQP/XYWkyGNqUwXYblt2HAgcg3crfy/oxqjUEC8=' is not the same as any computed signature. Server used following string to sign: 'PUT
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-cache-control:
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-content-disposition:
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-content-encoding:
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-content-language:
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-content-length:2147484160
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-content-type:
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-sequence-number:0
[2021-06-19T10:15:49.512Z]         	            	x-ms-blob-type:PageBlob
[2021-06-19T10:15:49.512Z]         	            	x-ms-client-request-id:5f7f26c1-1f1c-4e5e-68b0-3f81901ea643
[2021-06-19T10:15:49.512Z]         	            	x-ms-date:Sat, 19 Jun 2021 10:15:47 GMT
[2021-06-19T10:15:49.512Z]         	            	x-ms-tags:
[2021-06-19T10:15:49.512Z]         	            	x-ms-version:2019-12-12
[2021-06-19T10:15:49.512Z]         	            	/travisciuploads/travisciuploads/image-fedora33-x86_64-copy_stage_fixes-2.vhd
[2021-06-19T10:15:49.512Z]         	            	timeout:61'.
[2021-06-19T10:15:49.512Z]         	            	   Code: AuthenticationFailed
[2021-06-19T10:15:49.512Z]         	            	   PUT https://travisciuploads.blob.core.windows.net/travisciuploads/image-fedora33-x86_64-copy_stage_fixes-2.vhd?timeout=61
[2021-06-19T10:15:49.512Z]         	            	   Authorization: REDACTED
[2021-06-19T10:15:49.512Z]         	            	   Content-Length: [0]
[2021-06-19T10:15:49.512Z]         	            	   User-Agent: [Azure-Storage/0.12 (go1.15.8; linux)]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Cache-Control: []
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Content-Disposition: []
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Content-Encoding: []
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Content-Language: []
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Content-Length: [2147484160]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Content-Type: []
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Sequence-Number: [0]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Blob-Type: [PageBlob]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Client-Request-Id: [5f7f26c1-1f1c-4e5e-68b0-3f81901ea643]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Date: [Sat, 19 Jun 2021 10:15:47 GMT]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Tags: []
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Version: [2019-12-12]
[2021-06-19T10:15:49.512Z]         	            	   --------------------------------------------------------------------------------
[2021-06-19T10:15:49.512Z]         	            	   RESPONSE Status: 403 Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
[2021-06-19T10:15:49.512Z]         	            	   Content-Length: [1012]
[2021-06-19T10:15:49.512Z]         	            	   Content-Type: [application/xml]
[2021-06-19T10:15:49.512Z]         	            	   Date: [Sat, 19 Jun 2021 10:15:48 GMT]
[2021-06-19T10:15:49.512Z]         	            	   Server: [Microsoft-HTTPAPI/2.0]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Error-Code: [AuthenticationFailed]
[2021-06-19T10:15:49.512Z]         	            	   X-Ms-Request-Id: [44e0fd93-301e-002e-3bf4-6464d8000000]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]
[2021-06-19T10:15:49.512Z]         	Test:       	TestImages/fedora_33-x86_64-vhd-boot.json/boot
[2021-06-19T10:15:49.513Z]         	Messages:   	upload to azure failed, resources could have been leaked

I forgot to update credentials in Jenkins after I accidentally deleted the storage bucket. This is now fixed.

I'm working on getting a lock on the storage account so this never happens again.

The storage account is now locked! This shouldn't ever happen again! cc @jrusz @atodorov


Refactor divider component

style guide:

https://github.com/rwwagner90/angular-styleguide-es6

notes:

add documentation code with djeni
use templateUrl and create a template file
use $scope on controller rather than this or self

Closed by #52


Detailed name instead of abbreviations

Give detailed name instead of abbreviations for each

@tvnmguy thanks for the suggestion. Well, this would be nice to avoid confusions between currency abbreviations and all. The currencies you see in the list are picked up from exchangeratehost, I used abbreviations during development since I thought this would have been easier but it seems some users might have difficulty. I have picked up the detailed names with this query here: https://api.exchangerate.host/symbols and will probably support this in the upcoming updates. This would be heck of a task tho :).


Gitbook docs

So @damianh decide yourself :) If you like the Gitbook, all you will need is to accept the PR and configure the build somewhere. I can explain how to build on Appveyor. Basically any build server would do, just run some commands from docs.yml

I'm going to follow squirrel.windows and put the docs directly in the repo. Simpler all round I feel. Thanks for sharing the idea.


[FLINK-3951] Add histogram metric type

This PR introduces an interface for Flink's histogram metric type Histogram and the corresponding statistics HistogramStatistics. The Histogram interface allows to update the histogram with new values , retrieve the number of collected values and to obtain a HistogramStatistics object which represents the current statistics of the histogram. The values must be of type long.
The HistogramStatistics allows to compute the mean, min, max and values for quantiles based on the element distribution calculated by the histogram.
An implementation of the Histogram interface is contained in the flink-metrics-dropwizard module. The implementation wraps a dropwizard histogram via the DropwizardHistogramWrapper class. This is currently the only implementation of Histogram. If needed, we can add a histogram implementation to flink-core later. But for the moment histograms are intended to be used as user metrics. Histograms add computational overhead which should not be imposed on the runtime per default.
The histogram' statistics are reported by all currently supported MetricReporters. The JMXReporter introduces a JmxHistogramMBean interface for this purpose. The StatsDReporter reports the individual values of the HistogramStatistics object as gauge values. The ScheduledDropwizardReporter wraps the Histogram in a HistogramWrapper and the HistogramStatistics in a HistogramStatisticsWrapper so that they can be given to Dropwizards' own reporters. As an optimization, the ScheduledDropwizardReporter detects a DropwizardHistogramWrapper and unwraps the dropwizard histogram which is then used for reporting.

-1. I haven't looked very deeply at the actual code but let me share some thoughts:
I was under the impression that the core of this issue was to implement at least 1 Histogram that does not rely on another library. It should contain at least one to guarantee that the compatibility layer works properly.
The original PR for the metric system already contained wrapped DropWIzard Histograms, which were specifically taken out as they did not meet our performance needs. Why we now essentially revert this decision now 2 weeks later is beyond me. I also hope you did not spend too much time writing this as a lot of similar code already existed.
As such I really don't see the point of the DropWizardWrapper. IMO the only thing we need is the HistogramWrapper class, which may require a more distinctive name btw. . We should not expose a DW -> Flink compatibility layer, next up people want to use DW Timers, Gauges etc. as well. This will simply create more work for us.
The original PR also contained the flink-metric-reporters module as flink-metrics. Now we revert this again as well. Just...wth.

We decided to add the histogram metric, because users requested this feature. The important thing is that the histograms are not used by the runtime per default, because they indeed don't come for free. But if the user decides to use such a metric, then he should be able to explicitly register a histogram.
Additionally, we don't want to add a strict dependency on dropwizard from flink-core. Therefore, I introduced the Histogram interface which effectively hides the concrete implementation. So later we can easily swap the implementation out.
One of these implementations is the DropwizardHistogramWrapper which allows you to use Dropwizard histograms in Flink. The reason for this is that Dropwizard's Histogram has already a lot of functionality (different reservoirs for sampling streams, for example) and it would be a lot of duplicate work to reimplement it.
Since the assumption is that Histograms are a user metric, it seems to be ok for me to not ship an implementation of the interface with flink-core but to require the user to include an additional module such as flink-metrics-dropwizard. This module would add the dropwizard dependency anyway. If necessary, then we can also add our own histogram implementation later.
The PR does not introduce a Dropwizard compatibility layer. Dropwizard is only one of many possible implementation for our metrics (counter, gauge and histogram so far). It is up to the community to decide which other metrics to add.
I agree that the naming of HistogramWrapper is not so distinctive. I actually sticked to the naming scheme for Counter and Gauge which are called CounterWrapper and GaugeWrapper. This can be  easily changed. Do you have a proposal?
I'm sorry if you feel angry because you already did some of this work which was later removed. But please keep in mind that not everyone was involved in the metrics PR.

So we don't want to tie ourselves to DropWizard histograms, but the only way for users to use a histogram right now without implementing one themselves (something that is too much work for us apparently) is to rely on DropWizard histograms. This doesn't really fit together.
Could we add other implementations? Sure! But I have a hard time believing that we'll ever get around to doing that. If it doesn't make sense now to implement one because the DW ones offer so much functionality, when would it?

Yes the idea is introduce the histogram abstraction which allows us to use any histogram implementation. At the moment we don't have a need for an optimized implementation which might change in the future, though. Thus, for the time being I think it is a good compromise to offer the user the possibility to use Dropwizard histograms in his user code.
With that in mind, I don't understand why things are not fitting together? What do you propose? Adding Dropwizard histograms to flink-core?

Thanks for your review @zentol. I've addressed your comments modulo the naming question of getValue and the percentile convenience methods. Let's try to figure out what's the best solution for them.

I applied the requested changes.

merging


Extract $releaseDatetime in order to share a common release datetime between parallel deployments.

Yes, this is good feature. But it will not working in parallel mode. I will implement distributed Deployer parameters, so it will be possible to implement correct solution for this in parallel deployment mode.

Build fails.

@elfet With the latest change, I've created an global variable called release_identifier, which is more generic than before, and allows users to redefine how they want their release identifier to work so they could use the old numbering system if they prefer it).

Or the VCSs revision/hash. Just saying :smile:

If I'm not mistaken, the way Capistrano does it is to append the release at the end of a file containing the list of releases. Whatever the identifier is, it'll be possible to figure out which release came before/after which one based on the ordering in the file. It shouldn't be too hard to implement this feature if enough people want it.

Just tried it myself: Capistrano3 keeps a log of revision it deployed, but that seems to be just a log.
$ cat revisions.log
Branch master (at bdd236b) deployed as release<PHONE_NUMBER>4035 by sebastian

It still creates the actual deployments into folders based on the timestamp and delete them in order. However, that doesn't me deployer can't do it differently :smile:

Will be implemented in Deployer v4.


Unable to pull amplify environment using 'amplify pull'

Step 1: I removed notifications and analytics as I was unable to disable FCM notifications options using "amplify update notifications".
Step 2: I tried pulling using 'amplify pull'. The following is the output.
Select the authentication method you want to use: AWS profile
For more information on AWS Profiles, see:
https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html
? Please choose the profile you want to use qapp develop
? Which app are you working on? XXXXXXXX
? Pick a backend environment: develop
🛑 Failed to pull the backend.
invalid bit length repeat

Hey @Qruiser :wave: thanks for raising this! Would you mind porting this over to our bug template to help us gather additional context around your issue?

Hey @Qruiser :wave: following up here, would you mind porting this issue over to one of our issue templates?

Closing since this was opened with the wrong template. As requested by @josefaidt, please reopen using the bug template.


Questions about reproduction

Hi, first of all, thanks for the great resource. I'm now trying to reproduce the results of UNIIR CLIP score fusion in Table11. I have two questions regarding to the results.

An obvious difference between my reproduction and paper results on MSCOCO task1 and Visual News task4. Is there any possible issue here?
I observe slight variations in my reproduction and paper results on the other tasks. Does the variation come from randomly sampled instructions and is this an acceptable variations?

Hi,
Thank you for reaching out and for your interest in reproducing our results. I appreciate your efforts and am happy to clarify the discrepancies you've encountered.
Regarding the differences observed in MSCOCO task 1 and Visual News task 4, it's important to note that the released checkpoint was retrained and is not the same one used to produce the initial results published on Arxiv. Unfortunately, the original checkpoint was lost during a server system cleanup.
From our subsequent experiments with the new checkpoint, we've noticed variations across different tasks—some show improved performance, while others do not perform as well. We believe these discrepancies are likely due to the random sampling of instructions during training. To provide a benchmark, the average R@1, R@5, and R@10 across M-BEIR for CLIP_SF reported in Table 11 on Arxiv were 30.5, 50.3, and 59.8, respectively. The results from the new checkpoint are 28.9, 48.7, and 58.0(From my experiments). Given that this represents a degradation of less than 2%, we consider these variations to be within an acceptable range.
We have updated the results table in the version of the paper currently under review, and we plan to update the Arxiv version once the review process is complete.


"Not a valid bencoded string."

I'm sorry for asking for assistance once again, but I just can't succeed in downloading all the .torrent files based on my query [yts-scraper -q 1080p -r 7].
I try using the "yts-scraper -q 1080p -r 7" query, which works fine at first, but it always stops after a certain percentage, 19% in this case. I can never get to 100%, not with nor without the <-m> addition.
Since I didn't want to run the query again starting from page 1, I wanted to use your <-p> addition.
But for some reason the pages in CMD differ from the ones on the actual https://yts.mx/ site.
That isn't a huge issue however, since I can always go back or ahead a few pages to pick up where the scraper left off.
The main problem though is that I couldn't get any of the .torrent files to open after completion.
I always get an error in Deluge, saying "not a valid bencoded string".
Could you maybe try to run the entire <yts-scraper -q 1080p -r 7> command to see what happens to you?
It would help if you could filter out certain years to narrow down the search. So an extensions to the <-y> addition where you could set both a start and end year. Is that possible?
Regardless of the outcome, thanks again for taking your time to look into this! :)

Hello, there! Thank you for the feedback.
I started working on this bug but I reckon it will take some time to pinpoint the issue because at this moment YTS API is behaving rather oddly. I do not really know what is going on with it so I will have to look deeper into it.
It is also weird that it stops suddenly without any errors. I mean, if it was a broken URL or empty binary content it would result in an error, not a sudden termination. So, it seems we are in for a ride but it is going to be fun 😊
Regarding the issue with torrent files not opening; I only test these on Qbittorrent and they all work fine. Did you try another torrent client? Are all of them broken? I also heard that in some countries ISPs corrupt torrent files on purpose because of government restrictions so can you try using a VPN?
Best regards!

Hi
Thanks for picking this up so quickly!
I haven't tried another torrent client yet, I'll make sure to give that a try!
I do use a VPN service already, but I'll toy around with that as well!
Have fun! :p

Just gave it try with qBittorrent and with several .torrent files, but the issue seems to persist.

Have you tried a different VPN, preferably a tunnel to a country with looser torrenting restrictions?

When trying a VPN based in for example India or Brazil instead of a western country, it does seem to make a difference. So in other words, the .torrent files are indeed still valid when using those countries. Good thinking! :p

I am glad that worked you :) Since this particular issue is related to ISP's file corruption practices and not to the script itself, I will close it. I will work on the other problem when I have time.
Best regards


Precise error messages

Motivation
The purpose of this merge request is to improve error handling when loading models in our system. Currently, when a user enters an invalid API key, the model call fails and a generic error message is displayed. This can be frustrating for the user who is left guessing what went wrong.
Changes

Introduced a new component and type to standardize error messages.
Updated the error message displayed when loading models with an invalid API key to be more precise and informative.

Tests

love it! Users will love this


Update Oasis.app to Summer.fi

Networks:

Mainnet
Optimism

Team information

Project logo: Logo is updated.
Project landing page: https://summer.fi/
Team or discord contact: discord.gg/summerfi
Twitter link: @summerfinance_
Github link: https://github.com/OasisDEX
Text: Borrow, Multiply and Earn on the assets you hold across multiple protocols.

Hey @javierOasis thank you for notifying.
There are some recommendations regarding your app. You should update and use @safe-global/safe-apps-sdk instead @gnosis.pm/safe-apps-sdk
From the version you are using you shouldn't find any major change
https://www.npmjs.com/package/@safe-global/safe-apps-sdk
Regarding @gnosis.pm/safe-apps-web3-react there is no longer support to that package because when using web3 react v8 it's supported by default
https://github.com/Uniswap/web3-react/tree/main/packages/gnosis-safe
Not sure why you would need web3-react and web3-onboard at the same time, but I would recommend a cleanup there