ASH record equality

Rather than ASH believing that every record value is equal to any other record value, provide "shallow" equality testing:

Must be the same record type
All non-composite fields must be identical
Field which are, themselves, records must have record-equality
Aggregate fields must have the same size.
We do not do a "deep" comparison of aggregate values.
If you use the "≈" operator - "approximately equals" or "case insensitive" - string field values are compared thusly.

My test script - and expected output - includes the '≈' operator, which is "approximately equal" or "ignore case".
That's a perfectly good UTF-8 character, but, not for Windows, it seems.

I suspect the "proper" way to deal with "Windows is using the wrong file encoding for loaded text files" is to set

in the test stanza in build.gradle.

Yes. What I really want is equality. Value implements Comparable, but for composites, that is difficult and, in general, not useful. I can envision certain records where a total ordering makes sense. Our "sort" operation, for reordering arrays based on the the values of (fields of) the keys, lets the user specify something to that effect. ASH allows you to define string to_string(RECORD) and string to_string(TYPEDEF) - and those are found and applied, as appropriate, when coercing values to strings. But there is no user-overridable way to specify ordering.
I'm going to do the following:

Operator.compareValues calls compareTo or compareToIgnoreCase. For ==, !=, or ≈, call equals or equalsIgnoreCase.
For other comparison operators, call compareTo or compareToIgnoreCase.
AggregateValue overrides the equality methods for shallow equality.
RecordValue overrides the equality operators and checks that for each field, as defined by its type.
The Parser allows equality comparisons for all types, but other comparisons only for simple types.

End result is that Value implements Comparable, but non-primitive data types (which don't override generic Value's compareTo) will get whatever that method provides - but there will be no ASH syntax that will actually invoke it for such values.

Regarding the "≈" operator, I sort of regret implementing it. As applied only to strings, it could have been a function - but since ASH lets you use "==" for strings, rather than requiring .equals() it seemed distasteful. Also, I thought that we could come up with a definition for floats - except the user would want control over the epsilon, we assume, so, perhaps not.
It has the disadvantage that it is not easy to type. Especially, perhaps, in Windows, as the test failure might indicate.
Almost APL-ish. :)

I'm going to do the following:
1. Operator.compareValues calls compareTo or compareToIgnoreCase. For ==, !=, or ≈, call equals or equalsIgnoreCase.
   For other comparison operators, call compareTo or compareToIgnoreCase.

2. AggregateValue overrides the equality methods for shallow equality.

3. RecordValue overrides the equality operators and checks that for each field, as defined by its type.

4. The Parser allows equality comparisons for all types, but other comparisons only for simple types.

End result is that Value implements Comparable, but non-primitive data types (which don't override generic Value's compareTo) will get whatever that method provides - but there will be no ASH syntax that will actually invoke it for such values.

This is reasonable. Do note, though: you're potentially running into a situation where .compareTo() will no longer be consistent with .equals().

I am making CompositeValue (an abstract class) require subclasses to implement boolean equals(Object o, boolean ignoreCase). Given that, CompositeValue.compareTo(Value o, boolean ignoreCase) will check for equality (and return 0) first and then defer to the superclass if it is not equal - which will give something which is not useful, but which will be consistent.

Next up is to the Parser work I mentioned and also try out the build.gradle tweak to see if I can re-enable my original test.

which will give something which is not useful, but which will be consistent.

When I say inconsistent, I mean that there are cases where x.compareTo(y) == 0 does not yield true in exactly the same situations as x.equals(y).
It seems to me that Value.compareTo() will fall back to comparing contentLong in this case, which will ~always be equal for aggregates. The main consequence that you've noted is that arbitrary records are considered equal to each other.
A simple option that is nearly consistent is to use System.identityHashCode(x) - System.identityHashCode(y) which is similarly useless and is only inconsistent when we have a hash collision.

I now understand how this could show up in (what should be) invalid code.
RECORD == INT will go to RecordValue's equals method, but the reverse goes to Value's.
For '<', it goes to CompositeValue's compareTo, but the reverse goes to Value's.
If I make the Parser allow equality operators iff both lhs and rhs are CompositeValues, the "reverse" cases will be compile errors.
And if I make the Parser allow only equality comparisons, then the compareTo cases will be moot.
That said, perhaps Value.compareTo could throw a ClassCast error if rhs is a CompositeValue - and CompositeValue.compareTo could do the same if rhs is NOT such.
I think the Parser changes could go in a followup PR since, as you say, this one does what I want if you use == on two record values.

Right. This is no worse for the status quo, other than the bit where it will cause surprising results for things like sort that assume compareTo() generates a total ordering.


After the update Towny Gringotts lags on the server.

Hi. After in the spring of 2020 you released an updated version of the plugin (Gringotts 2.11.2-SNAPSHOT-rf77e523), there were no problems, everything worked fine on 1.15.2 and 1.16.5 with all versions of Towny until recently.
But recently I have updated Towny from version <IP_ADDRESS> to the latest currently <IP_ADDRESS>. And after that, Gringotts began to load the server heavily. The other day you updated Gringotts to 2.12.1, I installed it in the hope that it would help fix the situation, but no.
Why can this be so? It all started after updating Towny from version <IP_ADDRESS> to <IP_ADDRESS>, before that there were no problems.

Hello @Darutan92 , that is really interesting.
I go through the change-list from version <IP_ADDRESS> to <IP_ADDRESS> of Towny  and I couldn't find something that could cause slowdowns on Gringotts. It's actually Gringotts slowing down Towny rather than Towny slowing down Gringotts.
Of my understanding it has to do with the database. Is taking more that x time to extract data from the database. What kind of database are you using? Are you using a "portable" database like sqlite, h2 or a server like database, for example mysql or mariadb?
F.Y.I. @LlmDl

It might be that you're making an OfflinePlayer out of the town/nation name passed by Towny through Vault?
As an aside I'm currently trying to get a PR accepted by Vault which would get OfflinePlayers out of the Economy entirely, in favour of UUIDs. This sort of thing might interest you: https://github.com/MilkBowl/VaultAPI/pull/112

I think I figure out the issue :) Working on it.

Hello @Darutan92
Can you try the same with the following version of Gringotts?
https://github.com/nikosgram/Gringotts/releases/download/2.12.2-SNAPSHOT/gringotts-2.12.2-SNAPSHOT.jar
In theory, the problem should be fixed, but, I'll keep the ticket opened until to verify that the problem got fixed :)
Thanks.

Hello @Darutan92
Can you try the same with the following version of Gringotts?
https://github.com/nikosgram/Gringotts/releases/download/2.12.2-SNAPSHOT/gringotts-2.12.2-SNAPSHOT.jar
In theory, the problem should be fixed, but, I'll keep the ticket opened until to verify that the problem got fixed :)
P.S. this is a pre-release version. Please backup your server before using it.
Thanks.

I'll just tell you what I did yesterday. I installed the latest preliminary version of Towney <IP_ADDRESS> and Java 17 - after that the error in the console, which is in the second screenshot, passed. But the increased load on the server remained.
Now I will install your version of Gringotts, I will be able to report the effect only after about 24 hours, now there is little online on the server and there was a restart - and the lags are going upward over time. Therefore, it takes time to understand whether it helped. I will definitely write later!

Unfortunately, we did not notice much of a difference.

Although the above is red, it did do 1210 of them in just 7.335 seconds. What was your timings duration for that screenshot?

Although the above is red, it did do 1210 of them in just 7.335 seconds. What was your timings duration for that screenshot?

These are 1 hour timings.

Hmm, that might be the bstats telemetry gathering. I'll provide you with an option to disable it until I found a way to make it faster. :) Working on it

@Darutan92 can you try this version?
https://github.com/nikosgram/Gringotts/releases/download/2.12.2-SNAPSHOT-R0.2/gringotts-2.12.2-SNAPSHOT-R0.2.jar
By default, gathering total server balance and vaults for bstats will be disabled. Though, dependencies and denominations are still being part of the telemetry report, as the process of gathering that kind of data is not a heavy one :)
Please let me know if you still having the same issue. :) Thanks.

Sorry for the delay, couldn't reply earlier.
After your first snapshot, the server's mspt got better. But, as I said, the red ticks remained.
The second snapshot did not really change the situation, the ticks became smaller, but there is still a delay.
My programmer suggested that it would be a good idea to handle balances asynchronously.

Damn, accidentally pressed ...

Hello :)
It took me forever to reply, though, that was because I had almost no free time the last few months.
I implemented some changes that should help with the lag spikes.
gringotts-2.12.3.jar.zip
Is it possible to give it a try with the attached version of gringotts?

Hello. It is OK, it happens. I hope you are fine. Unfortunately, I don't have the opportunity to test the plugin right now, as my server is being reworked and frozen until the new summer season.

This issue is why I didn't go with Gringotts this last time. I would love to get rid of a virtual economy, but it's so slow with Towny. I would be happy to help test things out if there's any test server set up. I might even set one up if necessary, and whitelist those who want to join it. A good testbed is necessary for better bug reports.

@roracle my server decided to use Gringotts with Towny some times ago and we faced the same issues. However I did two PRs (#114 & #124) which greatly reduced the lag making it imperceptible, recently we hit around 35 active towns and the lag started coming back again (it is still far less than at the beginning though).
If you don't haver more than that amount of towns you shouldn't experience lag.
I will try to further improve the performances in the coming days, also take in mind that the lag caused by Gringotts is now mainly storage bound so it will depend n the quality of your hard drive/ssd/nvme.

@roracle my server decided to use Gringotts with Towny some time ago and we faced the same issues. However I did two PRs (#114 & #124) which greatly reduced the lag making it imperceptible, recently we hit around 35 active towns and the lag started coming back again (it is still far less than at the beginning though). If you don't have more than that amount of towns you shouldn't experience lag. I will try to further improve the performances in the coming days, also take into consideration that the lag caused by Gringotts is now mainly storage bound so it will depend n the quality of your hard drive/ssd/nvme.

I think at this point I've landed on TNE as the economy system on my server since it can do virtual and physical together, making Towny easier to work with.


Typos: documentation.md needs some typos correcting

More "minor grammatical changes" than "typos", but these changes will still makes things clearer. The file is .github/ISSUE_TEMPLATE/buildbreak.md, and the requested changes are:

The "about" field seems clearer as: "Request for updates to the Temurin build documentation"
"documented" should have a comma after it.
"like to see in the documentation" should have a full colon after the last word, but before the asterisks. Or maybe a full stop. Up to you. :)

Hello @adamfarley , I want to fix it.

same as for this one, if you do not want to continue with this issue, I can unassign it from you @yukiyuli

I think that I have already submitted the pull request. Please review https://github.com/adoptium/temurin-build/pull/3125. If I need do anything else, feel free let me know.


Error - Task timed out after 10 seconds

Description
My site used to work just fine, but I recently added a bunch of pictures (a lot) and since then the auto-refresh doesn't work anymore.
On the Vercel Functions logs, I get
2022-04-23T09:14:28.394Z 5cc63739-5b89-4e3f-8ebb-6d467db86fa0 Task timed out after 10.03 seconds
I believe it's related to something to do with the images, but I'm not sure where the 10sec limit comes from. Is it Vercel? Can I increase it?

It seems to be coming from the lqip, which is related to generating previews.
Configuring a Redis cache might help, I also found a 10000 ms limit that might be related, not sure:
export const searchNotion = pMemoize(searchNotionImpl, {
  cacheKey: (args) => args[0]?.query,
  cache: new ExpiryMap(10000)
})

Ah, I guess increasing that limit will not work unless the Vercel plan is increased from Hobby to Pro.

https://vercel.com/docs/concepts/limits/overview#general-limits

Using Redis without changing the timeout did the job.

For anyone else who ends up here, you have a few options if you're running into Vercel timeouts:

add redis caching to drastically speed up subsequent page loads
disable isPreviewImageSupportEnabled
upgrade Vercel to a paid plan

Adding redis is probably the easiest (and cheapest) option.

@transitive-bullshit
If Vercel API has a rate limit exceeding 10 seconds, is it useful to configure Redis? Does Redis need to fetch API data before caching?


Migrating to v7 causes settings to be lost from previous panel config

An existing panel with this plugin in v6 looks like this:

with these settings:

after upgrading to v7, the same panel looks like this:

and these are the settings (no changes to the panel json we made)

hymmm -- not sure what is happening, if somethign changed (but it should not have!) we can munge things in:
https://github.com/grafana/clock-panel/pull/82/files#diff-28b01565cf8b54130a65fda8561a9392R4


typo fix in git add command

Fix typo that causes error adding files to commit in git

Hi @pellanda! At the moment we are not accepting contributions but I will fix asap! Thanks for reporting :)


[v40] Add settings for disabling BT and PS3 controllers

Add settings "ENABLE BLUETOOTH" and "ENABLE PS3 CONTROLLER SUPPORT" to "CONTROLLER & BLUETOOTH SETTINGS".
This requires https://github.com/batocera-linux/batocera.linux/pull/11003

Why would we need a specific case for PS3 controller support? (I mean compared to the dozens of other BT controllers supported)

@lbrpdx Unfortunately PS3 controller support also enables CVE-2023-45866 vulnerability (source: "Mitigation" section of https://ubuntu.com/security/CVE-2023-45866 ).
Currently the ClassicBondedOnly setting in /etc/bluetooth/input.conf is set according to the value of controllers.ps3.enabled by /etc/init.d/S32bluetooth. I.e. disabling the PS3 controller support actually fixes CVE-2023-45866 in Batocera (and enabling PS3 controller support enables the vulnerability).

Given the fact that the PS3 thing is mainly related to some kind of vulnerablity,
I'm not convinced it's a good thing to add this to the main controller menu. User's won't really know why it's there.
You should probably move this option to the developer submenu.

@fabricecaruso The ENABLE PS3 CONTROLLER SUPPORT setting has description "Might have negative impact on security.", it is in controller settings with the idea that users who don't have PS3 controllers, care about security and have opened CONTROLLER & BLUETOOTH SETTINGS will likely disable it.
I would like to leave the setting in CONTROLLER & BLUETOOTH SETTINGS unless moving is absolutely necessary.

I would agree if this was for another reason than security, but it's not.
There is no point in polluting the controllers menu when it's all related to a security thing with BlueZ and some HID devices.
We already have users claiming we already have too many options...
We should keep the common menus as simple as possible.
In conclusion, the best place for the "ENABLE PS3 CONTROLLER SUPPORT" option is in the developer options, not in the controller menu. See the "ENABLE HID JOYSTICK DRIVERS" for Windows that is in the developer menu. It's comparable.
So I insist with the fact that it should be moved to developer options.
@lbrpdx Agree ?

First of all, if it’s a BlueZ vulnerability, this should be addressed by a bluez update at the OS level.
If users are concerned about security, I believe they are technical enough to edit batocera.conf without an entry in the ES menus. I also agree that we need to keep the menus as simple as possible, they’re already reported as convoluted sometimes.
IMO we should add the BT enable/disable menu but not the PS3 option.

@lbrpdx BlueZ has already been updated. Even with the BlueZ update setting ClassicBondedOnly=false will enable the CVE-2023-45866 vulnerability.

I personnally have no objection to adding a menu entry for this security thing, as long as it is in the developer options.

@fabricecaruso Should I then move ENABLE PS3 CONTROLLER SUPPORT to SYSTEM SETTINGS - FRONTEND DEVELOPER OPTIONS immediately below GUN MOVE TOLERANCE?

I think it's a good place, yes

@fabricecaruso Moved the setting and rebased.


Add more artifact graphql handlers to artifact_emu in mock_server

Mainly to support public api testing.
Like query all RunArtifacts, etc

going to drop this in favor of mitm / relay server mode


Add nv-ide & nvcode configuration suites

I'm not using these myself, but they do seem to have a decent community.
I haven't editorialized the descriptions at all, simply copying them from their respective projects.

Thank you @nogweii !


Starter site integration

Analog to https://github.com/Islandora-Devops/islandora-playbook/pull/226, in the context of isle-dc...
Pretty much copypasta from "local"...

@DonRichards: No, none that I'm aware of, though I have been away from things for over a week, due to Hurricane Fiona. Which specific PRs do you think there might be, upon which this would be dependent?

I don't have any specific. Just was curious if there was any need for other PRs to go in first.


#if _MSC_VER

Clang-CL also defines _MSC_VER - so consider using something like if ( defined(_MSC_VER) && !defined(clang) ) for stuff really msvc specific (what BOOST_MSVC is for).
ps. saw this when reviewing the KWK_CONST change - so two 'btw' points here:

member (non static) functions can at most be pure (because of the this pointer)
MSVC has something very similar __declspec( noalias )

Oh true, I forgot about that. we may need to setup a clang-cl CI bot too.

https://github.com/jfalcou/kiwaku/issues/87 fixes this for the code i've seen

Fixed in b1c24398e7755649a314283c29b7e7dbe9ff799e


home-manager:2017-12-7 ->  2018-06-14

Motivation for this change
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

Looks good :+1:


Redesign FileAPI to use original file name

Body
As of now, every file uploaded to StreamPipes receives a unique identifier.
While this is conveniant to handle multiple files with the same name, it has some drawbacks for document retrieval. One is, that it is not possible to query a file by its original name safely.
Furthermore, it might get confusing for users if there are, e.g., five files displayed with the same name.
Therefore, we should aim to use the file name as identifier.
But we need to consider here how we can allow the user to upload a file whose file name is already in use, e.g, by opening a dialog that allows to enter a new file name or proposes an adapted file name.
StreamPipes Committer
I acknowledge that I am a maintainer/committer of the Apache StreamPipes project.

Hey @bossenti, I think this is definitely a great improvement for users. It's really annoying to see lots of files with the same name. I think in addition to opening a dialog for users to enter a new name, from a usability and convenience standpoint, we should also allow users to delete the already existing files with the same name (though we need to investigate the effect of this for adapters using the file) via one click. Often times I just want to change one line of data in the file but not rename it. Do you see any implications of deleting the original file?

Hey @muyangye,
thank you very much for bringing your ideas in here!
I really like the idea of providing the option to delete the existing file.
As you already said, we would need to check carefully if this file is used anywhere.
In addition, access to files is exposed via the API so someone might rely on this file which we can't detect. But for this case, I would consider a friendly reminder in the UI as sufficient.
If we want to add the deletion feature (and I don't see a real show-stopper here), I'd propose doing it as a second step. This way the changes are smaller and more comprehensible.
In case you are interested in contributing here, this would be awesome 🤩

Hey @muyangye,
thank you very much for bringing your ideas in here!
I really like the idea of providing the option to delete the existing file. As you already said, we would need to check carefully if this file is used anywhere. In addition, access to files is exposed via the API so someone might rely on this file which we can't detect. But for this case, I would consider a friendly reminder in the UI as sufficient.
If we want to add the deletion feature (and I don't see a real show-stopper here), I'd propose doing it as a second step. This way the changes are smaller and more comprehensible.
In case you are interested in contributing here, this would be awesome 🤩

Nice idea! I also agree that we should implement step by step. And yes I am willing to contribute. But I may or may not be available until December. If time isn't too much of an issue, let me take care of it!

No we are Not in a hurry here
Nice, feel free to take it up whenever you have time for it 🙂

Hi @bossenti @tenthe, just to let you know I am actively working on this issue. I have one question on backward compatibility though:
Currently the FileMetadata class has an internal file name and an original file name and I plan to just merge them into one file name. However, this may cause negative effects on current processes because of backward compatibility. For example, the delete functionality relies on the internal file name. After letting this delete function use the merged single file name, users will not be able to delete the old already existing files because they are not found since they use internal file names.
I propose 2 solutions:

Keep the internal file name, also let fetching/deleting files/other processes keep relying on internal file name, change is only when storing new files, just set internal file name to be the same as uploaded file name instead of random UUID. This approach solves the issue of backward compatibility and later uploads will follow the expected behavior outlined in this issue. But this causes the storage to have some (already existing) files' internal file name set to random UUID and some (after this change) files' internal file name set to uploaded file name. Also, for those existing files, users will lose original file names and see a bunch of random UUIDs in the front end which is confusing.
Make an announcement to users to let them delete existing files before a release. This is better technically but is going to cause troubles to users.

Let me know which one do you prefer and I am definitely willing to discuss other solutions too!

@muyangye Thanks a lot for the detailed proposal 🙏

@tenthe @bossenti Ah yes a migration is definitely the solution here! After the migration we can simply use the merged file name as Tim said. I will split my PR into 2 PRs, 1 that contains the migration+modify necessary classes and 1 that contains the upload conflict frontend and additional REST APIs (which I have already done but I will submit it after the first PR).
There is only one last question remaining: during the migration there may be multiple files with the same original file name, but we can only have one such file. Do you have any thoughts how to deal with those files? I was thinking of renaming but I am afraid this will break other processes using the file such as an adapter.

That's a good point. I'm not sure what the best option is here that won't break anything.
Maybe we can change the names as long as we keep the internal file ID, but we should check this first.
To do this, I would suggest creating a short list using this endpoint to see how we can deal with the problem of identical names. How do we solve this problem in the current implementation?
(The FileManager is used in the REST endpoint in PipelineElementFile)

That's a good point. I'm not sure what the best option is here that won't break anything. Maybe we can change the names as long as we keep the internal file ID, but we should check this first.
To do this, I would suggest creating a short list using this endpoint to see how we can deal with the problem of identical names. How do we solve this problem in the current implementation?
(The FileManager is used in the REST endpoint in PipelineElementFile)

Thanks for the reply! It sounds like we have a little bit different definition of migration here. Before this quoted reply, I thought by migration you mean in FileMetadata class, remove attributes internalFilename and originalFilename, then add a new attribute filename which represents the merged filename. However, after this reply, if I understand correctly, I think you might want to keep internalFilename and originalFilename. Then to avoid users to see/upload files of duplicate originalFilename,

Modify REST endpoints and ui to disallow the upload of files with duplicate originalFilename.
For files already having duplicate originalFilename, initiate a migration to change their originalFilename to something else.

Either way, I think there are a lot of vague terms. Probably code explains better. I’ll submit a PR with my current understanding and we can always iterate on that :-)

I like the proposal of #2300. How do want to handle internalFilename and originalFilename in this case? I agree that #2300 is a good compromise between this feature and stability for the end user. In the middle term, I'd like to remove the distinction code-wise as well.

I like the proposal of #2300. How do want to handle internalFilename and originalFilename in this case? I agree that #2300 is a good compromise between this feature and stability for the end user. In the middle term, I'd like to remove the distinction code-wise as well.

#2300 is just a temporary PR so that everyone can see my current approach, for merging the internalFilename and originalFilename, I plan to achieve this by the migration too. I am not sure what will happen if I modify the FileMetadata class structure and then commit the update to CouchDB. I will check it out later. I propose #2300 first because

That at least allows users to see no duplicate originalFilename and the REST and UI change are necessary even after merging internalFilename and originalFilename.
I will be traveling around in the upcoming 3 weeks. So I might not be able to work until early January. I don't think I can finish the merging before my travel so I submitted #2300 as a temporary solution. I will finish the entire migration later 🥇

Sounds like a solid plan!
No worries, just catch up on your great work whenever you find time for it.
There is no need to hurry.
Enjoy your traveling 🏜

Hey @bossenti @tenthe,
Just to let you know that I am actively working on this issue. I have figured out a way to extract the raw data stored in CouchDB that includes originalFilename after deleting that attribute from FileMetadata so I should be able to implement the entire redesign. I am pretty busy currently but I'll definitely take responsibility of this issue later!

closed by #2430


Cut doesn't actually cut, but instead copies

When you select a file and then select "Cut" from the ribbon, when you paste it in another path the file is actually copied, and the original file is still in its original location. Ntm you can't manually move files either through drag and drop, but I don't know if that's a bug or a UWP limitation

This bug should now be fixed in master with commit https://github.com/duke7553/files-uwp/commit/cedbcc378284c2bf1c14bc00da7842156e06dd36


pull request for e2e test at 11/26/2016 11:26:03

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Release/1.1.0

Coverage remained the same at 96.992% when pulling d2ed1a9ab77d5ed63dcb9278c796d1145da1a0d3 on release/1.1.0 into 3abe601d0111596f79ea24bfc40743f4ccf9da81 on master.

Coverage remained the same at 96.992% when pulling d2ed1a9ab77d5ed63dcb9278c796d1145da1a0d3 on release/1.1.0 into 3abe601d0111596f79ea24bfc40743f4ccf9da81 on master.


Multi-server recognizes Composer only after the first server

I've been combatting Composer for a while now in Rocketeer between not being detected, the application root being different than the deploy root, so on. I've resigned to ignore them for now, until this cropped up! This is an initial deploy log: https://gist.github.com/ShonM/f71c2f892cc40b8f01a5
It seems like Composer is not run on the first server, but on every server after that! How interesting!

To all onlookers: Specify "./composer.phar" in your paths.php if that's where it is in the project :)


Sequence API and behavioral consistency with core metadata

Specifically:

Sequence objects now becomes a pure facade over their annotations in the model so that they can be mutated like first-class metadata objects.
Removed default constants
Pushed use of default name to be a purely HiLo thing
Added generic fluent and non-generic overload for sequence type
Restricted use of the annotation to inside the Sequence class implementation
Renamed TryGetSequence to FindSequence

:shipit:


sometimes I have to invoke the command twice to register

Your Windows build number:  (Type ver at a Windows Command Prompt)
Microsoft Windows [Version 10.0.16278.1000]

What you're doing and what's happening:  (Copy&paste specific commands and their output, or include screen shots)
$ hub clone username/repo  (nothing happens)
$ hub clone username/repo (now something happens)

clone failure:

What's wrong / what should be happening instead:
cloning should happen the first time

more observations, here as you can see, first 2 commands does nothing. And the 3rd one finally invoke the command.  This is under ~/ and not in /mnt/

@thisguychris - Can we get a little bit more information about your environment?  Are you using the inbox windows console or a replacement?

what's "inbox windows console"? 🤔
If when you say inbox, you mean built in.  I'm using Ubuntu bash, the one that get installed when I install Ubuntu from the Store.

Related to https://github.com/github/hub/issues/1310

This submission could not be reproduced locally. If the problem persists on 1904[23], please open a new ticket following the template, including detailed CLI steps to manifest the problem.


The Loop layer is not yet implemented.

Issue Type
Feature Request
OS
Ubuntu
OS architecture
x86_64
Programming Language
Python
Framework
OpenVINO, PyTorch, ONNX, TensorFlow, TensorFlowLite, Other
Download URL for ONNX / OpenVINO IR
https://drive.google.com/drive/folders/1XFqjFn4OnyLBszWnVkA4uXNsD2RyAXEK?usp=sharing
Convert Script
see provided  Gdrive link
Description
Hello!
I'm trying to convert a model from openVINO-IR to Tensorflow(lite) but during conversion I stumble upon the following message
The Loop layer is not yet implemented.
I already managed to convert this model from ONNX to Tensorflow using onnx2tensorflow tool (see here) but I would like to use your tool in order to get rid of all those garbage Transpose layers that occurs when converting from NCHW to NHWC since they have a huge impact on performance when running on older devices.
If you are not planning to add this feature anytime soon can you kindly suggest any workaround / improvement that can be made in my case?
(model structure, conversion code and anything needed should be in the link provided)
Thanks in advance, happy to share more info if needed!
Relevant Log Output
The Loop layer is not yet implemented.

Source code for simple inference testing code
see provided  Gdrive link

I will consider implementation.

they have a huge impact on performance when running on older devices.

BTW, what devices does "older devices" refer to?

Also, how did you get around the onnx-tf conversion error? It cannot be converted successfully with onnx-tf.
$ onnx-tf convert -i ffnet_opset12_simplified.onnx -o ffnet_opset12_simplified

/usr/local/lib/python3.8/dist-packages/tensorflow_addons/utils/ensure_tf_install.py:53: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.3.0 and strictly below 2.5.0 (nightly versions are not supported).
 The versions of TensorFlow you are currently using is 2.9.0 and is not supported.
Some things might work, some things might not.
If you were to encounter a bug, do not file an issue.
If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version.
You can find the compatibility matrix in TensorFlow Addon's readme:
https://github.com/tensorflow/addons
  warnings.warn(
2022-08-04 00:17:22,087 - onnx-tf - INFO - Start converting onnx pb to tf saved model
Traceback (most recent call last):
  File "/usr/local/bin/onnx-tf", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/cli.py", line 20, in main
    return onnx_tf.converter.main(args[1:])
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/converter.py", line 21, in main
    convert(**{k: v for k, v in vars(args).items() if v is not None})
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/converter.py", line 147, in convert
    tf_rep.export_graph(outdir)
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/backend_rep.py", line 143, in export_graph
    signatures=self.tf_module.__call__.get_concrete_function(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 1239, in get_concrete_function
    concrete = self._get_concrete_function_garbage_collected(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 1219, in _get_concrete_function_garbage_collected
    self._initialize(args, kwargs, add_initializers_to=initializers)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 785, in _initialize
    self._stateful_fn._get_concrete_function_internal_garbage_collected(  # pylint: disable=protected-access
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 2480, in _get_concrete_function_internal_garbage_collected
    graph_function, _ = self._maybe_define_function(args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 2711, in _maybe_define_function
    graph_function = self._create_graph_function(args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 2627, in _create_graph_function
    func_graph_module.func_graph_from_py_func(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/func_graph.py", line 1141, in func_graph_from_py_func
    func_outputs = python_func(*func_args, **func_kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 677, in wrapped_fn
    out = weak_wrapped_fn().__wrapped__(*args, **kwds)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 3251, in bound_method_wrapper
    return wrapped_fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/func_graph.py", line 1127, in autograph_handler
    raise e.ag_error_metadata.to_exception(e)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/func_graph.py", line 1116, in autograph_handler
    return autograph.converted_call(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_file85j3buf8.py", line 30, in tf____call__
    ag__.for_stmt(ag__.ld(self).graph_def.node, None, loop_body, get_state, set_state, (), {'iterate_names': 'node'})
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 449, in for_stmt
    _py_for_stmt(iter_, extra_test, body, None, None)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 498, in _py_for_stmt
    body(target)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 464, in protected_body
    original_body(protected_iter)
  File "/tmp/__autograph_generated_file85j3buf8.py", line 23, in loop_body
    output_ops = ag__.converted_call(ag__.ld(self).backend._onnx_node_to_tensorflow_op, (ag__.ld(onnx_node), ag__.ld(tensor_dict), ag__.ld(self).handlers), dict(opset=ag__.ld(self).opset, strict=ag__.ld(self).strict), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_file21606sap.py", line 50, in tf___onnx_node_to_tensorflow_op
    ag__.if_stmt(ag__.ld(handlers), if_body_1, else_body_1, get_state_1, set_state_1, ('do_return', 'retval_'), 2)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1341, in if_stmt
    _py_if_stmt(cond, body, orelse)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1394, in _py_if_stmt
    return body() if cond else orelse()
  File "/tmp/__autograph_generated_file21606sap.py", line 44, in if_body_1
    ag__.if_stmt(ag__.ld(handler), if_body, else_body, get_state, set_state, ('do_return', 'retval_'), 2)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1341, in if_stmt
    _py_if_stmt(cond, body, orelse)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1394, in _py_if_stmt
    return body() if cond else orelse()
  File "/tmp/__autograph_generated_file21606sap.py", line 36, in if_body
    retval_ = ag__.converted_call(ag__.ld(handler).handle, (ag__.ld(node),), dict(tensor_dict=ag__.ld(tensor_dict), strict=ag__.ld(strict)), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_filetk6dixjb.py", line 34, in tf__handle
    ag__.if_stmt(ag__.ld(ver_handle), if_body, else_body, get_state, set_state, ('do_return', 'retval_'), 2)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1341, in if_stmt
    _py_if_stmt(cond, body, orelse)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1394, in _py_if_stmt
    return body() if cond else orelse()
  File "/tmp/__autograph_generated_filetk6dixjb.py", line 26, in if_body
    retval_ = ag__.converted_call(ag__.ld(ver_handle), (ag__.ld(node),), dict(**ag__.ld(kwargs)), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_fileistomi9h.py", line 12, in tf__version
    retval_ = ag__.converted_call(ag__.ld(cls)._common, (ag__.ld(node),), dict(**ag__.ld(kwargs)), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_file0lt6nnqf.py", line 123, in tf___common
    cond = ag__.converted_call(ag__.ld(tf).cond, (ag__.converted_call(ag__.ld(check_positive), (ag__.ld(paddings),), None, fscope), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_pos_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope))), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_neg_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope)))), None, fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 377, in converted_call
    return _call_unconverted(f, args, kwargs, options)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 459, in _call_unconverted
    return f(*args)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/util/traceback_utils.py", line 153, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/tmp/__autograph_generated_file0lt6nnqf.py", line 123, in <lambda>
    cond = ag__.converted_call(ag__.ld(tf).cond, (ag__.converted_call(ag__.ld(check_positive), (ag__.ld(paddings),), None, fscope), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_pos_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope))), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_neg_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope)))), None, fscope)
  File "/tmp/__autograph_generated_file0lt6nnqf.py", line 40, in process_neg_pads
    result = ag__.converted_call(ag__.ld(tf).slice, (ag__.ld(x), ag__.ld(begins), ag__.ld(sizes)), None, fscope_2)
ValueError: in user code:

    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/backend_tf_module.py", line 99, in __call__  *
        output_ops = self.backend._onnx_node_to_tensorflow_op(onnx_node,
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/backend.py", line 347, in _onnx_node_to_tensorflow_op  *
        return handler.handle(node, tensor_dict=tensor_dict, strict=strict)
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/handlers/handler.py", line 59, in handle  *
        return ver_handle(node, **kwargs)
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/handlers/backend/pad.py", line 91, in version_11  *
        return cls._common(node, **kwargs)
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/handlers/backend/pad.py", line 35, in process_neg_pads  *
        result=tf.slice(x, begins, sizes)

    ValueError: Invalid value in tensor used for shape: -4

Also, how did you get around the onnx-tf conversion error? It cannot be converted successfully with onnx-tf.
$ onnx-tf convert -i ffnet_opset12_simplified.onnx -o ffnet_opset12_simplified

/usr/local/lib/python3.8/dist-packages/tensorflow_addons/utils/ensure_tf_install.py:53: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.3.0 and strictly below 2.5.0 (nightly versions are not supported).
 The versions of TensorFlow you are currently using is 2.9.0 and is not supported.
Some things might work, some things might not.
If you were to encounter a bug, do not file an issue.
If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version.
You can find the compatibility matrix in TensorFlow Addon's readme:
https://github.com/tensorflow/addons
  warnings.warn(
2022-08-04 00:17:22,087 - onnx-tf - INFO - Start converting onnx pb to tf saved model
Traceback (most recent call last):
  File "/usr/local/bin/onnx-tf", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/cli.py", line 20, in main
    return onnx_tf.converter.main(args[1:])
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/converter.py", line 21, in main
    convert(**{k: v for k, v in vars(args).items() if v is not None})
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/converter.py", line 147, in convert
    tf_rep.export_graph(outdir)
  File "/usr/local/lib/python3.8/dist-packages/onnx_tf/backend_rep.py", line 143, in export_graph
    signatures=self.tf_module.__call__.get_concrete_function(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 1239, in get_concrete_function
    concrete = self._get_concrete_function_garbage_collected(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 1219, in _get_concrete_function_garbage_collected
    self._initialize(args, kwargs, add_initializers_to=initializers)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 785, in _initialize
    self._stateful_fn._get_concrete_function_internal_garbage_collected(  # pylint: disable=protected-access
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 2480, in _get_concrete_function_internal_garbage_collected
    graph_function, _ = self._maybe_define_function(args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 2711, in _maybe_define_function
    graph_function = self._create_graph_function(args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 2627, in _create_graph_function
    func_graph_module.func_graph_from_py_func(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/func_graph.py", line 1141, in func_graph_from_py_func
    func_outputs = python_func(*func_args, **func_kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/def_function.py", line 677, in wrapped_fn
    out = weak_wrapped_fn().__wrapped__(*args, **kwds)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 3251, in bound_method_wrapper
    return wrapped_fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/func_graph.py", line 1127, in autograph_handler
    raise e.ag_error_metadata.to_exception(e)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/func_graph.py", line 1116, in autograph_handler
    return autograph.converted_call(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_file85j3buf8.py", line 30, in tf____call__
    ag__.for_stmt(ag__.ld(self).graph_def.node, None, loop_body, get_state, set_state, (), {'iterate_names': 'node'})
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 449, in for_stmt
    _py_for_stmt(iter_, extra_test, body, None, None)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 498, in _py_for_stmt
    body(target)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 464, in protected_body
    original_body(protected_iter)
  File "/tmp/__autograph_generated_file85j3buf8.py", line 23, in loop_body
    output_ops = ag__.converted_call(ag__.ld(self).backend._onnx_node_to_tensorflow_op, (ag__.ld(onnx_node), ag__.ld(tensor_dict), ag__.ld(self).handlers), dict(opset=ag__.ld(self).opset, strict=ag__.ld(self).strict), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_file21606sap.py", line 50, in tf___onnx_node_to_tensorflow_op
    ag__.if_stmt(ag__.ld(handlers), if_body_1, else_body_1, get_state_1, set_state_1, ('do_return', 'retval_'), 2)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1341, in if_stmt
    _py_if_stmt(cond, body, orelse)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1394, in _py_if_stmt
    return body() if cond else orelse()
  File "/tmp/__autograph_generated_file21606sap.py", line 44, in if_body_1
    ag__.if_stmt(ag__.ld(handler), if_body, else_body, get_state, set_state, ('do_return', 'retval_'), 2)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1341, in if_stmt
    _py_if_stmt(cond, body, orelse)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1394, in _py_if_stmt
    return body() if cond else orelse()
  File "/tmp/__autograph_generated_file21606sap.py", line 36, in if_body
    retval_ = ag__.converted_call(ag__.ld(handler).handle, (ag__.ld(node),), dict(tensor_dict=ag__.ld(tensor_dict), strict=ag__.ld(strict)), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_filetk6dixjb.py", line 34, in tf__handle
    ag__.if_stmt(ag__.ld(ver_handle), if_body, else_body, get_state, set_state, ('do_return', 'retval_'), 2)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1341, in if_stmt
    _py_if_stmt(cond, body, orelse)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/operators/control_flow.py", line 1394, in _py_if_stmt
    return body() if cond else orelse()
  File "/tmp/__autograph_generated_filetk6dixjb.py", line 26, in if_body
    retval_ = ag__.converted_call(ag__.ld(ver_handle), (ag__.ld(node),), dict(**ag__.ld(kwargs)), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_fileistomi9h.py", line 12, in tf__version
    retval_ = ag__.converted_call(ag__.ld(cls)._common, (ag__.ld(node),), dict(**ag__.ld(kwargs)), fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 439, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/__autograph_generated_file0lt6nnqf.py", line 123, in tf___common
    cond = ag__.converted_call(ag__.ld(tf).cond, (ag__.converted_call(ag__.ld(check_positive), (ag__.ld(paddings),), None, fscope), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_pos_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope))), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_neg_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope)))), None, fscope)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 377, in converted_call
    return _call_unconverted(f, args, kwargs, options)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/autograph/impl/api.py", line 459, in _call_unconverted
    return f(*args)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/util/traceback_utils.py", line 153, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/tmp/__autograph_generated_file0lt6nnqf.py", line 123, in <lambda>
    cond = ag__.converted_call(ag__.ld(tf).cond, (ag__.converted_call(ag__.ld(check_positive), (ag__.ld(paddings),), None, fscope), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_pos_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope))), ag__.autograph_artifact((lambda : ag__.converted_call(ag__.ld(process_neg_pads), (ag__.ld(x), ag__.ld(paddings), ag__.ld(constant_values)), None, fscope)))), None, fscope)
  File "/tmp/__autograph_generated_file0lt6nnqf.py", line 40, in process_neg_pads
    result = ag__.converted_call(ag__.ld(tf).slice, (ag__.ld(x), ag__.ld(begins), ag__.ld(sizes)), None, fscope_2)
ValueError: in user code:

    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/backend_tf_module.py", line 99, in __call__  *
        output_ops = self.backend._onnx_node_to_tensorflow_op(onnx_node,
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/backend.py", line 347, in _onnx_node_to_tensorflow_op  *
        return handler.handle(node, tensor_dict=tensor_dict, strict=strict)
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/handlers/handler.py", line 59, in handle  *
        return ver_handle(node, **kwargs)
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/handlers/backend/pad.py", line 91, in version_11  *
        return cls._common(node, **kwargs)
    File "/usr/local/lib/python3.8/dist-packages/onnx_tf/handlers/backend/pad.py", line 35, in process_neg_pads  *
        result=tf.slice(x, begins, sizes)

    ValueError: Invalid value in tensor used for shape: -4

Yes, I had to modify some files from the original library in order to avoid this error, I've uploaded the modified library in the link above but If you don't wanna go through this hack I've also uploaded the obtained TF/TFlite models in the models folder always at the same Gdrive link

I will consider implementation.

they have a huge impact on performance when running on older devices.

BTW, what devices does "older devices" refer to?

I've tested it on old android devices such as MI A2 lite


fix: try to fix execution context destroy

Summary
Try to use auto-retrying assertions to fix 'execution context was destroyed' error.

Related: https://github.com/web-infra-dev/rspack/actions/runs/7256799974/job/19770052584
Related: https://github.com/web-infra-dev/rspack/actions/runs/7237418804/job/19717072921

Test Plan

Require Documentation?

[ ] No
[ ] Yes, the corresponding rspack-website PR is __

Merge activity

Dec 20, 4:30 AM: @@h-a-n-a merged this pull request with Graphite.


More than one curator?

From this issue I realized that the current jams schema doesn't allow for a given annotation to be curated by more than one person. Is that true? If so, we should consider enhancing the schema to allow a list of curators.

could you provide an instance where one annotation is provided by more than one curator, instead of multiple annotations provided by one curator each?

It's not that a single annotation is "provided by more than one curator" (the annotation is provided by an annotator, right?), but that a single annotation can be curated by one or more people. For example, the HEMAN dataset employs data that was curated  (but not annotated) by me and that later @irisyupingren further reviewed, cleaned, published, and formatted (i.e., curated?).
Maybe I'm employing the word "curator" in the wrong way? To be honest, it's a bit confusing from the jams specification docs:
curator : a structured object containing contact information (name and email) for the curator of this data;
annotator : a sandbox object to describe the individual annotator — which can be a person or a program — that generated this annotation;```

@urinieto you're take is correct (imo), annotator is whoever generated the specific annotation, while curator is the person (or people) who did the work of collecting all the annotations into a dataset. Under this reasoning, it makes perfect sense to have more than one curator.

Glad we agree on this, Justin. I just reviewed the original paper, and it also feels a bit confusing to me (who wrote this paper?):

curator (F) is itself an object with two subfields, name and email, for the contact person responsible for the annotation; and annotator (G) is another unconstrained object, which is intended to capture information about the source of the annotation

ah yes, you're right + I'm wrong – curator is the person(s) responsible for collecting the annotation, the annotator is the observer.
I guess one thing that we punted on pretty hard was having an "agent" datatype in the schema; we weren't really sure what kinds of curators would crop up (people? teams? universities?), and so it got left as a single string. In hindsight, this is kind of a great problem to have, since it's lightyears ahead of unstructured text files..
maybe I could rephrase my question better: would an array of open-ended strings be enough? or is there enough data to infer what a more structured Curator object might look like?
also I definitely wrote that section of the paper, so that makes me 0/2 on this thread.

haha even if you wrote that section, we should've pointed out how ambiguous it was (i.e., don't be too hard on yourself, we The Authors are all to blame here 💃 ).
Ok, back to your question, I would go with either a single open-ended string (e.g., "Eric Humphrey<EMAIL_ADDRESS>& Justin Salamon jsalamon@titanic.com"), or an array of Curator objects. Since the open-ended string might become a bit too complicated to parse, the latter option seems better to me.
Also, ideally, I would allow either one Curator or a list of Curators, but not sure how ugly this would look in terms of schema design/validation.

generally if a field is to be repeated, it should always be an array, and maybe specify a minimum number of elements. afaik mixing data types (allowing Curator and Array) is poor form.
to @bmcfee's point, I really like the idea of thinking about why it exists. If curator equals "who do I bother", then perhaps either URLs or email addresses are equally fine?

My 2c as the person who put the "curator" field in there in the first place :)
The intention was precisely for attribution. While a dataset can have many annotators (especially in a crowdsourcing scenario), it usually has a small set of curators who are in charge of putting the whole thing together, quality control, etc. Basically like an art exhibition that may consist of artworks by multiple artist (annotators in this analogy), it is usually curated by just one or two people, the curators.
Personally I think it's important to have such a field, because annotator(s) != curator(s) != point of contact.
The assumption was that the first curator is also the POC, and that people would infer that on their own. If you think it's worth adding an explicit "contact" field (e.g. with an email address) I'm totally fine with that, but not at the expense of the "curator" field, IMO.

p.s. forgot to add, in light of the above, I'd support @urinieto's proposal of making the curator field a list of Curator.

Coming back to this one, it seems to me that curator is a collection-level attribute, not an annotation-level attribute.  As we start planning for #178 and more collection-oriented things, does it even make sense to keep a curator field in the annotation metadata objects?
I'm thinking it might be better to lift that up a level; annotations can belong to collections, and collections can have curators, as well as other properties: home page, DOI, etc.  For my typical use cases, a DOI pointing to a zenodo page for the dataset would be perfect.  From there, I can get all the attribution and contact info I need, and the maintainers can worry about keeping things up to date there.  For example, if a curator changes email address, there's currently no mechanism to propagate that information back to a bunch of jams files out on the internet.  Relying on zenodo (or figshare, or whatever it happens to be) for this seems like a much better approach.

I agree with @bmcfee: curator should be a collection-level attribute, and there may be more than one curator associated with a collection.
My only concern is that changing this would potentially make pretty much all JAMS files to date incompatible with the new schema. Unless we do something smart about it, with deprecation warnings and so on.

My only concern is that changing this would potentially make pretty much all JAMS files to date incompatible with the new schema.

Yup, that'll happen.  The ideal fix here will be to 1) standardize the schema into a self-contained definition (ie without namespace runtime patching) as noted in #178, 2) put the schema under proper version control, and 3) put converters in place for migrating between versions.
If we set this up properly, then migration should be pretty easy, since we're going from a "exactly one of" to a "zero or more of" type of field, though obviously the python object model will have to change to stay usable.


Flatten the module hierarchy

The modules for clients/services/publishers/subscriptions are moved up from the node/ directory
into the main directory.
This way, the node module only contains the implementation of the actual Node type.
Even though logically, a subscription for instance is a "part of" a node, the module layout should
not mirror this hierarchy, or we'd also move the node module below the context module and the
directories would become too nested.
This also mirrors the layout in rclcpp.

I haven't done the clippy fixes from https://github.com/ros2-rust/ros2_rust/pull/247 in here, since I'm thinking that one can be merged relatively quickly.


Update create-wip-policy-using-intune-azure.md, clarify the scope of Azure RMS

clarify the scope of Azure RMS as discussed in issue #2724
source  Protect your enterprise data using Windows Information Protection (WIP)

Hi @Justinha ,
according to Protect your enterprise data using Windows Information Protection (WIP) :
"Finally, another data protection technology, Azure Rights Management also works alongside WIP to extend data protection for data that leaves the device, such as when email attachments are sent from an enterprise aware version of a rights management mail client."
Don't you think it would be useful to note that RMS works not only when data is copied to external drive, but also when sent as attachment?
Thank you

@Justinha,
Would be interesting to understand the behavior with "Sent as attachment",
In our setup, if I send by mail WIP protected file, as attachment, as example to Gmail and try access from public PC, I can open file with no AzureRMS prompt.
I have 2x tenants with different setups: 1st is with Silent mode, 2nd is with Prompt. In 2nd I use Template ID. Using both tenants, sending file to Gmail not really encrypt file by AzureRMS, i dont see protection applied...

@MaratMussabekov Ahhh, thanks so much I see what you mean now. Unfortunately, that text is misleading because email attachment is not actually protected. Only copy to removable storage is protected by AIP. Email attachment protection is a goal but not available today. This is more clearly stated here: https://www.microsoft.com/security/blog/2018/05/15/use-windows-information-protection-wip-to-help-make-accidental-data-leakage-a-thing-of-the-past/
So we should change the example to refer to removable media or just remove it for being unclear. I prefer to change the example from email to USB, but I appreciate your input as the reader. Would you mind submitting a PR with a change to that topic? I am happy to do it on my side also, just let me know.
@lightupdifire Thanks for sharing what you experienced, and confirmed as by design today.

Hello @Justinha , @TokyoScarab ,
Thank you for your recommendations, I've applied another one commit, could you please check?
Thank you


tuple index out of range after fresh install

Command line

Steps Taken

Pulled main branch of Auto GPT through this commit (midday Saturday 4/22/23)
Used the following command to download the system info plugin to the plugins folder: Invoke-WebRequest -Uri "https://github.com/hdkiller/Auto-GPT-SystemInfo/archive/refs/heads/master.zip" -OutFile "./plugins/Auto-GPT-SystemInfo.zip"
I did not unzip the file
I made 3 changes to the Auto GPT .env file:
EXECUTE_LOCAL_COMMANDS=True
RESTRICT_TO_WORKSPACE=True
ALLOWLISTED_PLUGINS=SystemInformationPlugin
I attempted to start an Auto GPT session. After taking my goals, but before asking for permission to proceed with the first action, Auto GPT crashed with the output shown in the screenshot above.

System Information

Windows 10
Python 3.10.5
AutoGPT - Master Branch, through this commit

Potentially helpful context from GPT 4:
Sure, I can help you with this. The error "IndexError: tuple index out of range" is occurring because you are trying to access an index in the tuple win_ver that doesn't exist. The platform.win32_ver() function returns a tuple of strings, and the length of the tuple might be less than 5.
To fix this, you can check the length of the win_ver tuple before accessing its elements. Here's an updated version of the code block:
# Get Windows version (works on Windows only)
if platform.system() == "Windows":
    win_ver = platform.win32_ver()
    win_version = f"{win_ver[0]} {win_ver[1]}"
    if len(win_ver) > 4:
        win_version += f" {win_ver[4]}"
else:
    win_version = None

This code will make sure that the tuple has at least 5 elements before trying to access the element at index 4. If the tuple has fewer elements, it will only include the first two elements in the win_version string.

Looking at the python platform docs:
https://docs.python.org/3/library/platform.html

It looks like
win_version = f"{win_ver[0]} {win_ver[1]} {win_ver[4]}"

should be
win_version = f"{win_ver[0]} {win_ver[1]} {win_ver[3]}"

I'll submit a PR

Hello!
Thank you for the fix I've merged your changes and sorry about your inconvenience.
Unfortunately I was not able to properly test it on a Windows machine yet.

No prob, happy to help. Thanks for the plugin


stat/distuv: provide full test coverage for statdist.go and increase numerical accuracy of Hellinger distance

Please take a look.

PTAL.


[FormRecognizer] Multipage receipt tests should use multipage receipt files

Currently we're using multipage invoices to test our receipts API. This makes the recognition not so reliable and prone to behavior changes with every service update.
We should get proper multipage receipt files for our tests.

Java is adding a proper multipage receipt file so we can copy it

https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/test/resources/sample_files/Test/contoso_allInOne_multipage_receipt.pdf


tsp, update changelog, after patch release 0.13.11

Prepare release 0.14.1

no review after 3 days...
close it, will put it into 0.54 upgrade


Create College object

College Object representing a school. Also moved test and harcoded data to this branch.

@googlebot I consent.


Angular 2 and rebuilt table

Love the way your framework looks! I am building an Angular 2 app and have a component that encapsulates a table. After a user selects from a dropdown the table is rebuilt and columns get added or removed.
So far, I've tried:
$(this.elementRef.nativeElement).trigger("enhance.tablesaw");
and
$(this.elementRef.nativeElement).table().data("table").refresh();
and nether rebuild the MiniMap.
Any ideas?
btw: I'm using v2.0.3

I solved the refresh problem by destroying the table and recreating it. I'd try:
$(this.elementRef.nativeElement).table().data("table").destroy()
$(this.elementRef.nativeElement).table()

What table type is this?

Please reopen if you need additional help.

Hi,
I'm working with Angular 4 and Tablesaw v3.0.2
I initialize my table by calling $(document).trigger("enhance.tablesaw") but when I want to refresh it by calling $(this.elementRef.nativeElement).table().data("table").refresh() jQuery throws an exception telling me that $(...).table is not a function
Any ideas?


adding sample node-related information as columns to the mutations dataframe

It would be useful to bring in external information about the sample nodes to tsqc. For example, we could show a bar chart of sample node frequencies for each group of self-reported ethnicities under a mutation. For this, we should have a numba function which takes in the sample information (ethnicities in this case) and return a dataframe with the shape, number of mutations x number of information groups. Then, we could add these columns to the mutations_df when we create it. This is ideal as Holoviews would then pass the entire dataframe to the browser, making it quicker to interact with individual mutation points, rather than calculating node frequencies on the fly.

Thanks, @jeromekelleher .
For the UI part, here's what I have so far. I'm starting with a muts_df with num_pop additional columns containing population frequencies for each mutation.
import pandas as pd
import holoviews as hv
from holoviews.streams import Selection1D
from holoviews import opts

hv.extension('bokeh')

# Assuming muts_df and other necessary variables are defined

# Function to generate frequency data for a given mutation id
def gen_freqs(mut_id):
    return pd.DataFrame({
        'pop': ['pop_A', 'pop_B', 'pop_C'],
        'freq': muts_df.loc[mut_id, ['pop_A', 'pop_B', 'pop_C']].values
    })

# Create an NdOverlay of Bars for the first 100 mutations
pop_data = hv.NdOverlay({i: hv.Bars(gen_freqs(i), 'pop', 'freq')
                         for i in range(100)})

# Create a scatter plot
points = hv.Scatter(muts_df, kdims=['position'], vdims=[y_dim, 'id', 'inheritors', 'descendants'])

# Link Selection1D stream to the scatter plot
stream = Selection1D(source=points)

# Callback function to update the bar plot and table based on the selected scatter point
def plot_pop_freqs(index):
    if not index:
        # Return an empty Bars and an empty Table when nothing is selected
        empty_bars = hv.Bars([], kdims='pop', vdims='freq').opts(width=200, height=200, title='Tap on a mutation')
        return empty_bars
    selected_index = index[0]
    bars = pop_data[selected_index].opts(width=200, height=200, framewise=True, title=f'Mutation {selected_index}', ylim=(0, 20))
    return bars

def make_mutation_table(index):
    if not index:
        return hv.Table([], kdims='Details', vdims='Value').opts(width=200, height=200)
    selected_index = index[0]
    num_inheritors = muts_df.loc[selected_index, 'inheritors']
    num_descendants = muts_df.loc[selected_index, 'descendants']
    table_data = [('Num Inheritors', num_inheritors), ('Num Descendants', num_descendants)]
    table = hv.Table(table_data, kdims='Details', vdims='Value').opts(width=200, height=200)
    return table

# DynamicMap to update the bar plot and table based on the selection
pop_freq_plot = hv.DynamicMap(plot_pop_freqs, streams=[stream])
mutation_table = hv.DynamicMap(make_mutation_table, streams=[stream])

# Combine the scatter plot and the dynamic content into a layout
layout = (points.opts(size=10, tools=['tap', 'hover']) + pop_freq_plot
            + mutation_table)

# Display the layout
layout.opts(opts.Scatter(width=600, height=400, size=10, framewise=True))

Uploading population_frequencies_v0.mp4…

https://github.com/tskit-dev/tsqc/assets/25925005/8de213bf-6ce2-47cb-8132-fd430dba4d4b

This was just the first attempt that worked. There are issues, for example, I don't think this will work for large numbers of mutations:
pop_data = hv.NdOverlay({i: hv.Bars(gen_freqs(i), 'pop', 'freq')
                         for i in range(100)})

If you think this is useful, I'll try and add this part to tsqc. Will likely need help with creating the dataframe though - would be great to discuss next week if you are around.

This looks great! Let's get some version of it in (fake data would be fine initially)
I'll help with computing the dataframe next week, no problem

fixed with PRs #141 #145


Translation of properties "confirm, cancel and pick a date" on iOS

Platforms
iOS only
Versions

iOS: 12.4
react-native-modal-datetime-picker: ^7.5.0
react-native: 0.59.2
react: 16.8.3

Description
Hi Matteo,
thank you very much for writing this wrapper! I would like to know if it is possible to translate the properties "confirm, cancel and pick a date" from the native iOS datepicker. I have already gone through the "locale" property https://facebook.github.io/react-native/docs/datepickerios and setting it to "de" or "ger" as described here "https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/LanguageandLocaleIDs/LanguageandLocaleIDs.html" did not work for me. I tried setting it to "FR" too, since I saw it working in this screenshot (https://github.com/mmazzarolo/react-native-modal-datetime-picker/issues/189#issuecomment-429781116) but this did not work for me.
This issue only targets the labels "pick a date, confirm and cancel". Month names are translated properly in my case.
Thanks!
Reproducible Demo
<DateTimePicker
  isVisible={this.state.isDateTimePickerVisible}
  onConfirm={this._handleDatePicked}
  onCancel={this._hideDateTimePicker}
  mode={this.state.datePickerMode}
  locale='de'
  is24Hour={true}
/>

👋 @francbelak , you can pass your own translated strings to the cancelTextIOS, confirmTextIOS and titleIOS props.

@mmazzarolo Thanks for the guidance here. I noticed, though, that one of those props is missing from the "Available props" section of the Readme, and that instead of titleIOS it is actually called headerTextIOS. It would be great if you could add that in the documentation. Much appreciated!


[stable/elasticsearch-exporter] error with the new prometheus rules templating

Hello,
It looks like that there is a Helm template rendering issue since there is a new templating model, see https://github.com/helm/charts/pull/20322
If you uncomment the rules under the prometheusRule block in values.yaml (and enable it), there is a parse error when rendering the rules:
helm template -x templates/prometheusrule.yaml .

Error: render error in "elasticsearch-exporter/templates/prometheusrule.yaml": template: elasticsearch-exporter/templates/prometheusrule.yaml:22:16: executing "elasticsearch-exporter/templates/prometheusrule.yaml" at <tpl (toYaml .) $>: error calling tpl: Error during tpl function execution for "- expr: |\n    100 * (elasticsearch_filesystem_data_size_bytes{service="{{ template "elasticsearch-exporter.fullname" . }}"} - elasticsearch_filesystem_data_free_bytes{service="{{ template "elasticsearch-exporter.fullname" . }}"})\n    / elasticsearch_filesystem_data_size_bytes{service="{{ template "elasticsearch-exporter.fullname" . }}"}\n  record: elasticsearch_filesystem_data_used_percent\n- expr: 100 - elasticsearch_filesystem_data_used_percent{service="{{ template "elasticsearch-exporter.fullname"\n    . }}"}\n  record: elasticsearch_filesystem_data_free_percent\n- alert: ElasticsearchTooFewNodesRunning\n  annotations:\n    description: There are only {{ "{{ $value }}" }} < 3 ElasticSearch nodes running\n    summary: ElasticSearch running on less than 3 nodes\n  expr: elasticsearch_cluster_health_number_of_nodes{service="{{ template "elasticsearch-exporter.fullname"\n    . }}"} < 3\n  for: 5m\n  labels:\n    severity: critical\n- alert: ElasticsearchHeapTooHigh\n  annotations:\n    description: The heap usage is over 90% for 15m\n    summary: ElasticSearch node {{ "{{ $labels.node }}" }} heap usage is high\n  expr: |\n    elasticsearch_jvm_memory_used_bytes{service="{{ template "elasticsearch-exporter.fullname" . }}", area="heap"} / elasticsearch_jvm_memory_max_bytes{service="{{ template "elasticsearch-exporter.fullname" . }}", area="heap"}\n    > 0.9\n  for: 15m\n  labels:\n    severity: critical\n": parse error in "elasticsearch-exporter/templates/prometheusrule.yaml": template: elasticsearch-exporter/templates/prometheusrule.yaml:5: unexpected unclosed action in template clause

Can you guide me on how to fix that please?

The same thing happens with many other example rules from other charts, too. The problem is that something tries to pretty print the values and adds a "\n" when the line becomes too long. I think it is valid yaml after this transformation, but it breaks the template rendering.
The only (non-practical) workaround I found is to make the rules as short as possible and avoid templated strings.

-------- Ursprüngliche Nachricht --------
Von: "stale[bot]"<EMAIL_ADDRESS>Datum: 29.03.2020  16:11  (GMT+01:00)
An: helm/charts<EMAIL_ADDRESS>Cc: David Heinrich<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Betreff: Re: [helm/charts] [stable/elasticsearch-exporter] error with the new prometheus rules templating (#20899)
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Any further update will cause the issue/pull request to no longer be considered stale. Thank you for your contributions.
—
You are receiving this because you commented.
Reply to this email directly,
view it on GitHub, or
unsubscribe.

same here

It's an annoying bug in helm or go-yaml (most likely depends on who you ask).A possible workaround is to use yaml literal style for all templated strings. At least in my case it was working fine:https://github.com/helm/helm/issues/7704#issuecomment-617636701
-------- Ursprüngliche Nachricht --------
Von: kiuka<EMAIL_ADDRESS>Datum: 02.05.2020  18:31  (GMT+01:00)
An: helm/charts<EMAIL_ADDRESS>Cc: David Heinrich<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Betreff: Re: [helm/charts] [stable/elasticsearch-exporter] error with the new prometheus rules templating (#20899)
same here
—
You are receiving this because you commented.
Reply to this email directly,
view it on GitHub, or
unsubscribe.


Test Data without Annotations

First, thank you for the sharing.
Everything went well when I tested PoseTrackV1.0_Annots_val.
But when I tested the test data without detections' annotations, I got some errors:
"ERROR test_engine.py: 333: Evaluation crashed with exception No evaluator for dataset: "
I know this one is because of the lack of annotations.
After that, I got a detection.pkl file
But I can't use the detection file for tracking.
When I run the tracking mode, I got the following error:
"zero-size array to reduction operation minimum which has no identity."
--------the total error messages------
File "tools/compute_tracks.py", line 56, in
main()
File "tools/compute_tracks.py", line 52, in main
run_posetrack_tracking(test_output_dir, json_data)
File "/home/X/Documents/DetectAndTrack/lib/core/tracking_engine.py", line 791, in run_posetrack_tracking
dets_withTracks = compute_matches_tracks(json_data, dets, lstm_model)
File "/home/X/Documents/DetectAndTrack/lib/core/tracking_engine.py", line 707, in compute_matches_tracks
_summarize_track_stats(all_tracks, json_data)
File "/home/X/Documents/DetectAndTrack/lib/core/tracking_engine.py", line 664, in _summarize_track_stats
np.min(all_lengths),
File "/usr/local/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 2420, in amin
out=out, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/numpy/core/_methods.py", line 29, in _amin
return umr_minimum(a, axis, None, out, keepdims)
ValueError: zero-size array to reduction operation minimum which has no identity

This issue can be closed because of #25 .


Improvements

Hello Fengalin! With version 02.1 the problems I encountered have been resolved thanks! Another step "if possible": improve the graphics, I mean with different colors for the various sections: Compressor, Wah, Effect, Amp, , Dealy, Reverb, Cabinet (perhaps with images of the type of cabinet selected). I am attaching png images of the cabinet models from the official editor. Official J-Edit which I personally don't like.
Thank you
Cabinet J Station.zip

Hi @seve54. Thank you for the suggestions. I might add a custom theme with colors similar to the original J-Edit. I also thought about presenting the actual appearance of the selected amp. There might be legal issues with that though. But most of all, these improvements would take time. Since this application interests at most 4 people in the world :), I'm unsure I'll find the motivation to engage in anything more than functional improvements or fixes.

Thank you Fengalin! J-Station is an old product but still sought after and used by many users. If you can still make improvements to the editor they will surely be appreciated by many. Thanks and congratulations for the excellent work. Hello


fix(): Supervisor socket issue with overlay (closes: #707)

The storage driver of the docker host can have effect on the sock file.
Also see information here where this change was accepted:

https://github.com/moby/moby/issues/12080#issuecomment-162000092
with pr: https://github.com/hardware/mailserver/pull/5

I still seem to have this issue.
When the docker is started, the following information is printed:
harambee_mail            | Starting mail server
harambee_mail            |   Starting cronunix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting rsyslog unix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting dovecot servicesunix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting opendkim unix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting opendmarc unix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting postgreyunix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting postfixunix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting clamavunix:///dev/shm/supervisor.sock refused connection
harambee_mail            |   Starting amavisunix:///dev/shm/supervisor.sock refused connection

System info: Linux hostname 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux

What Debian version do you run?
Do you know how to fix it?


Regarding org-mode and doom-emacs (shortcuts)

Good evening everyone,
I am not sure if this is off-topic or not. If so, please point me in the right direction.
I used emacs' org-mode a lot for school papers. I did some research and found that doom-emacs is better for writing longer papers (thesis, business proposals, etc.). I was able to launch and I am trying to become familiar with the shortcuts but I am a little confused. Is there a newbie guide I can follow specifically for writing papers in LaTeX? Is there something you guys recommend for me to do to become better with this program?
Thanks in advance again.

Hi there! I'm afraid there isn't much in the way of workflow documentation for Doom (yet), or in general, really. I'm working on it, but it's an uphill struggle against issue triage, general maintenance, traveling and other work.
That said, you will find Doom users on our discord who use Doom this way that may be able to help. I, myself, use org-mode to write papers and fiction, but my workflows are quite unsophisticated -- I'm still new to this side of Emacs. In any case, the Discord is likely to be your best resource.

I see. Thank you for the reply.
I noticed that some of the shortcuts on org-mode are different from the default ones I am used to. For example, to create a new bullet-point I used to use Alt+Enter. Haven't figured out how to do it in doom ^_^.
Is there a way to find the shortcuts in doom?
Thanks in advance.

C-RET (ctrl+return) will do that for you.
Doom tries to standardize the behavior of C-RET and C-S-RET (ctrl + shift + return) to "add new item below/above" (cmd+RET and cmd+shift+RET on macos), respectively, and M-RET and M-S-RET to "add new empty line below/above".

Just to chime-in a bit, alt-enter should work in org mode to insert a bullet at the same level. For latex,  keybindings are the AUCTeX default but easy enough to change with map!

Thank you for the prompt replies. I'm kind of new to this World and I'm surprised at how active you guys are! :)
I will check on those really soon.

Happy to help! I'll consider the original issue resolved and close this, but feel free to follow up here (or on Discord).


Qur786/#68 mirgate vapor thermal conductivity bacth4(final)

@maneetgoyal sir please , don't merge this batch after reviewing, batch 3 still needs to be reviewed by @saikat-samanta

@qur786, tests look okay. But resolve the conflict.

@qur786 The issue was with FormicAcid claculation function. Should be working now.

@qur786 The issue was with FormicAcid claculation function. Should be working now.

Ok @maneetgoyal sir , I will have a look at it then merge it


Improve docs for getEnvWithDefault

Found the old style of documenting the arguments a little cumbersome, so I took the liberty to change it to a style I found in other packages.

Thanks! Agreed - much clearer.


Uncaught TypeError: Cannot read property 'split' of undefined

I get this error when using csvtojson.
My node version is v7.10.0.
Converter.js:85 Uncaught TypeError: Cannot read property 'split' of undefined
    at Object.<anonymous> (Converter.js:85)
    at Object.module.exports (Converter.js:542)
    at __webpack_require__ (bootstrap 6e0e07b…:659)
    at fn (bootstrap 6e0e07b…:85)
    at Object.<anonymous> (index.js:2)
    at __webpack_require__ (bootstrap 6e0e07b…:659)
    at fn (bootstrap 6e0e07b…:85)
    at Object.<anonymous> (csv2json.js:2)
    at __webpack_require__ (bootstrap 6e0e07b…:659)
    at fn (bootstrap 6e0e07b…:85)

When I import csvtojson, this error occur.
import CSV from 'csvtojson';

Same. It happens because Converter.js is using process.versions.node here:
https://github.com/Keyang/node-csvtojson/blob/46f97473b6ab68d40f82e5217668beab51b4e183/libs/core/Converter.js#L85
Which is not available using a bundler like webpack (in my case). @Keyang, this can by fixed by checking if the function is available:
function bufFromString(str){
    return (typeof Buffer. from == 'function')
        ? Buffer.from(str,"utf8")
        : new Buffer(str,"utf8")
}

You can quickly check the behaviour:
$ node --version
v7.6.0
$ node
> (typeof Buffer. from == 'function')
true

@Kaylang, should I create a pull request?

@JoseExposito Thanks for pointing out.
It was using the same way as you mentioned. However, this seems not working with node.v4 which has Buffer.from with a different signature. Thus I changed to using version number.
Please create a pull request and we will go from there.
Thank you.
~Keyang

Very true, the signature is there in older versions, ignore my previous solution as it won't work. However, after checking the documentation for Node 4 & 8:
(Node 4) https://nodejs.org/docs/latest-v4.x/api/buffer.html
(Node 8) https://nodejs.org/api/buffer.html
I think this should work:
$ node
> let str = 'Hello World!'
undefined
> let buffer = Buffer.allocUnsafe(str.length)
undefined
> buffer.write(str)
12
> buffer.toString('utf8')
'Hello World!'

Note that allocUnsafe is secure here as we just write in the buffer after allocating it and is faster that alloc.
Creating pull request...

Just a ping to @Keyang that the PR from @JoseExposito does work... currently using it on my project, although I haven't checked why build ain't green

Do you know what build the 'split' error will be fixed in? Still getting it in version 0.12.1.

I'm guessing the build isn't green partly because there are no eol characters (;).

Sorry for the delay guys, I forgot about this pull request.
I just added full support for very old Node.js version (<= 5.x) so hopefully @Keyang feels more comfortable merging https://github.com/Keyang/node-csvtojson/pull/186 into master now that all the tests pass.

What is this?

It looks like the change is already available in 1.1.8, please update.


REPORTUNIT html report not showing Test Case Description.

Hi Anshoo,
I am using Nunit 2.6.4 to run my test cases and post that converted the XML test report to Html report by ReportUnit V1.2.
The test description is coming in XML but not in html.

I wanted to print the description above in Html report.
Can you help me on this.....
Thanks & Regards,
Dhiraj

@anshooarora @Artum Can you please suggest us which version to use or how can we get a Description displayed in reports?


Over time, delays begin to occur

I tried sending messages about 3600 times per second.
Then, there is no problem at the beginning.
However, after a few tens of seconds, the iOS app will start to slow down.
What is the cause of this?
I'm guessing it's either a problem with the timeout value setting or an excessive memory consumption.
Does anyone have any idea how to solve this problem?

Try enclosing your code in an auto release pool.
Devin
On Dec 19, 2020, 8:37 PM -0800, pekochun<EMAIL_ADDRESS>wrote:

I tried sending messages about 3600 times per second.
Then, there is no problem at the beginning.
However, after a few tens of seconds, the iOS app will start to slow down.
What is the cause of this?
I'm guessing it's either a problem with the timeout value setting or an excessive memory consumption.
Does anyone have any idea how to solve this problem?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


How to get saved image path name?

File image = await ImagePicker.pickImage(source: ImageSource.camera);
GallerySaver.saveImage("${image.path}", albumName: 'my_image_folder').then((bool result) {
                  if (result) {
                    log('image saved!');
                  }
                  else
                    log('saving image job has been failed');
                });

Hello there! I'm currently working with above code base.
i wonder that how to get image path that saved in my_image_folder.
i can get only boolean flag that result of GallerySaver.saveImage()
is there a way to get the saved image path string?

You can't because, on iOS, that info is not available(as I can remember, correct me if I'm wrong),
I'm not an iOS dev :)
@KimKiHyuk

@jelenalecic OK thanks a lot!

Hi @jelenalecic
I have a similar use case but only for Android. I want to open the gallery or files app so the user can see the saved video

would it be possible to get a path parameter for the callback that is always null on iOS?
Because I would like to name images in a certain way on android, even when this is not possible for iOS.

would it be possible to get a path parameter for the callback that is always null on iOS?
Because I would like to name images in a certain way on android, even when this is not possible for iOS.

Is there any new way to do this?
How can apps like Whatsapp do this?

this is possible just fine, but only on android.
other libraries for example will return the path string on android and just null on iOS.
I am not sure why this ticket got closed.


Internal Server Error release 0.4.0

Hello!
Got just installed latest docker release (0.4.0). It worked fine for a several hours, but now I get Internal Server Error. How to diagnose why it happened? Restart doesn't help. I do not see any logs.
docker container ls -l
CONTAINER ID   IMAGE                             COMMAND                  CREATED       STATUS                    PORTS                                   NAMES
42d3141d8324   powerdnsadmin/pda-legacy:latest   "entrypoint.sh gunic…"   9 hours ago   Up 33 minutes (healthy)   <IP_ADDRESS>:9191->80/tcp, :::9191->80/tcp   nostalgic_haibt
docker image ls
REPOSITORY                   TAG       IMAGE ID       CREATED        SIZE
powerdnsadmin/pda-legacy     latest    e9b943c35616   4 days ago     187MB
ngoduykhanh/powerdns-admin   latest    987ad25307ed   3 months ago   154MB
df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                     470M     0  470M   0% /dev
tmpfs                     98M  596K   98M   1% /run
/dev/mapper/ns--vg-root  2.6G  1.9G  593M  76% /
tmpfs                    489M     0  489M   0% /dev/shm
tmpfs                    5.0M     0  5.0M   0% /run/lock
/dev/sda1                470M   86M  360M  20% /boot
/dev/mapper/ns--vg-home  4.7G   76K  4.5G   1% /home
/dev/mapper/ns--vg-tmp   238M   13K  222M   1% /tmp
/dev/mapper/ns--vg-var   994M  835M   91M  91% /var
tmpfs                     98M     0   98M   0% /run/user/1000
overlay                  994M  835M   91M  91% /var/lib/docker/overlay2/f69e353d733641b8a3637791ea28970d7a661d0bb81e5d7d144734c997d3768e/merged

@acheglakov without seeing any logs, my first guess is that you're hitting a recently exposed Flask Session library bug which is about to be addressed in the next patch release and dev branch.
Try checking the logs of the container.

AzorianMatt, thank you! That helped!

@acheglakov you're welcome!


Add DLLInfo to AltRep class registration

Fixes #743

@yutannihilation Do you think this suffices as a fix? Because otherwise I have to do a very long dance to... take all the registery code and embed it in the same way I see there.

entrypoint.c generation lives in rextendr, which now, has to be moved to extendr.
Include the library #include <R_ext/Rdynload.h> and change the void to DllInfo.
Somehow, start registering altrep so they can be exported together, probably by extending #[extendr] or something smart/convoluted.

Because otherwise I have to do a very long dance to...

Yeah, I think you are right. It's probably going to be a very long way. Honestly, I have no idea how extendr can achieve it. I don't know the function, but R_getEmbeddingDllInfo() seems for embedded usage.
https://cran.r-project.org/doc/manuals/R-exts.html#Registering-symbols

entrypoint.c generation lives in rextendr

I think this is not correct. All the actual logic is generated by the macros.
https://github.com/extendr/rextendr/blob/e5072fca6c7db8b67ea010cac6aa92dec29fdb7a/inst/templates/entrypoint.c#L7C1-L7C40

Just in case you are interested in, here's what I'm currently trying to implement in my framework.
https://github.com/yutannihilation/savvy/pull/206

Alright. Thanks for the assist! I've marked it DRAFT, as now I see this is definitely wrong:
/* returns DllInfo used by the embedding application.
   the underlying "(embedding)" entry is created if not present */
DllInfo *R_getEmbeddingDllInfo(void)
{
    DllInfo *dll = R_getDllInfo("(embedding)");
    if (dll == NULL) {
	int which = addDLL(Rstrdup("(embedding)"), "(embedding)", NULL);
	dll = LoadedDLL[which];
	/* make sure we don't attempt dynamic lookup */
	R_useDynamicSymbols(dll, FALSE);
    }
    return dll;
}

But there is a R_getDllinfo. Maybe I can use that.

But there is a R_getDllinfo. Maybe I can use that.

FYI:
https://github.com/r-devel/r-svn/commit/b5582bb6dc31e988de5c33ebb28932901c2206ae#diff-048b7b7178313f203daf48b349a0f392b2bd11d397a5f207bf43629c98e1e1d9R88

Good call. I also knew it would be problematic otherwise, because it is not
the right dll anyways. It has to be the actual package dll.. I better just
roll up my sleeves and make it happen.. By writing a macro... But I have
some maintenance PRs first, plus a few inventions... I hope the extendr
contributor crew approve them soon.
Cheers
On Mon, May 6, 2024, 16:54 Hiroaki Yutani @.***> wrote:

But there is a R_getDllinfo. Maybe I can use that.
FYI:
@.***
#diff-048b7b7178313f203daf48b349a0f392b2bd11d397a5f207bf43629c98e1e1d9R88
https://github.com/r-devel/r-svn/commit/b5582bb6dc31e988de5c33ebb28932901c2206ae#diff-048b7b7178313f203daf48b349a0f392b2bd11d397a5f207bf43629c98e1e1d9R88
—
Reply to this email directly, view it on GitHub
https://github.com/extendr/extendr/pull/744#issuecomment-2096229406, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIDVSA5TB3OPKF5BG4HZQDZA6KTBAVCNFSM6AAAAABG5BHCHGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJWGIZDSNBQGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


⚠ Samsung has degraded performance

In bc62314, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2686 ms

Resolved: Samsung performance has improved in ef7fd3f.


Search metadata and filter scene objects

Autodesk has developed view and Data API that allows to view 3d-2d models in WebGL enabled browsers. it has very useful features such as annotation extensions or search feature. when u search a keyword it highligts the objects includes it in metadata and isolate the others. Very impressive

I forgot the link http://developer-autodesk.github.io/


This PR adds support for RegNets and Stock and Flow models to the SciML Service.

This addresses issues https://github.com/DARPA-ASKEM/sciml-service/issues/120 and https://github.com/DARPA-ASKEM/sciml-service/issues/118.
This is a bit of a "temporary" solution, used while the modeling and intertypes are still being fleshed out. Eventually I think that we will want the interface to every type of model including decapodes, to be from the same place. For now though, I've created ACSets for StockFlow and RegNets that hold all of the information needed to create an MTK model. JSON AMR models get parsed in to these ACSets, which are then turned in to MTK models. This is kind of like what I'm anticipation will happen for every type of model in the future, i.e. JSON -> ACSet -> MTK. The way this is implemented will probably change in the future, but this gets it working for now.

This passes tests now, including the ones I set up to test the stockflow and regnet functionality.


update pandownload version

I receive the update message in app pandownload,but I don't know how to test the new version.
我在应用内收到了更新信息，但是我不知道如何测试这个新版本，我安装之后，仍然是2.1.2的版本

closed by https://github.com/h404bi/dorado/commit/bb662ad6d920f5b65230556c55d39395eeea89ae