Fancy Zones crashing with win + arrows usage

Microsoft PowerToys version
0.67.0
Installation method
PowerToys auto-update
Running as admin
No
Area(s) with issue?
FancyZones
Steps to reproduce
Running multiple monitors.
It seems any movement that attempts to move out of the current monitor (including wrapping around the current monitor) will crash the FancyZones process completely.
Settings:
override windows snap set on
move relative position
move between zones across all monitors checked.
Monitors are custom layouts.
✔ Expected Behavior
once the last position is reached in a given monitor it should go to the next monitor or wrap around on the existing monitor.
❌ Actual Behavior
process crash, stops using fancy zones to move window.
Other Software
No response

This looks to be the same issue that I am having. Crashes upon snapping a window from one monitor to another monitor. FancyZones is completely unresponsive including the editor until disable and enabled again.
Initially I thought Windows 11 broke this until I completely disabled snap windows in the settings. Tried editing the zones, did nothing. Finally tried disabling and enabling FancyZones again (including the editor) and it started working until the next cross monitor snap.

This is happening to me either, but i realized it happens just with "Relative position" enabled on "Override Windows Snap" section instead of "Zone Index".
When i enabled zone index, it works normally.
I'm using Windows 11.

Hi Team.. as this issue is really annoying ;)... by when is it planned to deploy the fix?

Hi Team.. as this issue is really annoying ;)... by when is it planned to deploy the fix?

Or at least how do we roll back to the previous version that didn't have this bug?

Was able to change to "Zone Index" setting per @victorss recommendation and now FancyZones does not crash.

Was able to change to "Zone Index" setting per @VictorSS recommendation and now FancyZones does not crash.

That's a good workaround, thanks. Sadly it's not very good for vertical monitors (portrait mode) with vertically stacked zones. It would be nice to be able to roll back to the last working version if possible.

cool - works again - many thx for the quick fix.. 👍

This issue has been fixed in the 0.67.1 release. Please update PowerToys to get it. Thank you!

v0.67.1 seems to work for me

Thanks for fixing this.  I could not figure out why it was failing constantly.

You guys are tagging the wrong Victor...


os: investigate dropping support for pre-long-path Windows

On Windows, the os package includes some trickery to enable support for long paths on older versions of Windows. The fixLongPath function rewrites longer paths to contain a \\?\ prefix, which "tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system." (https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#win32-file-namespaces)
The \\?\ prefix can have effects other than just making a longer path work. For example, Mkdir(`\\?\c:\foo `) will create a directory "foo " with a trailing space, while Mkdir(`c:\foo `) will strip the space and create "foo".
Newer versions of Windows optionally support long paths directly. On Windows 10.0 with a build ID of 15063 and higher, we skip the \\?\ workaround: https://go.googlesource.com/go/+/refs/tags/go1.23.0/src/runtime/os_windows.go#450
Interestingly, the Windows documentation indicates that long paths should be supported on 10.0.1607 and higher
(https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later), and 1607 is build id 14393 (https://learn.microsoft.com/en-us/windows/release-health/release-information).
I don't know why we're checking for a build ID of 15063 instead of 14393.
https://go.dev/wiki/MinimumRequirements#windowswindows says that the supported Windows versions are Windows 10 and higher or Windows Server 2016 and higher.
I don't know what versions of Windows Server 2016 support long paths.
Do we still support any versions of Windows that don't have long path support? Can we just drop the \\?\ workaround entirely?
/cc @qmuntal

Related Issues and Documentation

os: use extended-length paths on Windows when possible
proposal: runtime: don't enable process-wide long path support on Windows #66560
golang not supporting windows paths over 255 characters #14495 (closed)
os.Lstat & os.OpenFile fail at handling long paths on Windows #15208 (closed)
os: on Windows, don't fix long paths that aren't long
os: make MkdirAll support path in extended-length form
os: on Windows, implement fixLongPath also for relative paths
path/filepath: EvalSymlinks doesn't work for Windows long filenames #40966 (closed)
runtime: support long paths without fixup on Windows 10 >= 1607
syscall, os: Chmod doesn't support long paths on Windows #20829 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Perhaps related to #66560.

Yep, this proposal is the opposite of #66560. A summary of what I said in there:

Windows does not support enabling long path support at runtime. To do it right, one must embed a manifest to the binary stating long path support and also opt-in to long path support system-wide via a registry setting. See https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later for the exact steps to follow.
Go uses an undocumented hack to enable long path support at runtime. It is the sole big framework that does so. If you use Python, C#, Node, Rust, etc., you should follow the official way to enable long path support.
The Windows security team at Microsoft opinion about Go's hack is that we shouldn't be doing it. It is not covered by the Windows back compat policy and any use of undocumented API should be treated as a security issue, as it will eventually result in unexpected behavior. They will not hesitate to break Go if there is any vulnerability that requires modifying how it enables  long path support,
The Microsoft Go fork that my team maintains has removed this hack to be in compliance with the aforementioned policy.
I'm working with the Windows security team to find a way to enable long path support without having to modify the registry, just by using the embedded manifest, but the chances of this happening soon are quite low.

In a nutshell, I'm opposed to this proposal 😄.


react: support forwardRef aka ref in props

in React some libs manages inputs by forwardRefs in order to update the internal state in the parent before render prop is invoked.

some work on this in this commit https://github.com/BuilderIO/mitosis/pull/439/commits/9cbac7670a90aad4a4f810292cdfc0ea1ad81718

I added some docs on it https://github.com/BuilderIO/mitosis/pull/458


END-GAME - Merge PR for rename in nebari-dev/docs

open https://github.com/nebari-dev/nebari-docs/pull/144

is this complete @trallard ?

yes - I am not sure why this was not closed


Enable HTTPS for FastCGI

If the intention is to have FastCGI param for HTTPS enabled by default then remove the if_not_empty I had to remove this to get mine to work correctly.
Also looking at this link the default for Ubuntu/Debian is to not check if_not_empty
Link: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/

This pull request will be closed automatically because we don't accept pull requests due to this repository uses mirror.

What does mean. What should I have done to have this merged correctly?

From the description of the nginx GitHub Repository:

An official read-only mirror of http://hg.nginx.org/nginx which is updated hourly. Pull requests on GitHub cannot be accepted and will be automatically closed. The proper way to submit changes to nginx is via the nginx development mailing list, see http://nginx.org/en/docs/contributing_changes.html

Thank you for contributing to Nginx!
Nginx does not use GitHub for code submissions.
Please visit http://nginx.org/en/docs/contributing_changes.html
and follow the instructions there to submit changes.


Adding feature to use corresponding backend for torchaudio

Adding feature allowing torchaudio to use soundfile on windows and sox_io on mac/linux.
Otherwise the import of speechbrain will fail directly on windows.

That's a nice add. In fact, windows users cannot use the sox-io backend, but the soundfile is working.

Could you please help me with the checks problems?
I tested those two files with black and pytest and they passed the tests.

Should SoundFile be added to requirements.txt?

Should SoundFile be added to requirements.txt?

It seems that soundfile is installed with torchaudio on windows.  https://github.com/pytorch/audio/blob/master/requirements.txt#L4

@sharockys After creating a venv, installing both requirements (which installs torchaudio==0.8.0) and lint-requirements, pytest tests gives me: RuntimeError: Backend "soundfile" is not one of available backends: []. If I run pip install SoundFile after that, the tests do pass.

@sharockys After creating a venv, installing both requirements (which installs torchaudio==0.8.0) and lint-requirements, pytest tests gives me: RuntimeError: Backend "soundfile" is not one of available backends: []. If I run pip install SoundFile after that, the tests do pass.

Thank you for testing. I added soundfile in requirements as torchaudio did.

everything seems to work! We can merge it. Than you @sharockys, @aelimame, @UrosOgrizovic. @TParcollet, after that I think window support is completed (we should change the documentation on that part).

I can confirm that torchaudio on Windows does not automatically install soundfile backend, so good call on adding it to the requirements.txt


Changing color/thickness of vline appearing on signal plot?

When I click on the background inside the raw signal(s) window, I see a vertical line. It's light green and very thin, and I'm wondering if there's a line or two I can modify within my mne_qt_browser/_pg_figure.py to make adjustments, e.g. wider and/or different color? (Am I correct that a change could be made there?)
Additional context
Add any other context or screenshots about the feature request here.

Hi @fishbacp, thank you for the suggestion.
Indeed the line might be a bit hard to see depending on your screensize and resolution.
I tried several width's and everything bigger than 2 seems a bit thick to me imho:
2

3

4

I would suggest width=2 but maybe you want to try yourself?
Change pen='g' to pen={"color": "g", "width": 4} in line 1384 of _pg_figure.py.

The color can of course be also a subject of discussion too, I tried making it a bit darker (as it is currently the default in the matplotlib-backend:
Current

New color (same as in mpl backend)


Vanilla JS answers Updated

Fix naming convention

Added a few more answers

There's a file called .DS_Store
It should be ignored. Can you add it to gitignore, and remove it from the PR?
I think deleting the file will help with that.

Cool!

04-Type-in-reverse should have its Correct and Wrong indicators as the Emoji ✅ and ❌ .

Alright,  will take a look at this sometime this week. Was kinda busy last week

Thanks @imoris11


After install, I get "Theme 'antimatter' does not exist, unable to display page."

Following the install instructions, I receive "Theme 'antimatter' does not exist, unable to display page."
When I install this theme with gpm, it says "antimatter already exists".
Any known issues about this?

What works is just replacing the pages folder from this repo into my installation.

How did you install it, did you download it from http://getgrav.org/downloads/skeletons ? Or you cloned from github into your user/ folder?

I downloaded the ZIP from the website you mentioned. There the antimatter one-page theme resolves into that download:  https://github.com/getgrav/grav-skeleton-onepage-site/releases/download/1.0.2/grav-skeleton-onepage-site-v1.0.2.zip

Cannot replicate, I tried downloading that package and it seems to work just fine to me.

I had the same issue at first. I installed Grav using Option 3 from GitHub: https://learn.getgrav.org/basics/installation#option-3-install-from-github
I got the message 'Theme 'antimatter' does not exist, unable to display page.' .
Then I realised that I had forgot to run bin/grav install. To OP: was this possibly what was wrong?

Can confirm the same effect today, downloaded RTFM skeleton.

Resolution here: checked /user/themes/ directory, antimatter was indeed not shipped with the package.
I executed
bin/gpm install antimatter
and now things run fine.


Upgrade Go version in go.mod to avoid use v1.37.0 with Go 1.16

Versions
Please specify real version numbers or git SHAs, not just "Latest" since that changes fairly regularly.

 However, the minimal Go version in sarama is still Go 1.16(link). Thus, if Go 1.16 is used, compilation will fail.
I think it's time to upgrade Go version in go.mod.

😔 whilst I'd seen "deprecate go1.16" in the release notes of v1.15.10 I hadn't spotted that this actually introduced a breaking change (dropping the old +build comments)

😔 whilst I'd seen "deprecate go1.16" in the release notes of v1.15.10 I hadn't spotted that this actually introduced a breaking change (dropping the old +build comments)

🤔 I think the release note was not clear.


CU-864embvzm - Implement TS SDK generation on CPM

Changes in generators/common.go:

Added a eventTmpl struct
Added Events eventTmpl into contractTmpl struct
Added Safe bool and ReturnTypeABI string into methodTmpl struct
Added TypeABI string into paramTmpl struct
Switched how ContractName was being treated. Previously it was only making the first character to upper case, now, it also removes everything that is not [0-9A-Za-z_]

Task linked: CU-864embvzm Implement TS SDK generation on CPM


Change routing URL shape

Tthe Apache Solr is an api endpoint but no api wording is available in the URI:
https://iatidatastore.iatistandard.org/search/activity?q=*:*&wt=json&rows=50
I would like to change this so the URI / URL does reflect the api for example:
https://iatidatastore.iatistandard.org/api/activity?q=*:*&wt=json&rows=50 (will obviously render an error)
The Django REST API does contain /api/ for example:
https://iatidatastore.iatistandard.org/api/activities/aggregations/?format=json&group_by=recipient_country&aggregations=count
I propose to add the api in front of the Apache Solr as follows with the /api/ in front of the /search/
https://iatidatastore.iatistandard.org/api/search/activity?q=*:*&wt=json&rows=50
We need to ensure that nothing breaks, so any old requests are nicely redirected to the /api/search/ shape.

not relevant for now.


successive periods of orbit track should not fall on top of one another

I'm generating an orbit and plotting the ground track on a map.  Because the orbit period is an unusual number, I would expect successive periods of the orbit track to fall at different positions on the map.  But, this isn't the behavior that I'm seeing.  Is this a problem with poliastro or (more likely) am I doing something wrong?
# Section 1: Preliminaries.

# Section 1.1: Import from Python standard library.

import os, pickle, sys
from datetime import datetime
from numpy import arange, pi

# Section 1.2: Import from packages in the Anaconda distribution.

import matplotlib.pyplot as plt

from pytz import timezone, utc

import cartopy.crs as ccrs

from astropy import coordinates, time, units as u
from poliastro.bodies import Earth, Moon, Sun
from poliastro.twobody import Orbit, propagation

# Section 1.3: Global variables and constants.

RAD2DEG= 180 / pi

tz= utc

# Section 2:

epoch= [2020, 12, 7, 20, 38]

# Naive datetime is datetime with no timezone information.  Here we 'localize' the naive
# datetime, i.e., convert it to a timezone-specific time:
datetime_local= tz.localize(datetime(*epoch))

# Convert localized datetime to UTC:
datetime_UTC= datetime_local.astimezone(utc)

# Convert to Astropy time on UTC scale:
t= time.Time(datetime_UTC, scale='utc')

# Section 3: Simulate orbit.

a  = 23000       * u.km  # semi-major axis # 26600
ecc= 0.74        * u.one # eccentricity
inc= 63.4        * u.deg # inclination of the orbit plane

raan= 49.562     * u.deg # right ascension of the ascending node
argp= 270        * u.deg # argument of perigee
nu  = 0          * u.deg # true anomaly at epoch

T_sim_hrs= 24
T_step_min= 3

orbit= Orbit.from_classical(Earth, a, ecc, inc, raan, argp, nu, epoch=t)

print(f"Orbit period: {orbit.period.to(u.min):.3f}")

# Create time steps covering the duration of the simulation:
times= arange(0, 60*T_sim_hrs+1, T_step_min) * u.min

xyz= propagation.propagate(
  orbit,
  time.TimeDelta(times),
  method=propagation.cowell,
  rtol=1e-10,
)

# Convert positions from Cartesian to spherical coordinates:
d_lat_lon= coordinates.cartesian_to_spherical(xyz.z, xyz.y, xyz.z)

# Section 4: Generate plot.

fig= plt.figure(figsize=(12, 7))
ax= fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())

ax.stock_img()

                      # longitude             # latitude
plt.scatter(x=RAD2DEG*d_lat_lon[2], y=RAD2DEG*d_lat_lon[1],
  color="black", s=12, alpha=0.5, transform=ccrs.PlateCarree())

# Mark the first point, corresponding to epoch, with a special symbol:
plt.scatter(x=RAD2DEG*d_lat_lon[2][:1], y=RAD2DEG*d_lat_lon[1][:1],
  color="red", s=70, marker='o', alpha=1.0, transform=ccrs.PlateCarree())

plt.tight_layout()
plt.show()

Hi @Phillip-M-Feldman, thanks for using poliastro. Let me explain what you obtained those results...
The orbit you created around Earth is making use of GCRF frame, who's origin is at Earth's center. This frame is an inertial one, meaning that it does not rotate with the Earth. Therefore, no shift in orbit's groundtrack is seen, which is what you obtained in your figure.
If you want to consider Earth rotation, you must use the ITRF frame, which again is an Earth centered frame but it rotates with the planet, being non-inertial thus. To do this, you can apply the same as poliastro's groundtrack plotting tool:
from poliastro.frames.fixed import ITRS
from poliastro.frames.equatorial import GCRS
from astropy.coordinates import CartesianRepresentation

epoch_times = t + times

gcrs_xyz = GCRS(
    xyz, obstime=epoch_times, representation_type=CartesianRepresentation
)
itrs_xyz = gcrs_xyz.transform_to(ITRS(obstime=epoch_times))

You can proceed with those coordinates the same way you did, getting their spherical representation and associated lat/lon values.
As cited before, you can make use of the Groundtrack utility available in poliastro too. This tutorial explains how to use it. At the moment it is only available within developers version, but in a couple of days will be available in the stable 0.15 one! Using this utility, the orbit you considered shows the following groundtrack for a 24h timelapse:

Click to see source code for previous figure...

from astropy import units as u

from poliastro.earth import EarthSatellite
from poliastro.earth.plotting import GroundtrackPlotter
from poliastro.bodies import Earth
from poliastro.twobody import Orbit
from poliastro.util import time_range

# Build spacecraft instance
a, ecc, inc, raan, argp, nu = (
    23000 * u.km,
    0.74 * u.one,
    63.4 * u.deg,
    49.562 * u.deg,
    270 * u.deg,
    0 * u.deg,
)
ss = Orbit.from_classical(Earth, a, ecc, inc, raan, argp, nu)
ss_earth = EarthSatellite(ss, None)
t_span = time_range(ss.epoch, periods=150, end=ss.epoch + 24 * u.h)

# Generate an instance of the plotter, add title and show latlon grid
gp = GroundtrackPlotter()
gp.update_layout(title="Orbit groundtrack")

# Plot previously defined EarthSatellite object
fig = gp.plot(
    ss_earth,
    t_span,
    label="ss-orbit",
    color="red",
    marker={
        "size": 10,
        "symbol": "triangle-right",
        "line": {"width": 1, "color": "black"},
    },
)

fig.show()

This is tremendous.  Thanks so much!
On Mon, May 3, 2021 at 2:41 PM Jorge M.G. @.***> wrote:

Hi @Phillip-M-Feldman https://github.com/Phillip-M-Feldman, thanks for
using poliastro. Let me explain what you obtained those results...
The orbit you created around Earth is making use of GCRF frame, who's
origin is at Earth's center. This frame is an inertial one, meaning that it
does not rotate with the Earth. Therefore, no shift in orbit's groundtrack
is seen, which is what you obtained in your figure.
If you want to consider Earth rotation, you must use the ITRF frame,
which again is an Earth centered frame but it rotates with the planet,
being non-inertial thus. To do this, you can apply the same as poliastro's
groundtrack plotting tool
https://github.com/poliastro/poliastro/blob/main/src/poliastro/earth/plotting/groundtrack.py
:
from poliastro.frames.fixed import ITRSfrom poliastro.frames.equatorial import GCRSfrom astropy.coordinates import CartesianRepresentation
epoch_times = t + times
gcrs_xyz = GCRS(
xyz, obstime=epoch_times, representation_type=CartesianRepresentation
)itrs_xyz = gcrs_xyz.transform_to(ITRS(obstime=epoch_times))
You can proceed with those coordinates the same way you did, getting their
spherical representation and associated lat/lon values.
As cited before, you can make use of the Groundtrack utility available in
poliastro too. This tutorial
https://docs.poliastro.space/en/latest/examples/Generating orbit groundtracks.html
explains how to use it. At the moment it is only available within
developers version, but in a couple of days will be available in the stable
0.15 one! Using this utility, the orbit you considered shows the following
groundtrack for a 24h timelapse:
[image: gtk]
https://user-images.githubusercontent.com/28702884/116936599-5ce4b200-ac68-11eb-8de4-1317cd69a17d.png
Click to see source code for previous figure...
from astropy import units as u
from poliastro.earth import EarthSatellitefrom poliastro.earth.plotting import GroundtrackPlotterfrom poliastro.bodies import Earthfrom poliastro.twobody import Orbitfrom poliastro.util import time_range
Build spacecraft instancea, ecc, inc, raan, argp, nu = (
23000 * u.km,
0.74 * u.one,
63.4 * u.deg,
49.562 * u.deg,
270 * u.deg,
0 * u.deg,

)ss = Orbit.from_classical(Earth, a, ecc, inc, raan, argp, nu)ss_earth = EarthSatellite(ss, None)t_span = time_range(ss.epoch, periods=150, end=ss.epoch + 24 * u.h)
Generate an instance of the plotter, add title and show latlon gridgp = GroundtrackPlotter()gp.update_layout(title="Orbit groundtrack")
Plot previously defined EarthSatellite objectfig = gp.plot(
ss_earth,
t_span,
label="ss-orbit",
color="red",
marker={
    "size": 10,
    "symbol": "triangle-right",
    "line": {"width": 1, "color": "black"},
},

)
fig.show()
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/poliastro/poliastro/issues/1203#issuecomment-831553209,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIEDRAJXIIFO2RFPYHTWDLTL4J7BANCNFSM44BPZRHA
.

Therefore, closing this 🎉


End of the line for ArkOS on RG351P

I read your 4/4/2021 announcement regarding ArkOS on the RG351P with great sadness as your OS has made this unassuming device fly beyond my wildest expectations.
With a heavy heart I would like to express my huge respect & gratitude for the work you have put into the system and hope that Anbernic take your concerns about the internal USB controller SOC decisions seriously as I think you have personally made a massive contribution to the success of the device.
Many thanks and all the best for the future.

I would like to say thanks as well, your work has been really impressive, actually, I bought my RG351P because of ArkOS. So, THANK YOU SO MUCH, CHRISTIAN! and good luck with your future projects.

Thank you both for the kind words.  I hope ArkOS will continue to bring you enjoy for sometime.  :)  Take care.

I missed the announcement, where can I read it?

Here is the announcement
https://github.com/christianhaitian/arkos/wiki/Announcement


How is the dimension of mk restored to (B, CK, T, H, W) or  (B, T, CK, H, W)   in _global_matching?

How is the dimension of mk restored to (B, CK, T, H, W) in _global_matching? Because the dimension of mk in your training code is (B, CK, T, H, W).

NE=THW.
If you store T, H, and W, you can recover it.

NE=T*H*W.
If you store T, H, and W, you can recover it.

@hkchengrex In which line of code do you implement NE=THW? I don't know what the values of T,H and W are.

Here:
https://github.com/hkchengrex/STCN/blob/f08a2b4482f1a5186e410c584dc3a36b6a0cece6/inference_memory_bank.py#L70
And here:
https://github.com/hkchengrex/STCN/blob/f08a2b4482f1a5186e410c584dc3a36b6a0cece6/inference_memory_bank.py#L84
You can always just print out H and W. T is the number of times that concat happens.


Some improvements on vars

Some improvements

Please see our contributing guide for tips on submitting good PRs to this project: https://github.com/lit/lit/blob/main/CONTRIBUTING.md#pull-requests
Please leave a description that's more than just "some improvements". We can't tell what this PR does from the title and description. What improvements? What motived the change? Was this discussed with anyone in an issue or chat ahead of time?
This PR is failing linting and testing and needs to be formatted and includes some code changes that are broken. I highly recommend running tests locally before submitting the PR.
I also would usually recommend not making purely stylistic type changes. If there's a problem with the types, we obviously want a fix, but if the style of how they're implemented doesn't fit personal preferences, then PRs to change them can be more noise than they're worth. Also, please do not remove comments and especially TODOs unless they're obsolete or you addressed the comment thus making it obsolete.

Feel free to open a new PR with response to the comments!


Implement Eq and Hash for VersionReq

VersionReq currently implements PartialEq. It would be nice if it implemented Eq and Hash too, so that it can be put in a HashSet.

Whoops, should've thought to check PRs. Already done in #118


for discussion: embedded experiences

Larger one here but hopefully the 4 commits are logically structured in sequence:

Refactoring the ExperienceRenderer to support multiple ExperienceStateMachines.  The ExperienceRender now has a primary sharedStateMachine and then a mapping of ID -> ExperienceStateMachine for any secondary non-modal experiences that are allowed to run in parallel. There can only be one Experience in the main shared machine at a time - normal modal operation, but now non-modal embeds could take advantage of concurrent rendering.  The functions to dismiss an experience or move to a different step in an experience now take an ID value to allow the renderer to know which state machine those operations should apply to.  In all cases where an Experience ID is not set or otherwise unknown, it is assumed it operates on the shared modal instance.

Add the experience ID to the config used in ExperienceActions - this allows actions in an Experience to communicate the proper experience to apply to, when interfacing with the ExperienceRenderer.  Specifically, this is used in the close and continue actions - where the Experience context is needed so that the action applies to the correct state machine - which could be the shared modal machine or any one of the independent non-modal machines.  The ID used here is the experience.instanceID (not the experience.id) -- this is so that hypothetically the same Experience could even be running in multiple places, but have its own state machine context to run in independently.  Using the config map for this allows us to introduce this capability with no change to the public interface of the SDK in the ExperienceAction execute.

Add the AppcuesEmbedTrait and support for embedded content in the AppcuesView -- this is the main UI related change.  The AppcuesView is a UIView, public in the SDK, which customer apps can include anywhere desired.  The main Appcues interface allows a registration function call to register an embed with an ID tied to a view.  The SDK then retains a weakly held collection.  The AppcuesEmbedTrait is then used in an experience that would like to target a specific embed by ID - looking up the associated AppcuesView (in TraitComposer logic) and embedding the experience content inside that view, rather than opening up a new modal like current experiences use.  There is a small change to the skippable trait to handle the differences between modal dismissal and non-modal removal, when closing an experience.

Update the example app - just some example using in the SPM example to show how an embed could be used.  To demonstrate, the example experience response here can be used.

To use one of our experiences in an embed, you would first remove the modal trait, then add an experience level embed trait like:
{
    "type": "@appcues/embed",
    "config": {
        "embedId": "slot1",
	"animated": true,
	"style": {
	    "cornerRadius": 4
	}
    }
}

The key value is the embedId that tells the SDK which registered view to target the embed into.  The animated option controls whether show/hide uses a subtle animation.  The same high level styling can be used on the embed (cornerRadius, margin, padding).
Embedded experiences should really just contain a single step or a single group of steps (carousel).  Multiple step groups seems like it would be undesired here, but in theory, it could still be supported as different experience content containers would be added/removed in the same host view.

closing this PR for now and leaving the branch, pending decisions about path forward for v 1.1 and beyond.


auto charting

What feature do you want to get added on the base engine?
auto charting
for the people who are too lazy
also might need a midi of the voices
To test your sight, and reliability, please select the option of what should NOT be requested.
Stage Editor, 6K+ support, and winning icons.

it would work like each pitch is assigned to a different note

its impossible. but if you have the song fl studio file, you can use something like SNIFF.

that would make for the most awful shit charting ever

ye yur right :)

sadly i use lmms so i dont think i can use that :(

Oh, you're lazy? Too bad!


Using Kotlin require function to check for number range and maximum attempts

Kotlin has some nice functions for checking and throwing exceptions based on a predicate.
I think the proposed changes makes the code more idiomatic Kotlin and is more concise.

Even if this pull request is not merged:
There might be some a test case not covered, when I change this line require(increment <= alphabet.length) { "Reached max attempts to re-generate the ID" } into require(increment < alphabet.length) { "Reached max attempts to re-generate the ID" }, all the tests still pass.
I could look into this also, if you want and try to write a test for it.

Even if this pull request is not merged:
There might be some a test case not covered, when I change this line require(increment <= alphabet.length) { "Reached max attempts to re-generate the ID" } into require(increment < alphabet.length) { "Reached max attempts to re-generate the ID" }, all the tests still pass.
I could look into this also, if you want and try to write a test for it.

This check directly ported from the sqids specification
The maxBlockList test is a good example of what this limit aims to do, try as hard as possible to continually produce new ids in the case that the block list prevents a generated id from being used. In the example you gave, we would give up on trying to produce the id 1 less times than we normally would. I think to properly test that, you'd need to have an alphabet of length x and a block list of length x - 1 to see the importance of the line as it is written. I think its worth a test case both here and in the sqids-spec.


Help needed with custom docker image based on dustynv/ros:humble-ros-base-l4t-r32.7.1

I am working on building a custom docker image deployable to a Jetson nano. At the moment I am simply copying the src folder of the ros workspace and hope to build (including colcon build) it before pushing to the docker hub, so that i can simply pull on jetson nano side. Please help me to figure out what I am doing wrong. At the moment, ros_entrypoint.sh is as follows,
#!/bin/bash
set -e

ros_env_setup="/opt/ros/$ROS_DISTRO/setup.bash"
catkin_env_setup="$WORKSPACE/install/setup.bash"

echo "sourcing   $ros_env_setup"
source "$ros_env_setup"

echo "sourcing   $catkin_env_setup"
source "$catkin_env_setup"

echo "ROS_ROOT   $ROS_ROOT"
echo "ROS_DISTRO $ROS_DISTRO"

exec "$@"

When i use the following dockerfile,
FROM dustynv/ros:humble-ros-base-l4t-r32.7.1

ENV WORKSPACE=/home/workspace
ENV ROS_VERSION=humble
ENV ROS_ROOT=/opt/ros/${ROS_DISTRO}

WORKDIR /

RUN mkdir -p ${WORKSPACE}/src

COPY ./src ${WORKSPACE}/src

RUN cd ${WORKSPACE} && colcon build

# setup entrypoint
COPY ./ros_entrypoint.sh /ros_entrypoint.sh
RUN echo 'source /opt/ros/${ROS_DISTRO}/setup.bash' >> .bashrc
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]

I get following error,
 => ERROR [4/7] RUN cd /home/workspace && colcon build                                                                                8.1s
------
 > [4/7] RUN cd /home/workspace && colcon build:
3.063 Starting >>> test
7.872 --- stderr: test
7.872 CMake Error at CMakeLists.txt:9 (find_package):
7.872   By not providing "Findament_cmake.cmake" in CMAKE_MODULE_PATH this project
7.872   has asked CMake to find a package configuration file provided by
7.872   "ament_cmake", but CMake did not find one.
7.872
7.872   Could not find a package configuration file provided by "ament_cmake" with
7.872   any of the following names:
7.872
7.872     ament_cmakeConfig.cmake
7.872     ament_cmake-config.cmake
7.872
7.872   Add the installation prefix of "ament_cmake" to CMAKE_PREFIX_PATH or set
7.872   "ament_cmake_DIR" to a directory containing one of the above files.  If
7.872   "ament_cmake" provides a separate development package or SDK, be sure it
7.872   has been installed.
7.872
7.872
7.872 ---
7.873 Failed   <<< test [4.81s, exited with code 1]
7.971
7.971 Summary: 0 packages finished [5.42s]
7.971   1 package failed: test
7.971   1 package had stderr output: test
------
jetsonnano-humble-darkent-ros.Dockerfile:13
--------------------
  11 |     COPY ./src ${WORKSPACE}/src
  12 |
  13 | >>> RUN cd ${WORKSPACE} && colcon build
  14 |
  15 |     # setup entrypoint
--------------------
ERROR: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/bash -c cd ${WORKSPACE} && colcon build" did not complete successfully: exit code: 1

If i change the dockerfile to following,
FROM dustynv/ros:humble-ros-base-l4t-r32.7.1

ENV WORKSPACE=/home/workspace
ENV ROS_VERSION=humble
ENV ROS_ROOT=/opt/ros/${ROS_DISTRO}

WORKDIR /

RUN mkdir -p ${WORKSPACE}/src

COPY ./src ${WORKSPACE}/src

RUN . ${ROS_ROOT}/setup.bash \
    && cd ${WORKSPACE} \
    && colcon build

# setup entrypoint
COPY ./ros_entrypoint.sh /ros_entrypoint.sh
RUN echo 'source /opt/ros/${ROS_DISTRO}/setup.bash' >> .bashrc
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]

The error changes to following
 => ERROR [4/7] RUN . /opt/ros/humble/setup.bash     && cd /home/workspace     && colcon build                                                                            0.2s
------
 > [4/7] RUN . /opt/ros/humble/setup.bash     && cd /home/workspace     && colcon build:
0.124 /bin/bash: /opt/ros/humble/setup.bash: No such file or directory
------
jetsonnano-humble-darkent-ros.Dockerfile:13
--------------------
  12 |
  13 | >>> RUN . ${ROS_ROOT}/setup.bash \
  14 | >>>     && cd ${WORKSPACE} \
  15 | >>>     && colcon build
  16 |
--------------------
ERROR: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/bash -c . ${ROS_ROOT}/setup.bash     && cd ${WORKSPACE}     && colcon build" did not complete successfully: exit code: 1

If I change the ros_entrypoint.sh to
#!/bin/bash
set -e

ros_env_setup="/opt/ros/$ROS_DISTRO/setup.bash"
catkin_env_setup="$WORKSPACE/install/setup.bash"

echo "sourcing   $ros_env_setup"
source "$ros_env_setup"

colcon build

echo "sourcing   $catkin_env_setup"
source "$catkin_env_setup"

echo "ROS_ROOT   $ROS_ROOT"
echo "ROS_DISTRO $ROS_DISTRO"

exec "$@"

and Dockerfile to
#!/bin/bash
set -e

ros_env_setup="/opt/ros/$ROS_DISTRO/setup.bash"
catkin_env_setup="$WORKSPACE/install/setup.bash"

echo "sourcing   $ros_env_setup"
source "$ros_env_setup"

colcon build

echo "sourcing   $catkin_env_setup"
source "$catkin_env_setup"

echo "ROS_ROOT   $ROS_ROOT"
echo "ROS_DISTRO $ROS_DISTRO"

exec "$@"

It succeeds with following output.
 => [internal] load build definition from jetsonnano-humble-darkent-ros.Dockerfile                                                                                0.0s
 => => transferring dockerfile: 448B                                                                                0.0s
 => [internal] load metadata for docker.io/dustynv/ros:humble-ros-base-l4t-r32.7.1                                                                                0.9s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [1/6] FROM docker.io/dustynv/ros:humble-ros-base-l4t-r32.7.1@sha256:110e55a4671fd90ad47dc1ab19fd67a98c780307e38ba4a4acc3c5efe317adc1                                  0.0s
 => => resolve docker.io/dustynv/ros:humble-ros-base-l4t-r32.7.1@sha256:110e55a4671fd90ad47dc1ab19fd67a98c780307e38ba4a4acc3c5efe317adc1                                  0.0s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 652B                                                                                0.0s
 => CACHED [2/6] RUN mkdir -p /home/workspace/src                                                                                0.0s
 => CACHED [3/6] COPY ./src /home/workspace/src                                                                                0.0s
 => [4/6] COPY ./ros_entrypoint.sh /ros_entrypoint.sh                                                                                0.0s
 => [5/6] RUN echo 'source /opt/ros/${ROS_DISTRO}/setup.bash' >> .bashrc                                                                                0.1s
 => exporting to image                                                                                8.5s
 => => exporting layers                                                                                0.0s
 => => exporting manifest sha256:7c2b6b4c3519bf218bebe90d78431ee4561606dbe4f31f2076d7cf6653d7f279                                                                         0.0s
 => => exporting config sha256:306a3fa19427e95c789174f1b5e76f8028addb7227f079ad03f676c120f0d8e1                                                                           0.0s
 => => exporting attestation manifest sha256:ce82492198fa30e913e0b6d2f0d67cd95aa187a75e88feaa76701479bbbdcb68                                                             0.0s
 => => exporting manifest list sha256:f20a55374e479ff163ba897d5bfba7fa835067e516632adeded31f061b6b1bdb                                                                    0.0s
 => => pushing layers                                                                                5.9s
 => => pushing manifest for docker.io/kalanarat/darknet:ros-humble-jetson-nano@sha256:f20a55374e479ff163ba897d5bfba7fa835067e516632adeded31f061b6b1bdb                    2.5s
 => [auth] kalanarat/darknet:pull,push token for registry-1.docker.io

But it defeats the purpose of offloading the compiling from the jetson nano i guess. I am attempting to build this via buildx on a amd64 machine.
Is there a way to build this and push to docker hub as i need or, is the last approach only viable?

This is no longer necessary. Managed to implement this without issue.


Getting error in Digital Ocean

I was upgrading some dependencies in my repo and after deploying to digital ocean I got the following error. Any Idea why that would be happening:
› using Ubuntu 18.04 stack
[2023-06-02 00:35:16] │ Detected the following buildpacks suitable to build your app:
[2023-06-02 00:35:16] │
[2023-06-02 00:35:16] │    heroku/nodejs-engine   v0.5.2
[2023-06-02 00:35:16] │    digitalocean/node      v0.3.6  (Node.js)
[2023-06-02 00:35:16] │    digitalocean/procfile  v0.0.3  (Procfile)
[2023-06-02 00:35:16] │    digitalocean/custom    v0.1.1  (Custom Build Command)
[2023-06-02 00:35:16] │
[2023-06-02 00:35:16] │ For documentation on the buildpacks used to build your app, please see:
[2023-06-02 00:35:16] │
[2023-06-02 00:35:16] │    Node.js  v0.3.6  https://do.co/apps-buildpack-node
[2023-06-02 00:35:16] ╰─────────────────────────────────────────────╼
[2023-06-02 00:35:16]
[2023-06-02 00:35:16] ╭──────────── build caching ───────────╼
[2023-06-02 00:35:17] │  › checking for cache from a previous build
[2023-06-02 00:35:18] │ Layer cache not found
[2023-06-02 00:35:19] │ Restoring metadata for "heroku/nodejs-engine:nodejs" from app image
[2023-06-02 00:35:19] │ Restoring metadata for "heroku/nodejs-engine:yarn" from app image
[2023-06-02 00:35:19] │ Layer cache not found
[2023-06-02 00:35:20] │ Removing "heroku/nodejs-engine:nodejs", not in cache
[2023-06-02 00:35:20] │ Removing "heroku/nodejs-engine:yarn", not in cache
[2023-06-02 00:35:20] ╰───────────────────────────────────────╼
[2023-06-02 00:35:20]
[2023-06-02 00:35:20] ╭──────────── app build ───────────╼
[2023-06-02 00:35:20] │ ---> Node.js Buildpack
[2023-06-02 00:35:20] │ ---> Installing toolbox
[2023-06-02 00:35:20] │ ---> - jq
[2023-06-02 00:35:20] │ ---> - yj
[2023-06-02 00:35:20] │ ---> Getting Node version
[2023-06-02 00:35:20] │ ---> Resolving Node version
[2023-06-02 00:35:21] │ ---> Downloading and extracting Node v16.20.0
[2023-06-02 00:35:24] │ ---> Parsing package.json
[2023-06-02 00:35:25] │ ---> Installing<EMAIL_ADDRESS>[2023-06-02 00:35:26] │ ---> No file to start server
[2023-06-02 00:35:26] │ ---> either use 'docker run' to start container or add index.js or server.js
[2023-06-02 00:35:26] │ Project contains yarn.lock, using yarn
[2023-06-02 00:35:26] │ Warning: a .npmrc file was found. yarn does not read .npmrc files, use .yarnrc instead if needed.
[2023-06-02 00:35:26] │ Installing node_modules using yarn (from yarn.lock)
[2023-06-02 00:35:28] │ Running yarn install
[2023-06-02 00:35:28] │
[2023-06-02 00:35:28] │ yarn install v1.22.19
[2023-06-02 00:35:28] │ [1/4] Resolving packages...
[2023-06-02 00:35:29] │ [2/4] Fetching packages...
[2023-06-02 00:36:34] │ warning<EMAIL_ADDRESS>The engine "pnpm" appears to be invalid.
[2023-06-02 00:36:34] │ [3/4] Linking dependencies...
[2023-06-02 00:36:34] │ warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^11.0.0".
[2023-06-02 00:36:34] │ warning " ><EMAIL_ADDRESS>has unmet peer dependency "@angular-devkit/core@>= 14.0.0 < 17.0.0".
[2023-06-02 00:36:34] │ warning " ><EMAIL_ADDRESS>has unmet peer dependency "@angular-devkit/schematics@>= 14.0.0 < 17.0.0".
[2023-06-02 00:36:34] │ warning " ><EMAIL_ADDRESS>has unmet peer dependency "@schematics/angular@>= 14.0.0 < 17.0.0".
[2023-06-02 00:36:47] │ [4/4] Building fresh packages...
[2023-06-02 00:36:53] │ $ prisma generate
[2023-06-02 00:36:53] │ Prisma schema loaded from prisma/schema.prisma
[2023-06-02 00:36:54] │ Error: Generator "prisma-json-types-generator" failed:
[2023-06-02 00:36:54] │
[2023-06-02 00:36:54] │ /bin/sh: 1: prisma-json-types-generator: not found
[2023-06-02 00:36:54] │
[2023-06-02 00:36:54] │ error Command failed with exit code 1.
[2023-06-02 00:36:54] │ info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
[2023-06-02 00:36:54] │
[2023-06-02 00:36:54] │ unable to invoke layer creator
[2023-06-02 00:36:54] │ installing node_modules: exit status 1
[2023-06-02 00:36:54] │ ERROR: failed to build: exit status 1
[2023-06-02 00:36:54] │
[2023-06-02 00:36:54] │
[2023-06-02 00:36:54] │ For documentation on the buildpacks used to build your app, please see:
[2023-06-02 00:36:54] │
[2023-06-02 00:36:54] │    Node.js  v0.3.6  https://do.co/apps-buildpack-node
[2023-06-02 00:36:54] │
[2023-06-02 00:36:54] │  ✘ build failed

Found the problem, it was setting NODE_ENV=production. Apparently Digital Ocean App plaform does not like that.


AR1 to GYRO

Add SilverLight AR1 as a gyro.

I don't recall doing this, are you sure you still want the issue closed?

Not sure what happened with this one. I think I made the change myself on my script. Keeping it open so others script is corrected would be best.
Mac


Plugins causing crashes when emitting signals with arguments in some devices

Godot version
4.0.2stable
System information
Samsung SM-J701MT, GLES3
Issue description
I've had 2 users reporting that my game is crashing on startup just after a few frames. Both users had similar devices: LG K10 and LG K12. Later on I discovered that my old phone (Samsung SM-J701MT) also had the same exact issue. Disabling plugins solved the issue entirely, but you could also run the app with plugins as long as you don't do any calls to the plugins.
I have over 100 users testing on higher end phones playing with the same plugins active and without any issues.
The only error I get is:
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x91df4018 in tid 14201 (GLThread 10481), pid 13924 (ploadsimulator2)
After further investigation I've noticed that the crashes happen exactly at the moment a plugin emit a signal with an argument, if you remove the signals with arguments from the plugins it will no longer crash.
Note that I am using 4 different plugins, and all of them have the same exact issue. Changing the plugin library version does nothing (I've tried 4.0.2, 4.0 and 3.5 libraries).
Steps to reproduce
Export any project with a plugin and emit a signal with an argument using the plugin.
High end devices won't be affected, but older devices will crash.
Minimal reproduction project
Add the plugin to your export and run
Engine.get_singleton("TestingPlugin").start()
It will emit one signal without arguments and another with arguments. It will also log whenever that happens.
TestingPlugin.zip

Update: Emitting the signal won't instantly crash if you are loading the game, but it will instantly crash as soon as the game loops begin. It will also instantly crash when emitting the signal while the game is loaded and looping.
Looks like the crash happens a few frames after emitting the signal.

I encountered the same issue today.
It was with the Google Billing Plugin.
Callback signals without parameters were working fine.
But signal with 1 or more parameters make the app crash.
And something even more fun, after I reboot my phone, the issue disapear, for now... ???

Finally someone else noticed.
I've had to adapt all my plugins, removing the arguments from signals and storing data inside the plugin itself.

I think this is a very serious issue, but also unpredictable.
Since the time I have rebooted my phone, everything works perfectly..
It will be hard to find.

The more I think about it, the more it looks like an old C++ uninitialized memory issue.
When Godot creates the List of function Parameters, there should be one variable not initialized.
If you are lucky, it will be zero,
If you are not lucky, it will be any value and the app may crashes.
When I reboot my phone, it reorganizes the memory, and I was lucky again. Until next time.

I have also been investigating what I believe to be the same issue.
In my case the reported crashes all appear to be devices running 32bit Android (Arm7 ABI) despite modern 64bit CPUs.  I believe manufacturers do this on 'budget' models that are memory constrained.  I haven't seen issue on Arm8 ABI, though this may just be coincidental.
I have been able to reproduce crash on Arm8 device (Samsung S8) by only exporting with arm7 libs, which should force to use 32bit.
@Ajrarn777
It looks like the JNI calls back into libgodot, converting params from java types and dynamically allocating on the stack at:
https://github.com/godotengine/godot/blob/master/platform/android/plugin/godot_plugin_jni.cpp#L118

I think I have a hints, but it is only a wild guess at this time .
File : \godot\platform\android\plugin\godot_plugin_jni.cpp
JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitSignal(JNIEnv *env, jclass clazz, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_params) {
...
	Variant *variant_params = (Variant *)alloca(sizeof(Variant) * count);
	const Variant **args = (const Variant **)alloca(sizeof(Variant *) * count);

	for (int i = 0; i < count; i++) {
		jobject j_param = env->GetObjectArrayElement(j_signal_params, i);
		variant_params[i] = _jobject_to_variant(env, j_param);
		args[i] = &variant_params[i];
		env->DeleteLocalRef(j_param);
	}

Here, it uses alloca( ), which is very awkward, because it is use with C++ classes ( Variant ).
In this case, the constructor of the class Variant will not be called, which will left the class in a undefined state.
After that it use the operator= on a un-initialized class, and the result can be just anything.
Unless I miss something (and it is always possible), it looks like it can be our issue 😄

Yeah, in my debugging it was consistently crashing on the variant_params assignment, on arm7.
Looking through more of the engine code, it appears the macro memnew_placement is used with stack allocated objects.
This seems to work for me:
 JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitSignal(JNIEnv *env, jclass clazz, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_params) {
...
        Variant *variant_params = (Variant *)alloca(sizeof(Variant) * count);
        const Variant **args = (const Variant **)alloca(sizeof(Variant *) * count);

        for (int i = 0; i < count; i++) {
                jobject j_param = env->GetObjectArrayElement(j_signal_params, i);
-               variant_params[i] = _jobject_to_variant(env, j_param);
+               memnew_placement(&variant_params[i], Variant(_jobject_to_variant(env, j_param)));
                args[i] = &variant_params[i];
                env->DeleteLocalRef(j_param);
        }

...but I am not confident enough to propose as a fix yet.
Interestingly,  it is already used in another func callobject with alloca/Variant in the JNI interface but not in calldeferred just below it.  So a few inconsistencies.

I'm feeling happier with my understanding of these changes now and making nativeEmitSignal, callobject and calldeferred consistent in their logic.
Will finish up a PR tonight, unless anyone had further comments, or has an android device with valgrind/msan configured that we can do some more verifiable tests first?

I have have an quick objection ;)
Why not use a simple std::vector for this instead ?
Allocating on stack is certainly quicker, but by how much ?
Emitting a signal is a complex call, allocating the array of parameters is only a very small part of it.
If it save 0.1% by allocating on the stack instead of the heap, I will be suprised.
Like Donald Knuth said : Premature Optimization Is the Root of All Evil
Anyhow, your solution will probably fix the current problem.
But, even then, the class destructor will never be called.
The good news is, we are very near a solution 😄
And you are right, this code is inconsistent in different places.


[zh-cn] sync rbac-good-practices.md secrets-good-practices.md

content/zh-cn/docs/concepts/security/rbac-good-practices.md
content/zh-cn/docs/concepts/security/secrets-good-practices.md

Thanks.
/lgtm
/approve


Feature request: Pre-execution

People enjoy using stuff like different JavaScript dialects as well as modding require itself for a variety of reasons. SocketCluster should, in my opinion, respect that.
The easiest way to do so is to apply this change::

Add option preRun, which specifies one JavaScript file that should be executed BEFORE the actual process runs. Pseudo example:

var preScript = SocketCluster.config.preRun; // obtain the preRun script name, should be resolved and alike.
var actualScript = SocketCluster.config.{...}; // Get the actual script to launch. Like the broker or worker script.

if(typeof preScript != "undefined") {
    require(preScript);
}
// Global environment may or may not be modified,
// allowing even a .coffee or .jsx file to be included now.
require(actualScript);

This would allow the user to take all the freedom to register a CoffeeScript-capable require function or alike. It also would allow stuff like globalize to auto-load modules, or add whatever is most commonly used into glboal scope!
Alternatively, we could also have the preScript export a function with a callback, which would probably look like this:
module.exports = function PreScript(run) {
    // Example using my oj-node package:
    require("oj-node");
    run();

    // Async function example
    var redis = require("redis");
    var rc = redis.createClient();
    rc.get("myValue", function(res, err){
        if(err) throw err;
        global.__mySpecialVar = res;
        run();
    });
}

How about it? :)

@IngwiePhoenix Yes, I think the second approach makes the most sense.
I think what you're describing is a kind of middleware function which does stuff/modifies the environment all children scripts get executed.
We should try to follow existing conventions relating to middleware functions: See the addMiddleware() method: http://socketcluster.io/#!/docs/api-scserver - We could add a new addMiddleware(...) function on the SocketCluster master instance: http://socketcluster.io/#!/docs/api-socketcluster and the middleware type could be MIDDLEWARE_EXEC 'exec' or MIDDLEWARE_RUN 'run'.
This would be a nice feature. Would you feel comfortable forking SC and implementing this? I will accept a pull request.
You can see how SC implements middleware, here: https://github.com/SocketCluster/socketcluster/blob/master/lib/scworker.js#L168-170 and https://github.com/SocketCluster/socketcluster/blob/master/lib/scworker.js#L195-203

I guess this logic will have to run before workerController and brokerController scripts get required.
See https://github.com/SocketCluster/socketcluster/blob/master/lib/scworker.js#L222-L223
The brokerController logic is actually not directly part of SC (although it follows the same conventions). It's part of nData; see: https://github.com/SocketCluster/ndata/blob/master/server.js#L169-L173

Or maybe this shouldn't be a normal middleware (since passing the function across different processes will be difficult). Maybe it can be an option to the SocketCluster master instance (as you suggested) - Maybe the user should provide the path to the module which is responsible for preprocessing/prerun. I like the idea of this module calling a next() method when it has finished preprocessing.

@jondubois Well, good day. I basically have no internet at my dorm, so when i checked back here only to see so much response, I was like "well, g'day man!" XD.
Okay, but now for real.
As I am not currently really internet-equipped, there is not much I can do as of right now. I do have  mobile data, so I will try to fork SC, commit changes into that, and PR it.
As you seem to like a sort of combination of the first and second approach - the configuration part and the callback part - I will be heading to implement that very thing.
The implementation will have the user supply the path to a module - much like the controllers are supplied as just the file paths. This module will then be loaded, the module.exported function executed with one next() parameter, which essentially triggers the next step.
But one things I would like to mention ahead: SC is huge, I'm small :). So I'll do my best to provide that PR!

@IngwiePhoenix Haha, well trying is what counts :p It sounds like we figured out a good solution. I can always make minor changes afterwards to ensure consistency so don't worry about it too much.
I don't have much time right now so even if you have a partial solution, that would help get things started.

@jondubois So I just took some time to look at the pieces of code you pointed out. For the WorkerController, it seems totally straight forward to add something by the lines of
this.PrerunFunction = require(this._paths.prerunScript);
this.PrerunFunction.run(this);

right above it, per-se.
But what about the other controllers? If the Broker is part of nData, what would be the most suitable way to pre-run a script on that one? I will look at the Broker related code next.

Looks like iocluster is the default module that is required for the Broker stuff. Can you point me towards the right spot to properly pick up in this module?

That's the hardest part. The iocluster module is only responsible for launching a cluster of nData instances and figuring out how to exchange data between them (basically it only manages multiple nData servers).
You probably don't need to think about iocluster. It's easier to just look at an nData server.
This part here is were the nData server receives the workerController filePath: https://github.com/SocketCluster/ndata/blob/master/server.js#L12
Then later, it gets used here: https://github.com/SocketCluster/ndata/blob/master/server.js#L171
The BROKER_OPTIONS here: https://github.com/SocketCluster/ndata/blob/master/server.js#L15 is the same as the initial options object (configs) which you pass to the master SocketCluster instance when initializing.

So - both, the actual socketcluster module as well as ndata need to understand the prerunScript option?

Yes, I guess

Alright. I better get started! :)

All PRs have landed:
https://github.com/SocketCluster/socketcluster/pull/121
https://github.com/SocketCluster/iocluster/pull/3
https://github.com/SocketCluster/ndata/pull/18
Got myself a pizza and some good music and put the changes in. I also have extended the sample app to test the new stuff. It works well! :)
let me know if there is anything that I need to fix. (I love puns.)

Merged.


Improve template undead

For Vampires, Liches, and Ghosts, instead of assuming automatically a character class, let them acquire a subtype.  Subtype can include Character and NPC, so you can still get character classes of these undead - but you can also get vampire kobolds or ghost elves (no class)

This wil lwait until we can make fully-fleshed out creatures

Blocking on #3

This will be done via CreatureGen, using random fill-ins for templates


Update Manufacturers database (from September 2023)

The manufacturer database file was missing quite a number of newly assigned manufacturer IDs (also ours).
I have added the IDs from 0x136B to 0x148B from the CSA Manufacturer Code Database and did a few small obvious whitespace fixes.
Also some VIDs in the middle were missing in the XML: 0x109B, 0x1352
Unfortunately the database is a PDF and cannot easily be automatically translated due to various data errors:

different date formats
spaces in dates
no date
2 names
abbreviated names
multiline entries if pdftotext is used to convert the pdf
double entries for the same VID 0x1201 in the PDF
different manufacturer names between PDF and XML for VIDs 0x128C, 0x131F, 0x1349
many whitespace differences between PDF and XML

Most entries from the PDF can be matched with
#!/usr/bin/env python3

FILENAME = '053874r105ZA_CSG-Manufacturer-Code-Database-with-RF4CE 20230930.pdf'

from PyPDF2 import PdfReader
import re
import html

reader = PdfReader(FILENAME)

# (Manufacturer Code (VID)) (Company Zigbee) Matter RF4CE Name (Date Allocated)
CODE_ENTRY_REGEX = r"^([\da-fA-F]{4}) ([\w\d.,#\+\&//\-\(\)\[\] ]*) X{0,1} X{0,1} (\w*)( [\w\"\“\”\(\)\-.//]*)*\s+(\w*)-([\w\s]*)-(\w*) $"
VID_REGEX = r"^([\da-fA-F]{4})"

number_of_pages = len(reader.pages)

for page_number in range(31, number_of_pages):
    print('')
    print('<!-- Page {} -->'.format(page_number))
    page = reader.pages[page_number]
    text = page.extract_text()
    # print(text)

    combine_with_previous_line = False
    previous_line = ""

    for line in text.split('\n'):
        vid_match = re.search(VID_REGEX, line)

        if not vid_match and combine_with_previous_line == True:
            line = previous_line + line
            # print("  now checking with {}".format(line))

        full_match = re.search(CODE_ENTRY_REGEX, line)

        if full_match:
            # print(match.group())
            # print("VID '{}': Manufacturer: '{}'".format(full_match.group(1), full_match.group(2) ))
            vid = full_match.group(1)
            manufacturer_name = html.escape(full_match.group(2).strip())

            print('<mapping code="0x{}" translation="{}"/>'.format(vid, manufacturer_name))

            combine_with_previous_line = False
        else:
            # print("  pattern not found: {}".format(line))

            if combine_with_previous_line == True:
                print("<!-- Parsing still fails: {} -->".format(line))

            if vid_match:
                print("<!-- VID {} was detected, parsing of {}failed, will check together with next line -->".format(vid_match.group(1), line))
                previous_line = line
                combine_with_previous_line = True

Shall I add the script to ./src/app/zap-templates/zcl/data-model/?
Please check whether Häfele is correctly encoded.

Hey, As added as comment the 0x109B is now contained twice ... (correct shluld be the old value from Leviton).
Question to siscussion above: makes it sense to use a PDF? WHy not using https://on.dcl.csa-iot.org/#/Query/VendorInfoAll to update it?

While I would also prefer a computer readable format. The authoritive document is for now the PDF. Does the DCL have all vendor information or only those that the vendors have entered.

@markus-becker-tridonic-com I thini itcontains all certified "things" out there ... maybe more especially about devices (and not controllers? But I do not know exactly).
So is the PDF also containing the one code twice? Then the PDF is wrong too :-(


Improve source code styles

This PR includes the following changes:

Adjust source code styles, most of the changes follow the Elixir Style Guide
Fix some typos in the README.md file
Re-wrap some paragraphs to fit 80-columns

@chingor13 Just out of curiosity, do we need another approval to get this PR merged into master?


Unsupported data type: nil

Thanks for the report! it has been fixed as of 2.1.0.
https://github.com/PysephWasntAvailable/RemotePacketSizeCounter/commit/511a0295ca9b35ae172469fabc4f0ed2d5f0cb02


Do not install PSP if apiVersion not available

This PR changes the helm templates to not install PodSecurityPolicies if their apiVersion is not available.
Towards giantswarm/giantswarm#23400

Not sure why I couldn't select team review :shrug:


Running train.py doesn't seem to work

After setting up the multiagent-particle-envs and adding the path to the PYTHONPATH, and after all the pip installs, running the

python train.py --scenario simple

results in:
/home/.local/lib/python3.6/site-packages/tensorflow/python/util/tf_inspect.py:45: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() or inspect.getfullargspec()
if d.decorator_argspec is not None), _inspect.getargspec(target))
Using good policy maddpg and adv policy maddpg
Traceback (most recent call last):
File "train.py", line 195, in
train(arglist)
File "train.py", line 106, in train
obs_n = env.reset()
File "~/gym/gym/core.py", line 71, in reset
raise NotImplementedError
NotImplementedError
Any fixes?

Hi, this is related to the newest version of OpenAI gym (>=0.10), which has made some breaking changes to other code. If you downgrade your version of gym, it should work. We're looking into fixing this.

Should be fixed now!

I downgrade my version of gym to 0.10.0,but it still dose not work.

Hi xiaoy,
The old version of the multiagent-particle-envs code works with gym 0.9.x and lower.
The new version works with gym 0.10.x and higher. So with the new version of both gym and multiagent-particle-envs everything should work. If it doesn't, please raise another issue! :)

why can't I install the old version of gym?
(base) E:\DPL\MA\maddpg-master\maddpg-master\experiments>pip install gym-0.9.2
ERROR: Could not find a version that satisfies the requirement gym-0.9.2 (from v
ersions: none)
ERROR: No matching distribution found for gym-0.9.2


Add material to Wiki Getting Started page

Description

Additional context

closing this issue example

found out that issues are not only bugs :)


Network: Adds ipv4.dhcp and ipv6.dhcp settings for OVN networks

Allows DHCP/RA to be disabled.

Testsuite passed


Strange effect with shadows enabled on DirectionalLight

Godot version: master 32afcbc48 but more recent too
Issue description:
Using default settings, when turning shadows on on a DirectionalLight, the editor get some weird effect on textures.
Camera viewport get less noisy output and the running camera even less, but is still there.

I think the effect is not present on OmniLight and just at some extent on SpotLight (faces parallel to the light direction).
This may be a bad default setting issue, but not sure.
Steps to reproduce:
Add a directional light to a 3D scene and enable shadows.
Link to minimal example project:
shadowtest.zip

Looks very close to my weird flashes from #8651, so chances are the two are related.

This problem doe not exists in a late january build

hmm this looks like default shadow bias setting, should investigate

A normal bias (not shadow) of around 0.7 make the strips disappear but not sure if is the correct setting.

Rewrote the way bias works in DirectionalLights, this should make it work much better. Also changed default settings so it looks good on the first attempt


new crashes on the last build

Hi, it's me again
ca351f4 crashes - in the log it's at 11:10. 61ad2a2 works well.

Thank you for the quick testing and bug report! I especially appreciate the detailed log and the pointer of where to look.
The log indicates it's crashing in the same codepath as #380, but instead of asking for java/time/Instant it's trying to load j$/time/Instant. I saw this show up in analytics and thought it was part of my (quickly-reverted) attempt to enable minification yesterday, and so I'm disappointed that it's still happening!
I wonder if it's related to 351971a? It was meant to fix java/time/Instant on API24 phones, but the analytics seem to indicate that it didn't help that anyways. Try out this branch where I've reverted that commit.

Try out this branch where I've reverted that commit.

Yes, this build doesn't crash.

Thank you so much for the testing! Try out the next build when it finishes in ~20min


Cannot read property 'n' of undefined

I'm getting this error thrown occasionally.  Looks like a mongodb problem rather than a mongoskin problem, but not sure. Could you confirm pls?  I'll then report in the mongodb repo.
 Cannot read property 'n' of undefined
   File "net.js", line 523, in TCP.onread
   File "_stream_readable.js", line 110, in Socket.Readable.push
   File "_stream_readable.js", line 146, in readableAddChunk
   File "events.js", line 169, in Socket.emit
   File "events.js", line 77, in emitOne
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/connection.js", line 422, in Socket.<anonymous>
     self.emit("message", emitBuffer, self);
   File "events.js", line 172, in emit
   File "events.js", line 87, in emitTwo
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/connection_pool.js", line 201, in null.<anonymous>
     _self.emit("message", message);
   File "events.js", line 169, in emit
   File "events.js", line 77, in emitOne
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/server.js", line 426, in null.<anonymous>
     mongoReply.parseBody(message, connectionPool.bson, callbackInfo.info.raw, function(err) {
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js", line 68, in MongoReply.parseBody
     callback(null);
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/server.js", line 468, in null.<anonymous>
     server._callHandler(mongoReply.responseTo, mongoReply, null);
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/base.js", line 445, in Server.Base._callHandler
     if(typeof callback == 'function') callback(err, document, info.connection);
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/db.js", line 1846, in null.<anonymous>
     callback(err, result, conn);
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/db.js", line 1132, in null.<anonymous>
     callback(null, results.documents[0]);
   File "xxxxxxxxx/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/collection/core.js", line 339, in null.<anonymous>
     callback(null, r.n, r)
   File "xxxxxxxxx/node_modules/mongoskin/lib/collection.js", line 176, in callback
     oldCb.call(_this, error, res.result.n);

No I think this was a mongoskin issue. Should be fixed with 2.0.3


Updating deps and getting project in shipping order

Switch from nets/request/xhr to isomorphic-fetch in anticipation that
this module can be used in the client some day
Adds example server
Will need to set environment variables for id and secret

Somewhat of a big change set so I'm opening a PR for any discussion. Merging in straight away though.

:+1: looks good to me, gonna update my mailchimp script & double check it all works :D


Update the RHEL 8 / CentOS 8 install instructions

The python3-markdown package required by tmt-test-convert is
only available under extra repositories. Let's make it clear.

/packit test

/packit test


Minor typo in readme - use setTextAreaRows("Name", rows); not setTextAreasRows

setTextAreaRows not setTextAreasRows
That's all.
Love this library for what it enables and for the code-execution methods the examples demonstrate.

Thanks. I'll try to fix that. Probably have some time over the holidays.


With "[ids] *" Logitech Ergo -trackball stops working correctly

If in /etc/keyd/default.conf I put:
[ids]
*

Logitech Ergo -trackball's scroll wheel stops working and shortcuts that have modifier + mouse key. I have to exclude Ergo with:
-046d:406f

Can you post the output of journalctl -fu keyd?

Sure. Without the "-046d:406f" line in /etc/keyd/default.conf:
❯ journalctl -fu keyd
helmi 15 13:01:54 ryzen keyd[243647]: Starting keyd v2.2.0-beta ().
helmi 15 13:01:54 ryzen keyd[243647]: Parsing /etc/keyd/default.conf:
helmi 15 13:01:54 ryzen systemd[1]: Stopped key remapping daemon.
helmi 15 13:01:54 ryzen systemd[1]: Started key remapping daemon.
helmi 15 13:01:55 ryzen keyd[243647]: Managing USB-HID Keyboard (04d9:0295) (/etc/keyd/default.conf)
helmi 15 13:01:55 ryzen keyd[243647]: Managing USB-HID Keyboard (04d9:0295) (/etc/keyd/default.conf)
helmi 15 13:01:55 ryzen keyd[243647]: Managing Logitech MX Ergo (046d:406f) (/etc/keyd/default.conf)
helmi 15 13:01:55 ryzen keyd[243647]: Managing Logitech USB Receiver (046d:c529) (/etc/keyd/default.conf)
helmi 15 13:01:55 ryzen keyd[243647]: Managing Wings Tech Xtrfy M4 Keyboard (2ea8:2203) (/etc/keyd/default.conf)
helmi 15 13:01:55 ryzen keyd[243647]: Managing Logitech K580 (046d:4089) (/etc/keyd/default.conf)
❯

there was also this line if makes any difference:
helmi 14 20:21:21 ryzen keyd[197615]: WARNING: failed to set effective group to "keyd" (make sure the group exists)

Thanks. It looks like you are running an older version. The commit hash is conspicuously missing, how did you install it? I suspect this should no longer be an issue in the latest commit.

Ok. I installed it using an Copr user repository (for Fedora 35). Maybe should build it myself then.

Thanks for making me aware of this. v2 is currently in beta and changing quite regularly, so I would advise you to check often for bugs and changes. I am trying to keep it reasonably stable, but there is no guarantee of backwards compatibility until it leaves beta, so I encourage you to read the changelog of each release.

Did upgrading resolve your problem?

Ah, it seems certain mice (mostly logitech) also behave as keyboards (i.e they have the ability to emit normal keypresses). Unfortunately there doesn't seem to be a way to automatically distinguish between them and keyboards with trackpads. The  recommended workaround is to explicitly blacklist them as you have done.


Using Action Cable with redis-client

Hi,
I'm trying to use redis-client instead of redis with Action Cable but I'm getting the erro "Error loading the 'redis' Action Cable pubsub".
It's seems that Action Cable doesn't work with the default "redis" adaptar for Action Cable.
I have to use redis for Action Cable and redis-client for sidekiq or anyone is running redis-client for both?
ps: Sorry if here is not the right place for this kind of issue

That's not possible. That would require a change on the Active Support side (which I may do at some point but I didn't yet).
Either way, that would be a feature request for Active Support, not for redis-client.


Use FetchContent to retrieve TOML test data

Tests which required test files from the TOML project were failing unless the TOML repository was checked out manually within the test directory. Using CMake's FetchContent, it is fairly easy to include an upstream repository directly. The source directory of the TOML repository and the known, relative paths to the test files can be combined to configure a header file with the paths to the test files. This header file can provide easy-to-use variables for the test cases that need access to these files. An interface library ensures the include directory containing this header file is available to the test targets.
Unfortunately, the FetchContent feature was introduced in CMake 3.11 which is newer than the minimum version in the CMakeLists.txt. I'm sure it is possible to add workarounds for earlier versions of CMake, but my initial commit simply bumps the minimum required CMake version to 3.11 because I prefer to do as little work as possible 😁. If support for earlier versions of CMake is required, I can work on adding workarounds to include the TOML test files.

Sorry for the late response.

No worries. I really appreciate you taking the time to work with me on this. 🤗

Basically I'm positive to your aims, such as updating CMake version and fetching TOML official example files from CMakeLists automatically. But I have some concerns about the current implementation.
First, as you already mentioned, the required version of CMake seems to be high. I'm not fully sure about the versions of CMake that will be installed by package managers on the popular Linux distributions. I think it is okay to require 3.1, but not sure about 3.11. In CMake 3.1, still you can use file(DOWNLOAD ...) or execute_process(...) to fetch the contents.

It looks like ExternalProject is available in CMake 3.1, and this works very similar to FetchContent for grabbing a specific tag of a git repository.

Second, I know it is my personal feeling, but I want to make CMakeLists files straitforward. For that purpose, I think it is okay to make them redundant. Currently, only tests/CMakeLists.txt needs to fetch the files and codes for fetching it seems to be short enough to put it directly in tests/CMakeLists.txt.

Use of a dependencies directory for getting dependencies is a common CMake pattern, which is why I did that. It's not a problem for me to include that logic in the tests/CMakeListst.txt. 👍

Third, I don't want to make test code itself highly dependent on CMake. I want to keep it easy enough to build a test code from command line. In other words, I want to keep all the test codes compilable from command line one by one without knowledge about CMake.

Gotcha. I've always required CMake for building my projects, so I wasn't even thinking about wanting to do something like that. I'll keep that in mind going forward.

So...
* Could you keep CMake minimum version requirements to 3.1?

You got it. 👍

* Could you specify a destination directory when fetching TOML repo, to remove CMake variables from the test codes?

I should be able to figure out a way to do this 👍

CMake versions before 3.0 might contain ExternalProject and the bump to version 3.1 might not be necessary. CMake 3.0 also has ExternalProject add. However, I think it would still be wise to bump up to CMake 3.1. Centos 7 uses CMake 2.8.12 in its core repository, but its easy enough to grab CMake 3.14 through the EPEL Repository. Ubuntu 16.04 has CMake 3.5 in its repository. OpenSUSE LEAP 15.1 ships with CMake 3.10 which can be seen here. I am not aware of any other long-term support distributions which are still supported (excepting CentOS 6) which do not ship with a relatively recent version of CMake 3.X.


Pass props to route

So I have this:
<Route path="/about" component={About}/>

How do I pass props to the About component?
Wouldn't it be ideal to allow/implement the following into Router 4?
<Route path="/about" component={About} myprop={myprop} />

This is a bug tracker, not a support system. For usage questions, please use Stack Overflow or Reactiflux. Thanks!

@wayofthefuture Just use the render prop instead of component:
<Route path="/about" render={() => (
  <About whatever="you" want="here"/>
)}/>


Fix

Updated the example.ipynb file and the dependencies to include jupyter

In example.ipynb file, the last function average_daily_return throws an error. Would you mind checking the file again?


GPU mode is not available !

Hello oeway
Firstly, thanks for sharing your pytorch version code of deformable convolution.
When I tried to port your code to another code which uses CUDA mode, it gives me an error saying like below.
'Type torch.cuda.FloatTensor doesn't implement stateless method range'
However, when I change it to CPU mode, there is no error.
It seems like 'torch.range' does not fit on GPU mode in torch. Then what should be the solution?
Thanks in advance

hi @shwoo93 ,  the library meant to work with GPU/cuda and cpu, in https://github.com/oeway/pytorch-deform-conv/blob/master/scaled_mnist.py  you can see we use it in cuda mode, and when I test it, I use cuda as well, I am sure it will work with GPU.
Plus, I couldn't find torch.range in my code, perhaps it from your own code?

@oeway Thanks for reply.
Actually in the deform_conv.py file there is a function called "th_batch_map_coordinates" which uses torch.range.
Anyway, you mean that there is no problem in usage of it and also did not the error occured in torch.range?

hi, that's right, there is indeed a torch.range:
    idx = th_repeat(torch.range(0, batch_size-1), n_coords).long()
    idx = Variable(idx, requires_grad=False)
    if input.is_cuda:
        idx = idx.cuda()

however, if you read the code, you will found that my torch.range is actually working in cpu mode, and after it may convert to cuda if the input is in cuda mode. So it still doesn't mean it caused by torch.range.
Come back to your question, yes, we have no problem when running in cuda mode.


Watch mode does not work on M1 Macs

Since I switched to an M1 Mac, the watch mode triggered with command line parameter -w does not work anymore.
I've installed an ARM-64bit build of the Java 17 OpenJDK from Azul on my Mac running macOS Big Sur.
When I execute rmf-codegen generate -w ... following exception is thrown:

io.reactivex.rxjava3.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling

I am assuming the JDK I'm using is closer to Android than to Java Desktop and so this applies (from the link above):

On desktop Java, this latter handler does nothing on an ExecutorService backed Scheduler and the application can keep running. However, Android is more strict and terminates the application in such uncaught exception cases.

Would be nice the watcher mode could also be supported for ARM-powered machines.

Updated the directory watcher library which now references an Apple Silicon compatible JNA version


chore(main): release 1.10.0

:robot: I have created a release beep boop
1.10.0 (2024-08-28)
Features

utiliza o componente Avatar do MUI para o ícone do usuário (81d8e6f)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.10.0
:sunflower:


some fixes

There are three changes:

bug fix with vm crash when different threads try to update same metric
bug fix with correct priv dir discovery
'tick' parameter to meter

Thank you very much for your contribution. Apologies for it taking this long to merge. Thanks!!


The Asset  Builder

Expected Behavior
Separate command line app to process and build meta JSON file and organize asset data.
Allow the Data Scientist to create a 'ini/config' file with basic information about the asset, such as in the following format:
name = Humpback Whale Identification
author = Kaggle
license = CC0: Public Domain
copyrightHolder = Kaggle
language = en
tags = whale, kaggle, oceanography, classification

# if the files are saved on the local disk, and need to be copied to S3
[remote s3]
link = https://s3.eu-central-1.amazonaws.com/trilobite
username=xxx
password=xxx

[description]
This training data contains thousands of images of humpback whale flukes. Individual whales have been identified by researchers and given an Id. The challenge is to predict the whale Id of images in the test set. What makes this such a challenge is that there are only a few examples for each of 3,000+ whale Ids.

[content csv]
type = csv
link = https://s3.eu-central-1.amazonaws.com/trilobite/Humpback_identification/full/train.csv

[content zip]
type = zip
link = https://s3.eu-central-1.amazonaws.com/trilobite/Humpback_identification/full/train.zip

[sample]
name = Sample of Asset Data
link = https://s3.eu-central-1.amazonaws.com/trilobite/Humpback_identification/sample/sample.zip

[discover banner]
name = Discovery Banner
link = https://s3.eu-central-1.amazonaws.com/trilobite/Humpback_identification/discover/cover.jpg

[discover data]
name = Discovery Data
link = https://s3.eu-central-1.amazonaws.com/trilobite/Humpback_identification/discover/discover.json

The asset builder would then do the following:

Process this ini/config file.
The link values could be a local path, and the user provides a S3 destination to copy the data too.
Apply defaults to create a meta JSON file.
Validate the data is accessible in the definition, or copy the files to a provided S3 folder.
validate the JSON metadata.

For this to work I'm assuming that it easier to create a ini/config file than a fully formatted and complaint JSON file.
Would this be helpfully for a Data Scientist to use?
We would need to move this to a new repo as this it slightly out of scope from squid-py, except for the JSON validation.

This is no longer needed, as the ListingData provides a dict which creates the metadata


Track view counts on live API

It should connect to sockety to grab view counts for each current live stream
Checking with @tiger5226 to see if this is possible without actually making the connection count as a viewer

plan is to proxy calls to live API to sockety's API


ValueError: Shapes (1, ?, ?, 100) and () are incompatible

No description provided.

Hi, I ran into the same issue. Have you solved this?
Thanks.

Hi,
Actually, I was working on another code which is SQuaD 2.0 and since that used bi-att-flow I posted here as well. I solved it by using Ubuntu instead of Windows to run the code. The tensorflow version required was 0.12.1 for Squad2 which is available only in ubuntu.


If schema database is manually deleted, reset internal state for schema generator

Description
Describe your changes here.
Release note
Bugfix - Deleting the schema database reset the starting component ID
Primary reviewers
@m-samiec @BenNaccarato

What's the UNR ticket?

Please fill the Description to be more descriptive.

No ticket. Just did it quickly since it was getting annoying to have to restart my editor. Should I make one?

Yep create a ticket please.


[bug]Image.prefetch

Environment
OS:  macOS High Sierra 10.13.2
Node:  9.2.1
Yarn:  1.3.2
npm:  5.6.0
Watchman:  4.9.0
Xcode:  Xcode 9.2 Build version 9C40b
Android Studio:  3.0 AI-171.4443003
Packages: (wanted => installed)
react: 16.2.0 => 16.2.0
react-native: 0.52.0 => 0.52.0
Steps to Reproduce
    Image.prefetch("https://github.com").then(() => {
            console.log("success")
        }, () => {
            console.log("fail")
        })

Expected Behavior
console should printed fail.
Actual Behavior
Console printed success

Upload an invalid image url in the android simulator, still executing a successful callback.ios simulator is no problem。

componentDidMount(){
  Image.prefetch(this.props.uri).then(this.onLoad,this.onError)
}

works like a charm on both platforms with RN 0.54

Maybe try creating https://snack.expo.io/ to reproduce this?

Environment:
OS: macOS High Sierra 10.13.2
Node: 9.2.1
Yarn: 1.3.2
npm: 5.6.0
Watchman: 4.9.0
Xcode: Xcode 9.2 Build version 9C40b
Android Studio: 3.0 AI-171.4443003
Packages: (wanted => installed)
react: ^16.3.0-alpha.1 => 16.3.0-alpha.2
react-native: 0.54.2 => 0.54.2
 componentDidMount() {
        Image.prefetch("https://github.com").then(()=>{
            console.log("success");
        },()=>{
            console.log("fail")
        })
    }

Still having problems,when url is not a image,fail callback should invoke.

I'm not sure if failing here is the right approach. This is, after all, prefetching whatever URL you provide. If the network request succeeds and the API is able to cache the response, a success is valid.
I'd argue it's not up to the implementation of this API to ensure the URL being passed to this method is an image.


k3s master with static pod etcd as datastore

Does a k3s master can be bring up with static pod etcd as datastore ?
By placing a etcd's manifest file in /path/to/staticpod/manifest/, I am executing below cmd. But master is not coming up.
./install.sh server --kubelet-arg="pod-manifest-path=/path/to/staticpod/manifest/ \
  --datastore-endpoint="https://<host_ip>:2379"

I looked into embedded etcd feature using --cluter-init option, which doesn't create static pod for etcd. I am looking for a cluster setup with db as static pod to k3s master.

You might look at RKE2 - it reuses much of the k3s core, but moves etcd, apiserver, into static pods. The k3s design requires the datastore to be available before the apiserver and kubelet start, so it cannot be used to host core infrastructure as static pods.
https://github.com/rancher/rke2/
Note that it's still very much a work in progress; we're hoping for an initial GA release soon.

This is what RKE2 does, and RKE2 is now GA.


adding ability to modify discord gateway intents

I needed intents that weren't being specified in the addon, so I added the gateway intents. Now one can simply:
func _ready() -> void:
discord_bot.token = TOKEN
discord_bot.intents = DiscordIntents.ALL_MESSAGES_TYPING
discord_bot.bot_ready.connect(_on_discord_bot_ready)
discord_bot.message_recieved.connect(_on_discord_bot_message_received)

This looks really good!


NDRS-512: Test block proposal and finalization in era supervisor.

https://casperlabs.atlassian.net/browse/NDRS-512

I'm not sure about it myself.
Do you think the era supervisor logic is just too entangled with the other components to have unit tests at all? Maybe we should only have integration tests like these?

Merging this for now; we can always remove it if it gets superseded by an integration test.

bors r+


[dvsim] migrate testplanner into dvsim codebase

This PR does a few things to consolidate all dvsim related items:

Moves dvsim.py to dvsim/dvsim.py
Moves testplanner.py to dvsim/testplanner.py
Moves testplanner/ to dvsim/testplanner/

This way, we get one consolidated source for everything dvsim related, and is easier to create a package and otherwise use externally (ibex/icache).

CI failed as build_docs.py also uses it

File "util/build_docs.py", line 31, in
import testplanner.testplan_utils as testplan_utils
ImportError: No module named 'testplanner'


bug

i installed pyexecjs but this error appear ModuleNotFoundError: No module named 'pyexecjs'

please help

Man thats not a bug tho thats just a problem with your python libs installer .

Man thats not a bug tho thats just a problem with your python libs installer .

help me how to fix


NPC Combat Def

Move the values in NpcCombatDef to NpcDef to keep everything in one place and make it easier when we pack these values into the cache and decode them on startup

With the recent system change to how npc combat defs are defined, this idea should be scrapped


Is it possible to run Botkube without ClusterRole and ClusterRoleBinding?

I can not create ClusterrRole and ClusteRoleBinding in my company cluster.
So, I am trying to run Botkube (latest version) without them using Slack. I am running Botkube in the same pod's namespace I want to monitor.
It connects to Slack (it shows the Botkube message in the channel) but It seems that Botkube does not monitor the pod. It also shows many logs errors. My yml is the following:
# Configmap
apiVersion: v1
kind: ConfigMap
metadata:
  name: botkube-configmap
  namespace: test-botkube-app-to-monitor
  labels:
    app: botkube
data:
  resource_config.yaml: |
    ## Resources you want to watch
    resources:
      - name: v1/pods             # Name of the resource. Resource name must be in group/version/resource (G/V/R) format
                                  # resource name should be plural (e.g apps/v1/deployments, v1/pods)
        namespaces:               # List of namespaces, "all" will watch all the namespaces
          include:
            - test-botkube-app-to-monitor
          ignore:                 # List of namespaces to be ignored (omitempty), used only with include: all, can contain a wildcard (*)
            -                     # example : include [all], ignore [x,y,secret-ns-*]
        events:                   # List of lifecycle events you want to receive, e.g create, update, delete, error OR all
          - error
      - name: v1/services
        namespaces:
          include:
            - test-botkube-app-to-monitor
          ignore:
            -
        events:
          - error
      - name: apps/v1/deployments
        namespaces:
          include:
            - test-botkube-app-to-monitor
          ignore:
            -
        events:
          - error
        updateSetting:
          includeDiff: true
          fields:
            - spec.template.spec.containers[*].image
            - status.availableReplicas
      - name: apps/v1/statefulsets
        namespaces:
          include:
            - test-botkube-app-to-monitor
          ignore:
            -
        events:
          - error
        updateSetting:
          includeDiff: true
          fields:
            - spec.template.spec.containers[*].image
            - status.readyReplicas
      - name: networking.k8s.io/v1beta1/ingresses
        namespaces:
          include:
            - test-botkube-app-to-monitor
          ignore:
            -
        events:
          - error
      - name: v1/configmaps
        namespaces:
          include:
            #- all
            - test-botkube-app-to-monitor
          ignore:
            -
        events:
          - error
      - name: apps/v1/daemonsets
        namespaces:
          include:
            - test-botkube-app-to-monitor
          ignore:
            -
        events:
          - error
        updateSetting:
          includeDiff: true
          fields:
            - spec.template.spec.containers[*].image
            - status.numberReady

    # Check true if you want to receive recommendations
    # about the best practices for the created resource
    recommendations: true

    # Setting to support multiple clusters
    settings:
      # Cluster name to differentiate incoming messages
      clustername: kubernetes-dev
      # Kubectl executor configs
      kubectl:
        # Set true to enable kubectl commands execution
        enabled: false
        commands:
          # method which are allowed
          verbs: ["api-resources", "api-versions", "cluster-info", "describe", "diff", "explain", "get", "logs", "top", "auth"]
          # resource configuration which is allowed
          resources: ["deployments", "pods" , "namespaces", "daemonsets", "statefulsets", "storageclasses", "nodes"]
        # set Namespace to execute botkube kubectl commands by default
        defaultNamespace: default
        # Set true to enable commands execution from configured channel only
        restrictAccess: false
      # Set true to enable config watcher
      configwatcher: true
      # Set false to disable upgrade notification
      upgradeNotifier: true
---
# secret
apiVersion: v1
kind: Secret
metadata:
  name: botkube-communication-secret
  namespace: test-botkube-app-to-monitor
  labels:
    app: botkube
type: Opaque
stringData:
  comm_config.yaml: |
    # Communication settings
    communications:
      # Settings for Slack
      slack:
        enabled: true
        channel: 'my-slack-channel'
        token: 'MY_TOKEN'
        notiftype: long                            # Change notification type short/long you want to receive. notiftype is optional and Default notification type is short (if not specified)

      # Settings for Mattermost
      mattermost:
        enabled: false
        url: 'MATTERMOST_SERVER_URL'                # URL where Mattermost is running. e.g https://example.com:9243
        token: 'MATTERMOST_TOKEN'                   # Personal Access token generated by BotKube user
        team: 'MATTERMOST_TEAM'                     # Mattermost Team to configure with BotKube
        channel: 'MATTERMOST_CHANNEL'               # Mattermost Channel for receiving BotKube alerts
        notiftype: short                            # Change notification type short/long you want to receive. notiftype is optional and Default notification type is short (if not specified)

      # Settings for Discord
      discord:
        enabled: false
        token: 'DISCORD_TOKEN'                      # BotKube Bot Token
        botid: 'DISCORD_BOT_ID'                     # BotKube Application Client ID
        channel: 'DISCORD_CHANNEL_ID'               # Discord Channel id for receiving BotKube alerts
        notiftype: short                            # Change notification type short/long you want to receive. notiftype is optional and Default notification type is short (if not specified)

      # Settings for ELS
      elasticsearch:
        enabled: false
        awsSigning:
          enabled: false                            # enable awsSigning using IAM for Elastisearch hosted on AWS, if true make sure AWS environment variables are set. Refer https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
          awsRegion: 'us-east-1'                    # AWS region where Elasticsearch is deployed
          roleArn: ''                               # AWS IAM Role arn to assume for credentials, use this only if you dont want to use the EC2 instance role or not running on AWS instance
        server: 'ELASTICSEARCH_ADDRESS'             # e.g https://example.com:9243
        username: 'ELASTICSEARCH_USERNAME'          # Basic Auth
        password: 'ELASTICSEARCH_PASSWORD'
        # ELS index settings
        index:
          name: botkube
          type: botkube-event
          shards: 1
          replicas: 0

      # Settings for MS Teams
      teams:
        enabled: false
        appID: 'APPLICATION_ID'
        appPassword: 'APPLICATION_PASSWORD'
        notiftype: short
        port: 3978

      # Settings for Webhook
      webhook:
        enabled: false
        url: 'WEBHOOK_URL'                          # e.g https://example.com:80
---
# serviceaccount
apiVersion: v1
kind: ServiceAccount
metadata:
  name: botkube-sa
  namespace: test-botkube-app-to-monitor
  labels:
    app: botkube
---
# deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: botkube
  namespace: test-botkube-app-to-monitor
  labels:
    component: controller
    app: botkube
spec:
  replicas: 1
  selector:
    matchLabels:
      component: controller
      app: botkube
  template:
    metadata:
      labels:
        component: controller
        app: botkube
    spec:
      serviceAccountName: botkube-sa
      containers:
        - name: botkube
          image: "infracloudio/botkube"
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: config-volume
              mountPath: "/config"
          env:
            - name: CONFIG_PATH
              value: "/config/"
            # set one of the log levels- info, warn, debug, error, fatal, panic
            - name: LOG_LEVEL
              value: "info"
            # set BotKube release version
            - name: BOTKUBE_VERSION
              value: v0.12.3
          resources:
            limits:
              memory: 1024Mi
              cpu: 1024m
      volumes:
        - name: config-volume
          projected:
            sources:
            - configMap:
                name: botkube-configmap
            - secret:
                name: botkube-communication-secret
      # run as non privileged user
      securityContext:
        runAsUser: 101
        runAsGroup: 101

Duplicate of: https://github.com/infracloudio/botkube/issues/227. Hence closing


refactor(completion): improve ins_compl_build_pum

current time complexity is O(n^2). I guess garray is not used here to save memory and avoid efficiency is caused by heap memory allocation. A simple way is to add an extra pointer as a single linked list to store the matching compl_T, and traverse this single linked list to generate compl_match_array. The time complexity is O(n x m). The worst case is m=n, but we can still get a improvement. Because the if condition does not need to be run at one time. This should be a good solution for now. Later we may be able to complete it in O(lgn) time. But this requires more reconstruction.

yes :) done

thanks