Parse Error in GB and GBA apps

Hey there!
I'm having some problems using the GB and GBA cartridge reader apps. Both of them throw me a "parse error" when trying to read  some cartridges.
(this is following the app instructions downloaded from here)
Checks:

Updating flipper zero firmware
Updating board firmware following the guide
Check that flipper shows "connected" message when inserting malveke board
Led lights up
Switch is in EXP mode
Reinstalling the apps

Am I missing some really obvious thing in the board connection process?
Really love the project, just hoping to use the board and dump some saves
Thanks in advance and please let me know if I can add more info to this issue.

Hello, how are you? I have a few questions. Which firmware version are you currently using?
Before sending them, I tested them with the Original FW 0.98.3 [link: https://github.com/flipperdevices/flipperzero-firmware/releases/tag/0.98.3].
I also recently tried with Momentum FW [link: https://github.com/Next-Flip/Momentum-Firmware/releases/tag/mntm-001] using apps from the official catalog.
Let me see if there have been any recent changes.

Here are the apps I'm using. Could you test them? And before testing, could you please reboot?
malveke_faps.zip

Hola!
Thanks for the quick response, I'm currently running the latest firmware (that's 0.99.1)
Yeap, tried rebooting multiple times before posting the issue.
The faps you just sent me did the trick though! I can reed GB and GBA carts now. Also dump rom files (which were previously throwing a null pointer exception)

🤔 And where did you download the previous ones from?

Actualicé el link de las faps, agregué la última versión de la app de pokemon

Here are the faps I'm using. Could you test them? And before testing, could you please reboot?
malveke_faps.zip

@fran122157  I'll leave this issue open while I investigate what happened with the official catalog.

Hey,
I was also having the same issue with a "parse error" we were speaking through tindie. all of the .fap files that were in the zip all work perfect! thank you for the speedy solution. i am running MNTM-001 and got my applications from lab.flipper.net. just tested the pokemon trading and that issue is also fixed.

Hi,
TL;DR: thanks, your FAP files work <3 https://github.com/EstebanFuentealba/MALVEKE-Flipper-Zero/issues/31#issuecomment-2010948941
i had the same "parse error" issue after building the FAPs myself.
Downloaded the apps via lab.flipper.net (didn't knew the page existed, saw it in the previous post) but got the same "parse error".
Only with your supplied files I got it to work (thanks for that <3).
my flipper version:

🤔 And where did you download the previous ones from?

Sorry for the delay in the response! I downloaded them from flipper lab as other have mentioned in the thread. Just to clarify
Thanks!

The apps are now available and working again in the official catalog.
https://github.com/flipperdevices/flipper-application-catalog/pull/331


linter: Optimize string lookups with better data structure

There are many cases in the linter where store Vec<String>, Vec<&str>, or Vec<CompactStr> and then later check if vec.contains(something). At runtime, this takes O(n) to find if the given value is in the array. However, we can do better by replacing Vec with a different data structure.
FxHashSet
If we replace Vec with FxHashSet, we get the benefit of lookups taking O(1) time, at the cost of inserts taking longer due to hashing.
Sorted Vec
If we sort the Vec after inserting values, then we can use binary_search to look up if the element is in the array, which take O(log(n)) time. The sorting process itself is additional overhead of O(n log(n)), but might be negligible if elements are not inserted to the array afterwards. Otherwise, if elements are inserted later, it is probably faster to use a set.

The ideal data structure here probably depends on the usecase. For re-inserting values, a HashSet might be better. For a smaller set of values that don't change, a sorted Vec might be better.

One question I have related to this is: should we have a custom data structure in oxc for representing sets of strings? Pre-sorting the Vec has some nice benefits if we don't reinsert data, but has the downside of not enforcing that we don't insert elements later, which as the binary_search docs say, renders the result useless:

Binary searches this slice for a given element. If the slice is not sorted, the returned result is unspecified and meaningless.

Perhaps we could add a new type named someting like StringSet/ReadonlySet/ConstSet/SortedVec which has the behavior of:

Acts the same as Vec
Guarantees that data is always in sorted order when read
Methods that insert data such as .insert will throw an error
Has methods for explicitly inserting data such as .insert_and_sort()
Calling .contains() maps to .binary_search()

To help us make better decisions here, I did some microbenchmarking on my laptop. I compared doing contains on a Vec of strings, binary_search on a sorted vec, and doing .contains on a FxHashSet.
The results are approximately as follows:

benchmark
Elements
Time

Vec.contains
1
6.3ns/iter ⭐

Vec.binary_search
1
12.9ns/iter

HashSet.contains
1
16.0ns/iter

Vec.contains
1 (CompactStr)
8.7ns/iter  ⭐

Vec.binary_search
1 (CompactStr)
14.3ns/iter

HashSet.contains
1 (CompactStr)
19.5ns/iter

benchmark
Elements
Time

Vec.contains
4
13.8ns/iter ⭐

Vec.binary_search
4
32.35ns/iter

HashSet.contains
4
17.5ns/iter

Vec.contains
4 (CompactStr)
21.5ns/iter ⭐

Vec.binary_search
4 (CompactStr)
37.4ns/iter

HashSet.contains
4 (CompactStr)
22.5ns/iter

benchmark
Elements
Time

Vec.contains
60
59.4ns/iter

Vec.binary_search
60
91.7ns/iter

HashSet.contains
60
17.3ns/iter ⭐

Vec.contains
60 (CompactStr)
152.8ns/iter

Vec.binary_search
60 (CompactStr)
96.1ns/iter

HashSet.contains
60 (CompactStr)
19.5ns/iter ⭐

benchmark
Elements
Time

Vec.contains
256
247.9ns/iter

Vec.binary_search
256
118.3ns/iter

HashSet.contains
256
16.9ns/iter ⭐

Vec.contains
256 (CompactStr)
630.9ns/iter

Vec.binary_search
256 (CompactStr)
124.2ns/iter

HashSet.contains
256 (CompactStr)
19.4ns/iter ⭐

The results here vary somewhat, but after running this a number of times (several billion iterations on each benchmark), my general takeaways are this:

For a single element, .contains is definitely the fastest, no question about it.
For a 4 elements, .contains is still usually the fastest, but sometimes .binary_search is faster.
For 16+ elements, FxHashSet is unquestionably the fastest option

This suggests to me that maybe we need some sort of hybrid data structure that automatically reallocates/reorganizes as the size of the array grows?

For 0-4 elements, it is stored as unsorted and doing .contains calls .contains
For 4-16 elements, it is stored as sorted, and doing .contains calls .binary_search
For 16+ elements, it is stored as a hash set, and doing .contains calls HashSet.contains

These are surprising results, and extremely informative. Most configs have only a small number of elements.
Excellent stuff @camchenry

Great!
Maybe you are interested in this topic as well @overlookmotel cc.

I purposely used Vec::contains because they are the fastest on smallet elements, as most configs are.

@camchenry Thanks very much for this extremely thorough investigation. Very interesting.
A few thoughts and responses:

There are many cases in the linter...

Can you give some examples? Everything I write below is in the abstract, but I'm not actually sure what we're talking about in practice.

For a 4 elements, .contains is still usually the fastest, but sometimes .binary_search is faster.

I didn't draw this conclusion from your bench results above. It looks more like that .binary_search is never faster. Vec::contains or HashSet::contains is always the winner for any sized collection. Did you have some other findings beyond the perf table above which found .binary_search to be better in some circumstances?

CompactStr does not seem to be zero cost. It may improve memory usage, but there does seem to be a negative runtime impact that ranges from negligible to considerable.

Yes. The advantage of CompactStr is that it stores small strings inline so:

less memory usage
less allocations
no further memory read required to read the string, as the string data is right there in the CompactStr.

Less allocations is probably the most significant of these advantages.
But the downside is that every time you read a CompactStr, CompactStr::as_str has to check "is this string stored inline or not?" That involves more instructions. CompactStr::as_str at least manages to make that check branchless by clever use of "conditional move" instructions. But it's still not so cheap.
So whether CompactStr is overall a benefit or not depends very much on the specific use case.
Personally, I think it's ideal to avoid CompactStr as much as possible if the strings are already in AST. In that case, Atom (which is just a wrapper around &str at present) does not use any more memory, and does not cause allocations. So it has most of the advantages of CompactStr, without the downsides.
Atom, however, has it's own downside in terms of ergonomics. It has a lifetime Atom<'a>, so it's less simple to use than the lifetime-less CompactStr.

some sort of hybrid data structure that automatically reallocates/reorganizes as the size of the array grows

This is an attractive idea, and in some cases may be a good choice. However, be aware that this structure would have its own downsides:

Every .contains call has to check "am I stored as a Vec or a HashSet?". This is similar to the overhead of CompactStr discussed above. That'll be quite an unpredictable branch (and unpredictable branches are quite costly).
If it's a Vec initially, but grows and needs to convert itself to a HashSet, that conversion is not so cheap either. It would be less costly if it was just a HashSet from the start.

So it may be that rather than having a "one size fit all" solution, we're better off using a heuristic in each use case (how big is this thing usually?) and choosing Vec or HashSet for that use case accordingly.
One other thing to bear in mind is that when a HashSet grows beyond it's capacity, every item in the HashSet has to have its hash recalculated. FxHash is a pretty cheap hash function (only 3 instructions to hash a u32 or u64) but hashing strings is much more costly.
A further consideration is that I think at some point, we'll likely introduce a new Ident type which stores the hash inline, which will make FxHashSet<Ident> much cheaper. But I'm not sure when we'll get to implementing that.
TLDR
Sorry I've written an essay. Your investigations raise some pretty fundamental and complicated questions!
What can we do in practice?

The microbenchmarks are helpful, but I think we'd also need to try in practice replacing some Vecs with HashSets and see what "real" benchmarks say. With this stuff, often you can't really know how perf will be affected without trying and measuring.
Replace CompactStr with Atom wherever possible. I suspect that'll be a win either way.
We could consider trying to advance the Ident idea if we want to store strings in HashSets.

There are many cases in the linter...

Can you give some examples? Everything I write below is in the abstract, but I'm not actually sure what we're talking about in practice.

I should have included this in the original issue, I mainly filed this in response to some PR feedback from @DonIsaac that I wanted to do more investigation on.
Here are some examples where we are using Vec.contains in the linter:

https://github.com/oxc-project/oxc/blob/7645e5c34ba16afd02b13c694a6ec41a2586dd79/crates/oxc_linter/src/rules/eslint/no_new_func.rs#L82
https://github.com/oxc-project/oxc/blob/7645e5c34ba16afd02b13c694a6ec41a2586dd79/crates/oxc_linter/src/rules/jest/valid_expect.rs#L380
https://github.com/oxc-project/oxc/blob/7645e5c34ba16afd02b13c694a6ec41a2586dd79/crates/oxc_linter/src/rules/promise/prefer_await_to_callbacks.rs#L139
https://github.com/oxc-project/oxc/blob/7645e5c34ba16afd02b13c694a6ec41a2586dd79/crates/oxc_linter/src/rules/jest/no_hooks.rs#L123
https://github.com/oxc-project/oxc/blob/7645e5c34ba16afd02b13c694a6ec41a2586dd79/crates/oxc_linter/src/rules/eslint/no_global_assign.rs#L67
https://github.com/oxc-project/oxc/blob/7645e5c34ba16afd02b13c694a6ec41a2586dd79/crates/oxc_linter/src/rules/jest/expect_expect.rs#L130

For a 4 elements, .contains is still usually the fastest, but sometimes .binary_search is faster.

I didn't draw this conclusion from your bench results above. It looks more like that .binary_search is never faster. Vec::contains or HashSet::contains is always the winner for any sized collection. Did you have some other findings beyond the perf table above which found .binary_search to be better in some circumstances?

This was just taken from the last benchmarking run that I did: there were some other cases where binary_search was slightly faster, but it wasn't consistent. I suspect it might be faster in some cases in the 8-64 element range, but once you get beyond 16+ elements it's probably better to just use a hash set anyway.

So it may be that rather than having a "one size fit all" solution, we're better off using a heuristic in each use case (how big is this thing usually?) and choosing Vec or HashSet for that use case accordingly.

I agree. I did some follow-up benchmarking where I created this hybrid data structure and did some basic testing on it. In practice, it was not faster than just carefully choosing a Vec or FxHashSet to begin with.

The microbenchmarks are helpful, but I think we'd also need to try in practice replacing some Vecs with HashSets and see what "real" benchmarks say. With this stuff, often you can't really know how perf will be affected without trying and measuring.

Again, I agree. My profiling hasn't shown Vec.contains to ever be a huge bottleneck, compared to things like memmove or free for allocating and deallocating which take up much more time.

Replace CompactStr with Atom wherever possible. I suspect that'll be a win either way.

Good to know, this won't be an option in all cases since many Vec<CompactStr> are read from the configuration file, but I bet there are some small wins to be found here.

We could consider trying to advance the Ident idea if we want to store strings in HashSets.

This seems like something that would be nice to have. But again, the profiles that I have seen don't show checking if a string is in a set to be a significant bottleneck for linting.
I think we could probably save more time if we just avoided doing string lookups altogether by returning earlier, using different algorithms, etc.

Close as not planned as I see no actionable items coming out of the investigation.
It seems like the rule of thumb is use contains given most configs is a small number of values.


Fixing extensions build release check

Fixing extension signing issue with new CI template.
Pull request checklist

[x] My changes do not require documentation changes

[ ] Otherwise: Documentation issue linked to PR

[x] My changes should not be added to the release notes for the next release

[ ] Otherwise: I've added my notes to release_notes.md

[x] My changes do not need to be backported to a previous version

[ ] Otherwise: Backport tracked by issue/PR #issue_or_pr

[x] I have added all required tests (Unit tests, E2E tests)

Additional information
Additional PR information

/check-enforcer override

/check-enforcer override


Unable to Reconfigure Credentials

It appears there is no way to update your username/password after the initial configuration.  I changed the password of my Hatch account and now the device is showing a login error, but I cannot find where to update the password.

the default response seems to be to delete and re-add the integration, example https://community.home-assistant.io/t/ring-integration-change-username-password/388674
however if you provide the logs by adding
logger:
  default: warning
  logs:
    custom_components.ha_hatch: debug
    hatch_rest_api: debug

I should be able to see the error the api provides and trigger a re-auth flow as outlined at https://developers.home-assistant.io/docs/integration_setup_failures/#handling-expired-credentials

I was able to resolve the issue today by going into the integration, choosing ADD ENTRY, and logging in with my credentials.  As long as it was the same username it seems to have replaced the old entry and seamlessly migrated all the devices and entities into the new entry.  If I need to re-auth in the future, I will be sure to capture the logs and share them.


nvme-cli: remove unused input

Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@alyssais @vifino @Mic92
Sorry to "steal" this PR, just wanted to ask a question related to this package.
I've updated my kernel recently and things started breaking:

nvme_fabrics: found same hostid 7b562a4c-61e8-ef10-a994-047c16834e32 but different hostnqn nqn.2014-08.org.nvmexpress:uuid:7b562a4c-61e8-ef10-a994-047c16834e32

Here's a trace of the nvme connect:
openat(AT_FDCWD, "/nix/store/h51c3vl6kgrsgw9fmp0gwxnpqk3mnn55-nvme-cli-2.6/etc/nvme/config.json", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/h51c3vl6kgrsgw9fmp0gwxnpqk3mnn55-nvme-cli-2.6/run/nvme", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/70b0s9rzq5n9lvd4hspnwhnk46cvy3vr-libnvme-1.6/etc/nvme/hostnqn", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/sys/class/dmi/id/product_uuid", O_RDONLY|O_CLOEXEC) = 3

Is there a way to configure nvme-cli to use my /etc/hostnqn rather than the read only path on the nix-store?
Thanks!

I think we need to fix this in the packaging so it actually uses /etc in its library. Usually there is a configure flag for that.

It's sadly going to be a bit more complicated than that, because it wants to write files into that directory during the build.


"Missing trailing slash" warning with URLs that contain a trailing hash

Describe the bug
Hey,
As said here on https://github.com/harlan-zw/nuxt-simple-sitemap/issues/3, I've tried this package. I've used it without any problem, except when my URL contains a hash. For example :
Voir les <nuxt-link to="/#licence">licences</nuxt-link>.

Gives me :
 Missing trailing slash                                                                                nitro 13:28:38
   licences                                                                                nitro 13:28:38
  ├─ /

Same problem with URLs that contain some JS (eg. previous page) and for anchor links (eg. anchor link).
Thanks !
Reproduction
No response
System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (12) x64 AMD Ryzen 5 5600H with Radeon Graphics
    Memory: 5.53 GB / 15.35 GB
Binaries:
    Node: 16.15.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 9.1.2 - C:\Program Files\nodejs\npm.CMD
Browsers:
    Edge: Spartan (44.22621.963.0), Chromium (108.0.1462.54)
    Internet Explorer: 11.0.22621.1

### Used Package Manager

npm

### Validations

- [X] Follow our [Code of Conduct](https://github.com/harlan-zw/.github/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guide](https://github.com/antfu/contribute).
- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- [X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
- [X] The provided reproduction is a [minimal reproducible](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

Hey @Skyost
Thanks, really appreciate your help in improving this and the sitemap module through your issues!
I've pushed up a fix for this which is available in 0.2.0.

No problem, thanks for your great modules @harlan-zw 👍


Incompatible with webpack 2

Issue description
Was working brilliantly till I attempted to update to WebPack 2.2.0
Technical info

Webpack Bundle Analyzer version: 2.2.3
Webpack version: 2.2.0
Node.js version: 6.9.3
npm/yarn version: 0.18.1 (yarn)
OS: macOS

Debug info
How do you use this module? As CLI utility or as plugin?
Tried both, same result
If CLI, what command was used? (e.g. webpack-bundle-analyzer -O path/to/stats.json)
If plugin, what options were provided? (e.g. new BundleAnalyzerPlugin({ analyzerMode: 'disabled', generateStatsFile: true }))
No options, just the defaults
Can't generate stats.json as it blows up before then.
Error
Could't analyze webpack bundle:
TypeError: currentFolder.addModule is not a function
Could't find any javascript bundles in provided stats file

I don't think it is a compatibility problem with webpack 2.2.0, as @Koslun uses it and it works for him, right?
So there's something else to this. Are you able to create reproduction repository for your issue? Without some way of us being able to reproduce this error, there's little we can do.

Even better I managed to track it down, not sure if you would accept this as a fix but a PR with what I hacked in to make it work is incoming 👍

@valscion @MarshallOfSound If it is still relevant I can confirm that it is indeed working on<EMAIL_ADDRESS>using<EMAIL_ADDRESS>

Thanks @Koslun, that is relieving to hear :)

Hey would you be able to get a stats.json out by running webpack itself with the --stats flag and piping the output to a file?
webpack --json > stats.json

This might work as it doesn't require this plugin to be present at all

I have a theory about the reason for this bug but I need stats file to prove it.
@MarshallOfSound Could you generate stats file with webpack --json > stats.json as @valscion suggested?

@th0r I'm running into the same issue, from the CLI. My stats.json seems pretty verbose to post here, so I was hoping to create a tiny example shortly.

I just realized that when I say "the same issue", I should be more explicit. All I'm seeing output when I run webpack-bundle-analyzer stats.json dist is "Could't find any javascript bundles in provided stats file".

A small reproduction case would be highly appreciated ☺. The stats.json can be zipped and uploaded here, in case you are not able to create that tiny example.
It will contain your source codes, though.

I am experiancing the same issue
Could't analyze webpack bundle:
TypeError: currentFolder.addModule is not a function
Could't find any javascript bundles in provided stats file

In webpack settings I have:
    devServer: {
      contentBase: path.join(__dirname, '../build'),
      compress: !isFastMode,
      port: 8000,
      clientLogLevel: 'info',
      historyApiFallback: true,
      stats: 'normal'
    },
    stats: 'normal',

@AvraamMavridis can you provide the stats.json for your case? Instructions are earlier in this thread

@valscion  here you are
stats.json.zip

Umm your stats.json only contains the text undefined. How did you generate it?
Did you try running
webpack --json > stats.json

@valscion oh, will give it another try. And upload.

I have isssue too with webpack2.
webpack: Compiled successfully.
Could't analyze webpack bundle:
TypeError: Cannot read property 'raw' of undefined
Could't find any javascript bundles in provided stats file

stats.json.zip

Hiya @pgoergler! I'm not able to reproduce your error without having the built sources, too. Can you upload those with the stats file?

it happens when i use webpack-dev-server

Hmm, I don't think this plugin was intended to work with webpack-dev-server. Try using this plugin without the dev server.

For me the issue was my order of plugins, putting bundle analyzer in the first place solves the problem.

@valscion - I'm new to this plugin but what are the use cases for the default analyzerMode of "server" if its not meant to go with webpack-dev-server. Generally production builds run once and output static files to be served up by a process outside of webpack (so server option doesn't make much sense here to me).

@cchamberlain it doesn't pollute fs by generating report file.

same issue here.. that stats.json is now 18.4 MB big :) before we join all aplications together it's working with webpack only with this settings that you can see down

webpack-bundle-analyzer ./build/stats.json

Could't analyze webpack bundle:
TypeError: currentFolder.addModule is not a function
Could't find any javascript bundles in provided stats file
    new BundleAnalyzerPlugin({
      analyzerMode: 'disabled',
      generateStatsFile: true,
      // Excludes module sources from stats file so there won't be any sensitive data
      statsOptions: { source: false },
    }),

Ok great, I am able to reproduce the crash from your files, @Kepro. This will help in debugging this a lot :+1:

Any update on this? I'm having the same issue as others. Seems to happen when I add a dynamic require statement.

Nope, no updates yet. If you're able to whip up a small reproduction repository showcasing this error it would help in coming up with a new test case and verify that #50 fixes this issue.
You could also try to come up with a test case for this. You'd need to add two files to test/bundles folder, one with the bundle file contents and the other with the expected JSON representation of the modules inside the bundle file.
This is a good, minimal example of what testing these looks like:
Source bundle: validExtraBundleWithModulesAsArray.js
webpackJsonp([0,2],[,,function(t,e,r){'123'},,,function(t,e){'12345'},]);

Expected module output: validExtraBundleWithModulesAsArray.modules.json
{
  "modules": {
    "2": "{'123'}",
    "5": "{'12345'}"
  }
}

Should be fixes in v2.4.0

@th0r oh my bad, I thought this lib was only at 2.1.x so thought that 2.4 was a while away. But nevermind I see where you are at now.


Dear support.

What's the problem? (required)
Describe the problem or need in exactly 1 sentence. Ex. "I'm unable to [...]", or "I am confused by [...]"
What's the current behavior? (required)
A clear and concise description of the current behavior of the DApp or package (or lack thereof).
Do you have any personal experiences dealing with this problem? (optional)
Describe your personal experiences related this problem in 1-4 sentences.
Describe a possible solution you've considered (optional)
A clear and concise description of what you want to happen.
Additional context (optional)
Add any other context or screenshots about the enhancement or feature request here.

Dear Support,
I can not claim my staking fees, the box to claim doesn´t appear on my account? what is the problem? i have eth availabel

Hey @dcoutolpt - are you logged into metamask? The "unclaimed earnings" widget only displays if you own the account you're viewing and you're logged in.

Hi,
Yes i have my metamask account open and log in.
Dear Support,
I can´t claim my staking fees. The box which i can click below the "earning
during the last rounds" doesn´t apear.
I have some earning to clai and i have ETH on my metamask
Thanks in advance
Adam Soffer<EMAIL_ADDRESS>escreveu no dia segunda, 29/07/2019
à(s) 16:36:

Hey @dcoutolpt https://github.com/dcoutolpt - are you logged into
metamask? The "unclaimed earnings" widget only displays if you own the
account you're viewing and you're logged in.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/livepeer/livepeerjs/issues/436?email_source=notifications&email_token=AMXXFPZBMLHIYJNCZZSEMP3QB4FALA5CNFSM4IHTTUN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3BDGYI#issuecomment-516043617,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMXXFP5VCECMQJBXN33R5C3QB4FALANCNFSM4IHTTUNQ
.

hmm are you definitely on your own account view? The "Staking" view looks the same for every delegator, whether it belongs to you or not which can be confusing. Click "My Account", then the "Staking" tab.

The problem is solved.
Thanks
Adam Soffer<EMAIL_ADDRESS>escreveu em seg, 29/07/2019 às 16:42
:

hmm are you definitely on your own account view? The "Staking" view looks
the same for every delegator, whether it belongs to you or not which can be
confusing. Click "My Account", then the "Staking" tab.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/livepeer/livepeerjs/issues/436?email_source=notifications&email_token=AMXXFP2NJMKNU3DTBAHRNCLQB4FUTA5CNFSM4IHTTUN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3BDWVY#issuecomment-516045655,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMXXFP7V6HCGYRKHA6BF43DQB4FUTANCNFSM4IHTTUNQ
.


fix: cacheable home view section card query

This PR removes the @cacheable directive from the Home View card section query. That directive prevents the X-ACCESS-TOKEN from propagating to Metaphysics, so Metaphysics assumes that the request is unauthenticated. This, in turn, prevents home view sections with requiresAuthentication: true to not display.
Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Removed a @cacheable directive from a home view query

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (Removed a @cacheable directive from a home view query - iskounen)

  Generated by :no_entry_sign: dangerJS against 192836354f25f5fee2199815233da94d55153b8f

After debating whether we should (a) disable caching for all card sections, or (b) remove the authentication requirement for this specific card, we decided to do (b). The Infinite Discovery card launches a feature that requires authentication, but the card itself does not require any authentication to display. Furthermore, if we display this card to unauthenticated users in the future, we should prompt them to authenticate instead of hiding the feature from them.


Inconsistent Hydration

Hello,
I believe I have encountered a form of inconsistent hydration.
Here is the code:

create a server function:

#[server(ThumbnailRenderer)]
async fn render_thumbnails() -> Result<Vec<String>, ServerFnError> {
    let upload_path = std::fs::read_dir("./upload/thumbnails/").unwrap();
    Ok(upload_path
        .into_iter()
        .map(|items| {
            let path = items.unwrap().path();
            path.file_name().unwrap().to_str().unwrap().to_string()
        })
        .collect::<Vec<_>>())
}

call upon the server function:

    let pdf_path = create_server_action::<Random>(cx);
    pdf_path.dispatch(Random {});

call upon the last run value within view!:

                {move ||
                    thumbnail_list.value().get().map(|list|
                        view! {cx,
                           <For
                           each=move || list.clone().unwrap()
                           key=|thumbnail| thumbnail.to_owned()
                           view=move |cx, item| {
                             view! {
                               cx,

                             }
                           }
                         />
                        })
                    }

Force an update by running the server function within an event handler:

 let on_submit_callback = move |event: SubmitEvent| {
....
thumbnail_list.dispatch(ThumbnailRenderer{});
}

Now, here's where I believe there is a problem, either with duplication of Elelements or work done within <For/> :
Most of the time, the UI updates normally upon submission:

Sometimes, there is a duplication:

Note that this disappears upon reload
It is possible that this is due to an internal signal being updated within the code, however, it happens roughly once in every 7 submissions or so, without any specific pattern or difference between submissions.
I'm aware that I can use a standard signal instead, but was wondering whether this behavior is expected by design.

Looking at your example, I think you want a Resource instead of an Action here. Resources are used for getting data you want to appear on the page during SSR. Actions are more for tracking events, like if a user changes a post.
If you do use a Resource, you'll want to wrap the call to .read() it in a Suspense tag, like we do in our todo_app examples. This allows it to load the data on the server and stream down the result once down.
https://github.com/leptos-rs/leptos/tree/main/examples/todo_app_sqlite_axum
I don't know why you have that hydration behavior here, but I'm guessing it's a race condition kinda thing.

Hello,
Thanks for the advice. I had already attempted this with create_local_resource and create_resource, but run into the same problem.
I am not getting a lot of hydration warnings, but there is one.
It's interesting that you believe it to be a race condition. From what I've noticed is that race conditions are more noticeable in consistent iterative calculations, I wouldn't have thought that a race condition would be happening at this frequency.
My initial suspicion was that it may have been a problem with hydration or within the For loop.
My API is really simple and results in a file list being returned:

I would like to note that within all the times where duplication has occurred, the post request has only been called once.

I'm not able to reproduce any kind of issue with what you've provided. I had to do some work to get a compiling version because I'm a little confused because you refer to another server function Random and create a variable pdf_path that isn't used; I'm assuming this is supposed to be ThumbnailRenderer and that it should be used?
If you can provide some kind of minimal reproducible example of the behavior I'd be happy to take a look at it. Ben's advice to use create_resource is good in any case... if you ever find yourself creating and then immediately dispatching an action, a resource is probably the right decision.

Hello,
Yes, I do not disagree.
I will break down exactly what's happening here:
This is a component that is responsible for producing the thumbnail view that I have listed:
#[component]
fn ThumbnailList(
    cx: Scope,
    pdf_iframe_setter: WriteSignal<String>,
    thumbnail_refresh: ReadSignal<bool>,
) -> impl IntoView {
    let (thumbnail_class, thumbnail_class_setter) = create_signal(
        cx,
        String::from(
            "position-fixed d-flex flex-column overflow-scroll hover-overlay text-align-center",
        ),
    );

    let thumbnail_list = create_local_resource(cx, thumbnail_refresh, move |_| async {
        render_thumbnails().await
    });

    let thumbnail_callback = move |event: MouseEvent| {
        let image = event.target().unwrap().unchecked_into::<HtmlImageElement>();
        let src = image.src();
        let id = src.split('/').last().unwrap().split('.').next().unwrap();
        pdf_iframe_setter.set(format!("/pdf/{id}"));
    };

    view! {cx,

            <Transition fallback=move|| view! {cx, "loading"}>
                {move ||
                    thumbnail_list.read(cx).map(|list|
                        view! {cx,
                           <For
                           each=move || list.clone().unwrap()
                           key=|thumbnail| thumbnail.to_owned()
                           view=move |cx, item| {
                             view! {
                               cx,

                             }
                           }
                         />
                        })
                    }
            </Transition>

    }
}

It's dependencies are as follows:
    let (pdf_iframe, pdf_iframe_setter) = create_signal(cx, "".to_string());
    let (thumbnail_refresh, thumbnail_refresh_setter) = create_signal(cx, false);

The component is rendered within this view:
    styled::view! {cx, drag_styles(),
    <Router>
    <ThumbnailList pdf_iframe_setter thumbnail_refresh/>

"Advanced Search Made Simple"

        {response}

    <form method="post" action="/submit" enctype="multipart/form-data"
        style="justify-content: center; display: flex;  flex-direction: column"
        class="position-absolute w-75 start-50 translate-middle-x bottom-50 h-25 mx-5" id="form" on:submit=on_submit_callback>

            "choose alternative file"
            <input _ref=file_input_ref id="file-input" type="file" class="upload" name="file-input" accept="application/pdf" on:change=submit_button_handler />

            <input type="remove" id="remove-button" value="remove" class="uploadLabel display-box removeBox" on:click=remove_callback />

            <input type="view" id="view-button" value="view" class="uploadLabel display-box removeBox" />

            <input type="submit" id="submit-button" value="submit" style=submit_button class=submit_button_class/>

    </form>

                {move || { pdf_path.value().get().map(|val| {
                view! {cx,

                }})}}

        </Router>
    }

Here is the main functionality. You submit a pdf view the input (_ref=file_input_ref), it results in the following on submit callback:
    pub fn submit_callback<'a>(
        file_input_ref: NodeRef<Input>,
        response_setter: WriteSignal<leptos::Fragment>,
        cx: Scope,
        thumbnail_refresh_setter: Option<WriteSignal<bool>>,
        submit_button_setter: Option<WriteSignal<&'a str>>,
        upload_label_setter: Option<WriteSignal<&'a str>>,
        toggle: Option<WriteSignal<bool>>
    ) -> impl Fn(SubmitEvent) {
        move |event: SubmitEvent| {
            event.stop_propagation();
            event.prevent_default();

            let file_input = file_input_ref.get().expect("could not capture file input");

            let file = file_input.files().unwrap().get(0).unwrap();

            let buffer = file_to_u8(file);

            spawn_local(async move {
                let buffer = buffer.await.unwrap();

                let result = Request::post("/submit").body(&buffer).send().await.unwrap();

                if result.ok() {
                    response_setter.set(view! {cx,

"File Uploaded Successfully "

                });
                    if let Some(refresher) = thumbnail_refresh_setter {
                        refresher.update(|value: &mut bool| *value = !*value);
                    }

                    if let Some(toggle) = toggle {
                        toggle.update(|val: &mut bool| *val = !*val);
                    }

                } else {
                    let response_text = result.text().await.unwrap();

                    response_setter.set(view! {cx,

{response_text}

                    });
                }

                if let Some(setter) = submit_button_setter {
                    setter.set("display:none");
                }

                if let Some(setter) = upload_label_setter {
                    setter.set("uploadLabel display-box");
                }
            })
        }
    }

Basically, a post request that results in a pdf being stored and thumbnails being produced via cairo-rs is made. The callback also sends an update signal to re-render the ThumbnailList. which returns all the available thumbnails and is used to create the  loop.
#[post("/submit")]
pub async fn upload_server(mut form_data: Payload) -> Result<String, std::io::Error> {
    use futures_util::StreamExt;

    let timestamp = std::time::SystemTime::now()
        .duration_since(std::time::SystemTime::UNIX_EPOCH)
        .unwrap()
        .as_secs();

    let pdf_path = format!("upload/{}{}", timestamp, ".pdf");

    let pdf_thumbnail_path = format!("upload/thumbnails/{}{}", timestamp, ".png");

    let mut bytes = BytesMut::new();

    while let Some(item) = form_data.next().await {
        bytes.extend_from_slice(&item.expect("Internal Server Error. Try again in a few minutes"));
    }

    std::fs::write(&pdf_path, bytes)?;

    create_thumbnail(
        std::path::Path::new(&pdf_path),
        std::path::Path::new(&pdf_thumbnail_path),
    )
    .await?;
    Ok(String::from(""))
    // Err(std::io::Error::new(std::io::ErrorKind::Other, "error"))
}

I don't expect you to reproduce this, I am happy to send you a minimal viable product, but I don't know if it is worth your time going through this. I thought that this would be an issue that you have encountered previously.

I'd like to help fix this but unfortunately am not able to because there are so many missing pieces. I've created a couple different versions to try it out, but have not been able to reproduce any kind of issue. I'd be very happy to look at either a minimal reproduction or a repository with the actual application and try to see what's going on, but I'm going to close this for now.


Monorepo: use opam monorepo depext command

This command is available since 0.2.6 and can replace the workaround we are using.

Looks good.


Add support to get connection data from Trigger Authorization in PostgreSQL Scaler

Signed-off-by: jorturfer<EMAIL_ADDRESS>
Add support to get connection data from Trigger Authorization in PostgreSQL Scaler
Checklist

[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[x] Tests have been added
[x] A PR is opened to update our Helm chart (repo) (if applicable, ie. when deployment manifests are modified)
[x] A PR is opened to update the documentation on (repo) (if applicable) https://github.com/kedacore/keda-docs/pull/535
[x] Changelog has been updated

Fixes https://github.com/kedacore/keda/issues/2110

I'm working on this, I will reopen it when is ready


add mDNS to server, to use http://ledscreen.local (ex.) URL

mDNS (originally known as Bonjour) allows a server to announce its presence on a network by name.
Practically, it means you can just type http://ledscreen.local (for example) in your browser and get to the screen without remembering the local ip. Useful for kids and friends.
It appears that the ESP32 Arduino library already offers mDNS: https://techtutorialsx.com/2020/04/18/esp32-advertise-service-with-mdns/
mDNS discovery of services works on Mac, iOS and Linux, but I'm not sure about Windows.
(I'm posting a few issues as much for everyone here than for me, to keep a list of the enhancements I'd like to try and implement)

Please see #55 for my feature proposal.


Research Spike: Splitstore

AC
Notes

Support splitting the blockstore across two drives like Lotus
Might not be needed because of LumberjackDB work: #1164

Not needed anymore as the garbage collector serves the same purpose.


create a crop endpoints

Resolves Issue #174

@hemanth06912 you have merge conflicts.

@hemanth06912 , there are still going to be merge conflicts because there are 20 files in this PR while you only need to commit 3 of them (controller, router and adding the route to api-router). Perhaps it would be easier to close this PR and create a new one, but make sure to checkout develop and do "git pull" before creating a new branch 😊

@hemanth06912 , there are still going to be merge conflicts because there are 20 files in this PR while you only need to commit 3 of them (controller, router and adding the route to api-router). Perhaps it would be easier to close this PR and create a new one, but make sure to checkout develop and do "git pull" before creating a new branch 😊


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Extract classes from Leanplum.h into their own header files

Having all the files be part of the same header file makes it hard to parse, hence extracting them into their own header files

test this please


Update README.md

This API is just what I needed!
However, please update the Readme file on what we can expect when we run this application.

Requirements and how to install them.
RestAPI server running. (<IP_ADDRESS>:3000)
What are some of the API endpoints? (Server Status, News, Forums)

I am writing this request, as I saw this API at least 3 times before deciding to see if it is what I wanted.

http://lostarkapi.herokuapp.com/ has the list of endpoints and interface to try out endpoints.
running localhost since its designed to run on heroku or docker.
repo was designed to just open source the backend of http://lostarkapi.herokuapp.com/

Maybe just add that into the readme file for clarification.

I could also make a PR of a potential README.md file.
The idea is just to tell people what is going on in the project when they first see it.

submit a PR if you want more information in readme. Again this repo is for Open Source purpose. If people want to run it, its easily done as is


Adding question to FAQ to encourage consideration be taken for non-native english speakers.

This PR addresses #30

I think that this substantively changes the already accepted wording in the current enforcement doc, referenced here:
Individuals come from different cultural backgrounds and native languages. While lack of intent to harm is not an excuse, try to identify any honest misunderstandings caused by a non-native speaker and help them understand the issue and how to change. Complex discussion in a foreign language can be very intimidating, and we want to grow our diversity also across nationalities and cultures.

Our actions will reflect compassion for all individuals. We will seek to understand, to educate, and, as necessary, take action.

I would prefer that we reiterate this language instead of writing new language. The new language seems to always give the non-english native an exemption except in the most egregious cases. This is problematic in countries where the cultural norm is to be disrespectful and dismissive of women.
My recommendation would be to put the referenced wording above in the FAQ instead.

Thanks for bringing that up, Carol. I agree.

Carol's point is something I hadn't considered; and I agree with her.
It's true that we should protect non-English speakers and we should care about the intent behind a communication, but it's also true that we don't want to create a carte blanche for bad behavior.
Thanks, Carol!

In light of some recent conversations we've had about voting procedure. I would suggest putting this PR back into "draft" mode, modifying it and zeroing out the votes so far. We have not yet written a PR prescribing this procedure but it seems common-sense and easy enough to being enacting here, if that is okay with you @tgeorgeux.


Feature Proposal: Traffic to a repository

Description
Some people are less likely to star. Other way to know how popular our repository is by knowing how much unique cloner and unique visitor in specific time span.
Is gitea will support traffic to a repository?
Screenshots
The GitHub equivalent looks like this:

I will also refer back to Codeberg where the request started: https://codeberg.org/Codeberg/Community/issues/307


[BUG] Link preview images not showing on Android devices

Whenever using Baileys to send a link to another user, it renders a different behavior for each platform:

On the web and iOS, it render ok, normal
On Android, it doesn't render the image, only the remaining information:

I actually went and tried solving it running different tests as shown in this issue by mkhotib20, but with no different results:
https://github.com/WhiskeySockets/Baileys/issues/260
The content of the message doesn't really matter, if it's only the link or in the middle of the text. Using getUrlInfo always results in bringing all the information needed to render the linkPreview:
{
  'canonical-url': 'https://github.com/',
  'matched-text': '*Name of user:*\nhttps://github.com/',
  title: 'GitHub: Let’s build from here',
  description: 'GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it.',
  originalThumbnailUrl: 'https://github.githubassets.com/images/modules/site/social-cards/campaign-social.png',
  jpegThumbnail: <Buffer >,
  highQualityThumbnail: ImageMessage {
    interactiveAnnotations: [],
    scanLengths: [],
    url: 'https://mmg.whatsapp.net/o1/v/t62.7118-24/f1/m233/up-oil-image-<CENSORED>?ccb=9-4&oh=01_<CENSORED>=650EE5F2&mms3=true',
    mimetype: 'image/jpeg',
    fileSha256: <Buffer ab ec 31 5b 8e 8b b6 ea 46 0d b9 d1 a3 2d db a5 f0 ac 57 ca a9 e7 bb 3f f0 d1 e8 3f 5f 71 ea 54>,
    fileLength: Long { low: 309453, high: 0, unsigned: true },
    mediaKey: <Buffer 98 6e 22 b3 84 10 16 17 a7 6f 3b 41 f3 41 f8 bd ba 13 a4 55 b4 62 f8 43 0a 9e 07 2d da 91 ac 99>,
    fileEncSha256: <Buffer d7 33 f9 d9 bf 48 aa 41 a5 88 40 90 b9 39 9c 18 db e9 db 5e d9 6e 6c e1 1d ed c1 a3 31 67 b8 26>,
    directPath: '/o1/v/t62.7118-24/f1/m233/up-oil-image-<CENSORED>?ccb=9-4&oh=01_<CENSORED>&oe=650EE5F2',
    mediaKeyTimestamp: Long { low:<PHONE_NUMBER>, high: 0, unsigned: false }
  }
}

If I try and send the same link with the exact same message through Web or even the Android platform, it renders correctly. I got some other to test it and they confirmed as well, it's not rendering correctly on Android.

any news on this matter?

{
"canonical-url": "https://github.com/",
"matched-text": "Name of user:\nhttps://github.com/",
title: "GitHub: Let’s build from here",
description:
"GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it.",
originalThumbnailUrl:
"https://github.githubassets.com/images/modules/site/social-cards/campaign-social.png",
jpegThumbnail: "",
highQualityThumbnail: {
interactiveAnnotations: [],
scanLengths: [],
url: "https://mmg.whatsapp.net/o1/v/t62.7118-24/f1/m233/up-oil-image-?ccb=9-4&oh=01_=650EE5F2&mms3=true",
mimetype: "image/jpeg",
fileSha256:
"<Buffer ab ec 31 5b 8e 8b b6 ea 46 0d b9 d1 a3 2d db a5 f0 ac 57 ca a9 e7 bb 3f f0 d1 e8 3f 5f 71 ea 54>",
fileLength: {
low: 309453,
high: 0,
unsigned: true,
},
mediaKey:
"<Buffer 98 6e 22 b3 84 10 16 17 a7 6f 3b 41 f3 41 f8 bd ba 13 a4 55 b4 62 f8 43 0a 9e 07 2d da 91 ac 99>",
fileEncSha256:
"<Buffer d7 33 f9 d9 bf 48 aa 41 a5 88 40 90 b9 39 9c 18 db e9 db 5e d9 6e 6c e1 1d ed c1 a3 31 67 b8 26>",
directPath:
"/o1/v/t62.7118-24/f1/m233/up-oil-image-?ccb=9-4&oh=01_&oe=650EE5F2",
mediaKeyTimestamp: {
low:<PHONE_NUMBER>,
high: 0,
unsigned: false,
},
},
};

still an issue?

still an issue?

Yes, it is. Apparently spread to the web channel as well: the same message is now rendering only text preview both on Android and WhatsApp Web.

It works on WhatsApp web, but not on Android, any solution?

@PurpShell do you know a solution to this issue?

Still having problem.


Create LICENSE

There should be some lisence to the docs so you can properly contribute to it.
Not sure if the MIT lisence is good.
But regardeless it needs a lisence.

I'm going to close this for now, as we haven't settled on a specific license text and this would need to be submitted by a Roblox employee.


BackgroundIsolateBinaryMessenger.ensureInitialized raises Null check during a platform message response callback

Steps to reproduce
Our application is quite complex with multiple isolates working with each other. I couldn’t create a minimum reproducible example, but the nature of this bug (Flutter internal stack trace only) should still give a decent idea about what’s going wrong.
Expected results
The error should not appear or a better error message should be given about what’s going wrong.
Actual results
The application raises a lot of unhandled errors that come from platform callbacks i suppose.
 ══╡ EXCEPTION CAUGHT BY SERVICES LIBRARY ╞══════════════════════════════════════════════════════════
The following _TypeError was thrown during a platform message response callback:
Null check operator used on a null value

When the exception was thrown, this was the stack:
 #0      BackgroundIsolateBinaryMessenger.ensureInitialized.<anonymous closure> (package:flutter/src/services/_background_isolate_binary_messenger_io.dart:56:34)
 #7      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
 (elided 6 frames from dart:async)

All Isolates being used execute BackgroundIsolateBinaryMessenger.ensureInitialized before performing any action. The issue seems to come from this line BackgroundIsolateBinaryMessenger.ensureInitialized:
portBinaryMessenger._completers
              .remove(identifier)!
              .complete(byteData);

Code sample
Code sample
There is no code sample since this is a Flutter only stack trace. I don’t know which code is causing it.

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
flutter: ══╡ EXCEPTION CAUGHT BY SERVICES LIBRARY ╞══════════════════════════════════════════════════════════
flutter: The following _TypeError was thrown during a platform message response callback:
flutter: Null check operator used on a null value
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0      BackgroundIsolateBinaryMessenger.ensureInitialized.<anonymous closure> (package:flutter/src/services/_background_isolate_binary_messenger_io.dart:56:34)
flutter: #7      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
flutter: (elided 6 frames from dart:async)
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════

Flutter Doctor output
Doctor output
[!] Flutter (Channel stable, 3.19.0, on macOS 14.3.1 23D60 darwin-arm64, locale en-GB)
    • Flutter version 3.19.0 on channel stable at /opt/flutter
    ! Warning: `dart` on your path resolves to /opt/homebrew/Cellar/dart/3.3.0/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /opt/flutter.
      Consider adding /opt/flutter/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision bae5e49bc2 (2 weeks ago), 2024-02-13 17:46:18 -0800
    • Engine revision 04817c99c9
    • Dart version 3.3.0
    • DevTools version 2.31.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/konstantinrr/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C65
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.83.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.82.0

[✓] Connected device (3 available)
    • iPhone (mobile) • 00008101-001E4D201145001E • ios            • iOS 17.3.1 21D61
    • macOS (desktop) • macos                     • darwin-arm64   • macOS 14.3.1 23D60 darwin-arm64
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 116.0.5845.179
    ! Error: Browsing on the local area network for iPhone SE. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this
      Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for antonis’s Apple Watch. Ensure the device is unlocked and discoverable via Bluetooth. (code -27)
    ! Error: Browsing on the local area network for G. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for G. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Hi @KonstantinRr
There was a proposal here at https://github.com/flutter/flutter/issues/137687 to handle null case but still need a reproduction sample to investigate it further.
I would recommend you narrow down the issue and provide a minimal sample code to reproduce this so that we can verify the issue. Thanks!

Thanks for your support! I missed #137687
I actually found the issue by now. It is quite simply because the completion handler in the Swift plugin (result: @escaping FlutterResult) was called twice for the same request. One time with an error and one time with data. That makes sense in the context of the error since the completion handler is removed after the first message has been handled.
I could probably build a reproducible example from here if needed. An assert would probably make sense at the null check to save hours of finding the bug and pinning it down.

I could probably build a reproducible example from here if needed.

Thanks, it would be helpful!


Discussion, egui taffy and flex

https://github.com/emilk/egui/issues/4378
I wanted to provide feedback for these great egui layouting approaches.
I have played around with egui taffy, tried some modifications.
One approach that seems to work nicely for layouting group of components is to embed them into Frame and ScrollArea. Then from Frame borders and ScrollAreaOutput  real width, height can be retrieved that can be used to invalidate, recalculate layout for the next frame.
This allow for grow and shrink functionality to work. Sadly with some jitter, frame delay.  (Will try to solve issue with: https://github.com/emilk/egui/pull/5059)

Will explore egui flex.  Would be great if some kind of shrink functionality could be supported if, for example, in list of buttons largest button is removed, the space could be shrunk. Maybe response could provide optional minimal size feedback that could be used (even if custom widgets must be implemented to provide this information).
Thank you for your great work in this area!

in list of buttons largest button is removed, the space could be shrunk.
This should definitely work, what doesn't work is something like flex-shrink, where it checks all the items for their intrinsic size and then shrinks them to fit into the available space.


Strong Windows installation tutorial update

Salut l'équipe !
I started using CGAL on Windows a few months ago, and I faced a lot of compilation and installation difficulties.
After weeks of problem solving, I finally wrote an installation tutorial for CGAL and its third party libraries.
You can find it in this Gist:
→ https://gist.github.com/maximecharriere/5b071d5d07581af58b7333fe72a3e1f7
Part of this tutorial is about libpointmatcher, so I propose to include it in your repository.
My installation logic is slightly different from the current tutorial.
In my tutorial, all necessary environment variables will be configured so that CMake automatically finds all libraries, while in the current tutorial you have to specify the libraries' paths each time to CMake.
It is only for the Eigen library that it is necessary to specify its path to CMake, because libnabo and libpointmatcher's CMakeList.txt does not search in environment variables.  (possible improvement in PR 448 ?)

Can one of the admins verify this patch?

And if you have any suggestions or improvements, I'd love to hear from you!
For example, at the moment libpointmatcher and libnabo require a special installation procedure. So tell me if you know how to simplify the installation.

Libpointmatcher need to be install as shared librairy, otherwise the following line in libpointmatcherConfig.cmake wont find yaml-cpp-pm-targets.cmake.10: include(${CMAKE_CURRENT_LIST_DIR}/yaml-cpp-pm-targets.cmake)

Libnabo need to be build in all mode (Debug/Release/RelWithDebInfo/MinSizeRel), otherwise Libnabo will not be found when building a programme using Libpointmatcher in a mode for which Libnabo has not been build for.

ok to test

You will be our Windows expert ;)
That's an interesting behavior that Libnabo needs to be build in all mode. On Ubuntu and Mac, the linking will work independently of the build mode. Otherwise, it would be hard to deal with third party shared library. Is that a limitation from CGAL?

Tks for the merge !

About Libnabo, i don't thinks that's come from CGAL.
When I only build Libnabo (corresponding to make all UNIX command) in Release, the following libnabo-targets.cmake is generated :
...
# Import target "libnabo::nabo" for configuration "Debug"
set_property(TARGET libnabo::nabo APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(libnabo::nabo PROPERTIES
  IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
  IMPORTED_LOCATION_DEBUG "C:/dev/libnabo/build/Debug/nabo.lib"
  )

# Import target "libnabo::nabo" for configuration "Release"
set_property(TARGET libnabo::nabo APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(libnabo::nabo PROPERTIES
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
  IMPORTED_LOCATION_RELEASE "C:/dev/libnabo/build/Release/nabo.lib"
  )

# Import target "libnabo::nabo" for configuration "MinSizeRel"
set_property(TARGET libnabo::nabo APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL)
set_target_properties(libnabo::nabo PROPERTIES
  IMPORTED_LINK_INTERFACE_LANGUAGES_MINSIZEREL "CXX"
  IMPORTED_LOCATION_MINSIZEREL "C:/dev/libnabo/build/MinSizeRel/nabo.lib"
  )

# Import target "libnabo::nabo" for configuration "RelWithDebInfo"
set_property(TARGET libnabo::nabo APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO)
set_target_properties(libnabo::nabo PROPERTIES
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELWITHDEBINFO "CXX"
  IMPORTED_LOCATION_RELWITHDEBINFO "C:/dev/libnabo/build/RelWithDebInfo/nabo.lib"
  )
...

You can see that each build mode has its own path.
I think that afterwards, programs that import libnabo look for nabo.lib in the specified paths corresponding to the config mode, which do not exist since Libnabo was only built in Release.
However, if I install libnabo (corresponding to make install UNIX command) in Release, a libnabo-targets-release.cmake is generated with the following code:
...
# Import target "libnabo::nabo" for configuration "Release"
set_property(TARGET libnabo::nabo APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(libnabo::nabo PROPERTIES
  IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
  IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/nabo.lib"
  )
...

The path to nabo.lib is always the same, so it won't come into conflict.

Anyway, I think I'll write in the tutorial that you have to install libnabo, and not only to build it. This way it is no longer necessary to build it in all modes.
I will also remove that it's necessary to manually set EIGEN_INCLUDE_DIR variable, since now it is automatically found in the environment variables.
I'm just waiting for the PR110 from libnabo to be merge before updating the tutorial.
Are you the BIG MASTER of libnabo repository ? Can you check this PR about Eigen finding? It's exactly the same that the one you just merged in libpointmatcher.

Not that big of a master, but I've access. I'll have a look.

it is merged


Documentation popup covers other popups

I am currently seeing this issue while working with Rust.
Steps to reproduce:
The workflow as as follows:

Run cargo check (SPC m b c) (cursor moves to the popup itself)
Move cursor back to the buffer
Press K to show documentation on some Item

What did you expect to happen?
A new popup above/below/beside the cargo check popup should appear showing the documentation.
What actually happened?
The documentation popup is placed on top of the cargo check popup. Which means that pressing ESC to close the documentation popup, the cargo check popup will also disappear.
Additional details:

Include a link to your private config

https://github.com/rakanalh/dotfiles/tree/master/.doom.d

Include screenshots/casts of your issue

If you mention key sequences, include what commands they're bound to (use SPC h k KEY or C-h h k KEY to inspect keys).
Include any warnings or errors logged to *Messages* (use M-x view-echo-area-messages to see it).

If an error message is involved include a backtrace of it.
How to acquire a backtrace:
https://github.com/hlissner/doom-emacs/blob/develop/docs/getting_started.org#how-to-extract-a-backtrace-from-an-error

System information:

((emacs
  (version . "26.3")
  (features . "NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS")
  (build . "Sep 02, 2019")
  (buildopts "--with-ns '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp' --with-modules")
  (windowsys . batch)
  (daemonp . server-running))
 (doom
  (version . "2.0.9")
  (build . "HEAD -> develop afa6b7ab9 2020-02-27 11:55:27 -0500")
  (dir . "~/dotfiles/.doom.d/"))
 (system
  (type . darwin)
  (config . "x86_64-apple-darwin18.2.0")
  (shell . "/bin/zsh")
  (uname . "Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64")
  (path "~/perl5/bin" "/usr/local/bin" "/usr/bin" "/bin" "/usr/sbin" "/sbin" "/usr/local/git/bin" "/usr/local/go/bin" "/opt/sm/bin" "/opt/sm/pkg/active/bin" "/opt/sm/pkg/active/sbin" "/bin" "~/Code/Go/bin" "~/.bin" "~/.cargo/bin" "/Applications/Emacs.app/Contents/MacOS/bin-x86_64-10_14" "/Applications/Emacs.app/Contents/MacOS/libexec-x86_64-10_14" "/Applications/Emacs.app/Contents/MacOS/libexec" "/Applications/Emacs.app/Contents/MacOS/bin"))
 (config
  (envfile . envvar-file)
  (elc-files . 0)
  (modules :completion company ivy :ui doom doom-dashboard doom-quit hl-todo hydra modeline nav-flash ophints (popup +all +defaults) treemacs vc-gutter vi-tilde-fringe window-select workspaces zen :editor (evil +everywhere) file-templates fold (format +onsave) multiple-cursors rotate-text snippets :emacs dired electric ibuffer vc :term vterm :checkers syntax :tools editorconfig (eval +overlay) (lookup +docsets) lsp magit :lang data emacs-lisp go javascript lua markdown (org +dragndrop +ipython +pandoc +present) (python +pyenv) (rust +lsp) sh solidity :config (default +bindings +smartparens))
  (packages . "<(void-function sp-point-in-string)>")
  (unpin "n/a")
  (elpa "n/a")))

This should be a simple matter of specifying rules for one or the other popup, with a non-zero :slot (so they display side-by-side) or :vslot (so they display stacked on top of each other).
Could you tell me what M-: (buffer-name) returns for the two buffers?

Sure, for cargo check it's *rustic-compilation*
and the help buffer has the name of *lsp-help*

I tried adding:
  (set-popup-rule! "rustic-compilation" :ignore nil :actions: nil :side 'bottom :width 0.5 :quit 'current :select t :slot -1)

And the problem is solved. Feel free to close this issue if you think this is a config-specific issue and not Doom emacs.
Many thanks @hlissner

I thought this should be fixed in the module, so I've pushed a similar rule in 429dece. Thanks for bringing it to my attention!


CI for Node

CI workflow created from a github template

Sets the current player to be whoever it is not


Fail on no component in metadata

Fail if cyclonedx sbom metadata does not contain component section and augmentation is requested.

Superseded by https://github.com/sbomify/github-action/commit/3d1dd70ca4e6fdbe5b1cd1bcd4a23b1ec085dc3e


Batur

@m-schoettel,
In Batur.xml, I have closed the second <foreign> tag for <lb n="Ar4" break="no"/><supplied reason="lost">ra rakryan apatiḥ riṁ</supplied> jaṅgala kaḍiri, mpu mada, <foreign xml:lang="san-Latn">raṇa-maddhyāryy-anukūla-karaṇa</foreign>, <foreign xml:lang="san-Latn">para-sainya-śiraḥ-kapāla-gan<unclear>v</unclear>otpāna <!--em. something here, either utpāda or utpanna, and garva/gardha (pride, arrogance?)-->ma
Can you check that I have closed it at the right place?
Thanks

@m-schoettel : why haven't you reacted?

I am not really sure myself whether this Sanskrit compound ends with -otpāna and another starts with ma(...), or if it is one long compound beginning with raṇa-maddhyāryy- and straddling the line boundary. Maybe the second option is the most likely.
So it was hard to decide which place is the "right place" to close the foreign tag. The problem is that several syllables are missing at the beginning of l. 5, which makes the interpretation difficult for me.
I have tried to solve this in any case. Yet, the file still does not validate.

Thanks Marine. The current validation problem is the same one as the one raised in #34, unrelated to the issue raised here by Axelle. So I am closing this issue.


Tornado sharding for normal zulip installations

With this, sharding-style config files will be present on all installations, but if the server doesn't configure sharding in zulip.conf, the behavior will stay the same as before - tornado on port 9993.
The procedure to change sharding is:

Edit zulip.conf
Run  /home/zulip/deployments/current/scripts/refresh-sharding-and-restart as root with one of the self-explanatory flags --adjusted-only,--shards-added,--shards-removed. This will apply the changes to appropriate config files and restart the necessary processes.

An important thing still missing is that the /home/zulip/deployments/current/scripts/refresh-sharding-and-restart script should be made smarter and not restart all of zulip-tornado:* - since we only need to either start up more processes or stop some processes, but the other ones shouldn't be touched.

Thanks for working on this @mateuszmandera!
I squashed your fixes into the second commit, as that felt more readable than having the intermediate state in there and pushed back here.

@timabbott I pushed requested changes, and most notable, I changed the sharding.py script to write to .tmp files first - and then refresh-sharding-and-restart moves them to the target filenames.
This is most useful because of the fact how premature nginx reload messes things up by changing routing of requests too early.
We don't want a puppet-induced nginx reload to load the updated nginx_sharding.conf before we are ready. By writing into .tmp files first, we have full control and can move them into place, reload django and then reload nginx on our own terms.
Plus it just felt kind of wrong for the script to be writing to config files directly :neutral_face:

I pushed changes as separate commits, as I think that should be easier to review, but I assume we'll squash them later.

OK, this is close, but the puppet piece is broken -- we write to the .tmp files and then never move things over.  I think it'd be correct to move the mv / chown logic into sharding.py rather than the other tool.  For now I'm testing this with the puppet Exec rule removed on chat.zulip.org to make sure that works properly; and then I'll try testing on staging as well.

OK, this is close, but the puppet piece is broken -- we write to the .tmp files and then never move things over

That was intentional - I didn't want it moved, so that it wouldn't get loaded if puppet does nginx reload, as it's disruptive to the active web clients. I'm not sure how to resolve in another way than as it is - mving in the final script, which ensures to restart zulip-django before loading the new config into nginx.

OK, I confirmed this works on all of our production environments, and produces identical output to what is expected, so merged with that one puppet block removed, thanks @mateuszmandera!
It's probably worth doing the extra work to write the correct version of that puppet block (at the moment, the model is just that there's an extra step when setting up a sharded server, which is sorta OK); though maybe we want it conditional on there being a tornado_processes set?

Maybe we should just leave that last bit out of puppet for now?

Yeah I think that may be the only answer right now, if we don't want this unfinished state with .tmp files waiting to be moved to be produced by puppet. Given that moving the files is strongly tied to restarting django - and puppet shouldn't meddle with the latter


Add Arrow format doc

Summary
Add a doc for arrow format with binary depicted.

How to test

Checklist

[ ] I have added unit tests to cover my changes.
[ ] I have added integration tests to cover my changes.
[x] I have added the description of my changes into CHANGELOG.
[ ] I have updated the documentation accordingly

License

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

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

Codecov Report
Patch and project coverage have no change.

Comparison is base (08425db) 78.68% compared to head (cc085a2) 78.69%.

Additional details and impacted files
@@               Coverage Diff               @@
##           releases/1.2.0     #948   +/-   ##
===============================================
  Coverage           78.68%   78.69%
===============================================
  Files                 231      232    +1
  Lines               26408    26420   +12
  Branches             5257     5258    +1
===============================================
+ Hits                20780    20790   +10
+ Misses               4403     4402    -1
- Partials             1225     1228    +3

Flag
Coverage Δ

macos-11_Python-3.8
?

ubuntu-20.04_Python-3.8
78.69% <ø> (+0.02%)
:arrow_up:

windows-2019_Python-3.8
?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 9 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Search should ignore case

Search in account list should ignore case.
Steps to reproduce:

create account "Транспорт"
try to search "трансп"
try to search "Трансп"

Expected results:

ok
Search result contain "Транспорт"
Search result contain "Транспорт"

Actual results:

ok
Empty search result
Search result contain "Транспорт"

I followed the steps above on Android 6.0.1 and failed to reproduce the issue.
It looks like it was fixed in Android 5.0. See https://issuetracker.google.com/36918562#comment11.

Works on Android 6.


Allow search by UniProt subcellular location

It would be a useful feature to be able to search by a UniProt subcellular location. The action taken on successful search needs discussion, but we might direct the user to the batch search for all targets linked to the subcellular location.
Example: User types Cell membrane or SL-0039.
This would require some work on the rest_api.

This issue has been closed as it has been captured on the Master Feature Prioritisation worksheet available on the team's Google Drive.
CC: @d0choa


FR: initializing variable-shaped arrays; lists/arrays as arguments to array constructors and other functions

I'm relatively new to numba, so my apologies if this is something trivial that already exists but I haven't been able to find.  I'm trying to create an array with a variable shape, but the (numba-)numpy array constructors (eg. zeros(), ones(), etc) only accept tuples, but at the same time numba doesn't support casting lists or arrays to tuples.
For example, let's say I have an input ndarray that can have any shape and dimension, and I want to create a new array with one-less entry along each dimension.
@numba.njit
def var_shape(data):
    ndim = data.ndim
    shape = data.shape
    new_shape = np.zeros(ndim, dtype=numba.int32)
    for ii in range(ndim):
        new_shape[ii] = shape[ii] - 1

    new_data = np.zeros(new_shape)    # this fails
    return new_data

The workaround I've been using is just to use only 1D arrays (i.e. of size np.prod(shape)), and ravel multi-dimensional indices into 1D indices.  This works, but can be quite cumbersome.
Would it be difficult to add implementations of the array constructors that accept lists/arrays?
Similarly, in trying to deal with variable-dimensional arrays, I've found a number of numba-implemented numpy functions that don't accept lists/arrays as arguments (e.g. unravel_index(), ravel_multi_index()).  Is there a systematic reason why these can only accept tuple-like arguments?

Thanks for the feature request.
The key thing in all of this is that Numba has to statically infer the type of every variable at compilation time. It does this by feeding the types of the arguments and a large set of "rules" based on CPython and NumPy semantics this into an iterative type inference algorithm. The result of the type inference algorithm can be see via the inspect_types method on the dispatcher objects, e.g.:
from numba import njit
import numpy as np

@njit
def foo(x):
    y = x[0]
    z = x * y
    return z

foo(np.ones(4))
foo.inspect_types()

RE: "constructors" accepting tuples/arrays.
With some work I think this is possible, it's just not been implemented yet. The type of new_shape is obviously an array but it will have a fixed number of dimensions and the returned array would have to have the same number of dimensions, this would permit type inference to work.
As a work-around the numba.np.unsafe.nadarray.to_fixed_tuple routine (in the unsafe module for a reason, there's no safety net) can be used.
from numba import njit
from numba.np.unsafe.ndarray import to_fixed_tuple
import numpy as np

@njit
def var_shape(data):
    ndim = data.ndim
    shape = data.shape
    new_shape = np.zeros(ndim, dtype='int32')
    for ii in range(ndim):
        new_shape[ii] = shape[ii] - 1

    new_shape_tuple = to_fixed_tuple(new_shape, ndim)

    new_data = np.zeros(new_shape_tuple)
    return new_data

d = np.ones((2, 3, 5))
ret = var_shape(d)
print(ret.shape)

Hope this helps for now?
RE: Would it be difficult to add implementations of the array constructors that accept lists?
I think it would be impossible in all but the literal-list case. As lists are dynamic in size, it's generally not possible at compilation time to statically infer any information in relation to their size for use in functions such as array constructors. Example:
@njit
def foo(x):
    if len(x) > 2:
        x.append(3)
    new_arr = np.zeros(x) # What size is x? this determines the shape of new_arr

foo([1,])

the probably quite rare constant-size list could potentially work though, but it's of limited use as a tuple already works in this case of prescribing a constant literal valued container.
@njit
def foo():
    const_list = [1, 2, 3]
    # could potentially force `const_list` to be immutable at this point
    new_arr = np.zeros(const_list)

RE:

Similarly, in trying to deal with variable-dimensional arrays, I've found a number of numba-implemented numpy functions that don't accept lists/arrays as arguments (e.g. unravel_index(), ravel_multi_index()). Is there a systematic reason why these can only accept tuple-like arguments?

Would suggest the same reasons as above. Arrays are potentially possible but haven't been implemented, dynamicaly sized containers are likely impossible.

Thanks @stuartarchibald that's super helpful (both for understanding the situation, and for the to_fixed_tuple trick).  I'm still confused about why it's problematic to have a dynamic size (or dimension) if the type (e.g. int) was clearly defined, but I'll try to learn more about how numba works to understand better.  It sounds like this is at least unfeasible, so I'll close the issue.  Thanks again.

@lzkelley no problem, I'm afraid I made an error in working out whether this was possible generally, I'm afraid it's not, and I've updated my original explanation to cover this. Apologies for any confusion caused.


Why Op is exclude watch

In op.go, watch operation is not exported. Why?  I want use it in the Txn. thanks

It does not really make sense to include watch in txn. You can always watch from a given rev.
If txn.response.rev=10, then you can watch either from 10 or 11.

Close this. Reopen if you have a follow up question. Thanks.


Add currentDate as a task in Date.elm

We have Date and we have Task, so IMHO we should have a task to get the current date.
This PR implements
Date.currentDate : Task () Date

Of course it could be named differently or could be put into another module. The chosen ones are just my preference.
I didn't write a test within the core library as there are no tests for tasks up to now.
But I did test the code for my own and it works like expected.

Why a Task?

Here is a simple test app:
import Html
import Date exposing (Date)
import Time
import Task

port execute : Task.Task () ()
port execute =
  Date.currentDate
  `Task.andThen`
  \date -> Signal.send dateInput.address date

dateInput : Signal.Mailbox Date
dateInput = Signal.mailbox (Date.fromTime 0)

main = Signal.map
  (\date -> Html.text <| toString (Date.toTime date))
  dateInput.signal

@dnalot

Why a task?

How would you provide the ability to get the current date? Maybe I am missing something.
Granted, there is already Time.timestamp, which does the same in principal, but

it's not documented that timestamps actually represent real time/date.
it's cumbersome to define an extra signal when you need the current date in a task (e.g. send the local time to a server).

IMHO, the core libarary should provide both,

timestamp as a signal function for needs within the pure Elm-Architecture
currentDate as a task for needs in the imperative task-based world

Ha I forgot time isn't referentially transparent. Your implementation looks straightforward! It seems essential for debugging and countdown timers. What's your use case? Feedback: functions generally shouldn't restate their package name. I like JS's Date.now but maybe there are alternatives.

Thanks @dnalot, I renamed the function to Date.current (but Date.now would be equally handy).

current is only slightly odd being an adjective. @evancz recommended in #303 vetting new functionality in separate libraries. I didn't see a good fit in existing packages or unpublished repos but it sounds like a superb idea for a new elm-date-extra! @rehno-lindeque might have something to add.

To get this done in a timely manor, I think it makes sense to make a package for time that has nice things in it. We will do a systematic review of these libraries at some point and bring them into core. (plan outlined here)

Sorry for the long delay on getting you a response @ThomasWeiser. It is hard to juggle all the stuff going on these days!

An -extra package sounds like a fine idea. @ThomasWeiser we have a bunch of them here https://github.com/circuithub?utf8=✓&query=elm if you're looking for any examples


no h1_twohands.yaml  and h1_backflip.yaml under algos/student  folder when train main_student

no h1_twohands.yaml  and h1_backflip.yaml under algos/student  folder
when train main_student

@dobro12 ,hello, could you please provide these two files  h1_twohands.yaml and h1_backflip.yaml under algos/student folder ,

Hello dbdxnuliba,
Actually, we didn't have the real H1 robot, so we only trained teacher
policies for the H1-Twohand and H1-Backflip.
Thus, we didn't provide those yaml files but it can be easily implemented
by copying and pasting the "go1_backflip.yaml" and changing the file name
to "h1_backflip.yaml".
And also change the parameters accordingly. I attached a file,
"h1_backflip.yaml", and "h1_twohands.yaml" also can be created in similar
ways.
Thanks. Regards
On Mon, Oct 28, 2024 at 9:32 PM dbdxnuliba @.***> wrote:

@dobro12 https://github.com/dobro12 ,hello, could you please provide
these two files h1_twohands.yaml and h1_backflip.yaml under algos/student
folder ,
—
Reply to this email directly, view it on GitHub
https://github.com/rllab-snu/Stage-Wise-CMORL/issues/1#issuecomment-2441460918,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHUQNRGNPIMFSUZMVCSTDJLZ5YVEHAVCNFSM6AAAAABP3TWMG6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBRGQ3DAOJRHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

ok，I see ，thanks a lot, I will have a try to train h1 student


RenderBox was not laid out: RenderRepaintBoundary#3ed32 relayoutBoundary=up16 NEEDS-PAINT

Steps to Reproduce

Execute flutter run on the code sample
...
...

Expected results:
Actual results:

Code sample

Logs

@Esra2-Abdelltif
Without a reproducible code sample we will not be able to analyze this error properly, so please provide one that we can use to replicate.
Also, When opening an issue, please try to provide all or some of the information indicated in the template.

Issue Template
If you are looking for support, please check out our documentation
or consider asking a question on Stack Overflow:
- https://flutter.dev/
- https://api.flutter.dev/
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent

If you have found a bug or if our documentation doesn't have an answer
to what you're looking for, then fill our the template below. Please read
our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports

Steps to Reproduce

Please tell us exactly how to reproduce the problem you are running into.

Please attach a small application (ideally just one main.dart file) that
reproduces the problem. You could use https://gist.github.com/ for this.

If the problem is with your application's rendering, then please attach
a screenshot and explain what the problem is.

1. ...
2. ...
3. ...

Please tell us which target platform(s) the problem occurs (Android / iOS / Web / macOS / Linux / Windows)
Which target OS version, for Web, browser, is the test system running?
Does the problem occur on emulator/simulator as well as on physical devices?

Target Platform:
Target OS version/browser:
Devices:

Run your application with `flutter run --verbose` and attach all the
log output below between the lines with the backticks. If there is an
exception, please see if the error message includes enough information
to explain how to solve the issue.

Run `flutter analyze` and attach any output of that command below.
If there are any analysis errors, try resolving them before filing this issue.

Finally, paste the output of running `flutter doctor -v` here.

Closing this issue, since no information has been provided.
Thank you.


added burn specific cards functionality

Hi!
I would like to use this lib for a poker app I'm making, but i need the ability to burn specific cards.
This PR adds this functionality.

Closing as stale.


Money does automatic conversion of floats, which is extremely unhelpful

Compare:
>>> from decimal import Decimal
>>> Decimal("2.3") * 1.2
TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float'

There are extremely good reasons for this behaviour, and it is one of the primary reasons that you would choose to use Decimal to represent money. A decimal library must never do a lossy conversion, and I use the Python Decimal module precisely because I can rely on it to do this correctly, and throw an exception if I ever make the mistake (and it's always a mistake) of mixing floats into my decimal calculations.
With py-moneyed, on the other hand:
>>> Money(amount='2.30', currency='USD') * 1.2
2 USD

I find this very surprising for a library designed to handle money. It should surely throw an exception instead.

Closing as the PR is merged


Update esprima to 4.0.1

This allows users to use a newer version of esprima in their root node_modules and make sure that escodegen uses that version, rather than its bundled 3.x version.
Closes #366
Relates to #391

@michaelficarra can you merge this pr?

Why is there a dependency on esprima in the first place?

It used here:
https://github.com/estools/escodegen/blob/master/test/preserve-blank-lines.js

Also this PR is depends on 4.x version
https://github.com/estools/escodegen/pull/383

@sanex3339 That would be a dev dependency, but it's a regular dependency.
I see now though, it's used in the CLI: https://github.com/estools/escodegen/blob/master/bin/escodegen.js. I doubt anybody uses the CLI for anything.

Anyway, modify of CLI script is not task of this PR.
Just let update it to merge https://github.com/estools/escodegen/pull/383

Thank you


Univ3 Rebalance

WIP

Made a different branch for this, as I was nervous there were lots of other changes in that branch.

Closes pickle-finance/internal/issues/51


[fusion-react] Add example of flow typing split component

Recently the types needed when using split were updated but its unclear what the types should now look like. Related diff: https://github.com/fusionjs/fusionjs/pull/446/files#diff-e79605b7f794b824b28bb00390c61d68R13

Fixed in https://github.com/fusionjs/fusionjs/pull/502


AxiMaster overloads cocotb scheduler when using large AXI-ID vectors

AxiMaster schedules ~2**(id_length+1) coroutines upon its creation. This slows down simulation considerably.
at 17 bits width:
INFO     cocotb:simulator.py:289 #    412.00ns INFO     cocotb.regression                         regression.py:574  in _log_sim_summary                *************************************************************************************
INFO     cocotb:simulator.py:289 #                                                                                **                                 ERRORS : 0                                      **
INFO     cocotb:simulator.py:289 #                                                                                *************************************************************************************
INFO     cocotb:simulator.py:289 #                                                                                **                               SIM TIME : 412.00 NS                              **
INFO     cocotb:simulator.py:289 #                                                                                **                              REAL TIME : 36.39 S                                **
INFO     cocotb:simulator.py:289 #                                                                                **                        SIM / REAL TIME : 11.32 NS/S                             **
INFO     cocotb:simulator.py:289 #                                                                                *************************************************************************************
INFO     cocotb:simulator.py:289 #
INFO     cocotb:simulator.py:289 #    412.00ns INFO     cocotb.regression                         regression.py:259  in tear_down                       Shutting down...
INFO     cocotb:simulator.py:289 # Simulation halt requested by foreign interface.

Profiling graph:

that's odd.  I'm not sure why the scheduler would be doing anything for idle coroutines.  I'll bring this up with the cocotb people.  I can perhaps do some sort of lazy allocation of those resources - i.e. only spin up coroutines and allocate queues when IDs are active, and then perhaps delete them when the IDs become inactive.  Lazy allocation could make sense, but if you do a sweep over the whole tag space, then you're right back where you started unless I also clean up inactive IDs, but then that's extra overhead if the problem is really in the cocotb scheduler.
how do you get that call graph?  That would be super useful for tweaking the interface extensions.

Oh, I know what I can do - make the mapping dynamic, with lazy allocation.  That way, it will only spin up coroutines up to the number of unique active IDs at any one time, independent of the number of possible IDs.  In that case, I won't clean up the queues and coroutines, just remove them from the mapping to be used for a different ID.

Oh, is this only a problem during init?  After init, the simulation is fast?

Alright, try again with the git version and let me know if the performance is any different.

The most visible speed impact is at initialization and again at teardown, but I would also expect that having a large amount of dormant coroutines doesn't make the scheduler any faster ;).
The fix you provided works out great, thank you for the fast action!
The call graph is created with https://github.com/jrfonseca/gprof2dot

I just released v0.1.12 with this change