Disable Notifications for Timelapse Improved but still isn't fully working

Building on #73 and #81. As @Johnnytk36 had noted in #81, the notifications are now less when pausing and restarting to take a timelapse photo (not every layer), but are still happening, just intermittently. Often print will go 25-50% without any erroneous pause/start alerts then it will start showing these sometimes every few layers, sometimes for every layer until it completes.
If there's some type of logging you'd like to see or something to test, please let me know.

Hey,
I have ran the current version of the companion + timelapse on two of my machines without any problem.
However, I am not using the parking mode.
Can you confirm to me that you are using the parking mode?
Feel free to upload the logs. They are either located in /tmp/mobileraker.log or in the same location as all other logs.

I am using the parking mode.

I am using the parking mode.

I will enable it on one of my printers to debug it!

Same here. The parking between layers before taking the timelapse is what is triggering those notices.

Logfile of recent print is attached. Timelapse with parking between layers is on. There were only 34 layers and it sent me Pause/Start alerts for 2 layers sometime between 25-50% complete (between layers 8-18).
mobileraker_with_timelapse.log

Any updates on getting this fixed?

Any updates on getting this fixed?

I lost track of this issue while working on 2.7.0.
I will take a look in the next days to see if I am able to reproduce this issue and hopefully fix it.
In the meantime, can you provide me the version of the companion you are using @Snuffy2 ?

No worries, totally understand and thank you very much for a great tool. I'm running:
Mobileraker app: 2.7.0-501
Mobileraker Companion: v0.4.0-58-g828e9a8c

No worries, totally understand and thank you very much for a great tool. I'm running: Mobileraker app: 2.7.0-501 Mobileraker Companion: v0.4.0-58-g828e9a8c

Thanks. The companion is a bit outdated but nothing major that would affect this issue.
Also, just was able to reproduce that behavior locally. Just need to identify the root cause for this issue!

Working great so far after printing a couple of things. Thanks!!!


Create LoadBalancerEditor component

Please describe the feature that you want to propose
Yet another dynamic form rendering next to languages and dataformats. The loadBalance eip has several choices for the load balancing strategy and each of them has a different set of parameters.
https://github.com/apache/camel/blob/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json#L2361-L2367
The catalogs for them are in model category.
https://github.com/apache/camel/blob/main/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customLoadBalancer.json

Let's check first what we had in the past, support-wise.

Found that there's load-balance step extension, so it was somehow supported already. Moving to the 2.0 TP milestone.
https://github.com/KaotoIO/step-extension-repository/tree/main/load-balance


Add motion controller with speed ramps and distance/angle PIDs

looks fine..
https://twitter.com/iamdevloper/status/397664295875805184?lang=en


Fix counting maxRunsPerJob

JobExt.create() used to return maxRunsPerJob + 1 runs instead of
maxRunsPerJob. Moving the check before the addition makes it work if "0"
is set as well.

This PR would enable to decrease the maxRunsPerJob to zero, thus disabling the stage view completely.
It is a use case, required by some people, see: https://stackoverflow.com/questions/52438258/how-to-disable-jenkins-pipeline-stage-view-plugin
Related ticket: https://issues.jenkins-ci.org/browse/JENKINS-63614

sounds good but having a test would be even better to avoid future regressions

I'll try to add some tests, but need some advice.
I think the best place for these tests would be in JobAndRunAPITest.java, please tell me if I'm wrong.
The problem is that this parameter is not easily changable from tests as it is a static integer:
public static final int MAX_RUNS_PER_JOB = Integer.getInteger(JobExt.class.getName()+".maxRunsPerJob", 10);

I couldn't find any tests which sets any of the system properties, so I cannot just use the same solution.
Some ideas how to solve this:

Move the Integer.getInteger() call into JobExt.create() where it is used, so tests can use System.setProperty to override the value before calling the API.
Add a new parameter to JobExt.create() and possibly a new @QueryParameter to JobAPI.doRuns() which can override the default value
Create separate test classes for these tests and use some kind of @BeforeClass/@AfterClass magic to set and restore the property before evaluating the static field. (I'm not sure if this would actually work)

@olamy What do you think which would be the proper way to test it? Or do you have some other idea?

@ngg good question mate!
I guess the logic with a separate test class and @BeforeClass/@AfterClass should work

@olamy @BeforeClass  unfortunately does not work, because the static MAX_RUNS_PER_JOB is only evaluated once. So whichever test runs first that uses the JobExt class sets it to some value (which really can be overriden with @BeforeClass, but later tests use that same value because the property is only queried once.
I'll update my PR and go with my first idea: moving the getInteger() call where it is used, because that does not cause an unnecessary API change and also has the nice side-effect that this property can be changed without Jenkins restarts.


Added getCustomer and getProducts to VendSale object

Example use:
echo "This sale was made to ".$sale->getCustomer()->email." and contained the following products:\n";
foreach($sale->getProducts() as $product) {
    echo "{$product->sku}: {$product->name}\n";
}

looks good to me.
I don't have the class setup at the moment so unable to test, but will trust you :smile:


OAuth 2.0 Authentication

I am trying to pass my OAuth 2.0 Token to my web service and it does not appear that Alamofire is even appending the Authentication header to my request.
let header = ["Authentication", "some-oauth-token"]
Alamofire.request(.GET, url, headers: header, encoding .JSON).responseJSON
{
response in (code)
}
This always results in a response from my server that the Authentication Header is missing. Should I not be doing it this way? I see there is Authentication methods on the request but I do not see one specifically for passing a token over just other auth methods. Is this frowned upon and I should change the way I am doing my REST Auth stuff?

Hi @buzzllc,
I can't be certain with the info you provided, but most likely you need to do the following instead:
let headers = ["Authorization": "Bearer \(someAuthToken)"]

If that doesn't fix your issue, then I'd encourage you to ask a question on Stack Overflow since that's a better place for this type of question. We use our GitHub project primarily for bug reports and feature requests.
Cheers. 🍻

From our Contribution Guidelines
Asking Questions
We don't use GitHub as a support forum. For any usage questions that are not specific to the project itself, please ask on Stack Overflow instead. By doing so, you'll be more likely to quickly solve your problem, and you'll allow anyone else with the same question to find the answer. This also allows maintainers to focus on improving the project for others.


feat(CategoryTheory/Limits/KanExtension): generalize assumptions

I am obviously ok with these changes, but I think that a more significant refactor of Kan extensions should be done someday. In order to develop derived functors in the mathlib branch jriou_localization, I have sketched some API for left Kan extension in the files CategoryTheory.Functor.KanExtension and CategoryTheory.Functor.KanExtension.Pointwise in that branch https://github.com/leanprover-community/mathlib4/tree/jriou_localization . (Part of the basic definitions there are related to the definitions you introduced for bicategories; but because of universe heterogeneity, we cannot use these directly.)

@joelriou Thank you for sharing your project. I'm excited to see Kan extensions and dirived functors stuff in mathlib.
Should we expect the content in the current Kan extension file to be completely rewritten in some way?

Should we expect the content in the current Kan extension file to be completely rewritten in some way?

I would think so, but I would try to keep a certain API compatibility...

bors merge


[ONNX] fix onnx export

Thank you  @pfeatherstone for your PR. I merged the branch onnx-support with comprehensive tests and other patches in pr #14

Thank you  @pfeatherstone for your PR. I merged the branch onnx-support with comprehensive tests and other patches in pr #14


Perforce support

Is Perforce support planned?

I don't have any experiences on Perforce, so there is no plan to for it. If you have interest on it, you can implement by yourself.

Thanks, kaneg. I don't have experience with writing Idea plugins, but I may give it a try.


Monomer Editing Form issue

Try to open Peptide monomer 'Bal'  for editing, the form does not display R2 (should be O), and has a broken image for Element C in the toolbar.

Fixed in 2016-09-28 update

All fixed in 2016-10-03 update

still only shows R1 the first time. 'Status' is not saved either.

Status is removed since we don't use it.

In the monomer library, the R2 and R3 are set to O, not OH.  It it why it doesn't show up.  Should O be allowed.

We should be consistent in the name of leaving group between Monomer Library and Monomer UI. My preference is to use OH everywhere, instead of O. If we update monomer library from O to OH, we should be all set. New monomer can only be defined using OH, not O anyway.
Related to this, the symbol/name search is not working. My search criteria returned nothing, as shown below. It should return multiple monomers.

Hi Tianhong - agree with the leaving group comment.
Symbol/name search is working fine for me. Are you using the test version with the server side implemented? http://<IP_ADDRESS>/WebService/hwe/examples/MonomerLibApp.htm
I had to do a force refresh to get the latest version.

Hi Tianhong,
The symbol/name search looks OK to me - could you check? It returns 'contains' for symbol and 'begins with' for name.

Leaving groups are a feature of the monomer set. Monomer set information is being handled elsewhere, so I propose closing this issue and tracking via the monomer.org activities.


Added cryptocurrency price scraping support to finance module

Description
Added crypto currency scraping support to finance module and integrated CRYPTO class with StockPrice class.
Screenshots
StockPrice class

CRYPTO class

Known Issues:
BSE class is not working sometimes. If same happens to CRYPTO class try visiting the crypto.com once. Maybe it will fix the issue.

hey @nikhil25803  this fixes the issue #327 . Please do tell if the CRYPTO class is working propperly.


How to deal with token expiration?

I think token expiration is a key feature that this project is lack of, here are some good discussions on Hacker News, https://news.ycombinator.com/item?id=8283006

Thanks Frank,
I agree. I just haven't gotten around to implementing it yet.

First of all, please note that token expiration and revoking are two different things.

Expiration only happens for web apps, not for native mobile apps, because native apps never expire.
Revoking only happens when (1) uses click the logout button on the website or native Apps;(2) users reset their passwords; (3) users revoke their tokens explicitly in administration panel .

1. How to make a JWT  token expire ?
A JWT token that never expires is dangerous, if the token is stolen then someone can always access to the user's data.
Quoted from JWT RFC:

The "exp" (expiration time) claim identifies the expiration time on or
after which the JWT MUST NOT be accepted for processing.  The
processing of the "exp" claim requires that the current date/time MUST
be before the expiration date/time listed in the "exp" claim.

So the answer is obvious, set the expiration date in the exp claim and reject the token on the server side if the date in the exp claim is before the current date.
Quite easy, huh?
The hard problem is, mobile apps never expire, for example, people can reopen the APP after a month without the need to login again.

For Web Apps: If you set the expiration time to 1 week, do not use the token for 1 week. Use it less than a week and get a new token before the old token expires.
For example, on the server side, you can extract the expiration date from the token sent from every request, detect whether it's one day before the expiration date, if it is, generate a new token and put it into the  HTTP header so that the browser will get the new token. This is not different than the normal concept of sessions and cookies.
If the user does not use your application for a week, next time he go to your app, he will have to login again and this is fine and widely accepted.

For native mobile Apps: you can use the same explained above, but that's not how most of the mobile Apps work these days, I can open the Facebook App after a month without using it and I'm sure I will not need to login again.
One way is to add an  audience claim named aud to JWT tokens, for example, use the payload like {"sub": "username", "exp": "2015-11-18T18:25:43.511Z", "aud":"iPhone-App"}. On the server side if the token has an aud field that  has the value iPhone-App then ignore the exp claim, so that tokens with iPhone-App never expire. However, you can still revoke this kind of tokens by using the methods described in Section 2.
Another way is to use a refresh token that never expires to fetch a new JWT token that does expire. Since the refresh token never expires, what happens if your phone is stolen?  Again, refresh tokens are still valid JWT token, you can revoke refresh tokens using the methods described in Section 2.
Normally to distinguish with different refresh tokens of one user, a good practice is to put the specific device name into the refresh token, for example, {"sub": "username", "exp": "2015-11-18T18:25:43.511Z", "device":"Frank's iPhone"}, so that when a user wants to revoke refresh tokens, he can know this refresh token is being used on his iPhone.

2. How to revoke a JWT token ?
Sometimes users need to revoke a token, for example, clicking the logout button , and changing password.
Assume that each user has multiple devices, let's say, a browser, a native iPhone APP and a native Android APP.
There are three ways:

Changing the secret key.
This will revoke all tokens of all users, which is too wild.

Make each user has his own secret and just change the secret of a specified user.
Now the RESTful backend is not stateless anymore. Every time a request comes in the server needs to query the database to get the secret of a user.
To get better performance let's store the (user, secret) pairs in Redis instead of MySQL, use the username as the key and the secret as the value.
This way will revoke all tokens of one user, much better, but still not enough.

Store the revoked JWT tokens in Redis.
Use the token as the key and the value is always a boolean true.
The token will be stored only for a specific amount of time, which is the time in the exp claim, after the expiration time delete it from Redis.
This way only revokes just one token at a time, perfect !
For more  details please refer to this blog, Use Redis to revoke Tokens generated from jsonwebtoken

Reference

Use Redis to revoke Tokens generated from jsonwebtoken
I don’t see the point in Revoking or Blacklisting JWT
JSON Web Tokens | Hacker News
Blacklisting JSON Web Token API Keys

first of all thanks for brahalla for this git repository. very easily understandable code.
thanks to soulmachine for very informative inputs on expiration and revoking of tokens.
one question - how to store the tokens safely in a native app in ios/android? I know, you said, its beyond this article. can you throw some light or refer my other articles. appreciate it. thank you

I don't know a ton about native mobile app development. A quick google search lead me to this Stack Overflow question.
Seems like for iOS you would store it in the keychain, which seems reasonable to me. For Android, looks like the KeyStore. If you're doing a hybrid app your guess is as good as mine... for anything using Cordova I would probably just put it in localstorage.

@soulmachine  Your discussion helps  me a lot,thanks.

One way is to add an audience claim named aud to JWT tokens, for example, use the payload like {"sub": "username", "exp": "2015-11-18T18:25:43.511Z", "aud":"iPhone-App"}. On the server side if the token has an aud field that has the value iPhone-App then ignore the exp claim, so that tokens with iPhone-App never expire. However, you can still revoke this kind of tokens by using the methods described in Section 2.

Is it already impplemented? I set "aud":"iPhone-App" and still after 1 week my token is expired


ADD TO BENEFITS

https://github.com/UoA-eResearch/ResBaz24Python/blob/4e93f911141c86ffddffc913c8e8a701adebdfd5/ResBaz_Intro_to_Python.ipynb#L1

done


fix reposition of popover when window resize

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/31706
PROPOSAL: https://github.com/Expensify/App/issues/31706#issuecomment-1822923718
Tests

[x] Verify that no errors appear in the JS console
Same as QA steps

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

Preconditon - have atleast a bank account added.

Go to Wallet page,
Click "Add Bank Account"
Resize window , make sure the popover repositions with window size.
Click Bank account
Resize window , make sure the popover repositions with window size.

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
N/a window cant be resized

Android: mWeb Chrome
N/a window cant be resized

iOS: Native
N/a window cant be resized

iOS: mWeb Safari
N/a window cant be resized

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/104348397/6060fb6f-09d6-4c68-aee8-a2746d8719dd

MacOS: Desktop
https://github.com/Expensify/App/assets/104348397/6f9dd4a0-d192-4ecb-aca8-2bc9f7c7268d

gentle bump @akinwale for review

Apologies for the delay. I will review today.

Reviewing now. @ishpaul777 Please resolve merge conflicts.

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@ishpaul777 The repositioning doesn't seem to be working properly on web and desktop when I drag the window to resize. Please check this. See attached video.
https://github.com/Expensify/App/assets/4160319/9ca94e52-3780-4c3a-ab80-8d58159a6f7c

@ishpaul777 I'm still seeing the same issue when dragging the window. The issue is not solved until we can ensure that the popover is properly repositioned after the window resize is complete, since that is the main goal here.

@ishpaul777 I have tested again on a different machine with better performance and it looks like the issue is solved. Please fix merge conflicts so that I can approve. Thanks.

@ishpaul777 Looks like the PR author checklist was updated. You can update the first post with the updated checklist from https://raw.githubusercontent.com/Expensify/App/main/.github/PULL_REQUEST_TEMPLATE.md.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/francoisl in version: 1.4.21-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 1.4.21-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 1.4.21-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 1.4.21-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Revert "sam_e70: enable instruction and data caches on sam_e70"

Reverts zephyrproject-rtos/zephyr#9647
We need to revert this PR. seems to be breaking a few things inside sam e70.
We can recreate this PR once we understand how the cache is behaving when the MPU is turned on.
Currently all MPU regions always disable the cache. So when we enable the cache in soc init and disable them in the mpu regions init. We might be causing some issue.
Until root cause is found we should revert this.
This reverts commit c0907762f3f15116732f434937fc3a5737c3d40b.

Codecov Report

Merging #9688 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #9688   +/-   ##
=======================================
  Coverage   52.31%   52.31%
=======================================
  Files         212      212
  Lines       25937    25937
  Branches     5589     5589
=======================================
  Hits        13569    13569
  Misses      10122    10122
  Partials     2246     2246

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 3b80998...1b2b751. Read the comment docs.

If the recent MPU changes are causing the issue, I am not sure it is the best to revert this patch, at least before some more investigation is done. Some other platforms have cache + MPU enabled (e.g. I.MX RT) and thus might also be affected.
On the other hand if the SAM E70 platform is the only one affected, reverting this commit is probably the best to do.

Note that the issues are described in bug #9689.


Setup Vulkan SDK action not working as of today

Hello, I've been using this action in my repository and it seems to have started failing, making all builds and PRs fail.
I have tried deleting the Github Actions cache and rerunning the jobs but they're still failing.
All our workflows use the action like this:
    - name: Setup Vulkan SDK
      uses<EMAIL_ADDRESS>      with:
        vulkan-query-version: latest
        vulkan-use-cache: true
        vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang

Our relevant Github workflows can be found here: https://github.com/wheremyfoodat/Panda3DS/tree/master/.github/workflows
I've also attached the log generated by the vulkan setup action here:
setup_vulkan_log.txt
If you'd prefer to see the full CI log for this particular run then you can find it here: https://github.com/wheremyfoodat/Panda3DS/actions/runs/6631468473/job/18015376439?pr=328

Fixed, had to change the invocation to use vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang instead after a recent change to glslang


Problems with the Yamaha media_player UI

Home Assistant release (hass --version):
0.18.2
Python release (python3 --version):
python 3.4.2
Component/platform:
media_player/yamaha
Description of problem:
The media selection as well as the volume control seem extremely temperamental. Clicking back and forth on the volume slider (slowly) doesn't always change the volume. And sometimes clicking around on the slider selects a different input (V-AUX).
I am then unable to select any input from the drop down. I mean, I can select it, I do get the notification from HASS that a service is called, but the input does not change.
Expected:
I expect the volume slider to change the volume and not end up changing the receiver input.
I expect the input selection drop down to select the input selected.
Problem-relevant configuration.yaml entries and steps to reproduce:

click on the yamaha card face
click around on the slider. notice the input get changed
try to reset the input to what the input was previously. this does not change the input

Additional info:
None for now - please let me know if there's anything else

From the logs:
16-04-21 16:46:18 INFO (ThreadPool Worker 15) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=media_player.yamaha, new_state=<state media_player.yamaha=on; supported_media_commands=2444, is_volume_muted=False, volume_level=0.5700000000000001, source_list=['V-AUX', 'SERVER', 'AV5', 'AV3', 'USB', 'HDMI3', 'iPod (USB)', 'HDMI1', 'HDMI2', 'AV6', 'AUDIO', 'AirPlay', 'AV1', 'AV4', 'AV2', 'TUNER', 'HDMI4', 'NET RADIO'], source=V-AUX, friendly_name=Yamaha @ 2016-04-21T16:30:33.280858-07:00>, old_state=<state media_player.yamaha=on; supported_media_commands=2444, is_volume_muted=False, volume_level=0.5700000000000001, source_list=['V-AUX', 'SERVER', 'AV5', 'AV3', 'USB', 'HDMI3', 'iPod (USB)', 'HDMI1', 'HDMI2', 'AV6', 'AUDIO', 'AirPlay', 'AV1', 'AV4', 'AV2', 'TUNER', 'HDMI4', 'NET RADIO'], source=HDMI1, friendly_name=Yamaha @ 2016-04-21T16:30:33.280858-07:00>>
Note the old and new states as they differ based on source. I did not pick the new v-aux state, actually tried to pick HDMI 2

duplicate of https://github.com/home-assistant/home-assistant/issues/1874
fixes are already submitted

Excellent, thank you!


Implementing Fetch

Client side interaction (fetch)
Ideally it will be great if a user is able to action the fetch functionality from their web browser. For example, the user clicks "Display Data" button and then the app goes and fetches data which it displays to the user's browser.
The best way I can think of to achieve this is to have another listening port in the server/index.js file, as shown below.
async function fetch_start() {
  print('listen 8003...');
  try {
    let s = new net.WasiTcpServer(8003);
    for (var i = 0; ; i++) {
      let cs = await s.accept();
      handle_fetch();
    }
  } catch (e) {
    print(e);
  }
}
fetch_start()

This allows port 8003 to listen for URLs to fetch, when asked by the client's browser.
The handle_fetch code in the server/index.js file which processes these requests could look like the following.
// Implement Fetch
import { fetch } from 'http';

async function handle_fetch() {
  try {
    console.log("Testing 123");
    let resp = new http.WasiResponse();
    let r = await fetch("http://httpbin.org/get?id=1")
    console.log("Testing 456");
    print('test_fetch\n', await r.text())
    console.log("Testing 789");
  } catch (e) {
    print(e)
  }
}

I have tested the above and we are able to listen and respond on port 8003 (albeit only in the terminal's output for now). Below is the output for your convenience.
Testing 123
Testing 456
test_fetch
 {
  "args": {
    "id": "1"
  },
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "X-Amzn-Trace-Id": "Root=1-628878d7-0914ef354f63f7d655346fdc"
  },
  "origin": "<IP_ADDRESS>",
  "url": "http://httpbin.org/get?id=1"
}
Testing 789

Questions
This leads to the following 2 part question. What would be your preferred design choice to:

provide the URL from the browser's request to the listening server?
identify the HTML element which is going to be updated with the new data from the fetch?

Ideas

The URL could be passed from the browser's request to the server as a simple string.
The client side could fill a specific HTML element by making the request and then updating the element's contents.

Both of these are really leaning towards client-side rendering though.
Perhaps another way, which leans more towards SSR is for the browser to perform a HTTP POST request (as per this WasmEdge demo). Specifically, the request could use multi-part form data which could pass in both the URL endpoint to fetch as well as the HTML element which is to be updated/altered. This way the server-side will have the ability to fetch and render the new data (leaving as little as possible to the client-side). The server/index.js file would just need the required functionality to process the multi-part form request.
Just FYI, the recent issue regarding the hydrate error has been resolved. We can now hydrate in the src/index.js file using the following syntax without error.
import { hydrateRoot } from 'react-dom/client';
const container = document.getElementById('root');
const root = hydrateRoot(container, <App />);

I am not sure why the new React 8.x.x function is called hydrateRoot and not just hydrate. I am assuming that hydrateRoot can hydrate any element in the HTML (as long as the handle is fetched by document.getElementById and then passed to the hydrateRoot function call).
Hope this all makes sense. I would love to hear any thoughts and ideas on this.
Kind regards
Tim

I think we should support the model of:

Server fetches data from external services or databases.
Server renders the DOM with the fetched data.
Hydrate and display the rendered DOM in the browser.

This type of apps will be tailor/made for WasmEdge SSR. And that is fine.
For pure CSR apps, the browser will make fetch() calls once the UI is rendered. The dynamic content is fetched and rendered in the browser not on the server. It is a less interesting use case for us.

If fetch support existed. It would allow us to deploy it to cloudflare edge workers and circumvent all the imposed limits of their v8 instances


Cron questions/issues

A few notes about the cron:

When the plugin is installed but not active, does the cron still run? Should a check in the beginning of cron.php check whether the plugin is active, and otherwise directly quit?
When no certificates are renewed, should a message still be sent? Or perhaps with a different header? Or add the number of renewals in the subject header?
2 messages in my case 2 tickets were merged together; see image:

And when no certificates changed, no need to rewrite/reload the webservice.

True the rewrite/reload. Isn't there a way to say to DirectAdmin which HTTPD config he needs to rewrite? Currently we do always all configs at the end of the cron, which isn't ideal. Indeed.

As far as I know there is only a command to rewrite all HTTPD config files via DirectAdmin.
When no certificates are renewed we should sent a message with something like: "The reissue cron just ran but there are no certificates to renew."

Another cron issue; subdomains aren't processed I think?
 try {
            $challenges = new Challenges($domain);
            $challenges->solveChallenge();

            $log->log('Successfully completed challenge for ' . $domain->getDomain());
...

It seems like. I need to do a full rewrite of the subdomain and domain logic, I think. Currently the challenges are a bit nesty, if you ask me.

We will have to rewrite all configs because of the lack of function to rewrite the files of a single user in DirectAdmin.

Hmm, I'll send that as a request to John. Maybe he's able to implement that. But in the meanwhile, I don't think we need to rewrite every cron run, only when something did change.

In line 81 the subdomains are fetched from the config and included in the CSR. Seems correct. But, in line 90 subdomains in the config is set to all the subdomains for the domain (so not just the ones selected). So next time the cron will run, it'll try to include all the subdomains in the certificate.
You should also change $challenges = new Challenges($domain); to $challenges = new Challenges($domain, $domain->config('subdomains')); to fix the cron.

I implemented your fix to include the subdomains. I sugges to close this issue and open new issues because there are multiple discussions/problems in this issue.

I've mailed DirectAdmin support about this notification issue. I hope there is a script available (or, something..) to send a notification.

John did some great work here :-). He added a way of sending messages to the Message System.
https://www.directadmin.com/features.php?id=1829


we'd like to roll dart_style forward

See https://github.com/dart-lang/dart_style/issues/729 for context - the roll will unblock switching the analyzer to using the fasta parser, which itself will unblock Analyzer CFE integration and the new super mixins support.
A CL with the roll is here: https://dart-review.googlesource.com/c/sdk/+/70940. Thanks!
cc @athomas

Done.


Creation of a data source connection in Soda Cloud that can be used in different gcp datasets

[AGREEMENTS] [CONNECTION] [BIGQUERY]
It would be practical if when we're creating a connection in Soda Cloud we could use the same connection in different gcp datasets. The way it is right now we have to create a different connection for each gcp dataset since we have to fill the configuration.yml with the dataset name. That's confusing because we have different environments for testing and in each one of them we have n gcp datasets. It is hard to manage.

SODA-1433


Release 2.5.3

This release cuts the weight of the NPM package by removing unnecessary files, and updates the package.json metadata.

This PR doesn’t appear to add a files key to package.json. Did I miss something?


Remove esp32 specific code from network

These changes are made under both the "Apache 2.0" and the "GNU Lesser General
Public License 2.1 or later" license terms (dual license).
SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later

We need to purge this from the documentation, as well.
https://www.atomvm.net/doc/master/network-programming-guide.html#nvs-credentials
Also probably list in "Breaking Changes" in the change log (not that anyone is listening, but...)


[Python][Intereceptors] Allow single interceptor implementation to handle all RPC types

Addresses https://github.com/grpc/grpc/issues/34537

Hi, thanks for creating this! Can you also help add some tests? Most likely in files like this one.


feat(dao): admin can remove self from object owners

SUMMARY
Currently it is impossible for users to remove themselves from the list of users. This is to avoid the risk of a user mistakenly being "locked out" of a chart/dashboard/etc. This can be inconvenient if an admin edits an object, as they automatically become owners of the edited object.
This PR changes the logic as follows:

If an admin is editing an object, they can remove themselves from the list of owners. There is no risk of admins locking themselves out of an object, as they are able to edit all objects anyway.

The following is unchanged:

When a user (admins included) creates an object, they become the owner of the object.
When a non-admin edits an object and removes themselves from the list of owners, they are automatically re-added as owners. In other words, non-admin users have to be removed from the list of owners by another user (admin or regular).

BEFORE
Currently an admin is unable to remove themselves from the list of owners:
https://user-images.githubusercontent.com/33317356/121895878-5fd3c780-cd29-11eb-875b-273c323fc17e.mp4
AFTER
Now the admin can remove themselves from the owners:
https://user-images.githubusercontent.com/33317356/121895941-72e69780-cd29-11eb-988e-2ebea36a6c04.mp4
TESTING INSTRUCTIONS

Log in as admin
try to remove yourself from the list of owners
refresh the page, notice that "Admin" is again an owner

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up

/testenv up


[JOSS review] Installation from source requires pre-installed Django

Minor issue. The README currently lists the following steps to install EspressoDB from source for testing:

To run the tests, clone this repo, install the dependencies

pip install .
pip install -r requirements-dev.txt
pip install -r example/my_project/requirements.txt

The first step fails in a clean environment because espressodb/__init__.py imports Django. It may also be worth noting that installing the sdist from PyPI also fails for the same reason:
pip install --no-binary espressodb espressodb

I see the latter as pretty much a non-issue though since you're providing a universal wheel. I think the simplest solution would be to re-order the steps so the requirements are installed first. Perhaps there's a way to defer importing Django for settings -- I'm not sure.
https://github.com/openjournals/joss-reviews/issues/2007

The commit 9df504e should resolve this issue (no doc update needed). This should also allow the no-binary install which will be tested once the new version is ready for shipping.

The no binary install now works with v1.1.0.
Thank you for your feedback @ixjlyons.


@FeignClient configuration do not take effect

i use different load balance IRule but aways default RoundRobinRule
my code  https://github.com/xj198806/feign-test.git
Help me see what the problem thks

IRule is a Ribbon routing configuration for a Feign Client configuration.
http://cloud.spring.io/spring-cloud-static/Camden.SR6/#_customizing_the_ribbon_client
You can also customize the load balancer rule using properties.
http://cloud.spring.io/spring-cloud-static/Camden.SR6/#_customizing_the_ribbon_client_using_properties

actually i want to know why configuration do not take effect in the @FeignClient

i  put the configuration  in a separate, non-overlapping package, or specify the packages to scan explicitly in the @ComponentScan but it do not take effect.
https://github.com/xj198806/feign-test

the Contract  do not take effect. i am confused

Try adding @ComponentScan( basePackageClasses = {RemoteAddConfiguration.class}) to your application class.

you mean like this?
if i do so, It does not work. if i add @ComponentScan( basePackageClasses = {RemoteAddConfiguration.class}) ,i only get one component with type RemoteAddConfiguration. and my @RestController does not work too.

When I did this I at least saw RemoteAddConfiguration.feignContract being called.  What do you mean you only get one component with type RemoteAddConfiguration?  Can you perhaps simplify the sample application you provided so it does not require Consul etc?  That would make it much easier for me to run and investigate the problem.

i find it work if it does not require Consul etc, so i guess it is something wrong with consul.

You're using an old version of spring cloud, can you try with Dalston.RELEASE or Camden.SR6?

i tried this two version but seems like the same with Brixton.SR5.

I think I narrowed down the problem now.  It has to do that both RemoteMultiplyService and RemoteAddService are using the same value for name in their Feign Client annotations.  When we register the Feign Clients we register the bean definition with the same name for both clients.
https://github.com/spring-cloud/spring-cloud-netflix/blob/master/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignClientsRegistrar.java#L376
Combining the two clients can solve the problem.  If you need them to be separate you can try defining the clients manually.

ok i think i know. tks~ : )

I was with the same problem: configuration not taking effect. Thanks to @ryanjbaxter I figured out there was other clients using the same name. That was causing the problem.


Enable LTO on Unix

Checklist

[X] Used a personal fork of the feedstock to propose changes
[X] Bumped the build number (if the version is unchanged)
[X] Reset the build number to 0 (if the version changed)
[X] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[X] Ensured the license file is being packaged.

Closing #155 (for Unix, Windows is a bit more complicated since it's only supported when being linked with LLD).

Enable LTO when building for Unix Systems. Will result in significantly higher memory consumption and much longer link and build times, but should build better, faster, smaller binaries.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Error building base project

I followed the instructions at http://foundation.zurb.com/apps/docs/#!/installation to install a new project, but I keep getting an error.  I have installed this from instructions a week ago, and everything worked fine then.
... Uhoh. Got error listen EADDRINUSE ...
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Server._listen2 (net.js:1156:14)
at listen (net.js:1182:10)
at net.js:1280:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:81:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:99:10)
events.js:85
throw er; // Unhandled 'error' event

Mine is also dying on"git ls-remote --tags --heads git://github.com/zurb/foundation-apps.git"

The EADDRINUSE is an error telling you that something is sitting on your port 8080. It looks like you might be on OSX so I quickly looked up how to determine what's running on port 8080:
 sudo lsof -i :8080

If it says node, you can go into your activity manager and kill it and try again.

Thanks @AntJanus It could be anything... IIS, Apache, Google App Engine, etc.

@sjenkinsdc Check to see if you have anything else on the port that's running. You can also change the port number on line 148 of gulpfile.js:
gulp.task('server', ['build'], function() {
  gulp.src('./build')
    .pipe($.webserver({
      port: 8079, // Right here!
      host: 'localhost',
      fallback: 'index.html',
      livereload: true,
      open: true
    }))
  ;
});


[DPG] [Design Issue]: Determine how to handle global parameters in DPG Client constructors

Problem
We have a test case in autorest.csharp, where the client constructors are not generated following the .NET guidelines.  This has been described in this issue: https://github.com/azure/autorest.csharp/issues/2055
We need to determine how best to handle global parameters in generated client constructors.  Since there are no Data Plane Generated libraries that currently have this case in their OpenAPI specs, we will not block DPG GA on this.
Success Criteria
Redmond team provides a spec indicating how to handle global parameters in generated client constructors.
Once we have determined the design we want for the generated client constructors on clients that have global parameters, we will complete work on #2055.
Note: We have had a number of discussions about this offline, and as time allows, that information will be added to this issue so that it contains the full context.

For optional global parameter, we have decided https://github.com/Azure/autorest.csharp/issues/3706#issuecomment-1752374728


Updated Resize error message and added link

When a customer tries to resize their Linode to a smaller plan without first resizing their disks, they trigger an error message.
I updated the copy of this error message, and added a link to our "Resize a Linode" document for instructions on how to size down a plan.

I worked with Julianna on this, should have been a simple change but there's some TypeScript stuff that makes it weird. I'm not super confident about the approach we used, feedback welcome. Also I'm not sure that I like blue link text inside a red error message.


Feature request: Optimize Image Loading by Preloading or Integrating as Base64

Description:
Improve the application's performance by optimizing how images are loaded. This can be achieved by preloading critical images or embedding them directly into the code using Base64 encoding. These optimizations aim to reduce load times and enhance the user experience.
Acceptance Criteria:

Identify critical images that impact initial load times.
Implement preloading strategies for these images.
Alternatively, convert small images to Base64 and embed them directly within the codebase.
Ensure that these optimizations do not significantly increase the application's bundle size.
Test the impact on load times across different devices and network conditions.

BAsically i want to prevent layout shifts, so we could also add blanks to the amgeses and set their sizes in the config fiule


Don't return matplotlib module

I guess you want to end waterfall.py with "return fig". Now you are returning the matplotlib module rather than the figure.

Thanks for raising this issue jmoberreuter, you are absolutely correct. User noklam went ahead and made the appropriate edit and I've now merged this change into master. I will be updating the PyPI hosted version soon. Thanks!


OOR authentication after ECR authentication

Thank you to @HunnySajid for bringing this up. Should all logins replace previous logins? Perhaps we should have a test case where the user presents a valid ECR credential. But then later completes a login with an OOR credential. In that case the identifier is the same for both and right now the verification service will retain the valid ECR login and the user will be allowed to proceed through the UI flow (status/report-upload). But instead the API/verification service should probably reset the user authorization and then deny the status/report access.

This is a demo video:
1- ECR credential is selected
2- Status Pages visit is allowed
3- Clear Credential
4- Select OOR credential
5- Can not access status page
https://www.loom.com/share/f0cae83bb4d4418e9da16a75112f1aab?sid=3ebd7085-0ecb-4799-8eae-87ec0463c87b


Automatically publish release-1.28 branch

We have to merge https://github.com/cri-o/cri-o/pull/7312 before being able to auto-publish this branch.
Ref:
https://github.com/cri-o/packaging/blob/1a79f5bfb6f7f3b1c6235701988ade67efc3aa37/.github/workflows/schedule.yml#L13

Done with https://github.com/cri-o/packaging/actions/runs/6235414306 in https://build.opensuse.org/project/show/isv:kubernetes:addons:cri-o:prerelease:v1.28 and https://github.com/cri-o/packaging/blob/407f41fe866f5c026e9dd5dcee6b91eca4ecbdef/.github/workflows/schedule.yml#L13


Can't read selected property name in symbol view

The highlight showing which object is currently selected seems to be the exact same color as the text color, making it impossible to read the name of the selected object.
Screenshot was taken using atom material syntax theme and the default blue colour scheme of atom material UI.

And that overlay is provided by which package? Check the CONTRIBUTING file, it'll guide to submit a better bug report.

It's the built in atom symbols view
https://atom.io/packages/symbols-view

I'm not seeing this behavior. Please, check the CONTRIBUTING file.


onEnd with multiple signatures, only triggering the last signature?

Hello,
I've created a Vue component for a signature that looks a little something like this.
props: ['name', 'fill'],

data: function() {
    return {
        drawing: null, // SignaturePad
        canvas: null, // the actual element
        signature: null // the DataURL of the signature itself
    }
},

mounted: function() {
    this.canvas = document.getElementById(this.name);

    self = this;

    this.drawing = new SignaturePad(this.canvas, {
        onEnd: function() {
            console.log('ended drawing for ' + self.name);
            self.signature = self.drawing.toDataURL();
        }
    });
},

The template for my Vue component looks like this.
<canvas :id="name"></canvas>
<input type="hidden" :name="name" v-model="signature">

Each component is then setup like so:
<signature name="signatureOne" fill="data:image/png;base64,iVBORw0K..."></signature>
<signature name="signatureTwo" fill=""></signature>

My problem is that when I end drawing in signatureOne, I see in my console:

ended drawing for signatureTwo

Which is weird because I'm drawing in signatureOne of course. Even if I add multiple signatures:
<signature name="signatureOne" fill="data:image/png;base64,iVBORw0K..."></signature>
<signature name="signatureTwo" fill=""></signature>
<signature name="signatureThree" fill="data:image/png;base64,iVBORw0K..."></signature>
<signature name="signatureFour" fill="data:image/png;base64,iVBORw0K..."></signature>

No matter what happens, if I draw in signatureOne, signatureTwo or signatureThree - it actually says in the console.

ended drawing for signatureFour

Again, the last signature on the page. Is this behaviour intended?
I'd really appreciate the help.

I'll try my best to put together an example now for clarity.

Sorry, errands took priority.
Here's a JSFiddle of the the problem I'm seeing - you'll need to check your console to see the output of onEnd.
https://jsfiddle.net/joedawson/7yoqv24p/
I look forward to hearing from you.

Not an issue with Signature Pad - sorry! Solved here https://twitter.com/joedawsonnn/status/880514471671853056


ssh: connect to host localhost port 4455: Connection refused

$ t2-compiler populate --target=vm
target=vm
Waiting for VM "T2" to power on...
VM "T2" has been successfully started.
Waiting to connect over SSH...
ssh: connect to host localhost port 4455: Connection refused
ssh: connect to host localhost port 4455: Connection refused
ssh: connect to host localhost port 4455: Connection refused
ssh: connect to host localhost port 4455: Connection refused

Edit: removed additional logging

This was for an old version, so it's irrelevant now


Find alternatives to Mozilla cert list on Linux

I think this should probably be reverted once the pemfile dependency is upgraded to include https://github.com/rustls/pemfile/pull/7. Yes, the Mozilla certs a known good, so why not use them? Because many users are behind MITM proxying firewalls and the connection will fail using only public certs. On such systems, a sysadmin will typically have added the CA root cert for the firewall to the system so that secure connections can be made. By using Mozilla certs, that will stop working.
Originally posted by @StefanKarpinski in https://github.com/JuliaLang/juliaup/issues/335#issuecomment-1206779507

@StefanKarpinski and I just had another chat, and for now the strategy would be to a) use system certs, but b) detect Debian and on Debian don't use them by default, but have users opt-in to using system certs via some env var.

https://crates.io/crates/os_info might be useful (thanks to @wolthom for finding it!).

Here's the logic we use in NetworkOptions:
https://github.com/JuliaLang/NetworkOptions.jl/blob/791fa05928f03b7f18ff5/src/ca_roots.jl#L85-L110
I'm not sure if juliaup uses OpenSSL on Linux; if it does, it can probably skip the logic in there that skips over pem files that only contain OpenSSL-specific BEGIN TRUSTED CERTIFICATE blocks. The list of places where we look is here:
https://github.com/JuliaLang/NetworkOptions.jl/blob/791fa05928f03b7f18ff5/src/ca_roots.jl#L58-L68
I based this off of a combination of what Rust and Go do when looking at these files and it seems to work pretty well (we needed to do some reordering at some point). If you wanted, we could put this list somewhere common that you could download it during the rustup build process and likewise NetworkOptions could grab it from there. Otherwise we could just try to keep the lists in sync—they shouldn't have to change often. A comment saying to change the other if one of theses changes might suffice.

Looking at this issue in an attempt to close out the public release for Linux & MacOS milestone.

@StefanKarpinski @davidanthoff
I'm a bit out of depth regarding the certificate roots / native certificate stores vs bundled ones. If the points below do not actually address this issue, feel free to skip over this comment.
After searching around in the ureq and rustls docs for a bit, I wonder if this could be an option:
https://docs.rs/ureq/2.5.0/ureq/#trusted-roots
This section references:
https://docs.rs/rustls-native-certs/latest/rustls_native_certs/
Here is an explanation of how to use rustls_native_certs with ureq:
https://github.com/algesten/ureq/issues/386#issuecomment-838851259
If I read the rustls_native_certs landing page correctly, this crate is designed to take care of the platform-specific certificate handling. It does seem to be quite widely used in the Rust ecosystem: https://crates.io/crates/rustls-native-certs

@wolthom Indeed, we should be able to just use the native-certs option in ureq to fix this issue. This is equivalent to reverting https://github.com/JuliaLang/juliaup/pull/337.
As long as pemfile is used in version >=1.0.1, https://github.com/JuliaLang/juliaup/issues/335 will not appear again (we should check that we use that new version).

There's the remaining issue of whether one would want to rely on the ca-certificates package in Debian. The author of rustls-native-certs thinks it's poorly maintained (source):

The quality of the ca-certificates package on debian-based Linux distributions is poor. At the time of writing, this ships many certificates not included in the Mozilla set, either because they failed an audit and were withdrawn or were removed for mississuance.

The mentioned problematic root certs were removed in versions 20190110 and 20200601 of ca-certificates (https://salsa.debian.org/debian/ca-certificates/-/blob/master/debian/changelog), roughly 7 and 12 months after the issues were resolved on BugZilla. Sounds a bit long, but I'm not sure juliaup could beat that with its release cycle, especially once it becomes a bit more stable.
Also, I only see two open certificate bugs in the ca-certificates bug tracker: One recently about two expired certificates, one very recent where the situation is still developing.  Doesn't look too bad to me, but I don't know anything about security.
It seems to me the only problems with system root certs on Debian that could arise for juliaup are:

ca-certificates ships a compromised certificate. If the download location were to be signed with a certificate chain leading to that root CA, MITM attackers could inspect and change the Julia download of juliaup users.
With the standard download location https://julialang-s3.julialang.org, this means the certificate chain of GlobalSign or Julia would be compromised, in which case Julia ought to quickly change their certificates anyway.
If a non-default download location is specified via JULIAUP_SERVER, the user has to trust that server in the same sense they would trust Julia to keep their certificates secure. Since the user installs executables from that source, they have to trust it in a much stronger sense already.
Overall, I don't see how this scenario would be a problem for us.
ca-certificates does not ship the root certificate with which the Julia download is signed, so people cannot download Julia. Currently the root CA for the default location seems to be GlobalSign - if you're missing that root certificate, something is seriously wrong with your system certificates.
The main problem then is in support: If we rely on system certificates more strongly, people with broken system certificates might open issues against juliaup, needing help with their system certificates. Or worse, they could stop using Julia since the installer doesn't work for them.

We could attempt to get the best of both worlds by merging system certificates (allowing the use case behind MITM firewalls) with builtin certificates (as fallback for bad system certificates), but I'm not sure that's worth the effort.
TL;DR
From my view, I think changing to system certificates is the way to go. I don't see why Debian's ca-certificates is significantly worse than other system certificate stores. However I'd expect some people to have problems with their system certificates, which is the price to pay for more flexibility.

So, this is simply a policy decision. Right now, it is using the Mozilla list on Linux. https://github.com/JuliaLang/juliaup/pull/368 would change it to use system certificate list on Linux, i.e. align things with the state on Windows and Mac. If there is a consensus that that is OK from a security point of view, we can just merge #368 and that should be all that is needed, AFAIK.

I agree with @Firionus: it may be the case that Debian system certs are not good, but that's frankly not our problem.  In all cases, not Julia's responsibility.


setting returnURL

Just trying to get my head around things a little after trying Auth0's ember plugin and finding it a mess (and using v7 of course).
I have things configured so the login is defined as an action (same as the example) and thus can be called from any route. Lock pops up as a nice overlay so that's all fine. Then in environment.js have the ember-simple-auth env property routeAfterAuthentication set to my account route (e.g. 'protected').
So long as the user logs in from a route that is explicitly defined as a permitted return URL in the Auth0 client config it works, and then redirects to the protected route as expected. The issue is, running the login action from any other route results in an Auth0 error because the returnURL is being set to match the route from which the user is logging in from, not the route that they will be sent back to.
Don't really want to have to manually add every route on the site to the Auth0 config so is there a way to avoid this? Haven't quite got my head around what is actually happening but am naively wondering if the returnURL can be set to match routeAfterAuthentication. How is it handled for the logout URL?

Can confirm, more or less. I'm currently switching to this "fork" from the old auth0-ember-simple-auth, and I got a disallowed callback error after setting it up. Fortunately, in my case, authentication is done from a central login route so I only had to add http://[domain]/login, but on the old addon, just adding http://[domain] would suffice.

You don't need routeAfterAuthentication as you can set the redirectUrl (or "callbackURL" for Auth0-Passwordless) in the lock options:
In app/routes/application.js
      const lockOptions = {
        auth: {
          params: {
            state: this.get('router.url'), // where am I?
          },
          redirectUrl: window.location.origin + '/authenticationCallback'
        }
      };

If you want, you can send the user back from where they came from:
In app/routes/authenticationCallback.js
session: Ember.inject.service('session'),
model() {
  const state = this.get('session').get('data.authenticated.state');

    // do whatever you want to do after authentication
    // e.g. I persist some temporary state here...

  return this.transitionTo(state); // get back to where you came from
}

I hit state does not match error today, similar here. Apparently, in the above example I rather misuse state to encode a redirect url. The state param is intended to be used as a security measure against CSRF attacks.
Oddly enough, the error went away in my application after removing bower dependencies and removing the state param. So I cannot pin down what exactly led to the error.
Nevertheless, redirecting users is much simpler than misusing a dedicated Auth0 param. As their docs suggest we can simply use web storage to encode the redirect url.
When calling the login action:
this.get('session').set('data.afterLoginRoute', this.get('router.url'));

In your authentication callback route, after a successful login:
const state = this.get('session').get('data.afterLoginRoute') || '/';
return this.transitionTo(state);


Add Support for custom span className

Add support for passing in a custom className as prop to the wrapping span. Default the prop to Linkify to avoid breaking anyone that is depending on the Linkify class that is currently hard-coded.
I had to also update jest, babel-jest, and jest-cli to get the tests to run. Left as a separate commit in case it is a problem.

Looks good, thanks for that!


Improve readme

Improved formatting and added template-literals. There are a lot more transforms that should be added, but this is all I had time for right now.

Nice. This repo is starting to look soo good :)


[v6] Skip nonzero test for 0d arrays in NumPy 1.17

Fixes a part of #2370
The corresponding v7 fix is: #2394

pfnCI, test this please.

Jenkins CI test (for commit 2f4d36375b124a649fd034e347e7046f1e4973a2, target branch v6) failed with status FAILURE.

pfnCI, test this please.

Jenkins CI test (for commit 2f4d36375b124a649fd034e347e7046f1e4973a2, target branch v6) succeeded!

LGTM.


Add test data for no-UMI option

Based on a 2k read subset of the Greiff 2014 250x2 MiSeq presto workflow example
Tests associated with features added in bcellmagic pull req 128

Thanks @ggabernet ! Incorporated now- I didn't realise the SAMPLESHEET_CHECK logic was clever enough to allow for the dropped UMI file field

Perfect, looks good to me now!


Batching requests (send them concurrently)

GuzzlePHP allows to send requests concurrently (using curl_multi_exec). How can it be implemented in riak-client? I am willing to work on that.
http://docs.guzzlephp.org/en/latest/clients.html#batching-requests
Can it be implemented by adding metod batch(array $riakCommands) to Riak\Client\RiakClient (and to all internally called interfaces) ?

Hi @mamciek
Not all Riak commands make sense to be done concurrently,
It  would have to be implemented specific of each command.
Fetch value is probably the one that makes more sense to start with, see [java implementation] (http://basho.github.io/riak-java-client/2.0.0/com/basho/riak/client/api/commands/kv/MultiFetch.html)
You would have to implement :

[MultiFetch Command] (https://github.com/php-riak/riak-client/tree/master/src/Riak/Client/Command/Kv)
[MultiFetch Operation] (https://github.com/php-riak/riak-client/tree/master/src/Riak/Client/Core/Operation/Kv)
[MultiFetch{Request,Response} Message] (https://github.com/php-riak/riak-client/tree/master/src/Riak/Client/Core/Message/Kv)
[MultiFetch Http Transport] (https://github.com/php-riak/riak-client/tree/master/src/Riak/Client/Core/Transport/Http/Kv)

Let me know you need help.

Thanks.
Fetching KV and Datatypes certainly makes sense to be done concurrently. What about updating/storing values in Riak? It does make sense in my opinion. I think it even makes sense to batch together request of different type, for example fetchKV, fetchDataType, UpdateMap and so on.

Indeed the most common use would be fetching,
I'd like to keep the batch command base,
dealing with different response types might be complicated.
We might have something like :
/** @var $multiFetch Kv\MultiFetchCommand*/
/** @var $response FetchValueResponse[] */
$result = $client->execute($multiFetch);

/** @var $multiFetchCounter DataTyoe\MultiFetchCounterCommand*/
/** @var $counterResult FetchCounterResponse[] */
$counterResult = $client->execute($multiFetchCounter);

In this case all the response objects share the same response type,
$response can either be a FetchValueResponse array or a collection/iterator

In the meantime I created simple prototype: https://github.com/php-riak/riak-client/pull/7
It deals only with FetchMap, but you can get the vision. With this approach I would be able to batch multiple type of commands. What do you think ?

Cool,
We can discuss more on https://github.com/php-riak/riak-client/pull/7 now..


Convert branch to a required param on [bitbucketpipelines gitlab travisphpversion]

refs #5241
refs #5215
Following up on https://github.com/badges/shields/pull/5241#issuecomment-655746204 This PR converts :branch to a required param with a legacy redirect for the "branchless" route to .../master for BC. This shows :branch as a required param in the front-end while maintaining backwards-compatibility for existing users.
Note one of the the GitLab tests will be failing due to #5282 which is a a different problem - not new in this PR.
Once we are happy with this, I think we should just edit the title so we don't run the gitlab tests, merge this and treat #5282 as a separate unrelated issue.

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against af120bd27bc6ed8fca5e2c0c65ff9f5135a67ef1

Thanks for this and all the other work to incorporate the branch change stuff :+1: I'll take a look at this one later today if no one beats me to it


Can't find documentation on how to use ERC721AQueryable

I'm trying to implement a smart contract using ERC721A.  I ran into an error when I tried to implement a walletOf function that used the tokenOfOwnerByIndex(owner, number) method from ERC721Enumerable.  From a previous issue, I was directed to use ERC721AQueryable's tokensOfOwner instead. However, I'm still getting errors:
:
DeclarationError: Identifier already declared. --> erc721a/contracts/IERC721A.sol:86:5:
|
86 | struct TokenOwnership {
| ^ (Relevant source part starts here and spans across multiple lines).
Note: The previous declaration is here: --> erc721a/contracts/ERC721A.sol:43:5:
|
43 | struct TokenOwnership {
| ^ (Relevant source part starts here and spans across multiple lines).
DeclarationError: Undeclared identifier. --> erc721a/contracts/extensions/ERC721AQueryable.sol:42:53:
|
42 | if (tokenId < _startTokenId() || tokenId >= _nextTokenId()) {
| ^^^^^^^^^
DeclarationError: Undeclared identifier. Did you mean "_ownershipOf" or "_ownerships"?
--> .deps/npm/erc721a/contracts/extensions/ERC721AQueryable.sol:45:21:
|
45 | ownership = _ownershipAt(tokenId);
| ^^^^^^^^^^^^
DeclarationError: Undeclared identifier. --> .deps/npm/erc721a/contracts/extensions/ERC721AQueryable.sol:93:33:
|
93 | uint256 stopLimit = _nextTokenId();
| ^^^^^^
DeclarationError: Undeclared identifier. Did you mean "_ownershipOf" or "_ownerships"?
--> .deps/npm/erc721a/contracts/extensions/ERC721AQueryable.sol:127:29:
|
127 | ownership = _ownershipAt(i);
| ^^^^^^^^^^^^
DeclarationError: Undeclared identifier. Did you mean "_ownershipOf" or "_ownerships"?
--> .deps/npm/erc721a/contracts/extensions/ERC721AQueryable.sol:164:29:
|
164 | ownership = _ownershipAt(i);
| ^^^^^^^^^^^
THIS IS MY SMART CONTRACT CODE
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "erc721a/contracts/ERC721A.sol"; -- I have tried commenting this out
import "erc721a/contracts/extensions/ERC721AQueryable.sol";
contract MyContract is ERC721A{
constructor() ERC721A("My Contract", "MC"){}

function walletOf() external pure returns(uint256[] memory){
    return tokensOfOwner(msg.sender);
}

}
How do I resolve this? What I'm I doing wrong?

Delete the erc721a from your Remix's .dep, and let it auto re-download the latest version.

I deleted the erc721a directory  in the .dep/npm dir and still got an error.
DeclarationError: Undeclared identifier. --> contract-99c206fea4.sol:11:16:
|
11 | return tokensOfOwner(msg.sender);
|
THIS IS THE FULL SMART CONTRACT THAT I'M TESTING WITH
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "erc721a/contracts/ERC721A.sol";
import "erc721a/contracts/extensions/ERC721AQueryable.sol";
contract MyToken is ERC721A {
constructor() ERC721A("MyToken", "MTK") {}
function walletOf() external view returns(uint256[] memory){
    return tokensOfOwner(msg.sender);
}

}
Can you point me to an example?
On Wed, Aug 24, 2022, 1:56 PM Vectorized @.***> wrote:

[image: Screen Shot 2022-08-25 at 1 55 07 AM]
https://user-images.githubusercontent.com/5889274/186489456-801fac3b-42bb-447c-8727-725464ec6b54.png
Delete the erc721a from your Remix's .dep, and let it auto re-download
the latest version.
—
Reply to this email directly, view it on GitHub
https://github.com/chiru-labs/ERC721A/issues/414#issuecomment-1226053933,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATM7B5YVQMZ6WJVXM6PQUCDV2ZO53ANCNFSM57QG763A
.
You are receiving this because you authored the thread.Message ID:
@.***>

I deleted the erc721a directory  in the .dep/npm dir and still got an error.
DeclarationError: Undeclared identifier. --> contract-99c206fea4.sol:11:16:
|
11 | return tokensOfOwner(msg.sender);
|
THIS IS THE CODE SMART CONTRACT THAT I'M TESTING WITH
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "erc721a/contracts/ERC721A.sol";
import "erc721a/contracts/extensions/ERC721AQueryable.sol";
contract MyToken is ERC721A {
constructor() ERC721A("MyToken", "MTK") {}
function walletOf() external view returns(uint256[] memory){
    return tokensOfOwner(msg.sender);
}

}
Can you point me to an example?

contract MyToken is ERC721A {

should be
contract MyToken is ERC721A, ERC721AQueryable {

Hi. That didn't work either. I keep getting this error message:
DeclarationError: Undeclared identifier. --> contract-99c206fea4.sol:25:16:
|
25 | return tokensOfOwner(msg.sender);
|
I'm not able to call any methods from ERC721AQuaryable.  I just need to
show how many nfts are owned by a particular address.  If there's an
example project that accomplishes this use erc721a, please let me know.
On Wed, Aug 24, 2022 at 11:09 PM Vectorized @.***>
wrote:

contract MyToken is ERC721A {
should be
contract MyToken is ERC721A, ERC721AQueryable {
—
Reply to this email directly, view it on GitHub
https://github.com/chiru-labs/ERC721A/issues/414#issuecomment-1226717583,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATM7B5ZTQEPRF55QS4EHVJ3V23PVHANCNFSM57QG763A
.
You are receiving this because you authored the thread.Message ID:
@.***>

Use this.tokensOfOwner.

Thanks! It worked. I feel so silly.  I really appreciate your time in
helping me with this.
On Thu, Aug 25, 2022 at 9:21 AM Vectorized @.***> wrote:

Use this.tokensOfOwner.
—
Reply to this email directly, view it on GitHub
https://github.com/chiru-labs/ERC721A/issues/414#issuecomment-1227252056,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATM7B57H6L4PA3VITD3VYG3V25XPDANCNFSM57QG763A
.
You are receiving this because you authored the thread.Message ID:
@.***>

Closing now as this seems resolved


Release 0.16.0-m0

This is a tracker issue to synchronise issues blocking 0.16.0-m0 and PRs which shouldn’t be merged before 0.16.0-m0 is released.

https://github.com/submariner-io/releases/releases/tag/v0.16.0-m0


EKA2L1(Symbian/Ngage emulator)

Project description
Just a symbian emu for old symbian smartphone games
Metadata

homepage URL: https://github.com/EKA2L1/EKA2L1
source URL: https://github.com/EKA2L1/EKA2L1
license: mit, gpl3
platforms: linux, windows, macos, android

Kinda tricky, this one. I've patched a few build errors so far, which I will send to upstream. I also had to use a custom installPhase, as the cmake files want to build the dependencies themselves, but fail to install them. The current problem is that when running the executable, it tries to write a log file into the same directory where the binary sits. As the binary sits in the nix store this just fails. I'm not sure what's the best solution here, whether to put the log into home directory or the cwd, the latter involves more patching as eka2l1 changes its cwd to where the binary sits.

Kinda tricky, this one. I've patched a few build errors so far, which I will send to upstream. I also had to use a custom installPhase, as the cmake files want to build the dependencies themselves, but fail to install them. The current problem is that when running the executable, it tries to write a log file into the same directory where the binary sits. As the binary sits in the nix store this just fails. I'm not sure what's the best solution here, whether to put the log into home directory or the cwd, the latter involves more patching as eka2l1 changes its cwd to where the binary sits.

Okay I got it to build and start. However I'm lacking the necessary files to run something in this.
@schvabodka-man Could you test if this working for you:
https://github.com/tu-maurice/nixpkgs/commit/8b50a950b2b3538ccbe93732e7dab03bbd16ec47

Okay I got it to build and start. However I'm lacking the necessary files to run something in this.
@schvabodka-man Could you test if this working for you:
https://github.com/tu-maurice/nixpkgs/commit/8b50a950b2b3538ccbe93732e7dab03bbd16ec47


another way to compute accuray on 402_RNN_classification.py

I get high accuracy score on this way :
isCorrect = tf.equal(tf.argmax(predict_Y, 1), tf.argmax(Y_holder, 1))
accuracy = tf.reduce_mean(tf.cast(isCorrect, tf.float32))
your code:
accuracy = tf.metrics.accuracy(          # return (acc, update_op), and create 2 local variables
labels=tf.argmax(tf_y, axis=1), predictions=tf.argmax(output, axis=1),)[1]
I think 2 way is same, but get different result, can you tell me the reason?

Can you fix the random seed and test the result again?


Adding IAM techniques to Hardening

This is too broad and will be OBE with @hack-sentinel 's upcoming work


fix the zookeeper ip in user data

_get_hostclass_ip_address takes 2 arguments but we are passing a tuple containing 2 fields by accident. This causes the zookeeper IP in user data to be set to None

👍

Please add a regression test so that we wont have this bug again by catching it early.

Here is the unit test https://github.com/amplifylitco/asiaq/pull/50


Update

adjust Version Number to prevent confusion ...

Should have same Version Number as Main File - as it will bring confustion if they differ ... (Just "updated" all Files because I thought I had old Version ... until I realized that it's only an outdated Version Number in this File ...)

Fixed in latest version - thanks!