quick-lint-js: support cross compiling for upcoming 2.13 release

quick-lint-js' build system supports cross compiling, but it's not automatic.
Currently, cross compiling with Nix works because some build-time tools are optional. These build-time tools need a compiler from buildPackages.stdenv. Version 2.13 (currently unreleased) will make these build-time tools required.
Refactor the quick-lint-js package now to use quick-lint-js' cross compilation support. This will make the upgrade to quick-lint-js 2.13 seamless.
Upstream documentation for cross compiling:
https://quick-lint-js.com/contribute/build-from-source/cross-compiling/
Testing:
# Test Linux x86_64 cross compiling for Linux AArch64:
x86$ uname -a
Linux strapurp 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
x86$ nix-shell -p pkgsCross.aarch64-multiplatform.quick-lint-js --run 'file $(which quick-lint-js)'
/nix/store/qw06zla9qbjak83727ny7wqpwnygwvb8-quick-lint-js-aarch64-unknown-linux-gnu-2.12.0/bin/quick-lint-js: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /nix/store/9lifq3fy4lbkblczl5b0q5429k3dxlw0-glibc-aarch64-unknown-linux-gnu-2.35-224/lib/ld-linux-aarch64.so.1, for GNU/Linux 3.10.0, not stripped

# Test the binary on a Linux AArch64 machine:
x86$ nix --extra-experimental-features nix-command copy --to<EMAIL_ADDRESS>/nix/store/qw06zla9qbjak83727ny7wqpwnygwvb8-quick-lint-js-aarch64-unknown-linux-gnu-2.12.0/
arm$ /nix/store/qw06zla9qbjak83727ny7wqpwnygwvb8-quick-lint-js-aarch64-unknown-linux-gnu-2.12.0/bin/quick-lint-js --version
quick-lint-js version 2.12.0

I tried to test on Darwin AArch64 cross compiling for Darwin x86_64, but it seems to be broken for other packages, not just quick-lint-js.
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

quick-lint-js version 2.13.0 has released. If we update to 2.13.0 in Nixpkgs without this PR, cross-compiling will be broken. I'd like to get this PR merged before updating quick-lint-js to 2.13.0.

I don't know the Nixpkgs release process. Who do I ask to get this approved PR merged?

I updated the patch:

Rebased onto master.
Reframed the commit message. Cross compiling worked when I made the patch (quick-lint-js 2.12), but it's broken on master (quick-lint-js 2.15). The commit message used to talk about the upcoming 2.13 release, but now it talks about fixing cross compilation.
Switched from manual install to cmake --install. (This was a TODO comment in the original patch.)
Used passthru for build-tools per @Artturin's recommendation.
Re-ran testing.

I updated the patch again:

Rebased onto master.
Called preInstall/postInstall hooks.
Patch an issue introduced in quick-lint-js 2.16.0 which broke cross-compilation.
Re-ran testing.

@Artturin Thanks for letting me know. I fixed the conflict and re-tested.


Refactor method stubbing in IrodsStatsBadge.spec.js

Overriding methods is not cool anymore and we're getting errors because of this. The tests still run but we should get rid of this.
[vue-test-utils]: overwriting methods via the `methods` property is deprecated and will be removed in the next major version. There is no clear migration path for the `methods` property - Vue does not support arbitrarily replacement of methods, nor should VTU. To stub a complex method extract it from the component and test it in isolation. Otherwise, the suggestion is to rethink those tests.

Fixed. These errors were actually caused by a missing suppression of logging. The actual refactoring for method stubbing will have to be thought of and implemented later.


Suggestion: Implement syntax for easily populating columns with values

Derived from https://github.com/probcomp/bayeslite/issues/516
SQL let's you insert values into a column one value at a time
UPDATE <table> SET <column> = <value> WHERE <filter>

In BQL, we should implement the following convenience wrapper
UPDATE <table> SET <column> = (SELECT key, col FROM T) INNER JOIN USING  <key>

which does a bulk version of UPDATE from SQL.

What's wrong with just this?
UPDATE <table> SET <column> = (SELECT t.col FROM t WHERE t.key = key)

What is the join accomplishing for you?

@riastradh-probcomp I need a bulk operation which sets many values all in one-go.
The following code in iventure, using python for-loops might clarify the intention:
resids = %sql SELECT residual FROM gapminder_monitor_t;
for rowid, resid in enumerate(resids.values):
    %sql UPDATE gapminder_monitor_t \
        SET mortality_maternal_resid_log_linear = {resid[0]} WHERE rowid={rowid+1}

It's not exactly clear to me what you're trying to do with this query.
If the rowids of gapminder_monitor_t are contiguous and 1-based, then you can simplify this program a great deal:
UPDATE gapminder_monitor_t
    SET mortality_maternal_resid_log_linear = resid;

But maybe you meant for the value to be some interesting function of the rowid indexed by some other table, in which case you can do something like:
UPDATE gapminder_monitor_t
    SET mortality_maternal_resid_log_linear =
        (SELECT f(t.resid) FROM other_table AS t
            WHERE t.gapminder_monitor_id = rowid)

@riastradh-probcomp here is what I am achieving in a single query
>> select * from f;
name | a | b
-----+---+---
joe  | 0 |
bob  | 1 |
qux  | 2 |
joe  | 3 |

>> select * from g;
name | b
-----+---
joe  | 4
bob  | 9

-- some single bql query
>> select * from f;
name | a | b
-----+---+---
joe  | 0 | 4
bob  | 1 | 9
qux  | 2 |
joe  | 3 | 4

UPDATE f
    SET b = (SELECT f.b FROM f WHERE f.name = name)

Does that not do what you want?

@riastradh-probcomp your query did not work ...
sqlite> select * from f;
name|a|b
joe|0|
bob|1|
qux|2|
joe|3|
sqlite> select * from g;
name|b
joe|4
bob|9
sqlite> update f set b = (select f.b from f where f.name = name);
sqlite> select * from f;
name|a|b
joe|0|
bob|1|
qux|2|
joe|3|

@riastradh-probcomp I believe that in SQLITE, the <value> in
UPDATE <table> SET <column> = <value> WHERE <filter>
seems scalar-valued, at least I don't know of any table-valued <value> which achieves the updates in my original example

I mistyped the other table name -- I meant to write g in two places where I wrote f.  Here's a full example:
% sqlite3
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table f(name, a, b);
sqlite> create table g(name, b);
sqlite> insert into f(name, a) values
   ...>   ('joe', 0),
   ...>   ('bob', 1),
   ...>   ('qux', 2),
   ...>   ('joe', 3);
sqlite> insert into g(name, b) values
   ...>   ('joe', 4),
   ...>   ('bob', 9);
sqlite> select * from f;
joe|0|
bob|1|
qux|2|
joe|3|
sqlite> select * from g;
joe|4
bob|9
sqlite> update f set b = (select g.b from g where g.name = f.name);
sqlite> select * from f;
joe|0|4
bob|1|9
qux|2|
joe|3|4
sqlite>

You are right that the <value> is scalar-valued, but UPDATE modifies every matching row (which is every row, if there's no WHERE), evaluating the scalar-valued expression for each matching row.

You are right that the  is scalar-valued, but UPDATE modifies every matching row (which is every row, if there's no WHERE), evaluating the scalar-valued expression for each matching row.

Above was the key point, thanks!


Fix wkwebview crashed when received invalid UTF8 string from IPC (#1084)

What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Docs
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Checklist

[ ] This PR will resolve #___
[x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[x] I have added a convincing reason for adding this feature, if necessary
[x] It can be built on all targets and pass CI/CD.

Other information

This one is cherry-picked from dev to 1.x.
Is this the right branch to publish version to tauri 1.x?


Submitting reviews for proposals intermittently causes error

If a staff user goes in and submits a review for a proposal (for instance, on this page: https://staging-pycon.python.org/2016/reviews/review/1555/#proposal-reviews), they get an error which reads:

Oops, we've had a problem on the server. The web team have been informed and will be looking into it but if you have any questions, don't hesitate to email:

This doesn't always happen, but sometimes does. Maybe half of the time?

Fix is on staging for Q/A.

The issue is still happening on staging. Here's one of the internal server error messages I got emailed:
Internal Server Error: /2016/reviews/review/1546/
Traceback (most recent call last):
File "/srv/pycon/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/srv/pycon/env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 22, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/srv/pycon/pycon/symposion/reviews/views.py", line 295, in review_detail
review.proposal = proposal
File "/srv/pycon/pycon/symposion/reviews/models.py", line 122, in save
ProposalResult.objects.get_or_create(proposal=self.proposal)
File "/srv/pycon/pycon/symposion/reviews/models.py", line 281, in update_vote
self.comment_count = models.F("comment_count") - 1
File "/srv/pycon/env/local/lib/python2.7/site-packages/django/db/models/query.py", line 563, in update
rows = query.get_compiler(self.db).execute_sql(CURSOR)
File "/srv/pycon/env/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1062, in execute_sql
cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
File "/srv/pycon/env/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 829, in execute_sql
sql, params = self.as_sql()
File "/srv/pycon/env/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1028, in as_sql
(field.class.name, val.class.name))
TypeError: Database is trying to update a relational field of type DecimalField with a value of type ProposalScoreExpression. Make sure you are setting the correct relations
Request repr():
<WSGIRequest
path:/2016/reviews/review/1546/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'vote': [u'+1'], u'comment': [u'text'], u'csrfmiddlewaretoken': [u'gMGVlhkfBmWhdbmDs1rP774YoH5xU935'], u'vote_submit': [u'Submit Review']}>,
COOKIES:{'__utma': '32101439.1919584.1440091547.1441306222.1442335475.4',
'__utmc': '32101439',
'__utmz': '32101439.1440091547.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)',
'csrftoken': 'gMGVlhkfBmWhdbmDs1rP774YoH5xU935',
'sessionid': 'c8bjuoda81lnc5pnkebe4almky6pdtfx'},
META:{'CONTENT_LENGTH': '101',
'CONTENT_TYPE': 'application/x-www-form-urlencoded',
u'CSRF_COOKIE': u'gMGVlhkfBmWhdbmDs1rP774YoH5xU935',
'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_AUTHORIZATION': 'Basic cHljb246cG9ydGxhbmQyMDE2',
'HTTP_CACHE_CONTROL': 'max-age=0',
'HTTP_CONNECTION': 'close',
'HTTP_COOKIE': '__utma=32101439.1919584.1440091547.1441306222.1442335475.4; __utmc=32101439; __utmz=32101439.1440091547.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); sessionid=c8bjuoda81lnc5pnkebe4almky6pdtfx; csrftoken=gMGVlhkfBmWhdbmDs1rP774YoH5xU935',
'HTTP_HOST': 'staging-pycon.python.org',
'HTTP_ORIGIN': 'https://staging-pycon.python.org',
'HTTP_REFERER': 'https://staging-pycon.python.org/2016/reviews/review/1546/',
'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36',
'HTTP_X_FORWARDED_PROTO': 'https',
'PATH_INFO': u'/2016/reviews/review/1546/',
'QUERY_STRING': '',
'RAW_URI': '/2016/reviews/review/1546/',
'REMOTE_ADDR': '<IP_ADDRESS>',
'REMOTE_PORT': '57403',
'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': u'',
'SERVER_NAME': '<IP_ADDRESS>',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.0',
'SERVER_SOFTWARE': 'gunicorn/19.3.0',
'gunicorn.socket': <socket._socketobject object at 0x7fe2f57b2f30>,
'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fe2f5330590>,
'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
'wsgi.input': <gunicorn.http.body.Body object at 0x7fe2f54c6bd0>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'https',
'wsgi.version': (1, 0)}>

Weird - the mentioned type "ProposalScoreExpression" isn't even in the updated code, and I verified that's the code on the staging server.  Maybe the server process didn't restart for some reason?  I just force restarted it; can you try again?

Can no longer reproduce. Looks fixed now!


cannot install on aarch64 GNU/Linux

PREFIX=/home/simon/berryconda3
installing: python-3.6.1-0 ...
./Berryconda3-2.0.0-Linux-armv7l.sh: line 212: /home/simon/berryconda3/bin/python: No such file or directory
ERROR:
cannot execute native linux-armv7l binary, output from 'uname -a' is:
Linux localhost 4.9.65-perf+ #2 SMP PREEMPT Wed Jan 9 22:16:26 CST 2019 aarch64 aarch64 aarch64 GNU/Linux

Berryconda supports armv7l or armv6l platforms not aarch64.


Updated the import for keyboard component

This link says that Keyboard should be imported from 'Keyboard' instead of 'react-native' https://github.com/facebook/react-native/issues/2819#issuecomment-224307128

Closing by https://github.com/APSL/react-native-keyboard-aware-scroll-view/releases/tag/v0.1.2


Migrate favicon to svg

Resolve #359

Thanks for you contribution! 👏🏻
And excuse me for the so late response!
I have read that svg is not working for all browsers, so we need to have a ico fallback.
Reference: https://www.leereamsnyder.com/blog/favicons-in-2021


React UI: tag annotation workspace

Motivation and context

This PR provide a new workspace for more comfortable tag annotation process.

How has this been tested?

Manually
Checklist

[x] I submit my changes into the develop branch
[x] I have added description of my changes into CHANGELOG file
- [ ] I have updated the documentation accordingly
- [ ] I have added tests to cover my changes
- [ ] I have linked related issues (read github docs)
[x] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[x] I have updated the license header for each file (see an example below)

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

Pull Request Test Coverage Report for Build 5199

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.009%) to 65.647%

Files with Coverage Reduction
New Missed Lines
%

datumaro/datumaro/components/extractor.py
1
90.57%

Totals

Change from base Build 5163:
-0.009%

Covered Lines:
10847

Relevant Lines:
16127

💛  - Coveralls

@ActiveChooN
In the implementation, when you add a tag, CVAT immediately switches frame.
It can be convenient in tasks where we have strict condition: one frame, max one tag. But it creates significant inconveniences when frame can include several tags. What is annotation scenario in this case?

Also need to add a built-in search in label selector (antd should support it).
Probably some icons for buttons "add tag" and "skip frame" would be useful to UX.
What do you think about case when the same frame includes several tags with the same label? Is it valid?
Eslint shows quite a lot of issues in the patch. Could you please fix them?

Feature idea:
We have enough free space in the sidebar. What if we show list of buttons with recently created labels? Pressing the button creates a tag with the corresponding label. So, you do not need to search often used labels in the list. It should accelerate the process. What's more, it is possible, to add shortcuts for these labels.

@bsekachev

What is annotation scenario in this case?

I imagine it like that. User selects one tag for annotation, for example cat, and annotate all images with this tag. So there is two conditions, tag is present or not on this image. In both cases it will be good to go further without additional clicks. And when annotation with this tag is ended user selects another tag and run all process from the beginning.

What do you think about case when the same frame includes several tags with the same label? Is it valid?

I guess it will be good question for data annotators. In my opinion you can tag image with several tags with different attributes (for example cars with different color).

Feature idea:

I have another idea. It can map keys 0-9 to first 10 labels of the task. Or maybe we should use your solution. But in my idea user should only annotate labels in that mode. For attributes they should use AAM.

@ActiveChooN

User selects one tag for annotation, for example cat, and annotate all images with this tag. So there is two conditions, tag is present or not on this image. In both cases it will be good to go further without additional clicks.

On the one hand yes. But what if dataset contains a lot of labels? In this case an annotator needs to go through all images N times. It looks as a very time consuming process. I suppose need to communicate with our team about the question.

I guess it will be good question for data annotators.

So, will you ask them?

I have another idea.

In a dataset with a large number of labels often used labels aren't always first 10 labels. But actually I do not remember case when we annotate a dataset with number of labels > 10. So, first 10 labels also could be a great solution. By the way, we can allow annotators to setup these buttons as they want in the future.


Adding Group4 slots

Paul:
Just brilliant! Thank you so much.
I'm not sure whether it is the same for all regions, but once logged in and at https://www.tesco.com/groceries/en-GB/slots/delivery, in our area there are two types of delivery slot: 1 hr and 4 hr delivery windows with buttons to toggle between the same week-tabheaders. Redirecting from the login page it seems to default to the Group1 slots (1 hr delivery window), and that bit is working really well,  but I am struggling to understand how to scrape the Group4 slots as well. Any thoughts, please?
Many thanks.

Hi Nigel, Thanks for your kind words! I don't have that option in my region so it's hard to test. Assuming they load up different URLs it would be a case of figuring out the pattern for those URLs in the HTML so the script could match them and loop through them. If you can paste some example HTML here for that section we may be able to suggest some changes for you to try...

This is hard to do when there are no slots! But the form of the URL is almost identical to that for the 1-hour slots:
https://www.tesco.com/groceries/en-GB/slots/delivery/2020-04-09?slotGroup=4
So we might hope the resulting HTML would be pretty similar.

I don't think there is a huge need for the 4-hour slot functionality - when a slot opens up it appears in both categories. The difference is in price only, i.e. a 4-hour slot is cheaper by a pound or so to give Tesco the flexibility. I'd quite happily pay the extra quid to snare a delivery slot at this point! A more valuable addition at this point would be to grab a slot once found but will leave that to @paulmaunders  and @andytson - wizards! Have a good Easter.


[upstream] tightened up the Redis RBAC and moved to upstream-community-operators

Available on Quay at upstream-community-operators/redis-enterprise.


Hide out of range special hours.

Now no element will be created in the DOM if the special hours are out of range and they will fit the current space of the weekday

Brilliant! Thanks for your contribution @AbelistStorage :)


Does updating to <IP_ADDRESS> firmware break integration? (Delta Pro)

If you have followed my previous posts you will be aware that I have integrated my Smart Home Panel to automate charging with Glow CAD smart meter. Everything is working, I am running firmware <IP_ADDRESS> on each Delta Pro. The app keeps telling me there is a new official firmware <IP_ADDRESS> which it wants me to update the Delta Pros to. I am just wondering if anyone has updated it and if this has caused any problems with the integration not working anymore?
I am currently too scared to update it in case it breaks everything but the changelog has definitely attractive fix of sorting out the excessive fan noise which would be useful but I am currently taking 'if its not broke don't try to fix it' mantra.

Hi, based on the communication with EcoFlow support, I updated the firmware to version <IP_ADDRESS> (wifi version <IP_ADDRESS> remained unchanged). HA integration still works.

Thats great news I may risk the update then, anyone else able to confirm it hasn't messed up their HA integration after the firmware was updated?

I'm on V<IP_ADDRESS> and V<IP_ADDRESS> (Wi-Fi) and it's broken for me.  Logs show:
2023-10-18 16:29:55.335 DEBUG (MainThread) [custom_components.ecoflow.ecoflow.rxtcp] connecting <IP_ADDRESS>
2023-10-18 16:29:55.339 DEBUG (MainThread) [custom_components.ecoflow.ecoflow.rxtcp] [Errno 111] Connect call failed ('<IP_ADDRESS>', 8055)
2023-10-18 16:29:55.582 DEBUG (MainThread) [custom_components.ecoflow.ecoflow.rxtcp] connecting <IP_ADDRESS>
2023-10-18 16:29:55.584 DEBUG (MainThread) [custom_components.ecoflow.ecoflow.rxtcp] connecting <IP_ADDRESS>
2023-10-18 16:29:55.587 DEBUG (MainThread) [custom_components.ecoflow.ecoflow.rxtcp] [Errno 111] Connect call failed ('<IP_ADDRESS>', 8055)
2023-10-18 16:29:55.589 DEBUG (MainThread) [custom_components.ecoflow.ecoflow.rxtcp] [Errno 111] Connect call failed ('<IP_ADDRESS>', 8055)

My EcoFlow Delta Pro broke down after 3.570 hours and I got a replacement (to save time, not waiting for repair of my EF).
It is equipped with V<IP_ADDRESS> and V<IP_ADDRESS> (Wi-Fi) and it's broken for me, too.
It`s a pity that there is noch chance to get a stable status with that EF-firmware.
Is there any chance to DOWNGRADE the firmware? Or to upgrade the HACS-integration?

Well I didn't get round to updating the firmware and it looks like I was lucky to hold off as the last 2 messages seems to contradict the first and it does stop Home Assistant integration from working properly? Anyone else done it and worked out what the issue is and got it connected? @vwt12eh8 @mattwells @Ne0-Hack3r

Well I didn't get round to updating the firmware and it looks like I was lucky to hold off as the last 2 messages seems to contradict the first and it does stop Home Assistant integration from working properly? Anyone else done it and worked out what the issue is and got it connected? @vwt12eh8 @mattwells @Ne0-Hack3r

I have not updated past .49 but I suspect it is the WiFi update not the system firmware that closed the port again... Very frustrated with EF in general when it comes to any sort of official integration and their incessant moves to make everything totally cloud dependent.

I've upgraded to v<IP_ADDRESS>(Wi-Fi) last night and the port is now closed / integration no longer works.
I've filed a support ticket with Ecoflow to see if they can roll me back to v<IP_ADDRESS>(Wi-Fi) which was working wonderfully.

I've upgraded to v<IP_ADDRESS>(Wi-Fi) last night and the port is now closed / integration no longer works.
I've filed a support ticket with Ecoflow to see if they can roll me back to v<IP_ADDRESS>(Wi-Fi) which was working wonderfully.

Like I said in last comment I haven't risked updating it. I won't now unless it mandatory for it to continue working with Ecoflow app as I still need the automation options on the Smart Home Panel that Home Assistant integration can't control.

I've upgraded to v<IP_ADDRESS>(Wi-Fi) last night and the port is now closed / integration no longer works.
I've filed a support ticket with Ecoflow to see if they can roll me back to v<IP_ADDRESS>(Wi-Fi) which was working wonderfully.

@imbrianj - any word back from EF support? What we really want is an update with the port open again and for them stop closing it with future updates...

I upgraded on the 15th, immediately saw that v<IP_ADDRESS>(Wi-Fi) blocked the API and submitted a ticket to<EMAIL_ADDRESS>that night.  They responded the next day asking for the serial number and they said they'd get a downgrade sent to my device "in the next few days."  True to their word, I got the downgrade today, 4 days after my initial query.  I'm now back on v<IP_ADDRESS>(Wi-Fi) with the working integration.
I did not explicitly ask for the feature to be added to future firmwares but I did make it clear as to why I wanted the downgrade.

I upgraded on the 15th, immediately saw that v<IP_ADDRESS>(Wi-Fi) blocked the API and submitted a ticket to<EMAIL_ADDRESS>that night. They responded the next day asking for the serial number and they said they'd get a downgrade sent to my device "in the next few days." True to their word, I got the downgrade today, 4 days after my initial query. I'm now back on v<IP_ADDRESS>(Wi-Fi) with the working integration.
I did not explicitly ask for the feature to be added to future firmwares but I did make it clear as to why I wanted the downgrade.

Thanks for that update!

Also confirming that on v<IP_ADDRESS>(Wi-Fi) I could not enroll a new DP via this integration. I emailed supported and they queued up a downgrade for me to v<IP_ADDRESS>(Wi-Fi) and it instantly added.
Also for whatever odd reason, my first DP I purchased about a year ago has never really attempted to update the WiFi version, but I won't complain with the lockout.

Also confirming that on v<IP_ADDRESS>(Wi-Fi) I could not enroll a new DP via this integration. I emailed supported and they queued up a downgrade for me to v<IP_ADDRESS>(Wi-Fi) and it instantly added.
Also for whatever odd reason, my first DP I purchased about a year ago has never really attempted to update the WiFi version, but I won't complain with the lockout.

Different batches of DP builds have different WiFi chips. Not all need the <IP_ADDRESS> update (that closes the port).


[3.0-Triple] remove identity message-encoding

What is the purpose of the change
https://github.com/apache/dubbo/issues/9387
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #9398 (8d7a194) into 3.0 (dcf25da) will decrease coverage by 0.26%.
The diff coverage is 40.00%.

@@             Coverage Diff              @@
##                3.0    #9398      +/-   ##
============================================
- Coverage     65.29%   65.02%   -0.27%
  Complexity      342      342
============================================
  Files          1202     1202
  Lines         51947    51889      -58
  Branches       7737     7683      -54
============================================
- Hits          33917    33741     -176
- Misses        14402    14508     +106
- Partials       3628     3640      +12

Impacted Files
Coverage Δ

...e/dubbo/rpc/protocol/tri/AbstractClientStream.java
60.52% <0.00%> (-0.85%)
:arrow_down:

...che/dubbo/rpc/protocol/tri/IdentityCompressor.java
100.00% <ø> (ø)

...bbo/rpc/protocol/tri/command/DataQueueCommand.java
85.18% <0.00%> (ø)

.../org/apache/dubbo/rpc/protocol/tri/Compressor.java
60.00% <100.00%> (ø)

...a/org/apache/dubbo/rpc/filter/AccessLogFilter.java
24.35% <0.00%> (-44.88%)
:arrow_down:

...va/org/apache/dubbo/rpc/support/AccessLogData.java
53.16% <0.00%> (-37.98%)
:arrow_down:

...org/apache/dubbo/metadata/MappingChangedEvent.java
62.50% <0.00%> (-25.00%)
:arrow_down:

.../remoting/api/SingleProtocolConnectionManager.java
61.53% <0.00%> (-23.08%)
:arrow_down:

...ache/dubbo/remoting/transport/AbstractChannel.java
75.00% <0.00%> (-12.50%)
:arrow_down:

...dubbo/common/status/support/LoadStatusChecker.java
50.00% <0.00%> (-11.54%)
:arrow_down:

... and 60 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 dcf25da...8d7a194. Read the comment docs.


Agreeing with an annotation you have added counts as another vote

From bouteloua:
See https://www.inaturalist.org/observations/12428139

That's how it was designed. Is it causing some kind of a problem?

From bouteloua: "There is one plant species that a user has gone through and annotated but they have mistaken the fruits for the buds in several cases and then agreed with their own annotations. Voting down to 'budding' does not fix the issue; the fruiting observations still show up in searches for budding plants of that species."

The solution to that is to get more people to vote them down. We could disallow upvoting your own annotations, but that would mean you can't contest people contradicting you, e.g. you add an annotation of flowering, I vote it down, and then you can do nothing about it. Right now we have a one person one vote system, which seems mostly fair. @pleary designed this though, so maybe he has an opinion.

That makes sense.

"but that would mean you can't contest people contradicting you, e.g. you add an annotation of flowering, I vote it down, and then you can do nothing about it"
Wouldn't the solution to that just be to get more people to vote it up? When you add the annotation, you have already voted up, it's just a hidden vote.

I think the root of this issue is who to favor in situations without a majority, the person who added the annotation or the single dissenter, and I think that's somewhat arbitrary. You could argue (as we do for the community ID where we want more than a 2/3 majority, favoring a single dissenter against two other people) that someone who actually takes the time to vote against an annotation might have a higher probability of being right, because that's an extremely esoteric aspect of iNat that almost no one does aside from extremely active users who invest a lot of time into improving the system. On the other hand, you could argue that the person who added the annotation put in the work of adding the annotation in the first place, so if we have no reason to believe one vote over the other, why shouldn't we favor the person who did that initial work?
I don't think this is a pervasive problem, and I think the voting mechanism we have is sufficient to deal with the few problematic cases we have. The same thing happens with the captive / cultivated flag, in which some people try to pre-game it by always voting that things are wild, even when there's little reason to think they are, and I can't out-vote them and thus get mad, but it's a small minority of cases.

The confusion with it not being prepopulated with a thumbs up after adding an annotation was one of the first things I mentioned on the GG when it was rolled out.  Extra time clicking with unintentional voting weight added.
Right, obviously I agree with favoring the former situation (the person doing QC on annotations should be favored). Folks leave out budding and fruiting or annotate things as flowering when really budding pretty frequently--e.g. when the bracts are showy but flowers are not.
Really I just don't want to be the pedantic annoyance leaving comments on everyone's observations, most of whom are not the user who chose the wrong annotation. But I'll proceed... : )

Voting on annotations was designed to work the same as voting on Data Quality (date is accurate, is wild, etc.) The way I see it, when an observation or annotation is created there is an assumption the creator believes it is valid and accurate. Without any votes we assume the date of the observation is accurate, or that they agree with the annotation. And in both cases the creator can take the extra step to vote yes/agree which adds weight in their favor, which leads to this case.
I like that voting works the same for Annotations and Data Quality, so I'd say if we change it for one we should change it for both. I'm not sure if this problem is more pervasive in Annotations vs Data Quality field. If it's becoming a problem, maybe there's some way we can guide or inform the user about how their vote is used. Like if there are no votes and they click yes/agree they see a popup asking "are you sure you want to double down on this?", similar to how we prompt for ID disagreements.

Ok. I don't think this is broken and I don't think there's a clear problem to fix, so I'm closing.

For what it's worth, two other users thought this action (agreeing with an annotation you already added) was confusing/shouldn't be allowed: https://www.inaturalist.org/observations/15413912

Just noting a user wrote to help@inat about the ability to vote on your own annotations as a possible bug.

Although I think being able to agree with your own annotation is undesirable, I am in favor of leaving this feature as designed for a different reason. When you're plowing through a lot of annotations, occasionally you get an annotation that won't "stick" - my understanding is that the observation needs to be re-indexed? Being able to agree with another annotation is a quick way to do this, and often another of your annotations is the only one available for doing so.


feat(android): Change subtitleLayout from child to sibling of layout

Summary
Change subtitleLayout from child to sibling of layout
Motivation
I think the behavior of subtitle position changing by resize mode is a bug, but if not, please close it.
Changes

as-is

to-be

Test plan
change resize mode (CONTAIN / COVER)

@YangJonghun I think you will fix this issue: https://github.com/TheWidlarzGroup/react-native-video/issues/3662
Can you please confirm, thank you !

@freeboub
Maybe..? I think what he really wanted was a custom style

@freeboub Maybe..? I think what he really wanted was a custom style

Not sure, let's ask in the ticket !

@YangJonghun This patch cause following regression: https://github.com/TheWidlarzGroup/react-native-video/issues/4019
I am not sure on how to fix it ...
Do you think we should add a prop:
subtitleFollowVideoView
-> true : old video style -> The subtitle will always match video position
-> false: your video style -> The subtitle will always match main view position
Maybe a string prop is better for flexibility in the futur also :/
Because depending of app expectation we can choose between the 2 options ?

@YangJonghun
Please see last merged PR. The proposed change was causing a regression, the original behavior has been restored, so in next release you will have to add a prop to configure it.


DragBehavior dispatching touch event incorrectly

Versions

Python: 3.6.0
OS: Linux Mint ver17.3  (based on Ubuntu 14.04)
Kivy: 1.10
Kivy installation method: pip (using pyenv)

Description
on_press() isn't called when holding down button A or B or D.
Code and Logs
from kivy.lang import Builder
from kivy.base import runTouchApp

root = Builder.load_string(r'''
<DraggableButton@DragBehavior+Button>:
    font_size: 40
    drag_rectangle: [*self.pos, *self.size, ]
    size_hint: None, None
    on_touch_down: print(self.text, 'on_touch_down')
    on_press: print(self.text, 'on_press')

GridLayout:
    on_touch_down: print('------------------------------------------')
    cols: 2
    RelativeLayout:
        DraggableButton:
            text: 'A'
    RelativeLayout:
        DraggableButton:
            text: 'B'
    RelativeLayout:
        DraggableButton:
            text: 'C'
    RelativeLayout:
        DraggableButton:
            text: 'D'
''')

runTouchApp(root)

hold down A
------------------------------------------
D on_touch_down
C on_touch_down
B on_touch_down
A on_touch_down

hold down B
------------------------------------------
D on_touch_down
C on_touch_down
B on_touch_down

hold down C
------------------------------------------
D on_touch_down
C on_touch_down
C on_press

hold down D
------------------------------------------
D on_touch_down

I'd say that's quite desirable because of the drag_timeout:
<DraggableButton@DragBehavior+Button>:
    drag_timeout: 1000000

and see on_press() dispatched. Also, use this instead of pure on_touch_down:
    on_touch_down:
        if self.collide_point(*args[1].pos): print(self.text, 'on_touch_down')

    drag_timeout: 1000000

is not a proper solution of the problem.
Each button belongs to RelativeLayout which means their coordinates are relative to thier parent. But when I ran the code below
from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.factory import Factory

class CustomButton(Factory.Button):

    def on_touch_down(self, touch):
        print(
            self.text, 'on_touch_down', touch.pos,
            'colliding' if self.collide_point(*touch.pos) else 'not colliding')
        return super().on_touch_down(touch)

root = Builder.load_string(r'''
<DraggableButton@DragBehavior+CustomButton>:
    font_size: 40
    drag_rectangle: [*self.pos, *self.size, ]
    size_hint: None, None
    on_press: print(self.text, 'on_press')

GridLayout:
    on_touch_down: print('------------------------------------------')
    cols: 2
    RelativeLayout:
        DraggableButton:
            text: 'A'
    RelativeLayout:
        DraggableButton:
            text: 'B'
    RelativeLayout:
        DraggableButton:
            text: 'C'
    RelativeLayout:
        DraggableButton:
            text: 'D'
''')

runTouchApp(root)

hold down A
------------------------------------------
D on_touch_down (-348.0, 335.0) not colliding
C on_touch_down (52.0, 335.0) not colliding
B on_touch_down (-348.0, 35.0) not colliding
A on_touch_down (52.0, 335.0) not colliding   # not relative to the parent.

hold down B
------------------------------------------
D on_touch_down (34.99999999999994,<PHONE_NUMBER>0000006) not colliding
C on_touch_down<PHONE_NUMBER>9999994,<PHONE_NUMBER>0000006) not colliding
B on_touch_down<PHONE_NUMBER>9999994,<PHONE_NUMBER>0000006) not colliding   # not relative to the parent.

hold down C
------------------------------------------
D on_touch_down (-350.0, 53.99999999999998) not colliding
C on_touch_down (50.0, 53.99999999999998) colliding
C on_press

hold down D
------------------------------------------
D on_touch_down<PHONE_NUMBER>9999994, 47.00000000000002) not colliding # not relative to the parent.

You can see touch.pos is not relative to the parent when holding down a button. Which is why on_press() isn't called. C button works fine bacause C_button.parent.pos == (0, 0). C's coordinates equals to window coordinates.
That's why I think DragBehavior needs to be fixed. Anyways thanks for reply :)

Sorry, I wasn't really online for a day or so. It seems like a valid issue. I'll look at it soon (hopefully today) and see if the PR is ok.


Fix buffer oob instrumentation for matrix refs

Matrix stride decoration is not on matrix type but is a member decoration
on the enclosing struct type. Also correctly apply matrix stride depending
on row or column major.

@dnovillo Could you or one of the other Google folks PTAL? Thanks!

Sure.

@dnovillo I believe I have addressed all your concerns to this point.

@dnovillo I believe I have addressed all your concerns to this point.

You have.  Thanks!

@dnovillo Could you please merge? I believe I don't have permission.


Missing .xml to install/update

I have purchased and cannot update without the .xml  ; (xml missing on github repo)

not as simple as grabbing all files and just making a .tar like you would for an application.

Then get it from the IPS Marketplace.

It's not letting me download because it's asking for renewal. You've made
this open source, just got to properly distribute (even if you don't do
technical support for GitHub releases)

@ABSAhmad "I will only provide support to those, who purchased the gateway however." I have, now you are violating your own contract to your clients. you already have it updated here to match IPS MP, but youre just missing the coinpayments.xml file to update the plugin.

you are violating your own contract
Please clarify, I stated that the code is open-source which it is.

I only have to support clients with an active license, I do not need to distribute the code on github, the xml or whatever - I do that because I want to.


[GLUTEN-1243] Support bit_xor aggregate function

First test Velox side modification, then test Gluten side modification.


Bug Report : "Read More" Button in blog pagenot properly placed.

Reproduction steps

Read More button appears outside of the card body in some of the cards in Blog Page.
Expected behavior
Read More button should be inside the card in all the cards in blog page.
Actual Behavior
Read more button must be inside the card.

👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Could you please assign this task to me?

@imyoungsparda Go for it!

Could you please assign this task to me?


Exported canvas app generates .msapp file only and not the necessary files under Src folder.

The bug
I created 2 Canvas Apps and when I try to export the unmanaged solution, I can see that for one of them only the .msapp file generates whereas for the other one, the .msapp file and all the files and folders under the "Src" folder that you would expect to see generates.
In addition, I also see this error (that happens right before one of my canvas app is to be unpacked).

Additional context
I can see the solution export list the Canvas Apps present in my environment.. and then it unpacks them one by one.
As soon as the app that I am talking about is about to be unpacked, that is when I see this error.

Issue was fixed by updating Power Platform CLI to latest version


Uploading to s3 bucket fails with this error: Custom endpoint `` was not a valid URI

Describe the bug
When uploading media to an item, the media does not upload. Instead I receive an error:
League\Flysystem\UnableToWriteFile Unable to write file at location: original/4691b897290a7c989e19bc27ff972531a6400e41.jpg. Custom endpoint `` was not a valid URI
To Reproduce
Steps to reproduce the behavior:

Create S3 bucket following the instructions here
Install and configure AnyCloud, following the instructions here. Configure in the admin interface or local.config.php
Leave endpoint option blank
Create an Omeka S item
Upload media to the item

Expected behavior
I expect the media to upload to my AWS s3 bucket
Desktop (please complete the following information):

OS: macOS
Browser: chrome and firefox

Endpoint was necessary. This is the format that works for me.
https://s3.us-west-2.amazonaws.com/


Costs generated by the solution

Hi
Can anyone post an estimated monthly cost for this solution?

Hi @KamilZet, which solution are you referring to? This repo has a number of them..


nginx service: enable websocket proxy support with recommendedProxySe…

Motivation for this change
Enable websocket support when recommendedProxySettings = true;
This means the forwarding connection will always be HTTP/1.1 which seems
reasonable these days.
Further it passes allong the Upgrade header to the upstream proxy.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Does it really make sense to enable Websockets for every request? No webserver or proxy does this by default and the install instructions of most web applications restrict websocket configurations to specific request paths. I'll investigate some more before deciding to merging this.
We have this commit in our fork which would  be an alternative if passing the Upgrade header by default isn't safe.

@fpletz Addint this as an additional option similar to your fork would also be nice. I just think it should be easier to enable websocket proxying than it is right now.

This is already solved by https://github.com/NixOS/nixpkgs/commit/65c2203ffcedcf4817c590fe82c213dd45602d47

Oh, @globin already pushed it to master. Great if that version works for you. I've done some research but haven't found any good information about possible security implications.

@fpletz Your commit does exactly what I intended (except better). Works perfectly fine thanks.


#161255240 Resend email confirmation

What does this PR do?
This PR adds the ability to resend the activation email.
Description of Task to be completed?
Have the following endpoint working
POST /api/user/resend-activation-email
How should this be manually tested?
After cloning the repo, cd into it and RUN python manage.py runserver
Hit the endpoint POST /api/user/resend-activation-email with the body as an email:
{ "email"<EMAIL_ADDRESS>}
Any background context you want to provide?
This is necessary in the event that a user is registered but loses the activation link that is normally sent upon registration.
What are the relevant pivotal tracker stories?
161255240
Screenshots (if appropriate)

Pull Request Test Coverage Report for Build 196

22 of 25 (88.0%)  changed or added relevant lines in 3 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.5%) to 87.206%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

authors/apps/authentication/serializers.py
3
4
75.0%

authors/apps/authentication/views.py
13
15
86.67%

Files with Coverage Reduction
New Missed Lines
%

authors/apps/authentication/test/test_social_auth.py
2
89.47%

Totals

Change from base Build 191:
0.5%

Covered Lines:
593

Relevant Lines:
680

💛  - Coveralls


expand exportable to include pledge data - first pass

This PR adds exportable info to csv export!
I've manually tested it a fair bit so far, and will add automated tests when I do the full data test.
@colinxfleming do you know when we might next be updating DARIA? This PR would definitely help for Data Team stuff.

@mdworken we usually ship sunday nights if there are outstanding changes but if this is blocking active work with a deadline then we can do a weekday deploy mid next wk if it's ready.

@colinxfleming can I get another review on this?

Looks good, thanks for working this out! Very glad that this change is being made and totally my mistake for the oversight.


Optimize codestyle checks on legacy code where possible

This issue is imported from pivotal - Originaly created at Aug 31, 2018 by bstrooband
I've added a codestyle checker on the legacy code. I've added the ruleset so that it will pass but maybe we would add more rules to ensure better readable code.
This needs more discussion.

See the phpcs-legacy section in EB's build.xml. And ci/travis/phpcs-legacy.xml
This configuration was introduced in commit:  ada1e1f (Michiel Kodde - Sep 4, 2018)


Web - Chat - The emoji picker is too close to the message input field

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to https://staging.new.expensify.com/
Log in
Navigate to any conversation
Compose a big message
Hover cursor the emoji picker

Expected Result:
The emoji picker does not touch the input field.
Actual Result:
The emoji picker is too close to the message input field, if you write a big message.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Windows / Chrome

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/208794181-64eaa96c-f128-4e37-bc21-9453543ec367.mp4

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01437a1f60a2969c4c
Upwork Job ID:<PHONE_NUMBER>762927104
Last Price Increase: 2022-12-21

I'll get this. Should be quick :)

Cool! Putting it back on Daily as are all Bug issues in the /App repo to achieve WAQ.

Ah, you are right!

@Gonals where is the PR for this? It's somehow not linked to the issue? 🤔

Hmm. Weird. This is the PR: https://github.com/Expensify/App/pull/13757
As far as I can tell, it is linked!


render overflow issue

#7

why was this padding removed?

why was this padding removed?

I

why was this padding removed?

I didnt removed it , i just adjusted it according the new container height.

Tests failed, can you look into it?

how to remove this build fail for linux? Im working on windows.


add fastapi boilerplate code

I added a fastapi starter code that can be launched with make dev.all.up
read more in the file in services/restapi/README.md

Thanks :)


Route Arguments via CI?

Here 1797 already discussed  but please clarify why it's not similar compared to docs route-object.
To avoid passing args around i tried these middleware

class RequestArguments extends AbstractMiddleware
{

    public function __invoke(Request $request, Response $response, callable $next)
    {
        $route = $request->getAttribute('route');
        $request = $request->withAttributes(['route' => $route]);

        $response = $next($request, $response);

        return $response;
    }
}

guess make it possible to access route arguments via ci like this
...
        $request = $this->ci->request;
        $route = $request->getAttribute('route');
        $args = $route->getArguments();
...

uncertain if  Slim\Http\Request->withAttributes method comments are understand right
life cycle add "routeInfo" and route is gone

What you are looking for is... https://github.com/PHP-DI/Slim-Bridge
$app->get('/{a1}/{a2}', function ($a1, $a2, Response $response) {
   return $response->write($a1 . $a2);
});

Closing as resolved. Please let me know if you have any other questions!


addresses https://github.com/hashicorp/terraform-aws-vault/issues/238

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement
Learn more about why HashiCorp requires a CLA and what the CLA includes
Have you signed the CLA already but the status is still pending? Recheck it.

#238

@brikis98 corrected the findings.

corrected all @brikis98

Tests passed! Merging now.

https://github.com/hashicorp/terraform-aws-vault/releases/tag/v0.14.3

@brikis98 on second thought. I just tried to use 0.14.3 It doesnt appear that approach taken in the PR is valid. Specifically with ["once"] snippet.
Error: Invalid function argument

  on .terraform/modules/vault_cluster_elb/modules/vault-elb/main.tf line 32, in resource "aws_elb" "vault":
  32:       enabled       = lookup(access_logs.value, "enabled", lookup(access_logs.value, "bucket", null))
    |----------------
    | access_logs.value is "once"

Invalid value for "inputMap" parameter: lookup() requires a map as the first
argument.


[WIP] Translations 201710 part2

This PR is a followup for #1659 for the rest of translations and for translations that were already included but still have some issues. New translations with high (80%+) translation progress on transifex (if any) can also be added here later.
Current list:

[ ] bg
[x] ru
[ ] sk
[ ] zh_TW

@UdjinM6
#1661 reopened again.


Regarding scaling factor

Hi Ashutosh,
I want to know about the scaling factor in the converted cartesian POSCAR file. If the scaling factor in my direct format POSCAR file is other than 1.0 then it will remain the same or something else in the converted cartesian POSCAR format?
Best,
Sandeep

It will take the scaling factor that is present in your POSCAR file, which you are converting to cartesian.


update agentbaker for containerd

note this is part one of two updates I will do. second part will be updates to the vhd builder scripts to install moby-containerd. currently blocked from doing that until upstream team builds a decoupled moby-engine and moby-containerd.

a few more comments otherwise lgtm

/lgtm

/approve


Tasks are not moving at the first load with Angular 1.5

Tasks are not movable at the first load, however drawn tasks are movable.
If you re render with expand via horizontal scroll, they all works.
thanks.

Experiencing the same issue atm, don't have time to debug.

I suppose i found the problem its a timing issue, I don't know why it is happening after angular 1.5.
Anyway, at the GanttDirectiveBuilder service:
https://github.com/angular-gantt/angular-gantt/blob/master/src/core/ui/util/directiveBuilder.service.js#L58
there is Scope.evalAsync(),
after angular 1.3 they added another method Scope.$applyAsync() which solves our problem.
For further information: http://www.bennadel.com/blog/2751-scope-applyasync-vs-scope-evalasync-in-angularjs-1-3.htm
I tried both for 1.3 and 1.5 versions of Angular and it works.
Could you test and update.

Thank you very much @mustafahlvc for reporting, but also finding the solution ! I would have really strugle with this one if I had to find out the fix ...

Do you think we should replace others occurences of evalAsync with applyAsync ? https://github.com/angular-gantt/angular-gantt/search?utf8=✓&q=.%24evalAsync

you are welcome @Toilal, I m happy to help.
hope that we ll get rid off scope stuff with angular2.
I think that you don't need to replace all $evalAsync() methods,
written in documentation:
"This can be used to queue up multiple expressions which need to be evaluated in the same digest."

I am still experiencing this issue. In short, I load the data first time, I am able to move nothing. I load more data and I am able to move tasks. I did some digging and found out at least this:
In file: angular-gantt/src/plugins/movable.js
var onPressEvents = function(evt) {};

This function is never called after only the first load of the tasks. Additionally these elements appear to be undefined (or rather are empty JQlite objects) on the first load:
var foregroundElement = taskScope.task.getForegroundElement();

// IE<11 doesn't support `pointer-events: none`
// So task content element must be added to support moving properly.
var contentElement = taskScope.task.getContentElement();

Any ideas?

@xeii please write in this issue, that is still open : #644


chore: upgrade js from 0.6.3 to 0.7.1

Hi all, i am working on integrating #680, so this should not be needed anymore. Thank you anyway!


Response cache

It'd be good to have a response cache in place so that static pages can be served a lot faster.

closing for #234


Are these cloudtrails intentionally not multi-region?

Is the intention that someone creates their own multi-region trail including global service events?

@osterman @aknysh can you check this?

@lvh
we have a variable to specify if a trail is multi-region or not
https://github.com/cloudposse/terraform-aws-cloudtrail/blob/master/variables.tf#L39
is that what you are asking?

Right, but they're false by default: I'm wondering if that is intentional. Is the idea that people create their own global/multi-region trails?
(For security purpose, I like having global and multi-region trails, obviously: otherwise, when I compromise some credentials, I just go hide in a different region--and lots of critical services are (or at least pretend to be) regionless. But maybe I misunderstand the point of having per-region CloudTrails that don't have that :-)

@lvh I think a default of true would be advisable as you might be implying. We don't have a strong argument against it. From a security perspective, makes sense to always have it set to true

Yeah, sorry I'm hedging this so much. We 100% tell customers who don't have (hardened) CloudTrail to a) have one trail b) multi-region, regionless c) validation enabled d) KMS and private S3 bucket and e) for bonus points: in a totally separate account that you don't look at until you need it (and you hope you don't).
I'm just wondering if there's an ops reason to do anything else, except point e) (I could see how CT logs are valuable to Ops debugging of course!)

@lvh agree totally. We actually set it to true when we deploy it. Just for some reason, we didn't default it.
Here's our reference implementation:
https://github.com/cloudposse/terraform-root-modules/blob/master/aws/audit-cloudtrail/main.tf
And here's our reference architecture: (E.g. totally separate account)
https://github.com/cloudposse/audit.cloudposse.co
Our strategy is to use lots of different accounts. Each account corresponds to a github repo.

@lvh the default for this var is now true -- Closing out 👍


refactor(backend): replace db.query() with select()

Replace the legacy SQLAlchemy Query API with select() in the backend API.

closes #209.

@tomalrussell @mz8i I think these changes can also be applied to https://github.com/nismod/infra-risk-vis.


Added support for nw.js

Added a check to see if moment is defined, if its not, try to require it using browserify / nw.js native require

Thanks! Can you please make sure that tests / jshint pass?

Embarrassing PR :/

No worries, it is your first contribution to this project :)
Just one request - can you rename IsUsingRequire to something like requireMoment?

IsUsingRequire is not a class name, so it should be start with a lowercase letter, like the rest of the functions in the code (and then you won't have to place new next to it to make jshint happy)
starting it with the word is usually indicates that it returns a boolean. Therefore, I believe using a var (such as require) makes it much easier to understand the purpose of the function when reading the code.

I hope that you are okay with the feedback :)
Thanks!

Just one request - can you rename IsUsingRequire to something like requireMoment?

Ofc, I did this really quick and didn't really think much of it.

IsUsingRequire is not a class name, so it should be start with a lowercase letter, like the rest of the functions in the code (and then you won't have to place new next to it to make jshint happy)

I had no idea, thank you!

starting it with the word is usually indicates that it returns a boolean. Therefore, I believe using a var (such as require) makes it much easier to understand the purpose of the function when reading the code.

Right :)

I hope that you are okay with the feedback :)

All feedback is good feedback :)


arangod: Segmentation fault after AQL query

My Environment

ArangoDB Version:  3.3.13
Storage Engine: RocksDB
Deployment Mode: Single Server
Deployment Strategy: Manual Start
Configuration: default
Infrastructure: amd64
Operating System: Ubuntu 18.04
Used Package: Reproduced in both Ubuntu .deb and from docker store

arangod --version
3.3.13
architecture: 64bit
arm: false
asan: false
asm-crc32: true
assertions: false
boost-version: 1.62.0
build-date: 2018-07-26 17:25:40
build-repository: tags/v3.3.13-0-g92a0c395de
compiler: gcc [6.3.0 20170406]
cplusplus: 201103
debug: false
endianness: little
failure-tests: false
fd-client-event-handler: poll
fd-setsize: 1024
full-version-string: ArangoDB 3.3.13 [linux] 64bit, using jemalloc, build tags/v3.3.13-0-g92a0c395de, VPack 0.1.30, RocksDB 5.6.0, ICU 58.1, V8 5.7.492.77, OpenSSL 1.0.2g  1 Mar 2016
icu-version: 58.1
jemalloc: true
maintainer-mode: false
ndebug: true
openssl-version: OpenSSL 1.0.2g  1 Mar 2016
platform: linux
reactor-type: epoll
rocksdb-version: 5.6.0
server-version: 3.3.13
sizeof int: 4
sizeof void*: 8
sse42: false
unaligned-access: true
v8-version: 5.7.492.77
vpack-version: 0.1.30
zlib-version: 1.2.11

Component, Query & Data
Affected feature:

AQL query using web interface
AQL query (if applicable):

FOR airport IN airports RETURN airport

AQL explain (if applicable):

Query string:
 FOR airport IN airports RETURN airport
Execution plan:

Id
NodeType
Est.
Comment

1
SingletoneNode
1
* ROOT

2
EnumerateCollectionNode
3375
 - FOR airport IN airports   /* full collection scan */

3
ReturnNode
3375
  - RETURN airport

Indexes used:
 none
Optimization rules applied:
 none

Dataset:

This is the dataset provided for the ArangoDB GraphCourse:

url: https://www.arangodb.com/arangodb_graphcourse_demodata/

file: airports.txt

Steps to reproduce

In web interface, enter query on collection "airports"

Problem:
/usr/sbin/arangod crashes, even though it returns the query successfully.  Turned logging up to debug level.  Captured trace logs for performance, mmap, queries.  There was no indication of an error or any warning
When running
/usr/sbin/arangod --uid arangodb --gid arangodb --pid-file /var/run/arangodb3/arangod.pid --temp.path /var/tmp/arangodb3 --log.foreground-tty true
I receive
[1]    27197 segmentation fault  /usr/sbin/arangod --uid arangodb --gid arangodb --pid-file  --temp.path
dmesg shows nothing.
I do have a coredump produced from apport-unpack, if needed, but it's 674 MB.
Alternate use case:
I am able to run the same query on the same dataset from arangosh, with no issues.  Appears to be an issue with the web interface (aardvark?).

Hi,
Just a quick message to inform that v.3.3.14, which contains the fix for this problem, has been released
I am going ahead and closing this issue now. Please comment, if needed, and we will reopen it
Thanks again for reporting this bug,


Need advice to understand what's wrong with getting metrics

Hello everyone!  I need to add telemetry to my service and understand why it doesn't work, I have created a file where I have telemetry settings, I would like to know what is wrong.
I want to get information about HTTP requests.
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
import { RedisInstrumentation } from '@opentelemetry/instrumentation-redis';
import { Resource } from '@opentelemetry/resources';
import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
import { NodeSDK, NodeSDKConfiguration } from '@opentelemetry/sdk-node';
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';

const serviceName = 'MyService';

const prometheusExporter = new PrometheusExporter({ port: 9090, endpoint: '/metrics', appendTimestamp: true });

const redisInstrumentation = new RedisInstrumentation({ enabled: true });
const httpInstrumentation = new HttpInstrumentation({ enabled: true });

/**
 * @summary start open telemetry for service
 */
export const startOpenTelemetry = () => {
  const sdk = new NodeSDK({
    traceExporter: new OTLPTraceExporter({ url: process.env.TRACING_DESTINATION_URL }),
    resource: new Resource({ [SemanticResourceAttributes.SERVICE_NAME]: serviceName }),
    metricReader: prometheusExporter,
    instrumentations: [httpInstrumentation, redisInstrumentation, getNodeAutoInstrumentations()],
  });

  sdk.start();
};

I wrap the OLTPMetricsExporter like this:
const metricReader = new PeriodicExportingMetricReader({
  exporter: new OTLPMetricExporter({
    url: collectorUrl,
  }),
});

Maybe you have to do the same with PrometheusExporter?

@esmiralha Thank you! But I was able to resolve this issue earlier.


Session can not be restored when using flutter web

I am facing the issue, that when I am building my flutter app for the web, deploying it to a web server and running it for the first time, everything works as expected. I can log into my supabase backend, my token gets stored in the local storage and I can use my app as usual.
But as soon as I reload the page, the website won't load and stays stuck during the initialization of supabase auth (See screenshot for more information).
To fix this issue, I have to clear the browser data for the webpage.
Thanks in advance for your help.
Screenshots

Version:
├── supabase_flutter 2.2.0
│   ├── supabase 2.0.4
│   │   ├── functions_client 2.0.0
│   │   ├── gotrue 2.3.0
│   │   ├── postgrest 2.1.0
│   │   ├── realtime_client 2.0.0
│   │   ├── storage_client 2.0.0

@c0ball
This is happening on Google Chrome, correct?
We had an issue where Supabase initialization stopped on safari with dev tools open, but I couldn't reproduce the issue on Chrome. https://github.com/supabase/supabase-flutter/issues/794

Yeah, I cannot seem to be able to reproduce the issue. Would you be able to provide a step-by-step of how you are running your app?

Thanks for the quick reply,
I was able to reproduce this issue on Safari, Firefox, and Chrome with the Dev Tools opened and closed, so I do not think that this was related to a specific browser or the dev tools.
I do not know what's has changed over the night, because this issue was bothering me for weeks, but since this morning I am unable to reproduce this issue on any of the browsers. The build is exactly the same as yesterday, when this issue last occurred to me. I tried changing the access token expiry time to check whether this has any influence, but it does not. I am unable to reproduce this issue. I also tried the same procedure with the latest 2.3.0 version of supabase_flutter, also without any issues.
The only thing I could think of is a change on supabases side, as I am using their SaaS service. Could this be possible?
Thanks for your help, and I will let you know if I can reproduce the error again.

That is very interesting. As far as I know, there hasn't been any change on the Supabase side that I could think of that could affect this, but it is a weird issue, so who knows?
I'm going to close this issue for now, but if you ever run into the same issue again, please do not hesitate to report it!


Escape angle brackets in markdown for summary

If you have angle brackets in the case name, it is displayed incomplete. It looks like that:
Job output
[...]
----------------------------------------------------------------------------------
Benchmark                                        Time             CPU   Iterations
----------------------------------------------------------------------------------
Parser<AlertCategoryIDBitMask>                66.4 ns         66.4 ns     1039[72](https://github.com/eisaev/blevalueparser/actions/runs/4764381427/jobs/8468898651#step:6:73)77
Parser<AlertCategoryID>                       67.0 ns         66.9 ns     10341586
Parser<AlertNotificationControlPoint>         69.7 ns         69.7 ns     10021209
Parser<BatteryCriticalStatus>                 66.6 ns         66.6 ns     10559445
[...]

Summary
[...]
Parser | `66.37376363055044` ns/iter | `67.18023075810773` ns/iter | 0.99
Parser | `66.95329575172786` ns/iter | `68.18596605911337` ns/iter | 0.98
Parser | `69.71105133122411` ns/iter | `69.81726765475584` ns/iter | 1.00
Parser | `66.59934996590181` ns/iter | `66.55876908651649` ns/iter | 1.00
[...]

This is because GitHub markdown treats it as HTML tag. So we need to escape angle brackets like this:
Parser<AlertCategoryID> -> Parser\<AlertCategoryID>
See also:

https://github.com/gollum/gollum/issues/713
https://github.com/facebook/jest/pull/9189

I added this workaround in my workflow:
    # Workaround for GitHub Markdown (see https://github.com/benchmark-action/github-action-benchmark/issues/167)
    - name: Names Workaround
      working-directory: ${{env.BUILD_DIR}}/benchmarks
      run: sed -i 's/</\</g;s/>/\>/g' benchmark-results.json

I use Linux machines for benchmark tasks. If you use different platform you should adapt this. For example, on macOS you have to use gsed (GNU sed) with same command line arguments or use native sed (BSD sed) with another arguments, because BSD sed has different options and behaviour.

This got fixed by #218 and got released in v1.19.2. Now we use the same approach for generating comment, alert and summary. Therefore they all should be working fine :)
Verified here


ng-repeat and api attribute

Hi,
I have a bug with the color-picker 2.0.0. It happens when you do a ng-repeat  to generate a list of color-picker, but only when you use the attribute api.
Concretely, when you try to change the color of the first color-picker (or any other) of the list, it will modify instead the last color-picker.
The bug does not appear if I do not use the api attribute.
Here a JSFiddle that will be, I hope, more clear than my explanation.

I have updated the JSFiddle with a working version. You need to create a separate api object for each color picker.
What are your thoughts on the expected behaviour? What do other libraries do?

I made a new version of that fiddle https://jsfiddle.net/5wn5dhw5/9/
This doesn't seem to be consistently firing the events.

You need to create a separate api for each color picker. See my updated fiddle - https://jsfiddle.net/fm2Lvbe9/.

So how would one do this when the length of the color list is dynamic? Don't always know how many items will be in the list.

As I wanted to have a generic behaviour across all my color-pickers that's why I expected to use only one api object; I have not thought about having an api object for each color-picker.
For instance, ui-boostrap uses only one onClose function for all the alerts in their example.

The reason for the separate apis is that you can also programmatically control some things of the color picker (e.g. show or hide), so I can only think of two ways to suit all scenarios:

Only have one api for all color pickers, but require a color picker object for actions (i.e. show or hide) so it knows which color picker to do the action against.
Seperate the concerns by creating a new eventApi that handles all the events like onChange or onClose. Then you could have the one eventApi for all the color pickers but it would still need separate api for each color picker.

What are your thoughts?

The reason for the separate apis is that you can also programmatically control some things of the color picker (e.g. show or hide), so I can only think of two ways to suit all scenarios:

Only have one api for all color pickers, but require a color picker object for actions (i.e. show or hide) so it knows which color picker to do the action against.
Seperate the concerns by creating a new eventApi that handles all the events like onChange or onClose. Then you could have the one eventApi for all the color pickers but it would still need separate api for each color picker.

What are your thoughts?

Ok, I understand your point.
I would choose the second one. Having a eventApi for the onXXX and another specific actionApi for the open/close.
The first proposition seems a little confusing to me.

I think the second choice as well. In my particular scenario, I just need to know when a color picker has changed, I don't care which one, because the architecture of this app just saves all of them at the same time.
Also, if we can pass in the row object, then we can figure out which item id we're working with and handle it in all encompassing onChange handler.

Fixed in commit 341d727dd24634d75bfe130872a7428ef9b0459a and released in v2.1.0


Kill the intermediate parsed arrays and objects

Allow indirect iterating over arrays/objects, rather than constructing an intermediate representation.
There's a lot of hacky calls into C, so i'm pretty confident this could be a lot better. Feel free to patch in and fix if there are large changes. It seems to be quite a bit slower than the current API (50% slower), probably because of all the calls out of swift.

Merging -- I'll hack on master.


Export metrics to Graphite backend

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
We would like to export metrics to Graphite backend. Graphite is not less popular than any of the currently supported backends, but it's not there.
https://doc.traefik.io/traefik/v1.7/configuration/metrics/
I couldn't find any documentation of what metrics are exposed and their meanings, which seems like an obvious documentation gap.
Another way to approach this problem is to expose an API for metrics, that can then be used to push data to any backend from an user app.

@asarkar fyi, the documentation about metrics is a bit more complete in v2: https://doc.traefik.io/traefik/observability/metrics/overview/


Radius

How do I change radius of the scan... I want it to be smaller...

before logging up, scroll down :)

My scan radius is small now no matter what I set that to.  Do you still have a wide radius scan area?

for this program may be banned???


Applocker / Publisher Rules / Evaluation & Trust unclear

The explanation of publisher rules at
windows-itpro-docs/windows/keep-secure/understanding-applocker-rule-condition-types.md
and https://technet.microsoft.com/itpro/windows/keep-secure/understanding-the-publisher-rule-condition-in-applocker
is a bit unclear:

Does the .exe file have to be 'trusted' of just be 'signed'?
The applocker xml policy just contains strings of certificate properties (name, issuer, .. ). So I am assuming applocker does not actually check the validity itself otherwise at least a fingerprint of the signing CA would be in the policy and its hard to believe that you guys just do a string comparison.
Are publisher rules related to AppID (for checking signature validity)?
To which filetypes does it apply?

thanks for clarification.

@mschilt Here are some answers to your questions.  Thanks!

Publisher rules only apply to digitally signed files.
We ensure that the signature is valid and that the certificate is trusted in the trusted root store.
For UWP apps, we rely on the App ID information that is signed as part of the signature.
Publisher rules apply to all that file types that are supported by AppLocker in its rule collections. Some script file types (e.g. .bat and .cmd) do not support embedded signatures but they can be signed by using catalog files.

Thanks Brian. Exactly what I was looking for.


⚠ Mobitopup has degraded performance

In 1038ef3, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 6476 ms

Resolved: Mobitopup performance has improved in a0cf58f.


module federation build update

Need to be merged along with changes in other repo's

No longer required.


tflite model is not running on webcam feed

System information

OS Platform and Distribution (Linux)
TensorFlow version (2.4.1):

I used TensorFlow pre-trained faster rcnn inception v2 coco model and used my own images and trained them on that model. I exported the frozen inference graph successfully and check it on my webcam , I was working fine and using the code below , I converted the frozen inference graph into tflite model....
import logging
logging.getLogger("tensorflow").setLevel(logging.DEBUG)
import tensorflow as tf
from tensorflow import keras
import numpy as np
import pathlib
#conversion of faster_rcnn_inception_v2_coco_model frozen_inference_graph.pbin to tflite model
import tensorflow as tf
import os
os.environ['TF_XLA_FLAGS'] = '--tf_xla_enable_xla_devices'
converter = tf.compat.v1.lite.TFLiteConverter.from_frozen_graph("frozen_inference_graph.pb", ["image_tensor"], ["detection_classes", "detection_scores", "detection_boxes", "num_detections"])
converter.target_spec.supported_ops = [
tf.lite.OpsSet.TFLITE_BUILTINS, tf.lite.OpsSet.SELECT_TF_OPS]
model = converter.convert()
tflite_models_dir = pathlib.Path("model/")
tflite_models_dir.mkdir(exist_ok=True, parents=True)
tflite_model_file = tflite_models_dir/"mnist_model.tflite"
tflite_model_file.write_bytes(model)
#To Quantize the model on Export, Set the optimizations flag to optimize for size
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant_model = converter.convert()
tflite_model_quant_file = tflite_models_dir/"mnist_model_quant.tflite"
tflite_model_quant_file.write_bytes(tflite_quant_model)
But I am not able to load my .tflite model in python for checking if my tflite model is working and using my webcam as input to the model ...For loading the tflite model ,I am using the code below :
######## Webcam Object Detection Using Tensorflow-trained Classifier #########

Author: Evan Juras
Date: 10/27/19
Description:
This program uses a TensorFlow Lite model to perform object detection on a live webcam
feed. It draws boxes and scores around the objects of interest in each frame from the
webcam. To improve FPS, the webcam object runs in a separate thread from the main program.
This script will work with either a Picamera or regular USB webcam.

This code is based off the TensorFlow Lite image classification example at:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/examples/python/label_image.py

I added my own method of drawing boxes and labels using OpenCV.
Import packages
import os
import argparse
import cv2
import numpy as np
import sys
import time
from threading import Thread
import importlib.util
Define VideoStream class to handle streaming of video from webcam in separate processing thread
Source - Adrian Rosebrock, PyImageSearch: https://www.pyimagesearch.com/2015/12/28/increasing-raspberry-pi-fps-with-python-and-opencv/
class VideoStream:
"""Camera object that controls video streaming from the Picamera"""
def init(self,resolution=(640,480),framerate=30):
# Initialize the PiCamera and the camera image stream
self.stream = cv2.VideoCapture(0)
ret = self.stream.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
ret = self.stream.set(3,resolution[0])
ret = self.stream.set(4,resolution[1])
    # Read first frame from the stream
    (self.grabbed, self.frame) = self.stream.read()

# Variable to control when the camera is stopped
    self.stopped = False

def start(self):
# Start the thread that reads frames from the video stream
    Thread(target=self.update,args=()).start()
    return self

def update(self):
    # Keep looping indefinitely until the thread is stopped
    while True:
        # If the camera is stopped, stop the thread
        if self.stopped:
            # Close camera resources
            self.stream.release()
            return

        # Otherwise, grab the next frame from the stream
        (self.grabbed, self.frame) = self.stream.read()

def read(self):
# Return the most recent frame
    return self.frame

def stop(self):
# Indicate that the camera and thread should be stopped
    self.stopped = True

Define and parse input arguments
parser = argparse.ArgumentParser()
parser.add_argument('--modeldir', help='Folder the .tflite file is located in',
required=True)
parser.add_argument('--graph', help='Name of the .tflite file, if different than detect.tflite',
default='mnist_model_quant.tflite')
parser.add_argument('--labels', help='Name of the labelmap file, if different than labelmap.txt',
default='labelmap.txt')
parser.add_argument('--threshold', help='Minimum confidence threshold for displaying detected objects',
default=0.5)
parser.add_argument('--resolution', help='Desired webcam resolution in WxH. If the webcam does not support the resolution entered, errors may occur.',
default='1280x720')
parser.add_argument('--edgetpu', help='Use Coral Edge TPU Accelerator to speed up detection',
action='store_true')
args = parser.parse_args()
MODEL_NAME = args.modeldir
GRAPH_NAME = args.graph
LABELMAP_NAME = args.labels
min_conf_threshold = float(args.threshold)
resW, resH = args.resolution.split('x')
imW, imH = int(resW), int(resH)
use_TPU = args.edgetpu
Import TensorFlow libraries
If tensorflow is not installed, import interpreter from tflite_runtime, else import from regular tensorflow
If using Coral Edge TPU, import the load_delegate library
pkg = importlib.util.find_spec('tensorflow')
if pkg is None:
from tflite_runtime.interpreter import Interpreter
if use_TPU:
from tflite_runtime.interpreter import load_delegate
else:
from tensorflow.lite.python.interpreter import Interpreter
if use_TPU:
from tensorflow.lite.python.interpreter import load_delegate
If using Edge TPU, assign filename for Edge TPU model
if use_TPU:
# If user has specified the name of the .tflite file, use that name, otherwise use default 'edgetpu.tflite'
if (GRAPH_NAME == 'mnist_model_quant.tflite'):
GRAPH_NAME = 'mnist_model_quant.tflite'
Get path to current working directory
CWD_PATH = os.getcwd()
Path to .tflite file, which contains the model that is used for object detection
PATH_TO_CKPT = os.path.join(CWD_PATH,MODEL_NAME,GRAPH_NAME)
Path to label map file
PATH_TO_LABELS = os.path.join(CWD_PATH,MODEL_NAME,LABELMAP_NAME)
Load the label map
with open(PATH_TO_LABELS, 'r') as f:
labels = [line.strip() for line in f.readlines()]
Have to do a weird fix for label map if using the COCO "starter model" from
https://www.tensorflow.org/lite/models/object_detection/overview
First label is '???', which has to be removed.
if labels[0] == '???':
del(labels[0])
Load the Tensorflow Lite model.
If using Edge TPU, use special load_delegate argument
if use_TPU:
interpreter = Interpreter(model_path=PATH_TO_CKPT,
experimental_delegates=[load_delegate('libedgetpu.so.1.0')])
print(PATH_TO_CKPT)
else:
interpreter = Interpreter(model_path=PATH_TO_CKPT)
interpreter.allocate_tensors()
Get model details
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
height = input_details[0]['shape'][1]
width = input_details[0]['shape'][2]
floating_model = (input_details[0]['dtype'] == np.float32)
input_mean = 127.5
input_std = 127.5
Initialize frame rate calculation
frame_rate_calc = 1
freq = cv2.getTickFrequency()
Initialize video stream
videostream = VideoStream(resolution=(imW,imH),framerate=30).start()
time.sleep(1)
#for frame1 in camera.capture_continuous(rawCapture, format="bgr",use_video_port=True):
while True:
# Start timer (for calculating frame rate)
t1 = cv2.getTickCount()

# Grab frame from video stream
frame1 = videostream.read()

# Acquire frame and resize to expected shape [1xHxWx3]
frame = frame1.copy()
print(frame.shape)
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
print(frame_rgb.shape)
frame_resized = cv2.resize(frame_rgb, (width, height))
print(frame_resized.shape)
input_data = np.expand_dims(frame_resized, axis=0)
print(input_data.dtype)

# Normalize pixel values if using a floating model (i.e. if model is non-quantized)
if floating_model:
    input_data = (np.float32(input_data) - input_mean) / input_std

# Perform the actual detection by running the model with the image as input
interpreter.set_tensor(input_details[0]['index'],input_data)
interpreter.invoke()

# Retrieve detection results
boxes = interpreter.get_tensor(output_details[0]['index'])[0] # Bounding box coordinates of detected objects
classes = interpreter.get_tensor(output_details[1]['index'])[0] # Class index of detected objects
scores = interpreter.get_tensor(output_details[2]['index'])[0] # Confidence of detected objects
#num = interpreter.get_tensor(output_details[3]['index'])[0]  # Total number of detected objects (inaccurate and not needed)

# Loop over all detections and draw detection box if confidence is above minimum threshold
for i in range(len(scores)):
    if ((scores[i] > min_conf_threshold) and (scores[i] <= 1.0)):

        # Get bounding box coordinates and draw box
        # Interpreter can return coordinates that are outside of image dimensions, need to force them to be within image using max() and min()
        ymin = int(max(1,(boxes[i][0] * imH)))
        xmin = int(max(1,(boxes[i][1] * imW)))
        ymax = int(min(imH,(boxes[i][2] * imH)))
        xmax = int(min(imW,(boxes[i][3] * imW)))

        cv2.rectangle(frame, (xmin,ymin), (xmax,ymax), (10, 255, 0), 2)

        # Draw label
        object_name = labels[int(classes[i])] # Look up object name from "labels" array using class index
        label = '%s: %d%%' % (object_name, int(scores[i]*100)) # Example: 'person: 72%'
        labelSize, baseLine = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.7, 2) # Get font size
        label_ymin = max(ymin, labelSize[1] + 10) # Make sure not to draw label too close to top of window
        cv2.rectangle(frame, (xmin, label_ymin-labelSize[1]-10), (xmin+labelSize[0], label_ymin+baseLine-10), (255, 255, 255), cv2.FILLED) # Draw white box to put label text in
        cv2.putText(frame, label, (xmin, label_ymin-7), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 0), 2) # Draw label text

# Draw framerate in corner of frame
cv2.putText(frame,'FPS: {0:.2f}'.format(frame_rate_calc),(30,50),cv2.FONT_HERSHEY_SIMPLEX,1,(255,255,0),2,cv2.LINE_AA)

# All the results have been drawn on the frame, so it's time to display it.
cv2.imshow('Object detector', frame)

# Calculate framerate
t2 = cv2.getTickCount()
time1 = (t2-t1)/freq
frame_rate_calc= 1/time1

# Press 'q' to quit
if cv2.waitKey(1) == ord('q'):
    break

Clean up
cv2.destroyAllWindows()
videostream.stop()
the Error I am getting After running the code :
Traceback (most recent call last):
File "TFLite_detection_webcam.py", line 186, in
interpreter.invoke()
File "/root/anaconda3/envs/tf_env/lib/python3.7/site-packages/tensorflow/lite/python/interpreter.py", line 540, in invoke
self._interpreter.Invoke()
RuntimeError: Container __per_step_0 does not exist. (Could not find resource: __per_step_0/_tensor_arraysTensorArrayV3_0)
(while executing 'TensorArrayScatterV3' via Eager)Node number 416 (TfLiteFlexDelegate) failed to invoke.
^CException ignored in: <module 'threading' from '/root/anaconda3/envs/tf_env/lib/python3.7/threading.py'>
Traceback (most recent call last):
File "/root/anaconda3/envs/tf_env/lib/python3.7/threading.py", line 1307, in _shutdown
lock.acquire()
KeyboardInterrupt
FATAL: exception not rethrown
Aborted
the error is in the screenshot attached

To use TensorArray ops in your model, please consider using tf-nightly or TF 2.5. TensorArray is supported only in TFLite after TF 2.5

To use TensorArray ops in your model, please consider using tf-nightly or TF 2.5. TensorArray is supported only in TFLite after TF 2.5

Can You send me a snippet how to use my tflite in TF 2.5 .... and finding my tflite's tensorArray

You can install a newer tf version by using the pip command:
pip install tf-nightly
To use the TensorArray support, the TFLite model should be regenerated with the new TF version.

You can install a newer tf version by using the pip command:
pip install tf-nightly
To use the TensorArray support, the TFLite model should be regenerated with the new TF version.

I regenerated my Tflite model with tf-nightly and then using TFLite_detection_webcam.py and
Webcam is not showing the output results.
got the following error: screenshoot attached

You can install a newer tf version by using the pip command:
pip install tf-nightly
To use the TensorArray support, the TFLite model should be regenerated with the new TF version.

I regenerated my Tflite model with tf-nightly and then using TFLite_detection_webcam.py and
Webcam is not showing the output results.
got the following error: screenshoot attached

And when I am loading my mnist_model_quant.tflite model in the code below ,
import numpy as np
import tensorflow as tf
Load the TFLite model and allocate tensors.
interpreter = tf.lite.Interpreter(model_path="model/mnist_model_quant.tflite")
interpreter.allocate_tensors()
print(interpreter.get_input_details())
Get input and output tensors.
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
Test the model on random input data.
input_shape = input_details[0]['shape']
input_data = np.array(np.random.random_sample(input_shape), dtype=np.uint8)
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
The function get_tensor() returns a copy of the tensor data.
Use tensor() in order to get a pointer to the tensor.
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)
I am getting the following ... This may help finding my solution
2021-03-28 09:32:30.482772: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parrot): /proc/driver/nvidia/version does not exist
INFO: TfLiteFlexDelegate delegate: 58 nodes delegated out of 410 nodes with 15 partitions.
INFO: TfLiteFlexDelegate delegate: 0 nodes delegated out of 17 nodes with 0 partitions.
INFO: TfLiteFlexDelegate delegate: 0 nodes delegated out of 17 nodes with 0 partitions.
INFO: TfLiteFlexDelegate delegate: 0 nodes delegated out of 3 nodes with 0 partitions.
INFO: TfLiteFlexDelegate delegate: 3 nodes delegated out of 11 nodes with 2 partitions.
INFO: TfLiteFlexDelegate delegate: 0 nodes delegated out of 3 nodes with 0 partitions.
INFO: TfLiteFlexDelegate delegate: 6 nodes delegated out of 108 nodes with 2 partitions.
INFO: TfLiteFlexDelegate delegate: 0 nodes delegated out of 3 nodes with 0 partitions.
INFO: TfLiteFlexDelegate delegate: 3 nodes delegated out of 17 nodes with 2 partitions.
INFO: TfLiteFlexDelegate delegate: 0 nodes delegated out of 3 nodes with 0 partitions.
INFO: TfLiteFlexDelegate delegate: 2 nodes delegated out of 10 nodes with 2 partitions.
INFO: TfLiteFlexDelegate delegate: 0 nodes delegated out of 3 nodes with 0 partitions.
INFO: TfLiteFlexDelegate delegate: 10 nodes delegated out of 261 nodes with 2 partitions.
[{'name': 'image_tensor', 'index': 0, 'shape': array([1, 1, 1, 3], dtype=int32), 'shape_signature': array([-1, -1, -1,  3], dtype=int32), 'dtype': <class 'numpy.uint8'>, 'quantization': (0.0, 0), 'quantization_parameters': {'scales': array([], dtype=float32), 'zero_points': array([], dtype=int32), 'quantized_dimension': 0}, 'sparsity_parameters': {}}]
[[1. 2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 4. 3. 1. 1. 1. 1. 2. 1. 1. 4. 1. 1.
3. 1. 1. 1. 1. 1. 4. 1. 2. 2. 2. 2. 2. 4. 4. 4. 4. 4. 1. 4. 4. 3. 4. 1.
4. 1. 4. 4. 3. 1. 4. 4. 3. 2. 3. 4. 4. 3. 2. 2. 2. 2. 3. 1. 1. 1. 3. 1.

@abattery Jae sung Chung

Looks like the converted tflite is working. For the TFLite_detection_webcam.py's behavior, please ask questions at the script owner at https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi.

Looks like the converted tflite is working. For the TFLite_detection_webcam.py's behavior, please ask questions at the script owner at https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi.

https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi#step-1a-download-and-extract-quantized-ssd-mobilenet-model
The link you sent that says that TensorFlow Lite does NOT support RCNN models such as Faster-RCNN! It only supports SSD models.

@Zakria96,
Can you take a look at this similar issue for tflite conversion of FasterRCNN and also take a look at this comment to modify pipeline.config. Let us know if it helps. Thanks!


Anonymous config array break application

Hello eweryone, i make this
$app = new Application([
    'id' => 'Test',
    'basePath' => dirname(__DIR__)
    ]);
$app->run();

and get "Not Found (#404)"
if i put configuration array to the file, and this file put to some directory
$conf = require(__DIR__ . '/wtf/config.php');
$app = new Application($conf);
$app->run();

its working good. This is feature or bug?

PHP Version 5.6.10

I guess that's because __DIR__ is relative to current file.


Adding merging functionality

With regards to this: https://github.com/ArturT/knapsack/issues/34
I've made it so that you can pass a flag to start generating a report and merge it with the existing json (rspec only, though extending the functionality shouldn't be so tough).
The flag is: KNAPSACK_MERGE_REPORT=true and is set with the KNAPSACK_GENERATE_REPORT flag
This addition does two things:
If a new spec(s) is added, its/their runtime is added to the existing json
If it's run against the suite, the existing times will be overwritten with the new ones via hash merge, 'updating' them

@wscourge At this moment, we abstain from the decision to introduce new features.
I hope in 2023, we will clarify the high-level plans so that we can put more focus on delivering value to users. We will better understand how the knapsack gem fits into that.

OK, looking forward to it - thanks!

We officially archived Knapsack, you can read more about it here.
Thank you for caring and creating this PR.
I'm sorry we couldn't get this done for you.


Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::download()

System details

Operating System : Windows Server 2022
PHP Version : 8.0.12
Laravel Version : 8.74.0
yajra/laravel-datatables-oracle : "~9.0"
yajra/laravel-datatables-buttons : "^4.13"
maatwebsite/excel: "^3.1"

Hi dear Yajra and other friends.
Using the datatables export button, I added a button to export from the table as a server side. So far everything is going well and there are no problems. But I got into trouble when I used maatwebsite/laravel-excel.
app/DataTables/UsersDataTable.php content:
namespace App\DataTables;

use App\Exports\UsersExport;
use App\Models\User;
use Maatwebsite\Excel\Facades\Excel;
// ...

class UsersDataTable extends DataTable
{

    // ...

    protected function buildExcelFile()
    {
        $export = new UsersExport($this->getDataForExport());
        return Excel::download($export, 'users.xlsx');
    }
}

app/Exports/UsersExport.php content:
namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromArray;

class UsersExport implements FromArray
{
    protected array $users;

    public function __construct(array $users)
    {
        $this->users = $users;
    }

    public function array(): array
    {
        return $this->users;
    }
}

When I press the datatbles export excel button, I get the following error:

By the error itself, you should return an excel file on build method. Or you can just override excel method instead.
protected function excel()
    {
        $export = new UsersExport($this->getDataForExport());
        return Excel::download($export, 'users.xlsx');
    }

By the error itself, you should return an excel file on build method. Or you can just override excel method instead.
    protected function excel()
    {
        $export = new UsersExport($this->getDataForExport());

        return Excel::download($export, 'users.xlsx');
    }

Thanks a lot.


Support Uniform Buffer Object

Add UBO support in WebGL2 backend

https://github.com/andykswong/mugl/commit/721d4704271f4a7183c7bd87fb1d4c82295d8906


Documentation error

On
https://institutefordiseasemodeling.github.io/covasim-docs/examples.html
it starts with a line that belongs to installation.

Fixed


Uncaught Exception

Got the following error message when trying to execute the app on macOS Sierra 10.12.5
Nice idea, though.
Uncaught Exception:
TypeError: Error processing argument at index 1, conversion failure from Error: Command failed: osascript -l JavaScript '/Applications/Screeener.app/Contents/Resources/app/lib/keynoteRobot.js' '{"category":"default","images":[{"height":753,"width":1204,"x":350,"y":130}],"mockup":{"height":1080,"path":"/Applications/Screeener.app/Contents/Resources/app/app/assets/mockups/mockup-desktop.png","width":1920,"x":0,"y":0},"name":"desktop"}' '["/Users/strichpunkt/Desktop/test-1x.png"]'
"---------------BeforeNormalize"
[[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":130,"width":1204}],[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":-623,"width":1204}],[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":-1376,"width":1204}],[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":-1752.5,"width":1204}]]
"---------------LastFullObject"
[[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":-1752.5,"width":1204}]]
"------SlideTree"
[[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":130,"width":1204}],[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":-623,"width":1204}],[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":-1376,"width":1204}],[{"path":"/Users/strichpunkt/Desktop/test-1x.png","x":350,"y":-1752.5,"width":1204}]]
/Applications/Screeener.app/Contents/Resources/app/lib/keynoteRobot.js:1270:1299: execution error: Error on line 57: Error: Objekt kann nicht gefunden werden. (-1728)

    at Object.showErrorBox (/Applications/Screeener.app/Contents/Resources/electron.asar/browser/api/dialog.js:247:36)
    at /Applications/Screeener.app/Contents/Resources/app/lib/jxaBridge.js:14:16
    at ChildProcess.exithandler (child_process.js:230:5)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:885:16)
    at Socket.<anonymous> (internal/child_process.js:334:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:501:12)

Hi @richardbruskowski
I found the bug. It's because I hard code a template name "White" in the English language https://github.com/zehfernandes/screeener/blob/master/lib/keynoteRobot.js#L50
I will fix in next version. Thanks for reporting.
But if you want to use the app right now, you need to change the keynote language to English in File > Advanced > Language & Region and everything would work fine :)

Works like a charm now, without the workaround. Thanks!