[help wanted] Remove useless things. Make this package intuitive.

I like the aim I had a few years ago: everything should be fast, and as small as possible (compare FileManager's context menu to SideBarEnhancements). But I now think (realize?) I was wrong about one thing: settings. I just put way too many possible settings that no one uses, and it hides the options that are actually useful (which leads me to doing things like #52).
A good plugin isn't configurable: it takes the decision for you, because the author thought about it a lot, and found the perfect solution, so the user doesn't have to. If there is no perfect solution, only then should the author be allowed to add a setting/option to his plugin. Adding a configuration option should feel like a failure.
I really like andreas kling's opinion about software being discoverable. Having a lot of "useless" options just limits users from enjoying spending time looking around in the settings.
The discoverability of an option should be proportional to the distance between the perfect solution and the current solution. (horrible wording here, it's late ok)
For example, the setting index_folder_separator is technically required in case someone has the good idea of putting > in the root folder name. Come on. Who does that? If you do that, you are pretty much asking for trouble. So, the current solution is nearly perfect, because it works for 99.9999% of the cases. Hence, index_folder_separator shouldn't be "advertised" too hard, because it's not going to serve many people.
But making this package "fun" to explore is also something I do NOT want to do. After spending a few years learning and using vim, I realize that using fancy tools can be a bottle neck too. It takes a lot of time to learn and it clusters your finite brain with more information which might not be that useful. In fact, this is why I'm trying to switch back from vim to sublime text. I feel slower coding like a wizard, because I have to think about how to use my wizard skills rather than thinking about the code.
For example: if someone reads the entire FileManager documentation, then they will have wasted several hours, and clustered their brain with a lot knowledge that will probably never be useful to them.
So, I don't want users to spent any time learning how to use this package. That's a bit extreme, but that's what I'm aiming for. A more realistic version: users should "feel" how to use the plugin straight away. The little that will not be intuitive should be discoverable and succinctly documented. If just an example of code block to copy/paste will do, then just use that. Think of code blocks as pictures. They convey so much more information at once, it's crazy. Words are slow. Use as little of them as possible.
An example where this is done well: when a user right clicks a folder/file. You look at every options, and provided you've used a computer before, you know exactly what each option will do. No need for documentation.
An example where this is not done well: more than one user has thought "How can I disable the default keybinding" alt+n. Why would they think that? Because it overrides their AZERTY default key binding (ref #32).
Where would I look? Probably google first, something like sublime text disable plugin keybinding which gives a few useless links, with the interesting one here.
But that's kind of a pain, and hopefully the user would realize that. Instead, and it's not the most obvious thing in the world, the user could look in FileManager's settings. This should be everyone's default behavior. A plugin doesn't do what I want it to do? Look at it's setting, someone's probably already thought of that. (TODO: quote this in the README).
Right now, the poor user would have to scroll pass useless options to the bottom of the file to find the unclear "create_keybinding_enabled" and set that to false. So, it's not discoverable, though the documentation (the comment above) is succinct.
In fact, it is that unclear and hidden that I even forgot about it, and an issue was raised and remained open for a year, whilst the solution which was implemented 2 years prior to the issue being raised was just lingering around (ref #32)
And that's by no mean the raiser's fault. It's the plugin's fault (so by extension mine). It's not well organized, so people don't know where to look. But that can be fixed :slightly_smiling_face: And this is what this issue is all about.
How can you help
If you have a problem, and it takes more than a minute for you to find the solution, then you should definitely let the package know. Please raise an issue, there's definitely something that can be done about it (change the default behavior so you don't have the problem anymore, and if that can't be done, document it succinctly and somewhere where people will look ie. the readme is my best idea right now).

Reorganize the settings files according to:

The discoverability of an option should be proportional to the distance between the perfect solution and the current solution

https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L2-L3
What does that even do?
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L5-L9
name too short. I have to read the comment to know what it does (i should only have to read the comment to learn how to use it, if I can't "feel" that. Ideally, I shouldn't need comment, but come on, I'm not smart enough for that).
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L11-L12
name too short. Same as above
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L14-L15
I don't know what this does, even reading at the comment.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L17-L19
why do I have to think about that?? Of course I'm going to pick 0. name to short. Same as above.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L21-L25
this shouldn't be an option. Remove it. Choose for the user. Always log the computer friendly path.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L27-L58
good, it's intuitive to use, except for platform which should be called platforms and take a list. The comments should be clearer and more "compact", it doesn't feel like they belong to the terminals setting.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L60-L62
I like that. Just reading the name I know I want that on. So that probably means it shouldn't be an option in the first place. But it's kind a cute. Should be removed for sure. :slightly_frowning_face:
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L64-L65
Remove "funny" comments please. It's not even that obvious.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L67-L70
Is it expensive to always have that on? And by default it's off, and I've never had any problem... I wonder if some people have it on... So maybe it should be removed.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L72-L74
ok that's probably the best one right now. The name explain what it does. The comment is nearly perfect, it could be better if it used a different wording than the setting name (ie. reveal)
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L76-L77
gooood. The comment should give case-scenario example, it's not the clearest (even for me).
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L79-L83
Perfect? Don't even need a comment saying you can use aliases within aliases because it does it in the default value, so the user can understand it off the bat. Maybe have a link to the list of default aliases in there though. And explicitly say that these aliases will be added to the default aliases.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L85-L86
pretty sweet, except the link's broken... The comment should indicate that it'll just open the browser for help.
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L88-L106
I doubt anyone would decide to suddenly "hide" an option. If they do, then maybe that's a sign that it should be removed completely from file manager (a good indicator that I should remove it is me saying "to improve your speed". Don't aim to improve your speed by customizing your plugins. You're wasting your time. Code stuff). But it's cute. Remove it? :cry:
https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L108-L109
Bad name (no one thinks of "New..." as "create"), but good comment.

https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L67-L70
Is it expensive to always have that on? And by default it's off, and I've never had any problem... I wonder if some people have it on... So maybe it should be removed.

I don't know if you mean "remove and act like it's defaulted to true" or "remove and act like it's defaulted to false", but for what it's worth, having it act like it's off (#54) makes the New file/folder stuff really annoying to use, and I haven't yet noticed issues from editing my local copy to force it on.

https://github.com/math2001/FileManager/blob/4ecc88d57984adadf4d0a221b2f1f1bc2755ef04/FileManager.sublime-settings#L67-L70
Is it expensive to always have that on? And by default it's off, and I've never had any problem... I wonder if some people have it on... So maybe it should be removed.

I don't know if you mean "remove and act like it's defaulted to true" or "remove and act like it's defaulted to false", but for what it's worth, having it act like it's off (#54) makes the New file/folder stuff really annoying to use, and I haven't yet noticed issues from editing my local copy to force it on.

What version of ST are you using? And you are saying that it is annoying to have it disabled?


What is GMAc in mmdet/tools/get_flops.py

in mmdet/tools/get_flops.py
There will be a GMac as the unit of FLOPs.
Does GMAc mean giga multiply add calculation or giga memory access cost (proposed in ShuffleNetV2)?

MultiplyAdd


Add openmm platform selection in VanillaMDSimulator and e2e workflow.

Fixes #519
Branches off of #518

Codecov Report

Merging #520 (db61c48) into main (098cee2) will decrease coverage by 13.06%.
The diff coverage is n/a.

Additional details and impacted files


[InconsistentCandidate] error each time I add a dev package

When I tried to add a package (pytest, flake8...) in the dev dependencies, it looks like it is checing for some Windows sub deps.

[x] I have searched the issue tracker and believe that this is not a duplicate.

Steps to reproduce
pdm add -d flake8

Actual behavior
Adding packages to dev dependencies: flake8
See /tmp/pdm-lock-y6yt0q5u.log for detailed debug log.
[InconsistentCandidate]: Provided candidate <Candidate colorama 0.4.2> does not satisfy <NamedRequirement colorama; sys_platform == "win32">

logs:
======== Start resolving requirements ========
	requests~=2.18
	pytest~=3.2
	flake8
	Adding requirement requests~=2.18
	Adding requirement pytest~=3.2
	Adding requirement flake8
	Adding requirement certifi>=2017.4.17(from requests 2.18.4)
	Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.18.4)
	Adding requirement idna<2.7,>=2.5(from requests 2.18.4)
	Adding requirement urllib3<1.23,>=1.21.1(from requests 2.18.4)
	New pin: requests 2.18.4
======== Ending round 0 ========
	New pin: idna 2.6
======== Ending round 1 ========
	New pin: urllib3 1.22
======== Ending round 2 ========
	New pin: chardet 3.0.4
======== Ending round 3 ========
	Adding requirement py>=1.4.33(from pytest 3.2.5)
	Adding requirement setuptools(from pytest 3.2.5)
	Adding requirement argparse; python_version == "2.6"(from pytest 3.2.5)
	Adding requirement ordereddict; python_version == "2.6"(from pytest 3.2.5)
	Adding requirement colorama; sys_platform == "win32"(from pytest 3.2.5)
	New pin: pytest 3.2.5
======== Ending round 4 ========
	New pin: ordereddict 1.1
======== Ending round 5 ========
	New pin: py 1.4.34
======== Ending round 6 ========
	New pin: argparse 1.4.0
======== Ending round 7 ========
	New pin: certifi 2020.12.5
======== Ending round 8 ========

Expected behavior
package to be installed in dev section
Environment Information
# Paste the output of `pdm info && pdm info --env` below:

PDM version:        1.3.0
Python Interpreter: /usr/bin/python3.8 (3.8.5)
Project Root:       /home/shazz/projects/python/pdm
{
  "implementation_name": "cpython",
  "implementation_version": "3.8.5",
  "os_name": "posix",
  "platform_machine": "x86_64",
  "platform_release": "5.8.0-41-generic",
  "platform_system": "Linux",
  "platform_version": "#46~20.04.1-Ubuntu SMP Mon Jan 18 17:52:23 UTC 2021",
  "python_full_version": "3.8.5",
  "platform_python_implementaiton": "CPython",
  "python_version": "3.8",
  "sys_platform": "linux"
}

Can you provide the content of pyproject.toml? Also try to remove __pypackages__ and redo the steps.

Close it for no update for 15 days


Restructured code

Description
This pull request includes several housekeeping changes to improve the project structure and organization:

Removed unnecessary files to reduce clutter and improve maintainability.
Moved random Jupyter Notebook (.ipynb) files to an 'archive' folder for better organization and to separate potentially outdated or unused notebooks from active ones.
Restructured the index.rst file to improve documentation organization and readability.

These changes aim to streamline the project, making it easier to navigate and maintain. No functional changes were made to the codebase.
Fixes # (if applicable)
Type of change

[x] This change requires a documentation update

How Has This Been Tested?

[x] Verified that all necessary files are still present
[x] Checked that the restructured index.rst file renders correctly

Checklist:

[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

Looks good enough!


[BUG] Parameters Pane not showing Storage Classes

Describe the bug
when creating a storage class, the Parameters tab is empty
To Reproduce
assuming this might reproduce it:
install harvester v1.0.3
upgrade to v1.1.1
create a storage class
try to update the parameters
Expected behavior
user can configure Parameters for the Storage Class
Support bundle
https://drive.google.com/file/d/1i5iPV3sYr5nF60u-YaKB4jOEeIltRQXf/view?usp=sharing
Tokens, passwords, and secrets are automatically removed from support bundles. If you feel it's not appropriate to share the bundle files publicly, please consider:

Wait for a developer to reach you and provide the bundle file by any secure methods.
Join our Slack community (https://rancher-users.slack.com/archives/C01GKHKAG0K) to provide the bundle.
Send the bundle to<EMAIL_ADDRESS>with the correct issue ID.  -->

Environment

Harvester ISO version: 1.0.3 upgraded to 1.1.1
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R620):

Additional context
also i see the following error in google-chromes developer console:

are you trying to create and setup custom parameters during the creation of storage class, or are you trying to edit the parameters on an existing custom storage class

i would like to be able to do either if possible, the issue is, the PANE is totally gone. i'm assuming because of the java script errors

any feedback on this?

@WuJun2016 @n313893254 Any clue of such issue? thanks.

According to the description, it should be a UI bug. I will try to reproduce it.

Hi,  @albertkohl-monotek

If you change the ui-index to https://releases.rancher.com/harvester-ui/dashboard/latest/index.html , change ui-source to external,  Then refresh the page, does it still report errors?

I upgraded from v1.0.3 to v1.1.1 but failed to reproduce the problem.
@albertkohl-monotek  Can you look at the values returned by the longhorn.io.nodes api in your environment.   Whether the spec.tags attribute exists for each node。

@WuJun2016

Can you look at the values returned by the longhorn.io.nodes api in your environment. Whether the spec.tags attribute exists for each node。

how can i pull that? if i go to that url for the cluster vip, or any node, i get a refused to connect error.

Hi, @albertkohl-monotek.  Try this URL: <Harvester Endpoint>/v1/harvester/longhorn.io.nodes

Thanks @n313893254 @WuJun2016 i see tags: [ ] at spec.tags and spec.disks.diskid.tags
in both cases, they are all empty

@albertkohl-monotek   It is caused by this  problem. I will fix it in the latest version。  thankns

@WuJun2016 anything i can do for a work-around to get it working until the next version update?

@WuJun2016 anything i can do for a work-around to get it working until the next version update?

Wait for CI to complete， https://drone-publish.rancher.io/harvester/dashboard/770，
workaround: https://github.com/harvester/harvester/issues/3348#issuecomment-1410403398

@WuJun2016 anything i can do for a work-around to get it working until the next version update?

@albertkohl-monotek Wait for CI to complete， https://drone-publish.rancher.io/harvester/dashboard/770
workaround: #3348 (comment)

@albertkohl-monotek  It is recommended to set the ui-index to the original address after setting the storageClass, otherwise new problems may be introduced。 thanks

That fixed it, thanks!


Can't bind div property scrollTop

Description
I'm trying to keep the scroll position when I navigate away from the articles page to the article page.
Property scrollTop binding of div element when rendering template is not reflected.
Steps to Reproduce
Consider this template:

          ${state.articles.map(
            article =>
              html`

                  ${article.category}

 this.gotToArticle(article, this.shadowRoot.getElementById("articlesContainer").scrollTop)}>

${article.title}

              `
          )}

When I go to an article page I set the current scrollTop of the scrollable div element.
The state is updated properly when I navigate to an article page and when I navigate back and this peace of template is rendered
the property binding .scrollTop=${state.scrollTop}  doesn't work, meaning the scroll position of div element is 0.
Browsers Affected

[x ] Chrome

The problem here is that the last value set by lit-html hasn't changed, and so it doesn't know it needs to set the value.
I opened up a more generic issue to track this: #877


feature request: support "discovery"

Currently ports in ipAddress/discovery/ports not supported
{
  "id": "nginx-mesos",
  "container": {
    "type": "MESOS",
    "docker": {
      "image": "nginx:1.10.2-alpine"
    }
  },
  "cpus": 0.5,
  "mem": 64.0,
  "ipAddress": {
    "networkName": "calico-network",
    "labels": {
      "app": "nginx",
      "group": "production"
    },
    "discovery": {
      "ports": [
        { "number": 80, "name": "http", "protocol": "tcp" }
      ]
    }
  }
}

And portDefinitions is not available in ip-per-container mode.

I made a fork to make it work.
But no plan to merge back because Unified containerizer/Marathon is working on portMappings.
I think after it's done, we should use port mappings to declare service expose.

Thanks @jejer for mentioning it, and its true that its been a bit confusing how Marathon has been dealing with ports/services. I will take a new look into it I think! 👍


Unrecognized argument --subscription when creating service principal

The command az ad sp create-for-rbac --subscription <subscription-uuid> --sdk-auth | base64 -w0 is invalid and return this error:
az: error: unrecognized arguments: --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Change it to:
az ad sp create-for-rbac --sdk-auth | base64 -w0

as is shown here: https://github.com/Azure/application-gateway-kubernetes-ingress/blob/master/docs/setup/install-existing.md#using-a-service-principal

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d3925c0f-2f3a-a53e-d558-c00cca37e961
Version Independent ID: 1a49146e-07a4-bb12-0a5b-0d07590fbcad
Content: Create an ingress controller with an existing Application Gateway
Content Source: articles/application-gateway/ingress-controller-install-existing.md
Service: application-gateway
GitHub Login: @Caya
Microsoft Alias: caya

@clarenceb , Thanks for your feedback. We are looking into this query and will update you as soon as possible.

@clarenceb , Appreciate your patience. We have edited the document accordingly by removing the "--subscription" parameters while creating the service principle and also in other mentioned areas. It would take some time for the edits to get reflect over the doc.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


[WIP] nth-prime: Add test file generator.

The Nth Prime problem was missing BookKeeping module.

It is OK, because this exercise is not yet generated, and so does not need the BookKeeping information yet.
Would you be up to writing the generator while you are here and interested?

Sure 👍

@kotp Just pushed up code for the generator.
I also created a PR on x-common with the test case json.
Let me know if I've missed something!

First look, this looks pretty good.  Version number needs to be set back to 1.

I rolled back the version and updated it to reflect the changes to the x-common PR

Waiting on https://github.com/exercism/x-common/pull/332 which needs to be merged first.

This looks ready to merge to me. 👍

Still waiting on exercism/x-common#332. Perhaps you could prod that along.

The x-common PR has been merged. Is this PR in sync with the master branch of x-common and ready to be merged?

@Cohen-Carlisle Sorry for the late reply. I think this PR is good to go with the recent update to the data method in generator.rb

Thanks a lot @cacqw7 :heart:


Must support

Implements Must Support for FHIR profiles and extensions.  Support for Logical Models will come in a later release.
This can be tested against a branch on shr_spec that I created that fixes some issues in the mCODE content profile.  The branch is: more-cp-fixes-for-mk:
https://github.com/standardhealth/shr_spec/tree/more-cp-fixes-for-mk
I used the following command:
node . -c ig-mcode-config.json -s es6 -l error ../shr_spec/spec/

Please review but DO NOT MERGE.

Travis CI is having an outage, but only trivial changes have been made since last CI run, and I've also verified the latest code locally.


[BUG] browse roles doesn't show the correct number of member in the role

Task
browse groups doesn't show the correct amount of groups

Description
When viewing groups from the browse section we are unable to get the real amount of members in them.  Example is avengers

Repro steps:

Login
Click browse
Look at Avengers group 0 members
click on avengers
Two members in it
(Images attached)

Fixed in #897.


Profile Custom Metadata Updating

This resolves the profile custom metadata updating issue by comparing the custom metadata to the API vs. comparing it to the local file.
This also adds the ability to set the "Install On" value within Kandji for profiles either by using the runs_on key with a comma-separated list of mac, iphone, ipad, or tv. Or can be set by using runs_on_mac = true, etc. with boolean values.

@disenchant - If you wouldn't mind reviewing this, it would be appreciated.


onBlur issue

I have a form that has a text input, checkbox, hyperlink and a submit button.
I want the form to be able to automatically validate the contents of the text input when i tab (blue) off the text input.
The issues is that when i click the hyperlink, the input is also validated as the input form which has focus has now lost it. when i disable the onblur validation, the only way i can validate is with the user pressing the submit button. Is there any way i can tell it to ignore certain elements or alternatively, is there another way i can do the validation?

Very good question. I have the same problem

The problem is that you're getting event.preventDefault() that is stopping your click on the link?

And how would we work around this then?
Regards
Russell
Sent from my iPhone

On 29 Jan 2016, at 14:55, Erik Rasmussen<EMAIL_ADDRESS>wrote:
The problem is that you're getting event.preventDefault() that is stopping your click on the link?
—
Reply to this email directly or view it on GitHub.

Doesn't clicking from one input to another thing fire two events?

Sorry, no.
What happens in that if you were to have a hyperlink included on the form just as a bit of info - as soon as you click on the link, the validation would trigger as the form is onBlur - i know i can take the onBlue off but its nice to validate form input to input.

On 29 Jan 2016, at 15:44, Erik Rasmussen<EMAIL_ADDRESS>wrote:
Doesn't clicking from one input to another thing fire two events?
—
Reply to this email directly or view it on GitHub https://github.com/erikras/redux-form/issues/546#issuecomment-176826411.

Okay, I'm not sure that I understand your problem. Can you show me some example code?

this wireframe may help

On 29 Jan 2016, at 16:02, Erik Rasmussen<EMAIL_ADDRESS>wrote:
Okay, I'm not sure that I understand your problem. Can you show me some example code?
—
Reply to this email directly or view it on GitHub https://github.com/erikras/redux-form/issues/546#issuecomment-176837532.

That was an email attachment? Github said NOPE.

Let's say this is the form:
Username: ########
Password: #######

[Forget password link]
                   [Login]

Initial focus is on the username input. But user don't remember credentials and clicks Forget password link. And what happens is that login input looses its focus and validation is triggered and the error appears (in my case next to the username field).
Desired behaviour would be to fire onBlur action only if focus is changed within some group of controls (in this case within username and password inputs). It would be great if that could happen only if particular input had some kind of attribute like:  or if inputs would be grouped in special tag like: . Hope it shads some light on the problem :)

Fantastic explanation.
Russell Holmes
Sent from my iPad

On 31 Jan 2016, at 13:13, Daniel Kos<EMAIL_ADDRESS>wrote:
Let's say this is the form:
Username: ########
Password: #######
[Forget password link]
[Login]
Initial focus is on the username input. But user don't remember credentials and clicks Forget password link. And what happens is that login input looses its focus and validation is triggered and the error appears (in my case next to the username field).
Desired behaviour would be to fire onBlur action only if focus is changed within some group of controls (in this case within username and password inputs). It would be great if that could happen only if particular input had some kind of attribute like: or if inputs would be grouped in special tag like: . Hope it shads some light on the problem :)
—
Reply to this email directly or view it on GitHub.

We are currently having the same issue with a form that also has a "Cancel" button.  If you have clicked in just one of the forms and then try to immediately hit cancel that first click is ignored and the error is thrown.  You are then able to click the button.

We are also seeing this on one of our projects.

One thing you could do is set touchOnBlur to be false. That would prevent all your fields from being marked touched when they get blurred, but they would still all be marked touched (a.k.a. show errors) on a failed submit. For a simple login form, this should be sufficient, don't you think?

Yeah, we made some changes so that the form is only validated when you hit the submit button.  We would really like it to be dynamic but a fix to the bug is that we wait until submit.

Closed without a resolution?

There is a resolution! Actually multiple ones.

touchOnBlur set on false would prevent the issue
Removing autofocus on the input would also prevent it

Validation could be manually run when handleSubmit receives a noop function:
// Run validation
this.props.handleSubmit(() => {})

Finally, this is not a Redux Form bug but a usage question and we try restrict GitHub issue to bugs.


PDB parser does not run when using binja core via C++ API

While developing a C++ script on top of the BN C++ API, I notice that the PDB parser does not run when I use the core headlessly. I noticed symbols like "__security_init_cookie" are missing after I update analysis (and wait). These symbols all come from PDB.
This is NOT a timing issue since even if I wait for 60 seconds (long enough for the PDB plugin to do its work) in the script, the symbols are still missing. Also this does not happen if I use the Python API to do the same thing.

I checked and setting like pdb.files.localStoreAbsolute are present. This means the PDB plugin itself does run as expected, but it somehow does not do the work

When I set log level to info, I got the following output from the Python script:
[0:0 Default info] Check file exists: /Users/xusheng/Library/Application Support/Binary Ninja/symbols/calc.pdb/9226C14788FAFE6EA54A7D197EEAEDE91/calc.pdb
[0:0 Default info] Read file: /Users/xusheng/Library/Application Support/Binary Ninja/symbols/calc.pdb/9226C14788FAFE6EA54A7D197EEAEDE91/calc.pdb
[0:0 Default info] PDB age is newer than our binary! Loading it anyway, there probably shouldn't be any issues.
[0:0 Default info] Loaded PDB, parsing...
[0:0 Default info] PDB found 1 types
......
[0:0 Default info] PDB found 95 data variables
[0:0 Default info] PDB found 30 functions
[0:0 Default info] Parsed pdb

I see nothing from the C++ script related to PDB


Add example for stochastic swap and use to verify wheels

Summary
This commit adds a new example to the examples directory for running the
stochastic swap pass. This is then used by the wheel build automation
to verify the built wheel works as expected. The compiled code (and
complexity in the wheel build) is for the stochastic swap pass so
verifying it functions when installed from the built wheel is important.
Details and comments

The wheel build works using the stochastic swap example scipt:
linux: https://travis-ci.com/Qiskit/qiskit-terra/jobs/196677778
osx: https://travis-ci.com/Qiskit/qiskit-terra/jobs/196677779
windows: https://ci.appveyor.com/project/Qiskit/qiskit-sdk-py/builds/24208752/job/oip59lwhta0nclyk?fullLog=true
I'll revert the test comments and remove the on-hold tag. Then this should be good to go


Fix stats issue

Stats are not showing up correctly in 1.1.0

I believe this is a settings issue. If you set USE_TZ=False, stats will error.

I think we can avoid use of timezone here to avoid an error when using USE_TZ=False.

Yeah, it looks like we only need month precision?


Fix compilation warnings in extended test suite

Fixes to build the extended test suite
(not built/run under Swift CI) when using
the expanded set of compiler warning flags.

The vast majority are related to resolving size_t vs. long.  I selectively added test_sizet_ functions to bsdtests.h as the most contained way to resolve these.  (I think test_sizet_COMPAREOP reads better than test_size_t_COMPAREOP, but if you disagree it can be changed easily).

fixed the bad indentation.

thanks!

I accidentally reverted this and reapplied it here:
https://github.com/apple/swift-corelibs-libdispatch/pull/293


rmg: 0.5.5 -> 0.5.7

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Rosalie241/RMG/releases.
meta.description for rmg is: Rosalie's Mupen GUI
meta.homepage for rmg is: https://github.com/Rosalie241/RMG
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.5.6 with grep in /nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6
found 0.5.6 in filename of file in /nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
rmg

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A rmg https://github.com/r-ryantm/nixpkgs/archive/2f8b1487b44691516bb079297796f26e2ea60574.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/2f8b1487b44691516bb079297796f26e2ea60574#rmg

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6
ls -la /nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

rmg

Maintainer pings
cc @slam-bert for testing.

Unfortuantly, something about the update is causing a crash on startup.
I got this error after trying to test the changes on my system:
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'   what():  filesystem error: recursive directory iterator cannot open directory: No such file or directory [/nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6//nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6/lib/RMG//Core] Aborted (core dumped)
To be honest, I'm not sure what's causing the issue, as I don't know any C++. If anyone can track down the problem, please let me know!

/nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6//nix/store/zv4gsdpzdkpb3aynj3h9agk8wzzyrzj9-rmg-0.5.6/lib/RMG//Core

Incorrect CMake variable concatenation.
https://github.com/Rosalie241/RMG/blob/e943e86447bfaa354de12b8e44a2da68dea0f1fa/Source/RMG-Core/Directories.cpp#L240-L252
https://github.com/Rosalie241/RMG/blob/ed9d9cbc0d8bb5e2c9ce9fb1294b17a3daacc786/Source/RMG-Core/Config.hpp.in#L16-L18
I'll submit a fix upstream.

I have added a patch to fix your issue, and manually bumped this to 0.5.7 (so the patch applies properly). It launches fine for me now, but please give this another go - I don't have any ROMs to verify its functionality.

@OPNA2608 I finished up my testing, and it ran just fine, no issues! I think this PR can be merged now.

I apologize for bumping this thread but I've noticed RMG is out of date for nixpkgs, I'd remove the patch myself so that the bot can automatically update it again but I've never used nix and don't know how to generate the hash required sadly, even with some browsing around on the internet.
@slam-bert could you take a look please?


Allow modules with . in name

This is something that currently projects like jsdoc-react are hacking into place - if jsdom supported . in module names, it would be possible to document submodules that are exposed via require as module.methodname.

JSDoc already supports modules with . (and other punctuation) in their names. Just enclose the module name in quotes: @module "a.module.with.periods". This is documented here, although the information is a bit buried right now.


failed to sync after upgrade to 0.1.0-alpha.5

Describe the bug

Yesterday our reth node got stuck on 17867059, the same issue as in #4107.
Today, we upgraded to 0.1.0-alpha.5 with the #4108 fix.
The reth node failed to sync fully.
Tried to unwind a couple of blocks (reth stage unwind to-block 17860000) - but failed like in #4114.
Logs attached - they are after the unwind.

Steps to reproduce
reth node --authrpc.jwtsecret /root/jwt.hex --authrpc.addr <IP_ADDRESS> --authrpc.port 8551 --http --http.addr <IP_ADDRESS> --http.port 8545 --http.api all --ws --ws.addr <IP_ADDRESS> --ws.port 8546 --ws.api all --ipcpath /tmp/reth.ipc --rpc-max-connections 1024 --rpc-max-subscriptions-per-connection 1024 --rpc-max-tracing-requests 1024 --log.persistent --log.filter info -vvv

lighthouse --network mainnet beacon --execution-endpoint http://localhost:8551 --execution-jwt /root/jwt.hex --http --logfile /tmp/lighthouse.log

Node logs
reth logs, lighthouse logs
Platform(s)
Linux (x86)
What version/commit are you on?
reth Version: 0.1.0-alpha.5
Commit SHA: b823cc01
Build Timestamp: 2023-08-09T07:52:03.903854775Z
Build Features: default,jemalloc
Build Profile: maxperf

What database version are you on?
Current database version: 1
Local database version: 1
If you've built Reth from source, provide the full command you used
LD_PRELOAD=/usr/local/lib/libjemalloc.so RUSTFLAGS="-C target-cpu=native" cargo build --profile maxperf --features jemalloc

Code of Conduct

[x] I agree to follow the Code of Conduct

we still had a bug in this commit,
the fix was added https://github.com/paradigmxyz/reth/pull/4126

upgraded to #4116, but still have the same problem.
reth logs, lighthouse logs.

looks like 6622f53 solved it!


error when starting dev server: Cannot read property 'startsWith' of undefined

Describe the bug
This error in   resolveBuildOptions
const resolve = (p) => p.startsWith('\0') ? p : path__default.resolve(root, p);
Because I have dynamically configured the packaged output file, but this error will be reported when outdir is not configured because the configuration file name is not required in the development environment
Reproduction
Although this may not be a bug, I think it can be optimized because it is not very troublesome
System Info
vite 2.7.1
macOs
chrome lasted

Used Package Manager
yarn
Logs
error when starting dev server:
TypeError: Cannot read property 'startsWith' of undefined
    at resolve (/Users/lupeiwen/Documents/element-compoistion-admin-vite/node_modules/vite/dist/node/chunks/dep-3daf770c.js:43361:30)
    at resolveBuildOptions (/Users/lupeiwen/Documents/element-compoistion-admin-vite/node_modules/vite/dist/node/chunks/dep-3daf770c.js:43362:23)
    at resolveConfig (/Users/lupeiwen/Documents/element-compoistion-admin-vite/node_modules/vite/dist/node/chunks/dep-3daf770c.js:81935:34)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async createServer (/Users/lupeiwen/Documents/element-compoistion-admin-vite/node_modules/vite/dist/node/chunks/dep-3daf770c.js:67541:20)
    at async CAC.<anonymous> (/Users/lupeiwen/Documents/element-compoistion-admin-vite/node_modules/vite/dist/node/cli.js:688:24)

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/vue-next instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Seems caused by https://github.com/vitejs/vite/pull/5601


Dense MM performance for AARCH64

I am currently in the process of extending the sparse register kernels to AARCH64.  Before doing so I wanted to get a baseline for how well the dense AARCH64 kernel in libxsmm are working.    For a small dense matrix OpenBLAS is outperforming the JIT'ed libxsmm kernel by a factor of ~3.5 or so.  Is this kind of discrepancy to be expected given the current status of the code?  (Note libxsmm says sparse, but it ends up JIT'ing a dense kernel as the sparse register routines are not yet coded up.)

Will this issue be fixed when merging #543?

The situation is better, however, performance is still not quite where it should be.
The core kernels themselves are fine and can get a very high fraction of peak when the strides are small.  For example, mats/p4/tet/m132-sp.mtx can get ~18 GFLOP/s DP on a single N1 core when the matrix size is 48 (smallest supposed by the driver).  Increasing this to 48,000 performance drops to just ~10.5 GFLOP/s whereas OpenBLAS can do ~14.4 GFLOP/s for the same matrix.  This is a compute limited kernel with modest bandwidth requirements (<< available single core bandwidth).
This indicates that the kernel may not be in good standing with the cache hierarchy/memory controller/pre-fetchers.

On the SVE side I am also observing poor performance for the core kernels on an actual A64FX core.  As an example:
LIBXSMM_TARGET=A64FX ./kernel 8 60 35 8 35 8 1 1 0 0 0 0 nopf DP nobr 1 0 100000 0
------------------------------------------------
RUNNING (8x35) X (35x60) = (8x60), DP, BR=1
------------------------------------------------
function pointer address: 400029f11000
0.000086s for creating jit
4.204782s for C
0.799090 GFLOPS for C
0.220276s for libxsmm
15.253561 GFLOPS for libxsmm
max. error: 0.000000
------------------------------------------------

where peak is ~64 GFLOP/s (still unsure if the chip I am running on is 2 or 2.2 GHz).  This is a size which should deliver strong performance; on an x86 CPU with a single AVX-512 FMA unit I find:
./kernel 8 60 35 8 35 8 1 1 0 0 0 0 nopf DP nobr 1 0 100000 0
------------------------------------------------
RUNNING (8x35) X (35x60) = (8x60), DP, BR=1
------------------------------------------------
function pointer address: 7ff7b1947000
0.000148s for creating jit
0.542643s for C
6.191912 GFLOPS for C
0.048959s for libxsmm
68.629330 GFLOPS for libxsmm
max. error: 0.000000
------------------------------------------------
``
which is basically peak given the chip is clocked around 4.4 GHz.

Going from 8 => 32 as `./kernel 8 60 35 8 35 8 1 1 0 0 0 0 nopf DP nobr 1 0 100000 0` increases the SVE performance to ~41.5 GFLOP/s but this is still way below peak (and a larger size than we can practically use in PyFR).

Looking through the architecture manual for the A64FX it appears as if we have an 11 cycle load to use latency for vectors, and a 9 cycle FMA latency.  Plus a relatively small OOE window.  This could be a nuisance.

LIBXSMM_VERSION: master-1.16.3-1969 (25216945)
X86_64/DP    TRY    JIT    STA    COL

which references X86 [...] although they are clearly ARM binaries:

This is fixed (2e89786fe108cc04a50311840c6dda0d10180d81).

We realized that on A64FX the latencies (as you write) are very high and I hope recall correctly that the current kernel doesn't do an aggressive unrolling in N dimension. When M=8 we have only one vector in SIMD dimension, so we have 30 register (N=30) we could use to hide FMA latencies... However the machine then needs to be able to handle 2 bdcasts and 2 FMA in the same cycle to hit close to peak.
Is the small M coming as for pyfr we need to flip M/N?

Right, PyFR wants to do row major A*B where A = constant and B is long.  Since the routines are CM we flip M/N and the A/B arguments.  We currently do not pre-transpose A (even though we could so we'd go from an 'NN' routine to an 'NT' routine) although am unsure if the kernel would prefer it or not.
Looking at the A64FX uarch guide (https://raw.githubusercontent.com/fujitsu/A64FX/master/doc/A64FX_Microarchitecture_Manual_en_1.3.pdf) I believe it is possible to issue two loads in a cycle and two FMA's in a cycle, but I do not think that leaves anything for addressing.
Another 'quirk' is that it does not seem to pick up on the fact that eor zn, zn, zn is a zeroing idiom and so you end up with a false dependency on zn.  My in-cache sparse routines got 25% slower when I nop'ed out all of my loads with eor's!

Here are a few single-core performance measurements (C+=AB) using revision 4ac333be5260efcef592eb13bc48cfd3f6899148.
Systems are:

Graviton2: Amazon EC2 c6g.metal instance having a single Graviton2 processor (Neoverse N1). The processor clocks at a frequency of 2.5GHz and has 64 cores. Each of the cores has two 128-bit ASIMD pipelines, where a single pipeline has a throughput of one 128-bit FMLA-instruction per cycle. This results in a theoretical peak performance of 40.0 FP32- GFLOPS or 20.0 FP64-GFLOPS per core.
Altra: Oracle Compute Infrastructure BM.Standard.A1.160 instance using Oracle Linux 7.9. The instance had two Ampere Altra Q80-30 processors (Neoverse N1). The processors have a clock frequency of 3.0 GHz. Each of the node's 160 cores has two 128-bit ASIMD pipelines. A single pipeline has a troughput of one 128-bit FMLA-instruction per cycle, resulting in a theoretical peak of 60.0 FP32-GFLOPS or 30.0 FP64-GFLOPS per core.
A64FX: A single A64FX-node of the Isambard 2 UK National Tier-2 HPC Service. An A64FX-node has a single Fujitsu A64FX processor operating at 1.8GHz. Each of the processor's 48 cores has two 512-bit SVE-pipelines. A single pipeline can perform one 512-bit FMLA-instruction per cycle, resulting in a theoretical peak performance of 115.2 FP32- GFLOPS or 57.6 FP64-GFLOPS per core.
M1: 2020 Mac Mini with an M1 processor. M1 features four Firestorm performance cores and four Icestorm efficiency cores. The Firestorm cores operate at a presumed frequency of 3.2GHz and each core has presumedly four 128-bit ASIMD-pipelines. Each pipeline can presumedly do one 128- bit FMLA-instruction per cycle. This results in a theoretical peak performance of 102.4 FP32-GFLOPS or 51.2 FP64- GFLOPS for every Firestorm core. Additionally, M1 features one or more undocumented AMX-unit(s). The Firestorm AMX-unit can presumedly do one outer-product plus accumulate per cycle: 16x16x2=512 operations in FP32 or 8x8x2=128 operations in FP64. This results in a theoretical peak performance of 1638.4 FP32-GFLOPS or 409.6 FP64-GFLOPS when using the AMX-unit through the Firestorm cores

Moving forward I'd propose:

Assemble a table of specific samples/xgemm-configurations which are of interest to us
Measure their performance on N1 and A64FX
Collect ideas on issues and on how to get the kernels faster
Get them fast :-)

Apple M1, ARM N1, and A64FX; the good, the bad, and the ugly.  A secondary factor to include in the mix is the impact of strides.  If we look at the N1 performance for small matrices is very good.  However, if I bump lda and ldc then performance drops off far more so than on x86, even if the kernel itself has a relatively high computational intensity compared with memory bandwidth.

If we look at the N1 performance for small matrices is very good.

Actually there's room for improvement for (very) small matrices on N1 (probably elsewhere too). That's mostly driven by unnecessary stack transfers (procedure call standard). We have this on the agenda over here; guess this is also the reason for the 5x5x5 performance in Fig. 14a of  https://dl.acm.org/doi/abs/10.1145/3458817.3476217

A secondary factor to include in the mix is the impact of strides.

Makes sense.

Also for very small GEMMs the aarch64 GEMMs don't use "masking" so we may use more FMA than necessary. For the eltwise kernels partial loads have been developed https://github.com/hfp/libxsmm/blob/master/src/generator_common_aarch64.c#L88 and https://github.com/hfp/libxsmm/blob/master/src/generator_common_aarch64.c#L149. But they still have to be ported over to GEMM... I hope to do it over the coming holidays.

I started collecting a list of matrix-kernels of special interest by means of samples/xgemm, i.e., M, N, K, lda, lbd, ldc, alpha, beta, precision, repetitions for EDGE:

time
20    9   35   35   35   35 1 0 SP   5000000
20    9    9   35    9   35 1 1 SP   10000000
20    6    3   35    3   35 1 1 SP   25000000
35    6    6   35    6   35 1 1 SP   20000000
volume
35    9   20   35   35   35 1 0 SP   5000000
35    9    9   35    9   35 1 1 SP   10000000
35    6    3   35    3   35 1 1 SP   20000000
surface
15    9   35   15   35   15 1 0 SP   5000000
15    9    9   15    9   15 1 0 SP   20000000
35    9   15   35   15   35 1 1 SP   10000000
15    6    9   15    9   15 1 1 SP   20000000
35    6   15   35   15   35 1 1 SP   10000000

Anything to add here?

In 8438ddd1d57e97f94848aeb55253c800a6ccc882 the A64FX-performance using SVE is as follows:

Also did have a look at 16 9 9 16  9 16 1 0 SP.
Biggest issue was A64FX having trouble with:
[...]
ld1rw	{z0.s}, p0/z, [x1]
add	x1, x1, #0x24
fmla	z23.s, p0/m, z1.s, z0.s
ld1rw	{z0.s}, p0/z, [x1]
add	x1, x1, #0x24
fmla	z24.s, p0/m, z1.s, z0.s
ld1rw	{z0.s}, p0/z, [x1]
[...]

One has to write it as:
[...]
add      x4, x1, 0x24*1
add      x5, x1, 0x24*2
add      x6, x1, 0x24*3
add      x7, x1, 0x24*4
add      x8, x1, 0x24*5
add      x9, x1, 0x24*6
add     x10, x1, 0x24*7
add     x11, x1, 0x24*8

ld1rw	{z0.s}, p0/z, [x1]
fmla	z23.s, p0/m, z1.s, z0.s
ld1rw	{z2.s}, p0/z, [x4]
fmla	z24.s, p0/m, z1.s, z2.s
ld1rw	{z3.s}, p0/z, [x5]
[...]

Quick and dirty fix in LIBXSMM:

Out of interest how well do immediate offsets work?  LD1RW should support an immediate from 0 to 252 (7*0x24) and so all but one of the explicit add instructions can, on paper at least, be eliminated.  Also, is it the ordering of the adds away from the loads/fmla's which improves performance, or the use of separate registers (i.e., would an interleaved version of your second snippet perform the same?).

Just FYI #563 , it will not impact any backend work, but for EDGE and PyFR we will have to touch the codes.

I think PyFR might be okay as it uses libxsmm_dfsspmdm_create and friends rather than calling the lower level functions directly.

Can we close this issue?

So A64FX performance is still bad.  I am unsure what we want to do here.

Dropped the ball here, sorry. Yeah, A64FX has 11 (or so) cycles latency for FMAs. I'm afraid we right now cannot support this (time wise and hardware-wise). We did tons of fixed for V2 and N2 (and continue to improve here).


Provide a mechanism to allow certain files to be exempt from owners checks

For example, package.json gets updated very frequently by the renovate bot. A build cop should be able to approve and merge those PRs without needing a review from the individual owners of the root directory (or that file).
/cc @mrjoro @cramforce

migrated to https://github.com/ampproject/amp-github-apps/issues/286


[question] About playing sequence of notes and multiple threads

Hello
I've been having a lot of fun exploring Mido, and was thinking to use it as the foundation of an API for real time musical livecoding.
Here's where I got to:
from __future__ import print_function
import sys
import time
import random
import mido
from mido import Message
from threading import Thread

mido.set_backend('mido.backends.rtmidi')
threads = []

notes = [60, 62, 64, 60]

def playnote(note_or_notes, vel, dur, ch=0):
    """abstraction for playing a note"""
    def _play(note_or_notes, vel, dur, ch=0):
        with mido.open_output(None, autoreset=True) as port:
            if type(note_or_notes) != type([]):
                note_or_notes = [note_or_notes]
            for note in note_or_notes:
                on = Message('note_on', channel=ch, note=note, velocity=vel)
                port.send(on)
            time.sleep(1 * dur)
            for note in note_or_notes:
                off = Message('note_off', channel=ch, note=note, velocity=vel)
                port.send(off)
    t = Thread(target=_play, args=(note_or_notes, vel, dur, ch))
    threads.append(t)
    t.daemon = True
    t.start()

for n in notes:
    playnote([n, n+12], 120, 1, 0)
    print("Now I have %d threads.." % len(threads))
    time.sleep(1)

print("Exiting - with %d threads.." % len(threads))

So I was wondering
a) are threads the right way to go about playing multiple notes simultaneously (so that each note is independently defined)? PS I guess ThreadPools could be used to reuse old threads..
b) is there a standard 'MIDI' way of playing a chord? Eg above I try to do that by grouping all on and off messages. Does that guarantee that notes are played at the same time?
.....
            for note in note_or_notes:
                on = Message('note_on', channel=ch, note=note, velocity=vel)
                port.send(on)
            time.sleep(1 * dur)
            for note in note_or_notes:
                off = Message('note_off', channel=ch, note=note, velocity=vel)
                port.send(off)
......

Thanks in advance for the help - and keep up the good work :-)

I'm happy to hear you're enjoying Mido! This is very encouraging for me. :)
This is just the kind of thing I had in mind when I made Mido. Early on I used it to make little arpeggiators and live sequencers. I also mapped my sustain pedal to trigger notes which was great fun.
To answer your questions:
a) The current version of Mido is not thread safe, but you're in luck! I am just about to release a 1.1.15 where this is fixed. (See issue #49.) I hope to get it out tonight, or if not later this week.
For now send() might still work. It depends on the underlying backend library. I guess if it doesn't crash it works. :)
b) You're sending chords the right way. MIDI can only do one note at a time, but if you send them close enough together it will sound like they start at the same time.

Cool that's good to know - I'll wait for the next release and do more experimentation using threads then!

Sounds good! I'll let you know when it's out.

I've released 1.1.15.

Can I suggest to take a look at midiBuffer.py, available here: https://searchcode.com/codesearch/view/13549062/
It has an abstraction for chords (ok, it would be easy to replicate in mido) and it also deals with "out of order" messages, which could be handy for this type of application (maybe others). From the docstring:
"midiBuffer is a wrapper around pyPortMidi, which is itself a        wrapper for portmidi, a cross-platform abstraction over native        midi drivers.  midi drivers require that you send events in
order.  from portmidi.h:           Do not expect PortMidi to sort data according to timestamps --
messages should be sent in the correct order, and timestamps MUST
be non-decreasing.
this is especially an issue because the NOTE-OFF message for a
currently playing note will block any NOTE-ON messages for
subsequent notes until the current note ends, so you are expected
to hold on to your NOTE-OFFs until you are sure there will be no
more intervening NOTE-ONs.  dealing with scheduling in a more
natural "set-and-forget" way requires concurrency (multithreaded
programming), which is tricky, and requires tuning to compromise
between latency and timing inaccuracies.  midiBuffer handles this for you."


Wrong precision returned if querying string is a long string.

Hi Vrogier,
On my side, I encountered a bug recently, if I use ocilib c++ api to query some data of stocks, for example, to query 4000 stocks daily data on some date,  the database table key is security code and trade date, security code is varchar(20) like '000001.SZ' while trade date is number(8) like 20220325. If I just query 10 stocks data, the result is correct, i.e., the precision function of column 'trade date' returns 8 while if I query 4000 stocks one time, the precision function of column 'trade date' returns 0 instead of 8. So, is there any limit of the query string.  I mean whether there is a limit length of query_str in below function.
                    ocilib::Statement st(db_inst);
		st.SetFetchMode(ocilib::Statement::FetchForward);
		st.Execute(query_str);
		ocilib::Resultset rs = st.GetResultset();

Many tks!

duplicated issue


user can now specify signature auth header name

Hey! Great library, does everything I need it to...except that the authHeaderName is hardcoded to "Authentication". Some webhooks, such as Kard's, use Notify-Signature or others. So I added the ability to pass an arbitrary header name around. Lemme know if there's anything you'd like done differently :)

Thanks @jhrcek for tagging me.
Even though I have Watching enabled with All Activity, I still do not get notified when PRs are raised in this repo 😞
I just triggered CI.
Change looks reasonable to me, although at first glance I cannot tell if it would disrupt or affect existing usage/users of the library 🤔

@kahlil29 it does add an argument to several functions that folks might be using, so it's definitely a breaking change.

I see, thanks for explaining @adlaika
In that case, I'll wait for @michivi & @thongpv87 to also look at this PR.
@ocharles As the (known to me) other external party who uses this library [CircuitHub], would this affect you in any way?

@kahlil29 I went ahead and changed the API such that it's non-breaking; all the changes are now in functions named like hmacAuthServerContext' (that is, suffixed with a backtick), and those are used to present the original functions with their original types.
Also, on further reflection, I've discovered a few other issues that are keeping us from using this as-is:

The assumption that the signature header with be prefixed with HMAC , and
The assumption that the signature will have been generated using a specific combination of headers + body (Kard, in their idiosyncrasy, uses only the request body).

Currently working to add functionality on those fronts; I will again try to keep it non-breaking. Thanks for the lib, and the help!

So I've come across a pretty major issue: as far as I can tell, this lib doesn't actually use the request payload's content to generate the request signature. You have tests in Servant.Auth.Hmac.CryptoSpec that test requestSignature, but all the actual use points of requestSignature come after setting the request payload's content to empty string.
Am I reading that correctly? If so, isn't this is a pretty serious vector for MITM attacks, since changes to request body won't affect the signature?
I've been trying to fix it, but it's a challenge because--as far as I can tell--there's no way to consume the http body in Servant's auth context while leaving it un-consumed for the "normal" handlers. I suspect this is why there's a bunch of commented-out code where the payload's content might have been used to generate a signature.
Anyway, please advise. I hate to give up on this, since I think in general it's The Right Approach, but at this point I might just have to give up and do all the auth in standard handler-land :(

Ah, I've just come across @chshersh's comment in https://github.com/haskell-servant/servant/issues/1120, which seems to confirm my suspicions.

@adlaika Thanks for making an attempt at making the change non-breaking, appreciate it.
Regarding the issue of Request Body, I see you've already got your answer.
However, I can confirm that we recently hit this issue while trying to implement Webhook handlers for incoming webhooks from Sendbird and/or Stripe to our Haskell backend server for one of our projects.
I believe we've used the same approach outlined by Dmitrii (or someone else) that involves freezing the request body if the request matches a certain condition (or depending on the endpoint being called) and we have a working solution in place. I'm not sure if it's the most optimal though. @thongpv87 has implemented it so he could confirm and give some inputs here 👍🏻

@adlaika There is a current attempt at signing the content as well in #57. It is a functional implementation but as noted, we still have the issue of content consumption. If you do not use streaming and if you know the size of the payloads in advance and if it can fit in memory, then the solution should be working for you. But the authentication header is still hard coded in this variant though.

Due to time and business constraints, I ended up implementing our Kard web hook auth logic in a non-Context handler (i.e. business logic)--their HMAC implementation simply uses the minified JSON of the request, making it easy to reconstitute from the parsed data Servant provides. At some point in the future, I'd like to take a stab at reconciling this with #57, but I don't think I'm going to have time for awhile.
In the meantime, the code in this PR is non-breaking and adds value, so you're welcome to merge if it pleases you :)

@kahlil29 @adlaika We have implemented this solution to work around the issue


question about batch

thanks your project.I improved my batch size ,but there are nothing changes in my GPU used-memory,did it worked?what i can do? but i am sure  that my tf was in using gpu

This repo does not support bs>1.
@zhudd-hub

This repo does not support bs>1.
@zhudd-hub

thanks for your replay so fast,would you like to shear the reason of bs=1 or the way to solve it if possible

No enough memory at that time.


Add method for lexing a JSX element

I'm going to land this as is even so that I can work on getting rid of the need for lookahead.


Get request with cookie

Hi,
I have tried to send a get request to the backend but I received a 401 http error because in the request the cookie is not set. How I can solve this issue? Is it possible to set it?
Below my code:
	YASQE.executeQuery = function (cm, callBackOrConfig) { 		endPointSelected = endPointSelected != '' ? endPointSelected : yasqe.options.sparql.endpoint; 		yasqe.options.sparql.endpoint = backendAddress + '/executeSparqlQuery'; 		cm.options.sparql.requestMethod = 'GET'; 		cm.options.sparql.args = [{ 			name: 'sparqlQuery', 			value: yasqe.getValue() 		}, 		{ 			name: 'sparqlEndPoint', 			value: endPointSelected 		}, 		{ 			name: 'selectType', 			value: yasqe.options.sparql.acceptHeaderSelect.replace('+', '%2B') 		}, 		{ 			name: 'graphType', 			value: yasqe.options.sparql.acceptHeaderGraph.replace('+', '%2B') 		}]; 		return originalExecuteQuery(cm, {}); 	}
Request header sent:
Accept:/
Accept-Encoding:gzip, deflate, br
Accept-Language:it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:0
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:8080
Origin:http://<IP_ADDRESS>:8081
Referer:http://<IP_ADDRESS>:8081/
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.3
Expected header:
Accept:/
Accept-Encoding:gzip, deflate, br
Accept-Language:it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Type:application/x-www-form-urlencoded
Cookie:JSESSIONID=BCEB61C8AE230C13DB7CE162A6EC30C8
Host:localhost:8080
Origin:http://<IP_ADDRESS>:8081
Referer:http://<IP_ADDRESS>:8081/
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Thank you in advance.

I have solved the issue. Same issue found it: https://github.com/OpenTriply/YASGUI.YASQE/issues/94


Revert "Only allocate coeff buffers up to 32x32."

This reverts commit 6f61d4c0382fc45cdd034ce66950735095bb2c7f.
For 64x64 TX, forward_transform() still needs 64x64 coefficients buffer
as input and inverse_transform_add() needs 64x64 coefficients buffer as
output. This is because forward_transform() and inverse_transform_add()
do packing and unpacking to/from upper left 32x32 coefficients area
inside themselves.
So, after calling 64x64 fwd tx, the output has first 1/4 area filled in
64x64 buffer. The level map encoder can encode maximum 32x32
coefficients thus it only encodes first 32z32 coefficnets in the buffer
for the 64x64 tx block.
Instead, what we can reduce is the buffer inside level map encoder,
from 64x64 down to 32x32, as I commited in libaom codebase,
https://aomedia.googlesource.com/aom/+/4f347987bb14b6bdc10a121659e5608731e71e02.
That I can commit soon.

OK. I jumped the gun a bit :)


Docker image w. Config non-functional?

Hello!
First of all I think this seems like a great little tool and my apologies for, maybe, being too dumb to do things right.
I am trying to get a working example running using the Docker file and my own config file, and it won't run:

I tried to simplify the setup by packaging things in a docker-compose like so:
version: '3.6'

services:
  monitoror:
    image: monitoror/monitoror
    environment:
      - "MO_PORT=8080"
      - "MO_CONFIG=/bin/config.json"
      - "MO_MONITORABLE_PING_COUNT=2"
      - "MO_MONITORABLE_PING_INTERVAL=100"
      - "MO_MONITORABLE_PING_TIMEOUT=1000"
      - "MO_ADDRESS=<IP_ADDRESS>"
    volumes:
      - ./config.json:/bin/config.json

The config-file itself is just a copy-paste of your example config:
{
  "version": "2.0",
  "columns": 2,
  "tiles": [
    {
      "type": "PORT",
      "label": "Welcome config example",
      "params": {
        "hostname": "<IP_ADDRESS>",
        "port": 8080
      }
    },
    {
      "type": "HTTP-RAW",
      "label": "Monitoror stars",
      "params": {
        "url": "https://github.com/monitoror/monitoror",
        "regex": "(\\d+) users starred"
      }
    }
  ]
}

So what have I done wrong? Help! :(

I think you forgot to bind the port in your docker-compose file

Hey! I think you forgot to bind the port in your docker-compose file

Hello Alex!
Thank you that did indeed make a difference. I am now struggling with "GITHUB-CHECKS",
I tried the default specified GITHUB-CHECKS example:

I don't know what the error means because its specifying "configVariant: "default"" and I haven't put that in there, and if I put it in there, it fails with the same error, and if I put in anything else in configVariant it just says "unknown variant". I am trying to understand the documentation but I can't decypher why "default" is "disabled" nor where "server errors" are that I can review.
Once again, thank you for helping me out.

What did you get in the logs?
And what's your config?

Hello Alex! Again, thank you for taking your time to answer my questions.
My config is thus:
{   "version": "2.0",   "columns": 1,   "tiles": [      {       "type": "GITHUB-CHECKS",       "params": {       "owner": "monitoror",       "repository": "monitoror",       "id": 10       }      }     ] }

In fact the same error happens if I just reduce the config down to:

{
  "version": "2.0",
  "columns": 1,
  "tiles": [
	{
	"type": "GITHUB-CHECKS",
	}
  ]
}

And if I then specify "configVariant": "default" it produces the same error, and if I put in, for example: "configVariant": "github", it says "unknown variant, must be ["default"]", except as I learned earlier, that just produces an error...

You need to configure the GitHub monitorable to be able to use GitHub tiles.
https://monitoror.com/documentation/#github

Thank you, I found out that I hadn't specified the key for github. I made poor assumption about when I needed the key, and the error message confused me. Sorry about the confusion.


Catagories no longer showing up in UI (Catalog page, inside Templates and edit/add environments)

Rancher Versions: Master 2/13
Steps to Reproduce:

Go to catalog click on category drop-down (it's empty)
Go inside any catalog template (category missing)
Go to enviornment and edit one or try to create new one. (templates are mixed and not order by category anymore.)

Version - master 2/21
Verified fixed


[proj4] Update to 8.2.1

What does your PR fix?
Updates port proj4 aka PROJ to the latest release.

Which triplets are supported/not supported? Have you updated the CI baseline?
all, no

Does your PR follow the maintainer guide?
yes

If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?
yes

Thanks for the update!

@rhuijben Changing the tiff dependency was not in the scope of this PR.
Generally I wouldn't cut away JPEG support from a GIS system, so I also wouldn't cut it away from the GeoTIFF library. But given that GeoTIFF in PROJ serves for exact data, not visual images, it is indeed an unlikely dependency. Feel free to create a PR which turns "tiff" into { "name": "tiff", "default-features": false }. This enables user-side feature control at command line or in manifest.


Match OpenAPI spec according to official docs

Fixes #7
Summary by Sourcery
Update API client to match the latest OpenAPI spec.
New Features:

Added support for new parameters in the following operations:\n* create_collection\n* get_collections

Bug Fixes:

Fixed a bug where the ignore_not_found option was not being sent when deleting a document.

Enhancements:

Added support for new parameters in the following operations:\n* delete_documents\n* export_documents\n* get_document\n* import_documents\n* multi_search\n* search\n* update_document\n* update_documents

Tests:

Added tests for new parameters and updated existing tests to reflect the changes.

Pull Request Test Coverage Report for Build abfef346855b684b9dd502769789c8a4c0778825-PR-8
Details

14 of 14 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+23.0%) to 89.775%

Totals

Change from base Build f10b3e8f24e356c5b2c7b6f8fbec12c7b7bb0dfc:
23.0%

Covered Lines:
439

Relevant Lines:
489

💛  - Coveralls


Stack overflow  occurs when co_await asynchronous function in the loop

The application crash occurs when co_await asynchronous function in the loop.
      co_await resume_background();

        for (int i = 0; i < 10000; ++i) {

            co_await Test();
       }

download source code
https://github.com/shelllet/winui_stack_overflow.git

compile and run

click button 'clickme'

error:
Symbol loading disabled by Include/Exclude setting.
Exception thrown at 0x00007FF7BAD5A77F in App1.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x0000007CC4403F88).
Unhandled exception at 0x00007FF7BAD5A77F in App1.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x0000007CC4403F88).

https://user-images.githubusercontent.com/16729017/119251842-5e582900-bbdb-11eb-99c6-d57db0a8262d.mp4

Can you show what the test method does?

Can you show what the test method does?

https://www.github.com/shelllet/winui_stack_overflow/tree/master/App1%2FMainWindow.xaml.cpp

@jevansaks  any ideas?

A stack would help. But I'm guessing since your Test function completes immediately, the co_await is calling the completion function synchronously, which then calls the next iteration of the loop synchronously, and so forth.
Raymond Chen has a multi-part series on better understanding coroutines in C++: https://devblogs.microsoft.com/oldnewthing/20191209-00/?p=103195
It's probably by design. C++ coroutines have a lot of rough edges.


Rebuild option, include header dependencies scan, file hash/checksum

Rebuild option for rebuilding libraries
To make it easier recompiling libraries due to Windows 10 insider, Visual Studio 2017, SDK updates
Dependencies are specified in port files

scan of include headers would provide possible quicker dependency resolution with source-level issues
some library builds take rather long before failing

File hash/checksum requires continuous editing to keep with libraries being updated

source repository download of typical compressed files already contains checksum
library dependencies should more informatively be stated as a explicit version, until version or at least version x.y.z
more or less defies the purpose of being able to build directly source libraries for whatever OS/SDK/compiler/static/dll combo

I met a similar situation. I edit an option in a portfile of a package, and I have to remove the package and reinstall it. It's more time-consuming than just to spot the change of portfile and to recompile the package.

This issue hasn’t been updated in a year; if it is still an issue, please reopen.


Frontend migration

Frontend migration

This PR changes our frontend from llmstep's version to the try these widget in Std.
This PR updates the readme to reflect the new frontend.
This PR simplifies the structure used internally for premise selection.

About the new frontend

Tactic suggestions that lead to error messages are discarded, not displayed in the info view.
If an error-free tactic changes but not solves the current goal, we display the resulting goal as well, paired with each of such suggestions.
If a tactic that closes the whole proof is suggested, the suggest_tactics [prefix] command itself has the type that closes the current goal. I.e. do not add a sorry afterward in the demos.

About premise selection
Now there is a structure defined to store information of each selected premise.

No problem!

From: Peiyang Song @.***>
Sent: Saturday, January 13, 2024 6:21:11 PM
To: lean-dojo/LeanCopilot
Cc: Yang, Kaiyu; Review requested
Subject: Re: [lean-dojo/LeanCopilot] Frontend migration (PR #48)
@Peiyang-Songhttps://github.com/Peiyang-Song requested your review on: #48https://github.com/lean-dojo/LeanCopilot/pull/48 Frontend migration.
—
Reply to this email directly, view it on GitHubhttps://github.com/lean-dojo/LeanCopilot/pull/48#event-11479529896, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABJOE2MXJY7HAJBVGUZJS33YOMXIPAVCNFSM6AAAAABBZWWVN6VHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJRGQ3TSNJSHE4DSNQ.
You are receiving this because your review was requested.Message ID: @.***>


Proper handling of media without markers

Media.markers() currently assumes there will be a parameters/toc/keyframes list in _data. This entry will not exist in certain cases, e.g. when the media has no markers. We need to account for this.
Of course, there should be a test for this as well.

Fixed in 7ef321145a62993cada00432ac203f8196c50da0


Create Middleware Scaffold

Is there an existing proposal similar to this?

[X] I have searched the existing proposals

What are you proposing?
To create middleware scaffold
expressots g m <<middleware-name>>

Custom Middleware
class CustomMiddleware extends ExpressoMiddleware {
    private isOn: boolean;

    constructor(isOn: boolean) {
        super();
        this.isOn = isOn;
    }

    use(req: Request, res: Response, next: NextFunction): void | Promise<void> {
        // Do something
        if (this.isOn) {
            next();
        } else {
            res.status(403).send("Forbidden");
        }
    }
}

Is there any specific group of users that will benefit from this?
All framework users
What problems are you trying to solve?
Scaffolding another resource of the framework, custom ExpressoMiddleware
Do you have any references or examples that can illustrate your idea?
class CustomMiddleware extends ExpressoMiddleware {
    private isOn: boolean;

    constructor(isOn: boolean) {
        super();
        this.isOn = isOn;
    }

    use(req: Request, res: Response, next: NextFunction): void | Promise<void> {
        // Do something
        if (this.isOn) {
            next();
        } else {
            res.status(403).send("Forbidden");
        }
    }
}

Generate the new CLI Command:
expressots g m <<middleware-path>>/<<middleware-name>>
To scaffold the code below:
import { ExpressoMiddleware } from "@expressots/core";
import { NextFunction, Request, Response } from "express";
import { provide } from "inversify-binding-decorators";

@provide(AuthMiddleware)
export class AuthMiddleware extends ExpressoMiddleware {
    use(req: Request, res: Response, next: NextFunction): void | Promise<void> {
        throw new Error("Method not implemented.");
    }
}

Folder structure:
Every middleware needs to be created inside of the provider/middleware folder
Case 1: [provider]/[middleware]/<>  :: File -> your-middleware-name.<>.ts
Case 2: [provider]/[middleware]/<>/ :: File -> file is the name of the folder
What type of idea is this?
Improvement of existing idea: Similar idea exists but this is an improvement

Closed #33


Search results presentation need to be more accessible to screen readers

From a user report:
There is a problem with the results displayed from a search using this
page.
When tabbing through search results this screen reader user hears only
machine relevant link URI data, even though end user titling text is
visually presented for each link.
Since the text not being voiced is already on screen, this would be an
appropriate place to use the HTML 5 Title Attribute to programatically
associate the on screen titling text with the link URI.
Better still, use standard link strategies to hide the machine
data--users don't need that!

(I would recommend an accessibility audit in general, and can refer the team to an expert consultant.)


Consider upgrading ibc-go

Context
This repo uses ibc-go v6.2.1
https://github.com/celestiaorg/celestia-app/blob/735f2b9c114878fc9b14b223e214e81dbeb274a8/go.mod#L17
Problem
ibc-go v6.2.x is past end of life. See here
Proposal
Investigate the migration path between ibc-go v6.2.1 to something more recent. See: https://github.com/cosmos/ibc-go/blob/main/docs/docs/05-migrations/08-v6-to-v7.md
Note: ibc-go minor versions constitute state machine breaking changes so we may not be able to upgrade until the next hard-fork.

note from sync: we need to see if we can import different versions of the same module

ibc-go v6.2.1 supports ICA and PFM but it support  Relayer Incentivization Middleware. We must upgrade to ibc-go > v7.0.0 to enable Relayer Incentivization Middleware (see version compatability).

Updating ibc-go implies updating Cosmos SDK. See ibc-go RELEASES.

IBC-Go
Cosmos SDK
Comet BFT

v7
v0.47
v0.37

v8
v0.50
v0.38

The ibc-go team confirmed that we do in fact need to bump cosmos-sdk but it's not clear to me why that bump is necessary. Regardless, we're not planning on bumping the cosmos-sdk version prior to v2 so punting this until after.

Worth considering this for v3.


Failing Private Test Case for Level 3 (BookingStub?)

Summary
hello! did anyone face this problem, and if so how did yall solve it!
(do we need to create a BookingStub class or a sort method?)
thank you :)

Hi, did not experience this but saw a previous thread on this. You might some useful information there:
https://github.com/nus-cs2030/2122-s2/issues/33#issue-1143041835
Cheers

Hi, did not experience this but saw a previous thread on this. Hope you can find some useful information there: #33 (comment)
Cheers

omg tysm!!!!


lemonbar-xft-unstable: 2015-07-23 -> 2016-02-17

Motivation for this change
Updating to have recent changes and bugfixes. Additionally, renamed to conform to guidelines.
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 compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Changed name from bar-xft-git to conform to guidelines.

thanks!


Image Update support for "Plugin" ArgoCD Applications.

Is your feature request related to a problem? Please describe.
ArgoCD supports a concept of Plugins, such as the kustomize/helm integration, and also used for extending ArgoCD for other use cases.
It appears that the argocd-image-updater only functions with the app.Status.SourceType is set to Kustomize or Helm (via auto-detect), and not when it is set to Plugin.
Describe the solution you'd like
When the type Plugin is used, we could still implement Helm or Kustomize like-behavior for git-based workflows, whereas the image override file can be written back to git as if it were one of these two types.
Describe alternatives you've considered
Mainly it would be dropping the use of the plugin, but it has proven to be handy at times for pre-Sync instrumentation of service discovery.
Additional context
Relevant segment using the kustomized helm example:
resources:
  - health:
      status: Healthy
    kind: Service
    name: kustomize-release-name-helm-guestbook
    namespace: default
    status: Synced
    version: v1
  - group: apps
    health:
      status: Healthy
    kind: Deployment
    name: kustomize-release-name-helm-guestbook
    namespace: default
    status: Synced
    version: v1
  sourceType: Plugin
  summary:
    images:
    - gcr.io/heptio-images/ks-guestbook-demo:0.2

I'm not 100% sure if this is an ArgoCD thing, argocd-image-updater, or sort of both for a feature such as this.  I understand there's a lot of "if" there especially if it couldn't reconcile using the imperative updated to the Application resource itself.

This is an interesting proposal. Config management plugins in Argo CD don't have a concept of parameters (yet), but do support setting environment variables. I think to implement support for plugins, this would involve a coordinated change at Argo CD and the Image Updater:

Adapt Argo CD's parameter override from Git to also support setting plugin environment
Adapt Argo CD Image Updater to support applications of type plugin, and have user specify which environment variables to set similar to how we allow to specify the helm parameter names to set

Additional to that, the plugin would have to make sure that the image gets set correctly when rendering the manifests, e.g. given image name and tag specified in SOME_IMAGE_NAME' and SOME_IMAGE_TAG` (very simplified depiction):
if test "${SOME_IMAGE_NAME}" != "" -a "${SOME_IMAGE_TAG}" != ""; then
   kustomize edit set image ${SOME_IMAGE_NAME}=${SOME_IMAGE_NAME}:${SOME_IMAGE_TAG}
fi

I'm having the same issue when i use argocd-vault-plugin
is there a workaround for now @jannfis ?

@jannfis looks like the force-update doesn't work for plugin type too.

This is because plugins are not supported. From the first paragraph of the README:

Currently it will only work with applications that are built using Kustomize or Helm tooling. Applications built from plain YAML or custom tools are not supported yet (and maybe never will).

Thanks @jannfis. I'm curious what's blocking it?

I'm curious what's blocking it?

https://github.com/argoproj-labs/argocd-image-updater/issues/168#issuecomment-803644040

I find a workaround so that i can use vault for secret management with image updater
there's ibm/argocd-vault-plugin but it's a plugin so image updater is out of the question for now.
So the workaround is to use a custom repo server image with all the tools you needed install. in my case, i'm using helm-secrets plugin.
and then you will create your app as a Helm app. but the trick is to use a helm wrapper so that argocd repo server still think that it's using helm but in fact, it's using other tool for manifest generation (in my case, helm-secrets).
the output has to be yaml compatible so anything custom you do in the helm wrapper has to be clean up or just pipe to > /dev/null 2>&1
@jannfis would you like to document this in the docs as a workaround?

Waiting for that a lot. Our use case is acdk8s application integrated as a plugin with ArgoCD. As a workaround we have to use keel.sh

Any new on that ?

Also interested if there are any developments on this part here.
Would be nice to combine this tool with lets say argocd-vault-plugin.

There's a slight workaround/hack here for some of us perhaps (works for my use-case anyway).
I use a custom plugin which is essentially kustomize+envsubst (since kustomize doesn't really support vars from the env).
In the current releases there's no way to get the image-updater to allow my applications into the allowed list of apps to consider...but on master there is this ( https://github.com/argoproj-labs/argocd-image-updater/blob/master/pkg/argocd/argocd.go#L520
)
So essentially I can have a custom plugin and set the following annotations:
argocd-image-updater.argoproj.io/write-back-target: kustomization
argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/argocd-git-repo-image-updater

For completeness, my app looks like:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
  annotations:
    argocd-image-updater.argoproj.io/image-list: app=my-app
    argocd-image-updater.argoproj.io/app.update-strategy: semver
    argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/argocd-git-repo-image-updater
    argocd-image-updater.argoproj.io/write-back-target: kustomization
spec:
  destination:
    namespace: sandbox
    server: https://kubernetes.default.svc
  project: sre
  source:
    path: rendered/my-app
    plugin:
      env:
      - name: CLUSTER_ENV
        value: ${CLUSTER_ENV}
      - name: CLUSTER_NAME
        value: ${CLUSTER_NAME}
      - name: CLUSTER_REGION
        value: ${CLUSTER_REGION}
      name: kustomize-genvsub
    repoURL: git@gitlab.com:example-path/my-app.git

I suspect this is only good for anyone doing custom plugins with kustomize...
Note, our actual workflow actually focuses on tanka, but that can simply be wrapped by kustomize (kustomize edit add resource./rendered/*.yaml). I guess this could be done as part of the plugin for those that are intersted, but in our case, we store rendered manifests in Git, so the plugin is essentially a kustomize build with output piped through envsubst.
I'm reluctant to use this in prod mind, since it's not official support for Plugin types ...but it does work for us :)

There's a slight workaround here for some of us perhaps (works for my use-case anyway - combined kustomize+tanka+envsubst).
I use a custom plugin which is essentially kustomize+envsubst (since kustomize doesn't really support vars from the env).
In the current image-updater releases there's no way to allow my applications into the allowed list of apps to consider...but on master there is this ( https://github.com/argoproj-labs/argocd-image-updater/blob/master/pkg/argocd/argocd.go#L522 ) (#309 )
So essentially I can have a custom plugin and set the following annotations:
argocd-image-updater.argoproj.io/write-back-target: kustomization
argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/argocd-git-repo-image-updater

For completeness, my app looks like:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
  annotations:
    argocd-image-updater.argoproj.io/image-list: app=my-app
    argocd-image-updater.argoproj.io/app.update-strategy: semver
    argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/argocd-git-repo-image-updater
    argocd-image-updater.argoproj.io/write-back-target: kustomization
spec:
  destination:
    namespace: sandbox
    server: https://kubernetes.default.svc
  project: sre
  source:
    path: rendered/my-app
    plugin:
      env:
      - name: CLUSTER_ENV
        value: ${CLUSTER_ENV}
      - name: CLUSTER_NAME
        value: ${CLUSTER_NAME}
      - name: CLUSTER_REGION
        value: ${CLUSTER_REGION}
      name: kustomize-genvsub
    repoURL: git@gitlab.com:example-path/my-app.git

I suspect this is only good for anyone doing custom plugins with kustomize...
Note, our actual workflow actually focuses on tanka, but that can simply be wrapped by kustomize after running a tk export (kustomize edit add resource ./rendered/*.yaml). I guess this could be done as part of the plugin for those that are interested, but in our case, we store rendered manifests in Git, so the plugin is essentially a kustomize build with output piped through envsubst.
I'm unsure whether this is seen as a hack or not (given that the actual source-type is Plugin...and this forces it to Kustomize)

Our flow is actually extremely similar, except that we do the env var templating just before the tanka export step. We wrote a go binary that goes through the libsonnet files treating them as go templates, before then invoking tk export.
This means that the rendered yamls that are wrapped by kustomize are completely vanilla, and don't require any argocd plugins etc.

How do you get it to write back? For me, it still says that It's skipping even though I have write-back set to git. If it wrote back, I could make my plugin use the file.
I see this in the logs:
time="2022-11-10T18:07:50Z" level=warning msg="skipping app 'opa-bundles' of type 'Plugin' because it's not of supported source type" application=opa-bundles

And this is my config:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: opa-bundles
  namespace: argocd
  annotations:
    argocd-image-updater.argoproj.io/image-list: app=imageimage:latest
    argocd-image-updater.argoproj.io/app.update-strategy: digest
    argocd-image-updater.argoproj.io/write-back-method: git
...

Same problem for, would luv to use argocd-image-updater with plugins !

Had same challenge with cdk8s and found a workaround until argocd image updater can support it properly.
Setting write-back to kustomization as others have suggested works as long as there is a kustomization.yaml file, so I added the annotations and an "empty" kustomization file
argocd-image-updater.argoproj.io/image-list: image=myimage
argocd-image-updater.argoproj.io/write-back-method: git
argocd-image-updater.argoproj.io/write-back-target: kustomization

kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: myimage
  newTag: master-1234567

This file is not used by argocd since it has plugin defined and its getting the manifests from that. However, in cdk8s I then just read the kustomization.yaml file and replace all image tag versions from kustomization.yaml file. Then the generated manifests from cdk8s contains the image tag from kustomization.yaml file.

I created a thing that works as standalone. It can commit/pr to your repo as webhook endpoint. https://github.com/bluebrown/kobold.

I have also been using this which also now supports updating argo helm chart. note you need to use valuesObject for that. but works great lots of flexibility

Is there any update on this? We are also interested in a workaround how to use it with argocd-vault-plugin


"video_player: ^ 0.10.12 + 5 " unable to play video in  IOS and android app

Embed the flutter as a module in IOS and android app, and use "video_player: ^ 0.10.12 + 5 " play the video, unable to play, the video area is blank;
on IOS console: No error logs appear;
on android console:
Unhandled Exception: type 'PlatformException' is not a subtype of type 'String'
#0      _reportError (package:flutter_module/main.dart:37:26)
#1      main. (package:flutter_module/main.dart:32:11)
#2      _rootRunBinary (dart:async/zone.dart:1222:13)
#3      _CustomZone.runBinary (dart:async/zone.dart:1107:19)
#4      runZonedGuarded. (dart:async/zone.dart:1601:18)
#5      _CustomZone.handleUncaughtError (dart:async/zone.dart:1076:19)
#6      Future._propagateToListeners (dart:async/future_impl.dart:610:16)
#7      Future._completeError (dart:async/future_impl.dart:537:5)
#8      _AsyncAwaitCompleter.completeError (dart:async-patch/async_patch.dart:47:15)
#9      VideoPlayerController.initialize (package:video_player/video_player.dart)
but in pure flutter app, it can play normally on IOS and Android
my development environment :
flutter SDK: 1.22.2

Have you tried to upgrade your package to latest one? video_player  and rebuild the project? Also try to use try and catch block to handle any exception

Have you tried to upgrade your package to latest one? video_player  and rebuild the project? Also try to use try and catch block to handle any exception

I have updated to the latest version(video_player: ^0.11.1+2),  The problem remains;
Added try and catch. No errors were caught
try{             _controllerVideo = VideoPlayerController.network(arr[index])               ..initialize();             child = VideoPlayer(_controllerVideo);           }catch(e){             print('*****************视频初始化错误 $e');           }

Have you tried to upgrade your package to latest one? video_player  and rebuild the project? Also try to use try and catch block to handle any exception

I have updated to the latest version(video_player: ^0.11.1+2), The problem remains;
Added try and catch. No errors were caught:
try{ _controllerVideo = VideoPlayerController.network(arr[index]) ..initialize(); child = VideoPlayer(_controllerVideo); }catch(e){ print('*****************视频初始化错误 $e'); }

Can you try add this code on PlatformException catch(e) { //print error} in between of try and catch blocks. Let see if the error still can be catch 😀

I think the problem has to do with Android API Level. Are you using AVD?

Hi @ZHANGBADAO
Can you please provide your flutter doctor -v your flutter run --verbose and a complete reproducible minimal code sample
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Information Tab GUI can still be seen even if a table is deleted

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Delete an existing table, it will be better if it's the only table in the CRUD tab
Information tab has still values in it even though the table has already been deleted

Expected behavior
Information Tab should be deleted
Screenshots

Low Priority, Close for now


exp and log functions

Describe the bug

[ ] log will throw error on H with Re(H)==0.
[ ] exp and log operations are not commutative anymore? H == exp(log(H)) != log(exp(H)).

Expected behavior

error raise
commutativity <?>

Asked for specification:
https://math.stackexchange.com/questions/3921370/exp-and-ln-functions-for-cayley-dickson-algebras


[WebSub] Add/Improve Tests

Description:
Unit tests need to be added to cover scenarios/aspects such as

service definition
service configuration
annotations
dispatching

Integration tests need to be improved to cover

discovery with redirection
subscription with redirection
subscription with additional parameters - additional params need to be ignored as per the recommendation

Fixed by https://github.com/ballerina-platform/ballerina-lang/pull/10100. hence closing the issue


Nuking the buffer after a match is not correct IMHO

In ExpectSwitchCase() we do:
			// Clear the buffer directly after match.
			o := tbuf.String()
                        tbuf.Reset()

This means that back to back Expect will not work if the matching string for the second Expect call is already in buffer.
For example the following code will fail:
exp.Expect(regexp.MustComplie("StringA"))
exp.Expect(regexp.MustCopmile("StrinbB"))

If our buffer is already "StringA...StringB" by the time we call exp.Expect(regexp.MustComplie("StringA")).
Real world use case is doing multiple Expect to much long strings during bootup, will work when run against real situation, but will fail during UT.
Instead of nuking the whole buffer, we should only be deleting up to the point of the last match. That's how the rest of "expect" libraries work if I am not mistaken.

I wanted to attempt this one.

Hey Andrew.
Great, appreciated! .. Happy to help out with any questions you might have.

Hi @skalle,
Didn't realize you offered to help until now. I had a busy week.
I stumbled on this issue rather randomly through search - I am neither an experienced go programmer, nor I am a goexpect user. I am hoping to learn more about go through this exercise, which I do.
To my surprise, setting up a repro for this problem seems harder than I wished. I have a feeling that is mostly due to my ignorance. First, I stumbled on #13, which cost me a while to figure out I have to work on Linux. Then I stumbled on #28507 because sudo apt-get install golang give me an old version of golang on Ubuntu. Last but not least, I hit a deadlock in go run process.go 1 in our example. No idea what's wrong with 1, but go run process.go 10 work just fine.
None of the issue above is really goexpect's fault, but it would be really great if people like me don't have to go through that. Maybe we can enhance our README?
Now I think it is time for me to construct an actual repro and start working on it.

Yeah wish I had some cycles to fix #13,  already have BSD fixed which I imagine will be quite similar to Mac.
I'm a 100% Linux user myself so might not be of much help setting things up in those environments.
About running the process.
What's done in that little example is it's really calling the linux calculator command bc -l
When it bc it calculates PI to whatever number of decimals you specify as an argument.
Let's have a look at what happens when you run it with 1 as an argument.
$ bc -l
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=1
4*a(1)
2.8
So when using a scale of one there it doesn't' look like PI anymore , looking at the  code it tries to match the result with.
var piRE = regexp.MustCompile(3.14[0-9]*)
So 2.8 will not match that RE and the program will hang until it hits the Expect timeout.
In fact even setting scale to 2 will fail.
scale=2
4*a(1)
3.12
At three we're good again though.
scale=3
4*a(1)
3.140
This is just a small example program so not a big deal but I'd be happy to take a pull request for limiting the arg to >2 ..
As for the README and how to set up an env from scratch, I'll happily accept pull requests. :)

Just an update - I am able to reproduce the issue now.

Shall we close this issue now?

Fixed by Andrew!. Thx.


pytorch

It is an honor to know about this model, which has achieved great results. I would like to inquire if you are planning to release a version of Pytorch, and if so, when will it be released.

Hello and thank you. We are not currently planning to implement this model in Python.