gpio buttons

Hey there,
maybe you can help me out. what could be the best way to use gpio buttons for forward and rewind tracks using the gpio buttons. i read a lot about it but i am not able to do it right now. maybe you can give me a hint.

Hi Ole,
maybe i can help you, i didn't solve it right now but i'm intressted in.
Whats your general problem about gpio?
ole-seelenmeyer<EMAIL_ADDRESS>schrieb am Do. 8. Juni 2017 um
13:12:

Hey there,
maybe you can help me out. what could be the best way to use gpio buttons
for forward and rewind tracks using the gpio buttons. i read a lot about it
but i am not able to do it right now. maybe you can give me a hint.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AbH-mC_JyMV2VcTuEawiKD99EPq4Ys-0ks5sB9cvgaJpZM4Nz63z
.

its mostly a general question. how to control these jukeboxscript with gpio buttons. how to wireing the button is not the problem but how to implent it in the script. or write a second script and put it in the autostart by crontab?

I think a second script should work, if you only use it for forward or
backward your songs. The biggest issue could be to control VLC. I tried to
use the slave mode on VLC so that i can control the instance itself. But in
my setup i have an headless server without Desktop Environment so slave
mode did not work. So i switched to the mpv player.
ole-seelenmeyer<EMAIL_ADDRESS>schrieb am Do. 8. Juni 2017 um
14:29:

its mostly a general question. how to control these jukeboxscript with
gpio buttons. how to wireing the button is not the problem but how to
implent it in the script. or write a second script and put it in the
autostart by crontab?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1#issuecomment-307088536,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AbH-mMcSeZj2qcQcuHlYMOFLqtOQICnFks5sB-k1gaJpZM4Nz63z
.

The way this package works, using VLC, "next" and "previous" tracks are not an option. So the gpio buttons are not needed or doable.
There is another, similar project where the author is using XMMS instead of VLC. The "Howto" is in German, but auto translation might do the trick:
Kindgerechter Audioplayer mit dem Raspberry Pi , Part4
I will eventually close this "issue" because it's not really an issue. But will leave it open for now, because it looks like it will be helpful for others.

ok i just see the Jukebox project at adventures in raspberry pi that also uses vlc controlled by gpio buttons but without rfid support. my intention was to connect both projects. to have the rfid trigger to start a audiobook and have some buttons to skip trough the chapters or adjust volume. its hard for a python newby to understand.
thanx a lot.

In my Solution i used also rfid cards for skiping the Playlist and adjust
the Volume... i will Upload my work and clean up the docs in my fork in the
next days
ole-seelenmeyer<EMAIL_ADDRESS>schrieb am Do. 8. Juni 2017 um
15:43:

ok i just see the Jukebox project at adventures in raspberry pi that also
uses vlc controlled by gpio buttons but without rfid support. my intention
was to connect both projects. to have the rfid trigger to start a audiobook
and have some buttons to skip trough the chapters or adjust volume. its
hard for a python newby to understand.
thanx a lot.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1#issuecomment-307107320,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AbH-mGqSD0M_RW2wMQB5WgXr6MuioReLks5sB_p2gaJpZM4Nz63z
.

Yes I know. That already works fine for me.but I want buttons cause it's
looks better and I can press stop whenever I want. I know my child's :)
Am 08.06.2017 3:49 nachm. schrieb "hankman13"<EMAIL_ADDRESS>
In my Solution i used also rfid cards for skiping the Playlist and adjust
the Volume... i will Upload my work and clean up the docs in my fork in the
next days
ole-seelenmeyer<EMAIL_ADDRESS>schrieb am Do. 8. Juni 2017 um
15:43:

ok i just see the Jukebox project at adventures in raspberry pi that also
uses vlc controlled by gpio buttons but without rfid support. my
intention
was to connect both projects. to have the rfid trigger to start a
audiobook
and have some buttons to skip trough the chapters or adjust volume. its
hard for a python newby to understand.
thanx a lot.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1#
issuecomment-307107320>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AbH-mGqSD0M_
RW2wMQB5WgXr6MuioReLks5sB_p2gaJpZM4Nz63z>
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1#issuecomment-307109179,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ab6NRfdD4-sv_8l2p4pS3YKybnI9Pt2lks5sB_v7gaJpZM4Nz63z
.

ok i just see the Jukebox project at adventures in raspberry pi that also uses vlc controlled by gpio buttons but without rfid support. my intention was to connect both projects. to have the rfid trigger to start a audiobook and have some buttons to skip trough the chapters or adjust volume. its hard for a python newby to understand.
thanx a lot.

Hi Ole, have you somehow come to point to combine these projects?
There are a lot jukebox projects out there. But they are all a bit different.
This is by far the best documented project. Anyhow, I'd also to combine the RFID tags with button controls for volume and next/previous track. I simply don't know how.

hi.
Just built a prototype for my daughter thanks to your work and great instructions.
I also wanted to control vlc with next or pause and so on. Today I found a working solution.
Some little tweaking to the trigger script is needed.
First you need the definition of the command you want. Mapped to a RFID key on my side:
CMDPAUSE="000123456"
Then you need to add this to the other commands:
elif [ "$CARDID" == "$CMDPAUSE" ]
then
# pause VLC media player
echo "pause" | nc.openbsd -w 1 localhost 4212
Then you need to edit the cvlc call on the end of the script:
(cvlc -I rc --rc-host localhost:4212 $PATHDATA/../playlists/$FOLDERNAME.m3u &)
So it starts vlc with the rc interface on localhost with port 4212. So vlc listens on this port for rc commands. The command we set (pause in my example) echoes pause per nc over the rc interface on the localhost port 4212 and quits after 1.
So we can use all other commands to control vlc.
Maybe that helps with the buttons too?!
Maybe so it is possible to add the standard functions to the Webinterface?!
Maybe also a check it the RFID used is already at play an do nothing?
Also it would be better if only musik files will be added to the playlist. Great would be the possibility to jump to a specific track in the playlist ?!
Thank you very much for your work an I hope this info might be useful for somebody..
Cheers
Tullm

@tullm thanks for the hint. This is what I was looking for. Included it in the script:
https://github.com/MiczFlor/RPi-Jukebox-RFID/commit/45616b8161eac3a15639753fc883a619f8ce6132
I have not much time at the moment, but will also look into the other things you listed, like adding it to the web interface.
What do you mean with "Also it would be better if only musik files will be added to the playlist."?
All the best, micz

No problem. You're welcome.
What I mean Ist that there are all files from a folder are put into playlist and are shown in the folder info in the Webinterface. For example are there folder.jpg in my folders. These are also in the playlist.
So I think it would be better  to filter for audio files only to put them into the playlist.
Hope that cleared things up.
Cheers

Is it possible to use buttons now?

@MiczFlor @tullm
Is it possible to use buttons now?

Yes, should work as long as you can link them to the card in the script. I#m not aware of how to script this right.

Thank you. I will start buying this weekend and then we will see. If I get it working (I think so), I will write it here.

@tullm @Geliras I have not made any changes that would support the GPIO buttons. It would be great if you give this a try and report back. Many people contact me about this feature and - after all - this is on github, so it is open to suggestions, forks and different branches.
What I am working is a version where the RPI serves as a wifi access point. That way, the installation could be easier because rather than connecting the RPi to the local Wifi network, it will its own SSID that devices can connect to.

Controls are working with RFID, so it cannot be that hard to trigger the same command when pressing a button. Right? I never used own buttons on RPi yet.

Skipping to the next and previous track on VLC you can see in the bash script
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/scripts/rfid_trigger_play.sh.sample
on line 109:
 echo "next" | nc.openbsd -w 1 localhost 4212
and line 113:
echo "prev" | nc.openbsd -w 1 localhost 4212`
The volume change is done with the command line in the bash script. So the command to trigger with volume buttons should be something like this:
Volume up: amixer sset 'PCM' 5%+
Volume down: amixer sset 'PCM' 5%-
Good luck and please report back :)

Have not recieved my buttons yet, so i cant try. But wouldn't it be possible to just send one this commands when pressing a button:
echo "play" | nc.openbsd -w 1 localhost 4212
echo "pause" | nc.openbsd -w 1 localhost 4212
echo "next" | nc.openbsd -w 1 localhost 4212
echo "prev" | nc.openbsd -w 1 localhost 4212
We could just edit one of these:
https://webcache.googleusercontent.com/search?q=cache:nKcEN5uWTqUJ:https://www.element14.com/community/docs/DOC-78055/l/adding-a-shutdown-button-to-the-raspberry-pi-b+&cd=1&hl=de&ct=clnk&gl=de
https://raspberrypi.stackexchange.com/a/13214

Hi everybody, I just got a mail that somebody has the Jukebox working with the buttons. Here is the thread in German (sorry, will try to incorporate a "howto" in English soon).
Let me know if this is of any help:
https://forum-raspberrypi.de/forum/thread/13144-projekt-jukebox4kids-jukebox-fuer-kinder/?postID=312257#post312257

Hi @MiczFlor, this is a tremendously well-documented and easy to setup project. Thanks man, had this running in no time on my raspberry. What a good job.
Regarding the buttons I really think that this would improve this project even more. Having a similar documentation on how to attach the buttons, resistors, ... would just be perfect (especially for somebody like me with little to none practical tinkering experience) ;)

Sorry, if I capture this topic. It seemed inappropiate for me to open a new topic for such a small problem:
I cannot change the volume over the GPIO Buttons. No problem skipping or pausing. I also switched the assigned buttons, so I'm sure the buttons are working.
When in SSH "amixer sset Speaker 20%+" will do what it is suppose to do, and in the
gpio-buttons.py it is:
"def def_volU():
check_call("amixer sset Speaker 20%+", shell=True)"
(Speaker is my USB-Soundcard)
There is a thing I suspect, as I did something not according to the GPIO-buttons.md manual:
in the "/etc/rc.local" I had to add "python " before "/home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py &"
because otherwise the buttons wouldn't work at all.
Any hints or ideas?
Thanks, Jackwidu

@jackwidu I had the same issue that the GPIO buttons were not doing anything. My solution to the problem was the following. Instead of using PCM 1.5db+/- I used Master 3+ and 3-
I think the change to Master is only needed if you use USB Audio which I am using.
After that everything worked like a charm.
I think this is the code I used. I will verify once I am at home.
def def_volU():
check_call("amixer sset Master 3+", shell=True)
def def_volD():
check_call("amixer sset Master 3-", shell=True)

Hi @jackwidu
This might help to unify your code (webapp, cards, gpio buttons):
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/scripts/playout_controls.sh.sample
I added this in the latest release and you can set the variable for sset in line 35.
Then from PHP, Bash or Python, calling this script should do the same action across all ways of interacting with the box.
You can see it in action already in the webapp:
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/htdocs/index.php
and the bash script:
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/scripts/rfid_trigger_play.sh.sample
If you can test it and update the code for the GPIO buttons:
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/misc/GPIO-button-sample.py
and test if it works, that would be awesome.
All the best, micz

Well..
BEFORE: GPIO were working, except for the volume controll.
the webinterface was working, including volume control, except for starting a folder manually (no reaction at all).
AFTER: GPIO buttons are working, except for the volume controll.
webinterface, neither volume nor starting a folder manually works. But Pause button works after starting via nfc card.
after changing rfid_trigger_play.sh , htdocs/index.php, and rfid_trigger_play.sh creating (changing PCM to Speaker, setting chmod +x)
in ssh this works:  ./playout_controls.sh -c=setvolume -v=80
gpio-buttons-sample.py is changed to
def def_volU():
check_call("./playout_controls.sh -c=setvolume -v=80", shell=True)
if I call python gpio-buttons-sample.py I can change volume via the gpio-buttons.
Any ideas? I am not even sure, if this stil is my personal error and your change works perfectly for others.
Jakob

Hi @jackwidu
I read your post a few times and am not quite sure what works and what doesn't work now :)
> after changing rfid_trigger_play.sh , htdocs/index.php,
> and rfid_trigger_play.sh creating (changing PCM to Speaker, setting chmod +x)

This is of course necessary. And for a fresh install it is documented in CONFIGURE.md.
You say that it works on the command line, like ./playout_controls.sh -c=setvolume -v=80
but does it also work for the web interface? If not, have you made sure the settings for the webapp are correct?
sudo chown -R pi:www-data /home/pi/RPi-Jukebox-RFID/shared
sudo chmod -R 775 /home/pi/RPi-Jukebox-RFID/shared

From the sound of your mail, it seems that you have been updating your system rather than installed from scratch. And you are right, there were a couple of changes that might affect the system.
Please tell me in short, after your changes: what does not work?
thanks

Sorry, that my description remained unclear.
It's true, for the reason that 95% work perfectly I did an update and not a clear installation.
Things that are not working now (also after setting chmod as proposed by you):
Volumecontroll via GPIO after starting a file via nfc-card (play/pause, next Button work). Same in the webinterface. In the webinterface I also cannot start any file, I can only use the function play, pause, next track, reboot, reload, shutdown and "last Chip ID".
Interestingly, if I call the GPIO file directly in SSH with "python /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py" I CAN controll the volume of a playing file via the buttons (though not the play-pause-Button which otherwise works!?). Therefore I think, it might have to something with the way, this file is called in the /etc/rc.local. There it is: "python /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py&" (next and last line "exit 0").
That doesn't make any sense to me :-(
Thank you so much!

It looks to me as if the GPIO script is not running after boot. Why that would be the case, I don't know. And I still don't have a GPIO control running myself. Right now I am working on an update for stretch and will also set up a GPIO Pi for testing.
What I would do: reinstall from scratch.
To make this easier, you can take a look at the helperscripts to create a backup of the shortcuts installed on your machine:
https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/master/scripts/helperscripts

The GPIO Script is working, as the other buttons (play/pause, next track) do their job nicely, but I think you're right and I should do a reinstall. Thanks for your effort!

Hi @jackwidu,
I have to give @keinkurt a nudge, because I have no experience with the MRFC522 reader. Did you get in touch with him?
The keinkurt repo is quite a few commits behind this repo, could that be the problem?

Do you have any idea about not being able to start any file via the webinterface?
The link "http://<IP_ADDRESS>/index.php?play=/home/pi/RPi-Jukebox-RFID/shared/audiofolders/..whateverfolder" won't start playback. Is there a way to find out, where exactly the problem lies?
In SSH I can trigger the exact mentioned file with cvlc /home/pi/RPi-Jukebox-RFID/shared/audiofolders/102pinguinei
greetings, Jakob

Hi @jackwidu
the two things that come to mind are:

did you patch the VLC player?
did you add lighttpd to sudoer list?

Because: the webserver must be operating as sudo to launch VLC. And VLC needs to be patched to allow sudo to launch it.
This would explain why you can not launch it from the web app, but can launch it from the terminal. Can you try to launch it like this?
sudo cvlc /home/pi/RPi-Jukebox-RFID/shared/audiofolders/102pinguinei

That gives me..
pi@raspberrypi:~ $ sudo cvlc /home/pi/RPi-Jukebox-RFID/shared/audiofolders/102pinguinei
VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c)
[013aa130] pulse audio output error: PulseAudio server connection failure: Verbindung verweigert
[013b0ce0] core interface error: no suitable interface module
[012fc918] core libvlc error: interface "globalhotkeys,none" initialization failed
[013b0ce0] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[013b0ce0] core interface error: no suitable interface module
[012fc918] core libvlc error: interface "dbus,none" initialization failed
[013b0ce0] dummy interface: using the dummy interface module...
libdvdnav: Using dvdnav version 5.0.3
libdvdread: Encrypted DVD support unavailable.

**  No css library available. See             **
**  /usr/share/doc/libdvdread4/README.css     **
**  for more information.                     **

libdvdread: Couldn't find device name.
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[013a3588] core playlist: stopping playback
I uninstalled and reinstalled Linux, patched the binary code and added lighttpd to the sudoer list. Before and after.

Hi @jackwidu
Looks like the sudo patch for VLC did not work, because the error seems to be the same.
Can you try
/usr/bin/sudo /usr/bin/cvlc --no-video -I rc --rc-host localhost:4212 '/home/pi/RPi-Jukebox-RFID/shared/audiofolders/102pinguinei'

and post the results here? (gee, I hope there is no typo, I am not on my box to test the above command...)
I just installed a box myself and it worked 'out of the box'. I will try to do it again and test your setup. Are you working with stretch or jessie?

No typo, but no obvious errors difference :-(
I don't eben know, if the error is of amy relevance..
pi@raspberrypi:~ $ /usr/bin/sudo /usr/bin/cvlc --no-video -I rc --rc-host localhost:4212 '/home/pi/RPi-Jukebox-RFID/shared/audiofolders/102pinguinei'
VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c)
[01648b28] pulse audio output error: PulseAudio server connection failure: Connection refused
[01642618] core interface error: no suitable interface module
[015b2918] core libvlc error: interface "globalhotkeys,none" initialization failed
[01665b88] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[01665b88] core interface error: no suitable interface module
[015b2918] core libvlc error: interface "dbus,none" initialization failed
libdvdnav: Using dvdnav version 5.0.3
[01642618] [cli] lua interface: Listening on host "localhost:4212".
libdvdread: Encrypted DVD support unavailable.

**  No css library available. See             **
**  /usr/share/doc/libdvdread4/README.css     **
**  for more information.                     **

libdvdread: Couldn't find device name.
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[015c25e8] core playlist: stopping playback
pi@raspberrypi:~ $ /usr/bin/sudo /usr/bin/cvlc --no-video -I rc --rc-host localhost:4212 '/home/pi/RPi-Jukebox-RFID/shared/audiofolders/102pinguinei'
VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c)
[01648b28] pulse audio output error: PulseAudio server connection failure: Connection refused
[01642618] core interface error: no suitable interface module
[015b2918] core libvlc error: interface "globalhotkeys,none" initialization failed
[01665b88] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[01665b88] core interface error: no suitable interface module
[015b2918] core libvlc error: interface "dbus,none" initialization failed
libdvdnav: Using dvdnav version 5.0.3
[01642618] [cli] lua interface: Listening on host "localhost:4212".
libdvdread: Encrypted DVD support unavailable.

**  No css library available. See             **
**  /usr/share/doc/libdvdread4/README.css     **
**  for more information.                     **

libdvdread: Couldn't find device name.
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[015c25e8] core playlist: stopping playback

Hey guys,
I face a similar issue like jackwidu described - every button works (next, previous, VolUp, VolDown) except the "pause" button. If I run
echo "pause" | nc.openbsd -w 1 localhost 4212
in the console it perfectly pauses the current music file playing. However if beeing run with a button via "gpio-buttons.py" in the "playout_controls.sh" this exactly same line (echo "pause" | nc.openbsd -w 1 localhost 4212 ) does not work. You have an idea why? I exchanged the "pause" in the "playout_controls.sh" with "stop", that works - so it's not the button and not the code... I am at my wit's end.

Hi @Neponator hi @jackwidu
Looks like sudo fixed it for jackwidu (see above)
check_call("sudo amixer sset PCM 300+", shell=True)

However, it seems that this is not the latest gpio buttons script, which is now using the bash for settings chnages. Now this will say:
check_call("./scripts/playout_controls.sh -c=volumeup", shell=True)

As you can see here: https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/misc/GPIO-button-sample.py
Could the two of you figure out if sudo will fix the issue here, too. In which case: please file a pull request. Thanks.
P.S.: hi @itkevin - I quickly ping you here, too, because you committed the original pull request and I believe you know more about the gpio buttons than I do :/ ;)

Hi guys,
as @MiczFlor has already mentioned, check out the new GPIO-button-sample.py and copy it into your script folder. Then run the script as root or with sudo. You can also check out the gpio-buttons.service. It will run it as root on startup.
The Pause button should then work as Pause and Resume when pressed again.

Thanks for the quick reply, didn't solve issue directly but the gpio-buttons.service hint brought me on the right track:
My gpio-buttons.py was running two times
This is caused if you follow the installation guide step-by-step and include the optional parts:
In the CONFIGURE-stretch.md it is written in the "Auto-start the jukebox"-section to enable
"sudo systemctl enable gpio-buttons (optional)"
--> This starts the gpio-buttons.py for the first time
Secondly, in the GPIO-BUTTONS.md installation guide the last point is to
"sudo nano /etc/rc.local"
"/home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py &"

--> Which starts the gpio-buttons.py for the second time.
Starting this script twice will pause/unpause that fast, that you can't hear it. Similarly the volume is increased two times and the next buttons jumps two songs further.
If you face similar issues, check your tasks via ps -ef or top if the gpio-buttons.py runs twice and kill one / take it off the /etc/rc.local

Thank @itkevin and @Neponator for the quick reaction time and input. I updated the documentation to be more clear: https://github.com/MiczFlor/RPi-Jukebox-RFID/commit/0ed39e05e68a13870285e2e03d91d006b07fc3b1
(unrelated question: should I close this ticket? It's become more of a forum than a feature :) ?


typo: Double word "that"

:warning: Validation status: warnings

File
Status
Preview URL
Details

api/canon/microsoft.quantum.canon.generatorindex.yml
:warning:Warning

Details

api/canon/Microsoft.Quantum.Canon.yml
:white_check_mark:Succeeded

api/canon/microsoft.quantum.canon.generatorindex.yml

Line 1: [Warning] The content part of NOTE/WARNING/CAUTION/IMPORTANT/NEXT syntax is suggested to start in a new line.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Argh!. All documents from the api folder are build-generated from the comments in the actual code. Most of the code is in the https://github.com/Microsoft/QuantumLibraries repo. Feel free to contribute doc enhancements there.


Fix the version of process_nwb==0.1.0 in setup.py

process_nwb has new changes that aren't backwards compatible -- it hasn't been updated on pypi/pip yet, but presumably it will eventually. We should fix the version number in setup.py so that developers don't accidentally get the wrong version when running pip install -e .

This finally happened, but it is fixed by the addition of -r requirements.txt to the environment .yml files in #129 .


Separate Update Profile API from Add Profile API

Refactor the existing API to separate the functionality for updating an existing profile and adding a new profile for better clarity and maintainability.
Tasks:

[ ] Analyze the current combined Update user API implementation.
[ ] Create a new lambda for PATCH /user/ API endpoint for updating an existing profile to update only allowed fields.
[ ] Create a new Add Profile API that handles only new profile creation for the first time.
[ ] Test both APIs to ensure they work correctly and independently.

Acceptance Criteria:

[ ] A new, separate API endpoint exists for updating the profile.
[ ] Add Profile API only handles new profile creation.

0.5 day


need to update molecule base image due to galaxy server deploying a breaking change

fixes: https://github.com/kiali/kiali/issues/6670

I ran all molecule tests - they all pass again. This PR is good; ready for approval and merge.


introduce webpack

This Pullrequest introduces webpack as well as foundation.
This pullrequest fixes #93 and #94

We should use Choice Variables of cookiecutter to allow the user to deselect webpack.


Properties: introduce an implicit argument M for clarity in the type of M-named variables

In the chapter on properties, this simple patch introduces an implicit argument M for clarity in the type of M-named variables in the proof of eval. The patch makes the proof more pedagogical and easier to write with Agda's interactive type-driven development.
Without the patch, the types of variables are confusing, e.g., the variable M—↠N has type N —↠ N₁. For the following code with a hole:
eval : ∀ {L A}
  → Gas
  → ∅ ⊢ L ⦂ A
    ---------
  → Steps L
eval {L} (gas zero)    ⊢L                              =  steps (L ∎) out-of-gas
eval {L} (gas (suc m)) ⊢L with progress ⊢L
... | done VL                                          =  steps (L ∎) (done VL)
... | step L—→M with eval (gas m) (preserve ⊢L L—→M)
...    | steps M—↠N fin                                =  {!!}

the goal and context are:
Goal: Steps L
————————————————————————————————————————————————————————————
fin  : Finished N₁
M—↠N : N —↠ N₁
N₁   : Term  (not in scope)
m    : ℕ
L—→M : L —→ N
N    : Term  (not in scope)
⊢L   : ∅ ⊢ L ⦂ A
A    : Type  (not in scope)
L    : Term

When the patch is applied, the context changes such that the variables with "M" in their names also have M in the corresponding place in their types:
Goal: Steps L
————————————————————————————————————————————————————————————
fin  : Finished N
M—↠N : M —↠ N
N    : Term  (not in scope)
m    : ℕ
L—→M : L —→ M
M    : Term
⊢L   : ∅ ⊢ L ⦂ A
A    : Type  (not in scope)
L    : Term

Merging this, since it's a tiny change, and I think it makes sense when inspecting the proof.

(Sorry for the massive delay, @mdimjasevic.)

@wadler, my apologies for not acting on your feedback in a timely manner!
@wenkokke, no need to apologize! I have a few outstanding things myself that I promised long time ago I will take care of, but I just haven't gotten to them yet.


MSID: 89903 Version: 2 DOI: 10.1101/2<IP_ADDRESS>6200

MSID: 89903
Version: 2
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>6200
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=89903
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>6200

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/89903v2
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>6200
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/89903/v2/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

This text should not be split into 3 paragraphs:


Support deletion of product types

Description
Please provide support for deleting product types inIMPEX, so that it is possible to "bulk delete" many product types without usage of the Admin Center. Types should be deletable by key as well.
It would be nice if the respective matching products are removed as well once a product type is deleted.

Hello @Oehmi .. currently there are product-type-generator and product-type-update executables so we can add something like product-type-delete?
It would be a script which will take a CSV with one column named "names" (or "keys") and it will delete all matching productTypes and their products.
Let me know if you agree.

cc @hisabimbola @wi

I am not sure about this, we do not support mass deletions at all, but we can start something towards deleting entities, a simple script/module will do.

What about this - we can create a new command page on Impex where you would select an entity (products, productTypes, ... ) then you would fill in a predicate (items which will match will be deleted) or you would provide a CSV file with column (eg key/name/id/...) and the list of all keys which should be deleted..

If we want to start mass deleting, then we should probably start it on most (all?) of our services, which is why I'm not sure if it's a good idea. And do we have one delete module for everything? Or each service would have a delete module? Or will it be for only productTypes?

I was thinking about one tool which would have a parameter where you can set what entity (productType/Products ... ) you want to delete.


added readme for every package and extension

first PR! :)
this fixes #2309, added a readme for every package and extension so it can be visible on npmjs.com, and also added a template for future plugins in examples.

This looks great. Thanks @jadeddelta ! 🥳

@jadeddelta after I merged this I realized that the readme updates won't show on npmjs unless we issue a new release. So I reverted the merge. Can you make a new PR and then add a changeset with a patch release for all the packages?


fpga: make admission webhook mode-less

closes #301

@rojkov looks good to me so far. What about kustomise yamls? Do they need to be updated?
@kad can you review this PR please?

@rojkov looks good to me so far. What about kustomise yamls? Do they need to be updated?

Yes. There's #318 for that.

@kad ping. Could you please review the updates to README.md at least?

Thanks! Rebased.

Updated to use consistent mode names across the FPGA webhook and plugin.

I'm going to give other reviewers one day for their comments/approvals. Then I'll merge this.

@mythi @kad please review last time and approve/merge.

this looks good to me but should we squash commits?

I agree with @mythi, let's squash and lgtm.

@rojkov Plugin is failing in af mode due to incorrect socket file name:
> kubectl get pods
NAME                      READY   STATUS             RESTARTS   AGE
intel-fpga-plugin-rk69j   0/1     CrashLoopBackOff   4          2m23s

> kubectl logs intel-fpga-plugin-rk69j
E0423 09:13:28.819373       1 manager.go:125] Failed to serve fpga.intel.com/69528db6eb31577a8c3668f9faa081ff7df405cbd7acf7222f144b0b93acd18: listen unix /var/lib/kubelet/device-plugins/fpga.intel.com-69528db6eb31577a8c3668f9faa081ff7df405cbd7acf7222f144b0b93acd18.sock: bind: invalid argument
Failed to listen to plugin socket
github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*server).setupAndServe
	/intel-device-plugins-for-kubernetes/pkg/deviceplugin/server.go:211
github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*server).Serve
	/intel-device-plugins-for-kubernetes/pkg/deviceplugin/server.go:163
github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*Manager).handleUpdate.func1
	/intel-device-plugins-for-kubernetes/pkg/deviceplugin/manager.go:123
runtime.goexit
	/usr/lib/golang/src/runtime/asm_amd64.s:1357

However, it seems to work in region mode.

Thank you! I'll take a look.
On Thu, Apr 23, 2020 at 12:21 PM Ed Bartosh<EMAIL_ADDRESS>wrote:

@rojkov https://github.com/rojkov Plugin is failing in af mode due to
incorrect socket file name:

kubectl get pods
NAME                      READY   STATUS             RESTARTS   AGE
intel-fpga-plugin-rk69j   0/1     CrashLoopBackOff   4          2m23s

kubectl logs intel-fpga-plugin-rk69j
E0423 09:13:28.819373       1 manager.go:125] Failed to serve fpga.intel.com/69528db6eb31577a8c3668f9faa081ff7df405cbd7acf7222f144b0b93acd18: listen unix /var/lib/kubelet/device-plugins/fpga.intel.com-69528db6eb31577a8c3668f9faa081ff7df405cbd7acf7222f144b0b93acd18.sock: bind: invalid argument
Failed to listen to plugin socketgithub.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*server).setupAndServe
/intel-device-plugins-for-kubernetes/pkg/deviceplugin/server.go:211github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*server).Serve
/intel-device-plugins-for-kubernetes/pkg/deviceplugin/server.go:163github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*Manager).handleUpdate.func1
/intel-device-plugins-for-kubernetes/pkg/deviceplugin/manager.go:123
runtime.goexit
/usr/lib/golang/src/runtime/asm_amd64.s:1357

However, it seems to work in region mode.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/intel/intel-device-plugins-for-kubernetes/pull/358#issuecomment-618287271,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAIEYOSQTNR47QPTAHPTVTROACANANCNFSM4MCGZACQ
.

Failed to listen to plugin socket

Too bad unix socket addresses can be 108 chars long in Linux. /var/lib/kubelet/device-plugins/fpga.intel.com-69528db6eb31577a8c3668f9faa081ff7df405cbd7acf7222f144b0b93acd18.sock is 115 chars.
Should I strip the interface ID part even further from 31 to 16? Are we ok with that?

@rojkov Do you think 16 chars would make unique enough id? Any other ways to solve this?

@rojkov I have two weird ideas for you:

convert interface id to another base (64 or 128?) to shorten it. Use it as a suffix. Prefix can be first part of the original id, e.g. 69528db
create directory for the socket, e.g. /var/lib/kubelet/device-plugins/fpga.intel.com/69528db6eb31577a8c3668f9faa081ff7df405cbd7acf7222f144b0b93acd18.sock

@bart0sh The second option is no better: full path including /var/lib/... should be mo longer than 108. The first option sounds interesting! Though the standard Base64 encoding from RFC4648 produces 44 chars from 32 of InterfaceID because it's supposed to encode also non-printable chars.
Also we can

remove .sock suffix for all plugins' sockets;
remove .intel.com suffix from all namespaces, so the resources will look like gpu/i915, qat/generic, fpga/abababababababab...

The rest of the socket path is beyond our control.
I don't know if 16 chars is enough. Depends on the number of unique PAC firmwares (blue bitstreams) available in one cluster.
Currently all commits to this repo are uniquely identified with 7 chars. All commits to the repo of Linux kernel are identified with 12 chars. Perhaps we can agree on 18 chars and implement a 64 base encoding later if it's not enough? :)

base64 encoding would produce 44 chars long result out of 64 chars(interface id + af id) input as well.
Yes, we can agree of 18 chars if other reviewers are ok with it. @kad, @mythi ?

the standard Base64 encoding from RFC4648 produces 44 chars from 32 of InterfaceID because it's supposed to encode also non-printable chars.

True, but in our case interface id + aft id can be presented as 32 bytes long byte array.
I've played with this idea a bit. Here is what I came up with: https://play.golang.org/p/4y8lhEivPY5

This basically give us 8 chars for InterfaceID and 8 chars more if we encode AfuID too. We need at least 115-108=7 chars to go away. This leave us with something like
/var/lib/kubelet/device-plugins/fpga.intel.com-<interface_id_prefix>{4}<afu_id_prefix>{4}-<base64_encoded_interface_id_plus_afu_id>{48}.sock

Not sure I fully understood your calculation, but it doesn't matter. base64 encoding gives us enough space to fit the whole thing into 115 characters. If it doesn't we can go further and increase the base to 128.
P.S. My calulation: /var/lib/kubelet/device-plugins/fpga.intel.com-{47}{4}-{1}{4}-{1}<base64_encoded_interface_id_plus_afu_id>{44}.sock{5} gives us 106(47+4+1+4+1+44+5). We have 9 more characters to use, so we can use 8 chars long prefixes.

The limit is not 115, but 108 (including a trailing zero I presume), so the practical limit, as I tested, is 107. I've just updated the PR. Could you please check it once more?

The limit is not 115, but 108

We can still use 4 chars long prefixes, right?
In [1]: len('/var/lib/kubelet/device-plugins/fpga.intel.com-') + len('ce48-d842-zkiWk5jwXzOUbVYHCL4QithCTcSko8QT-J5DNoP5BAs') + len('.sock')
Out[1]: 105

/LGTM
I'll run e2e tests and report here if it works or not.
@mythi @kad please review this PR again. Hopefully last time.

@rojkov Could it be that mappings are setup incorrectly?
When I run plugin in af mode the node has these af resources:
Allocatable:

  fpga.intel.com/6952.d842.aVKNtusxV3qMNmj5-qCB9thCTcSko8QT-J5DNoP5BAs:  1
  fpga.intel.com/6952.f7df.aVKNtusxV3qMNmj5-qCB9vffQFy9es9yIvFEsLk6zRg:  1

However, the pod resource requests are mutated to region- resources:
> cat <<END | kubectl create -f-
> apiVersion: v1
> kind: Pod
> metadata:
>   name: test-nlb0
> spec:
>   containers:
>   - name: test-nlb0
>     image: intel/opae-nlb-demo:devel
>     imagePullPolicy: IfNotPresent
>     command: ['nlb0']
>     securityContext:
>       capabilities:
>         add:
>           [IPC_LOCK]
>     resources:
>       limits:
>         fpga.intel.com/arria10.dcp1.2-nlb0: 1
>         cpu: 1
>         hugepages-2Mi: 20Mi
>
>   restartPolicy: Never
> END
pod/test-nlb0 created

> kubectl describe pod test-nlb0 |grep -A10 Limits
    Limits:
      cpu:                                                     1
      fpga.intel.com/region-69528db6eb31577a8c3668f9faa081f6:  1
      hugepages-2Mi:                                           20Mi
    Requests:
      cpu:                                                     1
      fpga.intel.com/region-69528db6eb31577a8c3668f9faa081f6:  1
      hugepages-2Mi:                                           20Mi
    Environment:
      FPGA_AFU_1:     d8424dc4a4a3c413f89e433683f9040b
      FPGA_REGION_1:  69528db6eb31577a8c3668f9faa081f6

Side note - we may want to add 'af-' prefix to af resource names to make the resource naming consistent. We can do that by reducing af id and interface id prefixes to 3 chars each.

Could it be that mappings are setup incorrectly?

The arria10.dcp1.2-nlb0 mapping is configured to translate to region mode in deployments/fpga_admissionwebhook/mappings-collection.yaml. Just update the mapping.
I can add one more mapping arria10.dcp.1.2-nlb0-preprogrammed for testing purposes to the collection.
Regarding the af- prefix. Yes, will add.

I can add one more mapping arria10.dcp.1.2-nlb0-preprogrammed for testing purposes to the collection.

Yes, please do. I'd also suggest renaming arria10.dcp.1.2-nlb0 to arria10.dcp.1.2-nlb0-orchestrated to be more  explicit.

Ok, added. Also I've added -orchestrated suffix to all mappings with region mode for consistency.

@rojkov It's still failing. Looks like 4 symbols for aft and interface ids is too much:
> kubectl logs intel-fpga-plugin-87nrj --namespace fpgaplugin-e2e-8081
E0427 15:34:01.842986       1 manager.go:125] Failed to serve fpga.intel.com/af-6952.f7df.aVKNtusxV3qMNmj5-qCB9vffQFy9es9yIvFEsLk6zRg: listen unix /var/lib/kubelet/device-plugins/fpga.intel.com-af-6952.f7df.aVKNtusxV3qMNmj5-qCB9vffQFy9es9yIvFEsLk6zRg.sock: bind: invalid argument
Failed to listen to plugin socket
github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*server).setupAndServe
	/intel-device-plugins-for-kubernetes/pkg/deviceplugin/server.go:211
github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*server).Serve
	/intel-device-plugins-for-kubernetes/pkg/deviceplugin/server.go:163
github.com/intel/intel-device-plugins-for-kubernetes/pkg/deviceplugin.(*Manager).handleUpdate.func1
	/intel-device-plugins-for-kubernetes/pkg/deviceplugin/manager.go:123
runtime.goexit
	/usr/lib/golang/src/runtime/asm_amd64.s:1357

@rojkov I'll try to reduce length of ids to 3. Hopefully this should be enough.

@rojkov worked for me with this change:
diff --git a/pkg/fpga/devtypes.go b/pkg/fpga/devtypes.go
index 87bbc44..5fc2b8f 100644
--- a/pkg/fpga/devtypes.go
+++ b/pkg/fpga/devtypes.go
@@ -32,5 +32,5 @@ func GetAfuDevType(interfaceID, afuID string) (string, error) {
                return "", errors.Wrapf(err, "failed to decode %q and %q", interfaceID, afuID)
        }

-       return fmt.Sprintf("af-%s.%s.%s", interfaceID[:4], afuID[:4], base64.RawURLEncoding.EncodeToString(bin)), nil
+       return fmt.Sprintf("af-%s.%s.%s", interfaceID[:3], afuID[:3], base64.RawURLEncoding.EncodeToString(bin)), nil
 }

Please, update the PR.
P.S. I'll send e2e test update as a PR to your branch rojkov:webhook-modeless

done: https://github.com/rojkov/intel-device-plugins-for-kubernetes/pull/5

@rojkov It's still failing. Looks like 4 symbols for afu and interface ids is too much:

Oops, my bad. Reduced to 3 symbols now and cherry-picked your commit. Could you please try again?

@rojkov Thank you for the update! e2e tests worked!
@mythi @kad please review/approve/merge. Only you two can do that.


Code | Alphabetic Pattern 3

Can you assign me this issue @aryashah2k?

sure, make sure you place the file in correct folder and correct naming convention

Yeah, sure

Created PR


Do not show handles when changing text selection via keyboard

This contains a breaking API change to SelectionChangedHandler.
This is part of making text input accessible on Android (https://github.com/flutter/flutter/issues/12785) and should not be submitted until that is wired up.


Can't set activity image, am I doing something wrong?

Summary
Custom presence image doesn't set!
Reproduction Steps

Code
actv_type = discord.ActivityType.playing
actv = discord.Activity(
        name=data.desc1,
        type=actv_type,
        state='STATE',
        details='DETAILS',
        large_image_url='https://lh3.googleusercontent.com/paxuBm_PrVPCKDscbmNyLiyOlBVwFMsbUcwldMUIHKsUQC2o9aWHhx8iwGiR3pNhoyMzH4SdwmXOlyB2sg=w544-h544-l90-rj'
)
await Client.change_presence(activity=actv)

Expected Results
The image should show up on my profile
Actual Results
I just get the text and no Image on the side

System Information
Python v3.10.1-final - discord.py v1.7.3-final - aiohttp v3.7.4.post0 - system info: Windows 10 10.0.22000
Checklist

[x] I have searched the open issues for duplicates.
[X] I have shared the entire traceback.
[X] I am using a user token (and it isn't visible in the code).

Additional Information
using discord-self latest but in a environment, since I make bots sometimes
tried with discord first
tried on my account, not a bot

Haven't implemented the extra keys yet. Should be coming soon!

Am I doing something wrong here? It doesn't show DETAILS or STATE anywhere like yours

code:

actv_type = discord.ActivityType.playing
actv = discord.Activity(
        name='Darkend',
        type=actv_type,
        state='STATE',
        details='DETAILS.',
)
bot = commands.Bot(command_prefix="!!!", self_bot = True, activity=actv)

Am I doing something wrong here? It doesn't show DETAILS or STATE anywhere like yours

fancy seeing u here lol

Summary
Custom presence image doesn't set!
Reproduction Steps

Code
actv_type = discord.ActivityType.playing
actv = discord.Activity(
        name=data.desc1,
        type=actv_type,
        state='STATE',
        details='DETAILS',
        large_image_url='https://lh3.googleusercontent.com/paxuBm_PrVPCKDscbmNyLiyOlBVwFMsbUcwldMUIHKsUQC2o9aWHhx8iwGiR3pNhoyMzH4SdwmXOlyB2sg=w544-h544-l90-rj'
)
await Client.change_presence(activity=actv)

Expected Results
The image should show up on my profile
Actual Results
I just get the text and no Image on the side
System Information
Python v3.10.1-final - discord.py v1.7.3-final - aiohttp v3.7.4.post0 - system info: Windows 10 10.0.22000
Checklist

[x]  I have searched the open issues for duplicates.
[x]  I have shared the entire traceback.
[x]  I am using a user token (and it isn't visible in the code).

Additional Information
using discord-self latest but in a environment, since I make bots sometimes tried with discord first tried on my account, not a bot

large_image_url is a property
Check discord custom presence in my github page and try to figure out

@dolfies Is this fixed?

still not fixed

Sorry for the late update on this.
v2.0 has been delayed enough already because of feature creep, so I don't think I'm going to fix this before the release this weekend. With the breadth of the user API, there's always gonna be something to implement, but I'll make sure I get to this soon after release.

W

fixed?

fixed?

since dolfies still hasn't implemented this you can pass: mp:{image_id} to use external urls as your activity asset which is what I'm doing
data = requests.post("https://discord.com/api/v9/applications/<application id>/external-assets", json={
    "urls": ["https://beeimg.com/images/f97423881793.gif"],
}, headers={
    "authorization": "user token"
})

returns
[{"url":"https://beeimg.com/images/f97423881793.gif","external_asset_path":"external/6kd1HiS3XBR2zE7u0cQbFTGIeKldXdablVfEq65UxUc/https/beeimg.com/images/f97423881793.gif"}]
then you pass it for the large_image or small_image key as follows:
ex:
"large_image":"external/6kd1HiS3XBR2zE7u0cQbFTGIeKldXdablVfEq65UxUc/https/beeimg.com/images/f97423881793.gif"
I'm not sure if dolfies is planning on making the lib do that by itself any time soon but yeah this is a workaround till then

That works, just use the library's internal request handler instead of requests as it's unsafe and blocking.

That works as a hack, just use the library's internal request handler instead of requests as it's unsafe and blocking.

noted


Disabling Auto-clicking has minimal effect on bosses dying too quickly.

 It's the nuke-type abilities and possibly nuke bleed-through from previous rounds that would be causing the damage.

Disable nukes 50 levels before a /100 level or something?

Possibly 5-9 levels before boss farm. If we encountered a boss within 50 levels of a boss farm level, it would take hours to go past it. Trash mob health scaling is nowhere near what bosses are so it shouldn't be too bad to get past those 5-9 levels with auto-click damage.

Realistically even at full click dps from all players simultaneously I'm not sure how much of a threat it is to boss health totals with no damage abilities active. From a rough calculation and a healthy dose of assumptions at my current level (34,580), assuming 20x multiplier on both crit and elemental (and the right elemental of course) with guaranteed double crits on all 1500 players at 20 clicks per second, you'd still be looking at over half an hour taken to take a boss down. If I've somehow gone far astray with that math I encourage correction, but I don't believe I have.

Yeah, its also the Issue i have somehow too, they come to those Bosses and have no Nukes and nothing anymore, all wasted just before, even 4.8.9 throws nukes on normal Levels just before and then disables Abilities or has no Nukes left... Then you can starr at the Boss for Minutes after Minutes and watching the expected Level going down and down.

That's... not really the problem this issue is addressing.

@Sanaki
Perhaps not exactly but what @Stardrinker or @Chdata said would help, the Issue i watch are very similar.

I've noticed that prep round threshold is 10, meaning that bosses 10 levels before boss farm rounds, i.e. 90, would be slowed down, which is probably not a good idea.

The script already tries to do that, though. At least in theory. Look at line 1378.
Currently rainingRounds = 100 and rainingSafeRounds = 10.

The issue is that disabling the autoclicker is pointless for prolonging boss fights on gold farm rounds, but it has an impact on how much gold people get. This DPS, while mostly useless on boss levels, does help on trash mob levels, letting us go up in levels a bit quicker.

@Stardrinker
Yeah, what i watched at #270 People throwed 50 Goldrain in at a xxx500 Level but Autoclicker was disabled, lost Billions for nothing, if the Boss stays there for so long then Autoclick, why disable it anyway.

Is it relevant at low levels, though? One thing that makes it tough to get started wormholing is that levels go by too quickly (maybe due to click DPS, maybe old scripts, maybe random people trying to "help", probably all of the above).
Could be useful to look at average DPS at low levels to figure out when to turn it back on.
Or (getting into unnecessarily complicated territory here) do something like assume all other players have your DPS and estimate time to kill the boss based on that, and turn off clicking if it's too fast. Though at the speeds it would matter, the 1s refresh rate would probably be too long already.

At lower levels the autoclicker would have a larger impact since the cost scaling hasn't become so high, but I still think that it should give you ample time for Wormholes as long as the nuke-type abilities are disabled 5-9 levels beforehand.

I happened again on a xxx500 Level, well i edit the Script and take that out now, don't want loose Billions on every x500 Level for nothing...

I think it will be alright if dpc * 20 * 1500 < 1% of boss health. Then dpc is negligible and we can totally let it keep autoclicking, so people with low dpc can also take advantage of raining gold and have gold for HP upgrades

Yeah, its difficult to calc anyway, but i don't think that Autoclicking has any big effect on Bosses anyway, but the loose of Money caused by it isn't good


[DRAFT] Workflow Mutex Sample

What was changed
Added a new sample showcasing how to implement a Mutex Workflow for managing concurrent access to a shared resource.
NOTE: Since the required SDK version (the one with workflow history info) hasn't been published yet, I had to add links to the SDK in TemporalioSamples.sln and Directory.build.props

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@cretz I reduced the number of files, but I didn't refactor the inputs into nested classes; instead, I placed them outside in the same file where they are being used. Additionally, I provided a bit more detailed description of the project's structure in the README.md

Thanks for the update! Gonna merge #39 first if that's ok (unsure if it'll merge cleanly).

Resolved conflict (using GH's built-in conflict editor for the first time, was interesting). Merging once CI passes. Thanks again!


Stream local files with NanoHTTPD server

This PR add a local file browser. Files can be streamed to Kodi from the Android device.

Adds NanoHTTPD as a Gradle dependency.
Local Files section is added just below Files.
The tabs of Local Files are the external storage, the DCIM folder and the detected SD cards.
The class HttpApp creates a local HTTP server returning the content of a single local file.
The selected file is linked to the HttpApp and sent to Kodi with the Player.Open JSON-RPC call.
I have created a local thumbnail loader for JPEG pictures (sorry, I just don't trust Picasso web-app with my local files. By the way, I was unable to make Picasso work with local files).  Asynchronous loading of thumbnails through AsyncTask, the code is quite simple.

Current issues:

A lot of the code in this PR was just copied from org.xbmc.kore.ui.sections.file, maybe it can be refactored in order to use class inheritance to keep identical code shared.
Queuing does not work. This probably requires extending HttpApp to allow multiple files to be downloaded, and creating a way to keep the queue in HttpApp synchronized with Kodi's queue.
Thumbnails are generated for JPEG files only.
No media information beyond file name (this can be added in the future).
No security for the HTTP server. Maybe support for tokens should be added using cryptographically-secure random number generators. SSL would also nice to have, but a bit fussy due to the requirement of key files.

Thanks for this. I'm sorry but i still haven't been able to check this out. I expect to do it in the next couple of days, and i'll report back.

Ok, this is a big PR so there's some stuff to review. But first of all, thanks again. In my (somewhat limited) tests, this worked fine, and just needs some fine tuning.
Starting from the issues you point out, my opinion is:

I have no problem with copying the file section. @poisdeux might not like it as much, but i think it's fine by now.
If queuing isn't working the options "Play from here" and "Queue" should be removed from the the overflow menu in the files list. Or just remove it completely, as the only possible action is to play an item, and that is done by clicking on it.
Regarding picture display, i'm not sure i understood your comment regarding Picasso. This is the Picasso library, nothing to do with Picassa web app. And it should work fine with local files (try a Google search with "picasso library local file" and you probably find the issue). I think that using Picasso should be preferred, because it's highly optimized and tested against leaks for instance.
Ok
No problem by me. But if there's a way to shut down the http server once the user navigates away from the activity, it should be done.

Now, some comments i have

The Singleton HttpApp could be better implemented. I'll point out some issues on the code, and you can take a look at the HostManager class for an example;
There's an obvious code error in LocalPictureListFragment getFileMimeType (Java uses equals() on strings, not ==). I suspect that you're not using Android Studio as it pointed that out immediately - use whatever you want obviously, but Android Studio is actually quite nice.
The push to refresh on the file list isn't working. I was going to point this out as an issue, but just noticed that the same happens with the default Files section. I'll check it out later, but do you could also check if it's possible to simply implement the onRefresh with some code that's already on the onCreateView.
Related to the previous one. The code doesn't handle the request permissions result onRequestPermissionsResult, which is odd in either case. At least, if the user gave it permission, it should reload.
Adding more tabs with music and movies seems very straightforward and easy. We might have to tweak the item layout, as it doesn't make sense to display a picture.
You probably missed this: in Kore's settings there's the option "Side Menu Shortcuts" that control which elements appear on the navigation drawer. Local files isn't appearing because it's not on the array entries_nav_drawer_items in arrays.xml. Needs to be added, in the same order as entry_values_nav_drawer_items, so that it works.

This is it for now. @poisdeux it would be useful if you could take a look at this too.

@SyncedSynapse I'll try to make some time but can't promise anything.

I have so far:

Added the support for queuing local files.
Switched to Picasso for thumbnails. On my phone only the first JPEG appears to have its thumbnail loaded, the following ones fail.
HttpApp now has a LinkedList of LocalFilePosition objects. In this way it is possible to create playlists with more than one local file. The HTTP GET request now requires a number parameter to retrieve the correct file from the ones linked.
An abstract class superseding both the local files package and the remote file package has been created. Ideally the code in common should be uplifted on this new abstract class, but I'm a bit afraid of breaking working code.
onRefresh( ) is still broken. I'm not going to fix it in this PR.
onRequestPermissionsResult is still not handled.
Rules for shutting down the HTTP server are a bit complicated. You may wish to keep it running even after leaving Kore. The class HttpApp should be able to communicate with Kodi and stop if Kodi's playlists are empty and Kodi isn't playing anything. I would prefer not to implement this logic in this PR.

So the remaining issues to address in this PR are Picasso failing and onRequestPermissionsResult.

I tried testing the feature using Android API 15 and 29 with Kodi 15.4. Unfortunately, I couldn't get a local file to run on Kodi.

I only have the latest version of Kodi and it works for me (both pictures and audio and video files).

So, I understand that this is a huge PR and the new feature it introduces is not-so-well tested.
This is my first time ever with Android app development, and I'm not even used to Java, so I can only give you some limited contributions to the code (and I also need a lot of googling). I just wanted to stream local files to my Kodi and thought it would be a nice idea to share my edits back to the community.
I would suggest at this point to add a warning about the Local Files tab being experimental, and warn the users to report any possible bugs or issues here. Maybe in the future someone else will fix the issues with this PR.
I'm sorry about older Kodi versions apparently not working, but I don't have time right now to do some thorough testing.
Would you consider this PR to be ready for merging? Shall I add a warning about this addition being experimental?

OK, fixed the last (easy) issues.

I tried testing the feature using Android API 15 and 29 with Kodi 15.4. Unfortunately, I couldn't get a local file to run on Kodi.

I only have the latest version of Kodi and it works for me (both pictures and audio and video files).

Sorry, I tested on 18.4 not 15.4. I tested with an emulator and the problem is the emulator. The request is sent to Kodi but Kodi gets a connection timeout while trying to connect to the emulator. Currently my HTPC is broken so I can't do a proper test. As you both seem to be having no issues I guess it's all fine.


clusterloader2/../config.yaml: Enable kube-state-metrics measurement …

As per suggestion #1684 kube-state-metrics 2.0 release perf tests were split into 3 parts this is the last PR. This PR enables kube-state-metrics measurement conditionally, it requires https://github.com/kubernetes/perf-tests/pull/1761 to be merged first.
/hold
cc @tariq1890 @mrueg @brancz

/hold cancel
@wojtek-t please take a look, thank you!

/hold cancel
The other PR was merged.

/lgtm
/approve


Save filter

It would still be good if the filter could be saved.
This way, only the tickets that are still open could be displayed. Or another option would be if the ticket statuses could be set to show or hide tickets with the corresponding status in the list.

Yes, I have the same idea but still working on how I can implement this on the Filament tables, and also for the tickets page.
I'll let you know

I have found something. Have it as PR

Resolved in this PR: https://github.com/devaslanphp/project-management/pull/81


ignore inactive variants for price count

Given an article with some variants. All except 1 variants are active and have the same price (1,00 EUR). One variant is inactive and has another price (0,50 EUR).
In the listing there is "from 1,00 EUR" instead of just "1,00 EUR" (without "from").
This PR corrects the behaviour.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/#/issues/SW-15119.
Please use this issue to track the state of your pull request.


Header + Cell Border (no queries yet)

This PR consists of the following:
Updating Header + Cell Styles:

Header color has changed to black
Logo component from earlier PR moved in
Font styling
Cell border changed to black, grid gap reduced to 0px, border thickness bumped to 2px

Before
After

Nice! One suggestion: On narrower screens that cause the title to break into 2 lines, the lines overlap each other a bit:

Could you add some more space?

yea, I'll tackle that issue as I start implementing media queries. Good call though 👍


fix: e2e collect metrics for "cnpg_runonserver_match"

Need to verify cnpg_runonserver_match label in collected metrics. Need to change the assertion.
refer test : https://github.com/cloudnative-pg/cloudnative-pg/blob/main/tests/e2e/metrics_test.go#L79
Solution:
https://github.com/cloudnative-pg/cloudnative-pg/blob/main/tests/e2e/metrics_test.go#L108
Expect(matches, err).To(HaveLen(8), "Metric collection issues on %v.\nCollected metrics:\n%v", pod.GetName(), out)
need to replace with :
Expect(matches, err).To(HaveLen(9), "Metric collection issues on %v.\nCollected metrics:\n%v", pod.GetName(), out)

Minor amend. LGTM.


Develop dual-Propeller "render" routine

https://github.com/cspang1/JCAP/projects/1#card-6846453

Satisfied by commit ce1fa4648612351020a55111c75cde2643aa50c5


Features/new storage class ram

Add validation for the new storage class ram

https://github.com/akash-network/cloudmos/issues/131


split release notes index into minor versions

https://trello.com/c/TkZ3oEWf/36

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@46e1b1f). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #6223   +/-   ##
=========================================
  Coverage          ?   83.26%
  Complexity        ?    12524
=========================================
  Files             ?     1450
  Lines             ?    47393
  Branches          ?     5814
=========================================
  Hits              ?    39461
  Misses            ?     5237
  Partials          ?     2695

Continue to review full report at Codecov.

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


fix: command line parameter naming conventions

Updated all command line parameter names to use kebab-case for consistency and readability.
Replaced camelCase parameters with kebab-case equivalents:

logicalBridge to logical-bridge
allowMissing to allow-missing
This change improves the readability and maintainability of the command line interface by using a consistent naming convention.
#428

@MeenuyD please fix commit message according to https://commitlint.js.org/

@MeenuyD There are two checks failing, the linters check and the Commitlint.  Both need to be fixed prior to merging.


Add trial encodes for first frame of each type

An optimal content-independent scale estimator is up to an order of magnitude off, depending on content complexity. Account for that by running a trial encode for the first frame of each type and replacing the estimated scale with the observed value. Note that the scale filter has a latency of one frame of the same type, so we need to update the initial scale value as well.

Coverage increased (+0.03%) to 83.281% when pulling 4d0bbe60afe041b5b622417e9e05849bee6f574f on barrbrain:trial-encodes into 937d250dce3830d514a10bba8714a6ba86b662b9 on xiph:master.

Coverage increased (+0.03%) to 83.281% when pulling 4d0bbe60afe041b5b622417e9e05849bee6f574f on barrbrain:trial-encodes into 937d250dce3830d514a10bba8714a6ba86b662b9 on xiph:master.


[Bug] An error is reported when using the python interface to query data

Search before asking

[X] I searched in the issues and found nothing similar.

Version
1.1.1
Describe the bug and provide the minimal reproduce step
result = session.execute_query_statement(sql)
│       │                       └ "select * from root.etl_data.X1EV.*.ts.network_sys where event_ts <=<PHONE_NUMBER>051 and event_ts >=<PHONE_NUMBER>051 and data_typ...
│       └ <function Session.execute_query_statement at 0x7f069104b0d0>
└ <iotdb.Session.Session object at 0x7f06910598e0>
File "/usr/local/lib/python3.8/site-packages/iotdb/Session.py", line 849, in execute_query_statement
return SessionDataSet(
└ <class 'iotdb.utils.SessionDataSet.SessionDataSet'>
File "/usr/local/lib/python3.8/site-packages/iotdb/utils/SessionDataSet.py", line 47, in init
self.iotdb_rpc_data_set = IoTDBRpcDataSet(
│                         └ <class 'iotdb.utils.IoTDBRpcDataSet.IoTDBRpcDataSet'>
└ <iotdb.utils.SessionDataSet.SessionDataSet object at 0x7f069080c5e0>
File "/usr/local/lib/python3.8/site-packages/iotdb/utils/IoTDBRpcDataSet.py", line 59, in init
self.__column_size = len(column_name_list)
│                        └ None
└ <iotdb.utils.IoTDBRpcDataSet.IoTDBRpcDataSet object at 0x7f065bfb6580>
TypeError: object of type 'NoneType' has no len()
During handling of the above exception, another exception occurred:
What did you expect to see?
.
What did you see instead?
.
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Hi, which version of the IoTDB server you are using?

Hi, which version of the IoTDB server you are using?
Not yet, please help

Does the same query sql in CLI show the correct result? You can post a screenshot.

Does the same query sql in CLI show the correct result? You can post a screenshot.

The same query SQL in the CLI can be executed normally without any errors
I tracked the error ,and find the found the code in ' Session.py' , The resp was not returned correctly：
def execute_query_statement(self, sql, timeout=0):
"""
execute query sql statement and returns SessionDataSet
:param sql: String, query sql statement
:return: SessionDataSet, contains query results and relevant info (see SessionDataSet.py)
"""
request = TSExecuteStatementReq(
self.__session_id, sql, self.__statement_id, self.__fetch_size, timeout
)
resp = self.__client.executeQueryStatement(request)
return SessionDataSet(
sql,
resp.columns,
resp.dataTypeList,
resp.columnNameIndexMap,
resp.queryId,
self.__client,
self.__statement_id,
self.__session_id,
resp.queryDataSet,
resp.ignoreTimeStamp,
)
speculated if it might be related to pod communication deployed in K8S，Just my guess

Can you share the failed sql statement?

Can you share the failed sql statement?

select * from root.etl_data.X1EV.*.ts.network_sys where event_ts <=<PHONE_NUMBER>050 and event_ts >=<PHONE_NUMBER>050 and data_type2='app_inst_freq' align by device
Is it related to SQL statements? Because he can execute it several times before it fails

OK, I know the reason. It is a bug in python client v1.1.x.

Before return the result, there should be a check for checking if the execution successful.
v1.2.x fixed this bug.

Okay, thank you for your reply @HTHou


Please elaborate on installation instructions for unsupported platforms

The README says:

Building on other platforms will need to arrange to build Wasmtime and use CGO_* env vars to compile correctly.

Can you please elaborate on which environment variables and how to build wasmtime?
I am trying to package something depending on wasmtime-go in pkgsrc. We support many more platforms than you have precompiled binaries for, so I would like to always build wasmtime from source.

I believe you need to set CGO_LDFLAGS with -L to where the library lives, but I've not done this before myself so I'm not sure. I forget what I meant when I wrote that in the README, though, sorry.


Question Regarding Figure 1 in the Paper

Dear Author,
Hello, and thank you for your outstanding contribution! I would like to ask about the feature map intensity in Figure 1 of your paper—how was it computed and plotted? Thank you.

please see visualization. thanks!
I recorded the feature intensity across all layer during inference time for drawing figure 1


tome4 doesn't render screen

I install tome4 (roguelike game, http://te4.org) and run it, and while the program runs and the sound is heard, there is no game screen. The first few lines of a debug messages are:
WebCore config: library(/nix/store/wfzy42pifghrpr7wdpsgg7mjh8qc7ryj-tome4-1.3.1/opt/tome4/libte4-web.so) spawn(/nix/store/wfzy42pifghrpr7wdpsgg7mjh8qc7ryj-tome4-1.3.1/opt/tome4/cef3spawn)
Loading WebCore: Failed loading /nix/store/wfzy42pifghrpr7wdpsgg7mjh8qc7ryj-tome4-1.3.1/opt/tome4/libte4-web.so: /nix/store/wfzy42pifghrpr7wdpsgg7mjh8qc7ryj-tome4-1.3.1/opt/tome4/libte4-web.so: cannot open shared object file: No such file o
[CPU] Detected 4 CPUs
OpenAL device available: OpenAL Soft (default OpenAL Soft)
Available video driver: x11
Available video driver: dummy
NO SELFEXE: bootstrapping from CWD

I can provide more trace. Can it be package's fault, because there's no file libte4-web.so present, because of underspecified dependencies? Or Nix has nothing to do with it?

It works for me, with the same store path. I do also see that message, so it might not be related to the problem you're having.

(triage) Works here. I suggest we close. cc @jagajaga

Works for me as well. Please reopen if the problem remains.


can't connect to azure cli ??? What I can do

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az login
Errors:
The command failed with an unexpected error. Here is the traceback:
Unable to find wstrust endpoint from MEX. This typically happens when attempting MSA accounts. More details available here. https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki/Username-Password-Authentication
Traceback (most recent call last):
  File "/opt/az/lib/python3.10/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 663, in execute
    raise ex
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 726, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 697, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 333, in __call__
    return self.handler(*args, **kwargs)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
    return op(**command_args)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/command_modules/profile/custom.py", line 139, in login
    subscriptions = profile.login(
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/_profile.py", line 157, in login
    user_identity = identity.login_with_username_password(username, password, scopes=scopes, **kwargs)
  File "/opt/az/lib/python3.10/site-packages/azure/cli/core/auth/identity.py", line 172, in login_with_username_password
    result = self._msal_app.acquire_token_by_username_password(username, password, scopes, **kwargs)
  File "/opt/az/lib/python3.10/site-packages/msal/application.py", line 1619, in acquire_token_by_username_password
    response = _clean_up(self._acquire_token_by_username_password_federated(
  File "/opt/az/lib/python3.10/site-packages/msal/application.py", line 1641, in _acquire_token_by_username_password_federated
    raise ValueError("Unable to find wstrust endpoint from MEX. "
ValueError: Unable to find wstrust endpoint from MEX. This typically happens when attempting MSA accounts. More details available here. https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki/Username-Password-Authentication

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az login -u {} -p {}

Expected Behavior
Environment Summary
Linux-5.15.0-53-generic-x86_64-with-glibc2.35, Ubuntu 22.04.1 LTS
Python 3.10.8
Installer: DEB

azure-cli 2.42.0

Additional Context

@jiasli for awareness


Token endpoint filter error message should be handled using ControllerAdvice

Expected Behavior
Writing @RestController advice for token endpoint should be able to customize the error response
Current Behavior
Current behaviors poses us to use error response handler and need to handle each exception

@learningvkpg Spring Authorization Server is based off of Spring Security (see Architecture), which uses Filter as the main processor. Controller is only reached if the Filter allows the request to proceed. If an error happens in the Filter (e.g. OAuth2TokenEndpointFilter) it will never reach the Controller. Therefore, customizing the error response must be performed by OAuth2TokenEndpointFilter.authenticationFailureHandler.
I'm going to close this based on the explanation provided.


pip install celi-framework==0.0.16 not working

(celi-0.0.15) jwag@Jan-Samuels-MacBook-Pro test_celi % python -m celi_framework.main
2024-04-20 06:55:18,061 main DEBUG - Starting CELI
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/Users/jwag/anaconda3/envs/celi-0.0.15/lib/python3.11/site-packages/celi_framework/main.py", line 166, in
config = get_config()
^^^^^^^^^^^^
File "/Users/jwag/anaconda3/envs/celi-0.0.15/lib/python3.11/site-packages/celi_framework/main.py", line 131, in get_config
tool_implementations = job_description.tool_implementations_class(**tool_config)
^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'tool_config' where it is not associated with a value
.env:
OPENAI_API_KEY=
OUTPUT_DIR=target/celi_output
DB_URL=mongodb://localhost:27017/
EXTERNAL_DB=True
NO_MONITOR=True
JOB_DESCRIPTION=celi_framework.examples.wikipedia.job_description.job_description
TOOL_CONFIG_JSON=celi_framework/examples/wikipedia/example_config.json
PARSER_MODEL_CLASS=llm_core.parsers.OpenAIParser
PARSER_MODEL_NAME=gpt-3.5-turbo-16k

I created a PR to fix that, but there is still something wrong with your setup.
Is your .env file in the directory where you are running python from?  The only way I can replicate your error is by removing my .env file.
I added logging so it prints out the environment variable now.  That should help clarify.

Merged your changed. Deployed as v0.0.17.
new anaconda env
pip install celi-framework
conda list:
celi-framework            0.0.17                   pypi_0    pypi
mkdir test_celi
cd test_celi
nano .env:
OPENAI_API_KEY=
OUTPUT_DIR=target/celi_output
DB_URL=mongodb://localhost:27017/
EXTERNAL_DB=True
NO_MONITOR=True
JOB_DESCRIPTION=celi_framework.examples.wikipedia.job_description.job_description
TOOL_CONFIG_JSON=celi_framework/examples/wikipedia/example_config.json
PARSER_MODEL_CLASS=llm_core.parsers.OpenAIParser
PARSER_MODEL_NAME=gpt-3.5-turbo-16k
python -m celi_framework.main
(celi-0.0.17) jwag@Jan-Samuels-MacBook-Pro test_celi % python -m celi_framework.main
2024-04-21 08:34:48,803 main DEBUG - Starting CELI
2024-04-21 08:34:48,803 main INFO - Tool config env. var is
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/Users/jwag/anaconda3/envs/celi-0.0.17/lib/python3.11/site-packages/celi_framework/main.py", line 167, in
config = get_config()
^^^^^^^^^^^^
File "/Users/jwag/anaconda3/envs/celi-0.0.17/lib/python3.11/site-packages/celi_framework/main.py", line 132, in get_config
tool_implementations = job_description.tool_implementations_class(**tool_config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: WikipediaToolImplementations.init() missing 2 required positional arguments: 'example_url' and 'target_url'

Merged your changed. Deployed as v0.0.17.
new anaconda env
pip install celi-framework
conda list:
celi-framework 0.0.17 pypi_0 pypi
mkdir test_celi
cd test_celi
nano .env:
OPENAI_API_KEY=
OUTPUT_DIR=target/celi_output
DB_URL=mongodb://localhost:27017/
EXTERNAL_DB=True
NO_MONITOR=True
JOB_DESCRIPTION=celi_framework.examples.wikipedia.job_description.job_description
TOOL_CONFIG_JSON=celi_framework/examples/wikipedia/example_config.json
PARSER_MODEL_CLASS=llm_core.parsers.OpenAIParser
PARSER_MODEL_NAME=gpt-3.5-turbo-16k
python -m celi_framework.main
(celi-0.0.17) jwag@Jan-Samuels-MacBook-Pro test_celi % python -m celi_framework.main
2024-04-21 08:34:48,803 main DEBUG - Starting CELI
2024-04-21 08:34:48,803 main INFO - Tool config env. var is
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/Users/jwag/anaconda3/envs/celi-0.0.17/lib/python3.11/site-packages/celi_framework/main.py", line 167, in
config = get_config()
^^^^^^^^^^^^
File "/Users/jwag/anaconda3/envs/celi-0.0.17/lib/python3.11/site-packages/celi_framework/main.py", line 132, in get_config
tool_implementations = job_description.tool_implementations_class(**tool_config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: WikipediaToolImplementations.init() missing 2 required positional arguments: 'example_url' and 'target_url'

Ok, figured it out.  This was a bit tricky.
When running python with -m, load_dotenv DOESN'T search your current working directory.
If there is a main module (which is what happens when you run a script or from Jupyter), then it does use the current dir.
If there is no maim module (which happens with -m, the module is loaded as celi_framework_main and not main), it finds the root of the current stack trace and then searches up in the directory hierarchy from there.
This works if you put your venv inside your current directory (which I do by default), but doesn't if your venv is not.  That's why you were having issues.
The fix is just to tell load_dotenv in celi_framework.main to always use the cwd.

Hey Dave since you'll have OS X to test I'll approve code reviews and then you can just merge, deploy and test off pip install.


Ships only visible when toggling depth scale

Hi! First of all thank you for this very nice API!
When running your test file (tests/test_seacharts.py) with the dataset you mentioned, everything works fine except for the ships visualization. They are only rendered when the depth colorbar is toggled (by pressing the 'c' key), meaning they appear when I press 'c', and then immediately after disappear again. If I simply maintain 'c', ships are blinking (Infinitely toggling ). Am I doing something wrong?

I've installed everything through miniconda3 on my windows machine.
Thank you very much for your help!

Thank you for your nice comment and input, any feedback such as this is highly appreciated.
I do not believe you're doing anything wrong, I remember having some difficulties while implementing this exact functionality a few years ago. Thus I'm suspecting that it's simply a stubborn bug related to the animation behavior in the SeaCharts code for displaying the vessels. Whether it has persisted for a long time or if it appeared in one of the latest updates, I wouldn't know.
I plan on taking a look at this issue when I find the time during the coming months, thank you very much for reporting it.


Update release templates to handle workflow for image caching

Closing this since the issue will be resolved by infrastructure changes: https://github.com/dotnet/docker-tools/issues/642


feat: add numpy to requirements

It gets pulled in by zarr and h5py but since it's explicitly used in the
code, nicer to have it explicitly listed too.

I think it's fine have have it as an implied requirement


[epoch] Restart checkpoint service at epoch boundary

This PR has only 1 line changing reconfiguration parameters - wrong commit pushed?


[OAP-1523][oap-native-sql]clean up metric

this patch cleans up metrics by adding total time
fixes #1523

@xuechendi thanks for the review!


cli: added config:docs command

Signed-off-by: Patrik Oldsberg<EMAIL_ADDRESS>Hey, I just made a Pull Request!
This wires up the config-schema plugin deployed through https://github.com/backstage/config-schema-viewer and makes it available via the backstage-cli config:docs command. Running the config:docs command opens up the docs for the local schema in the browser.
:heavy_check_mark: Checklist

[x] 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)

This doesn't work just yet, since config.backstage.io is not pointing to GitHub Pages yet

config.backstage.io is now set up properly, so can go ahead with this :>

Thinking we try this out but then potentially switch to an approach that uses a local server with the config viewer bundled instead if this causes too much trouble. Really the main downside of the bundled approach is that we have to set it all up, but it'll allow us to do live reloads of the schema and won't require an internet connection.


config file parameter setting

This is an outstanding project!
I plan to use my own llff data for training, but I don't know how to set the parameters scale and min_near.
Can you solve my only confusion?
Best Wish！
Chenglong

This is also an issue from torch-ngp (and maybe all grid-based NeRF), where you need to manually find the best scale for each scene.


Standalone Bazel build broken after switch to Python tables

The following change broke the standalone Bazel build:
https://github.com/google/perfetto/commit/3df8a7e58102422ff2b8e52a465dabd3132e58d8
tp: migrate all table functions to use Python based tables
...it is causing this error:
FileNotFoundError: [Errno 2] No such file or directory: 'bazel-out/k8-fastbuild/bin/external/perfetto/../perfetto_standalone/external/perfetto/src/trace_processor/tables/android_tables_py.h'

I created a clean Bazel project that only pulls Perfetto in standalone mode,  and did a binary search. The previous commit builds fine, but at that particular commit, we start getting the py.h errors.  A minimal repro workspace is attached.
perfetto_standalone.zip
Contents of simple WORKSPACE file:
$ cat WORKSPACE
workspace(name = "perfetto_standalone")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
new_local_repository(
    name = "perfetto_cfg",
    path = "build/perfetto_overrides",
    build_file = "@perfetto_standalone//build/perfetto_overrides:BUILD",
)
http_archive(
    name = "perfetto",

    # THIS ONE WORKS:
    # Apr 24, 2023
    # 0c9981057a2d528a3619350a653ad78a9d5fc88b
    #url = "https://github.com/google/perfetto/archive/0c9981057a2d528a3619350a653ad78a9d5fc88b.zip",
    #strip_prefix = "perfetto-0c9981057a2d528a3619350a653ad78a9d5fc88b",

    # THIS ONE DOES NOT WORK:
    # Apr 24-25 in between, 2023
    # 3df8a7e58102422ff2b8e52a465dabd3132e58d8
    url = "https://github.com/google/perfetto/archive/3df8a7e58102422ff2b8e52a465dabd3132e58d8.zip",
    strip_prefix = "perfetto-3df8a7e58102422ff2b8e52a465dabd3132e58d8",
)

load("@perfetto_standalone//:deps.bzl", "perfetto_deps");
perfetto_deps()
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
protobuf_deps()

The error we get with standalone build:
$ CC=/usr/bin/clang-12 $BAZEL build @perfetto//:trace_processor_shell
INFO: Analyzed target @perfetto//:trace_processor_shell (24 packages loaded, 177 targets configured).
INFO: Found 1 target...
ERROR: /home/emrekultursay_google_com/.cache/bazel/_bazel_emrekultursay_google_com/272848397eeda72a9e3290173b4ea023/external/perfetto/BUILD:2048:22: Executing genrule @perfetto//:src_trace_processor_tables_tables_python_gen failed: (Exit 1): bash failed: error executing command (from target @perfetto//:src_trace_processor_tables_tables_python_gen) /bin/bash -c ... (remaining 1 argument skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
Traceback (most recent call last):
  File "/home/emrekultursay_google_com/.cache/bazel/_bazel_emrekultursay_google_com/272848397eeda72a9e3290173b4ea023/sandbox/linux-sandbox/1255/execroot/perfetto_standalone/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/perfetto/src_trace_processor_tables_tables_python_tool.runfiles/perfetto/tools/gen_tp_table_headers.py", line 103, in <module>
    sys.exit(main())
  File "/home/emrekultursay_google_com/.cache/bazel/_bazel_emrekultursay_google_com/272848397eeda72a9e3290173b4ea023/sandbox/linux-sandbox/1255/execroot/perfetto_standalone/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/perfetto/src_trace_processor_tables_tables_python_tool.runfiles/perfetto/tools/gen_tp_table_headers.py", line 94, in main
    with open(out_path, 'w', encoding='utf8') as out:
FileNotFoundError: [Errno 2] No such file or directory: 'bazel-out/k8-fastbuild/bin/external/perfetto/../perfetto_standalone/external/perfetto/src/trace_processor/tables/android_tables_py.h'
Target @perfetto//:trace_processor_shell failed to build
Use --verbose_failures to see the command lines of failed build steps.
ERROR: /home/emrekultursay_google_com/.cache/bazel/_bazel_emrekultursay_google_com/272848397eeda72a9e3290173b4ea023/external/perfetto/BUILD:4851:19 Middleman _middlemen/@perfetto_S_S_Ctrace_Uprocessor_Ushell-BazelCppSemantics_build_arch_k8-fastbuild failed: (Exit 1): bash failed: error executing command (from target @perfetto//:src_trace_processor_tables_tables_python_gen) /bin/bash -c ... (remaining 1 argument skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
INFO: Elapsed time: 1.109s, Critical Path: 0.82s
INFO: 11 processes: 9 internal, 2 linux-sandbox.
FAILED: Build did NOT complete successfully

https://r.android.com/3066342 should fix this.

Using perfetto repo at head, the standalone build still fails. Can you take another look?
$ bazel build @perfetto//:trace_processor_shell
INFO: Analyzed target @@perfetto//:trace_processor_shell (0 packages loaded, 0 targets configured).
ERROR: /usr/local/google/home/emrekultursay/.cache/bazel/_bazel_emrekultursay/5450d8248aaea21aedb8ab7f411448ee/external/perfetto/BUILD:5986:19: Compiling src/trace_processor/export_json.cc failed: (Exit 1): gcc failed: error executing CppCompile command (from target @@perfetto//:trace_processor_shell) /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer '-std=c++14' -MD -MF ... (remaining 95 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
In file included from bazel-out/k8-fastbuild/bin/external/perfetto/src/trace_processor/tables/android_tables_py.h:37,
                 from external/perfetto/src/trace_processor/storage/trace_storage.h:43,
                 from external/perfetto/src/trace_processor/export_json.h:24,
                 from external/perfetto/src/trace_processor/export_json.cc:18:
bazel-out/k8-fastbuild/bin/external/perfetto/src/trace_processor/tables/metadata_tables_py.h:37:10: fatal error: ../_main/external/perfetto/src/trace_processor/tables/metadata_tables_py.h: No such file or directory
   37 | #include "../_main/external/perfetto/src/trace_processor/tables/metadata_tables_py.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Target @@perfetto//:trace_processor_shell failed to build

The error can be reproduced using the example in the sample attached above, with an updated WORKSPACE that has:
http_archive(
    name = "perfetto",
    url = "https://github.com/google/perfetto/archive/e42fee560e5e33687c275f6ec33d1b0dc9297dff.zip",
    strip_prefix = "perfetto-e42fee560e5e33687c275f6ec33d1b0dc9297dff",
)

https://r.android.com/3067905 should fix that: I forgot to also apply the same logic a bit later in the same file.


CMILib loads copy if file was renamed

Newest Version Downloads Copy even if newest Version is there...

[09:35:46] [Server thread/ERROR]: Ambiguous plugin name CMILib' for files plugins/CMILib_<IP_ADDRESS>.jar' and plugins/CMILib<IP_ADDRESS>.jar' in plugins'

Issues solved.
Problem is the forgotten Versionupdate in plugin.yml in <IP_ADDRESS>
It still says <IP_ADDRESS>


cherry-pick fix conv function get wrong result as parse overflow (#38001)

Proposed changes
cherry-pick from https://github.com/apache/doris/pull/38001

run buildall


fix: missing cli.js from commit

Coverage remained the same at 93.966% when pulling 9b9d48809c5e90cc08f65a88da48aba377d5d5c0 on helio-frota:lr-fix into 9a22191fe43a8c22e987eba07b27203186883815 on bucharest-gold:master.

Coverage remained the same at 93.966% when pulling 9b9d48809c5e90cc08f65a88da48aba377d5d5c0 on helio-frota:lr-fix into 9a22191fe43a8c22e987eba07b27203186883815 on bucharest-gold:master.

@danbev thanks!


Unclear that at least one excluded user is a requirement

It should be made clear that step 5.b. is not optional, if you don't include at least one exclusion the instructions fail with the typically vague "Policy configuration not supported. Review the assignments and controls."

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

ID: 53b567e4-ba41-7042-f978-08fd33c4bb39
Version Independent ID: 263331ca-358e-420d-4ae7-dde93c69ed84
Content: Conditional Access - Block legacy authentication - Azure Active Directory
Content Source: articles/active-directory/conditional-access/howto-conditional-access-policy-block-legacy.md
Service: active-directory
Sub-service: conditional-access
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@unkn0wnvariable Thank you for your feedback. We will investigate and update the thread further.

@unkn0wnvariable Thank you for pointing this out. I am updating the instructions. This thread will automatically be closed during the merger.


Rippled returns success when subscribing to invalid stream (Version: 1.9.1)

Issue Description
When subscribing to an account, rippled returns success when it should error with invalidParams.
Steps to Reproduce
{
  "id": "Example watch one account and all new ledgers",
  "command": "subscribe",
  "account": [
    "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"
  ]
}

Notice that the field is name account, not accounts.
Send this request to the testnet or devnet (not Clio) using https://xrpl.org/websocket-api-tool.html#subscribe.
Expected Result

I would expect an invalidParams error, as account (or accout or any misspelled variation of accounts) is not a valid stream.  If rippled can't actually subscribe to any events, then it should respond to the client with an error.
Actual Result
  "id": "Example watch one account and all new ledgers",
  "result": {
    "warnings": [
      {
        "id": 1004,
        "message": "This is a reporting server.  The default behavior of a reporting server is to only return validated data. If you are looking for not yet validated data, include \"ledger_index : current\" in your request, which will cause this server to forward the request to a p2p node. If the forward is successful the response will include \"forwarded\" : \"true\""
      }
    ]
  },
  "status": "success",
  "type": "response"
}

That doesn't actually publish any transactions to the subscriber.

A simple else if statement would fix this coding issue. If it is successful echo "Status"
Else Echo "Reason" If there are more than 1 option for "Reason" then throw the "Reasons" variable into a loop!
If "id" = "id" echo "status" Else echo "response"
"id": "Example watch one account and all new ledgers",
"result": {
"warnings": [
{
"id": 1004,
"message": "This is a reporting server.  The default behavior of a reporting server is to only return validated data. If you are looking for not yet validated data, include "ledger_index : current" in your request, which will cause this server to forward the request to a p2p node. If the forward is successful the response will include "forwarded" : "true""
}
]
},
Else echo "type"
"status": "success",
"type": "response"
}


fix: pass a reference to CopyCodeButton to prevent re-render

Motivation
Fixes #70
Solution

Use RefObject to store the children for the copy-paste button to prevent re-rendering.
Move components and rehypePlugins to outer scope to prevent re-creation on render (useMemo could also be used, but I think this is cleaner).

Checklist

[x] Tested in Chrome
[x] Tested in Safari

@transmissions11 anything I can do to help get this merged in?

lgtm! nice work


Remove Non-members

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 250 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~5 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Deploy preview for landscape ready!
Built with commit e0113b272f51c98ffb3eafd93d49ef627ea10f17
https://deploy-preview-1055--landscape.netlify.com

Deploy preview for landscape failed.
Built with commit f8f5d009d44d755614ea737cbed90d7dc5656d6d
https://app.netlify.com/sites/landscape/deploys/5c2a8b316cf67a00089d0257

Deploy preview for landscape ready!
Built with commit 73437ffe897d6787f74e192f6132ea1579d511ab
https://deploy-preview-1055--landscape.netlify.com

Deploy preview for landscape failed.
Built with commit f8f5d009d44d755614ea737cbed90d7dc5656d6d
https://app.netlify.com/sites/landscape/deploys/5c2a8dafe22b3c202cf6dfb1

LGTM