Add Rumble Manager and Demo

Supercedes #250 - previous Godot 3 era implementation.
Makes it possible to add rumble to standard functions like  #191 suggests (adds a couple)

GDLint failure is due to static variables not yet being implemented ( https://github.com/Scony/godot-gdscript-toolkit/issues/242 )

FYI - I didn't intend to change anything in assets or hands - godot just forced that on me.

Yeah, for the time being you want to commit only the stuff you touch. When
4.2 comes out in another week or so, we'll let it "upgrade" everything...
after trying to get as much stuff merged as possible because it will cause
merge-hell.
On Mon, Oct 30, 2023, 8:23 PM Sam Sarette @.***> wrote:

FYI - I didn't intend to change anything in assets or hands - godot just
forced that on me.
—
Reply to this email directly, view it on GitHub
https://github.com/GodotVR/godot-xr-tools/pull/557#issuecomment-1786246852,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAOHAG66KEUYSAOIA26XNTDYCBAIHAVCNFSM6AAAAAA6W2RTPSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBWGI2DMOBVGI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Okay, fixed the extraneous changes, pre-squashed and rebased

Only thing I can see wanting to update is putting Rumble Manager's "magnitude_scale" into User Settings as "Rumble Strength Scale" - thoughts?

Going to add doc comments and deal with @Malcolmnixon 's suggestions

We cleaned up the documentation, added poke and button rumble examples, added a "hand aware rumbler" helper

I think there's an argument to be made that the rumbler not the rumble events definition should be in charge of defining which hand (or both) gets rumbled.
But this all works and is fun as-is, so I might stop meddling until after a review from Bastion

I was able to test out the gdlint fix by installing from git-hash using:
pip3 install git+https://github.com/Scony/godot-gdscript-toolkit.git@ad525088fc3d4633a8577d37da1def8addfb32f4

The result was:
.\rumble\rumble_manager.gd:37: Error: Definition out of order in None (class-definitions-order)
.\rumble\rumble_manager.gd:40: Error: Definition out of order in None (class-definitions-order)
.\rumble\rumble_manager.gd:44: Error: Definition out of order in None (class-definitions-order)
.\rumble\rumble_manager.gd:47: Error: Definition out of order in None (class-definitions-order)
Failure: 4 problems found

The fix is to move the static var to be the last var defined - just before the is_xr_class() function.

I was able to [...]
The fix is to[...]

Yup, just re-ran it myself and fixed that issue.

Rebased on top of the latest changes (and the gdlint update is now live)

I discussed this with @Malcolmnixon in person, but... I'm feeling like the Rumble Event resources shouldn't include the intended hand. We found that in practice, 90% of things want to rumble EVERYTHING or a specific hand (or head (XRCamera?), chest, other XRNode3d)

I discussed this with @Malcolmnixon in person, but... I'm feeling like the Rumble Event resources shouldn't include the intended hand. We found that in practice, 90% of things want to rumble EVERYTHING or a specific hand (or head (XRCamera?), chest, other XRNode3d)

Okay. No more hand enum inside events. Events are just duration/pausable/magnitude. tracker that gets rumbled is just going to be the XRInterface tracker string, which can be grabbed from any XRNode3D (like left/right XRController3D). So if you really want to rumble some special gear, go wild.

Sorry I haven't made the meetings to try and push this feature's inclusion. Let me know if there's any issues needing attention. It's the last feature I feel is missing for my XR usage.

Indeed, long overdue to get his merged and I am sorry it's taking me this long to have an in depth look. That said, more people really need to have a look at this and see if they agree with this approach and leave feedback on this PR. We can't just merge this because we need a rumble approach. People need to understand it.
In broad strokes I really like this approach, the rumble manager is a neat way to combine rumbles from different sources and potentially future proofs this. It is really hard to predict what's in the future here, especially because I don't think the industry knows yet, but we can look at what's out there already in the XR space, both in more advanced haptics on controllers and things like haptic vests.
My current assumptions here is that we're going to start seeing haptic solutions that work akin to spatial audio. Something in game triggers a haptic pulse at a given location, feedback from pulling a trigger, feedback from a stick you're holding hitting surface, feedback from something hitting the body in a certain location, feedback from a pulse happening near the player. This information is sent to the rumble manager, the rumble manager detects which haptic feedback devices are in range of the pulse, and triggers various haptic feedback events on those devices.
That at this point in time our solution is more directly structured around the output, that's a fine starting point. We're not at this future point yet and there is no certainty that is where this will head. But we're at the right base.
Technically there are two things we need to change in the approach IMHO for this to be mergeable.

The singleton implementation is flawed. When you switch between two scenes, there will briefly be two rumble managers, with the outgoing one remaining the singleton breaking the system. We can change this in three ways:
a.  We can make this a true singleton and autoload the script globally. But this causes problems if the user doesn't add the autoload script. That is something that can be tested on the rumbler logic.
b. Don't use a singleton but take the same pattern as with the PlayerBody, e.g. use our lookup helper functions to find the rumble manager attached to the XROrigin3D. But this may not be an option when the rumble originates from the environment.
c. Add the manager to a list when added to the scene tree, remove it from the list when it's removed, have the last added entry in the list be the singleton, keep all data in static variables so they are shared amongst the managers and/or add gates so managers ignore calls when they are not the active singleton.

This is probably inherited from the Godot 3 days but we can't hardcode the actions. This needs to be usable with customised action maps.
a. I would change rumble_on_button.gd to work for a single event. I would thus also rename it to rumble_on_action.gd, have one property for the action name, have one property for the rumble event. Now it can work with any action, including trigger, grip, etc. When you want to trigger rumbles on multiple buttons, you just add multiple child nodes to the controller, one for each action. I would also add an enabled property (default on), so things can be enabled contextually.
b. HAPTIC_ACTION shouldn't be hardcoded. We don't currently have a way to interrogate the loaded action map, I really should make something for that, because ideally we'd get a list of active haptic actions per controller from the system. That will have to wait until we redo the action map as a more global system. For now I think it's enough for this to just be a property on the manager. We can look at enhancing this when multiple haptic actions become a thing in a later update.

I think there is much more we can do in future updates, but I think if we handle the above, we have a solid foundation.

Touch-rumbling appears to have been broken with the last round of changes. What's going on is that the XRToolsPoke node has grown new pressed and released events which are fired when the poke touches and releases an object... however these events only report the object being poked.
The pressed event is wired to the XRToolsRumbler.rumble_hand method; which tries to find the hand associated with the node provided... but the node is the object being poked - and has no relationship to the hand to rumble.
One option would be to add an XRToolsRumbler.rumble_pointer which takes an XRToolsPointerEvent. This is also fired from XRToolsPoke and contains the pointer and target. The rumbler can use the pointer to track down which hand to rumble. This would also allow it to work with laser-pointers if desired.

Addressed issue 1 via solution a.
Issue 2 makes sense, TODO

Indeed - we'll want to address the 'haptic' action name at some point soon.

LGTM, I think this is ready to be merged and it can evolve from there. Sorry it took so long to get it over the line

Nice! Now we're ready to RUMBLE!!!


User with role user can change role to admin

Laravel Version: 5.5
Voyager Version: 1.0
PHP Version: 7
Database Driver & Version: Mysql

Description:
Is simple i hope explain the error, my english is no very good. A new user with role user can change role to admin!!!
Steps To Reproduce:
I create a new user with role user, when login a new user and go to profile->edit profile and change role to admin without problem.

ESPAÑOL
Cree un nuevo usuario con el rol de usuario, luego ingrese con el nuevo usuario, ingrese a la parte de perfil->editar perfil-> cambie el rol a administrador y me dejo hacer el cambio.

Voyager is not a CMS, so we make very few decisions for you with regards to how to restrict access to parts of the site.  This can be fixed by adding a new permission and checking for it (via @can()) in the view.  We may choose to implement this in a future release.

Same Problem. I wished to override according views, but there seems no resources/views/vendor/voyager/user . So I did't know edit where.


Installing SAP HANA 2.0, express edition (Binary Installer Method)

The install of the HANA 2.0 binaries on RHEL 7.2 Developer Edition requires compat-sap-c++, which is not available in any repo unless you purchase a RHEL for SAP HANA Subscription (which doesn't come with the dev edition).  (repo rhel-sap-for-rhel-7-server-rpms is not avail for dev edition).
OSS note 2338763 might have the solution... but it's not released.
HANA 1.0 didn't require compat-sap-c++.
Any plans to work with Red Hat to fix this?
https://access.redhat.com/solutions/2334521
@JCurrie27 @rudi.leibbrandt

Hello: In the Q&A section of the express edition website (http://go.sap.com/developer/topics/sap-hana-express.html), there's a post covering this issue:
https://answers.sap.com/questions/81318/will-it-be-possible-to-install-hana-20-express-on-1.html
Hope this helps,
John Currrie

ok, well I worked it out (using a Scientific Linux rpm) and my RHEL 7.3 is running HANA 2.0 beautifully.
I guess this page needs an update for 2.0:
http://www.sap.com/developer/how-tos/2016/09/hxe-ua-version.html
Thanks John.


Login Page UI

HI Bruno,
While checking out the quokka cms, I came across the login page user is navigated to for the /admin view . Then I got to know it is a part of flask_simplelogin
The UI for login page covered in login.html in flask_simplelogin can be more enhanced.I want to contribute this project.The name and the password in the login form is placed quite left .We can work on that and also in my opinion it would be good if we replace it with username.
I am a beginner and really want to start contributions .I am thankful if you give me opportunity to work on this for the betterment of the project. I am attaching the area of the application  I want to start working.

Hi @saloni027,
I'm sorry we took so long to get back to you. Bruno was passing the baton to me while we both were moving abroad – basically, our personal lives were a mess and we couldn't get back to you in a timely manner. I'm sorry about that.
Anyway, it's October and Hacktoberfest is around. This might be a good opportunity to check on you and see if you're willing to contribute yet : ) I think the changes you proposed (better alignment, changing name by username) are welcome. Just let me know how I can help you get started.


Add 5 icons

Description
Icons addition information

BlackBerry UEM (com.rim.mobilefusion.client) - added from icon request form
BlackBerry Work (com.good.gcs)
FlipKart(com.flipkart.android)
Freecharge(com.freecharge.android)
Zomoto(com.application.zomato)

Type of change
:x: Bug fix (non-breaking change which fixes an issue)
:white_check_mark: Icon addition (non-breaking change that adds/modifies Lawnicons's icons)
:x: General change (non-breaking change that doesn't fit the above categories like copyediting)

@Chefski updated size


Extend tests for updatingByIdArrayMerger

Add tests for arrays that contains some objects with the correct identifier property.

No, not adding support for that.


Update api-management-howto-log-event-hubs.md

Updated to use new loggerContract with loggertype as key

@jijohn14 : Thanks for your contribution to the Azure documentation! The author, @steved0x, has been notified to review your proposed change.

#sign-off


lwgsm-0.6.0 release

gsm_sys.h
line 78 esp instead of gsm
are there any patches to correct these?
I first tested on lwgsm-develop branch and lwgsm_init(lwgsm_callback_func, 1) never returned. all commands response was being received proper on a STM32F103 Board I have.
Then switched to release branch to find that naming convention of files was different.
Could you please explain a bit.
Thanks for the library!!!

0.6.0 is as is, no patches available.
Where does lwgsm fails to return? Where does it stuck when entering debug mode?

In lwgsm-develop branch -
Function trace -
Within - lwgsm_init(lwgsm_callback_func, 1); called from init_thread -
@ line no - 141 of (lwgsm.c) res = lwgsm_reset_with_delay(LWGSM_CFG_RESET_DELAY_DEFAULT, NULL, NULL, blocking);  /* Send reset sequence with delay */
@ line no 2306 of (lwgsm_int.c)
if (res == lwgsmOK && msg->is_blocking) {   /* In case we have blocking request */
    uint32_t time;
    time = lwgsm_sys_sem_wait(&msg->sem, 0);/* Wait forever for semaphore */
    if (time == LWGSM_SYS_TIMEOUT) {        /* If semaphore was not accessed within given time */
        res = lwgsmTIMEOUT;                 /* Semaphore not released in time */
    } else {
        res = msg->res;                     /* Set response status from message response */
    }

How to print debug log? Do we need to redirect it to printf? As I am not able to verify what happens in the background

By default, if you enable debug feature, it will use printf to redirect stream.
https://docs.majerle.eu/projects/lwgsm/en/latest/api-reference/lwgsm/debug.html

In lwgsm-develop branch -
Function trace -
Within - lwgsm_init(lwgsm_callback_func, 1); called from init_thread -
@ line no - 141 of (lwgsm.c) res = lwgsm_reset_with_delay(LWGSM_CFG_RESET_DELAY_DEFAULT, NULL, NULL, blocking); /* Send reset sequence with delay */
@ line no 2306 of (lwgsm_int.c)
if (res == lwgsmOK && msg->is_blocking) {   /* In case we have blocking request */
    uint32_t time;
    time = lwgsm_sys_sem_wait(&msg->sem, 0);/* Wait forever for semaphore */
    if (time == LWGSM_SYS_TIMEOUT) {        /* If semaphore was not accessed within given time */
        res = lwgsmTIMEOUT;                 /* Semaphore not released in time */
    } else {
        res = msg->res;                     /* Set response status from message response */
    }

How to print debug log? Do we need to redirect it to printf? As I am not able to verify what happens in the background

Hello,I have same problem too. on stm32f103 , i debug my program and i found that interrupt routins of serial doesnt work


Google Drive import section heading is in french

All the app is in english, except the heading "Vous ne pouvez importer qu'un fichier JSON valide via Google Drive".

Yes I just noticed myself (#264 I think)
On Mon, Feb 20, 2017, 3:55 PM Edvinas Jurgelionis<EMAIL_ADDRESS>wrote:

All the app is in english, except the heading "Vous ne pouvez importer
qu'un fichier JSON valide via Google Drive".
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Fleker/CumulusTV/issues/266, or mute the thread
https://github.com/notifications/unsubscribe-auth/ADI58-HYerJJUjzs7gwkQSTIoGHl7i5nks5ref2qgaJpZM4MGnCD
.


STAC - STAC version should be 0.8.0 (no RC)

stac_version should be 0.8.0 for the release candidate, according to the JSON schema

Also we should test the validator on this once it is in RF - also this issue is in RF

I recommend using the schemas directly a la https://github.com/azavea/pystac/blob/develop/tests/utils.py#L122, stac-validator is currently lagging behind the 0.8 release, although I know folks are putting in effort in it in the near future.


sapp_init never returns when linked against glibc

The following code within sapp_init never returns when linked against glibc:
const char* exts = _sapp.glx.QueryExtensionsString(_sapp.x11.display, _sapp.x11.screen);

It works fine under musl libc.
The main function:
 sapp_desc sokol_main(int argc, char **argv) {
         (void)argv;
         (void)argc;
         return (sapp_desc) {
                 .width = 640,
                 .height = 480,
                 .window_title = "Zany80 v" STR(PROJECT_VERSION),
                 .init_cb = init,
                 .frame_cb = frame,
                 .cleanup_cb = deinit,
                 .event_cb = event,
                 .sample_count = 4,
                 .gl_force_gles2 = false,
                 .fullscreen = true,
                 .alpha = true,
         };
 }

Compilation:
# AUTOGENERATED FILE; DO NOT MODIFY (use `build.py` instead)
CFLAGS+=-DPROJECT_VERSION=0.2.0-13 -DSOKOL_GLCORE33 -D_DEBUG -D_POSIX_C_SOURCE=200809L -Og -Wall -g -pedantic -std=c99
CXXFLAGS+=-DPROJECT_VERSION=0.2.0-13 -DSOKOL_GLCORE33 -D_DEBUG -D_POSIX_C_SOURCE=200809L -Og -Wall -g -pedantic -std=c++11
LDFLAGS+=-lGL -lX11 -ldl -lstdc++ -lm -lXcursor -lXi
INCLUDES+=-Ilib/ -Ilib/cimgui/

build/obj/%.o: %.c $(HEADERS)
        $(CC) $< $(CFLAGS) $(INCLUDES) -c -o $@
build/obj/%.o: %.cpp $(HEADERS)
        $(CXX) $< $(CXXFLAGS) $(INCLUDES) -c -o $@

### TARGET: sokol

sokol_OBJECTS = build/obj/lib/sokol/sokol.o build/obj/lib/sokol/sokol_cpp.o

sokol_HEADERS = lib/sokol/sokol_app.h lib/sokol/sokol_args.h lib/sokol/sokol_audio.h lib/sokol/sokol_fetch.h lib/sokol/sokol_gfx.h lib/sokol/sokol_glue.h lib/sokol/sokol_time.h lib/sokol/util/sokol_debugtext.h lib/sokol/util/sokol_fontstash.h lib/sokol/util/sokol_gfx_imgui.h lib/sokol/util/sokol_gl.h lib/sokol/util/sokol_imgui.h lib/sokol/util/sokol_memtrack.h

### TARGET: Zany80

Zany80: build/Zany80

Zany80_OBJECTS = build/obj/src/XML.o build/obj/src/graphics.o build/obj/src/graphics_legacy.o build/obj/src/license.o build/obj/src/main.o build/obj/src/ring_buffer.o build/obj/src/serial.o build/obj/src/z80.o build/obj/src/zexall.o

Zany80_HEADERS =

build/Zany80: $(Zany80_OBJECTS)  $(TextEditor_OBJECTS) $(cimgui_OBJECTS) $(rapidxml_OBJECTS) $(scas_OBJECTS) $(sokol_OBJECTS) $(stb_OBJECTS) $(z80e_OBJECTS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^

(minified a bit)
#0  0x00007ffff754b49a in pthread_cond_broadcast@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffff7e1002b in _XReply () from /usr/lib64/libX11.so.6
#2  0x00007ffff7e05cd6 in XQueryExtension () from /usr/lib64/libX11.so.6
#3  0x00007ffff7df8d93 in XInitExtension () from /usr/lib64/libX11.so.6
#4  0x00007ffff7673c21 in __glXInitialize () from /usr/lib64/libGLX_mesa.so.0
#5  0x00007ffff766f6e4 in GetGLXPrivScreenConfig () from /usr/lib64/libGLX_mesa.so.0
#6  0x00007ffff766fcae in glXQueryExtensionsString () from /usr/lib64/libGLX_mesa.so.0
#7  0x0000555555620914 in _sapp_glx_init () at lib/sokol/sokol_app.h:7253
#8  0x0000555555628055 in _sapp_linux_run (desc=<optimized out>) at lib/sokol/sokol_app.h:8084

Valgrind shows this:
==22695== Conditional jump or move depends on uninitialised value(s)
==22695==    at 0x56C16AE: pthread_mutex_lock (in /lib64/libpthread-2.31.so)
==22695==    by 0x5598B8B: __glXInitialize (in /usr/lib64/libGLX_mesa.so.0.0.0)
==22695==    by 0x55946E3: GetGLXPrivScreenConfig (in /usr/lib64/libGLX_mesa.so.0.0.0)
==22695==    by 0x5594CAD: glXQueryExtensionsString (in /usr/lib64/libGLX_mesa.so.0.0.0)
==22695==    by 0x1D4913: _sapp_glx_init (sokol_app.h:7253)
==22695==    by 0x1DC054: _sapp_linux_run (sokol_app.h:8084)
==22695==    by 0x1DC4E6: main (sokol_app.h:8129)

EDIT: added main
EDIT 2: add Makefile

... this is almost certainly a bug in my code.

My code seems fine, I double-checked it against the samples.

Hmm weird, I don't do anything special on Linux when building the sokol-samples (e.g. I'm linking against glibc, and against the regular X11 and GL libs). I'm doing my Linux development on an Ubuntu machine (usually with the latest stable version, currently on Ubuntu 20.04, and Intel GPU).
Some questions:

Do you know if it worked before and could be a recent regression?

Do GLFW samples work? The GLX initialization code is (mostly) taken from GLFW, so any problems should show up there too (or if it works if might at least help finding the issue). There are samples here which use GLFW instead of sokol_app.h: https://github.com/floooh/sokol-samples/tree/master/glfw

Do the _sapp.x11.display and _sapp.x11.screen args that are passed into QueryExtensionsString look alright (e.g. are not null)?

...here's the ldd on one of the sokol-samples (cube-sapp in this case) on my Linux laptop, any differences to your DLL versions there?
sapp-linux-vscode-debug ➤ ldd cube-sapp
	linux-vdso.so.1 (0x00007ffc39d99000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fc43f7d3000)
	libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fc43f7c1000)
	libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007fc43f7b4000)
	libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007fc43f72c000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc43f5dd000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc43f5d7000)
	libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007fc43f4de000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc43f4bb000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc43f2c9000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc43f972000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fc43f29f000)
	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fc43f28a000)
	libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fc43f080000)
	libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fc43f076000)
	libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fc43efbe000)
	libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fc43ef8a000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fc43ef84000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fc43ef7c000)
	libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fc43ef60000)

...and the Ubuntu version:
sokol-samples ➤ lsb_release -a                                                                               git:master
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

One difference I can see is libGLX.so.0 vs libGLX_mesa.so.0.0.0, and my /usr/lib directory structure seems to be different, I have /usr/lib and /usr/lib32, but no /usr/lib64.
In /usr/lib64, I have both a libGLX.so.0.0.0 and libGLX_mesa.so.0.0.0 (and some links pointing to one or the other DLL. Both DLLs are different, e.g. libGLX is not a link to libGLX_mesa or vice versa.
Me linking libGLX and you linking libGLX_mesa might be a difference that's worth looking into.

...are any of the X11/GL/GLX DLLs linked with musl so that there's a mix of musl and glibc maybe? Just a shot in the dark though...

No, this is a "pure" glibc system.

ldd:
	linux-vdso.so.1 (0x00007fff2c785000)
	libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007feeed4e1000)
	libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007feeed39c000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007feeed397000)
	libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libstdc++.so.6 (0x00007feeed12b000)
	libm.so.6 => /lib64/libm.so.6 (0x00007feeecfee000)
	libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007feeecfe1000)
	libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007feeecfcd000)
	libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libgcc_s.so.1 (0x00007feeecfb3000)
	libc.so.6 => /lib64/libc.so.6 (0x00007feeecdf9000)
	libGLdispatch.so.0 => /usr/lib64/libGLdispatch.so.0 (0x00007feeecd41000)
	libGLX.so.0 => /usr/lib64/libGLX.so.0 (0x00007feeecd0d000)
	libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007feeecce0000)
	/lib64/ld-linux-x86-64.so.2 (0x00007feeed6ff000)
	libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007feeeccd1000)
	libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007feeeccc9000)
	libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007feeeccb4000)
	libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007feeeccaf000)
	libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007feeecca7000)
	libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007feeecc8b000)

Could it be a result of specifying the libraries out of order to the linker?

The samples linked against GLFW seem fine.

GDB indicates Display is fine when calling QueryExtension...

It did work in the past - but it also failed now without an update. I updated, but it made no difference.
I'll also note that it works in valgrind, it just shows a looot of errors.

@floooh Good news, I found it!
I was missing -pthread from the linking command line :facepalm: Now we know: linker flags must contain -pthread, apparently.

https://pixelhero.dev/working.png :)

I was missing -pthread from the linking command line

It's surprising that this manifests in such a "subtle" error (and doesn't cause linker errors). But good to know!

I have added a small blurb to the sokol_app.h documentation (pthreads was also missing from the list of libraries to link on Linux, I think I missed this because that's a default setting in my build setup for all Linux projects).

It's not -lpthread that is needed, it's -pthtead . it causes _REENTRANT
to be defined iirc.

Oh ok, I totally forgot about this, but it looks like I'm setting this too in my Linux build script, I guess it's one of those things I've just copied from one build script to another without really looking:
https://github.com/floooh/fips/blob/da2596141c853bc62bccdcd8ed7bbc0c313f9c52/cmake-toolchains/linux.cmake#L25-L37
I guess I should add a proper "how to build" section to the sokol_app.h doc section.

...ok I changed the documention in sokol_app.h again:
https://github.com/floooh/sokol/blob/1a58381359cc8f454f4e379d42942da2718be83b/sokol_app.h#L80-L81
I think -pthread is both a linker and compiler option (or rather preprocessor option), at least in gcc, look for "-pthread" here: https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options


Documentation Improvement in face-x readme

Hey @akshitagupta15june
Will you please let me know in detail?

I would like to contribute.

Hi!
You can update the  readme with proper content and remove if any grammatical errors.
Add open source org pictures in which this project participated you can take help from labels.
Improve the contributors section if you have some new ideas you can implement. Just let me know

Hi Akshita, I want to solve this.

Please mention the open source program in which you are participating

Hello @akshitagupta15june I am participating in Script Winter of Code.

Hi akshita I would like to contribute to this issue, a participant from Codepeak

as @khankhushi as commented first so i will assign this issue to her! you can look for other issues

I am looking forward to this issue

Assigning you @UdAyAn123


images: display commons image if image="File:*"

some "image" tags in OSM have only "File:*.jpg" as value. This is the filename on Wikimedia Commons!
display them too.

fixed with 7c2bea2bf98b67bb9d8e0c5348a99ea82db22e60


Pushover Notification Support

Support for Pushover Notifications, it's widely supported in the *arr solutions.
https://pushover.net/api

Added. Just pull and configure.


README needs update for exclude option

What happened:
README file is outdated when it comes to the exclude option. It took me a while to work out what it was as the syft scan wasn't running with the syntax shown in the examples.
What you expected to happen:
Syft scan to run correctly with the exclude option but it didn't run at all.
Steps to reproduce the issue:
Run a command with the suggested options of README for exclude e.g. syft <source> --exclude './out/**/*.json'
Anything else we need to know?:
Seems like = is needed, it would be good to update README to reflect that so correct syntax on the guide for the above would be syft <source> --exclude='./out/**/*.json'
Environment:

Output of syft version: v0.92.0
OS (e.g: cat /etc/os-release or similar):

Hi @NataliaAn, thanks for the report. I've tested this myself on Syft 0.94 as well as 0.92 and I am not able to reproduce any difference in behavior between "--exclude=..." and "--exclude ..."  -- I am not sure if I'm doing something different than you. Here's what I've done:
Two directories, a and b, a containing a few random jars, and b is empty:
tgerla@Timothys-MacBook-Pro-2 syft-2246 % ls -lR
total 0
drwxr-xr-x  4 tgerla  staff  128 Oct 30 12:02 a
drwxr-xr-x  2 tgerla  staff   64 Oct 30 12:02 b

./a:
total 64
-rw-r--r--  1 tgerla  staff  12919 Oct 30 12:02 org.eclipse.osgi.util_3.7.0.v20220427-2144.jar
-rw-r--r--  1 tgerla  staff  12919 Oct 30 12:02 org.eclipse.osgi_3.18.0.v20220516-2155.jar

./b:
total 0

Running syft 4 times with different configurations of --exclude seem to produce the expected results regardless of the =:
tgerla@Timothys-MacBook-Pro-2 syft-2246 % syft --exclude ./a .
 ✔ Indexed file system                                                                                .
 ✔ Cataloged packages              [0 packages]
[0000]  WARN no explicit name and version provided for directory source, deriving artifact ID from the given path (which is not ideal)
No packages discovered
tgerla@Timothys-MacBook-Pro-2 syft-2246 % syft --exclude=./a .
 ✔ Indexed file system                                                                                .
 ✔ Cataloged packages              [0 packages]
[0000]  WARN no explicit name and version provided for directory source, deriving artifact ID from the given path (which is not ideal)
No packages discovered
tgerla@Timothys-MacBook-Pro-2 syft-2246 % syft --exclude ./b .
 ✔ Indexed file system                                                                                .
 ✔ Cataloged packages              [2 packages]
[0000]  WARN no explicit name and version provided for directory source, deriving artifact ID from the given path (which is not ideal)
NAME       VERSION  TYPE
v20220427  2144     java-archive
v20220516  2155     java-archive
tgerla@Timothys-MacBook-Pro-2 syft-2246 % syft --exclude=./b .
 ✔ Indexed file system                                                                                .
 ✔ Cataloged packages              [2 packages]
[0000]  WARN no explicit name and version provided for directory source, deriving artifact ID from the given path (which is not ideal)
NAME       VERSION  TYPE
v20220427  2144     java-archive
v20220516  2155     java-archive

Do you have a way to reproduce this that we can try? Thanks much!

I've figured what was happening. I wasn't splitting it correctly when it had the space on the subprocess.run arguments. It had to be either two separate values '--exclude', path or one consecutive --exclude=path. I'm closing the issue.


[COOK-4187] Add testing harness

Adding test kitchen, Berksfile, Gemfile, and also fixed a bunch of foodcritic warnings.

This has been fixed in 4.x


Be more explicity about WorkerTimeout Exception

Currently the Delayed::WorkerTimeout Exception is confusing. It only considers Delayed::Worker.max_run_time for its message, even though the timeout might have been caused by max_run_time set on the particular job. This has already been described in #794
This PR adjusts the message to give more details about which of the two timeouts caused the error. This

Coverage increased (+0.1%) to 91.233% when pulling 435af121ccab602db707964035714f421f65abb5 on amaierhofer:less_confusing_timeout_error into e3772d4f0c8470d0fcba00c86ca3bc4f5e876830 on collectiveidea:master.

Coverage increased (+0.1%) to 91.233% when pulling 435af121ccab602db707964035714f421f65abb5 on amaierhofer:less_confusing_timeout_error into e3772d4f0c8470d0fcba00c86ca3bc4f5e876830 on collectiveidea:master.

Coverage increased (+0.1%) to 91.233% when pulling 435af121ccab602db707964035714f421f65abb5 on amaierhofer:less_confusing_timeout_error into e3772d4f0c8470d0fcba00c86ca3bc4f5e876830 on collectiveidea:master.

Coverage increased (+0.1%) to 91.233% when pulling 435af121ccab602db707964035714f421f65abb5 on amaierhofer:less_confusing_timeout_error into e3772d4f0c8470d0fcba00c86ca3bc4f5e876830 on collectiveidea:master.

Coverage increased (+0.1%) to 91.233% when pulling 435af121ccab602db707964035714f421f65abb5 on amaierhofer:less_confusing_timeout_error into e3772d4f0c8470d0fcba00c86ca3bc4f5e876830 on collectiveidea:master.


Framerate limited to max 60fps?

I noticed that the framerate of the default app was quite low and felt a bit sluggish when dragging. Turns out that it defaults to 30fps. So I added the ability to change the Unity Application.targetFramerate with a slider from the SwiftUI side.
https://youtube.com/shorts/rsAl2FueVTE?si=P9tYVK97qyk93sgA
When building the App on an iPhone with Pro Motion (supporting up to 120fps), I found that the App seems to max out at 60fps. (Tested using the Graphy plugin)
I've verified with other Unity apps that 120fps is reported with Graphy.
Is this an enforced limit with embedding Unity as a Library, or do you know if > 60fps is possible?

I doubt it has anything to do with UAAL. If the docs are accurate, then on iOS and Android...

content is rendered at fixed 30 fps to conserve battery power, independent of the native refresh rate of the display

The assumption is that mobile devices have poor battery and thermals, so 30fps is the sensible default for something as computationally intense as a game engine. To push the fps up to the iOS native refresh rate of 60Hz you are correct to use Application.targetFramerate.
The same docs say that to go even higher you need to explicitly opt-in to ProMotion. There should be an "Enable ProMotion Support" option in the player settings. Have you turned it on? I think this player setting and the Application.targetFrameRate are the only things you can use to modulate the fps on iOS. People also try to mess around with the QualitySettings.vSyncCount, but the docs say that...

Mobile platforms always ignore QualitySettings.vSyncCount

Obviously the device itself needs to support ProMotion and be in a battery/thermal state where it is willing to let the app utilize it.

Yes, I had enabled ProMotion support in player settings... (I believe this just sets the CADisableMinimumFrameDuration+CADisableMinimumFrameDurationOnPhone booleans in the plist), but even with that enabled, the example App runs at 60fps. In another project I have ProMotion enabled (with non-SwiftUI<>Unity setup), this works (hits 120fps). Not a massive problem for now, but I was just wanting to benchmark performance of embedding Unity into the SwiftUI side of things :)

I think the CADisableMinimumFrameDuration and CADisableMinimumFrameDurationOnPhone booleans are only being applied to the Unity-iPhone target's info plist, so we need to apply it to the UnitySwiftUI target and then it will work. Add them manually or use the PostProcessBuild.cs script.

Got that working, amazing, thanks 🙏 Took me a while to figure out where to add this, because there wasn't a plist file for the UnitySwiftUI project! :) In the end, I went to Targets > UnitySwiftUI > Info, and added the CADisableMinimumFrameDurationOnPhone key there... which then created a separate Info.plist file in the UnitySwiftUI Xcode project - thanks again!


[Bug] Can't open helper settings window.

I'm unable to open the settings window for this module. Every time I click on the Open Helpers Settings button, it doesn't open and I get the following error in the console.

I'm using

DnD5e Helpers v4.0.0
DnD5e System v1.5.7
Foundry v9.249
Along with 105 other active modules...

Very strange, it seems like the bug is getting tracked down, so I'll close this issue. Do not hesitate to re-open if it is found that Helpers is doing something unexpected ❤ . Thanks for the initial report.


Feat: Support responsive variants

Would be great to support responsive variants, something like:
<ImageParentSkeletonComponent color='md:green lg:red' />

or
<ImageParentSkeletonComponent mdColor='green' lgColor='red' />

Interesting case. Let me think about it and come with a proposal later today

Sure, cause let's imagine you want a button's text to be flexible, sometimes you want it to be 2rem on mobile other times 1rem. There's no way to do that at the moment unless you pass conditional prop values using JavaScript.

@vinpac Any updates on this?

Hey @AbdallahAbis . Still thinking about this. The idea behind windstitch is to provide a way to control when classnames are applied to a component based solely on variants. Adding breakpoints would create a new layer of consideration when applying a classname.
Maybe we can abstract that from the main package into its own package. Like:
import { responsive } from '@windstich/responsive'

const variant = responsive({
  xs: 0,
  sm: 480,
  md: 700,
  lg: 1000
})

const Button = w.button('', {
  variants: {
    color: responsive({
      green: 'bg-green-500',
      red: 'bg-red-500'
    })
  }
})

function Home () {
  return <>
     <Button color="green" />
     <Button color={{ xs: 'green', sm: 'green', lg: 'red' }} />
  </>
}

The responsive function could look like this:
function responsive<Breakpoints extends Record<string, number>>(breakpoints: Breakpoints) {
  return function variant<Variants extends Record<string, string>>(variants: Variants) {
    return (value: keyof Variants | Record<keyof Breakpoints, keyof Variants>) => {
      // ... calculate the classnames based on the current breakpoint
    }
  }
}

One challenge here would be to update the classname when window size changes. This would require some watcher running.
What do you think?

Looks great. is Windstitch responsible for calculating and generating styles? thought it only generates classNames and tailwind handles the rest?

No no. Windstich is not responsible for calculating styles. It only applies classnames. The responsiveness on that would require a watcher.
That's my main concern because tailwind also handles responsive styles through their modifiers (e.g. md:bg-gray-500)

I thought that you get the variant classNames and just add the responsive modifier to them:
import { responsive } from '@windstich/responsive'

const variant = responsive({
  xs: 0,
  sm: 480,
  md: 700,
  lg: 1000
})

const Button = w.button('', {
  variants: {
    color: responsive({
      green: 'bg-green-500',
      red: 'bg-red-500'
    })
  }
})

function Home () {
  return <>
     <Button color="green" />
     <Button color={{ xs: 'green', sm: 'green', lg: 'red' }} />
  </>
}

the above will result in:
  <>
     <button className="bg-green-500" />
     <button className="bg-green-500 lg:bg-red-500" />
  </>

Windstitch doesn't have to add custom breakpoints, instead it will just generate classNames and tailwind generated breakpoints and styles will be used?

Hmmm, I see.
And how is the user going to pass those responsive variants to a component?

Hey @AbdallahAbis . Still thinking about this. The idea behind windstitch is to provide a way to control when classnames are applied to a component based solely on variants. Adding breakpoints would create a new layer of consideration when applying a classname.
Maybe we can abstract that from the main package into its own package. Like:
import { responsive } from '@windstich/responsive'

const variant = responsive({
  xs: 0,
  sm: 480,
  md: 700,
  lg: 1000
})

const Button = w.button('', {
  variants: {
    color: responsive({
      green: 'bg-green-500',
      red: 'bg-red-500'
    })
  }
})

function Home () {
  return <>
     <Button color="green" />
     <Button color={{ xs: 'green', sm: 'green', lg: 'red' }} />
  </>
}

The responsive function could look like this:
function responsive<Breakpoints extends Record<string, number>>(breakpoints: Breakpoints) {
  return function variant<Variants extends Record<string, string>>(variants: Variants) {
    return (value: keyof Variants | Record<keyof Breakpoints, keyof Variants>) => {
      // ... calculate the classnames based on the current breakpoint
    }
  }
}

One challenge here would be to update the classname when window size changes. This would require some watcher running.
What do you think?

Hey @vinpac is this the way to handle responsiveness? and is it added in the library already? I am also looking how it would work handling responsiveness

Hey @enyelsequeira . This is still not added to the library. I will work on it as soon as possible. I was working on a conflicting classnames which have just being published as a Pull Request

Hey there @vinpac, have you managed to get anywhere with this? We have an in-house solution very similar to windstitch, and we managed to get responsive variants using more or less the same you mentioned, using window.matchMedia and a watcher subsequently. Which works just fine on client-side, but it doesn't work so well when the page is rendered on the server, as expected. I would also prefer not to create responsive classes for every variant every time, if possible. So, I'm fresh out of ideas. :D
(we don't use tailwind often, though)
The dynamic variants, however, seem to work fine, haven't tested them much, but basically it uses css variables. if the prop is not an object it will use the style attribute to define it, otherwise it will add a style tag just above the component with the media query and the values. I don't see this being useful to windstitch, given it only cares for classnames but just throwing it out there, maybe you can make something with the idea.


This will fix crashing in 1.18.2 with effective tool

Thanks for the PR! I will release the update shortly.


ARROW-16695: [R][Python][C++] Extension types are not supported in joins

This is to resolve ARROW-16695.

@michalursa I'd like to enable joining tables where some of non-key columns are ExtensionTypes. Am I right to assume this should be possible? Naive approach in this PR segfaults.
Trying a similar thing in c++ fails in RadixRecordBatchSorter
(vector_sort.cc) which could be fixed by disabling further checks (VISIT_SORTABLE_PHYSICAL_TYPES).

What I don't fully understand here is why the "non-key field" needs to be included in creating the Encoder? The non-key fields are not used for building up the join values, so why is it important that we support that data type?
(naively, I would assume that for such non-key fields, we only need to be able to "take" the resulting values needed for the result)

With the current changes in this PR, it fails in  RowEncoder::Init, which also would need to be updated to handle ExtensionTypes (delegating to the storage type).
What I don't fully understand here is why the "non-key field" needs to be included in creating the Encoder? The non-key fields are not used for building up the join values, so why is it important that we support that data type? (naively, I would assume that for such non-key fields, we only need to be able to "take" the resulting values needed for the result)

The data on the build side of hash join is stored in a row oriented way, that is why there is a storage transformation that is not simply a Take. Storing hash table rows in a row oriented way is important for performance, especially when the entire hash table does not fit into CPU cache, because there is only an access to contiguous block of memory (potentially just one or a few cache lines next to each other) instead of multiple loads from separate addresses.

Thanks for the explanation @michalursa! That makes a lot of sense!
@westonpace could I ask you or someone in vicinity to this code for review? :)

Thanks for the review @westonpace! I've pushed proposed changes. Shall I merge if CI passes?

Yes, thanks.

Huh, python and C++ on s390x get the physical type instead of extension.

Huh, python and C++ on s390x get the physical type instead of extension.

Probably because we fall back to the basic hash join implementation on big endian machines:
#if ARROW_LITTLE_ENDIAN
    use_swiss_join = (filter == literal(true)) && !schema_mgr->HasDictionaries() &&
                     !schema_mgr->HasLargeBinary();
#else
    use_swiss_join = false;
#endif

Got it! I'll adopt HashJoin as well.

That seems reasonable.  Feel free to merge.  You're basically working on the physical type and saving off the extension type to reattach later?
I think, longer term, we might want to consider doing this at the plan level.  So nodes never have to know about the existence of extension types, and we simply attach them, as needed, in the sink.  Might want to wait until we have a few compute functions for extension types first though so there is a bit more example.

That seems reasonable. Feel free to merge. You're basically working on the physical type and saving off the extension type to reattach later?

Yeah exactly.

I think, longer term, we might want to consider doing this at the plan level. So nodes never have to know about the existence of extension types, and we simply attach them, as needed, in the sink. Might want to wait until we have a few compute functions for extension types first though so there is a bit more example.

Huh, wouldn't there be cases where extensions would be relevant to the kernels? E.g. geographical coordinates in a certain projection (where extension would contain the projection) and calculating haversine distances.


Adding Spark example to Write Pojo classes to Stream

(If this PR fixes a github issue, please add Fixes #<xyz>.)
Fixes #
(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)
Master Issue: #
Motivation
Added the class SensorReading and class ProducerSparkWithPojo  to showcase writing Pojo as Json Object to Pulsar Queue
Modifications
Based on the documentation written example class to write Pojos to Pulsar
This mightbe more real life examples for application than bytes stream
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API: (yes / no)
The schema: (yes / no / don't know)
The default values of configurations: (yes / no)
The wire protocol: (yes / no)
The rest endpoints: (yes / no)
The admin cli options: (yes / no)
Anything that affects deployment: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

run integration tests

run integration tests


minor: extract NoMultipleStatementsPerLineFixer from BracesFixer

Extracted from #4884.

Coverage decreased (-0.06%) to 92.709% when pulling f455372484f5cf6b94d6d052b0c661e68b43391c on julienfalque:split-braces-fixer-extract into b71e51fa2ee0a20462da9bad123743b4c7aa8036 on FriendsOfPHP:master.

why there is no code removed from BracesFixer?

I made some cleanup :)

Now I remember why: some integration tests fail when removing this code. This requires more work from #4884.

looking good, please consider https://github.com/julienfalque/PHP-CS-Fixer/pull/12


FrankenBert prediction endpoint throws internal server error

user_input.text is throwing an error -- Seems like a holdover from a point in which FrankenBert prediction was a post request.  Simple solution is to remove .text.

Changed code in Josh's PR

Yup! Resolved the issue with my pull request. Thanks for bringing this to my attention.


Updated README

Added missing doc to get fable cli working. Or am I missing something?

Thanks you


[Suggestion]Provide a default directory name

OS: All
Build Version:20190211.1
Repro Steps:

Right click one file share --> Select 'Create Directory'.
Check the prompting.

Actual:
Prompt to enter a name for the new directory.
Suggestion:
Provide a default directory name like it is in Azure Storage Explorer.

We're going to follow VS Code's convention of not giving a default name to a new folder.   Also with a default name, the user would never see the placeholder text that provides pretty much the same information.


Support properties in EnumDef

Feature description
This would allow generating more complex enum types, like:
@Serdeable
public enum Status(
    ACTIVE("active")
    IN_PROGRESS("in-progress"),
    DELETED("deleted");

    private final String value;

    public Status(String value) {
        this.value = value;
    }

    @JsonCreator
    public Status statusOf(String value) {
        return switch (value) {
            case "active" -> ACTIVE;
            case "in-progress" -> IN_PROGRESS;
            case "deleted" -> DELETED;
        };
    }

    @JsonValue
    public String getValue() {
        return value;
    }
) {
}

As @elifKurtay pointed out, apart from generating properties, we will also need to support consturctors and storing parameters for them, like in ACTIVE("active").


copy() failed to open stream no such file or directory warning on server

copy() failed to open stream no such file or directory warning on server.
on localhost work perfect
Ubuntu: 16.04 LTS
PHP: PHP 7.1.19-1+ubuntu16.04.1+deb.sury.org+1 (cli)
Server version: Apache/2.4.18 (Ubuntu)
show below image

This error is probably caused because you didn't set the right permissions for some directories
Dump the values of $pathToImage and $pathToOutput. Make sure that the php process has the right permissions to read and write files in those directories.


Using 1Password does not work on demo

Trying the demo at https://webauthn.passwordless.id/demos/basic.html, I found that using 1Password to save my passkey doesn't work. 1P will save the passkey, but the client can't unpack the response to send it to the server.
Here's a demo of what I mean:
https://github.com/passwordless-id/webauthn/assets/17505728/5c9ba7da-119c-4b9c-82a2-db4dfa504966
I found this out by using the webauthn client in my own project and confirmed it in the basic demo. In my project, I saw errors that getPublicKey() didn't exist. I believe that is optional, so it's not too surprising.
Do you have any suggestions on what can be done to support 1Password? I can look at making changes, but I don't know the Webauthn spec that well. I know your project is focused, so you may not want to support these kinds of authenticators at all.
Using both my browser and a remote authenticator (my phone) did work. It's just 1Password and it's weird responses that doesn't.
This the credential created by 1Password:

and the response:

the clientDataJSON:
{
    "type": "webauthn.create",
    "challenge": "5146a02d-2124-4c50-93af-d64a9ff8ce70",
    "origin": "<snip>"
}

Hi,

I saw errors that getPublicKey() didn't exist. I believe that is optional, so it's not too surprising.

Accroding to the specs:

User agents MUST be able to return a non-null value for getPublicKey() when the credential public key has a COSEAlgorithmIdentifier value of:

-7 (ES256), where kty is 2 (with uncompressed points) and crv is 1 (P-256).
-257 (RS256).
-8 (EdDSA), where crv is 6 (Ed25519).

So opening a ticket for 1Password would be more suited, so that they become compliant to the specs.
That said, that 1Password implements providing the public key makes more sense rather than all developers having to work around the lack of this critical convenience function. Lastly, it would bloat this slim library with an additional undesired CBOR dependency.
The specs require it and all major browsers/platforms comply to it (the lagging behind Firefox recently implemented it, see #18) so I see no reason to bloat this lib. That said, I'd of course accept a PR for this feature if the CBOR dependency is loaded dynamically "on demand".


Split sequences on time_signature changes to allow for melody extraction even when multiple time_signatures exist.

Fixed by #500


Create and authorize a service account to run FirestoreAdminClient.exportDocuments.

This is how we are authenticating and calling the FirestoreAdminClient.
import fs from 'fs';
import firebaseAdmin from 'firebase-admin';

const pathToServiceAccountKeyFile = '/path/to/service/account/key.json';

const serviceAccountKeyJSON = fs
  .readFileSync(pathToServiceAccountKeyFile)
  .toString();

const serviceAccountKeyObject = JSON.parse(serviceAccountKeyJSON);

firebaseAdmin.initializeApp({
  credential: firebaseAdmin.credential.cert(serviceAccountKeyObject)
});

const adminClient = new firebaseAdmin.firestore.v1.FirestoreAdminClient({
  keyFilename: pathToServiceAccountKeyFile
});

adminClient
  .exportDocuments({
    name: adminClient.databasePath('firebase-test-project-id', '(default)'),
    outputUriPrefix: 'gs://firebase-test-project-backups'
  })
  .then(response => console.log(response));

This is the response the client receives:
7 PERMISSION_DENIED: The caller does not have permission

  at Object.callErrorFromStatus (node_modules/@grpc/grpc-js/build/src/call.js:30:26)
  at Http2CallStream.call.on (node_modules/@grpc/grpc-js/build/src/client.js:96:33)
  at process.nextTick (node_modules/@grpc/grpc-js/build/src/call-stream.js:75:22)

This is where we generated the service account key.

How, if at all, can we authorize a service account to call FirestoreAdminClient.exportDocuments?

@shaunluttin Thanks for reporting.
If you are using a Firebase Admin Credential that you created via the Firebase Console, you will need to grant additional permissions. Please take a look at the required permissions:
https://firebase.google.com/docs/firestore/manage-data/export-import
I will close this issue for now, but if that doesn't work for you, please comment and we can re-open.


Support updating non-master Julia branches (such as backports-release-1.9)

Fixes #76

I think this is good to go now.
@IanButterworth Would you mind doing another review?

Here's an example of the PR that needs to be made manually: https://github.com/JuliaLang/julia/pull/48105


Provide a mechanism by which users can customize the nix devShell

This allows users to use a file develop.nix to customize the devShell provided by the flake. This is useful if e.g. the user wants to have the haskell-language-server or other developer tools in the shell properly configured (correct ghc versions etc).
Here is an example develop.nix for haskell-language-server:
pkgs: devInputs: devInputs // {
  nativeBuildInputs = with pkgs.haskellPackages;
    [ cabal-install hlint ghcid ormolu implicit-hie haskell-language-server ];
}

I liked the example you gave, any way that may be incorporated into the flake (or be in an additional readme, that part does not really matter)?

Sorry I'm not sure I understand what you are saying here.

I see that—in the nix spirit—all of this is undocumented.

Are you saying that you would like me to document this somehow? I'm not really sure where I would put such documentation.

Are you saying that you would like me to document this somehow?

Exactly, yes.

Sorry I'm not sure I understand what you are saying here.

I'm saying that something really close to what you wrote in the PR description

Here is an example develop.nix for haskell-language-server:
pkgs: devInputs: devInputs // {
  nativeBuildInputs = with pkgs.haskellPackages;
    [ cabal-install hlint ghcid ormolu implicit-hie haskell-language-server ];
}

would be really nice to have as documentation.

I'm not really sure where I would put such documentation.

It's a bit iffy, but that's why I mentioned the extra README (perhaps we could introdce a nix directory, where all of this stuff goes).  Alternatively, I don't see any reasons this could not be the top-level documentation of modifyDevShell itself

I just created a NIX.md with the information from the OP for now.  This also seems like a good place to document bits like https://github.com/xmonad/xmonad/issues/332 should anyone feel motivated to do so


some logs not commented out

These log messages appear in our automatic tests.
I notice you've used commented logs throughout. Would it be useful to you if I switched it over to debug so you can turn them on/off with env vars rather than comments? It's easy to forget to re-comment them, which I assume is why they're here!

Workbook Reader is not really finished yet but I'll merge this...


auto-merge envoyproxy/envoy[main] into tedjpoole/envoy-openssl[main] failed

If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
<EMAIL_ADDRESS>where the issue will be triaged appropriately.
Title: One line description
Description:

What issue is being seen? Describe what should be happening instead of
the bug, for example: Envoy should not crash, the expected value isn't
returned, etc.

Repro steps:

Include sample requests, environment, etc. All data and inputs
required to reproduce the bug.

Note: The Envoy_collect tool
gathers a tarball with debug logs, config and the following admin
endpoints: /stats, /clusters and /server_info. Please note if there are
privacy concerns, sanitize the data prior to sharing the tarball/pasting.

Admin and Stats Output:

Include the admin output for the following endpoints: /stats,
/clusters, /routes, /server_info. For more information, refer to the
admin endpoint documentation.

Note: If there are privacy concerns, sanitize the data prior to
sharing.

Config:

Include the config used to configure Envoy.

Logs:

Include the access logs and the Envoy logs.

Note: If there are privacy concerns, sanitize the data prior to
sharing.

Call Stack:

If the Envoy binary is crashing, a call stack is required.
Please refer to the Bazel Stack trace documentation.

Failed to auto-merge envoyproxy/envoy[main] into tedjpoole/envoy-openssl[main]
From bf65ad3ab24a6c3cb2b60cdb2e043dea6e32c2ac
@envoyproxy/envoy-openssl-sync

Failed to auto-merge envoyproxy/envoy[main] into tedjpoole/envoy-openssl[main]
From bf65ad3ab24a6c3cb2b60cdb2e043dea6e32c2ac
@envoyproxy/envoy-openssl-sync


Idva6 383 mongodb connection

Add Mongo DB Associations document and service
Type of change

New feature

CI: Security warnings found!

CI: Security warnings found!

CI: Security warnings found!

not require

not required


Including basic-sequence inside another component

I am trying to use basic-sequence for a list of images inside my component. When I attempt to click next/previous I get errors like this:
Uncaught TypeError: Cannot read property 'next' of null

I have no problem running this in my app outside of a component, but when I put the exact same code inside a component, it doesn't work.
Example:
<polymer-element name="test-basic" attributes="">
  <template>

    <button onclick="document.querySelector('#sequence').previous()">Previous</button>
    <button onclick="document.querySelector('#sequence').next()">Next</button>
    <basic-sequence id="sequence" effect="reveal" wrapAround="true">

    </basic-sequence>

  </template>

</polymer-element>

Am I missing some setting I need to add to get this working inside of another component?
thanks,
Scott

I've found a solution. The problem was that document.querySelector('#sequence')... wasn't being picked up by the system. I wrote this into the
</polymer-element>

@JanMiksovsky does this seem like the correct way to do this?
thanks,
Scott

Yes, this is basically correct. You can tighten up the code using automatic node finding:
        clickEventPrevious: function() {
          this.$.sequence.previous();
        },
        clickEventNext: function() {
          this.$.sequence.next();
        }

I'd been writing up a response to your question yesterday, but got sidetracked trying to come up with a way to use declarative event mapping to tighten the code even further. I was curious to see if you could write on-click={{$.sequence.previous()}}, and thereby avoid having to write any script at all, but Polymer's event binding syntax turns out to be more limited than that for data binding syntax. The above appears to be as concise as one can get.
As an aside, for simple cases like this element, it's not necessary to wrap the script in an anonymous function.

Thanks for your help with this. I've incorporated it into a component I'm working on:
https://github.com/scottnath/polymer-picasa-album

Nice!
BTW, I just wanted to make sure you were also aware of basic-carousel, which adds a simple pair of buttons for next/previous navigation. It also has keyboard support.
If you have any questions about that, feel free to email me at<EMAIL_ADDRESS>


Fix code scanning alert - Boxed variable is never null

Tracking issue for:

[ ] https://github.com/IBM/data-privacy-toolkit/security/code-scanning/346

Fixed


Discrepancy between multi-string and single-string queries

I'm getting different embeddings from GritLM depending on whether I pass the queries to encode in an array of strings or one at a time. The L2 norm for one of the queries is 0.015 which seems too large. I don't see this behavior in other models such as E5-Mistral.
def run_gritlm_package(queries: List, use_multi_query: bool, instruction: str):
    model = GritLM("GritLM/GritLM-7B", torch_dtype="auto")

    embeds = []

    if use_multi_query:
        embeds = model.encode(queries, instruction=instruction)
    else:
        embeds.append(model.encode(queries[0], instruction=instruction))
        embeds.append(model.encode(queries[1], instruction=instruction))

    return embeds

if __name__ == "__main__":
    queries = [
        "Bitcoin: A Peer-to-Peer Electronic Cash System",
        "Generative Representational Instruction Tuning",
    ]
    instruction = gritlm_instruction(
        "Given a scientific paper title, retrieve the paper's abstract"
    )

    embeds_multi_query = run_gritlm_package(
        queries, use_multi_query=True, instruction=instruction
    )
    embeds_single_query = run_gritlm_package(
        queries, use_multi_query=False, instruction=instruction
    )

    l2_norms = []
    for i in range(len(queries)):
        print(f"Query: {queries[i]}")

        cosine_sim = 1 - cosine(
            np.array(embeds_multi_query[i]), np.array(embeds_single_query[i])
        )
        print(f"Cosine similarity: {cosine_sim}")

        diff = np.array(embeds_multi_query[i]) - np.array(embeds_single_query[i])
        l2_norm = np.linalg.norm(diff)
        print(f"L2 norm of the difference: {l2_norm}")

        l2_norms.append(l2_norm)

        print()

    for l2_norm in l2_norms:
        assert l2_norm < 0.01, f"L2 norm is {l2_norm}"

    print("Done")

Query: Bitcoin: A Peer-to-Peer Electronic Cash System
Cosine similarity: 0.9999613165878483
L2 norm of the difference: 0.008786146529018879

Query: Generative Representational Instruction Tuning
Cosine similarity: 0.9998722076416016
L2 norm of the difference: 0.015983009710907936

Traceback (most recent call last):
  File "/home/pooya/dev/kashkul/main.py", line 148, in <module>
    assert l2_norm < 0.01, f"L2 norm is {l2_norm}"
AssertionError: L2 norm is 0.015983009710907936

This is expected due to the use of bfloat16 which adds some tiny discrepancies
Running your script with model = GritLM("GritLM/GritLM-7B", torch_dtype="float32") produces
Query: Bitcoin: A Peer-to-Peer Electronic Cash System
Cosine similarity: 0.9999999701977411
L2 norm of the difference: 9.290246225646115e-07

Query: Generative Representational Instruction Tuning
Cosine similarity: 0.9999999999999929
L2 norm of the difference: 1.6489245808770647e-06

E5-mistral uses float16 where it also may not be as much of an issue (/ maybe you ran it in float32 when trying)

Ah nice. You are right, setting the dtype to float16 reduces the difference a lot. All good.
Just for my understanding, regardless of dtype, what causes the numerical difference between the two scenarios (i.e. passing array of strings vs. one string at a time)?

I think it is related to how PyTorch does batched matrix multiplications under the hood; I'm pretty sure it is documented somewhere

Thanks for the help!


yuzuPackages.compat-list: unstable-2024-01-08 -> unstable-2024-01-20

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found unstable-2023-12-31 in filename of file in /nix/store/x337f45j1n6pjnd7jjysxvvsaqlh81p2-yuzu-compatibility-list-unstable-2023-12-31

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
yuzuPackages.compat-list
yuzuPackages.early-access
yuzuPackages.mainline

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/x337f45j1n6pjnd7jjysxvvsaqlh81p2-yuzu-compatibility-list-unstable-2023-12-31 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A yuzuPackages.compat-list https://github.com/r-ryantm/nixpkgs/archive/ad5ee60e5ab7eef903956ba596b329a48a728d16.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/ad5ee60e5ab7eef903956ba596b329a48a728d16#yuzuPackages.compat-list

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/x337f45j1n6pjnd7jjysxvvsaqlh81p2-yuzu-compatibility-list-unstable-2023-12-31
ls -la /nix/store/x337f45j1n6pjnd7jjysxvvsaqlh81p2-yuzu-compatibility-list-unstable-2023-12-31/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

yuzuPackages.compat-list
yuzuPackages.early-access
yuzuPackages.mainline

Maintainer pings

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found unstable-2024-01-06 in filename of file in /nix/store/wjs59iyggf8p8li0l65fabnf6x2si0j9-yuzu-compatibility-list-unstable-2024-01-06

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
yuzuPackages.compat-list
yuzuPackages.early-access
yuzuPackages.mainline

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/wjs59iyggf8p8li0l65fabnf6x2si0j9-yuzu-compatibility-list-unstable-2024-01-06 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A yuzuPackages.compat-list https://github.com/r-ryantm/nixpkgs/archive/f7f2a8fd4ba085edce4bca9eb81013784af44195.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/f7f2a8fd4ba085edce4bca9eb81013784af44195#yuzuPackages.compat-list

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wjs59iyggf8p8li0l65fabnf6x2si0j9-yuzu-compatibility-list-unstable-2024-01-06
ls -la /nix/store/wjs59iyggf8p8li0l65fabnf6x2si0j9-yuzu-compatibility-list-unstable-2024-01-06/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

yuzuPackages.compat-list
yuzuPackages.early-access
yuzuPackages.mainline

Maintainer pings

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found unstable-2024-01-20 in filename of file in /nix/store/j1cir1zs2kmxv75rbqwdz45l8gihw6j6-yuzu-compatibility-list-unstable-2024-01-20

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
yuzuPackages.compat-list
yuzuPackages.early-access
yuzuPackages.mainline

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/j1cir1zs2kmxv75rbqwdz45l8gihw6j6-yuzu-compatibility-list-unstable-2024-01-20 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A yuzuPackages.compat-list https://github.com/r-ryantm/nixpkgs/archive/3cbb09c2e70b6f6b275c4bac421872354f120dc2.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/3cbb09c2e70b6f6b275c4bac421872354f120dc2#yuzuPackages.compat-list

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/j1cir1zs2kmxv75rbqwdz45l8gihw6j6-yuzu-compatibility-list-unstable-2024-01-20
ls -la /nix/store/j1cir1zs2kmxv75rbqwdz45l8gihw6j6-yuzu-compatibility-list-unstable-2024-01-20/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings

Merge conflict, please open a new PR.


ERROR: victron:093 BAD_INDICATOR errno=11

hello.
i am trying to make this work and apparently no matter what i do it just doesnt. tried with and without the ground wire connected to the ESP32. i tried to use the RX00 pin and RX02... i saw a couple of comments on this YT video (watch?v=D08sjKWBW7o) mentioning the same problem.
if somebody could please help me with this problem.
[HARDWARE]
-ESP32 with 30pins
-Victron MPPT 75-15
-wires and voltage divider using 1K in series with the TX pin, and a 2K resistor to ground
GND connected to both Victron and ESP32 board. TX pin from Victron is connected to pin 3(RX) of ESP
-ESP32 powered thru USB with a "cigar lighter" type power supply on the solar system.
esphome log screenshot:

updated log after completely re-installing the ESP32 with new API key and code:

my YAML file:
`substitutions:
name: victron-mppt
external_components_source: github://KinDR007/VictronMPPT-ESPHOME@main
esphome:
name: ${name}
friendly_name: esp32-victron
external_components:

source: ${external_components_source}
refresh: 0s

esp32:
board: esp32dev
framework:
type: arduino
logger:
baud_rate: 0
api:
encryption:
key: "REDACTED"
ota:
web_server:
port: 80
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "esp32-test"
password: "44444444"
captive_portal:
uart:
id: uart_0
tx_pin: 1  # Not connected! The communication is read-only
rx_pin: 3  # Connect this this GPIO and GND to the MPPT charger
baud_rate: 19200
rx_buffer_size: 256
victron:
uart_id: uart_0
id: victron0
throttle: 10s
sensor:

platform: victron
victron_id: victron0
max_power_yesterday:
name: "${name} max power yesterday"
max_power_today:
name: "${name} max power today"
yield_total:
name: "${name} yield total"
yield_yesterday:
name: "${name} yield yesterday"
yield_today:
name: "${name} yield today"
panel_voltage:
name: "${name} panel voltage"
panel_power:
name: "${name} panel power"
battery_current:
name: "${name} panel current"
battery_voltage:
name: "${name} battery voltage"
day_number:
name: "${name} day number"
charging_mode_id:
name: "${name} charging mode id"
error_code:
name: "${name} error code"
tracking_mode_id:
name: "${name} tracking mode id"
load_current:
name: "${name} load current"

text_sensor:

platform: victron
victron_id: victron0
charging_mode:
name: "${name} charging mode"
error:
name: "${name} error"
tracking_mode:
name: "${name} tracking mode"
firmware_version:
name: "${name} firmware version"
device_type:
name: "${name} device type"
serial_number:
name: "${name} serial number"

binary_sensor:

platform: victron
victron_id: victron0
load_state:
name: "${name} load state"
relay_state:
name: "${name} relay state"`

board used:
https://i.imgur.com/mNFT1L0.jpeg
here is the special DEBUG firmware LOG:
'INFO Upload took 5.24 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from <IP_ADDRESS> using esphome API
INFO Successfully connected to victron-debug @ <IP_ADDRESS> in 7.216s
INFO Successful handshake with victron-debug @ <IP_ADDRESS> in 0.035s
[13:51:42][I][app:102]: ESPHome version 2023.12.5 compiled on Jan  1 2024, 13:47:46
[13:51:42][C][wifi:573]: WiFi:
[13:51:42][C][wifi:405]:   Local MAC: REDACTED
[13:51:42][C][wifi:410]:   SSID: [redacted]
[13:51:42][C][wifi:411]:   IP Address: <IP_ADDRESS>
[13:51:42][C][wifi:413]:   BSSID: [redacted]
[13:51:42][C][wifi:414]:   Hostname: 'victron-debug'
[13:51:42][C][wifi:416]:   Signal strength: -52 dB ▂▄▆█
[13:51:42][C][wifi:420]:   Channel: 11
[13:51:42][C][wifi:421]:   Subnet: <IP_ADDRESS>
[13:51:42][C][wifi:422]:   Gateway: <IP_ADDRESS>
[13:51:42][C][wifi:423]:   DNS1: <IP_ADDRESS>
[13:51:42][C][wifi:424]:   DNS2: <IP_ADDRESS>
[13:51:42][C][logger:443]: Logger:
[13:51:42][C][logger:444]:   Level: DEBUG
[13:51:42][C][logger:445]:   Log Baud Rate: 115200
[13:51:42][C][logger:447]:   Hardware UART: UART0
[13:51:42][C][uart.idf:139]: UART Bus 1:
[13:51:42][C][uart.idf:140]:   TX Pin: GPIO16
[13:51:42][C][uart.idf:141]:   RX Pin: GPIO17
[13:51:42][C][uart.idf:143]:   RX Buffer Size: 256
[13:51:42][C][uart.idf:145]:   Baud Rate: 19200 baud
[13:51:42][C][uart.idf:146]:   Data Bits: 8
[13:51:42][C][uart.idf:147]:   Parity: NONE
[13:51:42][C][uart.idf:148]:   Stop bits: 1
[13:51:42][C][victron:032]: Victron:
[13:51:42][C][victron:063]:   Firmware Version 'victron-debug firmware version'
[13:51:42][C][victron:065]:   Device Type 'victron-debug device type'
[13:51:42][C][victron:084]:   Model Description 'victron-debug model description'
[13:51:42][C][mdns:115]: mDNS:
[13:51:42][C][mdns:116]:   Hostname: victron-debug
[13:51:42][C][ota:097]: Over-The-Air Updates:
[13:51:42][C][ota:098]:   Address: victron-debug.local:3232
[13:51:42][C][api:139]: API Server:
[13:51:42][C][api:140]:   Address: victron-debug.local:6053
[13:51:42][C][api:144]:   Using noise encryption: NO
[13:51:45][D][api:102]: Accepted <IP_ADDRESS>
[13:51:45][W][api.connection:107]: : Reading failed: BAD_INDICATOR errno=11
[13:51:51][D][api:102]: Accepted <IP_ADDRESS>
[13:51:51][W][api.connection:107]: : Reading failed: BAD_INDICATOR errno=11'

Hi,
first of all try
Check vedirect port with multimeter (between pin and gnd) to select right pin with tx uart on his side.
After select right pin try next change :
UART 2 pins. Labeled as rx2 (GPIO16)and tx2 (GPIO17) without resistor divider! Uart port on esp32 its mostly compatible with 5v
´´´yaml
uart:
id: uart_0
tx_pin: GPIO17
rx_pin: GPIO16
´´´

Thank you very much for the extended reply!
i will try the things you pointed me too and give you a reply of the results in a day or so.

AHH! it is working! following your instructions it is now working!

first i tested the voltage between the two pin of the Victron device. TX and GND is around 4-7V pulsating.
i changed the code to use the 2nd set of RX-TX pin. RX2 as you said GPIO16
i made another wire without the voltage divider

Thank you very much for your help!!

Great ,
You are welcome


TCS34725 and TCS3400 support

Detects the used sensor. so the same code supports both. TCS3400 is used for the Sense Hat V2 while the (discontinued) TCS34725 is used on the AstroPi sense hat for the ISS.
Also included a bug fix for the computation of the red_raw, green_raw, blue_raw and clear_raw values. The original code ony fetched the LSB, not the complete 16-bit value.
See also issue #126

Thanks very much for this - I need to acquire a sense hat with the TCS3400 so that I can test this PR. Hopefully that will be soon

@G3zz Just FYI tested myself on Sense Hat v2 (with TCS3400) and Sense Hat V1 (wthout colour sensor).
For obvious reasons I could not test it on the ISS version with TCS34725.

Thank you. I should have acquired a TCS3400 HAT by next week, I hope - so I should be able to test all three HAT versions next week.
G3zz

I guess the colour sensor also ought to be mentioned on https://github.com/astro-pi/python-sense-hat/blob/master/README.md ?

I had a very hard time getting hold of a TCS3400 HAT in the end, as I kept getting sent one with a TCS34725 version...
I've finally got one and tested your PR and it works well - thank you very much!


Temporary: Reminder to add Assets.

This is finished with the latest round of commits. Now we wait for Supercell to add another 300 assets next month.


Bottom bar has weird bottom margin

I am using version 2.3.1
Layout editor view:

<android.support.design.widget.CoordinatorLayout
            android:id="@+id/coordinator"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".Ui.MainActivity">

                <FrameLayout
                    android:id="@+id/container"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="?attr/actionBarSize"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

                <com.roughike.bottombar.BottomBar
                    android:id="@+id/bottomBar"
                    android:layout_width="match_parent"
                    android:background="@color/bgToolbar"
                    android:layout_height="?attr/actionBarSize"
                    android:layout_gravity="bottom"
                    app:bb_behavior="shifting"
                    app:bb_activeTabColor="@color/bgBranded"
                    app:bb_inActiveTabColor="@color/black"
                    app:bb_titleTextAppearance="@style/BottomTabTextAppearance"
                    app:bb_showShadow="false"
                    app:bb_tabXmlResource="@xml/main_bottom_bar_2" />

</android.support.design.widget.CoordinatorLayout>

Why this is happening? In real device screen this bottom margin is not visible but I have to set my FrameLayout container bottom margin twice (?attr/actionBarSize * 2) in order that my FrameLayout content would be above my bottom bar.

@GediminasZukas why are you setting your height to be the same as the action bar? (this is just something i'm wondering), i'm guessing there most be a problem because is too small, haven't tried nothing less than 50dps, so i can't tell if is because of that, but that can be one thing to look up to.

@yombunker Because "bottom navigation view" height should be the same as toolbar height (56dp in mobile portrait mode) according to material design specifications. I am treating bottom bar as just another toolbar.
However, I tried to change BottomBar height to different values but problem persists.

@GediminasZukas the only thing is that that is a system resource, so it can change depending on the OS, which means you don't control the minimum or maximum size that attribute can have.
But as you said that doesn't seem to be the problem here. Can you upload a screenshot of how it looks like with the "show bounds" developer option turned on.


Add UBT

Add University of Business and Technology, KSA.
university official website URL: https://www.ubt.edu.sa/ IT related course: (MAJOR OF SOFTWARE ENGINEERING) https://www.ubt.edu.sa/CE/SE

@SajjadArifGul Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Question: Tailwind & Opacity

Is there a way to set the opacity on an Annotation?
Like this opacity: '75'

const heroTitleColor = annotate(heroTitle, { type: 'highlight', color: 'yellow', opacity: '75' });

Also is there a way to use custom tailwind colors or padding?
Like this:

const heroTitleColor = annotate(heroTitle, { type: 'highlight', padding: ['py-4', 'px-6'], color: 'custom-yellow-500'});

All annotations are created as SVG and they are assigned a class name rough-annotation So you may change the opacity via CSS:
svg.rough-annotation {
  opacity: 0.5;
}

you could also specify the color using rgba to set the opacity of the color, e.g. rgba(200, 200, 10, 0.5)
As for tailwind, there may be way to set the color using CSS properties perhaps? I am not aware or how tailwind defines colors.
Padding will not be possible because the values are used in computing the geometry, so cannot be set using CSS

Okay so if I had multiple annotations on my page and I only wanted one to have the opacity of 50%. Is there a way I can call that inline on my element?

well you can add the opacity in the color instead. that's the simplest solution. No CSS.
 annotate(heroTitle, { type: 'highlight', color: 'rgba(255, 255, 255, 0.75)' })

In CSS, if you want a spcific annotation you may have to add it to the CSS selector. e.g. Annotation under a div with id 'mydiv' would be
#mydiv svg.rough-annotation {
  opacity: 0.5;
}

Ahh, okay gotcha. Thanks man!


Fix: Recreate account at Exercism and the previous solutions as well

Fix: Recreate account at Exercism and the previous solutions as well
Since my old account got flagged as of October 18, 2024, I recreated the old repos from the old account to this new account.
Unfortunately, my Exercism account is linked to my old GitHub account, I cannot log in via GitHub anymore and there's no email address registered to it (sadly).
I will need to create a new account at Exercism with this account, and recreate those challenges again.

Progress/Updates:

Tried unlinking my old GitHub account to Exercism = not possible
Created a new account using an email address, then linked my new GitHub account to it
Established the public profile link: https://exercism.org/profiles/thenocturnaldevgypsy-io, updated README.md

Recreated the following activities under PHP

[x] https://exercism.org/tracks/php/exercises/hello-world
[x] https://exercism.org/tracks/php/exercises/lasagna
[x] https://exercism.org/tracks/php/exercises/sweethearts
[x] https://exercism.org/tracks/php/exercises/pizza-pi
[x] https://exercism.org/tracks/php/exercises/annalyns-infiltration
[x] https://exercism.org/tracks/php/exercises/windowing-system
[x] https://exercism.org/tracks/php/exercises/language-list
[x] https://exercism.org/tracks/php/exercises/city-office
[x] https://exercism.org/tracks/php/exercises/lucky-numbers
[x] https://exercism.org/tracks/php/exercises/reverse-string
[x] https://exercism.org/tracks/php/exercises/resistor-color

Recreated the following activities under Python

[x] https://exercism.org/tracks/python/exercises/hello-world
[x] https://exercism.org/tracks/python/exercises/guidos-gorgeous-lasagna


move Jamie Klassen to emeritus

Hey, I just made a Pull Request!
Effective February 23, 2024 I am resigning my position at Broadcom and moving on to a new opportunity where I will no longer have the bandwidth to contribute or maintain Backstage. Sad to go, but grateful for past collaborations and looking forward to the future!
@backstage/maintainers the governance doc says
https://github.com/backstage/backstage/blob/05e6b8389703b7795fb25483ae1f3af1fa6a66f6/GOVERNANCE.md?plain=1#L233
is there any other activity that must take place here?
:heavy_check_mark: Checklist

[ ] ~A changeset describing the change and affected packages. (more info)~
[x] Added or updated documentation
[ ] ~Tests for new functionality and regression tests for bug fixes~
[ ] ~Screenshots attached (for UI changes)~
[x] All your commits have a Signed-off-by line in the message. (more info)

Thanks so much for all your help. The plugin wouldn't be the success it is without you! ❤


Add more content to the BG/NBD Notebook

I suggest adding more info about the model, plots, and an example of how to use it in practice. For an application, I show how to estimate the probabilities of being active over time at  customer level.
Feedback is welcome!

📚 Documentation preview 📚: https://pymc-marketing--571.org.readthedocs.build/en/571/

I did nit know! Thanks for the remark! I will remove it!

View entire conversation on ReviewNB

I think the output is not as nice as the data from pymc models ... its a bit too verbose

View entire conversation on ReviewNB

It's important to mention these plots assume no future purchases. I tried applying this concept once and ultimately could not because frequent, reliable customers were being flagged as no longer active. The ParetoNBDModel does not have this issue. This is more about understanding the model though, so we can still include the plots to compare a frequent buyer to an infrequent one to illustrate the no-purchase assumption.

View entire conversation on ReviewNB

Great point! I will add this into the plot. My intention is to tease what yo could do with the model ....

View entire conversation on ReviewNB

My comment was just make some fake customers and hold some more of the values constant. For instance, make T some value for all customers and vary only recency and frequency. Additional, if you hold T and frequency constant and only vary recency in order to deep dive in hold the model is reacting

View entire conversation on ReviewNB

build model followed by printing it (by just including model at the last line of cell) is a nice way to show how the model looks like internally though

View entire conversation on ReviewNB

Might be good to put in separate cells then. Lumping all of the command together might suggest that that is required for the API

View entire conversation on ReviewNB

@wd60622 @ColtAllen I added some changes based on your feedback 🙏 . Let me know what you think :)

Good work! Most of my comments in the ReviewNB are minor styling and clean up remarks, but there is some additional content which may be worth adding.

+1

View entire conversation on ReviewNB

Good point!

View entire conversation on ReviewNB

I re-wrote it so that (hopefully) is clearer now

View entire conversation on ReviewNB

+1

View entire conversation on ReviewNB

Let me skip this for now as i wanna keep this relative simple. I agree is a great point to maybe we could have a prior sensitivity analysis notebook :)

View entire conversation on ReviewNB

Added a section!

View entire conversation on ReviewNB

Thanks, @ColtAllen. I think I addressed all of the comments except the pytensor warnings I am trying to remove. In particular, I added another section on the applications (expected number of purchases). Let me know what you think about this version :)

The sentence as a whole just seems unnecessary. We could probably begin with "The BG/NBD model is. . ." but it's not a dealbreaker in either case.

View entire conversation on ReviewNB

hahah sorry! I thought you were talking about the last paragraph ! Yes!

View entire conversation on ReviewNB

Thanks for the input!

View entire conversation on ReviewNB

Just a style preference, but CLVModels is awkward looking. Maybe change to "CLV models such as BetaGeoModel ..."

View entire conversation on ReviewNB

Thanks! fixed!

View entire conversation on ReviewNB

Thanks!

View entire conversation on ReviewNB

Combining it make the output look confusing ....

View entire conversation on ReviewNB

Agree! Fixed

View entire conversation on ReviewNB

Thanks for pointing out the typos @ColtAllen 🙏


Bug fix compile error due to incorrect method name

Proposed changes
Issue Number: close #xxx
There was one function name change in #14807 (from getPredicates to getPredicate), but #15292 still took the primitive method name which would bring compile error like the following picture.

Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[x] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[x] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.5 seconds
load time: 636 seconds
storage size:<PHONE_NUMBER>4 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221226042042_clickbench_pr_68574.html


Setup coveralls

As done for Zarr recently (https://github.com/alimanfoo/zarr/pull/118), setup coveralls for this repo.

Resolved via #20


How to get access to SQLiteDatabase

DBFlow Version: 3.1.1
Issue Kind (Question):
Description: I need to access to SQLiteDatabase  in order to performing a beginTransactionWithListenerNonExclusive on it, in olders version I could access it with FlowManager.getDatabase(DatabasePush.NAME).getWritableDatabase()
However it returns DataBaseWrapper in this version!!

AndroidDatabase.getDatabase(). i'd suggest you look at the class for more information.

This new way cannot be accessed within a static context


The marginal costs [EUR/kWh] for the heat sources are not shown in the business case

Summary
The marginal costs [EUR/kWh] for the heat sources are not shown in the business case.
Detail
The real reason behind this issue is that I want to know the split between the supply of the two heat sources.
To calculate this I made a simplified LES. It contains just the heat demand, sources and assets.
The heat source list defines marginal costs of 1 EUR/kWh to Customer Ac3 and Ac4 for respectively the Geothermal and the Biogas CHP source. So, Euro/year of Customer Ac3 should show # of kWh produced by the geothermal source. Euro/year of Customer Ac4 should show # of kWh produced by the geothermal source.
The market model defines 1 euro / kWh of heat from stakeholder 1 to stakeholder 1a. This is a check. The income of customer 1a should equal the total out of Customer Ac3 and Ac4.
However, outgoing of stakeholder Customer Ac3 and Customer Ac4 are both 0.
Images

The marginal costs [EUR/kWh] for the heat sources are not shown in the business case.

This is not a bug but a feature! Because marginal costs for heat are very uncertain, the numbers provided here are indicative only. If the user wants to include them as costs for the stakeholders, that should be modelled in the explicitly in the market model.

The real reason behind this issue is that I want to know the split between the supply of the two heat sources

I found another workaround. The geothermal source is both the first source and the bottleneck. I made a second simplified LES with just the geothermal source. This results in deficits which in the other LES are filled with the CHP source.
The difference between heat production in both LES's is the heat produced by the CHP source.

@DorinevanderVlies shall we close this issue and can you make a new one with the feature request for a way to assess the total production of heat sources?

@DorinevanderVlies shall we close this issue and can you make a new one with the feature request for a way to assess the total production of heat sources?

I think we need two issues. One about the marginal costs and one about the production of the heat sources.
Regarding the marginal costs, this issue.
Right now the heat source list contains the cell "Marginal costs [EUR/kWh]". This implies that this cell will be represented in the business case. It currently isn't. So, as long as that input cell is present I think this issue is still relevant.

This implies that this cell will be represented in the business case.

It may suggest that it does (as the other fields are taken into account). How could we clarify that it is not?
I'm not sure if I'm in favour of adding it automatically to the BC (because of the uncertainties involved). At the same time, gas consumption of combi-boilers (part of the marginal costs) needs to be explicitly added to the market model as well...

It currently isn't.

In the documentation this is mentioned:
Marginal costs [EUR/kWh]: the costs of producing one kWh of heat (including fuel costs, variable O&M costs and, possibly, costs for emitting CO2). NOTE: Marginal costs are not taken into account in the business case automatically. Of course, the user can manually use these marginal costs as fixed tariffs for heat production in Market models.

In the documentation this is mentioned:

True point. I missed this completely... I can imagine more people will not read the documentation thoroughly.

I'm not sure if I'm in favour of adding it automatically to the BC (because of the uncertainties involved).

Another option might be to set the default value to 0 and leave it to the user to decide whether it wants to include these marginal costs and what value to give them.

I'm not a huge fan of the current marginal costs input field which is not used in calculations. I would either remove it, or use it in the business case calculation (with default 0 euro/kWh)
Right now it is difficult for a user to implement this calculation themselves. For this issue #1594 needs to be addressed first.

Another option might be to set the default value to 0 and leave it to the user to decide whether it wants to include these marginal costs and what value to give them.

I like this! It is easy to implement and perhaps more intuitive as well.

Including @AlexanderWirtz

Another option might be to set the default value to 0 and leave it to the user to decide whether it wants to include these marginal costs and what value to give them.

I like this! It is easy to implement and perhaps more intuitive as well.

I can set the default marginal costs to zero, but we cannot (easily) use the marginal costs of heat sources. The marginal cost is a measure of price per kWh of heat produced; the way you would do this in the current system is to add an interaction in the market model. In order to set a different price for each heat source you would have to assign each one to a unique stakeholder; far from ideal.
We can adapt the market model system to support the desired behaviour, but I think it will take too long to do this before Wednesday's scheduled deploy, unless this is very important.
The most intuitive short-term solution might be to remove the marginal cost field; I agree with @DorinevanderVlies that it is confusing for it to be shown but not included in the business case.

The most intuitive short-term solution might be to remove the marginal cost field;

Fine by me!