BlueImg jQuery Image upload not working for specific images

I'm facing a very strange issue that some of the images aren't uploading using this plugin After selecting these image nothing happen, no ajax call or any error appear in console.
I've increase upload limit on server as well. Attached is the image which is not uploading and the code I'm using.

   $('#fileupload').fileupload({
    dataType: 'json',
    autoUpload: true,
    url: '<?php echo base_url(); ?>/user/upload_img',
    acceptFileTypes: /(.|\/)(gif|jpe?g|png|tif)$/i,
    maxFileSize: 999000,
    beforeSend: function() {
        console.log('before send called');
        $(".hidebutton").hide();
        $(".showContinue").show();
        $(".confirmationImages").addClass('ConfirmationAlert');
    },
    always: function (e, data) {
        var count=parseInt($("#output").html());
        count= count+data.files.length;
        $("#output").html(count);
    },
    complete: function() {
        $(".hidebutton").hide();
        $(".showContinue").show();

    }
}).on('fileuploaddone', function (e, data) {
    var activeUploads = $('#fileupload').fileupload('active');
    if(activeUploads == 1) {
        $(".confirmationImages").removeClass('ConfirmationAlert');
    }
}).on('fileuploadadd', function (e, data) {
    console.log('file added');
});

File added appear in console after selecting file, but after that nothing happen. Thanks!

We have had the same issue come out of no where today, just not uploading for certain images. We have trawled through our code but haven't changed anything in months and was all working.

@nathan-dealerwebs  yes it just came out of no where, and the weird thing is that this same image is getting uploaded on demo website given here.

Same problem here, see my other thread.

@tdeveloper2020  please share that thread's link here. Thanks!

@umairm638 https://github.com/blueimp/jQuery-File-Upload/issues/3638

https://github.com/blueimp/jQuery-File-Upload/issues/3638

Also, we found the exact same thing, if we exported it in Photoshop it worked. Example in #3638 with the one that worked and the one that didn't.

Hi everyone,
there have been breaking changes in the (optional) blueimp-load-image dependency regarding Exif Thumbnail data handling: cb6943f (see also this comment on the nature of the breaking changes).
The dependency is required for the image processing plugin, but marked as optional as it's not required for the basic plugin.
My assumption is that you're including this dependency directly from GitHub as in the demo?
(search for https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js in your source code)
If you've followed the setup guide there's a note at the top regarding inclusion of external dependencies:

Although the demo implementations contained in this repository include source files from remote servers, it is recommended to download all dependencies and upload them to your own server.

The reason for this note is such breaking changes in those external dependencies, it's strongly recommended to include them in your project via NPM or other means.
How to fix this:

Upgrade to the latest version of jQuery File Upload (it accounts for the breaking changes in it's image processing plugin)
Or include a static older (<5) version of blueimp-load-image in your projects.

Please let me know if this helps so we can close this issue.

Hi @blueimp  thanks for your response.
I've tried by including blueimp-load-image version 4, it has now started uploading jpg images but still getting issue with JPG and TIF files.
You were right the previously this file was directly included from GITHUB.

Please test the problematic images on this demo page:
https://blueimp.github.io/JavaScript-Load-Image/
If they fail to load there it’s an issue in blueimp-load-image and I would appreciate if you could file an issue in that project with links to the reference images.
Otherwise I would recommend you to update to the latest version of both projects and see if that solves the issue.

Hi,
same problem here. Not sure if this an issue with the load-image plugin or the jquery-image-upload plugin. As this github issue describes the problem very well, i will comment on this one.
I've tried with this plugin versions:
"blueimp-file-upload": "10.20.0",
"blueimp-load-image": "5.5.0",

The problematic image file can be found here:
https://drive.google.com/open?id=1FUE1Ztg_xBuSSDNYlFv_yQa61-ij0qyL
The image has been edited with Adobe photoshop.
Stephan

Hi everyone,
there have been breaking changes in the (optional) blueimp-load-image dependency regarding Exif Thumbnail data handling: cb6943f (see also this comment on the nature of the breaking changes).
The dependency is required for the image processing plugin, but marked as optional as it's not required for the basic plugin.
My assumption is that you're including this dependency directly from GitHub as in the demo?
(search for https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js in your source code)
If you've followed the setup guide there's a note at the top regarding inclusion of external dependencies:

Although the demo implementations contained in this repository include source files from remote servers, it is recommended to download all dependencies and upload them to your own server.

The reason for this note is such breaking changes in those external dependencies, it's strongly recommended to include them in your project via NPM or other means.
How to fix this:
* Upgrade to the latest version of jQuery File Upload (it accounts for the breaking changes in it's image processing plugin)

* Or include a static older (<5) version of [blueimp-load-image](https://github.com/blueimp/JavaScript-Load-Image) in your projects.

Please let me know if this helps so we can close this issue.

I had the same issue!
Thanks! This solved the problem. I referenced somewhere  https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js. So i downloaded a older version from it and now it works perfectly fine, as always.
I just don't wanted to do an update, cause then, I would had to do a adjustment on my custom template.

Thanks a lot for providing the problematic image @stijink!
It allowed me to identify the issue and release a fix (new minor version of blueimp-load-image).
That image has a Thumbnail directory (IFD1), but the thumbnail length is set to 0.
In such a case, blueimp-load-image returned the original Thumbnail offset instead of a Blob, which did not evaluate as falsy value (offsets are positive integers) and led to issues in jQuery File Upload's image processing.
The new version of blueimp-load-image now returns undefined for the Thumbnail Blob in those cases, which fixes the issue in jQuery File Upload.

@blueimp Thank you very much for the fast response and the fix. I'll integrate it right away :)

I'm closing this issue as fixed.
If you still have related issues, please feel free to post further comments here.

I'm closing this issue as fixed.
If you still have related issues, please feel free to post further comments here.

i just realised i have this problem,  what do i need to do to fix it ?

@zubinnt, in the case of this issue here, the fix was to update to the latest version of blueimp-load-image, which is an optional dependency for jQuery File Upload if you need image processing capabilities.

thanks for the reply,  i did replace all the js files,  do we need to
change anything on the upload landing page ?
z
On Fri, Jul 31, 2020 at 4:55 PM Sebastian Tschan<EMAIL_ADDRESS>wrote:

@zubinnt https://github.com/zubinnt, in the case of this issue here,
the fix was to update to the latest version of blueimp-load-image
https://github.com/blueimp/JavaScript-Load-Image, which is an optional
dependency for jQuery File Upload if you need image processing capabilities.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/blueimp/jQuery-File-Upload/issues/3639#issuecomment-667013950,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5GXXQKNAC66ACMSACLHU3R6KBGRANCNFSM4MXKTUMQ
.

Nope, not for this fix.

Hi there,
I came up with an error while loading .tiff files via blueImp. Do you have a list of unsupported file types with this blueImp or can it be fixed?

You can specify any file type to accept in the script Tif, tiff, etc.  I
think the spelling of the extension may play a part.
Z
On Mon, 24 Aug 2020, 14:21 Dinalie Liyanage<EMAIL_ADDRESS>wrote:

Hi there,
I came up with an error while loading .tiff files via blueImp. Do you have
a list of unsupported file types with this blueImp or can it be fixed?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/blueimp/jQuery-File-Upload/issues/3639#issuecomment-678928282,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5GXXRJJCOBXUTRAIFZMHDSCIBFJANCNFSM4MXKTUMQ
.

@DinalieLiyanage
You can configure the accepted file types in jQuery File Upload (on the client side) with the following option:
https://github.com/blueimp/jQuery-File-Upload/wiki/Options#acceptfiletypes
e.g. the demo restricts the list to common image types:
https://github.com/blueimp/jQuery-File-Upload/blob/7e655a866677184412fe16a512c61c547a1e875c/js/demo.js#L42
On the server-side, if you're using the sample PHP upload handler, you can configure the accepted files with the accept_file_types option:
https://github.com/blueimp/jQuery-File-Upload/blob/7e655a866677184412fe16a512c61c547a1e875c/server/php/UploadHandler.php#L104
Please note that image previews are only supported for file types that are supported by the browser, which usually excludes TIFF files.

If upload not working for specific images then you have to clear EXIF  . I used this tool and it worked http://www.exiferaser.com/
I spent whole day checking from website to php and server , then I found out the images had lots of meta data which breaks image preview, so I cleared it and its working.


Deploy to ec2/Manage OTP servers at the application level

Checklist

[x] Appropriate branch selected (all PRs must first be merged to dev before they can be merged to master)
[x] Any modified or new methods or classes have helpful JSDoc and code is thoroughly commented
[x] The description lists all applicable issues this PR seeks to resolve
[x] The description lists any configuration setting(s) that differ from the default settings
[x] All tests and CI builds passing

Description
Note: this code was taken from catalogueglobal/datatools-ui#256
This is the UI PR to accompany ibi-group/datatools-server#225. It moves the management of OTP servers from the project settings to the site admin settings and allows servers to be optionally available to all projects in an application (or project specific). This also resolves catalogueglobal/datatools-ui#234, another deployment-related ticket.
This also fixes the merge project feeds job to conform with the standard approach of attaching just the ID of the related entity (project in this case) to the job JSON object, rather than the whole project object.
To test out the actual deployment @evansiroky, you can create an OTP server in the app at http://localhost:9966/admin/servers based on the following JSON I copied from my Mongo instance:
{
    "admin" : false,
    "instanceType" : "r4.xlarge",
    "internalUrl" : [],
    "name" : "IBI Test",
    "publicUrl" : "ibi-test-otp-828479082.us-east-1.elb.amazonaws.com",
    "targetGroupArn" : "arn:aws:elasticloadbalancing:us-east-1:739199387312:targetgroup/ibi-test-otp/c28d4b2ff45fe3e2",
    "projectId" : null,
    "s3Bucket" : "datatools-production"
}

Codecov Report

Merging #463 into dev will increase coverage by 1.44%.
The diff coverage is 15.16%.

@@            Coverage Diff             @@
##              dev     #463      +/-   ##
==========================================
+ Coverage   15.49%   16.93%   +1.44%
==========================================
  Files         327      329       +2
  Lines       16071    12684    -3387
  Branches     4899     2426    -2473
==========================================
- Hits         2490     2148     -342
+ Misses      11597     8516    -3081
- Partials     1984     2020      +36

Impacted Files
Coverage Δ

lib/admin/containers/ActiveUserAdmin.js
0% <ø> (ø)
:arrow_up:

lib/types/index.js
0% <ø> (ø)
:arrow_up:

lib/types/reducers.js
0% <ø> (ø)
:arrow_up:

lib/admin/components/UserAdmin.js
0% <0%> (ø)
:arrow_up:

lib/manager/components/DeploymentSettings.js
16.66% <0%> (+4.54%)
:arrow_up:

lib/admin/components/ServerSettings.js
0% <0%> (ø)

lib/manager/components/DeploymentPreviewButton.js
16.21% <0%> (+1.58%)
:arrow_up:

lib/manager/util/deployment.js
100% <100%> (ø)
:arrow_up:

lib/admin/reducers/index.js
100% <100%> (ø)
:arrow_up:

lib/admin/actions/admin.js
26.22% <15.78%> (+2.59%)
:arrow_up:

... and 279 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 15aabfa...2f89b02. Read the comment docs.

These buttons are small and I didn't see them at first since they were in the upper right. I kinda would prefer for them to be larger, have the action spelled out and be on the bottom of the card for the server form.

Thanks for the review, @evansiroky. See https://github.com/ibi-group/datatools-ui/pull/463#discussion_r320348011. Also, could you either post your error message here or maybe we should do a screenshare?

I'd definitely like to do a screenshare.

I've made a number of changes/improvements. Thanks for the great feedback!
One thing you'll need to change on your end is updating the OtpServer field name in MongoDB from ec2Info.iamRoleArn -> ec2Info.iamInstanceProfileArn. Other than that, I think all you need to do is click Deploy and test out the changes!

While these changes are a step in the right direction and do provide raw information about what the ec2 instances are running, I still think we should rethink the design of deployments as noted here and here. Right now, when I go to view a deployment, the amount of screen real estate devoted to information about the active deployment is very small compared to the map and other items which if changed have no effect on the active deployment. Furthermore, the raw information about the bundle is helpful, but the details about what feed versions were used are hard to retrace.
Also, in my testing of deploying 10 instances, basically every time an I tried, there was some kind of failure. I still think there are more opportunities to implement more detailed fault tolerance with automatic retrying and for better progress reporting so that it is easier for a user to understand what's going on and debug what went wrong. Ideally, we'd have more detailed logs that we can be automatically parsed to examine where failures occurred so that we know where to focus our efforts and detect any regressions.
Also, there's no way to add an extra instance to a deployment, which I can imagine might be desired if not all of the instances start up correctly. If we're trying to get something shipped fast, then we can probably merge this once the Travis builds pass, but we should be prepared to tell clients that things aren't perfect and train them a bit on how the UI works.

Can you describe more fully all of the errors you encountered when starting up the 10 instances? Also, what commits/feeds were you using? Yesterday, I pushed some more commits due to some issues I faced with the FDOT instance that may fix a few things.
I think our goal here for this PR should be to eliminate the failing instances you're encountering while starting up. The goal for this PR is to introduce this new functionality that dramatically reduces the risk for downtime due to deploying with build graph over wire. I understand your interest in seeing additional features like starting up/terminating single instances, but my perspective on that remains that for now that can entirely be handled by re-deploying to the ELB. Sure, that may change after we've used this feature for a bit, but I don't want to over-speculate on what needs to be in here and spend time building out unneeded features.

Each time, there was a different error, unfortunately. But I just tried again this morning and everything went smoothly. Most of the time, the errors seemed to be interruptions in uploading or downloading stuff. But based on my experience, I think we should be prepared for our clients to also see various random errors.
I still also think the UI could use a redesign to have more rigidly defined deployment types and to better distinguish between active deployments and deployment templates, but if we really want to get this shipped and improve those items later then we can merge.

Travis builds need to pass, but should be good to go after that.

@evansiroky, any ideas on why the snapshots are failing here but passing on our local machines?

:tada: This PR is included in version 4.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Simple fix release attachment links to human readable

close https://github.com/go-gitea/gitea/issues/10919, which is stalled for a long time.
Before
https://gitea.com/attachments/c15910d0-736c-4dc3-846b-6440ad2048fd

After
https://gitea.com/gitea/tea/releases/download/v0.9.0/tea-0.9.0-darwin-amd64

Next step:

Check an attachment with that filename alreadly exists.
#13750

There was one:

#13750

I see WIP.... from 2020

Yup, I do not understand the blocker of the problem at the moment and haven't looked into it carefully. So I just hold my reviews.

Well, as far as I've seen the original problem was that only the first attachment with that name can be downloaded.
However, I think that is rather expected behavior as uploading multiple attachments with the same name will not only confuse the computer, but also the humans…
The WIP PR wanted to add logic to disallow uploading release attachments with the same name (by replacing it with the new content), so I assume the problem is currently that the logic to block double uploads does not exist.

What GitHub does is just show: "An attachment with that filename alreadly exists."

Yes, that's also my proposed behavior, at least for the first step.
Afterward, we can still examine if we want to auto-replace a duplicated attachment with a new one, which has both advantages and disadvantages.

I'd like to add a filename duplicate check for upload release attachments in server side, but I found that the method did not store the correct release_id for each attachment.  https://github.com/go-gitea/gitea/blob/6f3efdfe117b46978d449f9223394326e39067ce/routers/web/repo/attachment.go#L48
Gitea Vs GitHub upload release attachments:

POST |  URL: https://gitea.com/someone/test/releases/attachments

------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Disposition: form-data; name="file"; filename="gitea.png"
Content-Type: image/png

------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

POST | https://github.com/upload/policies/releases

-----------------------------00000000000000000000000000000
Content-Disposition: form-data; name="name"

gitea.png
-----------------------------00000000000000000000000000000
Content-Disposition: form-data; name="size"

48819
-----------------------------00000000000000000000000000000
Content-Disposition: form-data; name="content_type"

image/png
-----------------------------00000000000000000000000000000
Content-Disposition: form-data; name="authenticity_token"

pxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----------------------------00000000000000000000000000000
Content-Disposition: form-data; name="repository_id"

559475857
-----------------------------00000000000000000000000000000
Content-Disposition: form-data; name="release_id"

82910646
-----------------------------00000000000000000000000000000
Content-Disposition: form-data; name="deletion_candidates"

84458524
-----------------------------00000000000000000000000000000--

Do we need to store a real releaseID  in database for each attachment before implement a Duplicate name checker.

see #13750 - please fix the open TODOs first and I'll ack to this (didn't had time myself to do so...)

The current workflow is:

Upload an attachment (no release-related context, just set release_id=0), and get a set of attachmentUUIDs
Create Release: Query a set of uploaded attachments through GetAttachmentsByUUIDs, and edit the release_id for each attachment (if release_id>0, permission denied)

I'm afraid the current workflow is hard to change correctly. Maybe a simple policy should be in the upload stage to check if each attachment of a release has the same name.

When I upload a file on GitHub, the frontend sends a POST containing name, size, content_type, authentication_token, repository_id, release_id
The server can easily check whether the attachments under a release have the same name according to repository_id, release_id, name

The problem is when creating a new release, how should we check the same filename? I think maybe we have to check them in frontend whatever creating or updating a release and only do backend duplicated filenames check when updating a release.


Fixed compilation issue on x86-64 platform

https://jenkins.code.rdkcentral.com/job/github-triggered/26420/ started

https://jenkins.code.rdkcentral.com/job/build-component/62860/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/18666/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-platform/31124/ started.

https://jenkins.code.rdkcentral.com/job/github-triggered/26422/ started

https://jenkins.code.rdkcentral.com/job/build-component/62862/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-platform/31125/ started.

https://jenkins.code.rdkcentral.com/job/github-triggered/26424/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/18669/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-platform/31128/ started.

Smoke tests for ['build-rpi-hybrid-refapp2'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/135613/

Smoke tests for ['build-rpi-hybrid-wpe-dunfell'/'build-rpi-mc-wpe-dunfell'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/135614/

Smoke tests for ['build-aml-reftv'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/135617/

Smoke tests for ['build-brcm-refboard'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/135618/

Smoke tests for ['build-brcm-va'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/135619/


Where is the code used to do the benchmarks in the README.md?

I would like to mention these results in my thesis to justify why I am using Lark. But without a way to reproduce the experiments  on the first page (README.md) I cannot reliably cite them.

The code I used to run the benchmark is currently sitting in an unplugged computer in storage :)
Lark's json parser is in examples/json_parser.py
You can look at this issue for the Parsimonious code: https://github.com/lark-parser/lark/issues/218
I'm sure it won't take long to re-write the parsers for PyParsing and ANTLR, since they are accessible from their websites.
Sorry, perhaps I should have included those files in the git, it just seemed extraneous and no one's asked me so far.

No problem. For now I won't be able to use it because I already defended my thesis and I need to post the final version next week and there are more serious problems I need to fix.
If someday you can get hold of the source code on that old computer, it would be nice to have these sources on GitHub, for future references.

I've started collecting benchmarking implementations at my python-parsing-benchmarks repository. I don't necessarily have the same implementations used in @erezsh's tests, but for Lark and Parsimonious I have very similar code to that in #218. I also wish to expand to other parsing tasks that can highlight the strengths of different libraries.
I'm not yet testing memory or producing pretty charts, either, but I hope to do so. i welcome any contributions to add new or improve existing implementations, as well as ideas for additional tasks.

pe looks very nice! I wonder if you can remain objective now :)
Interesting that your code was so much faster for JSON. What are you doing differently than parsimonious?
If you're looking for ideas for more tests, there are many example grammars in textbooks that are meant to challenge parsers. Some very basic, like a: "b" a "b" | "a" which parses the infinite string ..bbbabbb...
Also, this issue (https://github.com/lark-parser/lark/pull/418#issue-302742732) contains a short example that's somewhat challenging.
If you're looking for practical examples, ini files are interesting, because their values aren't always quoted. Something like this: https://github.com/lark-parser/lark/blob/master/examples/conf_lalr.py
Anyway, looks like a good start!

pe looks very nice! I wonder if you can remain objective now :)

Yes, good point! I started by making pe and running benchmarks locally, then I thought there would be use in having the benchmarks separately defined. I hope to have advanced users of the various libraries contribute fixes to the implementations so as to best make use of their respective features. That, at least, could help it remain objective, but only if there's uptake. Otherwise I'm not terribly compelled (and don't have time) to become an advanced user of each library, in which case the results would be a bit less comparable.
(As an aside, of the various libraries I have used so far, Lark was the most delightful to use and also results in the most readable code. Thanks for your efforts!)

Interesting that your code was so much faster for JSON. What are you doing differently than parsimonious?

Grammar optimization, mainly, and also I avoid creating ASTs. I defined each operator to have a semantic signature (i.e., the shape of the returned values). Optimizations are fine as long as they don't change the signature of grammar rules with associated actions. The combination of rule inlining and conversion to regex improves things quite a bit. With optimizations turned off, I think it might be slower than parsimonious. Also, I don't do memoization for JSON because the overhead is worse than the gain for this task. I'm not sure if you can disable Parsimonious's memoization.
Btw, the regex optimizations are interesting because I had to do a bit of work to make sure the regular expression backtracking doesn't change the parser's behavior. I found a neat trick using lookaheads and back-references to avoid backtracking in Python's standard re module. For instance, (a|ab)c will match abc in regex but not in PEG, but (?=(a|ab))\1c avoids backtracking and thus does not match abc. The regex is ugly but it performs pretty well. Some other regex engines have "atomic groups" or "possessive quantifiers" to accomplish the same thing.

If you're looking for ideas for more tests...

Thanks for the pointers! I'll look into those. I was thinking TOML but it may be too easy compared to INI files, considering unquoted strings.

That's neat! I wonder if some of these grammar optimizations are applicable to Lark. Definitely joining anonymous terminals can make it a little faster. I did a manual test for JSON once and I think I saw something around a 10% speedup.
Maybe some loop unrolling? Could be an interesting experiment.

(As an aside, of the various libraries I have used so far, Lark was the most delightful to use and also results in the most readable code. Thanks for your efforts!)

Thanks, I appreciate it! Making it pleasant to work with was actually my main focus when building it.
P.S. You should also benchmark with PyPy. It gives very different performance signatures, and it's hard to ignore if you care about speed.
P.P.S. You can also benchmark repetitive parsing of very short strings. i.e. to measure the start-up time of each parser.

I wonder if some of these grammar optimizations are applicable to Lark.

That'd be great. I don't have time to submit PRs, but I'd be happy to answer any questions about the optimizations.

I did a manual test for JSON once and I think I saw something around a 10% speedup.

I think that was here in #218. I had some trouble replicating this in my benchmarks, and I thought it was because even though things like _COMMA include whitespace, the grammar still has %ignore WS so I'm afraid it is still checking for whitespace between each term (I'm not sure, though). When I try to remove that %ignore WS line, I have trouble passing the tests and I couldn't figure out the problem. If you can make it work I'd be happy to update the benchmark.

P.S. You should also benchmark with PyPy. It gives very different performance signatures, and it's hard to ignore if you care about speed.

I have run some tests but I haven't included them in the benchmark results yet because I haven't properly "warmed up" PyPy. Currently Lark pulls ahead of pe in the JSON task, but they are very similar.
And yes, grammar start-up time is another benchmark I want to include. Thanks for the suggestions!

Ah yes, there it is. I don't mind looking into it. Is there a way to run your benchmarks only for Lark? And also to only run it once for debugging? I tried playing around with it but going through a pip install phase for every change, and then waiting for it to run for a minute was a bit much :)
I don't know pytest very well, but it's easy to do something like python -m tests.validate.lark or similar, so you can use a relative import (pip not required), and be specific about what you want to run.
(pytest has -k but everything is under the same test_json right now)
Also, in the thread you mentioned, there's a link to textparser, which has a lot of benchmark code for json:
https://github.com/eerimoq/textparser/tree/master/examples/benchmarks/json
You probably already noticed, but I just thought I'd point that out.

Is there a way to run your benchmarks only for Lark?

Yes:
$ pytest --bench=lark

And also to only run it once for debugging?

Do you mean only validating the parser and not running the timing benchmark? Then yes, try:
$ pytest --bench=lark --benchmark-skip

I tried playing around with it but going through a pip install phase for every change, and then waiting for it to run for a minute was a bit much :)

Agreed. The setup could be improved. It helps a lot if you install in "editable" mode:
$ pip install -e .

That way you don't need to reinstall each time you make a change. If you do this, I suggest making a new virtual environment to make sure the old files are gone. I'll think about how to make it work without installing.

textparser, which has a lot of benchmark code for json

Thanks! I haven't looked at that parser for a while so I'd forgotten about the benchmarking code.

Nice, these really helped :)
Well, I got it to work without %ignore. I don't know if it's actually faster though, because my laptop is too inconsistent for benchmarking.
Behold the horror:
    ?start: _WS? value _WS? ";"

    ?value: object
          | array
          | string
          | NUMBER      -> number
          | "true"             -> true
          | "false"            -> false
          | "null"             -> null

    array  : _BRACK1 [value (_COMMA value)*] _BRACK2
    object : _CURLY1 [pair (_COMMA pair)*] _CURLY2
    pair   : string _COLON value

    _COLON: /\s*:\s*/
    _COMMA: /\s*,\s*/
    _CURLY1: /\s*{\s*/
    _CURLY2: /\s*}\s*/
    _BRACK1: /\s*\[\s*/
    _BRACK2: /\s*\]\s*/

    string : STRING
    STRING: "\"" INNER* "\""
    INNER: /[ !#-\[\]-\U0010ffff]*/
         | /\\(?:["\/\\bfnrt]|u[0-9A-Fa-f]{4})/

    NUMBER : INTEGER FRACTION? EXPONENT?
    INTEGER: ["-"] ("0" | "1".."9" INT?)
    FRACTION: "." INT
    EXPONENT: ("e"|"E") ["+"|"-"] INT

    _WS: /\s+/

    %import common.INT

Excellent, thanks! This actually looks very similar to what I had, but I had some problem getting the visitor to work on the start node. In any case your version works well.
The pytest-benchmark code runs the test a minimum of 5 times in order to estimate the variance (but I think there's an option to control this). Make sure you're looking at the "Mean" (3rd) column and not the "Min" (1st). I'm also on a laptop but I'm getting a fairly low stddev as long as I don't do anything else while it runs. It shows about a 5% improvement, which is something, but maybe not enough to justify the less-intuitive grammar? Ideally this sort of optimization would be automatic, of course.

I guess it depends if you want to maximize for performance, or keep the code somewhat idiomatic for balance. I think I can make it work automatically, but not sure it's worth the 5%. There might be other things I can do.
Oh, almost forgot. Might be worth benchmarking with python -O, to remove assertions and such, so not to punish safe-code practices.

I guess it depends if you want to maximize for performance, or keep the code somewhat idiomatic for balance.

Right now the criteria are that the implementations are correct and plausible. The latter is not very specific, I guess, but it means that it shouldn't use hacks and knowledge of the parser internals to gain speed, but only use documented features or well-known parsing tactics. There's probably a bit of gray area here.

@goodmami @evandrocoan I took my computer out of storage, and have regained my benchmark files.
Notably there are the implementations for ANTLR and funcparserlib, which are missing from the benchmarks.
Should I make them available? Just checking to see if there's still any interest in it.

Hi. I still think it would be nice to have them, (someone could try to rerun them against the latest lark and ANTLR version, etc). You could put them on this repository in some directory as benchmark or create a new one just for this.

Agreed, but I would prefer if there were (also?) in python-parsing-benchmarks. If you agree to that, then feel free to just put paste the implementations in a new issue and I'll take care of the rest when I can (which may not be right away, but the world can wait a bit longer).

Sure thing, I put it here: https://gist.github.com/erezsh/c2b51a03273f2485317fc83e75fa162c


Configuring angle and strength position

Hi,
Is it possible for you to add a function to control where users are able to set angle and strength?
In other words, users can configure positions of angle and strength on their needs.
For example, the image below angle 90 is currently positioned to the top, but i want angle 0 to be positioned to the top, and angle 90 to the right side of the circle.

Hi Jonny,
Sorry for answering late, I'm pretty busy those days and I won't be able to look at it deeply in for the next few days. But you're on the right track to adapt it ! Indeed you can modify it exactly where you found it at getAngle().
private int getAngle() {    int angle = (int) Math.toDegrees(Math.atan2(mCenterY - mPosY, mPosX - mCenterX));   return angle < 0 ? angle + 360 : angle; // make it as a regular counter-clock protractor }
Or you can also do it in your app when you get the regular angle like this :
public void onMove(int angle, int strength) {   angle = 90 - angle; // just with this, you will get 0 on top and 90 on right, but the rest will be a bit weird, I guess you can handle it with some other trick and maybe just one "if" }
I'll have a closer look probably end of july.
Have a good day!
Kindly,
Damien

@makowildcat
Thank you, sir.
I wonder why I could not think about changing the angle inside onMove method.
I will close it since this may be dumb question to ask.


Allow global mods to force unrated ties in the event of a crash

In light of all the recent crashed battles, I figured it might be useful if global moderators could forcetie battles in the event of a crash, and I know some people (maybe verbatim?) had expressed a wish that forcing a tie in a rated battle because it crashed didn't update rating.

I wouldn't bother, crashes never happen under normal circumstances.
In the future we'll just remove formats that are badly written and crash.


Clarify when outbox is created

It wasn't clear until I read the source how to force outbox to be created for tests. This is upstream's design, so clarify the documentation.

Thanks! 🌹


Burrow sees consumer groups, and then doesn't

I am running burrow 1.1.0 with kafka 0.11 and zookeeper 3.4.5. I can run a "curl http://<IP_ADDRESS>:8000/v3/kafka/local/consumer" right after I start burrow, and see all the groups. But if I run a "curl http://<IP_ADDRESS>:8000/v3/kafka/local/consumer/namehere/status" I get back
{"error":false,"message":"consumer status returned","status":{"cluster":"local","group":"namehere","status":"NOTFOUND","complete":1,"partitions":[],"partition_count":0,"maxlag":null,"totallag":0},"request":{"url":"/v3/kafka/local/consumer/namehere/status","host":"hostname-01"}}
Then if I run "curl http://<IP_ADDRESS>:8000/v3/kafka/local/consumer" again, I get a list without that one.
Even weirder this works fine in a staging environment, but is failing in prod. Even though both have the same versions kafka, burrow, and zookeeper.

Logs:
{"level":"info","ts":1537562399.1103215,"msg":"stopping","type":"coordinator","name":"consumer"}
{"level":"info","ts":1537562399.1103935,"msg":"stopping","type":"module","coordinator":"consumer","class":"kafka","name":"local"}
{"level":"info","ts":1537562399.11174,"msg":"stopping","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.1142273,"msg":"Recv loop terminated: err=EOF","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.114262,"msg":"Send loop terminated: err=<nil>","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.1172094,"msg":"stopping","type":"coordinator","name":"cluster"}
{"level":"info","ts":1537562399.1172383,"msg":"stopping","type":"module","coordinator":"cluster","class":"kafka","name":"local"}
{"level":"info","ts":1537562399.1172647,"msg":"stopping","type":"coordinator","name":"notifier"}
{"level":"info","ts":1537562399.1172776,"msg":"shutdown","type":"coordinator","name":"httpserver"}
{"level":"info","ts":1537562399.1173916,"msg":"stopping","type":"coordinator","name":"evaluator"}
{"level":"info","ts":1537562399.1174622,"msg":"stopping","type":"module","coordinator":"evaluator","class":"caching","name":"default"}
{"level":"info","ts":1537562399.11998,"msg":"stopping","type":"coordinator","name":"storage"}
{"level":"info","ts":1537562399.120022,"msg":"stopping","type":"module","coordinator":"storage","class":"inmemory","name":"default"}
{"level":"info","ts":1537562399.120106,"msg":"stopping","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1233048,"msg":"Recv loop terminated: err=EOF","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1233966,"msg":"Send loop terminated: err=<nil>","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1533234,"msg":"Started Burrow"}
{"level":"info","ts":1537562399.153498,"msg":"configuring","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1536365,"msg":"configuring","type":"coordinator","name":"storage"}
{"level":"info","ts":1537562399.1537273,"msg":"configuring","type":"module","coordinator":"storage","class":"inmemory","name":"default"}
{"level":"info","ts":1537562399.1539078,"msg":"configuring","type":"coordinator","name":"evaluator"}
{"level":"info","ts":1537562399.1539931,"msg":"configuring","type":"module","coordinator":"evaluator","class":"caching","name":"default"}
{"level":"info","ts":1537562399.1540968,"msg":"configuring","type":"coordinator","name":"httpserver"}
{"level":"info","ts":1537562399.1546085,"msg":"configuring","type":"coordinator","name":"notifier"}
{"level":"info","ts":1537562399.154642,"msg":"configuring","type":"coordinator","name":"cluster"}
{"level":"info","ts":1537562399.1547153,"msg":"configuring","type":"module","coordinator":"cluster","class":"kafka","name":"local"}
{"level":"info","ts":1537562399.1548803,"msg":"configuring","type":"coordinator","name":"consumer"}
{"level":"info","ts":1537562399.1549742,"msg":"configuring","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.1552308,"msg":"configuring","type":"module","coordinator":"consumer","class":"kafka","name":"local"}
{"level":"info","ts":1537562399.1554272,"msg":"starting","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1559339,"msg":"Connected to <IP_ADDRESS>:2181","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1586473,"msg":"Authenticated: id=100470660053855640, timeout=6000","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1586776,"msg":"Re-submitting `0` credentials after reconnect","type":"coordinator","name":"zookeeper"}
{"level":"info","ts":1537562399.1622052,"msg":"starting","type":"coordinator","name":"storage"}
{"level":"info","ts":1537562399.1622314,"msg":"starting","type":"module","coordinator":"storage","class":"inmemory","name":"default"}
{"level":"info","ts":1537562399.162305,"msg":"starting","type":"coordinator","name":"evaluator"}
{"level":"info","ts":1537562399.1623225,"msg":"starting","type":"module","coordinator":"evaluator","class":"caching","name":"default"}
{"level":"info","ts":1537562399.1623378,"msg":"starting","type":"coordinator","name":"httpserver"}
{"level":"info","ts":1537562399.1625447,"msg":"started listener","type":"coordinator","name":"httpserver","listener":"[::]:8000"}
{"level":"info","ts":1537562399.162597,"msg":"starting","type":"coordinator","name":"notifier"}
{"level":"info","ts":1537562399.162623,"msg":"starting","type":"coordinator","name":"cluster"}
{"level":"info","ts":1537562399.1626327,"msg":"starting","type":"module","coordinator":"cluster","class":"kafka","name":"local"}
{"level":"info","ts":1537562399.1970122,"msg":"starting","type":"coordinator","name":"consumer"}
{"level":"info","ts":1537562399.197053,"msg":"starting","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.1983898,"msg":"Connected to <IP_ADDRESS>:2181","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.2010047,"msg":"Authenticated: id=172350794107511546, timeout=30000","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.201041,"msg":"Re-submitting `0` credentials after reconnect","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1537562399.2022557,"msg":"starting","type":"module","coordinator":"consumer","class":"kafka","name":"local"}
{"level":"info","ts":1537562399.20591,"msg":"starting consumers","type":"module","coordinator":"consumer","class":"kafka","name":"local","topic":"__consumer_offsets","count":50}
{"level":"warn","ts":1537562399.2137485,"msg":"failed to read offset","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk","group":"secor_backup","topic":"connection","partition":0,"error":"zk: node does not exist"}
{"level":"warn","ts":1537562399.2176504,"msg":"failed to read offset","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk","group":"secor_backup","topic":"namehere4","partition":1,"error":"zk: node does not exist"}
{"level":"warn","ts":1537562399.2189863,"msg":"failed to read offset","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk","group":"secor_backup","topic":"namehere4","partition":2,"error":"zk: node does not exist"}
{"level":"warn","ts":1537562399.232973,"msg":"failed to read offset","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk","group":"secor_backup","topic":"namehere4","partition":6,"error":"zk: node does not exist"}
{"level":"info","ts":1537562399.2663305,"msg":"starting evaluations","type":"coordinator","name":"notifier"}
{"level":"info","ts":1537562418.18032,"msg":"cluster or consumer not found","type":"module","coordinator":"evaluator","class":"caching","name":"default","cluster":"local","consumer":"namehere","showall":false}
{"level":"info","ts":1537562438.8329,"msg":"cluster or consumer not found","type":"module","coordinator":"evaluator","class":"caching","name":"default","cluster":"local","consumer":"namehere3","showall":false}
{"level":"info","ts":1537562450.3536875,"msg":"cluster or consumer not found","type":"module","coordinator":"evaluator","class":"caching","name":"default","cluster":"local","consumer":"namehere2","showall":false}
{"level":"info","ts":1537562456.9158769,"msg":"cluster or consumer not found","type":"module","coordinator":"evaluator","class":"caching","name":"default","cluster":"local","consumer":"namehere","showall":false}

I have tried playing with the whitelist/blacklist, with now effect. I have also diffed the staging and prod configuration files, and the only difference is the ip addresses.
burrow.toml:
pidfile="/run/burrow/burrow.pid"
stdout-logfile="burrow.out"
client-id="burrow-lagchecker"

[logging]
filename="/var/log/burrow/burrow.log"
level="info"
maxsize=100
maxbackups=30
maxage=10
use-localtime=false
use-compression=true

[zookeeper]
servers=[ "<IP_ADDRESS>:2181","<IP_ADDRESS>:2181","<IP_ADDRESS>:2181" ]
timeout=6
lock-path="/burrow/notifier"
root-path="/burrow"

[client-profile.test]
client-id="burrow-test"
kafka-version="0.11.0"

[cluster.local]
class-name="kafka"
servers=[ "<IP_ADDRESS>:9092","<IP_ADDRESS>:9092","<IP_ADDRESS>:9092" ]
client-profile="test"
topic-refresh=120
offset-refresh=30

[consumer.local]
class-name="kafka"
cluster="local"
servers=[ "<IP_ADDRESS>:9092","<IP_ADDRESS>:9092","<IP_ADDRESS>:9092" ]
client-profile="test"
group-blacklist="^(console-consumer-|python-kafka-consumer-|quick-|ureplicator-).*$"
group-whitelist=""

[consumer.local_zk]
class-name="kafka_zk"
cluster="local"
servers=[ "<IP_ADDRESS>:2181","<IP_ADDRESS>:2181","<IP_ADDRESS>:2181" ]
zookeeper-path="/kafka1"
zookeeper-timeout=30
group-blacklist="^(console-consumer-|python-kafka-consumer-|quick-|ureplicator-).*$"
group-whitelist=""

[httpserver.default]
address=":8000"

[storage.default]
class-name="inmemory"
workers=20
intervals=15
expire-group=604800
min-distance=1

Seeing this exact behavior.

I'm getting the same behavior - Burrow just stopped detecting a few consumers/topics (although they are actively committing offsets). I've even tried reinstalling it entirely and nothing. As well, burrow is not reading any consumer ID/"owner" either

We have been seeing this behavior as well. I finally had some time to do some research.
We are using Confluent 5.1.2 and I have burrow configured as kafka-version="2.1.0". I also have the latest code from Burrow.
In my research, I found that the request for metadata from sarama was not returning data at least some of the time. This was really all of the time I was debugging the code, but it had to work at least some of the time for Burrow to work.  This request is used to populate the topics in the in memory storage from what I can tell. I also noticed that sarama has a check on the Kafka version to see which metadata request version to send. See the code here.
I figured I would test to see if the lower version would return data for me, so I set my burrow client profile configuration to kafka-version="<IP_ADDRESS>". I also set the start-latest configuration to true because I only want to know about active consumers on restart/startup. I don't know if it makes a difference for others, but I did want to mention it as something I changed.
Between those two changes, all of my active consumer groups are reporting properly and are not disappearing from Burrow.

Kafka Version: 0.10.2
I'm getting the below error:

{"level":"warn","ts":1563462481.399035,"msg":"failed to get zk lock","type":"coordinator","name":"notifier","error":"zk: zookeeper is closing"}
{"level":"error","ts":1563462497.3998742,"msg":"failed to list groups","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk","error":"zk: node does not exist"}

Kafka 0.12
{"level":"info","ts":1564469520.822827,"msg":"starting","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1564469520.825842,"msg":"Connected to [::1]:2180","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1564469520.827925,"msg":"Authenticated: id=72057722009747468, timeout=30000","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"info","ts":1564469520.827997,"msg":"Re-submitting `0` credentials after reconnect","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk"}
{"level":"error","ts":1564469520.829778,"msg":"failed to list groups","type":"module","coordinator":"consumer","class":"kafka_zk","name":"local_zk","error":"**zk: node does not exist**"}

Any new ideas/solution to this Issue ?

Six years have passed, and the problem still hasn't been solved.


[ENH] Paper Implementation using Tensorflow/Keras

Hi @rixez
I would like to implement this paper using tensorflow and keras library.
I have a problem with axial attention section and i can not understand it in details. Could you please give me some hints and/or resources to find out how to implement the axial attention?
Regards

Hi @EverLookNeverSee,
Thank you for your interest in this repo!
The axial attention in this package was adopted from Axial Attention. For the reference paper, you can check out the paper.
The implementation of axial attention in this repo can be found here:
https://github.com/rixez/Brats21_KAIST_MRI_Lab/blob/d05fba87d392f4ab9cc6c64c1658688f7d27a3d0/nnunet/network_architecture/generic_UNet.py#L377
And the trainer for the axial attention model can be found here:
https://github.com/rixez/Brats21_KAIST_MRI_Lab/blob/d05fba87d392f4ab9cc6c64c1658688f7d27a3d0/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/nnUNetTrainerV2BraTSRegions_moreDA.py#L363
To train the model, you can replace the trainer in the readme with the appropriate trainer like this:
nnUNet_train 3d_fullres nnUNetTrainerV2BraTSRegions_DA4_BN_BD_axialattention_unet <TASK_ID> <FOLD> --npz
I think the syntax would be similar in tensorflow. But note that we did not use the axial attention model in the final ensemble for the competition.
Thank you and let me know if you have any more questions!

@rixez
Thanks for the explanation.
If i have a question, i will ask you.


move HealthInsights from CogServices to AI

Data Plane API - Pull Request
Move HealthInsights folder from CognitiveServices to AI.
Is this review for (select one):

[ ] a private preview
[ X] a public preview
[ ] GA release

❔Got questions? Need additional info?? We are here to help!

 Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.

💬 Teams Channel
💌 email

Click here for links to tools, specs, guidelines & other good stuff
Tooling

Open API validation tools were run on this PR. Go here to see how to fix errors
Spectral Linting
Open API Hub

Guidelines & Specifications

Azure REST API Guidelines
OpenAPI Style Guidelines
Azure Breaking Change Policy

Helpful Links

Azure DevTools Wiki

Checks stuck in `queued` state?
If the PR CI checks appear to be stuck in `queued` state, please add a comment with contents `/azp run`.
This should result in a new comment denoting a `PR validation pipeline` has started and the checks should be updated after few minutes.

CC: @catalinaperalta

Would it cause massive conflict, if it get merged and sync to the other repo where your PR is now on?

Would it cause massive conflict, if it get merged and sync to the other repo where your PR is now on?
@weidongxu-microsoft , thanks for you comment.

Soon we are going to public.
My plan is to create a new PR in the public repo, based on the PR from the private repo.
If needed I will do the fix in the private repo as well.

@catalinaperalta
Do you want to process and merge, or you want me to do it?
I assume there is correct that it moves to ai folder?

@catalinaperalta
Do you want to process and merge, or you want me to do it?
I assume there is correct that healthinsights moves to ai folder?

@weidongxu-microsoft yes please merge this PR. It is correct to move under the ai/ directory.


Getting error from import line

python --version:
Python 2.7.9
Just trying a very simple script I get:
Traceback (most recent call last):
  File "shift_digit.py", line 3, in <module>
    from shiftpi import HIGH, LOW, ALL, digitalWrite, delay
ImportError: cannot import name HIGH

My code:
from shiftpi import HIGH, LOW, ALL, digitalWrite, delay

running=True
while running==True:
    try:
        digitalWrite(ALL, HIGH)
        delay(1000);
        digitalWrite(ALL, LOW)
        delay(1000);
    except KeyboardInterrupt:
        running=False

ok; turns out I had to import shiftpi.shiftpi as shiftpi


building for win32?

The windows instructions given are great for building the 64bit version, but I'm having problems figuring out how I could build a 32bit one. Unfortunately, that's what we're stuck with right now. I know I can download it from AppVeyor but I'm trying to broaden my horizons.

@jepp Hi, I am trying to set this library up for Delphi as well, do you code you would be willing to share please?
Thanks
Phil


Ldap integration, double accounts

We set up ldap integration, everything works well. But we made one mistake, sent an invite to the user who is in LDAP. And now he can use email login.
We tried to remove it. https://github.com/zulip/zulip/issues/10533
./manage.py shell with UserProfile.objects.get(email="username@example.com").delete()
And now in the users list we have two same accounts and we can’t write him a message.

found errors in the log.
django.log:2020-03-26 17:17:32.083 INFO [zr] status=400, data=b'{"result":"error","msg":"Invalid narrow operator: unknown user in [17]","desc":"unknown user in [17]","code":"BAD_NARROW"}\n'<EMAIL_ADDRESS>          server.log:2020-03-21 23:00:16.175 INFO [zr] status=400, data=b'{"desc":"unknown 'has' operand zulip","result":"error","msg":"Invalid narrow operator: unknown 'has' operand zulip","code":"BAD_NARROW"}\n'<EMAIL_ADDRESS>tornado.log:2020-03-21 23:14:49.731 INFO [zr] status=400, data=b'{"result":"error","code":"BAD_EVENT_QUEUE_ID","msg":"Bad event queue id:<PHONE_NUMBER>:9","queue_id":"1584825020:9"}\n'<EMAIL_ADDRESS>                  tornado.log:2020-03-22 09:28:42.474 INFO [zr] status=400, data=b'{"result":"error","code":"BAD_EVENT_QUEUE_ID","msg":"Bad event queue id:<PHONE_NUMBER>:8","queue_id":"1584849608:8"}\n'<EMAIL_ADDRESS>                  tornado.log:2020-03-22 14:41:17.466 INFO [zr] status=400, data=b'{"queue_id":"1584884892:4","code":"BAD_EVENT_QUEUE_ID","msg":"Bad event queue id:<PHONE_NUMBER>:4","result":"error"}\n'<EMAIL_ADDRESS>tornado.log:2020-03-22 15:30:32.591 INFO [zr] status=400, data=b'{"queue_id":"1584884892:11","code":"BAD_EVENT_QUEUE_ID","msg":"Bad event queue id:<PHONE_NUMBER>:11","result":"error"}\n'<EMAIL_ADDRESS>

I had similar issue. After deleting a user it was still displayed due to caching.
Fixed it by running  ./scripts/setup/flush-memcached

I had similar issue. After deleting a user it was still displayed due to caching.
Fixed it by running  ./scripts/setup/flush-memcached

Yes, it helped, I rebooted the server itself. Thanks.


Toggle between translations

We need to be able to toggle between multiple translations using the buttons at the bottom of the translation panel.

I would like to implement this feature if the backbone is already present.

Thanks, @manu-chroma, you will be able to implement this feature with the two translations in the array here: https://github.com/cltk/cltk_frontend/blob/e03368238c7d44fe8d939ef3ede216037332de95/client/views/reading/CommentaryPanel.jsx#L17 You will just need to add a function bound to a click event on the commentary panel that selects the translation each button indicates. Let me know if there's anything else you need here to get started.

Thanks @lukehollis, I will. You can assign this one to me.


Update cats-effect-std to 3.3.6

Updates org.typelevel:cats-effect-std from 3.2.9 to 3.3.6.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Applied Scalafix Migrations

org.typelevel:{cats-effect,cats-effect-laws}:3.3.0 (created no change)

github:typelevel/cats-effect/v3_3_0?sha=series/3.x

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel", artifactId = "cats-effect-std" } ]

labels: library-update, early-semver-minor, semver-spec-minor, scalafix-migrations, commit-count:1

Superseded by #333.


chore: refactor global code in to RivetGlobal

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#54  👈
#53
#52
#51
#50
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @NathanFlurry and the rest of your teammates on  Graphite


After the nz-select selector plus nzbisabled, it can still be operated by keyboard

The issue which is not created via https://ng.ant.design/issue-helper/#/en will be closed immediately.
Hello there
This uses the 7.5.0+ version, using the nz-select selector, plus the inoperable property nzbisabled. However, you can still use tab+Enter to expand the drop-down, or click the mouse and press Enter to expand the pull-down operation to modify the value of the selector. There is a problem here, nzbisabled should not be able to perform keyboard operations. Tab should skip this selector

the bug is fixed in the latest version.


Create 20210528.md

Added Agenda for TSC meeting 28 May 2021
Signed-off-by: Andre de Waal<EMAIL_ADDRESS>

Reopening Pull Request. Contains unmerged commits.
Signed-off-by: Andre de Waal<EMAIL_ADDRESS>


Rremove version number from file name

When I updated plugin via bower I have to update included file too.
Now
<script src="bower_components/pwstabs/assets/jquery.pwstabs-1.2.1.min.js">

After new release e.g. v1.2.4 this url return 404 and I have to update to
<script src="bower_components/pwstabs/assets/jquery.pwstabs-1.2.4.min.js">

File name should be the same in each version
<script src="bower_components/pwstabs/assets/jquery.pwstabs.min.js">

To keep backward compatibility just add new file
jquery.pwstabs.js and jquery.pwstabs..min.js
Don't remove existing one with version name


Handheld Daemon not working or not installing

Describe the bug
a rookie to linus so a don't know alot. installed Bazzite for my new Rod Ally X (due booted). everything seems to be working out just fine except for the Handheld Daemon. I have uninstalled and re-stalled Bazzite 3 to 4 time thing that will fix the issue but it just doesn't.  I followed the instruction on the Bazzite website to make sure i got the one for the handheld but it still does nothing. I found the Handheld Daemon app in the Lost and Found in the application menu, tried to install it and still nothing. Every video show it working right out the gate but mine doesn't. No videos on Handheld Daemon problems. Very confuted and don't know what else to do.
What did you expect to happen?
I expected 2 + 2 to equal 4, but instead 2 + 2 equaled 6!
Output of rpm-ostree status

Hardware
No response
Extra information or context
No response

sudo systemctl enable --now hhd@$(whoami)

Well that fix it. Thanks a lot. couldn't have done it without your help.


Android 10 slow Scrcpy

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: Windows 10 Pro
scrcpy version: 1.14
installation method:
device model: Xiaomi mi8
Android version: 10

After I updated my xiaomi mi8 to android 10 there was a big delay in scrcpy both via opengl render and directx. On android 9 with these settings, everything was fine.
C:\scrcpy-win64-v1.14>scrcpy --bit-rate 70m --max-fps 60 --fullscreen --render-expired-frames --codec-options bitrate-mode=2 --render-driver=opengl
INFO: scrcpy 1.14 https://github.com/Genymobile/scrcpy
C:\scrcpy-win64-v1.14\scrcpy-server: 1 file pushed, 0 skipped. 19.6 MB/s (33142 bytes in 0.002s)
[server] INFO: Device: Xiaomi MI 8 (Android 10)
INFO: OpenGL shaders: ENABLED
INFO: Created renderer: opengl
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 451.67
INFO: Trilinear filtering enabled
INFO: Initial texture: 2248x1080

And without all these custom parameters?
If it worked before the upgrade of your device, but does not work after, I would say this is a problem with the new version of your device ROM.


Keep browser open after all tests have finished

Are you requesting a feature or reporting a bug?
Feature
What is the current behavior?
It is currently impossible to keep the browser open, after all tests have finished. That makes it hard to debug clientside errors inside the tested environment.
What is the expected behavior?
Testcafe should offer a commandline switch and/or option that causes the browser to stay open after all tests have finished. That would make it easy to use the browser's development tools to recognize errors and check the DOM.

Hello, Rico! Thank you for your feedback. What do you think about dedicated debugger action, you can add it as the last expression in the test or as additional pseudo-test, and open devtools for debugging.

Hi Andrey, thanks for the quick response. Your proposal looks even more useful than what I had in mind. It has the same effect but allows stepping through the execution of the tests, too. Great idea!

@ryx While the #918 is not implemented yet you can use a workaround:
import { ClientFunction } from 'testcafe';

fixture `myFixture`
    .page `http://example.com`;

var debug = ClientFunction(() => { debugger; });

test('Debug', async t => {
    // some test actions
    await t.wait(2000);
    await debug();
});

The test execution will be stopped on debugger if developer tools in your browser are opened.

Your proposal looks even more useful than what I had in mind. It has the same effect but allows stepping through the execution of the tests, too. Great idea!

So, I close this one in favor of #918


assert(): use real expressions, not strings

PHP 7.2 deprecated passing strings to assert(), it strips them out at
compile time in production instead.

CR 👍


@conda-forge-admin, please add user @mkitti

Additional comment:
No response

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added user @mkitti in conda-forge/openspecfun-feedstock#13.


Support for H3 functions

ClickHouse has support for H3 Indexes, but chdb 1.3.0 does not. Here's an example query which returns an H3 index (a 64-bit integer) in ClickHouse:
chdb.query("SELECT geoToH3(0.0, 0.0, 1)")

ChdbError: Code: 46. DB::Exception: Unknown function geoToH3: While processing geoToH3(0., 0., 1). (UNKNOWN_FUNCTION)

It would be great to access the h3 functions in chdb.

I did not enable H3 in chDB build script. I could do it in the next release.
Could share more about your usage scenario?

That would be great!
We have a dataset of Parquet files in S3 containing latitude and longitude columns along with measurements, and find H3 useful for spatially aggregating and joining data. Currently I'm using DuckDB with a third party H3 extension for generating the H3 index. In this particular use case it takes some time in a cold run while DuckDB scans the Parquet metadata with a glob like s3://bucket/parquet/**/*.parquet.
I've found chDB can make these cold queries faster, but we're missing the H3 functions. In particular I'm looking for the ClickHouse function geoToH3.

Fixed at v1.4.1


Update byte-buddy, byte-buddy-agent to 1.11.14

Updates

net.bytebuddy:byte-buddy
net.bytebuddy:byte-buddy-agent

from 1.11.6 to 1.11.14.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "net.bytebuddy" } ]

labels: library-update, semver-patch

Superseded by #182.


CF-513 expand check of createdBy with a userId

The culturefeed_entry_ui module no longer exists it seems and this has been open for 1+ year.


Implements error methods

Implements Is(target error) and As(target interface{}) so that errors.Is and errors.As can examine errors by passing err which is returned from semgroup.Wait().

Nice, thank you @matsuyoshi30. I like these improvements.


After building on Mac M1 .app .dmg is not working on other M1 Mac

Describe the bug
After building app on my M1 MAC - app and dmg works fine on my laptop.
Tried to launch both on other M1 MAC - got error that files are damaged.
Also tried to sign app with custom self signed keychain cert. Not helped.
To Reproduce
Steps to reproduce the behavior:

clone repo https://github.com/leimantas/tauri-test
Build it on M1 Mac
Try to launch app on other M1 Mac

Screenshots

Platform and Versions (required):
Operating System - Mac OS, version 11.4.0 X64
Node.js environment
Node.js - 16.4.0
@tauri-apps/cli - 1.0.0-beta.5
@tauri-apps/api - Not installed
Global packages
npm - 7.18.1
yarn - 1.22.10
Rust environment
rustc - 1.53.0
cargo - 1.53.0
App directory structure
/dist
/node_modules
/src-tauri
/.git
/src
App
tauri.rs - 1.0.0-beta.4
build-type - bundle
CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
distDir - ../dist
devPath - http://localhost:3000
framework - React

After updates today - it works.

Is this the same as https://github.com/tauri-apps/tauri/issues/5778?

is there a fix besides getting an Apple Dev account and signing it that way?


Fix bootstrap di

:tada: This PR is included in version 6.114.7 :tada:
The release is available on:

v6.114.7
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 7.0.0-beta.13 :tada:
The release is available on:

v7.0.0-beta.13
GitHub release

Your semantic-release bot :package::rocket:


can not build for esp32

After I set ESP_IDF_PATH and others things, I just can not compile it .
By the way, my zephyr is V1.10.1 and sdk is 0.9.2
I get message:
`  The OLD behavior for policy CMP0000 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances.  Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
CMakeLists.txt:3 (include)
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.5.2", minimum required is "3.4")
-- Selected BOARD esp32
Zephyr version: 1.10.99
Using /home/galileo/Workspace/zephyr/boards/xtensa/esp32/esp32_defconfig as base
Merging /home/galileo/Workspace/zephyr/samples/hello_world/prj.conf
Merging /home/galileo/Workspace/zephyr/tests/include/test.config

configuration written to /home/galileo/Workspace/zephyr/samples/hello_world/build/esp32/zephyr/.config

-- Generating zephyr/include/generated/autoconf.h
CMake Error at /home/galileo/Workspace/zephyr/cmake/extensions.cmake:878 (message):
No such file or directory: CMAKE_READELF:
'/home/galileo/Workspace/esp/ESPRESSIF_TOOLCHAIN_PATH/bin/xtensa-esp32-elf-readelf'
Call Stack (most recent call first):
/home/galileo/Workspace/zephyr/cmake/toolchain-gcc.cmake:14 (assert_exists)
/home/galileo/Workspace/zephyr/cmake/toolchain.cmake:16 (include)
/home/galileo/Workspace/zephyr/cmake/app/boilerplate.cmake:201 (include)
CMakeLists.txt:3 (include)
-- Configuring incomplete, errors occurred!
`

I just built the hello world app for ESP32 without any issues here.  What are the values of some of the environment variables?  You can check with:
echo $ESPRESSIF_TOOLCHAIN_PATH
echo $ESP_IDF_PATH
echo $ZEPHYR_GCC_VARIANT

Thanks, I will try again


Support for helper convertPathToPattern

I tried to replace tinyglobby in the Astro repository, but unfortunately, we use an utility that at the moment isn't ported: convertPathToPattern

isn't this the same as #36's escapePath function? i can't tell the difference

Pretty similar. The docs says it additionally converts backslashes to forward slashes on Windows in cases where they are not escape characters


Both train-set and test-set in LaSOT are used during the training process.

https://github.com/MegviiDetection/video_analyst/blob/141f54d34cf6ceac59f6679bc101c4879271c196/experiments/siamfcpp/train/fulldata/siamfcpp_googlenet-trn-fulldata.yaml#L120
I notice a mistake. The above setting will make both train-set and test-set in LaSOT are used during the training process. This will lead a 59.0%  even higher in AUC in LaSOT.
This should change to ' subset: "train" '

The model trained with fulldata can only be tested on VOT and TrackingNet.  We only use Lasot train set while measuring the performance of LaSOT test set.

@xi-mao  This config is for training & test on LaSOT.

Issue closed as no longer discussion proceeds. Feel free to reopen it.


HelmChart is not passing the --caFile arg with repoCAConfigMap is set

apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: vault-secrets-operator
  namespace: kube-system
spec:
  securityContext:
    runAsUser: 9000
  chart: vault-secrets-operator
  repo: https://helm.releases.hashicorp.com
  version: 0.1.0
  targetNamespace: vault
  repoCAConfigMap:
    name: ca-bundle
  #jobImage: harbor.miradts.psdo.leidos.com/icam/rancher/klipper-helm:v0.8.2-build20230815
  valuesContent: |-
    defaultVaultConnection:
      enabled: true
      address: "http://vault.vault.svc.cluster.local:8200"
      skipTLSVerify: false

When applying the above manifest the POD to install the chart is passed:
 Args:
	install
	--namespace
	vault
	--version
	0.1.0

The config map is mounted at
ca-files:
  Type:      ConfigMap (a volume populated by a ConfigMap)
  Name:      ca-bundle
  Optional:  false

The CA bundle is used to pass a reverse proxy's break and inspect action. Hence the POD needs to trust the reverse proxy signed certs. It is not.

Error was caused by the securityContext, closing because it is working as. expected


Update documentations

Changes

Storage section in Developer Guide
(UML diagram source: www.plantuml.com/plantuml/png/RP3DIiD058NtynJNBeKfk2-XhGjH40h51nWp9ytG-GbtRX35XzUKranCDe6Sx-FSmsop69O-U7KdBG8e604xerCltaMerbaGGYUVr3XucyiaGDfqYsh7jOVAPnSxmoRGZZbzF2QVc9uOY0MglSbvdzY2Iq6vAE36rA3dVKhdeoGs9z1cymUggf16JcCuCTuo-C1eydALkWoXbvpYvA0BdKT0b4nbVjMlVwyc_dwva6-ag9qDAEp_JAcRf3qQqT_LvFf8sPtQ0IytbDjqt-cALW-hMTEoDI-SlSrwlQveI8zWPxpxCkyU5qCjfgJrK4xtAnhupffEO0-SR5-BsYBQFlWV)
Update command section in User Guide

Remove the section of batch update(will re-add it in the future after the feature is implemented)
Remove the use of | as separator in the command

Related issue

#53

Codecov Report

Merging #67 (45443e7) into develop (a5d1dc7) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop      #67   +/-   ##
==========================================
  Coverage      60.62%   60.62%
  Complexity       347      347
==========================================
  Files             76       76
  Lines           1346     1346
  Branches         129      129
==========================================
  Hits             816      816
  Misses           475      475
  Partials          55       55

Impacted Files
Coverage Δ

...java/seedu/ibook/logic/commands/UpdateCommand.java
95.65% <ø> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

The links to the storage in the developer guide should be updated

Accidentally merge develop branch into this PR.
Will create another PR to avoid cluttering.


Suggestion to autodiscover seeds using dns a-records

This will make the cluster not only use the first available InetAddress but all that is returned from the host lookup.
I feel that this will greatly simplify setups as we can add a single cassandra_seeds dns record and have that statically added to our configuration.
Docs will follow.

Hi,
This is a good idea. Two minor remarks:

we feel that this should not be enabled by default, so could you make it a separate builder method (something like addMultipleIpContactPoint)?
this should also be on the 2.0 branch, so could you do your PR against that branch instead of 2.1?

Thanks

Sure - will do! Will you apply on both branches then after I add it to 2.0?

Yes, it will be merged on 2.1 (most likely for 2.1.7).

Although - if you have a host with many ip addresses on it - my suggestion would make it more transparent. I understand the thing about existing functionality though, but if some existing user has many ip-addresses on the host of a cassandra server address wouldn't this be wanted behaviour anyway?
The driver would handle any duplicates or ip's that are not answering anyway I guess?

Ignore the reference above, that was a mistake.


[terra-application-layout] Add Theme context

Summary
Added theme context  to terra application layout

Closes #
Deployment Link

https://terra-framework-deployed-pr-#.herokuapp.com/
Testing

Additional Details

Thank you for contributing to Terra.
@cerner/terra

Resolved all comments ee11d3b

Separated files here 5913545


TextInput.contextMenuHidden doesn't work for Android

TextInput.contextMenuHidden doesn't work for Android platform
Steps To Reproduce
Need to do: Try to select text (long press on the input) in the input.
Result: the text is highlighted, the context menu opens
_Expected Result:_nothing to happen (long press on the input - disabled)
Tested on:  Pixel 3, Pixel 2 (Virtual), Lenovo A7000-a (Device)
React Native version:

react-native: 0.61.2, 0.61.5

Environment:

node: 8.12.0
npm: 6.4.1
react-native-cli: 2.0.1

contextMenuHidden disables the long press on the input.
This behavior gets disabled with the contextMenuHidden.

You want selectTextOnFocus={false} to disable the contextMenu of the highlighted text.

contextMenuHidden disables the long press on the input.
This behavior gets disabled with the contextMenuHidden.

You want selectTextOnFocus={false} to disable the contextMenu of the highlighted text.

Thanks for your comment! I have tried to make description more clear.
Probably, I should tasted it by more divices, but for thes devises, wich i tested, epxpected behavier did not reprodused (selectTextOnFocus={true} did not disabled opening context menu). Actualy, for IoS - behavior - correct.

selectTextOnFocus={false} disables it

selectTextOnFocus={false} disables it

oh sorry first time i didn't catch: now i see. I'll check this solution. Thank you!

selectTextOnFocus={false} disables it

oh sorry first time i didn't catch: now i see. I'll check this solution. Thank you!

unfortunately it looks like it doesn't work


suggestion for issue #4

Warning: I did NOT run the tests because I didn't know how.  I tried
node tests.js

but I got the error describe is not defined.  I'm not sure what testing framework you are using.

npm test or yarn test is usual.
Make sure you npm install -D or yarn install -D to install the test dependencies.

Thanks, now I know a little bit more about nodejs.  This pull request is no longer needed since your recent commit covers it.


Improve mongo client port.

This PR fixed some some small issues record in https://github.com/Microsoft/vcpkg/pull/148:

removed find_program(POWERSHELL powershell)
LIBBSON_DIR uses ${CURRENT_INSTALLED_DIR} instead of ${CURRENT_PACKAGES_DIR}
mongo-cxx-driver directly requires libbson now.

Hi @sdcb, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;


doc: PR template for the docs repo

Signed-off-by: nannanli<EMAIL_ADDRESS>Added two check items when users create a PR: Issue number, DCO.

Great idea @nannanli - I dream of a day that there won't be any missed DCO signoffs! haha
I say, go ahead and merge.

Looks good.  I hope it works :)


Color code the badges

General information

Operating system + version: Windows 10 64 bit
Browser + version: Chrome 67.0.3396.99 64 bit
Information about the host app:

How did you install it: Prebuilt binary
If installed an official release, put a version: 2.0.21

Information about the browser extension: Chrome webstore

Exact steps to reproduce the problem

Configure multiple Custom Store locations

Note that there is no option to choose a color

Browse to a site with multiple logins in your password store
Ctrl+Shift+L: See badges for each password store location

Note that all the badges are green

It would help the user to select which login to use if the badges were color coded, so I could have green badges for my personal logins, and red badges for my work logins.  The user could choose the badge color by specifying an RGB hex number, or by using a color picker.
This is what the result would look like:

@ipundit Good idea - we'll do this :-). In the middle of a v3 rewrite at the moment, so good timing.


entkit/templates: ensure importing correct field types

If you use custom field types (GoType()) ensure to import those types in the templates so goimports does not import a wrong package.

@masseelch I'm impressed, this is something I haven't seen before. Your correction is fantastic!
Unfortunately, I haven't studied existing templates before. It's great that you're correcting my mistakes.

It's my pleasure 🙂


Fix #93

This fixes AsyncEnumerable.SelectMany. The sequence of inner IAsyncEnumerators is represented through an AssignableDisposable (equivalent to SerialDisposable from Rx). This takes care that the previous inner IAsyncEnumerator is properly disposed when a new one is assigned, and each inner IAsyncEnumerator is disposed only once.

I don't mind you copy-pasting these changes instead of pulling the commits, however, I'd be very happy if you could just acknowledge the effort e.g. in your commit message.


Email notifications

I dont want to receive notifications about my own comments :)
wanna more details - real comment message or preview, also notifications title should not be 'Hello'))

new comment if: watched, owner, participant
edited:  watched, owner, participant
state changed:  watched, owner, participant

#911


Add rc5 ciphers to default provider

Checklist

[x] documentation is added or updated
[x] tests are added or updated

ping

Ta. Merged to master.


How can i add dutch voice?

Hello, i'm wondering if there is an dutch voice that works, I found this one https://huggingface.co/rhasspy/piper-voices/tree/main/nl/nl_NL/mls/medium but i cannot make it works, can u help? Great plugin tho

Hello, I have initially had the dutch language model added into the plugin but ended up removing it because the quality wasn't great. I have considered re-training the model (along with more languages) myself to see if I can improve it but had no time to figure out training yet.
I'm happy to re-add it for you, unless you'd rather wait for the higher quality one.
Glad you like the plugin!

I have re-added dutch, expect the update to be out on runelite soon, when it gets approved by the devs.


[chip-test/sival] Edn sival sw mode

This PR implements the chip_sw_edn_sw_mode test.
For further information check the commit messages.
This PR closes #20021.

Thanks @andreaskurth for your review. Your suggestions should now be implemented.

Potentially @vogelpi wants to take a quick look?

Oh, and @h-filali I know you've been testing prior versions of this PR on the FPGA, but once you have the final version of this PR ready, please re-test it on the FPGA and confirm here that it works

@vogelpi thanks for reviewing this PR. Great inputs from your side!
@andreaskurth I'll check the test on the FPGA tomorrow.
Other than that if you both agree with the latest adaptations (Implementing @vogelpi 's inputs and fixing a bug in the aes testutils)
we can merge this PR after the test passes on the FPGA.

I added two more lines, as can be seen in the comments above.
@andreaskurth I also ran the test on the FPGA and it passes.
I think we should now be clear to merge!


Fix idempotence in Debian by moving update_cache

This makes the role idempotent on Debian platforms.
When called in a separate task the "update_cache" option always return "changed".
When combined with a package to be installed, it returns changed only if the package isn't already installed.
It still always updates apt cache, so the following apt instructions will continue to benefit from a fresh cache.

Cool, this looks good! In hindsight this can probably just be removed outright. Given the debian role doesn't add any new repos or anything I don't see why it should be upon the role to update cache...
What do you think?

I see your point, and I think it would up to the user to make that call.
Sometimes you just want to apply a single role and I think the role itself should make sure your cache is up to date to benefit from the latest version of the packages.
Sometimes you include the role in a massive playbook, and then if every role updates the apt cache this is going to take forever :)
So maybe adding this as a variable/flag that the user could turn off if needed ?
Something like nagios_nrpe_apt_force_cache_update ?
Default : yes (this way you can just git clone and apply), if set to no, it's up to the user to take care of the state of his apt cache.


API for rendering canvas-visuals to an RGB image

🚀 Feature
Implement a method to render the canvas as an RGB image directly.
Motivation
There are often cases where I would want to export the canvas as an RGB image at its native resolution. The current screenshot option in napari is useful, but it requires the user to manually adjust the canvas or crop the images afterwards, which can be cumbersome and often not very fast. It is also not easily possible (and in some cases impossible) to export the canvas-visuals at their native resolution. By using the viewer.window.resize method this can be mitigated a bit, however this is constrained by minimal and maximal viewer size, which is related to scaling and dock-widgets and so on.
Pitch
I would like to propose the implementation of a method or an additional argument to the screenshot method, to directly render the canvas as an RGB image at the datas native resolution. I have experimented with some options all of which would require access to the canvas attribute, so implementing it as a plugin is not possible since the access to this will be removed in 0.5.0.
The simplest way I found to do this was to resize the canvas, then calling the canvas.render(), or viewer.window.screenshot(canvas_only=True) method and save the image as an RGB.
class CameraSetter:
    """A context manager to adjust viewer camera settings before rendering."""

    def __init__(self, viewer):
        self.viewer = viewer
        # get initial settings
        self.center = viewer.camera.center
        self.zoom = viewer.camera.zoom
        self.angles = viewer.camera.angles

        self.input_canvas_size = viewer.window.qt_viewer.canvas.size

        extent = viewer._sliced_extent_world[:, -2:]
        scene_size = (extent[1] - extent[0]) / viewer.window.qt_viewer.canvas.pixel_scale # adjust for pixel scaling
        grid_size = list(viewer.grid.actual_shape(len(viewer.layers)))

        # Adjust grid_size if necessary
        if len(scene_size) > len(grid_size):
            grid_size = [1] * (len(scene_size) - len(grid_size)) + grid_size

        # calculate target size i.e the size the canvas should be to fit the whole scene
        self.target_size = tuple((scene_size * grid_size[::-1]).astype(int))
        self.center = viewer.camera.center
        self.zoom = viewer.camera.zoom
        self.angles = viewer.camera.angles

    # copied from viewer.reset_view and modified without padding
    def _center_on_canvas(self):
        """Reset the camera view."""
        extent = self.viewer._sliced_extent_world
        scene_size = extent[1] - extent[0]
        corner = extent[0]
        grid_size = list(self.viewer.grid.actual_shape(len(self.viewer.layers)))
        if len(scene_size) > len(grid_size):
            grid_size = [1] * (len(scene_size) - len(grid_size)) + grid_size
        size = np.multiply(scene_size, grid_size)
        center = np.add(corner, np.divide(size, 2))[-self.viewer.dims.ndisplay :]
        center = [0] * (self.viewer.dims.ndisplay - len(center)) + list(center)
        self.viewer.camera.center = center

        if np.max(size) == 0:
            self.viewer.camera.zoom = np.min(self.viewer._canvas_size)
        else:
            scale = np.array(size[-2:])
            scale[np.isclose(scale, 0)] = 1
            self.viewer.camera.zoom = 1 * np.min(
                np.array(self.viewer._canvas_size) / scale
            )
        self.viewer.camera.angles = (0, 0, 90)

    def __enter__(self):
        """Set up the viewer for rendering."""
        self.viewer.window.qt_viewer.canvas.size = self.target_size
        self._center_on_canvas()

    def __exit__(self, exc_type, exc_val, exc_tb):
        """Reset the viewer after rendering."""
        self.viewer.window.qt_viewer.canvas.size = self.input_canvas_size
        self.viewer.camera.center = self.center
        self.viewer.camera.zoom = self.zoom
        self.viewer.camera.angles = self.angles

def render_as_rgb(viewer):
    """Render the viewer for a single timepoint."""
    with CameraSetter(viewer):
        rendered_img = viewer.window.qt_viewer.canvas.render(alpha=False)
    return rendered_img

# Usage
with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    rendered_img = render_as_rgb(viewer)

Of course this is a failrly naive implementation and one would have to think about how to handle 3d data, very large images, overlays and so on. But I think it could be extremely useful to have a feature like this (in any form what so ever).
Alternatives

Stick with the current screenshot method
canvas.render() would in theory take a region and size attribute so resizing the canvas could be skipped, however I did not manage to get this to work reliably, even when accounting for monitor scaling and canvas-to-world coordinate transforms. It also has issues if the camera was set so that no the entire image is visible on the canvas.
Experiment a bit more with vispys lower-level function to find an approach e.g using gloo and fbo but i really dont understand enough of this to judge wheter this is easily possible.

It looks like this Issue is partially related to #6114. Also qt_viewer deprecation was postponed to 0.6.0 in #6283.
In the context of Proposed API changes I prefer to allow provide required resolution instead of using "native" as it may lead to problematic results for big datasets.

Thank you for the feedback!
I've looked at #6114 and can see the overlap. My bad for not looking more thouroughly before... I think that resizing the canvas and reseting the camera would be more straight forward than cropping the black canvas. The approach above has worked pretty well for me so far (however maybe there are special cases which im not considering)
I guess since the deprecation was postponed its not very urgent however would still be great to have a feature like this.
I agree that having a size-argument would make sense, how about making this an optional argument and by-default export at the datas "native" resolution.
Would there be interested in a pull request that implements something like this (e.g a new  method to the window class next to screenshot (i.e. to_rgb or something like this)) ? I could give it a try. Or is there already somebody working on a feature like this or a more sophisticated version? (I saw something mentioned here https://forum.image.sc/t/saving-image-from-napari/50379/30)

I agree that having a size-argument would make sense, how about making this an optional argument and by-default export at the datas "native" resolution.

what did you mean by native resolution for 3d rendering? For 2d it is clear but not for 3d.

Such an API is hugely desired from many sides.
It would be nice being able to use the API headless, without launching the Napari GUI, and if possible avoid depending on Qt (just render the image as array).
This discussion has some overlap with spatialdata-plot, which implements rendering specifically for the SpatialData format.
Also, such an API should keep in mind the link between data and the rendering process. Some data formats store visualization parameter presets. Developers read these presets and pass them to a visualization API (like this). It would be good to coordinate naming of rendering parameters between data formats and implementors of visualization tools. As example, NGFF-Zarr stores OMERO rendering parameters, which resemble quite a lot Napari's add_image parameters (color→colormap, window→contrast limits).


secretKeyRef for token missing for Hetzner

While deploying the example yaml for Hetzner the following is thrown:
Error from server: error when creating "hetzner-machinedeployment.yaml": admission webhook "machinedeployments.machine-controller.kubermatic.io" denied the request: validation failed: token is missing

Machine controller version: v1.40.1

Hey, can you please try to clarify this issue? The Hetzner example does have a secretKeyRef, so I'm not sure I understand the issue title. https://github.com/kubermatic/machine-controller/blob/c3488bde1d9c840caaf57109719c68c701b13f05/examples/hetzner-machinedeployment.yaml#L40-L45
But the Secret needs to exist and have a token at the referenced key, can you please verify that's the case? If you could share the MachineDeployment YAML that you are actually trying to apply (since the example needs modification to work, I assume it's not 1:1 the file in the examples folder), that would help as well.

The YAML I have for my deployment was based on the example:
apiVersion: v1
kind: Secret
metadata:
  # If you change the namespace/name, you must also
  # adjust the rbac rules
  name: machine-controller-hetzner
  namespace: kube-system
type: Opaque
stringData:
  token: ...
---
apiVersion: "cluster.k8s.io/v1alpha1"
kind: MachineDeployment
metadata:
  name: hetzner-machinedeployment
  namespace: kube-system
spec:
  paused: false
  replicas: 1
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  minReadySeconds: 0
  selector:
    matchLabels:
      foo: bar
  template:
    metadata:
      labels:
        foo: bar
    spec:
      providerSpec:
        value:
          sshPublicKeys:
            - "..."
          cloudProvider: "hetzner"
          cloudProviderSpec:
            token:
              secretKeyRef:
                namespace: kube-system
                name: machine-controller-hetzner
                key: token
            serverType: "cx11"
            # Optional
            datacenter: ""
            location: "fsn1"
            image: "ubuntu-20.04"
            # Optional
            labels:
              my: label
          operatingSystem: "ubuntu"
          operatingSystemSpec:
            distUpgradeOnBoot: false
      versions:
        kubelet: 1.23.1

Thanks! Let me try to reproduce this.

I can reproduce this, so I'll take a look at whether this is a problem with the example or with the code. Thanks for reporting this.

@itsezc as a workaround, passing a token appears to be working if you change the machine-controller and machine-controller-webhook Deployments and include an environment variable called HZ_TOKEN (and pass your token), if that is an option to you. Your approach should work too, of course, but it might help you while this is investigated.

@embik Thanks for following through, yes passing the token directly to the MachineDeployment is what I'm doing directly for right now.

@itsezc sounds good. The environment variable I mentioned above is another solution besides passing the token directly if you do not wish to include your token in your MachineDeployment YAML.
#1147 should fix this though.


rebaseStalePrs: should ignore PR that is already edited manually

For example, renovate makes a PR for new version of my linter-config package, which will usually cause build failed, I have to fix linter error in that PR before merging, but with rebaseStalePrs enabled it'll always override my edited branch (once per hour I think?), though I can just git push -f back from my local branch, it'd be better to not override those edited branch.

Yes, I agree. I have a setting to detect if  PR has been modified and rebasing should check for this also.