[Request Feature] Script can use vec2, vec3 as variable

Script can load prefab using scene instance, by calling scene.createObjectFromPrefab().
Scene instance can be obtained in serveral ways:

SceneManager.currentScene
self.owner.scene
from any SceneObject instance, using .scene

Serialize Vec2, Vec3, Vec4, Mat will be added once have time.


Added evaluate_function to lib_exec

Evaluates a function with given arguments and returns the result.

@akrasuski1 Try this out.

Looks ok.

Looks or works ok? (I haven't tested it enough yet)

Looks. I might test it in an hour or two.

@TDW89 What do you think about this feature.

Will give it a test run in a bit but after thinking abut it i can see some interesting uses for it

@TDW89 Technically everything you can do with lib_exec you can do with execute. evaluate and evaluate_function are just wrappers that make your code nicer and your life easier.

@TDW89 Confirmed that it's working in Slack.


Why is it different from production? What's the matter with this Redis/SUBSCRIBE? Why?

prod

test

Why is it different from production? What's the matter with this Redis/SUBSCRIBE? Why?The code is the same

Read the plugin source codes. The SkyWalking core and concept have nothing related to this.


Final Fantasy XIV: Stuttering on DXVK 1.9 or higher

I am having heavy stutters in Final Fantasy XIV on DXVK 1.9 or higher, master included.
Looks like its happening when game loads player characters. If i go to cities game stutters heavily on load and then having occasional hiccups when new players appear on screen. Outside of that game runs fine.
!
Software information
Final Fantasy XIV
System information

GPU: GTX 1080
Driver: 470.57.02
Wine version: 6.3, but this happens on any wine5, wine6 or proton versions
DXVK version: 1.9, 1.9.1

Log files
1.9.1 Release version:

d3d11.log: ffxiv_dx11_d3d11.log
dxgi.log: ffxiv_dx11_d3d11.log

master with reversed commit:

d3d11.log: ffxiv_dx11_d3d11.log
dxgi.log: ffxiv_dx11_dxgi.log

Can't reproduce, game runs perfectly fine here.
Reverting that commit is obviously not an option because doing so would introrduce a bug, and I don't really see why it would be any worse than 1.8.1 which had the same behaviour.

I am not asking to revert commit, just saying that i can run 1.9.1 or master without any stuttering if i revert it myself. Thought that will help.
I am certainly not confusing with shader compile, because i have tried with or without dxvk/GLCache and behavior is always the same:
I can load into crowded area on 1.8.1 with no cache at all, run around and everything will be smooth.
But if try the same on 1.9.1 there will be heavy initial stutters and then like every 5 sec. I can stand there for an hour and there still will be same stutters, so i dont think this is cache related. And areas where is no people around have no stutter at all.
Maybe this is my system issue, but i have no idea at all what can cause this.

Are you on Wayland or something? We changed some presentation stuff but it hasn't caused issues for anybody as far as I'm aware and like I said, there's no issue on my end.

I am on X11, dual monitor setup. I have tried to unplug second monitor, it got a little better but still worse than 1.8.1.

I have a similar problem.
(gtx1050, 470.57.02 and 470.56.05, not xwayland or prime, directory driven Xorg by nvidia)
dxgi.maxFrameLatency = 1
is reduce the stutter.
my system is always 100% gpu bound.

Can confirm that dxgi.maxFrameLatency = 1 helps for me.
Stuttering on entering cities is completely gone, there is still some when just running around, but much less now.

I've also been having this issue, primarily when running the game with a large number of hi-res texture mods installed. Removing mods mitigates but doesn't entirely eliminate the issue. Both @vyfvyf's patched dxvk and the dxgi.maxFrameLatency = 1 solution completely resolved the issue for me.
I am running a GTX 1660Ti (Mobile) with 470.57.02 drivers. It is worth mentioning that I was unable to replicate this issue with an identical install and mod deployment on my old gaming rig running an AMD R9 380X, so this may be an Nvidia-specific issue.

The game is borderline unplayable in cities for me, above Standard graphics settings. Turning off SSAO somewhat mitigates this, but not completely, and that isn't ideal when I used to be able to run the game fine on High (Laptop). I fully expect lower framerates in crowded areas, especially with the influx in the game's popularity lately, but the stuttering drops my framerate below 1 for a good 2-5 seconds at a time every few seconds, just by being in the city, not even anywhere near the big crowd.
GTX 1060 (3GB), 470.63.01 drivers, 5.10.56 kernel, running on X11, if that matters. No game mods whatsoever. I'll try the new Proton GE, but how would someone go about applying this frame latency config otherwise?

After playing with dxgi.maxFrameLatency = 1 for a few days, i can say that it helps, but does not completely eliminate issue for me. Cities are much better, but there is still random stutter that can happen even in barren areas.
Best option for me still is to play on dxvk with reversed commit, which runs game flawlessly in any situation.
@Ammako please refer to readme about DXVK_CONFIG_FILE launch option. If you are on Steam add %command% after.

 Stuttering exists for me, but is virtually unnoticeable without monitoring it on something like mangohud

Yeah, I'm just using new Proton GE that has the fix built-in. I was mostly asking for anyone else who might end up here and would need to know how to apply the fix.
Stuttering is essentially gone now, what little bit of stuttering there might be left isn't noticeable because it only happens at times where the framerate is already unstable anyway.

Commenting to report that the stutter was indeed an issue with the previous release.
The game ran completely fine before using previous Protons/ DXVK builds, but with ProtonGE 6.14 (Used for the NO Steam 1 command) It became completely unplayable in cities given i had 75-90 fps.
Raids and everything was smooth.
This fixed everything <3

Can anyone test if dxvk.halveNvidiaHVVHeap = True improves things?

With or without maxFrameLatency = 1

Without.

thanks, doitsujin for looing this!
I can confirm dxvk.halveNvidiaHVVHeap = True reduce the stutter.

Well now I got two conflicting answers with someone on Discord saying that it doesn't solve the problem.

default-settings  => cause stutter   : (vidmem-heap2) 220MB (91%).
dxgi.maxFrameLatency = 1  => reduce stutter : (vidmem-heap2) 160MB (66%).
dxvk.halveNvidiaHVVHeap = True => reduce stutter : (vidmem-heap2) 107MB (43%).

Interesting, thanks for gathering that data. Frame latency affecting this certainly makes more sense now.

This issue seems to have been fixed for me on the latest nvidia driver 470.62.05 (vulkan dev driver) with RTX 2060 Super.

Added a workaround, should run better now (although performance may drop a little).

Just wanted to leave a comment I case somebody else finds this, I also ran into the stutter issues with DXVK v1.10.1 but none of the suggestions in this thread fixes the issue for me, in the end I had to set the following two config options which finally fixed the issue for me:
dxgi.syncInterval = 0
dxgi.maxFrameRate = 60

RTX 3090, Kernel 5.14, NVIDIA 470.74, Xorg, Gnome, and DXVK latest release (1.9.2):
https://software.opensuse.org/package/dxvk
With Lutris installer script, XIV Launcher Wine 6 (6.10) edition.
I can confirm that it is not shader compiler caching. The stutter is permanent. For some reason it gets worse if I look at the floor of the gold saucer's "Round Square" and run in circles. Then I get a severe amount of stutter.
I then did the dxgi.maxFrameLatency = 1 trick and it completely solved the stutters. I can run in circles for days without any stutter. It also reduced the game's input lag. Spinning the camera is noticeably more responsive for some reason...
I swear, the gameplay feels way more responsive, it went from feeling like syrup (maybe 100ms of latency?) to feeling almost like on Windows.
I am playing at 4K 60 fps BTW, and it is very smooth after the config tweak... And I realize that the config change disabled the normal "3 frames of buffering" to a single (1) frame of buffering which probably increases load on the graphics card. But it is way smoother than 3 frames of buffering.
I have not tested dxvk.halveNvidiaHVVHeap = True and I am going to bed now, just found this issue on my phone while researching.
What's the theory? That queueing 3 frames uses too much memory? @doitsujin

Where exactly is the file that needs to be edited? I´d like to try this fix for my stutter

In a dxvk.conf file you need to create yourself next to the exe (or where ever the logs generate).
Note that dxvk.halveNvidiaHVVHeap isn't a thing anymore

FWIW that workaround shouldn't be necessary anymore.


Load bar not showing

Describe the bug
I have a very standard setup using unity content just as described on the documentation. Everything works fine, but there's just no load bar. My build is 13MB so when I host it and go on the site, there's no load bar to indicate the download progress. I've also clone the react-unity-webgl-test and got that up and running and it seems even that doesn't have a load bar?
To Reproduce
Just try the react-unity-webgl-test and getting that up and running. No load bar. I feel like this issue is happening with everyone?
You'll see the usual dark blank screen when it's loading, then the Unity logo pops up and the game loads. Shouldn't users see a load bar during the blank screen period?

nvm I saw the close pr


Add functions to Import/Clear/Export the WCIF

I wanted to create a pull request on top of #46, but it wouldn't let me open it in this repository because the base branch would have been in my fork too.
Therefore this PR contains all the code from #46; the diff will shrink when #46 is merged, but at the moment I would recommend reviewing this by taking a look at the last 3 commits individually, or going to the diff between fixes and import-export-wcif!
I started by implementing the ExportWCIF function, and ran into an expected behavior from nodemon I did not see coming, where emitting a json in a subfolder would trigger a rebuild of the application and reset the connection in the browser.
I worked around this by creating a default OUTPUT_BASE folder, which I told nodemon to ignore through -i outputs.
I have created a dev-server target in the package.json to be able to conveniently run npm run dev-server without having to remember the correct command line every time.
As far as the implementation goes it was quite straightforward, but I did not invest into error checking and the tool will just crash if it can't write the file.
The ImportWCIF function is quite straightforward too, and load a file relative to SCRIPT_BASE.
I also took the liberty of implementing a ClearWCIF function: the name may need to be adjusted, since the purpose is not to reset the whole WCIF but basically provide a "clean" WCIF on top of which the script will run (no assignments, no groups, no unexpected extensions).
It's actually awesome just to make sure anything created by another tool is gone.
If I'm not mistaken there is not such a function even for the WCA website admins; you would have to go into rails' console to clean up the WCIF manually (which I believe I've done several times in the past when some competitions' state got messed up).

Thanks for the quick review!
I just pushed some changes, hopefully I did not overlook any of your comments, feel free to close/re-open threads to make sure I did not miss something :)


Update of java-mpns

Done for AGPUSH-1589

needs to go to master too

@edewit any concerns?

landed in 582df099bdb0d55f904400110086a388623b6bf2 and 38c8e4eff09c743031483bd0c540178e6661dde6


LRU cache for phones_for_word lookups

I'm actually using the library for a thing right now and the performance isn't quite where I want it to be. I'd like to investigate drop-in LRU cache implementations and see if I can add one to at least the phones_for_word call in order to improve performance a little bit without needing to make a big dictionary for word-to-phone lookups. Starting point here

I ran into some similar problems, so I rejigged things to use a dict internally (#10). The speed-up on phones_for_word is of the order of 30000x. Not sure if you want something smarter.

See #10—I really would prefer something that doesn't use a dictionary for the internal representation. It's faster for lookups, but I'm personally more concerned in the long run about the performance of search() and keeping the library as lean memory-wise as possible. Off the top of my head, solutions I'd consider merging include a LRU as described above, or a function that returns a dictionary that can be used for quick lookups (at the discretion of the user).

The problem I ran into was that I had no idea that phones_for_word was as inefficient as it is. I was working with it for several days before I thought to look at how it's implemented. I imagine a less technically proficient user might never think to look.
If you weren't focused on memory usage, my suggestion would be to look at different internal representations for each of the functions. The speed-up which is possible on phones_for_word (and related functions) is really quite substantial. The only way I can think to speed up search is to run a regex over the full dictionary, rather than individually on each line.

That's a good point, I'll consider adding an FAQ item.

just went ahead and added a dictionary lookup (#22). thanks everyone for coping with me being obstinate 👍


[Feat]: add support for systemd socket activation

Is your feature request related to a problem? Please describe.
I would like to configure zot to use a privileged port like 80 or 443 without granting it the CAP_NET_BIND_SERVICE capability.
Describe the solution you'd like
Would like to configure Zot to use systemd Socket Activation.
For more information, please see:

https://0pointer.de/blog/projects/socket-activated-containers.html
https://www.sobyte.net/post/2022-01/systemd-socket-activation/

Describe alternatives you've considered
No response
Additional context
No response

@rgl thanks for filing this issue.

Just so we are on the same page, this means that I will modify the following code, OK?
https://github.com/project-zot/zot/blob/v2.0.0/pkg/api/controller.go#L145-L168

@rgl would just add another zot.socket-service file

@rchincha the PR is at https://github.com/project-zot/zot/pull/2186.
please be aware that I've updated the go.mod too, which I'm unsure if should be included in the PR. please advice in the PR issue.


How to use the library for chess

I have a problem when trying to use this library for chess because getTerminalStateByPerformingSimulationFromState try to reach the end game; however, this is not feasible when it comes to chess.
Can you show me how to write the getTerminalStateByPerformingSimulationFromState for chess?

Hey. I don't understand what exactly you mean by not feasible. The function should "play" the game from any state to the end and return that end (terminal) state. The naive approach would be to choose all the actions randomly, although some simple heuristics should improve the speed and quality of the decisions.


FASP-7 response-model

FASP-7
https://fastapi.tiangolo.com/tutorial/response-model/

Codecov Report

Merging #27 (219a940) into main (f7dda52) will increase coverage by 0.13%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #27      +/-   ##
==========================================
+ Coverage   98.88%   99.01%   +0.13%
==========================================
  Files           1        1
  Lines          90      102      +12
  Branches       17       19       +2
==========================================
+ Hits           89      101      +12
  Partials        1        1

Flag
Coverage Δ

unittests
99.01% <100.00%> (+0.13%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

main.py
99.01% <100.00%> (+0.13%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1c3117f...219a940. Read the comment docs.


Registry as a Postgres table

Hi! Following the README, I try to store the registry as a Postgres table:
registry:
    registry_store_type: feast_postgres.PostgreSQLRegistryStore
    path: feast_registry    # This will become the table name for the registry
    host: localhost
    port: 5432              # Optional, default is 5432
    database: mydb
    db_schema: dbschema.sql
    user: myuser
    password: mypassword

and feast apply gives me
feast.errors.FeastClassImportError: Could not import RegistryStore 'PostgreSQLRegistryStore' from module 'feast_postgres'
The feast packages are:
feast                           0.15.1
feast-postgres                  0.1.6

How can I store the registry as a Postgres table?

Hey @kirill-zaitsev,
The postgres registry is still a work in progress. I thought I had finished it and pushed the README, but haven't completed publishing to pypi. I expect to publish it later today or tomorrow.

Hey @kirill-zaitsev, I just published 0.2.0 (https://pypi.org/project/feast-postgres/). It has the postgres registry support.
Can you try it out and let me know if there are any issues please?

Thank you. It works with basic usage, I will let you know if things break in the scenarios where I plan to use it.


Issue #39 - Add .asf.yaml for asf-site

Which issue does this PR close?
Issue #39 .
Rationale for this change
To auto-update the documentation whenever something is pushed to the asf-site branch.
What changes are included in this PR?
Adds publish section in .asf.yaml so that it publishes to https://arrow.apache.org/datafusion-python
Are there any user-facing changes?
No

@kou Please review!

Oh, sorry. This pull request was closed...
We need to put .asf.yaml to the default branch (master) not asf-site.
I changed the base branch to master then this pull request was closed...
Could you create one more pull request that uses master as the base branch?

Sorry... I was wrong...
We need to put .asf.yaml to asf-site... Could you create the same pull request again? Sorry...
https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-Publishingabranchtoyourprojectwebsite

Note: although publishing the asf-site branch used to work without .asf.yaml being present, since May 2021 that file MUST be present at the root of the branch you wish to publish. for everything (including soft purging the CDN cache on updates) to work correctly.


[BPF] extra conntrack counters and stats

Description

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

ebpf: additional conntrack counters

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

Nice work ~
It seems that we added stats for conntrack in the second commit, which is really useful. Would it be possible to also add counters for conntrack creation failure events?

Would it be possible to also add counters for conntrack creation failure events?

That is added in the first commit deny_reason(ctx, CALI_REASON_CT_CREATE_FAILED); and printed in dump counters

Would it be possible to also add counters for conntrack creation failure events?

That is added in the first commit deny_reason(ctx, CALI_REASON_CT_CREATE_FAILED); and printed in dump counters

Ah, I clearly missed that.


[zh] sync manage-resources/*.md

Signed-off-by: song<EMAIL_ADDRESS>releated issue:  https://github.com/kubernetes/website/issues/33477
task-4
46	37	content/en/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace.md
54	32	content/en/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace.md

/approve

/assign

/lgtm


Remove uncompatable mods when updataing between minecraft versions

When updating from one minecraft version to the next mods that aren't compatible with that version get left behind, these should be removed at the user's discretion

I think the underlying issue was fixed in 64b3a03cec30cc0295760b7ec92d87da9abc5ebb, But I will expand this into being a feature request as follows:
When Updating to a new minecraft version and not all mods are available yet the user should be able to chose to proceed. For all the mods that aren't available their version and file property will be updated to be empty and the jar being pointed to by file will be removed. This way when the mods are available mod-mender will download them as if they were updates and the user can choose to update with the partial mods.


Drop LISTEN_ADDRESS_DISCOVERY_METHOD in favor of explicit environment variable

We can't discover IPv6 using GCE metadata anyways (the address can be private but we will bind to it and there is no way to make sure we can only fetch public IP), instead we can provision google_compute_address explicitly in the relay terraform module and use it in an environment variable.

This is not possible because we use managed instance groups and they can not take pre-allocated IPs.


Multiple SliverPinnedHeader overlapping

I have a CustomScrollView of pinned years and sibling pinned months followed a SliverList with ListTiles for each month (shown here with an empty SizedBox). The issue I'm having is that year and month overlap each other when month reaches the top of the scaffold (where year is pinned)

This is the basic structure of the page (leaving out all the minor details for brevity sake):
class Page extends StatelessWidget {
  const Page({super.key});

  @override
  Widget build(BuildContext context) {
    return CustomScrollView(slivers: [
      SliverMainAxisGroup(slivers: [
        SliverPinnedHeader(child: Text('2024')),
        SliverMainAxisGroup(slivers: [
          SliverPinnedHeader(child: Text('April')),
          SliverList.list(children: [ SizedBox(height: 40)])
        ])
      ])
    ]);
  }
}

How can I get the SliverPinnedHeaders to not overlap at the same leading edge? Is there a way to force a SliverPinnedHeader to stop at the previous SliverPinnedHeader's bottom?

After some tinkering, it dawned on me that MultiSliver handles my usecase with the pushPinnedChildren property. For some reason, I thought I had to use SliverPersistentHeader for pushPinnedChildren to work. I didn't need SliveMainAxisGroup at all.


Consider support for hexagonal grids

Currently this use case is out of scope. Can be considered in the future once the majority of the engine is robust.


Replace "blacklist" with "blocklist"

Context: b/178201454

Trying to unstick the CI check by closing and reopening...


DeprecationWarning (python 3.7): [pipcompilemulti/config.py:56] 'collections.abc' is deprecated, and in 3.8 it will stop working.

=========================================================================================== warnings summary ============================================================================================
tests/test_cli_v2.py::test_command_exits_with_zero[lock]
  /pmc/Work/kolotev/0git/.github/pip-compile-multi/pipcompilemulti/config.py:56: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
    if isinstance(default, collections.Iterable):

-- Docs: https://docs.pytest.org/en/latest/warnings.html
======================================================================================= slowest 5 test durations ========================================================================================

Fixed in ea7492c87c8b


refactor(mempool): transaction_queue remove from trait

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 84.55%. Comparing base (bd27a39) to head (4f0e469).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #325      +/-   ##
==========================================
+ Coverage   84.12%   84.55%   +0.43%
==========================================
  Files          28       28
  Lines        1367     1360       -7
  Branches     1367     1360       -7
==========================================
  Hits         1150     1150
+ Misses        158      151       -7
  Partials       59       59

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Update automate-tests.mdx

Added npm ci as step 1 to avoid any kind of warning while installing dependencies.

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] My change requires changes to the documentation.
[x] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

closing this open PR, as new PR #4529 has been raised


Add priyaughade2001 file

This pull request adds priyaughade2001 file _posts/0000-01-02-priyaughade2001.md.

DONE


Fix error msg if C++11/14 is not used with LLVM>=3.5

Fixes #563

You know, in thinking about it, I want to make the change in the other direction. Let me make an alternate proposal.

I'm closing this and proposing #634 as an alternative.
Sorry to stomp on your PR. But this split between USE_CPP11 (for the Make level) versus OSL_BUILD_CPP11 (for the CMake level) has bothered me for some time and I've wanted to rectify it.


enable fractional colspan for dynamic grid?

Fractional colspan values break the column offset math in dynamic grid. This is probably an easy fix, but I'm just making a note here for now. I'm inclined to fix this by making better helper functions to make "virtual" grids on top of smaller grids with more columns.

I've been thinking more about where I want to take this, and I think the correct answer is that if you want thinner columns, that you should just define more columns.


Reduce typo count further.

This leaves a small number of known typos (which are in actual code identifiers). After that, if there's interest, we could enable the same typo check in CI that we use in LineBender repos.

Rebased to fix merge conflicts.

I think a typo check in CI would be reasonable, if it's simple enough?

@cmyr Very simple! There's one in norad now. I have another PR to file and then I'll do that one and you can see what you think.


Add Travis and build wheels

I can show how to auto-upload the wheels to pypi, it would be a big help to me if they were there (https://docs.travis-ci.com/user/deployment/pypi/)
i can add windows with appveyor if it's important

great job
actually reminds me of handing in a PR
I worked on it for while but never finalized it. Python is not is not my favorite language.
Anyways if this doesn't get merged, I might borrow some of it if it's okay.
My fork is here https://github.com/sgeto/libdnet . Take what you need from it.
I'll send a PR once I'm happy with it and free

If you're willing to maintain and publish the wheels to pypi, just let me
know what help you need
On Fri, Jun 2, 2017, 22:10 Ali Abdulkadir<EMAIL_ADDRESS>wrote:

great job
actually reminds me of handing in a PR
I worked on it for while but never finalized it. Python is not is not my
favorite language.
Anyways if this doesn't get merged, I might borrow some of it if it's okay.
My fork is here https://github.com/sgeto/libdnet . Take what you need
from it.
I'll send a PR once I'm happy with it and free
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/boundary/libdnet/pull/6#issuecomment-305946882, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABGv4gcVcccpiwSr6jRG4_qgqj0GSw4Sks5sAM63gaJpZM4Nu0oE
.

--
Stephen Groat
<EMAIL_ADDRESS>+1<PHONE_NUMBER>
Sent from mobile

sounds good. I guess can do that. I'm already maintaining libdnet cus it's part of the lua bindings of another project I'm taking care of. Long story...
I did some stuff with dnet's python bindings (python 3 support and silenced some compiler warnigs), but really just for fun.
What do you have in mind?

@sgeto any idea of how to run the tests? do you know what make command it is?

make check
but you have to install the python module first... or make sure it's somewhat reachable by the python interpreter. Whatever is more convenient I guess...

does running make check run any tests without the python path being correct? shouldn't it run the standard c tests?

"make check" only tests the python module. You have to manually run the unit tests. If the python path isn't set to include to the binding, then the test will fail...


support for app-side cascade destroy

hi,
in rails activerecord, we have this:
has_many :memberships, dependent: :destroy
has_many :memberships, dependent: :delete_all

i think best not todo delete_all as it will possibility causes hanging fruits if there are subtables in membership as it will issue direct sql statement to delete them
but when :destroy is used, then it will call model destroy method and it shall trigger sub table destroy when needed.
but one more concern is, sometimes we do not query the sub table, for example:
We query A without eagerLoad B, but when we destroy A, we wish that B as a child is also queried and destroyed in this scenario.
would love to see if anyone willing todo this?
or any guide on which code i can look for to work this out.
thank you

Is this option not help these problem? It is not application side solution but on database.
https://github.com/gobuffalo/pop/blob/master/fizz/README.md#add-a-foreign-key

thanks , but what we r looking for is application layer logic to handle this

Hello,
I was wondering if there is any update on this?
Thanks!


Fix ContiguousArena::remove

Closes https://github.com/dimforge/salva/pull/33
Closes https://github.com/dimforge/salva/issues/31
Also adds a test

Hmm, it's still broken with 3+ entries

There we go. The fixup should only happen when an index was removed that is not at the end of the array.


S3 and Git backends have different behaviors for file handling

Describe the bug
Spring Cloud Version: 2022.0.0
We are comparing a Git and S3 backend to better understand the differences, specifically for serving text files. There's some different behavior between requesting files between the S3 and Git backends and was trying to understand why this is expected.
Unless we're misunderstanding, it makes switching out the back-ends impact the clients. Only handling JSON files in S3 is fine for now, but we would have expected the application name and routes to be consistent between the two back-ends.
In the S3 implementation, it's treating the {application} as part of the object key prefix so the following requests work differently between the back-ends.
Git:
curl localhost:8080/foo/default/master/data1.json (works)
S3:
curl localhost:8080/foo/default/master/data1.json (does not work)
curl localhost:8080/foo/default/master/data1 (does not work)
curl localhost:8080/data/default/master (works)
Thanks for any guidance.
Sample
Git Repo and Bucket have a single file called data1.json. In Git, it is in the master branch. In the S3 bucket, there is a master folder in bucket bucket1
S3 Config
awss3:
  bucket: bucket1
  region: us-east-1
  endpoint: http://localhost:9000

Git Config
git:
  uri: file:///Users/tgaines/dev/config-data
  default-label: master
  clone-on-start: true

To make this work we originally relied on Spring Cloud AWS.  You would need to add Spring Cloud AWS to the classpath.
https://github.com/spring-cloud/spring-cloud-config/pull/1517
However there are a couple of issues that I see with this.

There doesn't appear to be a GA release of Spring Cloud AWS that is compatible with Spring Boot 3.0.x yet.
The class we relied on SimpleStorageProtocolResolver appears to have been removed from Spring Cloud AWS in their main branch.

Did this work with Spring Cloud 2021.0.5?

Thanks for the reply @ryanjbaxter. I moved to 2021.0.5 and now getting compilation issues about S3Client vs AmazonS3.
I am including Spring Cloud AWS (3.0.0-M3).
Technically, everything works but is it expected to have different behaviors for how files are retrieved between a Git and S3 backend? In the Git version, it treats the first part of the route as the application name whereas in S3 it uses it as part of the object key for retrieving a file.
Git (foo is the application name here)
curl localhost:8080/foo/default/master/data1.json
S3 (foo is used to build the object key - this doesn't work)
curl localhost:8080/foo/default/master/data1.json
Thanks again.

Can you provide a sample config server application that uses 3.0.0-M3?

Main repo (Spring Boot 3)
https://github.com/tjg184/spring-cloud-config
I'm using Minio so just manually configured it in com.tgaines.config.Configuration. There may be a simpler way here, but this worked for now.
I pushed a repo up with sample data..
Spring Cloud Config Data: https://github.com/tjg184/spring-cloud-config-data

May be related to https://github.com/spring-cloud/spring-cloud-config/issues/1939

FYI there is another bug in Spring Cloud AWS 3.0.0 which blocks this from working
https://github.com/awspring/spring-cloud-aws/issues/650


After a load, getting the blueprint even tho only 1/2 of fragments are found.

User had only 1 battery fragment. 2 are required to unlock the blueprint.
After reloading a game, the blueprint was awarded.

I couldn't repro this on the latest code. Let's keep it open to see if repports come in again, and then we can try to pinpoint the issue.

despite using the latest version, I still seem to have this bug.
it's usually accompanied by the server telling me that it's out of sync and then re-rewarding me all of the checks i've already obtained. this often seems to happen upon reloading a save.


How to convert arbitrary maven dependency to j2cl_library in Bazel

I am attempting to convert a simple project to j2cl using Bazel but I am unable to figure out how to turn an arbitrary dependency into a j2cl_library. I can not find any examples that do not define j2cl_library in terms of local source.
So if I have a maven dependency of my application that I want to compile against. It includes annotations that drive an annotation processor.
The dependency (that includes annotations) is declared via:
maven_jar(
    name = "org_realityforge_arez_core",
    artifact = "org.realityforge.arez:arez-core:0.132",
    sha1 = "6ee17e9fa56cfac5236c3a36b9e11bc0772825fc",
)

The annotation processor is declared via:
maven_jar(
    name = "org_realityforge_arez_processor",
    artifact = "org.realityforge.arez:arez-processor:0.132",
    sha1 = "8d81984baf6273a3f8cae8cc2701cb3807921dab",
)

java_plugin(
    name = "arez_processor",
    processor_class = "arez.processor.ArezProcessor",
    deps = ["@org_realityforge_arez_processor//jar"],
)

The build of my code is defined via
j2cl_import(
    name = "org_realityforge_arez_core-j2cl",
    jar = "@org_realityforge_arez_core//jar",
)

j2cl_library(
    name = "react4j-todomvc-j2cl",
    srcs = glob(["src/main/java/react4j/todomvc/**/*.java"]),
    plugins = ["arez_processor"],
    deps = [
        "org_realityforge_arez_core-j2cl",
        ...
    ],
)

This get's my local code compiled but obviously does not j2cl compile that arez_core dependency. The assumption being that j2cl_import is only really for "annotations" and other .class file inclusions in the compile but it does not trigger a j2cl compile. So I end up with with my local source code compiled but not arez-core.
For a a simple reproduction of this issue you can see the code at
https://github.com/react4j/react4j-todomvc/tree/raw_bazel_j2cl
A log of a failed build is available at
https://travis-ci.org/react4j/react4j-todomvc/builds/500993432
It is probably fairly obvious what my problem is for a bazel user but if you could point me in the right direction that would be fasntastic.

j2cl_import is not what you are looking for. It doesn't have a great name but currently j2cl_import is only for importing annotations without source and shouldn't be used for anything else.
You should get source jar for your maven target and supply that via srcs of your j2cl_library target.

Much easer thanks

still not that obvious to me. how to build a third part java lib, such as 'apache_common_text' to j2cl lib.
a sample would be really helpful. Thanks.

Assuming a particular library is j2cl compatible it is as simple as adding the maven dependency label to srcs attribute. Something like:

j2cl_library(
    name = "mylib-j2cl",
    srcs = ["//thirdparty:mylib"],
    deps = [
        ":javax_annotation-j2cl",
        ":gwt-javaemul-internal-annotations-j2cl",
        ":jsinterop_annotations-j2cl",
        ":jsinterop_base-j2cl",
    ],
)

Unfortunately I don't have a clean example in OSS world but an example I was working on is available at https://github.com/react4j/react4j-todomvc/tree/raw_bazel_j2cl
It does not do everything "correctly" (i.e. it uses elemental2 jars shipped to maven central) and adds native js and externs locally because j2cl does not yet have an approach for working with javascript deps from maven central ... but it at least gives you an idea.
I should update it to follow some nicer conventions but I haven't quite got around to it ;)
HTH


=== is not opposite of !==

Challenge Name

https://www.freecodecamp.com/challenges/comparison-with-the-strict-inequality-operator
Issue Description

Actually !== is not the opposite of the strict equality operator. === means equal value AND equal type. !== means not equal value Or not equal type.That means if one condition is true then the expression will return true.But for strict equality operator both condition must be true.I think these information should be provided.
Browser Information

Browser Name, Version: Google Chrome,54.0.2840.99 m (64-bit)
Operating System: Windows 10
Mobile, Desktop, or Tablet: Desktop

It's not equal value and/or not equal type. See here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators
I thinks the sentiment is still correct. But others can weigh in.

source

We could re-write the instructions to reflect the and/or nature of !==

Operand 1
Operand 2
State

'One String'
'Another String'
true

1
2
true

1
'1'
true

4
4
false

'String'
'String'
false

@Bouncey but isn't !== the accepted opposite of ===? Or is there an alternative that I'm not aware of?

@dhcodes it is and it sort-of isn't
The issue is with this line in our challenge instructions

The strict inequality operator (!==) is the opposite of the strict equality operator.

Where the strict equality operator requires both type AND value to be equal to resolve as true, the strict inequality operator requires either the type OR the value to be different to resolve as true.
We could reword the instructions to reflect the difference of the strict inequality operator

From a logic perspective, I think !== is the logical opposite of ===:
Assuming === can be written as Operand1 AND Operand2, then the opposite would be NOT(Operand1 AND Operand2). This can be written as NOT(Operand1) OR NOT(Operand2), which is the same as !==. However, I can see where the ambiguity is in the instructions and why that can be confusing.

I agree with @dhcodes and @robbawebba. While I was writing out my argumentation, Rob did a much better job. The only exception is NaN, which is not equal to itself.
I was writing a Codepen to assert (pun intended) my assumptions. In case anyone prefers code examples, here's my mess: http://codepen.io/Timoh/pen/ZBKBdL?editors=0012

I'm not opposed to changing it; I am just unsure what rewrite would accomplish this without making it more confusing for the camper.

The only way to get a true opposite is.
var a === something; var b === !a;

I observed a lot of my friends do mistake in this logic.In most places people say !== is opposite of ===.So they assume the name of !== will be Not Equal value And Equal Type. as === is called Equal Value and Equal Type. Also in most cases learners are beginner so i think at least the name should be mentioned. It's just my suggestion.
http://www.w3schools.com/js/js_operators.asp

I possibly like the idea of adding the word 'logical' as in:

The strict inequality operator (!==) is the logical opposite of the strict equality operator.

And then perhaps we add an MDN link to the site above?

Yes.It is a good idea.....@dhcodes

If anyone wants to take this up, you'll need to add the word logical to the sentence:

The strict inequality operator (!==) is the opposite of the strict equality operator.

to make it:

The strict inequality operator (!==) is the logical opposite of the strict equality operator.

and modify the MDN Links file to add a reference to the link below and then add the MDN link to the challenge:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Non-identity_strict_inequality_(!)
Note: MDN links are not currently working on staging so mirror the code of other challenges with MDN links as there is no way to currently test locally.

I'd like to take this up, might need some help with the MDN links though, haven't done it before.


Interactive Open Model Zoo as OpenCV module

import cv2 as cv

from cv2.open_model_zoo.topologies import mobilenet_ssd
from cv2.open_model_zoo import DnnDetectionModel

frame = cv.imread('example.jpg')

ssd = mobilenet_ssd()
net = DnnDetectionModel(ssd)

classIds, confidences, boxes = net.detect(frame, confThreshold=0.5)
for box in boxes:
    cv.rectangle(frame, box, (0, 255, 0))

cv.imshow('out', frame)
cv.waitKey()

:snake: :wolf: :lion: :hear_no_evil: :elephant: :penguin: :octopus: :shark: :mouse: :camel: :frog: :ant: :leopard: :fox_face: :fish: :smirk_cat: :beetle: :whale: :koala: :spider:
WIP

[x] Add inference. There are multiple options:
1. Each topology is derived from OpenCV's dnn::Model. Using downloaded models IENetwork can be initialized separately.
2. Each topology is just meta class which can be casted to dnn::Model or IENetwork
[x] Hash verification: do not download if hash is correct and verify hash after downloading (show warning in case of mismatch)
[x] Cross platform cache dir (using OPENCV_OPEN_MODEL_ZOO_CACHE_DIR environment variable to change default caching location)
[x] Archives management: tar.gz
[x] Model Optimizer conversion
[x] Added aliases for OpenVINO models (by highest version)
[ ] Archives management: zip
[x] Downloading info: size and progress
[x] Downloading and inference tests.
[x] OpenCV DNN: input size
[ ] Documentation at help(topology): description, license etc.
[ ] Replace pyyaml to own YAML implementation due it's not default Python package
[x] Errors handling (Downloading, Model Optimizer)

related: https://github.com/opencv/opencv/issues/14730
Pipelines
example with text recognition demo API:
import cv2 as cv
import numpy as np

from cv2.open_model_zoo import TextRecognitionPipeline

frame = cv.imread('text.jpg')

p = TextRecognitionPipeline()

rects, texts, confs = p.process(frame)

for rect, text in zip(rects, texts):
    vertices = cv.boxPoints(rect)

    for j in range(4):
        p1 = (vertices[j][0], vertices[j][1])
        p2 = (vertices[(j + 1) % 4][0], vertices[(j + 1) % 4][1])
        cv.line(frame, p1, p2, (0, 255, 0), 1);

    x = np.min(vertices[:,0])
    y = np.min(vertices[:,1])
    cv.putText(frame, text, (x, y), cv.FONT_HERSHEY_SIMPLEX, 1.0, (0, 255, 0), thickness=2)

cv.imshow('frame', frame)
cv.waitKey()

Is it really necessary to have such a long prefix? cv.open_model_zoo_TextRecognitionPipeline(det, rec)
Do you plan to add the example into the demos folder?

Is it really necessary to have such a long prefix? cv.open_model_zoo_TextRecognitionPipeline(det, rec)

@snosov1, For now it's a kind of bug in OpenCV's wrappers (related feature request https://github.com/opencv/opencv/issues/14730). For now there is a workaround for it to define a method with proper name:
class TextRecognitionPipelineImpl
{
    //...
};

Ptr<TextRecognitionPipelineImpl> TextRecognitionPipeline() { return new TextRecognitionPipelineImpl() }

corresponding Python code:
from cv2.open_model_zoo import TextRecognitionPipeline
p = TextRecognitionPipeline()

Do you plan to add the example into the demos folder?
It'd be nice. In example, add more Python demos for existing C++ ones. The only thing we have to decide is a code duplication: move C++ code from samples to the module and replace it to corresponding APIs.

Not sure I understand the answers, Dmitry =)

For now it's a kind of bug in OpenCV's wrappers

Are you saying that it will look "normal" after the merge of the respective PR?

add more Python demos for existing C++ ones.

That's a different story. For starters we should have at least one to showcase this type of usage.

@snosov1,
from cv2.open_model_zoo import TextRecognitionPipeline
p = TextRecognitionPipeline()

would be available :) I'll provide the code which do it in future commits.

@dkurt This is a really amazing PR, incredible work! If you need help putting together examples of how to use it let me know and I'll publish some content on the PyImageSearch blog 😄

Adrian, thank you! That would be great!

Absolutely! I'll keep an eye on this PR and once it's merged I'll put something together 😄
I was looking at the TextRecognitionPipeline code -- I assume it's using EAST to localize text in the image, but what about the actual OCR component. What model is being used there?

@jrosebr1, text-detection-0004: https://github.com/opencv/open_model_zoo/blob/master/intel_models/text-detection-0004/description/text-detection-0004.md.
I think that next step is to enable these pipelines to with with different kind of models (it could be as EAST text detection as Intel's models).

Without going into a detailed review, I have a few high level comments:

I'm confused as to how this is supposed to be used. OMZ is included into the OpenVINO toolkit as source code, while OpenCV is included as binaries.

Half of this code is a reimplementation of Model Downloader/Converter. This is extremely fragile. The only supported way to download/convert/query models is by running the tools in tools/downloader. Anything else is liable to break as soon as the format of the config changes.
This code, from what I can see, is already non-functional for models with regex-based postprocessing and PyTorch models. And it's going to be completely broken after #276, and then broken some more by another PR I have planned. And I heard rumors about a planned Caffe model which requires a new kind of post-processing, so that's going to be broken too. And that's just the changes that I can foresee.
The bottom line is that this is unacceptable. You either need to run Model Downloader or just request that the user supply a directory with everything already downloaded. IMO, the latter option is way simpler.

@IRDonch, thanks for review!

I'm confused as to how this is supposed to be used. OMZ is included into the OpenVINO toolkit as source code, while OpenCV is included as binaries.

We can also build it as a part of OpenCV's binaries for OpenVINO. Just adding OPENCV_EXTRA_MODULES_PATH during build time.

Half of this code is a reimplementation of Model Downloader/Converter. This is extremely fragile. The only supported way to download/convert/query models is by running the tools in tools/downloader. Anything else is liable to break as soon as the format of the config changes.

Python code is based on OMZ's downloader and https://github.com/opencv/opencv_extra/blob/master/testdata/dnn/download_models.py. Binaries uses only default Python packages (urllib, zipfile, tarfile, etc.)

This code, from what I can see, is already non-functional for models with regex-based postprocessing and PyTorch models. And it's going to be completely broken after #276, and then broken some more by another PR I have planned. And I heard rumors about a planned Caffe model which requires a new kind of post-processing, so that's going to be broken too. And that's just the changes that I can foresee.

Most of postprocessing doesn't seem actual:
    postprocessing:
      - $type: regex_replace
        file: mtcnn-p.prototxt
        pattern: 'dim: 12'
        replacement: 'dim: 720'
        count: 1
      - $type: regex_replace
        file: mtcnn-p.prototxt
        pattern: 'dim: 12'
        replacement: 'dim: 1280'
        count: 1
    model_optimizer_args:
      - --framework=caffe
      - --data_type=FP32
      - --input_shape=[1,3,720,1280]
      - --input=data
      - --mean_values=data[127.5,127.5,127.5]
      - --scale_values=data[128.0]
      - --output=conv4-2,prob1
      - --input_model=$dl_dir/mtcnn-p.caffemodel
      - --input_proto=$dl_dir/mtcnn-p.prototxt

I believe MO can ignore input dims at prototxt if --input_shape=[1,3,720,1280] specified (I can check it). Haven't found PyTorch models for now.
I wanted to adapt this PR after changes proposed at https://github.com/opencv/open_model_zoo/pull/276. That shouldn't be a problem.

We can also build it as a part of OpenCV's binaries for OpenVINO. Just adding OPENCV_EXTRA_MODULES_PATH during build time.

This seems impractical. It means that the OpenCV team would have to rebuild their binaries after every update to the model configuration file(s). From past experience I can say the models tend to get updated close to the time of the release due to last-minute Model Optimizer bugfixes, so the chances of OpenCV shipping with an out-of-sync module are quite high.

Python code is based on OMZ's downloader and https://github.com/opencv/opencv_extra/blob/master/testdata/dnn/download_models.py. Binaries uses only default Python packages (urllib, zipfile, tarfile, etc.)

I can see that, but it does nothing to address my concern. Also, it's not entirely true - when you're running Model Optimizer, you depend on all of its dependencies.

I believe MO can ignore input dims at prototxt if --input_shape=[1,3,720,1280] specified (I can check it).

That's good, but I know at least one regex-based fix that cannot be skipped - the one in googlenet-v2. In that case, the original prototxt file is actually ill-formed, and we have to patch it to make it work.

Haven't found PyTorch models for now.

They were merged recently. You might want to rebase.

I wanted to adapt this PR after changes proposed at #276. That shouldn't be a problem.

I'm sure you can adapt to that specific change, but the problem is that you have to. Any new feature in the downloader/converter would require you (or someone else) to adapt the module to it. That's not sustainable.

@IRDonch, Thanks!
I agree that adding new module is a kind of overhead. There is another one option is to add it to regular OpenCV distribution. However the name of the package will be a bit different:
from cv2.dnn.open_model_zoo import ...

Or
from cv2.dnn.zoo import ...

This way we can use OMZ's topologies as optional ones and refactored https://github.com/opencv/opencv_extra/blob/master/testdata/dnn/download_models.py as a base.
We can start with it and check it's stability first.

@IRDonch

I'm sure you can adapt to that specific change, but the problem is that you have to. Any new feature in the downloader/converter would require you (or someone else) to adapt the module to it. That's not sustainable.

Can we rely on downloader/converter API to minimize needs of changes in case of any new features in them, is not it?

@vladimir-dudnik, Proposed changes use pure Python to download files by URL. The module depends only on list_topologies.yml (or set of them after https://github.com/opencv/open_model_zoo/pull/276) and source code of some demos (for now it's text_recognition and human_pose_estimation).

Can we rely on downloader/converter API to minimize needs of changes in case of any new features in them?

That's what I'm suggesting...

@IRDonch, I'd like to propose the following solution: the package is still generated by OMZ structure (intel/ and public/ subfolders). For every model it's name is preserved in any way. In case of success - YAML is parser as well.
Then, at download() we will use downloader.py as a first priority tool for downloading (using the name of model we have). In case of failed download.py command (in example, when OpenCV is compiled with OMZ without OpenVINO and script has not been found) - try to download by existing code.

On the other hand - there is a lightweight solution with just Python module which can only download and convert models without demos.
I'll propose a separate PR with it.


[1.7.10] Sag mill output chance always high [Question]

Issue Description:
The sag mill output chance is not accurate.
What happens:
I put 64 stacks of iron ore in a sag mill (I checked several times that it was 64 stacks before doing it).
I obtained 13728 pulverized iron, 726 pulverized tin, 1391 pulverized ferrous metal and 2128 cobblestone. I made this with dark steel balls.
What you expected to happen:
The chance of obtaining Pulverized Iron as output was (100%) x (150%)= 1.5
64 x 64 x 2 x 1.5 = 12288.
The chance of obtaining Pulverized Ferrous Metal was 4096 x 10% = 409,6
The chance of obtaining Pulverized Tin was (5%)x 4096 = 204,8
I just wanted to say that I always obtain more than I should.
Steps to reproduce:
1.Put down a sag mill
2.Put ores in it
3.Enjoy your unexpected bonus ores
...

Affected Versions (Do not use "latest"):

EnderIO: 1.7.10-<IP_ADDRESS>8_beta
EnderCore: 1.7.10-<IP_ADDRESS>_beta
Minecraft: 1.7.10
Forge: 10.13.1614

Your most recent log file where the issue was present:
[pastebin/gist/etc link here]

You have at least one error in your calculation.
The chance of obtaining Pulverized Ferrous Metal was 4096 x 10% = 409,6
You forgot to apply 1.5 ball multiplier.

My bad, but that doesn't change anything
Le mercredi 27 juillet 2016, AnrDaemon<EMAIL_ADDRESS>a écrit :

You have at least one error in your calculation.
The chance of obtaining Pulverized Ferrous Metal was 4096 x 10% = 409,6
You forgot to apply 1.5 ball multiplier.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/SleepyTrousers/EnderIO/issues/3553#issuecomment-235423562,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMHQ2M6C4DMkdNAuMHRmJdozWrZI2voeks5qZoe7gaJpZM4JVo9M
.

That actually matches the results you observe.
For every main output you get a chance for each extra output.
So, you get up to 3 main outputs, and thus a lot of extras.

And you forgot to apply the 200% bonus on chance based outputs.
So iron dust is 2 dusts * 150%(amount) * (1002)%(chance) with chance capping at 100% obviously.
Tin dust is: 1 dust * 150%(amount) * (52)%(chance),
Nickel dust is: 1 dust * 150%(amount) * (102)%(chance),
Cobble is: 1 item * 150%(amount) * (152)%(chance),

"Usually" =/= "necessarily". See: Silicon from Sand recipe.

Thank you for your explanations. However I still get some (Just a little bit) unexpected bonus powders.

For every main output you get a chance for each extra output.

I didn't know this! I find it a bit surprising. Does this mean that pulverizing Redstone Ore (main output: 8x Redstone, secondary: 10% Redstone Dust) gives you eight 10% chances to get the bonus dust, and twelve 20% chances when using dark steel balls?

codewarrior0, no it just means you get the same chances for each output. See my calculation above. Or for your example:
No balls:
First output: 8 dusts * 100%(amount) * (100*1)%(chance)
Second output: 1 dust * 100%(amount) * (10*1)%(chance)

With dark balls:
First output: 8 dusts * 150%(amount) * (100*2)%(chance) with chance capping at 100% obviously
Second output: 1 dust * 150%(amount) * (10*2)%(chance)

Ah. So the "Main Output" modifier really adds to all of the outputs, not just the first one, or not just the ones that have 100% chance. And the "Bonus Output" modifier is applied on top of the "Main Output", except that it can't bring the chance above 100%, so it doesn't apply to any of the guaranteed outputs.


Loaded AutoModelForCausalLM has no grad_fn

I am working on understanding the model gradients in LM inference. I attempted to capture the gradient in _loglikelihood_tokens methods with modified Huggingface Model class and loaded AutoModelForCausalLM from pretrained huggingface checkpoints.
# Compute Cross-Entropy Loss
logits_reshaped = logits.view(-1, logits.size(-1))  # [seq, vocab]
targets = cont_toks.view(-1)  # [seq]

loss = F.cross_entropy(logits_reshaped, targets, ignore_index=-1)
loss.requires_grad = True

# Zero the gradients of the model and enable input requie_grads
self.model.zero_grad()
self.model.enable_input_require_grads()

# Enable gradient checkpointing with custom settings
self.model.gradient_checkpointing_enable()  # Enables gradient checkpointing
self.model.config.gradient_checkpointing_kwargs = {"use_reentrant": False}

for name, param in self.model.named_parameters():
      print(param.grad_fn)

# Compute gradients using autograd.grad
grads = torch.autograd.grad(loss, self.model.parameters(),
                                                retain_graph=False,
                                                allow_unused=True)

However, all model parameters have no grad_fn (printed None). I attempted on Llama and Mistral and get the same results.
Is there anyway I can load some AutoModelForCausalLM models with enabled grad_fn?

Hi! did you overload the _model_call method? :
https://github.com/EleutherAI/lm-evaluation-harness/blob/5680a2e6b5cf1a1621d8ff68d3d0e83e8b2731d3/lm_eval/models/huggingface.py#L846
We also set it to eval mode here:
https://github.com/EleutherAI/lm-evaluation-harness/blob/5680a2e6b5cf1a1621d8ff68d3d0e83e8b2731d3/lm_eval/models/huggingface.py#L202-L204


chore - Create examples for highmaps

Create and link to highmaps examples

Anyone want to help with this? @TomNeyland @dmitruk

@pablojim If I have some free time this weekend I can take a look into throwing one together

Thanks @TomNeyland  - @dmitruk already put a nice one together.

Cool!


Error when training with multichannel selection

I try to train a multichannel model ("loader_parameters": {"multichannel": true}).
The same config.json file with multchannel:False runs smoothly.
Issue description
Current behavior

Adding the following keys to the configuration file
    loader_parameters: extensions: []
    loader_parameters: roi_params: {'suffix': None, 'slice_filter_roi': None}
    loader_parameters: is_input_dropout: False
    split_dataset: split_method: participant_id
    split_dataset: data_testing: {'data_type': None, 'data_value': []}
    default_model: is_2d: True

Creating output path: /home/nas/PycharmProjects/ivadomed-personal-scripts/log_to_delete
Using GPU ID 0

Selected architecture: Unet, with the following parameters:
	dropout_rate: 0.3
	bn_momentum: 0.9
	depth: 3
	is_2d: True
	folder_name: my_model
	in_channel: 3
	out_channel: 1
Dataframe has been saved in /home/nas/PycharmProjects/ivadomed-personal-scripts/log_to_delete/bids_dataframe.csv.
After splitting: train, validation and test fractions are respectively 0.5, 0.3 and 0.2 of participant_id.

Selected transformations for the ['training'] dataset:
	Resample: {'wspace': 0.75, 'hspace': 0.75, 'dspace': 1}
	CenterCrop: {'size': [128, 128]}
	RandomAffine: {'degrees': 5, 'scale': [0.1, 0.1], 'translate': [0.03, 0.03], 'applied_to': ['im', 'gt']}
	ElasticTransform: {'alpha_range': [28.0, 30.0], 'sigma_range': [3.5, 4.5], 'p': 0.1, 'applied_to': ['im', 'gt']}
	NumpyToTensor: {}
	NormalizeInstance: {'applied_to': ['im']}

Selected transformations for the ['validation'] dataset:
	Resample: {'wspace': 0.75, 'hspace': 0.75, 'dspace': 1}
	CenterCrop: {'size': [128, 128]}
	NumpyToTensor: {}
	NormalizeInstance: {'applied_to': ['im']}
Loading dataset: 100%|██████████| 9/9 [00:00<00:00, 241.17it/s]
Traceback (most recent call last):
  File "/home/nas/PycharmProjects/ivadomed/ivadomed/main.py", line 558, in <module>
    run_main()
  File "/home/nas/PycharmProjects/ivadomed/ivadomed/main.py", line 551, in run_main
    run_command(context=context,
  File "/home/nas/PycharmProjects/ivadomed/ivadomed/main.py", line 371, in run_command
    ds_valid = get_dataset(bids_df, loader_params, valid_lst, transform_valid_params, cuda_available, device,
  File "/home/nas/PycharmProjects/ivadomed/ivadomed/main.py", line 117, in get_dataset
    ds = imed_loader.load_dataset(bids_df, **{**loader_params, **{'data_list': data_lst,
  File "/home/nas/PycharmProjects/ivadomed/ivadomed/loader/loader.py", line 115, in load_dataset
    dataset.load_filenames()
  File "/home/nas/PycharmProjects/ivadomed/ivadomed/loader/loader.py", line 647, in load_filenames
    slice_seg_pair = seg_pair.get_pair_slice(idx_pair_slice, gt_type=self.task)
  File "/home/nas/PycharmProjects/ivadomed/ivadomed/loader/loader.py", line 412, in get_pair_slice
    input_slices.append(np.asarray(data_object[..., slice_index],
IndexError: index 14 is out of bounds for axis 2 with size 14

Process finished with exit code 1

Steps to reproduce
Config file used:

{
    "command": "train",
    "gpu_ids": [0],
    "path_output": "/home/nas/PycharmProjects/ivadomed-personal-scripts/log_to_delete",
    "model_name": "my_model",
    "debugging": true,
    "object_detection_params": {
        "object_detection_path": null,
        "safety_factor": [1.0, 1.0, 1.0]
    },
    "loader_parameters": {
        "path_data": ["/home/nas/Consulting/ivado_project/Datasets/data_example_spinegeneric"],
        "subject_selection": {"n": [], "metadata": [], "value": []},
        "target_suffix": ["_seg-manual"],
        "contrast_params": {
            "training_validation": ["T1w", "T2w", "T2star"],
            "testing": ["T1w", "T2w", "T2star"],
            "balance": {}
        },
        "slice_filter_params": {
            "filter_empty_mask": false,
            "filter_empty_input": true
        },
        "slice_axis": "axial",
        "multichannel": true,
        "soft_gt": false
    },
    "split_dataset": {
        "fname_split": null,
        "random_seed": 6,
        "center_test": [],
        "method": "per_patient",
        "balance": null,
        "train_fraction": 0.5,
        "test_fraction": 0.2
    },
    "training_parameters": {
        "batch_size": 16,
        "loss": {
            "name": "DiceLoss"
        },
        "training_time": {
            "num_epochs": 2,
            "early_stopping_patience": 50,
            "early_stopping_epsilon": 0.001
        },
        "scheduler": {
            "initial_lr": 0.001,
            "lr_scheduler": {
                "name": "CosineAnnealingLR",
                "base_lr": 1e-5,
                "max_lr": 1e-2
            }
        },
        "balance_samples": {
            "applied": false,
            "type": "gt"
        },
        "mixup_alpha": null,
        "transfer_learning": {
            "retrain_model": null,
            "retrain_fraction": 1.0,
            "reset": true
        }
    },
    "default_model": {
        "name": "Unet",
        "dropout_rate": 0.3,
        "bn_momentum": 0.9,
        "depth": 3
    },
    "FiLMedUnet": {
        "applied": false,
        "metadata": "institution_id",
        "film_layers": [0, 1, 0, 0, 0, 0, 0, 0]
    },
    "Modified3DUNet": {
        "applied": false,
        "length_3D": [128, 128, 16],
        "stride_3D": [128, 128, 16],
        "attention": false,
        "n_filters": 8
    },
    "uncertainty": {
        "epistemic": false,
        "aleatoric": false,
        "n_it": 0
    },
    "postprocessing": {
        "remove_noise": {"thr": -1},
        "keep_largest": {},
        "binarize_prediction": {"thr": 0.5},
        "uncertainty": {"thr": -1, "suffix": "_unc-vox.nii.gz"},
        "fill_holes": {},
        "remove_small": {"unit": "vox", "thr": 3}
    },
    "evaluation_parameters": {
        "target_size": {"unit": "vox", "thr": [20, 100]},
        "overlap": {"unit": "vox", "thr": 3}
    },
    "transformation": {
        "Resample":
        {
            "wspace": 0.75,
            "hspace": 0.75,
            "dspace": 1
        },
        "CenterCrop": {
            "size": [128, 128]},
        "RandomAffine": {
            "degrees": 5,
            "scale": [0.1, 0.1],
            "translate": [0.03, 0.03],
            "applied_to": ["im", "gt"],
            "dataset_type": ["training"]
        },
        "ElasticTransform": {
			"alpha_range": [28.0, 30.0],
			"sigma_range":  [3.5, 4.5],
			"p": 0.1,
            "applied_to": ["im", "gt"],
            "dataset_type": ["training"]
        },
      "NumpyToTensor": {},
      "NormalizeInstance": {"applied_to": ["im"]}
    }
}

Environment
Ubuntu 20.04
Latest Ivadomed: git-master-05dbd217cc9b4c06a0bef77ce06cc57937dd45ec

I was able to reproduce the same behavior with your config file i.e. fails in multichannel but works in single channel.
I may be wrong but I think that multichannel only works when all the contrasts are present for all the subjects. In data_example_spinegeneric, the subject sub-hamburg01 does not have a T2star. I tried removing the T2star from the contrast_params in the config file, and multichannel is running as expected.

I also produced the same error and as @mariehbourget mentioned it is because of the missing contrast. The loader should raise an error for the missing contrast in this case. It is also interesting to know does ivadomed has a solution for subjects with missing contrasts? I mean if the majority of subjects have such contrast then why not using it?

does ivadomed has a solution for subjects with missing contrasts?

What do you think of input-level dropout solution @rezazad68 ? If you try it, please let us know how it goes!! really keen to know

@charleygros thanks for the suggestion. I have added the "is_input_dropout": true to the loader_parameters but still same error if we have missing modalities.

Mmmm I think you are right @rezazad68: this feature simulates missing modalities, BUT it does not cover the case where modalities are already missing! Which we should implement at some point since list of applications is growing!! Opening an issue.. (You are very welcome to work on this @rezazad68 if it pleases you :-) )


rewriter.random_var_renaming()

src="""
def func(x,y):
    z = 0.
    for i in range(x+y):
        z+=i
    return z
"""

output = """
def func(x, y):
    z = 0.0
    for i in _renamed_one(x + y):
        z += i
    return z
"""

range is changed to _renamed_one

A new feature has been added to  skip call names as rename target identifiers.


cc: ensure additional responses are saved properly

Currently, if one uses the + button to create a new response for a custom command, then save, only the first response is persisted: that is, additional responses are lost and not saved.
This bug is a regression from the previous version. I bisected it to the CodeMirror change, #1656. The issue is that we are not saving changes to the underlying textarea for newly added CodeMirror instances, so the POSTed form always contains empty responses (save the first one.) This PR therefore patches setupCodeMirrorInstance to not merely initialize the CodeMirror instance but also attach a change event listener.
@ashishjh-bst perhaps we could consider a cherry-pick to the current release branch, given that this bug does result in lost data if one attempts to add an additional custom command response.

Closing this as I have cherry picked the commit into another PR.


feat: add support for MongoDB

Don't merge this PR. Please review it. @hsluoyz

Replaced by: https://github.com/casdoor/casdoor/pull/1249


Performance and stability improvements

Performance:
Used axios.head() instead of axios.get(). We don't need to download their entire homepage html file to check if their is working. Just checking headers are fine. Headers contain the information you need here: status code.
Stability:
Used Promise.allSettled() instead of Promise.all(). Promise.allSettled() ensures that all promises will finish. Promise.all() stops waiting for other promises when any of the promises throws any error. This is for safety.
Also, consider rewriting your project with TypeScript. It will be much more preferred.

Hi @touhidurrr ,
Thanks a bunch for the PR! I'll soon update the new version on npm and make sure to include your name in the contributor list.
Just a heads up, it's super important to give the code a thorough test run before sending a PR. The hiccup we encountered was with await Promise.allSettled(), which returns an array with status, value, or reason. This was messing with generateHtml().
This project started out as a fun little CLI project, but who knows, I might dive into TypeScript down the road when I've got a bit more free time 😅.
Your efforts are greatly appreciated. Keep up the excellent work.


#13415: Update left shift

Ticket
#13415
Problem description
Update left shift
What's changed
Updated file as mentioned in Issue https://github.com/tenstorrent/tt-metal/issues/15514.
Checklist

[x] Post commit CI passes
[x] Blackhole post-commit tests passes

https://github.com/tenstorrent/tt-metal/actions/runs/12097803013 - passed


Update dockerfile, and use that image to run tests

Where/when does fenicsproject/performance-tests:latest get built?

It's on dockerhub and just built manually. Given that we are building FEniCS in circleci, it shouldn't need frequent updates. I guess we could add a build hook.


refinement: show more button

hierarchical and list refinements don't give a visual hint that there are more options when a limit is set.

You can look at this PR if it was what you expected ? :🙏

Yes! Thanks so much 👍


Issue in Redirection

What version of UAA are you running?
77.17.0
How are you deploying the UAA?
I am deploying the UAA locally only using gradlew
./gradlew run
with the default details provided on uaa:
https://github.com/cloudfoundry/uaa/?tab=readme-ov-file#connecting-uaa-to-local-ldap-server
What did you do?
Accessing UAA with localhost as well with IP address
What did you expect to see? What goal are you trying to achieve with the UAA?
The redirect page should appear when accessing UAA with IP address. Its redirecting fine with accessing with localhost but when accessing it with IP address its routing back to login screen.. Screenshot when accessing with localhost is attached.

What did you see instead?
Login page again
What I have tried:

Adding zones:
zones:
internal:
hostnames:
- 192.168.x.x

Setting require https false:
require_https: false

What issue it causes at my end:
The issue arise when I took an update from github almost after 3+ years. The UI we are using was perfectly working with the UAA we had earlier. Soon after I upgraded, the redirection stopped working with all the configurations we were using earlier. Although we have reverted back the deployment but we still need to upgrade it. Any help on this would be highly appreciated.

What version did you revert back to? That will help track this down to a specific change.

75.7.0

75.7.0

That is not actually a version that we are supporting. I suggest you try to look into log files, etc. to get more info if you have not done so yet.

@hsinn0 75.7.0 is the old version I reverted back to and its working fine. The problem is with latest version 77.17.0 and there is not exception/error coming in logs.

I can confirm that in the current development branch, user marissa can log in, but gets redirected back to the log in page on the out of the box runtime ./gradlew run. I will look closer into this to see why that is.

@fhanik did you get chance to look into this?

Mistakenly closed this. Reopening it now.

@sidrazia - this appears to be working correctly on the develop branch as well as the v77.9.0
Given that it works on the latest tag and dev environment, I'm not sure it's worthwhile to go further in troubleshooting this.

Anyone got chance to look into this?


User is not authorized to perform: lambda:GetLayerVersion

As posted on Discord , I am getting an error while trying to deploy to the af-south-1 region.
clarity/ServerFunction/ServerFunction: Resource handler returned message: "User: arn:aws:sts::<acc_id>:assumed-role/cdk-hnb659fds-cfn-exec-role-857082827836-af-south-1/AWSCloudFormation is not authorized to perform: lambda:GetLayerVersion on resource: arn:aws:lambda:af-south-1:226609089145:layer:sst-extension-arm64:2 because no resource-based policy allows the lambda:GetLayerVersion action (Service: Lambda, Status Code: 403, Request ID: <req_id>)" (RequestToken: <req_id>, HandlerErrorCode: AccessDenied)

I have attempted the same in eu-west-1 without issue. Appears to be that the Lambda Layer managed by the SST team may not have a resource policy that allows other accounts to access it. See this issue on another project where the same issue was resolved.
If I create a lambda function from the console and attempt to add the above layer ARN, I get the same error:

In eu-west-1 though, this is not a problem.

Oh on Discord I missed that this is about the SST Lambda Layer.
Looking into it.

After upgrading to SST version 2.39.6, running the deploy command appears not to utilize the SST Lambda layer any longer. The ServerFunction has no layers any more. Hence, deployment to af-south-1 now works without issue.

Hi @mfrangakis, this should be fixed now.
^ to add some context, af-south-1 along w/ a few other regions were not enabled by AWS by default. And the layers were not published to them.
All regions should now have the layers.


Finish Tooltip to a beta stage

Tooltip Requirements
Anatomy:
<Tooltip.Root delayDuration={800} gutter={4} flip placement="top">
  <Tooltip.Trigger>
    <button>Hover or Focus me</button>
  </Tooltip.Trigger>
  <Tooltip.Panel aria-label="Tooltip content">
    <Tooltip.Arrow width={10} height={5} />
    Tooltip content here
  </Tooltip.Panel>
</Tooltip.Root>

Features:
Critical:

[ ] Opens on hover or focus
[ ] Closes on trigger activation or Escape key press
[ ] Customizable open/close delays
[ ] Optional arrow component
[ ] Always portaled content
[ ] Accessibility with ARIA roles and keyboard interactions
[ ] Flipping to avoid overflow
[ ] Automatic placement adjustment

Advanced:

[ ] Custom animations
[ ] Theming support

Props:
Root:

open: boolean - The controlled open state of the tooltip.
bind:open: boolean - Reactive state of the tooltip.
onOpenChange$: function - Callback when the open state changes.
delayDuration: number - Delay before the tooltip opens.
gutter: number - Space between the trigger and the tooltip.
flip: boolean - Enable flipping to avoid overflow.
placement: "top" | "bottom" | "left" | "right" - The default position of the tooltip.

Trigger:

Data Attributes:

data-state: "closed" | "delayed-open" | "instant-open"

Panel:

aria-label: string - ARIA label for accessibility.
onEscapeKeyDown$: function - Function to handle Escape key press.
onPointerDownOutside$: function - Function to handle pointer down events outside the tooltip.
sticky: "partial" | "always" - Whether the tooltip should remain open when interacting with content inside.

Arrow:

width: number - The width of the arrow.
height: number - The height of the arrow.

Keyboard Interactions:

Down Arrow:

Opens the tooltip.

Up Arrow:

Moves focus to the previous focusable element.

Escape:

Closes the tooltip.

Enter:

Activates the trigger and toggles the tooltip.

ARIA Roles, States, and Properties for Tooltip

Tooltip Element:

role="tooltip": Applied to the tooltip container element.

Trigger Element:

aria-describedby: References the tooltip element's ID.

Focus Management:

Tooltip does not receive focus. Focus remains on the owning element.
Escape: Closes the tooltip.

Interaction:

Tooltip appears on hover or focus.
Closes automatically on mouse out or when focus is lost.
Stays open when hovered.

Example Usage:
import { component$ } from<EMAIL_ADDRESS>import { Tooltip } from '@qwik-ui/headless';

export const App = component$(() => {
  return (
    <Tooltip.Root defaultOpen={false} delayDuration={800} gutter={4} flip placement="top" autoPlacement>
      <Tooltip.Trigger>
        <button>Hover or Focus me</button>
      </Tooltip.Trigger>
      <Tooltip.Panel aria-label="Tooltip content">
        <Tooltip.Arrow width={10} height={5} />
        Tooltip content here
      </Tooltip.Panel>
    </Tooltip.Root>
  );
});

This comprehensive guide provides detailed information on the anatomy, features, props, and usage of the Tooltip component in Qwik, ensuring a consistent and accessible implementation.
Existing Tooltip Libraries Comparison
To determine a basic feature set for the tooltip component, I compared the tooltop components from Melt, Kobalte, and Radix. I'll start with the common features they all share. You can read about them more individually below.
Common Features

Trigger Mechanism

Focus or Hover: All frameworks open the tooltip when the trigger element is focused or hovered.

Melt UI: Opens on focus or hover.

Kobalte UI: Opens on keyboard focus or mouse hover.

Radix UI: Opens on focus or hover.

Closing Mechanism

Activation or Escape Key: All frameworks close the tooltip when the trigger element is activated or when the Escape key is pressed.

Melt UI: Closes when the trigger is activated or Escape is pressed.

Kobalte UI: Closes when the trigger is activated or Escape is pressed.

Radix UI: Closes when the trigger is activated or Escape is pressed.

Customizable Delays

Open and Close Delays: All frameworks support customizable delays for opening and closing the tooltip.

Melt UI: openDelay and closeDelay props.

Kobalte UI: openDelay and closeDelay props.

Radix UI: delayDuration and skipDelayDuration props (via Provider) and delayDuration prop on Root.

Optional Arrow

Tooltip Arrow: All frameworks provide an optional arrow component that points to the trigger element.

Melt UI: Optional arrow component.

Kobalte UI: Optional Tooltip.Arrow component.

Radix UI: Optional Tooltip.Arrow component.

Portaling

Portal Support: All frameworks support rendering the tooltip content into a portal, typically the body element, to manage overlay issues.

Melt UI: portal prop.

Kobalte UI: Tooltip.Portal component.

Radix UI: Tooltip.Portal component.

Positioning

Melt UI:  Provides positioning via the positioning prop.

Kobalte UI: Provides positioning via the placement prop and gutter props. Also supports flip.

Radix UI: Provides positioning using side and sideOffset props.

Accessibility

ARIA and Keyboard Support: All frameworks follow the ARIA design pattern for tooltips and provide proper keyboard interactions for accessibility.

Melt UI: Adheres to WAI-ARIA tooltip role design pattern.

Kobalte UI: Exposed to assistive technology via ARIA and supports aria-describedby.

Radix UI: Follows ARIA design pattern and provides keyboard interaction support.

Summary of Commonalities

Trigger Mechanism: Opens on focus or hover.

Closing Mechanism: Closes on activation or Escape key press.

Customizable Delays: Support for custom open and close delays.

Optional Arrow: Ability to include an arrow pointing to the trigger.

Portaling: Ability to portal the tooltip content to manage overlays.

Positioning: Ability to define the position of the tooltip.

Accessibility: Compliance with ARIA design patterns and keyboard interaction support.

Individual tooltip features
Melt UI
Sample code

  import { createTooltip, melt } from '@melt-ui/svelte';
  import { fade } from 'svelte/transition';
  import { Plus } from '$icons/index.js';

  const {
    elements: { trigger, content, arrow },
    states: { open },
  } = createTooltip({
    positioning: {
      placement: 'top',
    },
    openDelay: 0,
    closeDelay: 0,
    closeOnPointerDown: false,
    forceVisible: true,
  });
</script>

<button type="button" class="trigger" {...$trigger} use:trigger aria-label="Add">
  <Plus class="size-4" aria-label="plus" />
</button>

{#if $open}

Add item to library

{/if}

Features:

Opens when the trigger is focused or hovered.

Closes when the trigger is activated or with escape.

Custom delay for opening and closing.

Supports custom positioning.

Anatomy:

Trigger: The element that triggers the tooltip popover.

Content: The tooltip's content container.

Arrow: An optional arrow component.

API Reference:

createTooltip: The builder function used to create the tooltip component.

Props:

positioning: Determines how the floating element is positioned relative to the trigger.

arrowSize: The size of the arrow in pixels.

escapeBehavior: Defines how the tooltip reacts when the Escape key is pressed.

forceVisible: Whether to force the tooltip to always be visible.

portal: The element or selector to render the tooltip into.

closeOnPointerDown: Whether the tooltip closes when the pointer is down.

openDelay: The delay in milliseconds before the tooltip opens after a pointer over event.

closeDelay: The delay in milliseconds before the tooltip closes after a pointer leave event.

disableHoverableContent: Prevents the tooltip content element from remaining open when hovered.

group: Controls the behavior of other tooltips when this one is opened.

defaultOpen: Whether the tooltip is open by default or not.

open: A writable store that controls whether the tooltip is open.

onOpenChange: A callback called when the value of the open store should be changed.

ids: Override internally generated ids for the elements.

Elements:

Trigger, Content, Arrow: Builder stores used to create respective elements.

States:

open: A writable store indicating whether the tooltip is open or not.

Options:

Options related to positioning, arrow size, escape behavior, visibility, portal rendering, delay, etc.

Accessibility:

Adheres to the WAI-ARIA tooltip role design pattern.

Tooltips are only activated on hover or focus, not on press.

Kobalte UI
Sample code
import { Tooltip } from "@kobalte/core/tooltip";
import "./style.css";

function App() {
  return (
    <Tooltip>
      <Tooltip.Trigger class="tooltip__trigger">Trigger</Tooltip.Trigger>
      <Tooltip.Portal>
        <Tooltip.Content class="tooltip__content">
          <Tooltip.Arrow />

Tooltip content

        </Tooltip.Content>
      </Tooltip.Portal>
    </Tooltip>
  );
}

Features:

Exposed as a tooltip to assistive technology via ARIA.

Opens when the trigger is focused or hovered.

Closes when the trigger is activated or when pressing escape.

Only one tooltip shows at a time.

Labeling support for screen readers via aria-describedby.

Custom show and hide delay support.

Matches native tooltip behavior with delay on hover of first tooltip and no delay on subsequent tooltips.

Anatomy:

Tooltip: The root container for a tooltip.

Tooltip.Trigger: The button that toggles the tooltip.

Tooltip.Portal: Portals its children into the body when the tooltip is open.

Tooltip.Content: Contains the content to be rendered when the tooltip is open.

Tooltip.Arrow: An optional arrow element to render alongside the tooltip.

API Reference:

Tooltip:

Props:

open: The controlled open state of the tooltip.

defaultOpen: The default open state when initially rendered.

onOpenChange: Event handler called when the open state of the tooltip changes.

triggerOnFocusOnly: Whether to open the tooltip only when the trigger is focused.

openDelay: The duration from when the mouse enters the trigger until the tooltip opens.

closeDelay: The duration from when the mouse leaves the trigger or content until the tooltip closes.

ignoreSafeArea: Whether to close the tooltip even if the user cursor is inside the safe area between the trigger and tooltip.

id: A unique identifier for the component.

forceMount: Used to force mounting the tooltip (portal and content) when more control is needed.

Customizing Tooltip.Content Placement:

Various props to customize the placement of the Tooltip.Content like placement, gutter, shift, flip, slide, overlap, sameWidth, fitViewport, hideWhenDetached, detachedPadding, arrowPadding, overflowPadding.

Tooltip.Trigger, Tooltip.Content, Tooltip.Arrow:

Data attributes and props specific to each component.

Accessibility:

Keyboard Interactions:

Tab: Opens/closes the tooltip without delay.

Space: When open, closes the tooltip without delay.

Enter: When open, closes the tooltip without delay.

Esc: When open, closes the tooltip without delay.

Radix
Sample code
import React from 'react';
import * as Tooltip from '@radix-ui/react-tooltip';
import { PlusIcon } from '@radix-ui/react-icons';
import './styles.css';

const TooltipDemo = () => {
  return (
    <Tooltip.Provider>
      <Tooltip.Root>
        <Tooltip.Trigger asChild>
          <button className="IconButton">
            <PlusIcon />
          </button>
        </Tooltip.Trigger>
        <Tooltip.Portal>
          <Tooltip.Content className="TooltipContent" sideOffset={5}>
            Add to library
            <Tooltip.Arrow className="TooltipArrow" />
          </Tooltip.Content>
        </Tooltip.Portal>
      </Tooltip.Root>
    </Tooltip.Provider>
  );
};

Features:

Provider to control display delay globally.

Opens when the trigger is focused or hovered.

Closes when the trigger is activated or when pressing escape.

Supports custom timings.

Anatomy:

Provider: Wraps your app to provide global functionality to your tooltips.

Root: Contains all the parts of a tooltip.

Trigger: The button that toggles the tooltip.

Portal: Portals the content part into the body.

Content: The component that pops out when the tooltip is open.

Arrow: An optional arrow element to render alongside the tooltip.

API Reference:

Provider:

Props:

delayDuration: Global delay duration for tooltips.

skipDelayDuration: Duration to skip delay for tooltips.

disableHoverableContent: Disable hoverable content.

Root:

Props:

defaultOpen: Default open state.

open: Controlled open state.

onOpenChange: Event handler for open state changes.

delayDuration: Delay duration for tooltip.

disableHoverableContent: Disable hoverable content.

Trigger, Portal, Content, Arrow:

Various props and data attributes specific to each component.

Examples:

Configure globally: Use the Provider to control delayDuration and skipDelayDuration globally.

Show instantly: Use the delayDuration prop to control the time it takes for the tooltip to open.

Constrain the content size: Constrain the width and height of the content to match the trigger and viewport.

Origin-aware animations: Use CSS custom properties to animate the content based on its origin.

Collision-aware animations: Use data attributes to create collision and direction-aware animations.

Accessibility:

Keyboard Interactions:

Tab: Opens/closes the tooltip without delay.

Space: If open, closes the tooltip without delay.

Enter: If open, closes the tooltip without delay.

Esc: If open, closes the tooltip without delay.

Implementation has started.


Polygons not renders while dragging the map

Sorry for this issues not well writed.
I was using different services to render maps on my project and the only reason why I would like to switch from openlayers to other services is how polygons are rendered on the map.
When a polygon goes outside the map view and I move the map to show more of the polygon, it is rendered only on map release, and not during the mouse drag operation.
Is there any method to render polygons as tiles render on the map?
Thank you for reading and have a nice day!

You can configure the Vector layer with updateWhileInteracting: true. If you also want the polygons to update during zooming, add updateWhileAnimating: true.

Well... Thank you for much!