[Feature Request] Study prefetching service and progress bar for display sets

Request

Display a progress bar close to each thumbnail and also in the scrollbar so the user knows which frame is cached
Have a configurable study prefetcher service with options to retrieve images similar to v2

  studyPrefetcher: {
    enabled: true,
    order: 'closest', // top-bottom or bottom-up or outwards
    displaySetCount: 3, // amount of displaySets up or down
    maxNumPrefetchRequests: 100,
    displayProgressBar: true,
  },

Context
The status of series loading is missing. Frame fetching/caching behavior is unclear - even though I scroll through a series several times, the scrolling remains jumpy, and the “Loading…” message keeps showing up. How can I know when the entire series is actually loaded?
v2 Port Redesign:
@dan-rukas add design here when finalized

New icons: loading, completed, incomplete

Same as #883 , pending since long time

Similar to issue #883, this pending task has been awaiting completion for an extended duration.

Me also facing the same issue. Needs to get fixed ASAP.  Same as #883

Same here, eagerly await this feature!

Need better user story for thumbnail. Could we discuss @igoroctaviano so @dan-rukas can document design
2nd part is scrollbar - we have idea of how to move forward for that

@dan-rukas any updates on this one?

Someone from community commented they would like to have a load time for the study which makes sense in this prefetcher

We will investigate and design during upcoming UI redesign

@james-hanks any updates on this?

@fedorov this in our queue for next major release (3.8). We are currently in design review phase. We will update the ticket with design when it is finalized - please feel free to take a look and comment at that time

some large use cases will de-cache and potentially reset the visual indicator which will be confusing for users
might make sense to replicate the UI in thumbnail and viewport

Is this feature being worked on actively? Maybe someone knows a branch with corresponding changes ongoing work/drafts?

Any update on this?

Not exactly a prefetching service as requested by this ticket but something I figured could be used for custom preloading of certain images (like all from specific displaySet) and potentially adapted to load all display sets in a background.
import { DisplaySet } from '@ohif/core';
import { getConfiguration as getCoreConfiguration, imageLoader } from '@cornerstonejs/core';
import { extensionManager } from '../../../App';

const preloadDisplaySet = async (displaySet: DisplaySet) => {
    const dataSource = extensionManager.getActiveDataSource()[0];
    const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
    const { useNorm16Texture } = getCoreConfiguration().rendering;
    const options = {
      targetBuffer: {
        type: useNorm16Texture ? undefined : 'Float32Array',
      },
      preScale: {
        enabled: true,
      },
      requestType: 'prefetch',
      priority: 0,
    };
    return Promise.all(imageLoader.loadAndCacheImages(imageIds, options));
};

No update, but this will come for next release

@sedghi When we can expect next release ?

@lscoder will start on this this week. We will target the top-bottom for now

Any updates on this? I tried to run @lscoder PR to test it, but didn't get what's changed and how it should work.
In my project, we want to download all images before showing OHIF UI, but I don't understand how the project do the requests to download the images. If someone could help me or give me some guidance to achieve this, I'd be so grateful 🙏🏾

@chriszao you should wait for Leo's PR to get merged first

Any updates on this? I tried to run @lscoder PR to test it, but didn't get what's changed and how it should work. In my project, we want to download all images before showing OHIF UI, but I don't understand how the project do the requests to download the images. If someone could help me or give me some guidance to achieve this, I'd be so grateful 🙏🏾

@chriszao  The changes are merged and you need to enable the service first because it is disabled by default.
Just a small doubt. Is there a way to download all studies? Because from what I understand, it downloads the amount defined in displaySetCount, based on the selected study, right? It would be great if the application was able to download all the studies in the background, doing something similar to what you implemented. But, for example, it downloads every 5 studies (could be a configurable variable), until it downloads them all.

@lscoder You saved my life with that PR hahaha! 🎉. Just a small doubt. Is there a way to download all studies? Because from what I understand, it downloads the amount defined in displaySetCount, based on the selected study, right? It would be great if the application was able to download all the studies in the background, doing something similar to what you implemented. But, for example, it downloads every 5 studies (could be a configurable variable), until it downloads them all.

@chriszao Good to hear that lol It downloads any displaySet returned by displaySetService.getActiveDisplaySets() that can be from the primary studies (StudyInstanceUIDs url parameter) or any related study. The only problem is that the displaySets from related studies are added to the displaySetService only after switching to All tab and clicking on one of the related studies to expand it to show the displaySets. After expanding a related study the study prefetcher can also load the displaySets from it as shown below.
https://github.com/OHIF/Viewers/assets/931820/e3c6304a-9c67-4555-9761-ae2f9dec49d7
Loading all the displaySets from related studies would not be a major change but it would require changing how the prefetcher works because it does not load studies but displaySets from any study.


rust feature macro breaks compilation - removed==resolved

rust feature macro breaks compilation - removed==resolved

This fixes make problem for building autopy


[nfc] [util] add util to check if an instruction dominates all uses of a value

This patch adds a utility function dominatesAllUses to check if an instruction dominates all uses of a value. NFC. Used in #30463.

Please update the base branch to main by Oct 5th otherwise the pull request will be closed automatically.

How to change the base branch: (Link)
More detail about the branch update: (Link)


FR: List of exclusion

Hi, this is a feature request, no a bug.
Can you include a list of exclusion? So the apps listed cache is not deleted.
It would be useful for applications such as MPDroid, who tend to maintain in cache the album covers
Thanks.

Hey @ThecaTTony, thank you for the suggestion !
Unfortunately, we have pretty much no control over cleaning of the internal memory - Android does it itself. What we do have control over is cleaning of the external memory, but implementing the feature for externally cached apps only may cause confusion among our users, so I'm afraid of that I'll have to reject your suggestion.

I might be misreading this, but I think you may be misunderstanding @ThecaTTony.  I think they are referring to cleaning external memory, and allowing exceptions for certain apps.  That said, IIRC, the method by which this app cleans the memory does not allow exceptions, as it is does not target cleaning of specific apps, but instead, the overall cache space.
I think @ThecaTTony 's idea is a very useful one.  But I don't think it could be done with how this app currently works.

You have misread that, @Gitoffthelawn. The idea is good (even though it might be in conflict with our principles of simplicity), but we cannot fully implement it.

Thanks anyway.


extraValues & readonly

Hi - just added the abilty to specify custom top-level options. would be nice if this could be done for 2nd level options or ranges... ie add "5 minutes" etc... in options for the create:
extraValues:[["5 Minutes","*/5 * * * "],["15 Minutes","/15 * * * *"]]
note the format is nested arrays - less than ideal / could be better
Also added a brute-force readonly method... which converts the value to text without the controls... pretty harshe but works.
I just thought that this stuff may be the start of doing this properly rather than my hacks :)

Thanks for the changes. Allowing extra custom values is a great idea, but I'm not sure if that's the cleanest approach.
I'll digest your edits when I get a chance to and try to integrate the feature.

I'm just committed an implementation of this (bef27d9). Hopefully this meets your requirements as well. Do feel free to suggest improvements to updates.
I'll wrap the changes up and release it under a new version once it's properly tested.
Many thanks for your contribution.

yes - i just did this as a once off for myself...  would be nice to have an
"other" period menu with configurable pre-set crons but I got to the point
of it doing what i needed... and then gave up... sorry.
Tom
On Wed, Oct 19, 2011 at 2:53 AM, Shawn Chin <
<EMAIL_ADDRESS>
Thanks for the changes. Allowing extra custom values is a great idea, but
I'm not sure if that's the cleanest approach.
I'll digest your edits when I get a chance to and try to integrate the
feature.
--
Reply to this email directly or view it on GitHub:
https://github.com/shawnchin/jquery-cron/pull/3#issuecomment-2443505

Yup. An "other" menu item with a secondary menu showing the custom entries would be also be nice, however that requires a much bigger change to the code.
The current scheme reads well ("Every [5 minutes]" instead of "Every [others] [5 minutes]") and requires only one selection. But this can get quite messy when you have lots of custom entries, so the other scheme would definitely scale better.
I can't decide on which is more user friendly so I'll stick to the simpler implementation for now. Will keep that in mind for future updates.
Many thanks.
Shawn


Sort deck manager

Sort deck manager, as requested here:
https://github.com/bmichotte/HSTracker/issues/345

Could you rebase along master so I can merge it ?


Add node v5 to tests.

I added stable to travis as  it is currently pointing to node v5.
I added dev dependencies to support npm v3 (sinon and chai were require but not found.) I also updated the libs. There is one test pending.

I added stable to travis as it is currently pointing to node v5.

Can we point to a specific version?

Yes we can, also I saw that the nvm stable alias is deprecated


Confusion about use of log buffer

I received the error Failed to run rustfmt: exit status 1 (see hidden buffer *apheleia-rustfmt-log*).
But I cannot find *apheleia-rustfmt-log* buffer.
BTW: rustfmt binary is already installed

Hey @c02y, thanks for the report. The log buffer is hidden by default, so you need to type a space into the switch-to-buffer interface to see it.
I have pushed d3304b018c4586fbdd49d5277740c50f905beae4 which changes this behavior so that the log buffer is non-hidden by default, and the previous behavior can be obtained using the new apheleia-hide-log-buffer user option.
Regarding the Rustfmt issue, I saw the same issue, which was in my case due to Apheleia passing the --unstable-features and --skip-children flags which were unavailable on my version of Rustfmt. I removed them in the same commit linked above, since I think --unstable-features was only needed for --skip-children, and --skip-children seems like it should not be needed if we are formatting from stdin. However, I could be wrong about that. @adimit and @npajkovsky, can you let me know if the revert breaks https://github.com/raxod502/apheleia/pull/45? And if so, is there a way to prevent the options from breaking stable Rustfmt installations? Mine gives
% rustfmt --unstable-features --skip-children --quiet --emit stdout < main.rs >/dev/null
Unrecognized option: 'unstable-features'

which is
% rustfmt --version
rustfmt 1.4.37-stable (59eed8a 2021-11-01)

from Ubuntu 21.10.

No, you're not wrong and you won't break anything.

But I cannot find *apheleia-rustfmt-log* buffer.

What I meant is that I could not find it in buffer list, not just in the Emacs frame, actually no any apheleia related buffer in buffer list.

UPDATE:
I just updated it to the latest commit.
It works fine, and two extra apheleia buffers *apheleia-diff-log* and *apheleia-rustfmt-log* are created.

UPDATE:
it seems when rustfmt fails, I have to open *apheleia-rustfmt-log* buffer manually to check what is going wrong, is it able to open split the window and open the buffer automatically when apheleia-format-buffer fails?

While it would in principle be possible to make Apheleia pop to the log buffer on error, I question whether that is actually a good idea. Apheleia is typically enabled to run on after-save-hook, in an asynchronous manner. This would mean that the current buffer would be switched unexpectedly after a nondeterministic delay, which feels like a bad user experience to me. Is there something about switching to the buffer manually which is inconvenient for you?
You are also correct that the log buffer contains all errors, because it is as the name suggests: a log. The most recent entry is at the bottom. I added a user option apheleia-hide-old-log-entries that allows customizing this behavior; please refer to the newly added documentation. In addition, I refactored the other code related to logging that was recently added by @mohkale, to hopefully improve readability. In particular, a timestamp is now included, which should make it impossible to mistake which entry is the most recent. Also, I fixed various bugs related to log buffer management, most concerningly the fact that formatter output was actually inserted at point rather than appended to the end of the buffer.

While it would in principle be possible to make Apheleia pop to the log buffer on error, I question whether that is actually a good idea.

Maybe an option would be better.
Split the window and open the error buffer, if formatter runs OK, then close it automatically, this is the emacs-format-all's logic, I really like it.
Also, I've tried apheleia-hide-old-log-entries, it doesn't hide the old error when formatter runs successfully, I thought the log buffer would be empty if it runs OK.

For what it's worth I agree we shouldn't show the log buffer by default, at least on save if the formatter fails and the buffer is switched I'd probably just find it frustrating. Most of the time I'm using a linter such as pylint which'll probably tell me what the error causing the formatter to fail was. However we could add a hook or another variable users could use to show the log buffer themselves. Something like apheleia-run-formatter-failed-hook. Pass it the symbol of the failed formatter and the end-user could probably reconstruct the log buffer-name and display it in a hook.

I agree that formatters shouldn't pop up error message buffers by themselves! I found that hugely frustrating with typescript's prettier-mode.
The hook could be a post apheleia run-hook that is run with the status of the last task as an argument. That's more generic than a hook specific to failure and would allow for more user customisation.

Maybe an option would be better

I have no objection to making it possible, but I don't want to add an out-of-the-box way to enable the functionality unless we can do it in a way that's a good user experience, and I don't see one at present. I don't think having a package change someone's window configuration unexpectedly is a good idea.

it doesn't hide the old error when formatter runs successfully

That's because no logging happens except on error, so you'd need to customize apheleia-log-only-errors to nil.

The hook could be a post apheleia run-hook that is run with the status of the last task as an argument

Yeah, I agree with that suggestion. Had to do a fair bit of refactoring to get information about the formatter threaded down far enough, but I think the result is an improvement. We now have apheleia-formatter-exited-hook which is called on both success and failure for each formatter, with context passed in as keyword arguments. This can be used to implement any UI logic the user desires. In particular it allows implementing apheleia-hide-old-log-entries yourself, so I removed that user option, it wasn't that good of an experience anyway in my opinion (it pretends that the log is not a log, but a status buffer, which it isn't -- if we want a status buffer we should implement a status buffer, not hack the log).

This thread is being closed automatically by Tidier because it is labeled with "waiting on response" and has not seen any activity for 90 days. But don't worry—if you have any information that might advance the discussion, leave a comment and I will be happy to reopen the thread :)


Can you share the model

@DvdNss Hello thanks for sharing the repo and I have check the demo on hugging face it looks good for 2500 images can you share the model if possible

Hello!
Sorry but I am not sharing the models. If you'd like to have access to them for a demonstration or for personal or commercial purposes, please contact me directly using my email or linkedin (this will also make my response time faster).


Update Set-VMDvdDrive.md

I removed PS C:> from examples 1-3.
PR Summary
Delete this comment block and summarize your changes and list
related issues here. For example:

Removed PS C:\> from examples 1-3.

PR Checklist

[x] Descriptive Title: This PR's title is a synopsis of the changes it proposes.
[x] Summary: This PR's summary describes the scope and intent of the change.
[x] Contributor's Guide: I have read the contributors guide.
[x] Style: This PR adheres to the style guide.

Sorry did not mean to do two pulls for Set-VMDrive.md


Add OpenTofu

Description
Add OpenTofu, Terraform community fork
Motivation and Context
#1039

[X] I have raised an issue to propose this change,
[ ] which has been given a label of design/approved by a maintainer (required)

2nd point : wanted to try out adding a tool in arkade, so code was ready before raising the issue / getting approval
How Has This Been Tested?
Added to the get_test.go, runs fine with make test
If updating or adding a new CLI to arkade get, run:
❯ go build && ./hack/test-tool.sh tofu
+ ./arkade get tofu --arch arm64 --os darwin --quiet
+ file /home/remy/.arkade/bin/tofu
/home/remy/.arkade/bin/tofu: Mach-O 64-bit arm64 executable, flags:<|DYLDLINK|PIE>
+ rm /home/remy/.arkade/bin/tofu
+ echo

+ ./arkade get tofu --arch x86_64 --os darwin --quiet
+ file /home/remy/.arkade/bin/tofu
/home/remy/.arkade/bin/tofu: Mach-O 64-bit x86_64 executable
+ rm /home/remy/.arkade/bin/tofu
+ echo

+ ./arkade get tofu --arch x86_64 --os linux --quiet
+ file /home/remy/.arkade/bin/tofu
/home/remy/.arkade/bin/tofu: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=9Tt_xR9kPqJaqClVjJuA/p7xfX5UfJNQ6Wt84T512/FYt8eHvv-SbLyPoLwRuL/9gl-ic9QrgkPfad8uBh_, stripped
+ rm /home/remy/.arkade/bin/tofu
+ echo

+ ./arkade get tofu --arch aarch64 --os linux --quiet
+ file /home/remy/.arkade/bin/tofu
/home/remy/.arkade/bin/tofu: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, Go BuildID=pTYvaKbCAOIArS8yTnu5/ARFeYvc0yoGvS31BgHte/VmpyrdQ2-4Niqy5kle7d/8aIs6lltsCVUk0Dd_A7r, stripped
+ rm /home/remy/.arkade/bin/tofu
+ echo

+ ./arkade get tofu --arch x86_64 --os mingw --quiet
+ file /home/remy/.arkade/bin/tofu.exe
/home/remy/.arkade/bin/tofu.exe: PE32+ executable (console) x86-64, for MS Windows, 8 sections
+ rm /home/remy/.arkade/bin/tofu.exe
+ echo

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Documentation

[X] I have updated the list of tools in README.md if (required) with ./arkade get --format markdown
[ ] I have updated the list of apps in README.md if (required) with ./arkade install --help

Checklist:

[X] My code follows the code style of this project.
[X] My change requires a change to the documentation.
[X] I have updated the documentation accordingly.
[X] I've read the CONTRIBUTION guide
[x] I have signed-off my commits with git commit -s

[ ] I have tested this on arm, or have added code to prevent deployment

@Jasstkn do you mind taking a look at this PR?

Sorry for the clumsyness, should now be fixed @alexellis.
Now it seems good, make all RC=0, except the weird fatal "no name found, unable to describe anything"
❯ make all
fatal : Aucun nom trouvé, impossible de décrire quoi que ce soit.
CGO_ENABLED=0 go test github.com/alexellis/arkade github.com/alexellis/arkade/cmd github.com/alexellis/arkade/cmd/apps github.com/alexellis/arkade/cmd/chart github.com/alexellis/arkade/cmd/oci github.com/alexellis/arkade/cmd/system github.com/alexellis/arkade/pkg github.com/alexellis/arkade/pkg/apps github.com/alexellis/arkade/pkg/archive github.com/alexellis/arkade/pkg/config github.com/alexellis/arkade/pkg/env github.com/alexellis/arkade/pkg/get github.com/alexellis/arkade/pkg/helm github.com/alexellis/arkade/pkg/k8s github.com/alexellis/arkade/pkg/types github.com/alexellis/arkade/pkg/update -cover
	github.com/alexellis/arkade		coverage: 0.0% of statements
ok  	github.com/alexellis/arkade/cmd	(cached)	coverage: 7.2% of statements
ok  	github.com/alexellis/arkade/cmd/apps	(cached)	coverage: 2.0% of statements
	github.com/alexellis/arkade/cmd/oci		coverage: 0.0% of statements
	github.com/alexellis/arkade/pkg		coverage: 0.0% of statements
	github.com/alexellis/arkade/pkg/env		coverage: 0.0% of statements
	github.com/alexellis/arkade/cmd/chart		coverage: 0.0% of statements
	github.com/alexellis/arkade/pkg/archive		coverage: 0.0% of statements
	github.com/alexellis/arkade/pkg/apps		coverage: 0.0% of statements
	github.com/alexellis/arkade/cmd/system		coverage: 0.0% of statements
ok  	github.com/alexellis/arkade/pkg/config	(cached)	coverage: 22.9% of statements
ok  	github.com/alexellis/arkade/pkg/get	(cached)	coverage: 40.8% of statements
ok  	github.com/alexellis/arkade/pkg/helm	(cached)	coverage: 0.9% of statements
	github.com/alexellis/arkade/pkg/k8s		coverage: 0.0% of statements
	github.com/alexellis/arkade/pkg/update		coverage: 0.0% of statements
	github.com/alexellis/arkade/pkg/types		coverage: 0.0% of statements
go build
mkdir -p bin
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X github.com/alexellis/arkade/pkg.Version= -X github.com/alexellis/arkade/pkg.GitCommit=0a8c851696e1bec5e4b9bd986de263caffc0fef7" -o bin/arkade
CGO_ENABLED=0 GOOS=darwin go build -ldflags "-s -w -X github.com/alexellis/arkade/pkg.Version= -X github.com/alexellis/arkade/pkg.GitCommit=0a8c851696e1bec5e4b9bd986de263caffc0fef7" -o bin/arkade-darwin
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -a -ldflags "-s -w -X github.com/alexellis/arkade/pkg.Version= -X github.com/alexellis/arkade/pkg.GitCommit=0a8c851696e1bec5e4b9bd986de263caffc0fef7" -o bin/arkade-darwin-arm64
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-s -w -X github.com/alexellis/arkade/pkg.Version= -X github.com/alexellis/arkade/pkg.GitCommit=0a8c851696e1bec5e4b9bd986de263caffc0fef7" -o bin/arkade-armhf
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X github.com/alexellis/arkade/pkg.Version= -X github.com/alexellis/arkade/pkg.GitCommit=0a8c851696e1bec5e4b9bd986de263caffc0fef7" -o bin/arkade-arm64
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -X github.com/alexellis/arkade/pkg.Version= -X github.com/alexellis/arkade/pkg.GitCommit=0a8c851696e1bec5e4b9bd986de263caffc0fef7" -o bin/arkade.exe
rm -rf bin/*.sha256 && ./hack/hashgen.sh

"no name found, unable to describe anything"

You may want to fetch release tags git fetch origin

At this moment if you need to have a support of Terraform as well as OpenTofu (and Terragrunt :) ) in one tool you can use https://github.com/tofuutils/tenv which my team wrote some months ago. A lot of users switched to that tool to unify version management in the world of Terraform.
You're welcome to open any issues or contribute to tenv.


[IMPROVEMENT] Refactor backupstore codes

Is your improvement request related to a feature? Please describe (👍 if you like this request)
backupstore code supports volume and backing image backup and restore. The codes are not well organized and a little bit messy.
In addition, backup and restore should use context to support task cancellation.
Describe the solution you'd like

Describe alternatives you've considered

Additional context

We should consider system backup & restore together in the refactoring. Abstract them and extensible.

Just remember, backupstore is being used by different release branches, so keeping backward compatibility is necessary.


⚠ Bofrost.at has degraded performance

In 3d9f5bc, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2043 ms

Resolved: Bofrost.at performance has improved in 5c7e684.


WDL Stats Visual Changes

The WDL, win/draw/lose, stats should only update during whites turn. Also add the stat bar in the form of a led strip on the physical chess board.

Decided to cut transitions to keep things simple.

Added functionality. Try sending the following over serial.
{"data": {"leds": {"speed": 150, "effect": "gradient", "intensity": 128, "pallet":{ "1": [0, 255, 0], "2": [0, 0, 255]}}}}
This will result in a moving blue and green gradient with a 50/50 ratio. You can also send the following over serial to get a list of available effects.
{"return": "fx list"}


 Execution is only allowed after we connected the services.
This resolves #137

On 9cd87ce I'm still crashing too early.
2022-10-04T20:29:01.284Z INFO    plugin-peerswap-plugin: Cln synced, continue...
2022-10-04T20:29:01.297Z INFO    plugin-peerswap-plugin: Killing plugin: exited during normal operation

Thx @grubles I will have a look.

As said before, this is an issue that arises when peerswap is called too early after startup (whil still waiting for lnd to sync) and is part of https://github.com/ElementsProject/peerswap/issues/137

@nepet, Calling CLN rpc peerswap-swap-out/peerswap-swap-in without amt_sat still crashes the plugin. This happens even after peerswapd is synced.
Steps to reproduce:
1: Start CLN node with peerswap plugin.
2. Wait for Cln synced, continue....
3. Call peerswap-reloadpolicy OR peerswap-listswaps to ensure that peerswapd is working as expected.
4. Call peerswap-swap-out without amt_sat.
5. peerswapd crashes with error message Plugin terminated before replying to RPC call.

@nepet For me, the plugin was killed when starting CLN. I wouldn't need to run any peerswap command to get it to crash. I'm running PR 142 now and that seems to have fixed it.

Hm scratch my last comment. The crash has reappeared when running PR 142 too.

Turns out my elementsd was not running and that was what was causing the crash.

ACK


Remove the FlexVideo component and examples

(Edited by Joel) We don't think anyone cares much about it, and as-is it doesn't work very well. Get rid of it.

Remove or Fix the Flex Video Component. Currently it does not have any styles or flex positioning applied, and therefor is not a useful component.

either removed the flex video example from the docs site
OR
update the flex video component so that it is responsive based on the aspect ratio of the video provided

It seems like nobody uses this, so I say we just remove it. I'm going to clarify that in the issue title/description and throw it into the "good first issue" pool.

@jwietelmann Agreeb!! There aren't any flex video styles yet so that makes this component pretty useless

We need to update the styles, rather than removing this component. Link of styles to pull over:  FlexVideo example: revelrylabs/tpn#379


decorators: take into account flashed messages

Flashed messages (using flask.flash) won't be rendered if a cached page is displayed.
Since this is probably an unwanted side effect by most people it should probably be part of the default cached_unless_authenticated decorator.

How should this technically work? I.e. how would the decorator know when to not cache?

When flashes are available there is a session._flashes field: https://github.com/zenodo/zenodo/blob/d02dc297391900d8c4fdba733275363fc9146368/zenodo/modules/frontpage/decorators.py#L36-L38


License?

Could you please clarify this code's license? Is it dual-licensed under MIT/Apache-2.0 like bevy, or something else?
Thanks!

Yep - have added the bevy-standard license files to the repo. Sorry for taking so long!


refactor(universe_utils/motion_utils)!: add autoware namespace

Description

I hope you will wait to merge other PR's until this PR is merged to avoid conflicts 🙏
change namespace

autoware_motion_utils -> autoware::motion_utils
autoware_universe_utils -> autoware::universe_utils

part of https://github.com/autowarefoundation/autoware/issues/4569
related package renaming PRs

https://github.com/autowarefoundation/autoware.universe/pull/7538
https://github.com/autowarefoundation/autoware.universe/pull/7539

Tests performed

psim

lsim

2024/06/20 https://evaluation.tier4.jp/evaluation/reports/a2c3c0e1-5c8e-5060-84f1-e57ad0d06c1c/?project_id=prd_jt
Effects on system behavior

Not applicable.
Interface changes

namespace is changed
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

I hope you will wait to merge other PR's until this PR is merged to avoid conflicts :pray:

build with cuda was failing due to no disk space left on device, but there was test done locally with Logging simulator and planning simulator.
If there are any issues after merging, feel free to revert the change.


The Add-on isn't working in the Zotero 7.0.0 beta version

Describe the issue
The Add-on can be installed and activated, but it doesn't show up in the Tools section. The sync items to Notion button is visible.
To Reproduce
Steps to reproduce the behavior:

Go to Zotero
Click on Tools
Scroll down to Manage Attachments
See error (Notero preferences is missing)

Expected behavior
Notero preferences should appear in the Tools menu after restarting Zotero.
Screenshots

Additional context
Zotero v7.0.0-beta.23+fb5934563, Notero v0.4.7

Hi @ExcitedAnt278, thanks for reporting this. I've done some initial work to support Zotero 7, but there's still a little more to do before it will work correctly.
An important note with the changes is that the "Notero Preferences" option will no longer appear in the Tools menu. Instead, the Notero preferences will be available from Zotero's main preferences window. If you open that preferences window now, you may even see a "Notero" section on the side, but the content isn't loading right now due to #281.

Hi @ExcitedAnt278, I just released version 0.4.9 which enables support for Zotero 7! Please give it a try and let me know if you run into any issues.


Offset Mapping

Offset aliases are not user friendly. Would be helpful to create a mapping to easily specify which offset to use. Couple suggestion in the examples below.

Regex Parser

lm = cp.LabelMaker(
    window_size='first of every 2 months',
    ...
)

Modules and Functions

from composeml.offsets import first_of_every

lm = cp.LabelMaker(
    window_size=first_of_every.months(2),
    ...
)

There are offsets available for these time spans.
'Until start of next year'  # ->  pd.offsets.YearBegin
'Until start of next month' # ->  pd.offsets.MonthBegin

However, I didn't see any for these.
Until start of next week
Until start of next day
Until start of next hour

Maybe we can support the offset objects instead?
lm = cp.LabelMaker(
    target_entity='user_id',
    time_index='order_time',
    labeling_function=bought_product,
    window_size=pd.offsets.MonthBegin(),
)


Issue with theiconic/php-ga-measurement-protocol for PHP 8.1

This package is already abandoned and it contains a deprecation warning
http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated in /vendor/theiconic/php-ga-measurement-protocol/src/Network/PrepareUrl.php on line 48

Any plan on replacing this package?

Suggest an alternative. I'll look into it.

@irazasyed try this https://packagist.org/packages/8ctopus/php-ga-measurement-protocol
This is based from this PR, but the author seems inactive: https://github.com/theiconic/php-ga-measurement-protocol/pull/103

Any update on this? I am also encountering the same issue.

Hi! Just wanted to thank you for this package and ask you if updating this dependency was possible for you? Thanks!!


Consider a cohesive responsive scaling strategy

To be clear: the framework will allow me to do exactly what I want to do. Everything that follows is just about improving the out-of-box experience.
===
It's taken me some time to work out a good responsive sizing strategy in UniformCSS. I think there are three main issues:

Some things are "t-shirt" sized; others are not.

The t-shirt sized things don't scale responsively the way you might expect.

The not-t-shirt sized things are defined in terms of rems (e.g., 0.625rem), but labelled in terms of pixels (e.g. size-10).

The first issue means that it takes some time and effort to work out a correspondence between the two kinds of scales — especially at different breakpoints. Not at all unusual, but perhaps unnecessary friction.
The second issue is easier to illustrate with an example.
To begin with, I wanted 18px font sizes on phones and 20px font sizes on desktops. Here's one way to get that:
body {
    @include apply("text-lg sm.text-xl");
}

And then, looking at the scales, I decided that I wanted a 7xl h1 size on desktops, and "something smaller" on phones. So:
h1 {
    @include apply("text-6xl sm.text-7xl");
}

That seems like it works. If you do the math, though, you'll see that I haven't just changed the size, I've also changed the ratio:

text-lg = 18px, text-6xl = 40px, 18:40 = 1:2.2
text-xl = 20px, text-7xl = 48px, 20:48 = 1:2.4

Not fatal, but not intended either. More importantly, if I'm trying to come up with a general solution to responsive sizing, I better not take that approach to re-sizing space, where changing proportions are more likely to be visible. (Think about something that has a 2:1 horizontal-to-vertical padding ratio — and then doesn't.)
What I would generally do — though not all CSS frameworks are very happy about this — is to base everything in rems, and scale my root font size at different breakpoints. Obviously that simplifies almost everything, e.g.:
h1 {
    @include apply("text-6xl");
}

body {
    @include apply("text-md");
}

and pushes responsive re-sizing into html. (It can also introduce new problems, but for the kinds of work I do these days it's usually a better starting point; there's less tweaking to do.)
The reason I didn't do that right away was the third issue. :-) I was already expending mental effort because the non-t-shirt sizes (e.g., size-10) were defined in terms of rems, and those rems were different from my body font sizes on phone and desktop. (That's an issue because, for example, I'd like to add rem-based bottom margins to h1, p, etc.) But even worse: they were labelled in pixels even though they were defined in rems. Thinking about all of those things at the same time exceeded my mental load limit!
===
Here are a few general suggestions:

Consider supporting both t-shirt sizes and non-t-shirt sizes where appropriate (e.g., maybe add non-t-shirt sizes to fonts, maybe add t-shirt sizes to sizings?); in my head, users would choose one approach or the other
Consider how t-shirt sizes scale — ideally, in a user-configurable way (minor third, major third, etc.)
Consider how t-shirt sizes re-size at different breakpoints (so that the scale is preserved)
Consider labelling rems as rems

To be clear: I'm not saying that all of those things must be done for any of this to be usable. Rather, I'm saying that there should be one cohesive story out of the box. If there's choice, all the better. But at least one.
Btw, it's very possible that you had a model in mind that just didn't occur to me (or I missed it in the docs). If so, please let me know!
===
As I said, everything I want to do I can. All of this is just about the out-of-box experience.
Here's what I'm going to try today:

I'm going to change the root font size at different breakpoints (default 18px, and 20px above sm)
I'm going to re-define the t-shirt sizing using a well-known scale (mostly just so that I can have a mental model of how things are scaling)
I'm going to add t-shirt sizing to the sizing module

I'll see how that goes.

Seems to all work as expected. The configuration looks something like this:
@use "uniform" as * with (
  $config: (
    ...
    font-sizes: (
      ...
      sm: (
        font-size: 0.800rem,
        line-height: 1.75,
      ),
      md: (
        font-size: 1.000rem,
        line-height: 1.75,
      ),
      lg: (
        font-size: 1.250rem,
        line-height: 1.625,
      ),
      ...
    ),
    negative-sizes: (
      ...
      nsm: -0.800rem,
      nmd: -1.000rem,
      nlg: -1.250rem,
      ...
    ),
    positive-sizes: (
      ...
      sm: 0.800rem,
      md: 1.000rem,
      lg: 1.250rem,
      ...
    ),
    radiuses: (
      ...
      sm: 0.375rem,
      md: 0.500rem,
      lg: 0.750rem,
      ...
    ),
    ...
  )
);

Responsiveness comes from the root element:
html {
  font-size: 18px;
  @include screen(sm) {
    font-size: 20px;
  }
}

Everything else is simple:
...
body {
    @include apply("text-md");
}
...
h1 {
    @include apply("text-2xl");
}
h2 {
    @include apply("text-xl");
}
h3 {
    @include apply("text-lg");
}
...

Margins and padding are also t-shirt sized using the same scale; you can see that in the configuration. (I may need to tweak something at some point, but I haven't had to so far.)
One wrinkle to be aware of is that the rem function hard-codes an assumption of 16px here, so you shouldn't use it if you're using this approach.

I have definitely explored utilizing global rem adjustments to handle the responsiveness of fonts and sizing in the past.
In an ideal world, I would love to be able to simply apply the golden ratio similar to font scaling seen in https://www.gridlover.net/ however often times I have found translating designs across different devices don't always follow this rule as elegantly as I'd like. Sometimes the font size is too small or big when taking this approach and further micro-adjustments are needed.
This is why I've personally opted for the hard declarative approach to be flexible and unopinionated in order to stay closer to the nature of utilities (do one thing well).
There is some unit discrepancy between w-20 (20px) being converted to rems, however, the current most popular and recommended unit for sizing things is still rems so I don't think that will change anytime soon.
However, if you do prefer to scale font-sizing using the more semantic t-shirt approach I think the workaround configuration example above seems like the perfect solution!

I think we may be slightly cross-purposes; I could be misreading, but it seems like you think I advocated for things I don't think I advocated for.
Let me focus on what I think is the single most important point:

Sizes are using pixel-based labels (e.g., w-20), but rem-based definitions (1.25rem). I suggest making the labels match the units — both pixels, or both rems.

I'd prefer rems, but the key point is that I think they should match.
If you change your base font size to, say, 18px, w-20 is actually 22.5px. That is... rather confusing.
(Another option would be to make the labels "unitless." That's what you do with your font sizes, by using t-shirt sizes.)
I'll pick up on another point in another reply.
(If you know what I meant but disagree, no problem; I just want to make sure that we agree about what we disagree about. :-)

FWIW, I've very much enjoyed that (assuming the 16px baseline) I can just think in px units for widths, margins, etc. and know that it's handled via rem units behind the scenes. In the past I have found t-shirt sizes to be an unhelpful abstraction when it comes to spacing and sizing. And having to think in rem fractions all the time sounds like it'd require me to constantly be doing math.
My feeling is that when using Uniform you should avoid changing your base font, and instead if you want a default font size of 18px for all your text, apply that at a high-level wrapping container like the  element so you can continue to enjoy the simplicity of pixel unit thinking in those size & space utility classes.

My overall point was that I thought there should be some consistent story to responsive scaling.
Today you might do something like this:

        Lorem ipsum

        Lorem ipsum...

    <button class="px-20 py-18 sm.px-24 sm.py-20 md.px-28 md.py-24 lg.px-32 lg.py-28">
        Lorem ipsum
    </button>

Here are the body-to-heading ratios at each breakpoint:

default: 1rem:2.25rem = 2.25
sm: 1.125rem:2.5rem = 2
md: 1.25rem:3rem = 2.4
lg: 1.5rem:3.5rem = 2.3

And here are the x-to-y padding ratios at each breakpoint:

default: 20px:18px = 1.11
sm: 24px:20px = 1.2
md: 28px:24px = 1.66
lg: 32px:28px = 1.14

My example is slightly contrived, but I think the point is correct: the ratios, the proportions, are changing at each breakpoint.
That's because at each breakpoint we're choosing different points along non-linear scales.
I think there are two possible solutions.
One is to do what I'm doing, which is to use the same point (e.g., font-md) on each non-linear scale at each breakpoint, and "scale the scales."
Another is to support a different scale for each breakpoint. From a config perspective that might look something like this:
    font-sizes: (
        default: (
            ...
            md: 1rem,
            lg: 1.25rem,
            ...
        ),
        sm: (
            ...
            md: 1.25rem,
            lg: 1.56rem,
            ...
        ),
        md: (
            ...
            md: 1.5rem,
            lg: 1.875rem,
            ...
        ),
        lg: (
            ...
            md: 1.75rem,
            lg: 2.19rem,
            ...
        ),
    )

That example doesn't match the way Uniform is actually configured, and I don't think you'd want to actually configure it that way, I'm just trying to illustrate a point: at each breakpoint the md-to-lg proportion (1.25x) is preserved. (The same would be true of the size scales: the ratio of each step at each breakpoint would be preserved.)
Some frameworks use the second approach and simplify config by asking users to choose a base value and a scale, and then let the framework do the calculations.
(For this kind of work, the golden ratio isn't a good fit, because the ratio is too large; major third (1.25), minor third (1.2), etc. are usually a better fit.)
Anyway, my point was that with the out of the box approach there are two challenges:

You have to match a t-shirt sized scale (for fonts) against some other semi-linear scale (for sizes) at each breakpoint. That takes some effort because the font and size scales weren't designed to scale together. (I didn't give an example of that, but the point is that they grow at different rates, and that makes them difficult to correlate.)

You have to choose different points along the scales at different breakpoints — and in doing so you change your proportions at each breakpoint. That seems unexpected.

For what it's worth, I think the simplest overall solution is:

Label all scales in rems, or in unitless t-shirt sizes.

Define all scales directly in rems — rather than converting pixels to rems using a hard-coded 16px base font size.

Again, if we're on the same page but disagree, no worries — I was able to find a good solution by turning the framework's documented knobs. I just want to make sure that we agree on what we disagree about.
It seems to me like anyone who creates a responsively scaling site will run into these same issues, but it's possible I'm just missing another way to think about it.

I took a quick look at Tailwind. They use a non-linear (t-shirt) font scale and a linear size scale.
The linear size scale uses a base of 0.25rem; the labels represent multiples of that value — e.g., ...-2 is 2 * 0.25rem. So:
      ...
      0.5: '0.125rem',
      1: '0.25rem',
      1.5: '0.375rem',
      2: '0.5rem',
      2.5: '0.625rem',
      ...

As you can see, there are half steps at the smaller end of the scale. At the upper end of the scale values are skipped over:
      ...
      80: '20rem',
      96: '24rem',
      ...

but the nice thing is that you can fill in any gaps you need without tossing out what they give you.
They point out that with their approach there's a linear relationship between labelled sizes; ...-8 is always twice as big as ...-4, and always half as big as ...-16.
Finally, Tailwind special cases not only 0px, but also 1px — a useful idea. Because ...-1 means "one of the base unit" they call the 1px value "px":
      ...
      px: '1px',
      0: '0',
      0.5: '0.125rem',
      1: '0.25rem',
      ...

Looking at the examples they give, Tailwind runs into the same problems I demonstrated in this thread: proportions will change at different breakpoints. At least, they will for fonts; you can choose proportion-preserving sizes at different breakpoints if you like. (That might require filling in some missing sizes.)
===
That aside, I thought I'd give an example of a framework that takes a different approach.
Teutonic CSS — a framework with many nice ideas — has a t-shirt sized space scale and a t-shirt sized type scale.
Teutonic allows users to choose both the base value (e.g., 0.25rem) and the ratio (e.g., 1.25). You can use any numeric value for the scale, but Teutonic pre-defines variables for many well-known scales; you can set the ratio to, say, $major-third or $minor-third.
The way Teutonic calculates the scale is simple and (I think) rather clever. It's obvious when you see it, but I think it would have taken me a bit of thinking to come up with it. :-) Here is the definition of the space scale, and here is the definition of the type scale.
Teutonic defines (optionally) a unique scale per breakpoint, avoiding the changing proportions at different breakpoints. (Actually, that isn't entirely accurate. They're really modifiers that scale-the-scale; you could use both the large and medium scales on the same page. But you could also use them at different breakpoints.)
Apart from those things, Teutonic also supports a completely fluid scale, along the lines of the Bootstrap RFS system I linked to earlier. It's defined here. But I think it isn't documented. And there's a comment that might explain why. :-)


ElasticsearchHandler: Missing Config Option "ignore_error"

Hey,
The ElasticsearchHandler has 3 options index, document_type and ignore_error .
The first two options are already in the Monologs' Bundle Configuration.php  - The third param is missing. I would do a PR for this, but from which version should I create it? Just against the master?
Thanks in advance...
mablae (Malte)

See PR for this: https://github.com/symfony/monolog-bundle/pull/145


Simplification for non-primitive types

Found a simple solution using a return type:

A return type may act like a bottom type.
A return type may optionally be followed by an identifier or qualified name which must resolve to a function type.
If an enum is typed with a return type that resolves to a function type of   (name: string, index: number), then
An initialized member of the enum must match the return type.
A non-initialized member will be generated using the function.

Here are examples:
class TokenType {
    constructor(public c, public n) { }
}

enum TokenTypes: return namedTokenType {
    OpenCurved, // initialized as namedTokenType("OpenCurved", 0)
    CloseCurved, // initialized as namedTokenType("CloseCurved", 1)
    OpenBracket, // ...
    CloseBracket,
    OpenCurly,
    CloseCurly,
    Identifier,
    String,
    EOF,  // initialized as namedTokenType("EOF", 8)
}
// declaration merging
enum TokenTypes {
    Other = new TokenType('(', 1),
}
enum Unary: return namedUnaryFunction {
    Negate,
    Abs,
    ToInt,
}

function namedTokenType(name: string, index: number): TokenType {
    const map = {
        "OpenCurved": ["(", 1],
        "CloseCurved": [")", 1],
        "OpenBracket": ["[", 1],
        //... more
    }
    if (map[name]) {
        return new TokenType(map[name][0], map[name][1]);
    }
    return null;
}

function namedUnaryFunction(name: string, index: number): (x: number) => number {
    const map = {
        "Negate": (x) => -x,
        "Abs": (x) => -x,
       "ToInt": x => x - x % 1,
    }
    if (map[name]) {
        return map[name];
    }
    return null;
}

How does that compare to my proposal? Examples?
On Mon, Nov 16, 2015, 07:51 Jon<EMAIL_ADDRESS>wrote:

Found a simple solution using a return type:

A return type may act like a bottom type.
A return type may optionally be followed by an identifier or
qualified name which must resolve to a function type.
If an enum is typed with a return type resolves to a function type
of (name: string, index: number), then

An initialized member of the enum must match the return type.
A non-initialized member will be generated using the function.

Here are examples:
class TokenType {
constructor(public c, public n) { }
}
enum TokenTypes: return namedTokenType {
OpenCurved,
CloseCurved,
OpenBracket,
CloseBracket,
OpenCurly,
CloseCurly,
Identifier,
String,
EOF,
}
// declaration merging
enum TokenTypes {
Other = new TokenType('(', 1),
}
enum Unary: return namedUnaryFunction {
Negate,
Abs,
ToInt,
}
function namedTokenType(name: string, index: number): TokenType {
const map = {
"OpenCurved": ["(", 1],
"CloseCurved": [")", 1],
"OpenBracket": ["[", 1],
//... more
}
if (map[name]) {
return new TokenType(map[name][0], map[name][1]);
}
return null;
}
function namedUnaryFunction(name: string, index: number): (x: number) => number {
const map = {
"Negate": (x) => -x,
"Abs": (x) => -x,
"ToInt": x => x - x % 1,
}
if (map[name]) {
return map[name]; // what happens with const functions within a function scope?
}
return null;
}
—
Reply to this email directly or view it on GitHub
https://github.com/impinball/typescript-enum-proposal/issues/1.

Here are some more notes:
type ItemTransform<T> = (value: string, index?: number) => T;

// Some functions that transform an Item of a string value to type => T
function stringUpper(value: string) { return value.toUppercase() }

function first(value: string) {
   return value[0];
}
function intFlags(value: string, index: number) : int32 {
    return index === 0 ? 0 : 1 >> index;
}
function mySymbols(value: string) {
     return new Symbol("symbol for "+ value);
}

// Primitive data enums
enum numbers {
    a, b, c
}
enum strings: string {
    a, b, c
}
enum bools: boolean {
    a, b, c
}

// Primitive data subsets
type int32 = -2147483648…2147483647
type helloOrWorld = "hello" | "world";
type true = true;
type trueOrNull = true | null;

 // Primitive subset enums
const enum integerFinite: int32 {
    a, b, c
}
const enum stringsFinite: helloOrWorld {
    a, b, c
}
const enum boolTrue: true {
    a, b, c
}
const enum boolTrueOrNull: trueOrNull {
    a, b, c = null // allowed
}

// If a enum is typed with a 'return' type of a function with shape ItemTranform<T>, then
// - enum items have type T and the function is used to initialize each item value in the list.

enum Strings: return stringUpper {
    a,
    b,
    c
}

enum SomeFlags: return intFlags {
    a, b, c
}

enum Symbols: return mySymbols {
    a, b, c
}

As an example, the "Strings" enum typed as "return stringUpper" is understood by the compiler to be
// Equivalent to
enum Strings: string {
    a = stringUpper("a"),
    b = stringUpper("b"),
    c = stringUpper("c"),
}

// Generated code/emit will be
var Strings;
(function (Strings) {
    Strings["a"] = "A";
    Strings["b"] = "B";
})(Strings || (Strings = {}));

I have to formalize the return type a bit better but it's very interesting because it's practical:
import sql from "database";
let data: Records<string, number, return stringUpper> = sql`select name, qty, code from products`;

And can help formalize a type-safe variant of TypeScript (where it's the base/super type of all other types that don't include null|undefined.

That doesn't look very elegant IMHO.
On Wed, Nov 18, 2015, 11:30 Jon<EMAIL_ADDRESS>wrote:

Here are some more notes:
type ItemTransform = (value: string, index?: number) => T;
// Some functions that transform an Item of a string value to type => T
function stringUpper(value: string) { return value.toUppercase() }
function first(value: string) {
return value[0];
}
function intFlags(value: string, index: number) : int32 {
return index === 0 ? 0 : 1 >> index;
}
function mySymbols(value: string) {
return new Symbol("symbol for "+ value);
}
// Primitive data enums
enum numbers {
a, b, c
}
enum strings: string {
a, b, c
}
enum bools: boolean {
a, b, c
}
// Primitive data subsets
type int32 = -2147483648…2147483647
type helloOrWorld = "hello" | "world";
type true = true;
type trueOrNull = true | null;
// Primitive subset enums
const enum integerFinite: int32 {
a, b, c
}
const enum stringsFinite: helloOrWorld {
a, b, c
}
const enum boolTrue: true {
a, b, c
}
const enum boolTrueOrNull: trueOrNull {
a, b, c = null // allowed
}
// If a enum is typed with a 'return' type of a function with shape ItemTranform, then
// - enum items have type T and the function is used to initialize each item value in the list.
enum Strings: return stringUpper {
a,
b,
c
}
enum SomeFlags: return intFlags {
a, b, c
}
enum Symbols: return mySymbols {
a, b, c
}
As an example, the "Strings" enum typed as "return stringUpper" is
understood by the compiler to be
// Equivalent to
enum Strings: string {
a = stringUpper("a"),
b = stringUpper("b"),
c = stringUpper("c"),
}
// Generated code/emit will be
var Strings;
(function (Strings) {
Strings["a"] = "A";
Strings["b"] = "B";
})(Strings || (Strings = {}));
I have to formalize the return type a bit better but it's very
interesting because it's practical:
import sql from "database";
let data: Records<string, number, return stringUpper> = sqlselect name, qty, code from products;
And can help formalize a type-safe variant of TypeScript (where it's the
base/super type of all other types that don't include null|undefined.
—
Reply to this email directly or view it on GitHub
https://github.com/impinball/typescript-enum-proposal/issues/1#issuecomment-157769051
.

I assure you it's elegant, at least in terms of things you have to learn in the language.
I'm ditching TypeScript but you should expect to see an alternative within the next year.

To be honest, the TypeScript team appears to be looking into many other
things, which my proposal doesn't cover. This is probably not what the end
result will look like.
https://github.com/Microsoft/TypeScript/issues/1206#issuecomment-158677893
On Tue, Dec 8, 2015 at 7:46 AM, Jon<EMAIL_ADDRESS>wrote:

I assure you it's elegant, at least in terms of things you have to learn
in the language.
I'm ditching TypeScript but you should expect to see an alternative within
the next year.
—
Reply to this email directly or view it on GitHub
https://github.com/impinball/typescript-enum-proposal/issues/1#issuecomment-162869503
.

--
Isiah Meadows

Possibly, I've already implemented it so don't know what they are talking about. Mostly deception through political language.
Since you seem to be interested in language & compilers, I'd highly recommend to create your own enum so to speak:
enum languageHistory {
   Wirth = "https://www.inf.ethz.ch/personal/wirth/SelectedArticles.pdf";
   Kay = "http://www.vpri.org/html/writings.php";
   StrongTalk = "http://www.strongtalk.org/history.html"
}

I'll close this issue but hope to have a better story to tell in couple of years.


Allow 4 and 6 suffix inside proto to limit ip4 or ip6 connection only.

Pull Request (PR) description
Since 8.0.0 it's not possible to choose tcp4 or tcp6 as proto for an openvpn server.
This Pull Request (PR) fixes the following issues
N/A

Let me add some tests before merge.

Tests added,

Travis failure looks like a timeout. Restarted the job.

Implement changes as requested.

Another question. Should tcp-server, tcp4-server and tcp6-server also allowed? From OpenVPN side, values like tcp*-server are the correct values not just tcp.
I know that the module append -server automatically but it looks like a backward compatibility feature.
From man page, only udp[46]? and tcp[46]?-server are allowed.

I don't follow you as the -server part is already added as you mentioned.

From module site proto => 'tcp-server' is invalid while it's valid in openvpn.
From module site proto => 'tcp' is valid but invalid (or deprecated) in openvpn.

I miss the consistency between openvpn and module parameters.

We should probably not append -server at all, though that would need a major version bump.

I would prefer to implement -server as valid parameter and raise a deprecation warning for the old behavior. But this should be an another PR. ok.

beaker still timeouts inside travis.

Thanks @jkroepke !

Released in v8.1.0


Comment highlighting

Hi,
I noticed, that the plugin highlights any text after :// as a comment no matter what it's surrounded by. So e.g. if I have a line like
"jdbc_url": "jdbc:gdc:datawarehouse://{params.hostname}}/datawarehouse/instances/xzy"
everything after //{ looks like a comment. When I parse it, it is not interpreted as a comment as well as when I try to reproduce this issue on the official HJSON site https://hjson.org/try.html it doesn't interpret or highlight such cases as comments which leads me to believe it's an error in this plugin.
The same goes for :# and :*/

Thanks - this should be fixed by #5

Please test with the update.

Hi, I tried the update and it appears to be working, thanks! :)


Input resets when page fully loads

Describe the bug
If you load a page which contains an input element with value binded to a variable, the input will reset all the user edits when page load finishes.
# Timeline
- Page starts loading
- `input` becomes visible on screen
- user edits the `input` to some value
- Page finishes loading. Edits are gone.

I'm not sure if this falls exactly into svelte-kit and will this be considered a bug or not. But it sure is little annoying sometimes.
Reproduction
Repo: https://github.com/nkitsaini/svelte-bug-repro
Video: https://github.com/nkitsaini/svelte-bug-repro/raw/main/repro.mkv
Snippet:
<script lang="ts">
	let a = "234"
</script>

<input bind:value={a}>

Logs
-- No Logs --

System Info
System:
    OS: Linux 6.1 Arch Linux
    CPU: (16) x64 AMD Ryzen 7 5825U with Radeon Graphics
    Memory: 30.83 GB / 38.02 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 19.6.0 - /usr/bin/node
    npm: 8.19.2 - /usr/bin/npm
  Browsers:
    Chromium: 109.0.5414.119
    Firefox: 109.0.1
  npmPackages:
    @sveltejs/adapter-auto: ^1.0.0 => 1.0.2
    @sveltejs/kit: ^1.0.0 => 1.3.10
    svelte: ^3.54.0 => 3.55.1
    vite: ^4.0.0 => 4.1.1

Severity
annoyance
Additional Information
No response

A decent workaround is to disable the input until hydration has completed:
<script lang="ts">
+	import { browser } from '$app/environment';
	let a = "234"
</script>

-<input bind:value={a}>
+<input disabled={browser} bind:value={a}>

Ultimately it would be better if the binding was initialized with the input value — not sure if that would cause other problems, but I'd like it if we could do that in a future version of Svelte.

Yeah, the suggested workaround is good enough for my use-case. It is interesting that browser is false until hydration.
PS: Typo fix for someone coming here from search: instead of disabled={browser} use disabled={!browser}

Transferring to sveltejs/svelte since there's nothing we can do here


watir_install corrupts Rubymine access to chromedriver

I ran watir_install and after this RubyMine was unable to find chromedriver for the test repos that I had not used watir_install in. It started working again after I removed the webdrivers gem, brew uninstalled and then installed chromedriver with homebrew. What was strange about this is that although Rubymine had trouble finding chromedriver, I could start chrome using Watir from irb just fine.
I talked with @titusfortner about why this happens and he said (in Slack):
Webdrivers gem v2 creates a chromedriver shim that executes a command to download/use chromedriver binary in ~/.webdrivers directory
V3 now just downloads them and overrides local execution usage
One messes with path and affects all projects
The other only affects projects that require the gem

To fix this we will need to:

upgrade to webdrivers 3 in the gemset file
change the created project to require 'webdrivers' rather than just including it in the gemfile

Fixed! Thanks.


IndexOutOfBoundsException with TimeSeries#setMaximumTickCount

I'm receiving an IndexOutOfBoundsException when running a Strategy using TimeSeries#setMaximumTickCount.
I limit the TimeSeriesto 500 preventing excessive memory consumption during the live trading (as taken from the wiki).
In addition, I not only use Strategy#shouldEnter, but also the TimeSeries#run to verify the overall performance. Unfortunately I get following error:
2017-08-25 09:06:41,786 ERROR [stderr] (Thread-97) 	at java.lang.Thread.run(Thread.java:748)
2017-08-25 09:06:41,786 ERROR [stderr] (Thread-97) Caused by: java.lang.IndexOutOfBoundsException: Index: 528, Size: 500
2017-08-25 09:06:41,786 ERROR [stderr] (Thread-97) 	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
2017-08-25 09:06:41,786 ERROR [stderr] (Thread-97) 	at java.util.ArrayList.get(ArrayList.java:429)
2017-08-25 09:06:41,786 ERROR [stderr] (Thread-97) 	at eu.verdelhan.ta4j.TimeSeries.run(TimeSeries.java:418)
2017-08-25 09:06:41,787 ERROR [stderr] (Thread-97) 	at eu.verdelhan.ta4j.TimeSeries.run(TimeSeries.java:400)
2017-08-25 09:06:41,787 ERROR [stderr] (Thread-97) 	at eu.verdelhan.ta4j.TimeSeries.run(TimeSeries.java:388)
2017-08-25 09:06:41,787 ERROR [stderr] (Thread-97) 	...

How can I prevent this from happening?
Thanks!

I think this might be a bug:

when adding ticks using TimeSeries#addTick the endIndex is incremented
then removeExceedingTicks() is called which removes ticks but does not update endIndex

Using 0.9-SNAPSHOT? Could you give us a SSCCE?
@martinklepsch Why would you want to update the endIndex in removeExceedingTicks()?

I think I maybe didn't fully understand the code. 🙈 I thought endIndex should always be equal to the number of ticks in a timeseries but it seems that begin and endIndex can also be greater than 0 or greater than the number of ticks respectively.

Let's say you start with a TimeSeries of 10 ticks. beginIndex == 0 and endIndex == 9. Now we set the maximum tick count to 5 so after removing the first 5 ticks, endIndex still == 9.
Now if we run a strategy and loop from beginIndex to endIndex (0-9), we get an IndexOutOfBoundsException since there's only 5 ticks left (0-4).

You are not supposed to run your strategy at removed tick indexes after setting a maximum tick count. Initialize your indicators on those ticks, then AFTER, you can call setMaximumTickCount, and then, you can run your strategy at endIndex (because you are now on a moving time series).

Well, I didn't know we weren't suppose to run strategies on limited time series. Perhaps there could be an exception or error returned in that case (i.e. if max tick count has been set, the run() methods log an error and return immediately or throw an exception).
An analogy could be, I'm not supposed to click "Submit Order" more than once, but if I do and it causes Amazon to create multiple orders, that's a problem :)

@TheCookieLab Yes you are right. An exception should be thrown in that case.
For information, the setMaximumTickCount is supposed to be used in a real trading session to avoid a too big memory consumption, while the run() methods are provided for the backtesting phase (for real trading you have to implement your own run() method because it is up-to-you to manage your entries/exits).
Please continue this thread on the new repo: https://github.com/ta4j/ta4j


fix: Overwrite mistaken push to latest.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Number of forks is not shown

URL

It's a feature, it can be disabled: https://github.com/sindresorhus/refined-github/blob/master/source/features/hide-watch-and-fork-count.tsx

Yes, just found it while trying to find a "fix" for it.

Update: the forks count was restored in v21.4.23 (on wide viewports) since it points to a potentially-useful forks list page.
https://github.com/sindresorhus/refined-github/pull/4249


Port to cesium 1.25 and prepare for release

The change is quite consensual and I tested everything following the release process instructions.
So I will merge this PR now and release a new version.


Deduplicate containerization option in QA

This seems to happen in case similar to #140 . Most because there are two containerisation options with different source folders. Once #140 is fixed, evaluate whether this scenario is a valid one.

Should have gotten fixed as part of #391

Should have gotten fixed as part of #391


Groups not functioning without sigh_mixin

I've been trying to experiment with not using signals, but found when not using sigh_mixin groups stop working. I'm not sure if this is a bug or intentional, but to reproduce take the example:
https://github.com/skypjack/entt/blob/master/test/example/signal_less.cpp
And add the line: auto grp = registry.group<int>();
Observe failure to compile due to group_handler implementation assuming on_construct exists.
Thanks

Indeed, they don't. Confirmed. They were designed on top of the signal mechanism initially and I never changed it.
In theory, we can redesign them as a mixin today and avoid using signals. However, it's not super high prio at the moment.


Improve Sensibo error handling

Description:
Sensibo, improve error handling
Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] New dependencies have been added to the REQUIREMENTS variable ([example][ex-requir]).
[x] New dependencies are only imported inside functions that use them ([example][ex-import]).
[x] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

Can be merged when build passes.


Bug fix for IndexOutOfBoundsException

If a json-path ended with a dot example: "$..book['something']." JsonPath would throw an IndexOutOfBoundsException. This is because PathTokenizer would do a peek() after a poll() without checking to see if the Tokenizer is empty.

Thank you!
Will also be in release.
/Kalle
On Feb 29, 2012, at 2:17 AM, Matt Bishop wrote:

If a json-path ended with a dot example: "$..book['something']." JsonPath would throw an IndexOutOfBoundsException. This is because PathTokenizer would do a peek() after a poll() without checking to see if the Tokenizer is empty.
You can merge this Pull Request by running:
git pull https://github.com/mattbishop/JsonPath master
Or you can view, comment on it, or merge it online at:
https://github.com/jayway/JsonPath/pull/5
-- Commit Summary --

Fixed bug (and added unit test) where a path that ended with a dot (.) would throw an IndexOutOfBoundsException.

-- File Changes --
M json-path/src/main/java/com/jayway/jsonpath/reader/PathTokenizer.java (2)
M json-path/src/test/java/com/jayway/jsonpath/SplitPathFragmentsTest.java (7)
-- Patch Links --
https://github.com/jayway/JsonPath/pull/5.patch
https://github.com/jayway/JsonPath/pull/5.diff

Reply to this email directly or view it on GitHub:
https://github.com/jayway/JsonPath/pull/5


Sort error messages by source location

When fixing errors/warnings, they are displayed unsorted. If there are multiple errors and we start with one in the middle, the line numbers become wrong for the other messages, forcing us to recompile to get the correct line numbers.

Technically they /are/ sorted, but they are sorted lexicographically rather than based on the source location. Sorting them based first on location and then on error text is something I have wanted to do, I just haven't gotten around to it. But it shouldn't take too long, I don't think.


RangeError (index): Index out of range: index should be less than 345600: 10

I have recently migrated my app to Flutter 2.2.3 with null safety and I encountered weird error. I have following function which I use to convert CameraImage (YUV) into RGB image, which worked flawlessly before going from Flutter 1.26 to 2.2.3 and migrating. Afterwards, it started to complain about RangeError (index): Index out of range, which I do not understand and error description is not helpful as reported accessed index is actually within allowed range.
import 'package:camera/camera.dart';
import 'package:image/image.dart' as imageLib;

class ImageUtils {
...
  static imageLib.Image convertYUV420ToImage(CameraImage cameraImage) {

     final int width = cameraImage.width;
     final int height = cameraImage.height;

     final int uvRowStride = cameraImage.planes[1].bytesPerRow;
     final int? uvPixelStride = cameraImage.planes[1].bytesPerPixel;

     final image = imageLib.Image(width, height);
     for (int w = 0; w < width; w++) {
       for (int h = 0; h < height; h++) {
         final int uvIndex =
             uvPixelStride! * (w / 2).floor() + uvRowStride * (h / 2).floor();
         final int index = h * width + w;

         print("index $index and $uvIndex");
         final y = cameraImage.planes[0].bytes[index];
         final u = cameraImage.planes[1].bytes[uvIndex];
         final v = cameraImage.planes[2].bytes[uvIndex];

         image.data[index] = ImageUtils.yuv2rgb(y, u, v);
       }
     }
     return image;
   }
 }

Log output:
... (correctly printing out indexes)
I/flutter (19516): index 344169 and 172088
I/flutter (19516): index 344889 and 172088
I/flutter (19516): index 10 and 10
E/flutter (19516): [ERROR:flutter/runtime/dart_isolate.cc(1138)] Unhandled exception:
E/flutter (19516): RangeError (index): Index out of range: index should be less than 345600: 10
E/flutter (19516): #0      _Uint8ArrayView.[] (dart:typed_data-patch/typed_data_patch.dart:4070:7)
E/flutter (19516): #1      ImageUtils.convertYUV420ToImage (package:anh_flutter/recognition/ImageUtils.dart:42:46)
E/flutter (19516): #2      ImageUtils.convertCameraImage (package:anh_flutter/recognition/ImageUtils.dart:13:14)
E/flutter (19516): #3      IsolateUtils.entryPoint (package:anh_flutter/recognition/IsolateUtils.dart:47:30)

Which hardly makes any sense as 10 is less than 345600. I also checked that cameraImage.planes[0].bytes.length is indeed 345600 as expected.
Pls could anyone help me understanding what might be wrong here?
Doctor:
[✓] Flutter (Channel stable, 2.2.3, on Linux, locale en_US.UTF-8)
    • Flutter version 2.2.3 at /home/bazinac/snap/flutter/common/flutter
    • Framework revision f4abaa0735 (10 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /home/bazinac/Android/Sdk
    • Platform android-30, build-tools 31.0.0
    • Java binary at: /home/bazinac/SW/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /home/bazinac/SW/android-studio
    • Flutter plugin version 60.1.2
    • Dart plugin version 203.8292
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] IntelliJ IDEA Community Edition (version 2021.2)
    • IntelliJ at /snap/intellij-idea-community/320
    • 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

[✓] Connected device (2 available)
    • SM G980F (mobile) • RF8NA1BGQ5L • android-arm64  • Android 11 (API 30)

Hi @bazinac
Thanks for filing the issue
Similar to https://github.com/flutter/flutter/issues/84276 https://github.com/flutter/flutter/issues/76029

Hi @bazinac
Thanks for filing the issue
Similar to #84276 #76029

I have noticed those two, but I believe here difference is that error output claims that index 10 is not within range 0 to 345600. In two preceding reports offending value was breaching size of collection...

I'm able to replicate this with my app after an upgrade to Flutter 2.5. https://github.com/fuzzybinary/flutter_lost_cities
Tap on any of the numbers on the first screen and you'll be taken to a camera view that will crash attempting to convert the image from YUV420. This is on a Pixel 3 running Android 11.  I tried updating camera to 0.9.2+2 and the issue persists.

I suspect Dart JIT compiler issue. Reliably reproduces with @fuzzybinary code in debug mode.

Does not reproduce on master so it might be already fixed - though it might be just hidden by some other changes.

I also found similar issue happens when trying to convert image of format ImageFormatGroup.jpeg to imageLib.Image with following method.
static imageLib.Image convertJpegToImage(CameraImage cameraImage) {
return imageLib.Image.fromBytes(
cameraImage.width, cameraImage.height, cameraImage.planes[0].bytes,
format: imageLib.Format.rgb, channels: imageLib.Channels.rgb);
}

The issue seen in the https://github.com/fuzzybinary/flutter_lost_cities app stopped reproducing after this commit:
https://github.com/dart-lang/sdk/commit/21298ee88433572bc0f483635d1d5e127bfd1d3c
That commit set the enable_isolate_groups flag to true by default.
The issue still occurs if I build a tip of tree engine with the latest Dart SDK and set enable_isolate_groups back to false.
@mraleph

@dcharkes Could you take a look at this? (the flag switch of --enable-isolate-groups should not have any functional changes)

Bump! I have the same problem with the exact same code

Reproduces with flutter run --dart-flags --enable-isolate-groups=false -d emu on https://github.com/fuzzybinary/flutter_lost_cities on
flutter --version
Flutter 2.6.0-12.0.pre.124 • channel analyze-sample-code-verbosity • git@github.com:flutter/flutter.git
Framework • revision f0fdd68af8 (17 hours ago) • 2021-09-28 17:03:52 +0000
Engine • revision 9fa0bc833c
Tools • Dart 2.15.0 (build 2.15.0-154.0.dev)

Also reproduces on flutter run --local-engine=android_debug_unopt_x86 --local-engine-src-path=$HOME/flt/engine/src -d emu with https://github.com/flutter/engine/commit/520be3012286b4c5bce6c8038e7572820fa9ce6c, https://github.com/dart-lang/sdk/commit/f452a6585cbdc7804f07cdbf834bf8b7cef01faf, and enable_isolate_groups set back to false.
I will investigate.

Hmm, it might be the case, but I am wondering why it works fine the in production version of my app (which still uses Flutter 1.26 because of this issue).

Actually it turns out that behavior does not reproduce in master, my bad. So it was fixed, thanks for the support!


"Open Terminal here" Explorer right-click context menu option missing

Windows Terminal version
1.21.3231.0
Windows build number
10.0.22631.0
Other Software
Windows Explorer
Steps to reproduce
Right-click empty space inside any supported location. "Open Terminal here" option is no longer present, even when using Shift+RMB.
Expected Behavior
When right-clicking empty space inside any supported location, "Open Terminal here" should appear.
Actual Behavior
"Open Terminal here" option is no longer present, even when using Shift+RMB.

Steps that have been tried but failed to resolve issue:

Adding registry key:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked]
"{9F156763-7844-4DC4-B2B1-901F640F5155}"=-

Visiting Settings → Apps → Installed Apps → Terminal and attempting both Reset and the Repair options.

Explorer.exe was restarted after each step and my system has been rebooted.

I "resolved" the issue by installing the Winget/Windows Store version and installing the Scoop version.


GPU acceleration on the Patterning example

I followed the Patterning example in the documentation and successfully run it. Then I tried to use the GPU acceleration by claiming platform in the community initialization and not changing anything else:
com = Community(model,                 N=2*Nx*Ny,                 dt=0.001,                 agentAlg=DifferentialEquations.EM(),                 platform=GPU()                 )
This is the error I got when running evolve!(com,steps=4000,saveEach=10,saveCurrentState=true);
InvalidIRError: compiling MethodInstance for (::var"#kernel#5")(::CuDeviceMatrix{Float32, 1}, ::CuDeviceMatrix{Float32, 1}, ::Float64, ::Float64, ::Int64, ::CuDeviceVector{Int64, 1}, ::Int64, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Int64, 1}, ::CuDeviceMatrix{Float32, 1}, ::Float64, ::Float64, ::Float64, ::CuDeviceVector{Int64, 1}, ::CuDeviceVector{Int64, 1}, ::CuDeviceVector{Int64, 1}, ::CuDeviceVector{Int64, 1}, ::CuDeviceVector{Int64, 1}, ::CuDeviceVector{Int64, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}, ::CuDeviceVector{Float32, 1}) resulted in invalid LLVM IR Reason: unsupported call through a literal pointer (call to ijl_alloc_array_1d) Stacktrace:   [1] Array     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)boot.jl:477   [2] Array     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)boot.jl:486   [3] similar     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)abstractarray.jl:884   [4] similar     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)abstractarray.jl:883   [5] _array_for     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)array.jl:671   [6] _array_for     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)array.jl:674   [7] vect     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)array.jl:126   [8] macro expansion     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)In[3]:26   [9] macro expansion     @ [~/.julia/packages/CellBasedModels/InCqt/src/](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/~/.julia/packages/CellBasedModels/InCqt/src/)neighbors.jl:38  [10] macro expansion     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)In[3]:25  [11] macro expansion     @ [~/.julia/packages/CellBasedModels/InCqt/src/AgentStructure/](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/~/.julia/packages/CellBasedModels/InCqt/src/AgentStructure/)auxiliar.jl:183  [12] kernel     @ [~/.julia/packages/CellBasedModels/InCqt/src/AgentStructure/](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/~/.julia/packages/CellBasedModels/InCqt/src/AgentStructure/)functionDE.jl:183 Reason: unsupported dynamic function invocation (call to mapreduce_empty_iter(f, op, itr, ItrEltype) @ Base reduce.jl:375) Stacktrace:   [1] _mapreduce     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)reduce.jl:427   [2] _mapreduce_dim     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)reducedim.jl:365   [3] #mapreduce#800     @ [./](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/)reducedim.jl:357 ...     @ CellBasedModels [~/.julia/packages/CellBasedModels/InCqt/src/CommunityStructure/step.jl:99](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/~/.julia/packages/CellBasedModels/InCqt/src/CommunityStructure/step.jl:99)  [29] evolve!(community::Community; steps::Int64, saveEach::Int64, saveToFile::Bool, fileName::Nothing, overwrite::Bool, saveCurrentState::Bool, preallocateAgents::Int64, progressMessage::CellBasedModels.var"#291#293")     @ CellBasedModels [~/.julia/packages/CellBasedModels/InCqt/src/CommunityStructure/step.jl:144](https://vscode-remote+wsl-002bubuntu.vscode-resource.vscode-cdn.net/home/dirypan/Project/CellBasedModel/~/.julia/packages/CellBasedModels/InCqt/src/CommunityStructure/step.jl:144)  [30] top-level scope     @ In[5]:1
Just to show that it might not be a CUDA problem since I can run the Bacterial Colony Growth example with GPU acceleration without any problem.
I would appreciate that if you could point out where the problem could be. I want to apply this package to my study on agent based reaction-diffusion project.

I figured out that the minimum function in julia is not CUDA compatible, I rewrite that into the following code to calculate minimum d:
original code:
            d = minimum(                         [                             (x-x[i2])^2+(y-y[i2])^2,                             (x-x[i2]+1)^2+(y-y[i2])^2,                             (x-x[i2]-1)^2+(y-y[i2])^2,                             (x-x[i2])^2+(y-y[i2]+1)^2,                             (x-x[i2])^2+(y-y[i2]-1)^2,                             (x-x[i2]+1)^2+(y-y[i2]+1)^2,                             (x-x[i2]+1)^2+(y-y[i2]-1)^2,                             (x-x[i2]-1)^2+(y-y[i2]+1)^2,                             (x-x[i2]-1)^2+(y-y[i2]-1)^2                         ]                     )
modified:
d = (x-x[i2])^2+(y-y[i2])^2             for ix in -1:1                 for iy in -1:1                     d_ = (x-x[i2]+ix)^2+(y-y[i2]+iy)^2                     if d_ < d                         d = d_                     end                 end              end
Now it works perfectly, I also compared the speed on my computer with CPU(i7 13700k) and RTX 3090ti, it is about 4 times faster on the GPU.


Extracting part of the logic of association struct to private function

This function was flagged up by credo as being too complex, so I pulled some of the logic out into a private function.
I think this function could be broken up further, but I thought this was a good start.
I wasn't sure about the naming of the function, whether to name it get_ref / get_reference / get_owner_key, so just went with what the variable is called. Personally I prefer not to use abbreviations, so would go with one of the other two.
Note: there are no tests covering this logic, I had a go at adding them, but didn't get very far so will need a helping hand on that.

I think that ebert thing isn't 100% because the report for this PR has 42 issues, 1 less than master.

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:


Add example for Bramble as HTTP handler

This adds an example on how to use Bramble as an HTTP handler.

Codecov Report

Merging #169 (56cbc3c) into main (8b8e104) will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #169      +/-   ##
==========================================
- Coverage   70.70%   70.68%   -0.03%
==========================================
  Files          26       26
  Lines        2690     2691       +1
==========================================
  Hits         1902     1902
- Misses        665      666       +1
  Partials      123      123

Impacted Files
Coverage Δ

gateway.go
62.06% <0.00%> (-2.22%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Example will fail on the OnPremPhoneNumber format

If we use the number format in the example stated on this page "Set-CsOnlineApplicationInstance -Identity<EMAIL_ADDRESS>-OnpremPhoneNumber tel:+14250000000 -ApplicationId ce933385-9390-45d1-9512-c8d228074e07 -DisplayName "AppInstance01"" - We will get an error stating:
The input of parameter "tel:+31851324567" is not in a valid format. Please provide an input with an acceptable format <tel:>+[number]", e.g. tel:+18005551234 or +14251234567.
The only format that works with this parameter is just +31851324567, without the "tel:" prefix.

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

ID: 08e7ee82-a4a2-0138-ffcc-a0746a1ee7c0
Version Independent ID: 5cf5edef-643f-10a1-8247-4e14d06ff675
Content: Set-CsOnlineApplicationInstance (skype)
Content Source: skype/skype-ps/skype/Set-CsOnlineApplicationInstance.md
Service: skypeforbusiness-powershell
GitHub Login: @tomkau
Microsoft Alias: tomkau

@officedocsbot assign @yogkumgit

Hello @wiseleaf23 👍 how are you?
Thanks for reporting. I could verify, so I created a pull request to correct the format in the documentation. Thank you

@get-itips  Thank you very much for the contribution and updating the documentation with PR. @wiseleaf23 Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.

I think the error in the cmdlet is back. I tried it with our without "tel:" but I get always the message that the format is wrong.
Set-CsOnlineApplicationInstance -Identity<EMAIL_ADDRESS>-OnpremPhoneNumber "tel:+49123456789" -Verbose -ApplicationId "11cd3e2e-fccb-42ad-ad00-878b93575e07"
or
Set-CsOnlineApplicationInstance -Identity<EMAIL_ADDRESS>-OnpremPhoneNumber "+49123456789" -Verbose -ApplicationId "11cd3e2e-fccb-42ad-ad00-878b93575e07"

@pc222 Could you try without the quotes around the phone number? I know it should not matter, but you can try. Also, you can try using the number in my example, +31851324567

I think the error in the cmdlet is back. I tried it with our without "tel:" but I get always the message that the format is wrong.
Set-CsOnlineApplicationInstance -Identity<EMAIL_ADDRESS>-OnpremPhoneNumber "tel:+49123456789" -Verbose -ApplicationId "11cd3e2e-fccb-42ad-ad00-878b93575e07"
or
Set-CsOnlineApplicationInstance -Identity<EMAIL_ADDRESS>-OnpremPhoneNumber "+49123456789" -Verbose -ApplicationId "11cd3e2e-fccb-42ad-ad00-878b93575e07"

Hello, tested this again, and it worked with or without the quotes around the OnPremPhoneNumber parameter. Hope this info helps you

We still have the issue. We're opened a primer support ticket, but still no solution for more than 3 weeks.


how to get the case ID for each SV

Hello,
Thanks for generating this great SV resources.
I just check the VCF files for SVs deposited in this github (https://github.com/RajLabMSSM/AMP_AD_StructuralVariation/tree/main/data/SV_calls). Thanks a lot.
I wan to know which SV comes from individual with diease or not.
for example,

I wan to know whether this SV is from AD or normal brain.

id
rosmap
mayo
msbb
chrom
pos
sv_end
svlen
alt

DEL_9591
DEL_20772
DEL_12918
DEL_14777
3
184125375
184125569
-199

Would you like to provide a metafile explaining each SV from different individual with disease or not.

https://dss.niagads.org/sample-sets/snd10041/
Best

Hi,
Thanks for reaching out.
I could provide the total number of cases/controls for each SV, but I can't share the individual-level information publicly. That data should be available via NIAGADS (or ROSMAP only, via separate request at https://www.radc.rush.edu/)
Please let me know if the summarized numbers would help you.
Best,
Ricardo

Hello Ricardo,
thanks for sharing.
I do not need the individual information.
I just want to know which SV is from AD or normal sample.
for example,
deletion1 Normal
deletion2 AD
deletion3 Normal/AD

Hi @BenxiaHu,
Unfortunately, this is not something I can say. These SVs are shared in disease and controls. It might happen that some SVs are a little more frequent in one group than the other; this is what the association result is trying to show.
You can get this information (e.g. the SV is more likely to happen in AD) by checking the p-values and slopes from the results here: https://github.com/RajLabMSSM/AMP_AD_StructuralVariation/tree/main/data/disease_associations
Also, if you are interested, I just released another set of results of associations for several clinical and pathological AD-related traits. Using the same SVs detected here (ROSMAP only). You can find the results here: https://github.com/RushAlz/ADRD_SV_GWAS
Best,
Ricardo

Hello Ricardo,
Thanks a lot.
These files are really helpful.
So this file, ROSMAP_meta_analysis_results.tsv.gz, just contain SVs only detected in AD patients, right?
Would you like to share your e-mail address? I can directly e-mail you if I have any other questions.
Best,
Benxia

On Aug 16, 2024, at 3:44 PM, Ricardo A. Vialle @.***> wrote:
Hi @BenxiaHu,
Unfortunately, this is not something I can say. These SVs are shared in disease and controls. It might happen that some SVs are a little more frequent in one group than the other; this is what the association result is trying to show.
You can get this information (e.g. the SV is more likely to happen in AD) by checking the p-values and slopes from the results here: https://github.com/RajLabMSSM/AMP_AD_StructuralVariation/tree/main/data/disease_associations
Also, if you are interested, I just released another set of results of associations for several clinical and pathological AD-related traits. Using the same SVs detected here (ROSMAP only). You can find the results here: https://github.com/RushAlz/ADRD_SV_GWAS
Best,
Ricardo
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hi,
Yes, all SVs will be found in at least one person with AD (not necessarily linked to the disease). These are all common allele frequency variants.
You can reach me at ricardo_a_vialle[at]rush[dot]edu
Best,
Ricardo


MySQL Connection Issues

Hi, I have been trying to get luckperms to connect to mysql. However, it never works, and just says there is a database error. I have checked the details several times, and even tried different hosts, but nothing works, and it is the same error every time.
Console error: https://pastebin.com/ZAMTeRj8
Version: v4.4.30
Thanks for reading

SilverSleet645

What server type and version are you running?
The first error is not a MySQL/connection error:
03.09 03:40:55 [Server] INFO java.lang.NoSuchMethodError: org.apache.logging.log4j.spi.LoggerContext.getLogger(Ljava/lang/String;)Lorg/apache/logging/log4j/spi/ExtendedLogger;
It can't find the Log4J logger which LuckPerms uses for the console. This could perhaps be caused by an outdated server version or not supported server type (e.g. CraftBukkit)

It could also be the same issue as in #1540.

Im running Spigot 1.8.8. I have also tried deleting the libs folder, but that didnt work either. Should I try a different version of 1.8.8? Like tacospigot or beerspigot?

I recommend using PaperSpigot for performance improvements.
Also, on the issue Tobi linked does Luck respond with the following:

This is most likely being caused by another plugin shading SLF4J incorrectly. Try running with only LuckPerms installed, if it works then you know the issue isn't being caused by LP.

I ran it on a local machine, and it worked first try! However, what is SLF4J and what other plugins use it? I have serverselectorx and ssx communicator on all servers. Could that be causing it?

However, what is SLF4J and what other plugins use it?

(From previous comment)
It can't find the Log4J logger which LuckPerms uses for the console.

I have serverselectorx and ssx communicator on all servers. Could that be causing it?

When the errors disappear when not using it, then yes.
Your best option is to add each plugin one at a time to your local test server to find the one causing it.
If for some reason none of the plugins causes those errors on your local server then perhaps it's an environmental issue caused by your server itself (Just a guess tho).

Im removing plugins from the server until the error disappears instead. Cause I have to clean up anyway. ill see what happens

Figured it out. Staff+ has some issues. Once i removed it everything started working perfectly.


Clearing discord token or settings overall

No option to clear discord token, no easy way to reset configuration
If somone is also looking how to clear settings, remove  %APPDATA%\AmongUsCapture on windows

You can technically just put nothing in the box and submit and it should set to nothing I'm pretty sure

You can technically just put nothing in the box and submit and it should set to nothing I'm pretty sure

It dosent work with empty input, already tried, you can set it for like 1 character but it will throw error every start up

It dosent work with empty input, already tried, you can set it for like 1 character but it will throw error every start up

Fixed in 33a2969880a45366fbd94846e97e93e239759a7f

Fixed in 33a2969880a45366fbd94846e97e93e239759a7f


[RFC] Add visitor capabilities to ASTs

Summary
I'm porting an AST visitor from Python to RustPython and would love to mirror the code which is using ast.NodeVisitor, but in Rust.
Detailed Explanation
A rough equivalence to being able to provide functions for certain nodes, while not worrying about other nodes or traversal.
Drawbacks, Rationale, and Alternatives
Rolling our own AST visitor.
Unresolved Questions
N/A

could you check if #4872 covers it?

If you could share more detailed use case, it will be a lot helpful for us to understand it better!

I couldn't grok the trace PR, I'll try again later.
As for the use case, we parse Python files too collect import statements anywhere in the AST. Using a visitor means:

we don't have to worry about recursing on nodes with statements in them
if we upgrade to newer RustPython with newer syntax support, we can't forget to support new nodes (like TryStar for instance) because the base visitor handles it.

Yeah I'll whip up the trait and make a PR against this repo

Thank you!

https://github.com/RustPython/Parser/pull/12