windows starts after 20/30 seconds after container has been started

Hi @everybody I'm running windows image as described in this repo ( rigth now outside selenoid running command with a CI/CD tool) and recording with selenoid/video-recorder, I've noted that qemu starts too late as you can see in this video.
VIDEO
When the CI/CD tool execute docker with  windows image this output is shown.
Waiting xvfb...

 --- x11vnc loop: 1 ---

 --- x11vnc loop: waiting for: 30

PORT=5900
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]
qemu-system-x86_64: warning: TSC frequency mismatch between VM (1992000 kHz) and host (2194710 kHz), and TSC scaling unavailable
qemu-system-x86_64: warning: TSC frequency mismatch between VM (1992000 kHz) and host (2194710 kHz), and TSC scaling unavailable
qemu-system-x86_64: warning: guest updated active QH

As I can see everything is working correctly. Performance depends on
hardware and resources available for the container. Please note that qemu
starts virtual machine with windows it takes some time, 20 sec is good
result...
вс, 24 нояб. 2019 г., 12:53 Toni Moreno<EMAIL_ADDRESS>
Hi @everybody https://github.com/everybody I'm running windows image as
described in this repo ( rigth now outside selenoid running command with a
CI/CD tool) and recording with selenoid/video-recorder, I've noted that
qemu starts too late as you can see in this video.
VIDEO
https://drive.google.com/file/d/11sPQYxd2xXJC8TaQi1BYeMwJqmZE_GA5/view?usp=sharing
When the CI/CD tool execute docker with windows image this output is shown.
Waiting xvfb...
--- x11vnc loop: 1 ---
--- x11vnc loop: waiting for: 30
PORT=5900
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]
qemu-system-x86_64: warning: TSC frequency mismatch between VM (1992000 kHz) and host (2194710 kHz), and TSC scaling unavailable
qemu-system-x86_64: warning: TSC frequency mismatch between VM (1992000 kHz) and host (2194710 kHz), and TSC scaling unavailable
qemu-system-x86_64: warning: guest updated active QH
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/aerokube/windows-images/issues/25?email_source=notifications&email_token=AAKY23NAAUVJ7EDAMUDEH43QVJFHZA5CNFSM4JQ6JMYKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H3TVNOQ,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKY23IP3NUS2HBDD2AKTIDQVJFHZANCNFSM4JQ6JMYA
.

Hi @aandryashin , thank you for the fast response.
I've been comparing with my laptop where vm start  takes 1 or 2 seconds... is because of that I believed that is not as good result as you say. Anyway I was wondering about "TSC frequency " errors , and if this could impact on the vm start time and if there is any way to accelerate  with the  docker run command or qemu parameters.

I never seen that vm starts in one second, especially on laptop... Those
warnings are about cpu capabilities, you can play with qemu options to
enable/disable some of them...
вс, 24 нояб. 2019 г., 20:15 Toni Moreno<EMAIL_ADDRESS>
Hi @aandryashin https://github.com/aandryashin , thank you for the fast
response.
I've been comparing with my laptop where vm start takes 1 or 2 seconds...
is because of that I believed that is not as good result as you say. Anyway
I was wondering about "TSC frequency " errors , and if this could impact on
the vm start time and if there is any way to accelerate with the docker run
command or qemu parameters.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aerokube/windows-images/issues/25?email_source=notifications&email_token=AAKY23MJZLZ7FGDGTCJBOATQVKZBVA5CNFSM4JQ6JMYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAQE3A#issuecomment-557908588,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKY23LB6PMY7WZKO7IXRB3QVKZBVANCNFSM4JQ6JMYA
.


Switch to  Criterion for Benchmarking.

Right now, we use the standard libraries benchmarking tool for benchmarking.
Despite it's easy of use, there are a couple drawbacks for using it:

No customization on the number of runs
Output is limited to a number + estimated degree of confidence

It would be beneficial to switch the benchmarks to Criterion.rs, to get more detailed analysis of the benchmarks, alongside additional benchmark customization.

May I note, this is especially important as it gives the ability to benchmark with a setup stage in-between runs, ala Bencher::iter_with_setup.

Closed with #95


Add to_bytes_padded or conversion to crypto_bigint::Uint

Hello, I am running into issues trying to convert an arbitrarily large BigUint into a fixed size crypto_bigint::Uint (Specifically, I'm working with p384 elliptic curve). To ensure the number fits into the fixed size Uint, I am performing modulo reduction beforehand.
A workaround I found it to use BigUint::to_bytes_be() and reinterpreting the bytes. However, for this I need to pad the resulting bytes to the fixed length required for  crypto_bigint::Uint.  Openssl BigNums provide a to_vec_padded for this exact use case.
Would it be possible to get something similar in this crate? Alternatively an efficient way to convert from BigUint to crypto_bigint::Uint (perhaps even in place) would be amazing.
Thanks for the time!

It looks like crypto_bigint uses a little-endian representation itself, so I think you could efficiently use BigUint::to_bytes_le, then .resize(len, 0) for padding and pass it to Uint::from_le_slice.

Ah thanks, I forgot that resize works nicely with little endian here. I suppose the extra resize could end up with an extra allocation though. A direct conversion could also probably still be done faster, but understandably not worth the effort.
Anyways, this works for me at the moment. You can close the issue if you aren't interested in adding a slightly optimized to_bytes_padded()


Documentation: are downloads cached for repeat play?

Was just wondering if I have a song on repeat, do we download the whole video every time?

Alternatively: wouldn't it make sense to save the GStreamer-extracted audio stream into a local cache?


qmi_install.sh fails to extract quectel-CM.zip

Because of the fact that this script needs to be run with sudo and runs whoami in a few places under the hood, it fails to unzip quectel-CM.zip (because sudo whoami returns root, but the default home directory on raspi os is /home/pi).
It seems this recent commit is where this was introduced: https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/commit/a669005d480605e2cae75e5d384d0f30f929f331
I would suggest that the /home/$(whoami)/files/... bit be removed altogether, and that the script just uses the current working directory (something like ./files/ or ./quectel-cm-files/ etc.). I'm happy to try to contribute on this, but I don't have a raspi handy for a few days so it will be tricky to test.
Here is a sample output:
pi@raspberrypi:~ $ sudo ./qmi_install.sh
Clean Old Files
Change directory to /home/root
./qmi_install.sh: 24: cd: can't cd to /home/root
Downloading source files
--2020-11-20 16:54:37--  https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving github.com (github.com)... <IP_ADDRESS>
Connecting to github.com (github.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip [following]
--2020-11-20 16:54:38--  https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... <IP_ADDRESS>
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 148627 (145K) [application/zip]
Saving to: ‘quectel-CM.zip’

quectel-CM.zip                            100%[==================================================================================>] 145.14K  --.-KB/s    in 0.1s

2020-11-20 16:54:38 (1.40 MB/s) - ‘quectel-CM.zip’ saved [148627/148627]

Archive:  quectel-CM.zip
checkdir:  cannot create extraction directory: /home/root/files
           No such file or directory
Checking Kernel
5.4.65+ based kernel contains driver
Installing udhcpc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  udhcpc
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 24.3 kB of archives.
After this operation, 39.9 kB of additional disk space will be used.
Get:1 http://raspbian.mirror.constant.com/raspbian buster/main armhf udhcpc armhf 1:1.30.1-4 [24.3 kB]
Fetched 24.3 kB in 1s (25.0 kB/s)
Selecting previously unselected package udhcpc.
(Reading database ... 55377 files and directories currently installed.)
Preparing to unpack .../udhcpc_1%3a1.30.1-4_armhf.deb ...
Unpacking udhcpc (1:1.30.1-4) ...
Setting up udhcpc (1:1.30.1-4) ...
Processing triggers for man-db (2.8.5-2) ...
Copying udhcpc default script
cp: cannot stat '/home/root/files/quectel-CM/default.script': No such file or directory
chmod: cannot access '/usr/share/udhcpc/default.script': No such file or directory
Change directory to /home/root/files/quectel-CM
./qmi_install.sh: 61: cd: can't cd to /home/root/files/quectel-CM
make: *** No targets specified and no makefile found.  Stop.
chmod: cannot access '/home/root/files/quectel-CM': No such file or directory
After reboot please follow commands mentioned below
go to /home/root/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press ENTER key to reboot

https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/blob/a669005d480605e2cae75e5d384d0f30f929f331/tutorials/QMI_tutorial/qmi_install.sh#L15

As a follow-up thought, executing who am i instead of whoami will get the current session user, regardless of sudo/elevation:
Something like this might work if you don't wish to change the behavior too much:
DIR=/home/$(who am i | awk '{print $1}')/files

This still relies on the home directory of the user being in /home/username/files however.

I also got this to extract properly (after I had removed pi and used a different username) by replacing all pi references with $SUDO_USER


Fix webhook update for Point

Description:
The pypoint library had an issue with webhook-id, this fixes that and ensures that the right device is updated.
Example entry for configuration.yaml (if applicable):

Checklist:

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

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

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

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

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

If the code does not interact with devices:

[x] Tests have been added to verify that the new code works.

Can be merged when build passes.


add 08-data-dump-restore.en.md,09-problem-performance.en.md and 12-opentenbase_subscription.en.md

English translations of these markdown documents have been added:08-data-dump-restore.md,09-problem-performance.md and 12-opentenbase_subscription.md

 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.


Reaper Constant Re-focusing Within The Main Window

Hi, sorry to bother you with the legacy X11 stuff, but i really like Hyprland and switched to it as a daily driver. Everything works great except for Reaper(of course lol).  I use Reaper as my main audio production tool and rely on it at the studio. Unfortunately there are no news from the Reaper devs about making it Wayland ready so i was hoping that we could try to get it ironed out a bit.
As a couple of users before mentioned before that Sway seemed to had all those things too but they fixed them in the git version.
I could see that the menu bug was fixed, but there is one with the pop-up windows and the constant refocusing one.
The pop-up window bug:
Initially when i tried to use Reaper, the following would happen: anytime i would open a patch menu or a plugin, it would spawn a small popup window on the top of the main window(with the plugin or something similar) the window would be focused. As i start moving the mouse way from the button and towards  the window it would close itself.
I found a fix for this by using these window rules together:   follow_mouse=1    mouse_refocus=false
I don't know if it's a good fix but it seemed to have fixed the the popup disappearing problem.
The refocus bug:
This one is the most annoying: when you hover over buttons(mute, solo etc), sliders(faders) and other elements within the main window, the main window keeps constantly going in and out of focus. It seems like Hyprland thinks that each of those elements is a separate window so it keeps shifting the focus away from the min window. This causes slowness, when you work fast the mouse clicks on faders or pan wheels  don't register(or refocus) fast enough and you end up missing and there's no "fader grab action" happening so you end up dragging nothing. Sway on the other hand doesn't exhibit that behavior and the main window stays focused at all times and there's no lag and actuation misses mentioned above.
I don't know how useful is the Sway comparison, but it would seem like there should be a simple fix for this...
Lmk what you guys think, any help would be greatly appreciated!

I have a workaround that seems to fix these issues for me. I am using these window rules:
windowrulev2 = move cursor,class:REAPER,floating:1
windowrulev2 = nofocus,class:REAPER,title:^(menu)$
windowrulev2 = nofocus,class:REAPER,title:^$

I believe the refocus bug isn't due to the element itself, but due to the tooltip which pops up when you hover over an element or grab a fader. The last rule there sets nofocus on the tooltip windows, which fixes that issue.

Seem to have worked.
I knew it was something window rule related!
Thank you!

I ended up just keeping the windowrulev2 = nofocus,class:REAPER,title:^$
and the windowrule=noanim,^(REAPER)$ because of the janky animations on Xawyland.
Works like a charm now, case closed!


Kotlin: inaccessible constant Trigger.NOW

I get this error trying to use library in Kotlin
Type JobTrigger.ImmediateTrigger! is inaccessible in this context due to JobTrigger.ImmediateTrigger!

What version of Kotlin are you using?

1.0.2

This issue is Trigger.NOW is of type ImmediateTrigger which is package private. Kotlin can't handle accessible objects with unaccessible types for some reason. Making Trigger.NOW of the more general type Trigger should fix it. Although I would argue this is more a bug with kotlin than this library.

Thanks for the explanation @sburba. I'm going to follow up with the rest of the team this week, but it's likely we'll end up making the change you describe.

Similar error.
I am also using the 1.0.2 of Kotlin.

Trigger is not visible.

I can understand the package/private constructor on those types. But package level class definitions is a bit weird, if you are going to do that, then return the generic type.
I would argue that Kotlin actually handles this correctly, Trigger should be public and you return that instead of the package private types.

then return the public type... I would argue that Kotlin actually handles this better

Agree. And if you tried to define this in Kotlin it wouldn't actually compile. javac is being far too permissive here.
You can flag this as a fatal problem in IntelliJ/AS when developing:

Same issue for me.

Same here
@ciarand could you make JobTrigger public and remove Trigger ?
I don't understand why we need Trigger class (seems like helper class), logic in JobTrigger and Trigger is plain simple, it could be merged and put in JobTrigger (with all argument checking, exceptions and NOW constant)

Does anyone have an interim solution other than forking and making the change for #43?

@nevi-me There is one https://github.com/outlying/card-check/blob/master/app/src/main/java/com/antyzero/cardcheck/TriggerConfigurator.java

great stuff @outlying, thanks!

@outlying If you want to stay full-Kotlin, this workd too:
package com.firebase.jobdispatcher

class TriggerConfiguration {
    companion object {
        fun executionWindow(builder: Job.Builder, windowStart: Int, windowEnd: Int) {
            builder.trigger = Trigger.executionWindow(windowStart, windowEnd)
        }
    }
}

Hey folks, v0.5.1 (available on JCenter) includes a fix for this.

Thanks @ciarand


Does not support model CUH-ZCT2E

Issue: ds4drv does not recognize some of the newer DS4 devices, including CUH-ZCT2E.
Expected behavior: ds4drv would recognize this controller like any other.
Potentially related bugs: #104, #114, #162, #163
Related info: My controller shows up using lsusb as 054c:05c4 Sony Corp. DualShock 4. My output when using ds4drv:
[info][controller 1] Created devices /dev/input/js1 (joystick) /dev/input/event16 (evdev)
[info][bluetooth] Scanning for devices

At this point it hangs. Same thing when using hidraw via USB:
$ ds4drv --hidraw
[info][controller 1] Created devices /dev/input/js1 (joystick) /dev/input/event16 (evdev)
[info][hidraw] Scanning for devices

I don't think that it's being recognized by hidraw at all. See this output after plugging it in from dmesg:
[61094.034997] usb 1-3: new full-speed USB device number 15 using xhci_hcd
[61094.184448] usb 1-3: New USB device found, idVendor=054c, idProduct=05c4
[61094.184470] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[61094.184484] usb 1-3: Product: Wireless Controller
[61094.184495] usb 1-3: Manufacturer: Sony Computer Entertainment
[61099.394990] sony 0003:054C:05C4.0013: failed to retrieve feature report 0x81 with the DualShock 4 MAC address

My system:
$ lsb_release -cdr:
Description:	Ubuntu 18.04.2 LTS
Release:	18.04
Codename:	bionic
$ uname -rs
Linux 4.15.0-46-generic

Looks like this was from accidentally buying a knockoff controller. Using one that I'm more confident was an official controller works fine. Thanks!

the CUH-ZCT2E is not a knockoff controller, and I can confirm that it does not work.
How do I know that? Well, my PS4 came with it. Also, if you search the Sony website, there's even an user manual for that model.

is there any updates about this? i am experiencing the exact same issue

On Arch, I modified the hid-sony-ds3usb-dkms package with the patch that chloekek referenced so that my Wingman XE adapter could be recognized as a DS4 controller.  This adapter, and I presume many knock-off, or alternative controllers, use feature report 0x12 instead of 0x81.  I think adding support to 0x12 in ds4drv would be of great benefit to users.
See more information at my blog.

I picked up a knock-off ds4 controller and it identifies itself as 054C:09CC which is a CUH-ZCT2x variant.  It's device name would match ds4drv information, same as noted above.
Without the custom software from my previous message, here is the dmesg:
usb 8-1.2: new full-speed USB device number 11 using xhci_hcd
usb 8-1.2: New USB device found, idVendor=054c, idProduct=09cc, bcdDevice= 1.00
usb 8-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 8-1.2: Product: Wireless Controller
usb 8-1.2: Manufacturer: Sony Interactive Entertainment
sony 0003:054C:09CC.000C: failed to retrieve feature report 0x81 with the DualShock 4 MAC address
sony 0003:054C:09CC.000C: hidraw9: USB HID v81.11 Gamepad [Sony Interactive Entertainment Wireless Controller] on usb-0000:00:10.1-1.2/input3
sony 0003:054C:09CC.000C: failed to claim input

And here it is with my hid-sony-ds3usb-dkms package that I build for Arch Linux.
usb 8-1.2: new full-speed USB device number 12 using xhci_hcd
usb 8-1.2: New USB device found, idVendor=054c, idProduct=09cc, bcdDevice= 1.00
usb 8-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 8-1.2: Product: Wireless Controller
usb 8-1.2: Manufacturer: Sony Interactive Entertainment
input: Sony Interactive Entertainment Wireless Controller Touchpad as /devices/pci0000:00/0000:00:10.1/usb8/8-1/8-1.2/8-1.2:1.3/0003:054C:09CC.000E/input/input47
input: Sony Interactive Entertainment Wireless Controller Motion Sensors as /devices/pci0000:00/0000:00:10.1/usb8/8-1/8-1.2/8-1.2:1.3/0003:054C:09CC.000E/input/input48
input: Sony Interactive Entertainment Wireless Controller as /devices/pci0000:00/0000:00:10.1/usb8/8-1/8-1.2/8-1.2:1.3/0003:054C:09CC.000E/input/input46
sony 0003:054C:09CC.000E: input,hidraw9: USB HID v81.11 Gamepad [Sony Interactive Entertainment Wireless Controller] on usb-0000:00:10.1-1.2/input3

So that patch works for any generic controller, especially those that identify themselves with a proper VID:PID.  I can work for other similarly capable devices as long as their VID:PID is patched in as was noted in my blog.

i am sorry but can you please upload the patched files? thank you!

I can't because the method I used turns a kernel module into dkms.  You can extract my arch patch with commands:
patch -Np1 -i hid-sony-ds3usb-dkms.patch
patch -Np1 -i hid-sony-ds3usb.patch

You'd still need appropriate kernel sources, the latest being:
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-sony.c
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-ids.h

Ubuntu has some pointers on how to build a dkms package.
It's going to require some reverse engineering no matter how you look at it.  That's what I had to do.

thank you it worked :D

I can't because the method I used turns a kernel module into dkms. You can extract my arch patch with commands:
wget https://github.com/noabody/unibuild/raw/master/data/arch/hid-sony-ds3usb-dkms.patch
patch -Np1 -i hid-sony-ds3usb-dkms.patch
patch -Np1 -i hid-sony-ds3usb-dkms/hid-sony-ds3usb-dkms.patch

You'd still need appropriate kernel sources, the latest being:
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-sony.c
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-ids.h

Ubuntu has some pointers on how to build a dkms package.
It's going to require some reverse engineering no matter how you look at it. That's what I had to do.

Thanks, works great. But is there opportunity to build something like this for bluetooth connection?

CUH-ZCT2E already works fine with Bluetooth. The problem is USB-specific.

CUH-ZCT2E already works fine with Bluetooth. The problem is USB-specific.

So you can for example change color of light bar using steam?

I can't because the method I used turns a kernel module into dkms. You can extract my arch patch with commands:
wget https://github.com/noabody/unibuild/raw/master/data/arch/hid-sony-ds3usb-dkms.patch
patch -Np1 -i hid-sony-ds3usb-dkms.patch
patch -Np1 -i hid-sony-ds3usb-dkms/hid-sony-ds3usb-dkms.patch

You'd still need appropriate kernel sources, the latest being:
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-sony.c
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-ids.h

Ubuntu has some pointers on how to build a dkms package.
It's going to require some reverse engineering no matter how you look at it. That's what I had to do.

Hey bro, could you help me, please?
i have a steam deck and i came to this github because of this thread on reddit:
https://www.reddit.com/r/SteamDeck/comments/zcfun1/comment/j8ivf5s/
My dualshock has the same problem as mentioned,and i tried to install these packages, i had to use pacman to install in the SteamOS, but the controllers still not working after paired, there is a another way to install these? or there is a way to find out whats it's going on after paired?
thank you in advanced.

I can't because the method I used turns a kernel module into dkms. You can extract my arch patch with commands:
wget https://github.com/noabody/unibuild/raw/master/data/arch/hid-sony-ds3usb-dkms.patch
patch -Np1 -i hid-sony-ds3usb-dkms.patch
patch -Np1 -i hid-sony-ds3usb-dkms/hid-sony-ds3usb-dkms.patch

You'd still need appropriate kernel sources, the latest being:
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-sony.c
wget https://github.com/torvalds/linux/raw/master/drivers/hid/hid-ids.h

Ubuntu has some pointers on how to build a dkms package.
It's going to require some reverse engineering no matter how you look at it. That's what I had to do.

Hey bro, could you help me, please?
i have a steam deck and i came to this github because of this thread on reddit:
https://www.reddit.com/r/SteamDeck/comments/zcfun1/comment/j8ivf5s/
My dualshock has the same problem as mentioned,and i tried to install these packages, i had to use pacman to install in the SteamOS, but the controllers still not working after paired, there is a another way to install these? or there is a way to find out whats it's going on after paired?
thank you in advanced.
can you connect it with a cable and type dmesg in the terminal and show what it says after it's connected?


README.ipynb not supported

I like that Gogs has support for .ipynb files! What I find unfortunate is that README.ipynb is not rendered as a notebook, but as plain text, when viewed from its parent directory.
Example here: https://try.gogs.io/niklas/ipynb-test

Patch has pushed to fix this issue, please test on develop branch or https://try.gogs.io.

LGTM, thanks!


feat: support for top-level await or alternate way to load ViteSSG

Clear and concise description of the problem
Trying to do something like (fetching app config) before bootstrapping the Vite App.
export const createApp = loadConfig().then(() => {
  return ViteSSG(
    App,
    {
      routes,
      base: import.meta.env.BASE_URL,
    },
    (ctx) => {
      // install all modules under `modules/`
      // ...
    },
  )
})
.catch((e) => {
  // error handling
})

As there is only a fancy way to load ViteSSG i.e. export const createApp, how to only load the application and then export the ViteApp later
Suggested solution
let viteApp = null
loadConfig().then(() => {
  return ViteSSG(
    App,
    {
      routes,
      base: import.meta.env.BASE_URL,
    },
    (ctx) => {
      // install all modules under `modules/`
      // ...
    },
  )
})
.then((viteSsgApp) => {
  // LOAD the VITE-SSG application here
  loadViteSSGApp(viteSsgApp)
})
.catch((e) => {
  // error handling
})

Alternative
Or if there is any alternate way, to asynchronously wait until the config is loaded
If I disable ViteSSG and just use createApp().mount() it works
loadConfig().then(() => {
  const app = createApp(App)
  const router = createRouter({
    history: createWebHistory(), routes,
  })
  app.use(router)
  Object.values(import.meta.glob<{ install: any }>('./modules/*.ts', { eager: true })).map(i => i.install?.({
    app, router, routes,
  }))

  app.mount('#app')
})

Additional context
For context, I can't load config.json from modules or composables (after the app is bootstrapped) because I want to load configurable parameters of the app which I need to load before bootstrapping
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

For context, I can't load config.json from modules or composables (after the app is bootstrapped) because I want to load configurable parameters of the app which I need to load before bootstrapping

vite-ssg supports top-level await internally, you can use it but remember to reset the build.target in your vite config to support this syntax:
const config = defineConfig({
  build: {
    target: 'esnext',
  },
  // ...
})


Service worker

added service worker to cache all fetch responses

Sorry - made this PR by mistake - meant to merge into my own repo... my bad!


fontBuilder: pass glyphMap to buildCOLR to sort base records by GID

COLR Base glyph records must be sorted by glyph index. The colorLib.builder.buildCOLR function has an optional glyphMap parameter that maps from glyph names to glyph indices (as returned from TTFont.getReverseGlyphMap()).
FontBuilder knows all that so it should pass it on to colorLib to ensure base records are sorted by GID.

Why does buildCOLR() need GIDs to begin with? Isn't converting to GIDs and sorting typically handled by the table compiler?

it doesn't use glyph indexes directly, but it has to create base glyph records and the spec wants these sorted by glyph id

But that sounds then like the sorting is done in the wrong place: why can't the table compiler deal with that?

actually sorry. it looks like we are already doing that...
https://github.com/fonttools/fonttools/blob/8612319487c298f7feee3c8653ca34d9d8f8e607/Lib/fontTools/ttLib/tables/otTables.py#L1232-L1249

basically, unless one passes glyphMap, the table returned from buildCOLR will have the base records ordered in whatever order they are passed in in the source colorGlyphs dictionary (which maintains order in py3.6+).
But only upon compiling the table, they will be reordered following the TTFont glyph order.
I suppose that's acceptable? Still, since fontbuilder already knows the glyphMap it can well pass it through (to avoid the client having to save and reload the TTFont just to ensure the base records are sorted to the final order).

(to avoid the client having to save and reload the TTFont just to ensure the base records are sorted to the final order)

I don't understand this bit. Can you elaborate?
If the order at that level has no further semantic meaning, and the low level compiler correctly sorts anyway, why bother with a glyph map in buildCOLR() at all?

the COLRv0 table has a ColorLayers dictionary where order doesn't matter. The COLRv1 table is implemented as otData-style low-level table and the BaseGlyphV1List is not a dictionary, it is a list of BaseGlyphV1Records with an inner ordering (which the spec mandates to be ordered by GID).

and the BaseGlyphV1List is not a dictionary

Perhaps it should be? Coverage tables are also stored sorted by GID, but the Python API still presents and accepts glyph names.

I don't think there's a single otData-based subtable that depends on GIDs in any way, as seen from the Python side.

feaLib builder similarly takes a glyphMap because it needs one to create those Coverage table sorted by GID..

we do store only glyphnames in COLRv1, not glyph indexes. but the base records need to be stored sorted by GID so we need a glyphMap

I know this current hybrid situation (COLRv0 with a hand-coded nicer Python API vs COLRv1 with a dynamically generated low level API) is not ideal, but it helped iterating faster as new paint formats are being specified in the draft spec.. Yes, I agree with you ideally we would have a fancier interface on top of that.

anyway this isn't really a problem, as compiled fonts will have them sorted correctly in the end. It's only a small annoyance when using fontBuilder to create fonts for unit testing, that the COLR table just built (but not yet compiled) may not have them ordered by glyph order until it does get compiled. Not a big deal.

Ah, I didn't realize that indeed Coverage (and some other tables) do require correct sorting on input. (Coverage actually checks and warns if it's wrong. Not sure why it doesn't just always sort.)
It doesn't need a fully hand coded API for this detail to be done right: many tables have (small) bits of additional manual logic on top of the dynamic otTables-based generated classes, such as Coverage and SingleSubst. SingleSubst is also a good example of how to handle this.

ok let's keep this open until I find the time to do that.

Or: do the merge and make an issue to improve the BaseGlyphV1List API, with a reminder to remove the workaround?

do the merge and make an issue to improve the BaseGlyphV1List API, with a reminder to remove the workaround?

sounds good


Fix code scanning alert - Inclusion of functionality from an untrusted source

Tracking issue for:

[ ] https://github.com/iolivergithub/jane/security/code-scanning/1

Done...integrity and crossite checks now in base.html


Empty html macro causes parser to fail

The following code raises an error:
use yew::prelude::*;

#[function_component(App)]
pub fn app() -> Html {
    html! {}
}

The error:
error: unexpected end of input, expected curly braces
  ┌─ /path/to/tmp.rs:1:1
  │
1 │ use yew::prelude::*;
  │ ^

I get the same error with parentheses instead of braces and regardless of formatting.

Thank you for reporting this as well, should be fixed in v0.2.2, feel free to reopen the issue if the bug resurfaces


No CHANGELOG

Hello! 👋
I'm using dotbot in my dotfiles as a git submodule. From time to time, I update it to the newest version, which often pulls in new tags and commits. It would be super helpful if the project included a CHANGELOG file (or use Github releases) so I can see what has changed and whether there's any new helpful feature I could use in my dotfiles. What do you think?

The changelog is here: https://github.com/anishathalye/dotbot/wiki/Changelog
Do you think it would be helpful to include a link somewhere for discoverability?

I for one think putting the typical CHANGELOG into the source tree is helpful.  You can avoid maintaining the WIKI version then, pointing instead at the source tree.

I don't have strong opinions about this, but that seems pretty standard. Done in aa9335089b54475940bb41e2a4eed38affeb5916.

Amazing, thanks! :)
One benefit to having the changelog in the source repository is that when I use dotbot as a Git submodule, I can update it and then just open and read the local dotbot/CHANGELOG file.


api_version is hard coded in *.py files and has different values among projects

Describe the bug
Possible improvements for the handling of api_version in *.py files

the variable is often hard coded in *.py files (instead of using the .env file for specifying)
the variable has different values among the projects
even sometimes if had different values in the same project (e.g. 08-building-search-applications)

I could contribute a patch to improve the handling of api_version.
Open questions:

on patch per project or a large ?
what should be the default for the value ?

To Reproduce
Please see the example report
C:\work\microsoft\generative-ai-for-beginners\06-text-generation-apps\python\aoai-app-recipe.py (1 hit)
Line 12:   api_version = "2023-10-01-preview"
C:\work\microsoft\generative-ai-for-beginners\06-text-generation-apps\python\aoai-app.py (1 hit)
Line 13:   api_version = "2023-05-15"
C:\work\microsoft\generative-ai-for-beginners\06-text-generation-apps\python\aoai-history-bot.py (1 hit)
Line 12:   api_version = "2023-10-01-preview"
C:\work\microsoft\generative-ai-for-beginners\06-text-generation-apps\python\aoai-study-buddy.py (1 hit)
Line 12:   api_version = "2023-10-01-preview"
C:\work\microsoft\generative-ai-for-beginners\08-building-search-applications\scripts\transcript_enrich_embeddings.py (1 hit)
Line  30: openai.api_version = "2023-05-15"
C:\work\microsoft\generative-ai-for-beginners\08-building-search-applications\scripts\transcript_enrich_speaker.py (1 hit)
Line  41: openai.api_version = "2023-07-01-preview"
C:\work\microsoft\generative-ai-for-beginners\08-building-search-applications\scripts\transcript_enrich_summaries.py (1 hit)
Line  30: openai.api_version = "2023-07-01-preview"
C:\work\microsoft\generative-ai-for-beginners\09-building-image-applications\python\aoai-app-variation.py (1 hit)
Line 14:   api_version = "2023-12-01-preview",
C:\work\microsoft\generative-ai-for-beginners\09-building-image-applications\python\aoai-app.py (1 hit)
Line 16:   api_version = "2023-12-01-preview",
C:\work\microsoft\generative-ai-for-beginners\09-building-image-applications\python\aoai-solution.py (1 hit)
Line 16:   api_version = "2023-12-01-preview",
Expected behavior

handling should be unified to use the .env files for api_version and no hardcoded values in *.py files
api_version should be the most recent if possible

We have hardcoded some of these values to make sure the course is operational through any of the changes. Would need to investigate / test to see if just relying on the latest values has any effect on the code.


No autocomplete on Android

iPhone shows the pills and completes, Android does not.

Fixed in version 2.0.1. Feel free to reopen if the issue persists.

It changed to show the exact pill after the typed word matched the word from the autocomplete list. It wont show up while having only a few letters. And completing by pressing enter does not work.

Using version 2.4.3 still facing the same problem

Using version 2.4.3 still facing the same problem


Remix + ganache-cli: VM exception while processing transaction: out of gas

Expected Behavior
I'm testing a sample contract as below. The contract is called from Remix, using Environment - Web3 Provider ganache CLI v6.1.0, core 2.1.0
_pragma solidity ^0.4.21;

contract Donation {
    address owner;
    event fundMoved(address _to, uint _amount);
    modifier onlyowner { if (msg.sender == owner) _; }
    address[] _giver;
    uint[] _values;

    function Donation() public {
        owner = msg.sender;
    }

    function donate() public payable {
        addGiver(msg.value);
    }

    function moveFund(address _to, uint _amount) public onlyowner {
        uint _balance = address(this).balance;
        bool _tosendbal = _to.send(_balance);
        if (_amount <= _balance) {
            if (_tosendbal) {
                emit fundMoved(_to, _amount);
            } else {
                revert();
            }
        } else {
            revert();
        }
    }

    function addGiver(uint _amount) internal {
        _giver.push(msg.sender);
        _values.push(_amount);
    }
}

I'm invoking the function moveFund (before that I call donate, to transfer some ether to the contract. Ether should be sent from the contract to the selected address.

Context

Your Environment

Version used: ganache CLI v6.1.0, core 2.1.0
Version of Truffle/Remix/Other tools used: https://ethereum.github.io/browser-solidity
NodeJS Version: [ ] 6.x, [ ] 7.x (unsupported), [ ] 8.x, [ ] 9.x: v8.9.4
Operating System and version (include distro if Linux): Windows 10
Link to your project or repro gist: none
Commit hash to use with above link for reproduction: 8000000 (setup when ganache is starting)
I intend to submit a pull request to fix this issue: [x ]

I would appreciate any help

I've run into this same issue.  It took me a long time to realize it was a ganache issue, but realized when I used the JVM in Remix.  https://ethereum.stackexchange.com/questions/46494/cant-transfer-value-from-mapping-inside-mapping

Same as her. Moreover, I'm experiencing a similar problem with I'm trying to call a payable function between 2 contracts. So it's like a contract calling a payable function of another contract

Hello everyone! It seems that this is related to ganache gas estimation to be missing some components. We're tracking this issue in https://github.com/trufflesuite/ganache-core/issues/26. The solution to https://github.com/trufflesuite/ganache-core/issues/26 will try to add the high water mark estimation, and then we'll follow up in another issue with a more accurate estimation method.
I'm going to close this issue in favor of https://github.com/trufflesuite/ganache-core/issues/26, but we'll use your details to help us if we need it! Thanks!!

Has this been resolved? I spent hours debugging a really silly issue which turned out to be something to do with ganache (think this is it). In my case I was interacting with a proxy contract and it was bugging out on different storage setting calls, was hard to pin down. Note I was using remix, so changed to Javascript VM and it worked :+1:

@alsco77 Bummer you're still having issues! Per my last comment, we were tracking this in https://github.com/trufflesuite/ganache-core/issues/26, not this issue (hence why this was closed 6 days ago).
That issue was closed 4 days ago, and is in ganache-core v2.2.0+ (though there was a bug in v2.2.0 which caused us to release v2.2.1). The associated ganache-cli releases were v6.1.7 and v6.1.8. What version were you running on?
While we believe this should be solved in https://github.com/trufflesuite/ganache-core/issues/26, we have an open issue at https://github.com/trufflesuite/ganache-core/issues/147 which implements even more accurate gas estimation.
We definitely will need any more detail from your setup/contracts/etc. before we really can try to address your specific issue however.

@alsco77 I chatted with @davidmurdoch a little, and it appears the "gas estimation" issue isn't completely solved, which will be addressed in https://github.com/trufflesuite/ganache-core/issues/147

@seesemichaelj thanks for your help! I ran on Linux based Ganache CLI v6.1.8 (ganache-core: 2.2.1). I also tried using the GUI but same problem. You can see the contracts here and the particular command that was causing the problem was DMartStore.sol 'addProduct'.
When executing the method call via an interface on Remix, the method would fail for various reasons and it was hard to pin down, one thing that was causing it to fail was uint id = numberOfProducts++;, possibly due to the incrementing storage var?
As I said, I fixed this by deploying manually via Remix so no major issues for me


Fix the lint issues

After adding ESLint in #26 we have some code style issues to fix.

Closed by #29


osbuild: Add org.osbuild.gunzip stage

This stage the same args and formats as org.osbuild.copy (and as such
much code is just copied from that stage), except it uncompresses
during the copy. I need this to uncompress the aarch64 kernel when
directly uefi-booting it.

The CI failure is when its trying to mount a btrfs fs. I don't think this is related to my change.

I think this is great, but also more powerful then it needs to be. The copy stage is so complicated because it can be used to copy to different destinations (possible from different sources), but I think an gnuzip stage should work more like the current org.osbuild.untar stage, i.e. process exactly one (file type) input.
The downside of course is that you need to repeat the stage for different inputs but hopefully that won't be too much overhead (mpp-foreach incoming?!).
The other downside is that it could not be used to gunzip a file from the current tree into the current tree. We had this rough guideline that the tree is "write-only", mostly to avoid tools doing magic things based on data in the tree, but for copy and untar, gunzip it might make sense to have the current tree as input too. I think we could solve this more generically, without resorting to urls in multiple ways: the org.osbuild.files and org.osbuild.tree inputs could be changed to work with the current pipeline tree either via a special reference (@self, $this, ...) or via completely new origin (org.osbuild.tree?). Have to think about this a for tiny bit longer.

So, my actual usecase is that i install the kernel package in a pipeline generating a tree containing a compressed file (vmlinuz). In another pipeline i want to copy+uncompress that file from the generated tree. As far as i understand though, i can't use e.g. the untar stage like that, because it expects a file directly, not a file in a tree. As in, it has no way to specify the path of the tree, it only works if you want to untar an embedded or curl:ed file.

I think that would be something like this:
{
    "name": "kernel-compressed",
    "build": "...",
    "stages": [ ... ]
},
{
    "name": "image-tree",
    "build": "...",
    "stages": [
        {
            "type": "org.osbuild.gunzip",
            "options": {
                "path": "/boot/vmlinuz" // << destination path
            },
            "inputs": {
                "file": {
                    "origin": "org.osbuild.pipeline",
                    "references": {
                        "name:kernel-compressed": {
                            "file": "boot/vmlinuz-compressed" // << source path in the `kernel-compressed` pipeline
                        }
                    }
                }
            }
        }
    ]
}

I essentially copied the untar stage, and have:
{
  "type": "org.osbuild.gunzip",
  "inputs": {
    "file": {
      "type": "org.osbuild.tree",
      "origin": "org.osbuild.pipeline",
       "references": {
         "name:ostree-tree": {
         "file": "boot/vmlinuz-5.14.0-13.rt21.13.test.el9s.x86_64"
        }
      }
    }
  },
  "options": {
     "path": "/boot/efi/EFI/Linux/linux.efi"
   }
}

But this gives me:
.pipelines[4].stages[3].inputs.file.references:
  {'name:ostree-tree': {'file': 'boot/vmlinuz-5.14.0-13.rt21.13.test.el9s.x86_64'}} is not valid under any of the given schemas

.pipelines[4].stages[3].options:
  Additional properties are not allowed ('path' was unexpected)

Fixed all those, but i still get:
.pipelines[4].stages[3].inputs.file.references:
  {'name:ostree-tree': {'file': 'boot/vmlinuz-5.14.0-13.rt21.13.test.el9s.x86_64'}} is not valid under any of the given schemas

lgtm (but i can't review my own pr)


Feature Request: UI Mod Manager

Currently, to change the enabled UI mods you have to host a game.
I'd like a mod manager like the one available in the old python client which allows me to change which UI mods are enabled without having to host a game.
Wanna have the bug fixed quickly?
Visit Issue hunt...

IssueHunt Summary

Backers (Total: $5.00)

$5.00 have been anonymously funded.

Become a backer now!
Or submit a pull request to get the deposits!
Tips

Checkout the Issuehunt explorer to discover more funded issues.
Need some help from other developers? Add your repositories on IssueHunt to raise funds.

That already exists

I mean if you host a game you can select the mods enabled in the client. There is however no way of telling sim mods and UI mods apart. So what is your feature request???

It doesn't exist and my feature request is quite clear.

Not clear to me sorry

From where can i open it? Can it only select and deselect them? Can it delete installed ones? About about sim mods? Does it only show UI mods?

The title is UI Mod Manager, I have a strong feeling that it's only about UI and not sim mods :P

Well maybe but would u not do it for both since it is basically the same. Or would you not make a mpd manager and then make people select if they wanna manage UI or SIM mods?

I just have no interest in or use for a SIM mod manager.

Also redid create game dialog. Made map image as big as possible. And used the same mod manager there. We could add thre dots or some other way for options to every mod so one could for example do "view details" or "deinstall"

I just have no interest in or use for a SIM mod manager.

Well u might not but others and would allow an overview of installed mods in general.

Nice one 👍


Suggest several features for the app

Hello, thank you for this very good program that you have created
I wanted to make some suggestions that please add in the next version

When we click on a word in the subtitle to copy and translate it, the movie will automatically stop (it would be better to enable this option as a preference setting that can be activated by everyone if needed)
and there should be an option to edit the subtitle display (for example, an option to not display the time of each line of the subtitle, which is currently displayed above each subtitle line)
and Add PWA functionality to easily add your app to Windows, Android, and other operating systems

I would be very grateful if you add these features in the next version
Thank you very much, dear friend

Thanks for your feedback! (Got your email as well)
As for the first problem, I tried again and clicking on the subtitle will not pause the video. If the yellow number is clicked, it will jump to that time, but not affecting playing status. 🤔

Thanks for the reply
Because sometimes we want to search the meaning of a word or sentence from the subtitle by copying the text, it is good to stop the movie at that moment and then continue playing it again by pressing the play button.
And another issue that is very much needed is to convert this program into a PWA program that can be installed on any type of operating system and we can access it very easily. Please include PWA functionality for this web application in the next update.
And please expand the subtitle customization menu, such as the option to display or not display the time of each subtitle above each line of the subtitle (because I think the time of each subtitle inserted above it is not useful in the learning process)
I will be grateful if you add these features to your great program in the future version🙏

Thanks for your feedback! (Got your email as well)
As for the first problem, I tried again and clicking on the subtitle will not pause the video. If the yellow number is clicked, it will jump to that time, but not affecting playing status. 🤔

In addition to the features I mentioned above
Is it possible to support two subtitles?
For example, show both English subtitles and Chinese subtitles
(In one line, English subtitles, in another line, Chinese subtitles at the same time)


cnpm i heapdump error

when i install heapdump,it show error as below

Do you get the same results when installing a current version of https://www.npmjs.com/package/nan ?

What was the solution?


Cancel sort in Angular?

How can I cancel a sort in Angular? Attempting to make a copy of the items in the array, and setting the model back to that array, but having problems on which function to actually call, within my onUpdate method.

This is not possible.


Attempt to use the bitrate provided from the metadata

This will generally help avoid, in some circumstances, overestimating the bitrate and re-processing files that have already been processed. This is very useful when process-same-extensions is set to True.
Open to suggestions on better ways to improve this, this is just my first go at attempting to prevent unnecessary reprocessing.

Encoded a file that had overestimated bitrate by this solution here is text from mediainfo before I encoded file :
General
Format                                   : Matroska
Format version                           : Version 4
File size                                : 51.0 MiB
Duration                                 : 7 min 8 s
Overall bit rate                         : 998 kb/s
Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L3.1@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 7 min 8 s
Bit rate                                 : 3 237 kb/s
Stream size                              : 165 MiB
Metdata looks copied from the original.The file I encoded was 51 MiB:
When I encoded file info.video.bitrate reported 3237.239 bitrate.
The old calculation  info.format.bitrate reported 997.557 kb/s as total bitrate.
Looks like both numbers can be wrong the info.format.bitrate because there are no audio bitrate to draw from it.
So my question is when both numbers can be wrong it must be best to calculate both and take the lowest one
to prevent over encoding.

Example of my suggestion choose the lowest.
# Estimate the video bitrate
def estimateVideoBitrate(self, info):
    # also use the detected video bitrate, if applicable
    mbitrate = (info.video.bitrate / 1000) if info.video and info.video.bitrate and info.video.bitrate > 0 else None
    try:
        total_bitrate = info.format.bitrate
        audio_bitrate = 0
        for a in info.audio:
            if a.bitrate is not None:
                audio_bitrate += a.bitrate

        self.log.debug("Total bitrate is %s." % info.format.bitrate)
        self.log.debug("Total audio bitrate is %s." % audio_bitrate)
        self.log.debug("Estimated video bitrate is %s." % (total_bitrate - audio_bitrate))
        return mbitrate if mbitrate and mbitrate < (((total_bitrate - audio_bitrate) / 1000) * .95) else ((total_bitrate - audio_bitrate) / 1000) * .95
    except:
        if info.format.bitrate:
            return mbitrate if mbitrate and mbitrate < (info.format.bitrate / 1000) else info.format.bitrate / 1000
        if mbitrate:
            return mbitrate
    return 0

Want to submit this change as a pull request? Seems like a good adjustment for these edge case scenarios


[SPARK-10736] [ML] Use 1 for all ratings if $(ratingCol) = ""

For some implicit dataset, ratings may not exist in the training data. In this case, we can assume all observed pairs to be positive and treat their ratings as 1. This should happen when users set ratingCol to an empty string.

Merged build triggered.

Merged build started.

Test build #43078 has started for   PR 8937 at commit 5643680.

Test build #43078 has finished for   PR 8937 at commit 5643680.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/43078/
Test PASSed.

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #43115 has started for   PR 8937 at commit 9162a22.

Test build #43115 has finished for   PR 8937 at commit 9162a22.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/43115/
Test PASSed.

LGTM. Merged into master. Thanks!


"Is recipient ready" for internal messaging

A follow up from https://github.com/penumbra-zone/web/pull/279#issuecomment-1845653694. In short, we want to avoid having to set an arbitrary sleep on the service worker when making an internal request: https://github.com/penumbra-zone/web/pull/279/files#diff-1551d3677b3d0b691a3d8e4a29da867b3c0911786c1ab62528cf5e6dd11a5bdcR43-R47.
At the moment, internal extension messaging requires three steps (popup example):

Spawn popup window
Wait 500ms while React boots up
Send a message to the service

Some ideas discussed to explore:

Create window returns a tabs object: https://developer.chrome.com/docs/extensions/reference/api/tabs#type-TabStatus. Not quite sure what "complete" means, but perhaps this means the document+javascript is loaded? If so, we can just poll chrome.tabs.get() until it's ready.
Have the popup communicate ready. Would require something like (or alternatively, using listeners+ports):

Service worker:

in handler, store promise+request id in external object
route for accepting "ready" messages + ids and resolving those promises

Popup:

Take query param with request id and issue message to service worker indicating readiness

i think applying #310 to extension popup routes could provide benefit here, we could easily configure very early document behavior like attaching listeners and emitting ready events, and keep that state maintained as the react app stands up

Solving this will solve for https://github.com/prax-wallet/web/issues/130 as well


Async JerseyHttpClient max threads and maxconnections

In jersey client configuration there are two parameters as described below.
maxThreads: 128
maxConnections: 1024
If I am making http calls asynchronously can this 128 threads acquire 1024 http connections. If not then it will not make any sense to keep maxConnections > maxThreads then why there default values are given that way.

I suggest that you read this section of the Apache HTTP Client documentation. It explains how connections are managed and how they relate to threads.


Bug. Strange metamask behavior

Describe the bug
Strange metamask behavior
To Reproduce
1.Click join
2. Try to swap a token that doesn't exist In Metamask
3. The system issues a strange alert that does not directly indicate that the token is missing
4. After this fail i can't swap #24 POOLZ1 Token (1 ETH = 0.1 Poolz)
Error in metamask and the user does not know what to do next
Expected behavior
Hint for the user what is his mistake, and what needs to be changed.
You need to specify that the amount of ETH is too small to change the desired amount of Poolz. The system rounds up to 0.01
Screenshots
https://drive.google.com/file/d/1JKahdaNj2nrbFI-BU-iKFm2mROi8PL5H/view
Errors after:
https://drive.google.com/file/d/1WnHcQY09pVeMXyQqA7-63xFlOV0Gy4mj/view
and after:
https://drive.google.com/file/d/1H-tp8_4CTfBcJeeJMkpoqnYc-PbZdUWz/view
This error i see metamask(metamask doesn't record on video) : https://ibb.co/47mvFFX
Desktop (please complete the following information):
OS: [wndows]
Browser [chrome,]
Version [v 87.0.4280.141 (Official build), (64 bit)]
Additional context
Wallet address
0x87e4639f2cd294ae7355aac2445D56FB36A17573

This pool you trying to get in needs Dai to enter. is the connected wallet got the balance?
but you right:

Hint for the user what is his mistake

This pool you trying to get in needs Dai to enter. is the connected wallet got the balance?
but you right:

Hint for the user what is his mistake


fix fix missing scanBytes and scanRows in query statist…

…ics when enable_vectorized_engine=true.
Proposed changes
Issue Number: close #xxx
Problem summary
When set enable_vectorized_engine = true, sometimes scanBytes and scanRows is missing in audit log.

Checklist(Required)

Does it affect the original behavior:

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

Has unit tests been added:

[ ] Yes
[x] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[x] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

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

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

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 36.47 seconds
load time: 510 seconds
storage size:<PHONE_NUMBER>2 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221202033711_clickbench_pr_56557.html

why the cputimeMS is not added in the method?
statistics->add_cpu_ms(_scan_cpu_timer->value() / NANOS_PER_MILLIS);

It will not work if just add this line at method collect_query_statistics, maybe we also need to do some job at scanner_scheduler.cpp to update _scan_cpu_timer, but i'm not familiar with c++, so i just fix these two fields first. You can submit a new pr to fix this problem.

LGTM


tests broken?

trying to make debian packages with dh_make results in it being unable to compile the test-cases. I suspect they are broken:
12 FAILED TESTS
0% tests passed, 1 tests failed out of 1
Total Test time (real) =   0.01 sec
The following tests FAILED:
1 - gtest-LoadTest (Failed)
Errors while running CTest
Makefile:130: recipe for target 'test' failed
make[1]: *** [test] Error 8
make[1]: Leaving directory '/usr/src/git/libfunctionality/obj-x86_64-linux-gnu'
dh_auto_test: make -j1 test ARGS+=-j1 returned exit code 2
debian/rules:18: recipe for target 'binary' failed
if they're broken, they should be either removed or fixed.

Hmm, sorry I missed this earlier. I was pretty sure that the Sensics CI had been building and running the tests on Windows and Linux, but clearly something was wrong if they failed for you. I'll look into it.
 I was intending to do that too.

OK, I looked into this. Looks like it's actually an rpath issue - we aren't using any particular search path in libfunctionality beyond just calling dlopen, so the test failures are because it can't find the dummy plugin that it wants.
I'm not sure what happened to make it fail now when it worked for me before, I'm assuming the rpath behavior of CMake must have changed. (I tried a very old commit, and it was broken there too even though a commit said "fix linux tests"... suggesting it's the environment not the code itself)
The code does actually work correctly, it's the tests that are faulty.
Bumping from the 1.0 project.


pathlib missing from build requirements

https://github.com/jpmorganchase/jupyter-fs/blob/master/pyproject.toml#L3

https://docs.python.org/3/library/pathlib.html
this could be of help to us!!

I think a simpler way to fix the issue would be to just drop support for python 2 entirely, since pathlib is part of the python 3 std lib

yeah we can even do that!!

closing as we'll probably drop py2 imminently.


Update WebSocketKit to 2.1.0

Update the WebSocketKit dependency.

Can we not require macOS 10.15 if possible?
Why does websocket-kit require it?

@tellowkrinkle I don't know why they require it, the problem is that websocket-kit + SwiftDiscord won't build (at least when consumed as a library) without specifying the same minimum platform level.
You could file an issue on websocket-kit.

I think I’d be fine with this. @tellowkrinkle you see any issue?

Yeah should be fine


Restic --iexclude-file format vs Rustic --iglob-file

Out of curiosity, is there a reason for different exclude format? Restic --iexclude-file accepts relative path while Rustic iglob-file  absolute, so I can't just use Restic filters without modification (not to mention of "!" sign at beginning). Or I missing something?

But actually I have to add an restriction: rustic does not have the goal to be or stay CLI-compatible with restic. Its goal is to stay repository-compatible - and of course to be feature-complete or even out-feature restic - , but we won't guarantee that your restic commands will work 1:1 when using them with rustic.

Thanks very much for explanation. Of course I understand, Rustic is not a Restic. Manually converting  Restic "--iexclude-file=" to Rustic "iglob=" is rather  straightforward. If I may ask another question. Bigger problem is lack of Rustic equivalent Restic "--files-from=" option (text file contains list of directories and/or files as a backup source). As I understand Rustic "source = " accepts only paths. This "--files-from=" option is a very handy.


BC Contianer WIndws Authentication

I'm looking to setup a BC on prem container and connect that to an external sql server. I would like to run windows authentication so that users that exist in AD can access the BC container instance.
The documentation is a bit thin, it refers to setting up gMSA but no real detail about the specific steps required on the sql side and on the container setup side. Is this something that is actually possible given that the container cannot be domain joined and its not part of the same network, the container is on a host virtual network under the Container host vm?
any direction would be very useful.

You might be able to find information on Tobias' blog:
https://www.axians-infoma.de/techblog/setting-up-windows-authentication-with-containers-connect-to-azure-ad-domain-services/
or maybe read this on how to set it up:
https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/manage-serviceaccounts


Fixes global parsing and filling on ServerRequest

Per the documentation of PHP, the HTTP key is set on $_SERVER when HTTPS is enabled.  The on/off paradigm is only applicable to certain SAPI environments.
Additionally, the HTTP_HOST value which comes from the Host header in HTTP will contain the port when a non-standard port is used, so that needs to be discarded otherwise the host is set to include the port so the additional port setting will result in something like localhost:8080:8080 if you try to get the authority back out of it.

I noticed there are two other and distinct pull requests for the same problems after I fixed them up on my own.  That said, this is a pretty priority revision for me, so some sort of timeline on when these issues would be fixed would be good.  Other pull requests are from as far back as August and September.

Thanks for working on this.


CM-217 Implementar validacion de CUIG en users-be

Refer to this link for build results (access rights to CI server needed):
http://utils.brazilsouth.cloudapp.azure.com:8080/job/ci/job/continuous-integration-user/70/


Revert "Add a simple cache for objects stored in etcd"

Reverts GoogleCloudPlatform/kubernetes#7288
Builds have been failing w/ a data race in the new etcd cache code.

Waiting from a green on travis's race check then I'm going to self-merge.

Our travis backlog is pretty long. I'm merging this so others may see green once again.


2.1.0-rc1 build script fails to make changes to apt repo when not running as root in function ensure-libpq-and-libpqxx

The installer seems to assume you're root and fails when you are not
./scripts/helpers/eosio.sh: line 335: /etc/apt/sources.list.d/pgdg.list: Permission denied
Even if you are root, it should not arbitrarily modify packages on the system. The -y option is not specified to ./scripts/eosio_build.sh for this test.

Also given the failure the build should probably stop at this point and exit rather than failing later.

Fixed in rc3.


Add support for .editorconfig file extension

Description
There appears to be ample usage of .editorconfig as a legitimate file extension, rather than a complete filename. This PR adds it as an extension to EditorConfig's language entry.
Sidenotes
My initial approach was this…
diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml
index ac5fe47d..5e7d9ea1 100644
--- a/lib/linguist/languages.yml
+++ b/lib/linguist/languages.yml
@@ -1675,8 +1675,6 @@ EditorConfig:
   group: INI
-  filenames:
+  extensions:
   - ".editorconfig"
   aliases:
   - editor-config
   ace_mode: ini

… however, test_samples.rb got confused by the EditorConfig sample named .editorconfig (which ostensibly doesn't equate to a filename containing only an extension):
  1) Failure:
TestSamples#test_ext_or_shebang [/Users/Alhadis/Forks/GitHub-Linguist/test/test_samples.rb:40]:
/Users/Alhadis/Forks/GitHub-Linguist/samples/EditorConfig/.editorconfig should have a file extension or a shebang, maybe it belongs in filenames/ subdir

1654 runs, 33562 assertions, 1 failures, 0 errors, 0 skips

@lildude, please let me know if this is correct behaviour; if so, I'll stick with the less-than-D.R.Y approach I resorted to for this PR. :wink:
Checklist

[x] I am associating a language with a new file extension.

[x] The new extension is used in hundreds of repositories:
Code Search yields ~39,000 results for path:**/?*.editorconfig.
[x] I have included real-world usage samples:
NB: The latter sample was edited to eliminate a lot of repetitive and excessive data.

[ASP.NET.EditorConfig]: Source | MIT-licensed

[IntelliJ.editorconfig]: Source | Apache-2.0

[ ] I have included a change to the heuristics

@lildude, please let me know if this is correct behaviour; if so, I'll stick with the less-than-D.R.Y approach I resorted to for this PR. 😉

Yup, I think it is. We already have other languages doing this.


Feature/fork existing repo

This PR folds in my prior two.  If one of them is rejected then I'll rebase.

I think I cherry-picked stuff from here into #350 too.
If I missed something, please make a new PR.


vim9class: "execute 'obj.Method()'" fails when obj defined in function

Steps to reproduce
Source the following script
vim9script

class C
    def M1(s: string)
        echo s
    enddef
endclass

var inScript = C.new()
inScript.M1('script direct')
execute "inScript.M1('script execute')"

def F()
    var inDef = C.new()
    inDef.M1("compiled direct")
    execute "inDef.M1('compiled execute')"   # <<<<<< ERRROR
enddef
F()

gives the following
script direct
script execute
compiled direct
Error detected while processing command line..script /home/err/play/xxx.vim[18]..function <SNR>31_F:

line    3:
E121: Undefined variable: inDef

Expected behaviour
No error
Version of Vim
9.0.1341
Environment
ubuntu
Logs and stack traces
No response

There's the following workaround, putting the object created in a function into script variable
vim9script

var bounce_obj: any
def Bounce(obj: any, method_and_args: string)
    bounce_obj = obj
    execute "bounce_obj." .. method_and_args
enddef

class C
    def M1(s: string)
        echo s
    enddef
endclass

def F()
    var inDef = C.new()
    # run inDef.M1('xxx') where method name is created dynamically
    Bounce(inDef, "M" .. 1 .. "('compiled bounce')")
enddef
F()

A variable local to a compiled function is not visible to ":execute".  This was done intentionally, as creating a namespace for the function (a dict which in legacy functions is accessed with "l:") adds a lot of overhead, and it is hardly ever needed (or a good idea).  Using a script-local variable or even a global variable is indeed they way to make it work.  It may look a bit clumsy, but it's worth it.  Another way would be to use a legacy function, but that will be much slower.

A variable local to a compiled function is not visible to ":execute". This was done intentionally, as creating a namespace for the function (a dict which in legacy functions is accessed with "l:") adds a lot of overhead, and it is hardly ever needed (or a good idea). Using a script-local variable or even a global variable is indeed they way to make it work. It may look a bit clumsy, but it's worth it. Another way would be to use a legacy function, but that will be much slower.

Of course, I knew that about execute (or at least I do now, until I want it again).
I ended up with a jump table, something like.
const dispatch = {
    MethodName: (obj: MyType) => obj.MethodName(),
    ...
}

Used something like
dispatch->get(methodName, null_function)(obj)


Fix compile error when built with Swift 4.0 and CocoaPods

pageControlDidTouch() is called by Objective-C in addTarget(_:action:for:), so add @objc to it to fix compiler error when built with Swift 4.0 and CocoaPods.

@ariok are you planing on including this in?

hello, yes I'm going to check it soon... sorry guys I was very busy in the latest months...

@ariok thanks, i think you missed publishing the release in pods.


Update build instructions for Visual Studio 2019

High Level Overview of Change
Update the build instructions for Visual Studio 2019.
Also fix #3037.
Context of Change
It is helpful to provide build instructions for Visual Studio to make it easier for people to build rippled on Windows. Dependencies are installed using Conan. If you have issues building, it may be helpful to uninstall Visual Studio and use Chocolatey to re-install it.
Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactor (non-breaking change that only restructures code)
[ ] Tests (You added tests for code that already exists, or your new feature included in this PR)
[x] Documentation Updates
[ ] Release

bump for .gitignore :)

FWIW, I would have been fine with merging #4397 as a "quick fix" while this other PR is undergoing review and revisions.

we can revert the changes to the Windows part
other changes can be made in BUILD.md

@drlongle can you update conflicts and I’ll do a review?

I'd like to see most of this moved to docs/environment.md, like we agreed in https://github.com/XRPLF/rippled/discussions/4433#discussioncomment-5104098.

I'd like to see most of this moved to docs/environment.md, like we agreed in #4433 (reply in thread).

Agreed. Unless there is any objection, let's delete this PR and open a new one.

@drlongle feel free to close this PR and open a new one, at your convenience.


Documentation says [:aws_params][:regions] and [:project_tag] are optional, but the code seems to disagree

] cap -T
/Users/joemsak/.rvm/gems/ruby-1.9.3-p0@pdocs/gems/capify-ec2-1.1.16.pre.2/lib/capify-ec2.rb:15:in determine_regions': undefined method []' for nil:NilClass (NoMethodError)
line 15 of capify-ec2.rb
region.nil? ? (ec2_config[:aws_params][:regions] || [ec2_config[:aws_params][:region]]) : [region]

You are correct. The documentation should not offer it as an optional setting.
EC2 returns no results without a region specfied.
I will update the docs.

I've updated the documentation.

Awesome, thanks!


Intermittent issue posting to Big Query from App Engine

We're getting this error occasionally when streaming rows into big query from GAE PHP:
Failed to post to BQ: HTTP Error: Unable to connect: 'fopen(REDACTED_URL): failed to open stream: Unsupported SSL context options are set. The following options are present, but have been ignored: cafile
Fetch error'
Steps to reproduce:
Sending 40 parallel requests of 40 records each containing 25 columns

Someone else with this issue seems to have found a googler who knows of the issue, has reproduced it, is working on it, and who provides a work-around.
At the very least, the error message looks the same. Can you test if the suggested work-around works for you?

Hi dt-rush. I have the same issue with SSL and I checked that link. However the solution proposed does not apply as at line 107 there is not that code and I couldn't find anywhere else in Stream.php.
It's very annoying as it happens randomly...

This is an intermittent fetch error connecting to the backend - if possible add some retry logic to the write.

@sjlangley yep, that's an option but it's pretty time consuming as my app does a LOT of calls to Storage, in many files. I'm pretty sure I'll add some bugs when modifying such a big amount of code :)

This is happening to me too. Anyone who has found any other information please let me know

I have a open ticket on this subject:
https://github.com/google/google-api-php-client/issues/608
With no response so far.

this was fixed in #631


doc: simplify CONTRIBUTING, merge non-apache

Simplify the CONTRIBUTING file seen when submitting a PR, make
references to the full contributing documentation, and merge the
contributing non-apache licensed material.
fixes: #6188
Signed-off-by: David B. Kinder<EMAIL_ADDRESS>

Codecov Report

Merging #9147 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #9147   +/-   ##
=======================================
  Coverage   52.44%   52.44%
=======================================
  Files         200      200
  Lines       25129    25129
  Branches     5247     5247
=======================================
  Hits        13178    13178
  Misses       9830     9830
  Partials     2121     2121

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 d7d1090...0d3b79d. Read the comment docs.


Panic messages and other garbage data in docstrings

EDIT: Now I went through the PyO3 github repo more and I found PR #1169 which does solve this issue for me. Sorry for issue noise, I'll leave it to you if you want to close this now or after it gets eventually merged. Thanks for all of your work!
I noticed this only when calling __mul__ from within __rmul__, the docstring for the __rmul__ methods was not set explicitly by me but instead it was what seems like random gibberish from the binary itself, the beginning might be some specific error message but quite possibly the whole stuff is just garbage memory.
My setup:
Linux 5.8.12_1 x86_64 (Void Linux)
Python 3.8.5
maturin in virtualenv with everything default
rustc 1.48.0-nightly (7f7a1cbfd 2020-09-27)
PyO3 version 0.12.1 in my project and tested with git master in the minimal example.
For this example on my machine the pyo3_bug.TestClass.__rmul__.__docstring__ string contained 'panic from Rust codepyo3_bug', in my own project (https://github.com/ametisf/sany-py) the .__rmul__.__docstring__ on two different classes looks like
'a Display implementation returned an error unexpectedly/home/adam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/string.rsalready mutably borrowedassertion failed: step != 0/home/adam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rscalled `Option::unwrap()` on a `None` valuecalled `Result::unwrap()` on an `Err` valueCannot restore a PyErr while normalizing it/home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/pyo3-0.12.1/src/err/mod.rs/home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/pyo3-0.12.1/src/gil.rs/home/adam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/pattern.rs/home/adam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter.rssrc/buffer.rsBuffer index out of rangeinternal error: entered unreachable codesrc/ui/spectrogram.rssrc/ui.rssrc/wav/mod.rsHuman readable tag for the buffer.'

and
'a Display implementation returned an error unexpectedly/home/adam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/string.rsalready mutably borrowed`,\n right: ``called `Option::unwrap()` on a `None` valuecalled `Result::unwrap()` on an `Err` valueCannot restore a PyErr while normalizing it/home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/pyo3-0.12.1/src/err/mod.rs/home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/pyo3-0.12.1/src/gil.rspanic from Rust code/home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/pyo3-0.12.1/src/pycell.rsBufferWaveTableCacheassertion failed: `(left == right)`\n  left: `Sampling rate must be grater than 0src/wav/mod.rsRIFF file type is not "WAVE"Only uncompressed PCM format (1) is supported, file specifies Only bit-dephts of 8, 16 and 24 are supported, file specifies WAVE file is missing "fmt " chunkMalformed "fmt " chunk (expected  bytes)WAVE file is missing "data" chunkBit-depths don\'t match fmt=__new__'

Minimal example:
Cargo.toml
[package]
name = "pyo3_bug"
version = "0.1.0"
authors = ["Frantisek Fladung<EMAIL_ADDRESS>edition = "2018"

[lib]
name = "pyo3_bug"
path = "src/lib.rs"
crate-type = ["cdylib"]

[dependencies]
pyo3 = { git = "https://github.com/PyO3/pyo3", features = ["extension-module"] }

src/lib.rs
use pyo3::prelude::*;
use pyo3::PyNumberProtocol;

#[pyclass]
#[derive(Clone)]
struct TestClass {
    data: u32,
}

#[pyproto]
impl pyo3::PyNumberProtocol for TestClass {
    fn __mul__(mut lhs: TestClass, rhs: u32) -> PyResult<TestClass> {
        lhs.data *= rhs;
        Ok(lhs)
    }

    fn __rmul__(&self, rhs: u32) -> PyResult<TestClass> {
        TestClass::__mul__(self.clone(), rhs)
    }
}

#[pymodule]
fn pyo3_bug(_py: Python, m: &PyModule) -> PyResult<()> {
    m.add_class::<TestClass>()?;
    Ok(())
}

Ah, sorry I noticed this bug but still have not merged the PR.

@kngwyu anything I can do to help with getting #1169 merged? I think it would be nice to make a 0.12.2 release with a fix for this in it before we start merging the breaking changes for 0.13.

Thanks. I come back to OSS this week and will investigate it tomorrow.


Fix: fix read only option for postgres connection

Description

fix read only option for Postgres connection.

Fixes #2178
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

JUnit TC
Manual

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=6c56553


chore(main): release 6.0.5

:robot: I have created a release beep boop
6.0.5 (2024-09-01)
Bug Fixes

opening directories in splits and tabs opening empty buffers (#421) (88cb633)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v6.0.5
:sunflower:


Headless Chrome Puppeteer generated PDF does not show some Unicode fonts on Acrobat

Steps to reproduce

Use the HTML with Headless Chrome to generate a PDF.
Open the PDF using Acrobat Reader, and notice that there's a dialog box shown for missing fonts. Note that on different Windows systems, the PDF output is different (e.g, the PDF that I attached was generated on my system, and it shows some fonts missing, while on another Windows system, some other fonts were missing.) It seems that Headless embeds fonts differently than what Acrobat is expecting.

Tell us about your environment:

Puppeteer version: 1.10.0
Platform / OS version: Win10
URLs (if applicable):
Node.js version: 10.13.0

What steps will reproduce the problem?
Use the code below to render the HTML file to generate a PDF.

A PDF file which is shown correctly on Acrobat Reader.
What happens instead?
The PDF is shown incorrectly on Acrobat Reader. If I open the PDF with Chrome browser or some other PDF reader, then the fonts are shown.
output.pdf
The screenshot of Adobe error:

The PDF is shown incorrectly on Acrobat Reader. If I open the PDF with Chrome browser or some other PDF reader, then the fonts are shown.

@alirazib Could it be an Acrobat Reader bug then?

@aslushnikov  Thanks for replying. Yes that was my first impression too, but when I tried to open the HTML on Chrome browser, and then print it to PDF, the resulting PDF opens fine on Acrobat.
Also, if I open output.pdf with Chrome browser (the fonts show fine) and copy all contents to clipboard, then pasting it in some other text processor results in missing text as well. So it appears that the PDF contains those Unicode fonts in a way that are not portable across products.
Is there a way that I could manipulate fonts in the HTML before PDF is generated via Headless? For example, is the Puppeteer functionality available to identify certain fonts and re-direct the render function to use another set of available fonts?
P.S. I updated my original post to include a screenshot of the issue.

Is there a way that I could manipulate fonts in the HTML before PDF is generated via Headless? For example, is the Puppeteer functionality available to identify certain fonts and re-direct the render function to use another set of available fonts?

@alirazib You can try using DevTools protocol's CSS.getPlatformFontsForNode, but that's quite involved.
Puppeteer's PDF generating functionality is fully driven by Chromium's "Save as PDF".
I'd recommend posting on chromium-dev or submitting a bug to Chromium right away at https://crbug.com/new - Chromium's PDF team might be able to help.
If you initiate any of these, please post a link here for the future reference. I'll close this since it falls outside the Puppeteer project.
Hope this helps.

Opened a bug here: https://bugs.chromium.org/p/chromium/issues/detail?id=915012
Thanks @aslushnikov  for prompt responses!

We are getting similar issues with the strong HTML element and puppeteer 1.19. One PDF with a different German texts inside the strong works fine whereas the French version is not shown at all. The French text does not contain any special characters where the German version has an Umlaut.
Very strange.
This issue should be re-opened because it's puppeteer related. On standalone Chrome the PDFs are fine in the print preview and afterwards (on macOS).

I am also facing the same issue  I am using browshot spatie which use  puppeteer. I am using centos and install all depndencies require for puppeteer. headless chromium is working fine download pdf for me and working perfectly fine for english but for other language it was not working then I found solution
you need to install fonts in your linux system manually i download fonts from below site you can download your one then it work fine
https://installati.one/centos/7/lohit-gujarati-fonts/


[FR] implement webhooks for common git hosting sites

Role model: https://www.runatlantis.io/

Yeah, this is certainly makes sense as a general purpose TF runner.  Our initial usecases are more limited to some very specific and controlled models.
One thought I have had is to layer Argo and Argo events on top of this. That would provide a few things like a UI, workflow and eventing.


Custom On-chain Logic

This is the FIR for adding support for Custom On-Chain Logic support to FireFly. This is still a work in progress, but I wanted to open the PR and start getting eyes on the proposed design.

Moving this FIR into the Final Comment Period, set to close on 01/10/2022

@nguyer - can you share where the architecture diagrams are for this FIR?
Should they be moved to the FIR itself?
See https://discordapp.com/channels/905194001349627914/928377875827154984/930497530314248252 for an example of an architectural issue, where the responsibilities between FireFly / EthConnect / FabConnect would be best spelled out in an architecture diagram.

Also wanted to leave a link to the issue that pre-dates this FIR, which did have important architectural discussion in it: hyperledger/firefly/issues/217

Since we are introducing a ContractEvent type here to record all "blockchain-ish" data for events emitted from the blockchain(s), it's also become clear that it overlaps part of the responsibility of the Transaction table. As discussed on the Discord, that table should be renamed more generically to BlockchainEvent, and part of this improvement should also be splitting the existing Transaction table so that it contains no blockchain-specific data (ie just serves as a grouping construct) and all the blockchain event info (for custom events and internal events like BatchPin) ends up in an associated BlockchainEvent object.


Easy navigate to page level sections (Toolbar)(New component)

[ ] bug
[x] feature request
[ ] enhancement

Summary
Keyboard-power and accessibility users should have a way to reach any section within the page. As the most common techniques in web accessibility is the “Skip Navigation” link, sometimes referred to as “Skip to Content,” however, in enterprise products with lots of content and many ways to navigate to the sections with a page, there is a need to have a toolbar with shortcuts to the main sections.
Description
The objective of this toolbar is to provide a mechanism to bypass the sections of the page that are repeated on multiple web pages by skipping directly to any part within a page. This also covers accessibility success Criterion 2.4.1 Bypass Blocks
Toolbar

Navigate to: contains each page main sections
Press OPT/ALT + LETTER is the keyboard shortcut which opens the toolbar

Color Contrast: It passes AAA level
Use cases
Interaction when the page loads

Hit tab opens a toolbar
By default highlighting sections in this page dropdown (Select>Option)
Using up/down arrow keys while highlighting the option in the dropdown the section in the page will be focused
When choosing an option from the dropdown, the selected option will be focused on the page

Interaction using a shortcut

Hit a predefined shortcut, e.g.: opt + t
By default highlighting sections in this page dropdown (Select>Option)
Using up/down arrow keys while highlighting the option in the dropdown the section in the page will be focused
When choosing an option from the dropdown, the selected option will be focused on the page

The toolbar will be hidden when the user selects an option or hit tab again

Page layout in default mode

Page layout showing A11y toolbar
The toolbar is visible when the user hits tab after page loads or on-demand using a shortcut

Navigate to section with the section highlight

@Jinnie Hi Ivan, I think this should go under New Component label.

@chlane This is a request for a more expansive keyboard only toolbar to appear (like the skip link but with a document outline). Do you have any input or suggestions on this?

This appears to be a <select> element allowing the user to set focus to different parts of the pages which will work.  But the  opt + t shortcut doesn't provide any accessibility benefit since the user should just be able to Tab to the '' and press Enter to activate it.

Couple of notes

Dark theme needs consideration
Toolbar is pushing down, but that is a problem with layouts, need to understand options here
The select/dropdown is not a component, should probably just use a menu or select instead (which already have keyboard shortcuts)
Need to review other examples already out there (Starbucks comes to mind)

Thanks for the responses, guys!

Dark theme the toolbar colors are the same, except the dropdown
When the toolbar bar appears the options in the list changes based on the page section
The select/dropdown is the dropdown component https://v2.clarity.design/dropdowns
I already did study research and will do a review with my team for this toolbar.

cc @sheribyrne as I demoed about the toolbar couple days ago.
Let me know if you need clarification.
Thanks
Nareg

The feature request here has been captured into our list and we’re going to take it into consideration as we develop Clarity Core capabilities. In an effort to clean up our backlog and focus our attention, I’m going to close this as captured in our feature requests. Please follow our development and releases to see when we release relevant components to make this possible. Future feature requests can be made in our GitHub Discussions.


Make easywsclient injectable

Rather than have easywsclient depend directly on a specific socket implementation, instead inject the socket implementation. Reasons why this is needed:

Platform support (currently resolved by using macros). Dependency injection enables more platform support without needing to resorting to macro flags. Right now, Winsock vs UNIX sockets, is determined with some macro craziness. Further, adding another layer to support SSL gets even more macro crazy. Let's just throw the macros out (mostly) and do dependency injection instead. (I don't mean to diss on macros! But this case here is not a good use of macros.)
SSL (would resolve #9 and #29). Dependency injection makes it possible to inject (or not) an SSL implementation. This means that the user will have the flexibility to choose OpenSSL or Mozilla NSS or anything else they want.
Unit testing. Dependency injection would make it possible to formally unit test the easywsclient code itself.

Here's some pseudocode along these lines...
class Socket // just a normal TCP socket, not a websocket. This is what gets injected.
{
    // return codes follow the BSD/POSIX convention:
    enum { EWOULDBLOCK = ..., ... };
    virtual void close() = 0;
    virtual ssize_t recv(void *buf, size_t len) = 0;
    virtual ssize_t send(const void *buf, size_t len) = 0;
    virtual void select(int millisecondsTimeout) = 0;
};

class RealWebSocket : public easywsclient::WebSocket
{
    // Now inject a Socket object instead of a socket file descriptor:
    RealWebSocket(auto_ptr<Socket> socket, ...);
};

// This is the factory: the function responsible for creating and injecting all dependencies:
WebSocket::pointer WebSocket::from_url(const std::string& url, const std::string& origin)
{
    if ("wss:" == url.substr(0, 4)) {
        auto_ptr<OpenSslSocket> socket(new OpenSslSocket(...));
        return new RealWebSocket(socket, ...);
    }
    else { // assume ws:
        #ifdef _WIN32
        auto_ptr<WinsockSocket> socket(new WinsockSocket(...));
        #else
        auto_ptr<PosixSocket> socket(new PosixSocket(...));
        #endif
        return new RealWebSocket(socket, ...);
    }
}

New to dependency injection? Miško Hevery explains it best: The Clean Code Talks - Don't Look For Things!. It is also described on the Wikipedia SOLID page.

Hi @dhbaird, many thanks for this.  I've been trying to use a different C++ lib for this using ASIO but its been a ball ache to implement.  It has optional boost support I I dont want to use boost in my VS2017 project.  I've got over the issues because boost support can be removed and standalone ASIO can be used.  The issue I've had is linking to OpenSSL.  I just cannot get it working in ASIO.  I've tried multiple different versions et-al.  This library looks awesome, but I need to inject OpenSSL.  The sample is cool, but did you get this working?  How did you get OpenSSL linked in?  I would really appreciate some advice because I've never hooked in OpenSSL before. What version did you get working, what libs and headers, and what headers do I need for the above code snippet?  Any advice would be extremely appreciated.


Why Return a & here Instead &mut in config_mut()

https://github.com/paritytech/substrate/blob/master/client/cli/src/runner.rs#L251
So I can't make function to receive the &mut Configuration.

And I think the -> C will cast &mut C to &C.