AIOC and AllStarLink with simple_usb Module

More of a question than an Issue,
I am trying to get my AIOC working with a 'feng UV-5R for an AllStarLink node.
I recompiled the chan_simpleusb module with the correct vendor and product ID's, and was surprised when the PTT came on during the simpleusb-tune-menu utility option to flash the PTT.
I know I have a long way to go, especially with COR.
How is COR currently handled by default? is it a code sent on the serial port?
Thanks,
Murf.

Oh wow I just found the solution already, I was on the right track.
https://www.youtube.com/watch?v=dMoZEgm2ULo&ab_channel=chcmedia FYI

Nice! So this is a first confirmed use for All-star link for me 🙂 Did you end up using the Virtual COS function of the AIOC?

Virtual COS essentially listens to the audio from the radio and tries to determine if there is a carrier (squelch disengaged). Currently this is done using very simple thresholding.
It asserts the volume down (iirc) key of the cm108 emulation, no serial codes required.

Ah yes I saw that option in the ASL module code, cool I will see if I can get it to work!

Oh.. I think I should be using v 1.3 RC1 not 1.2, correct Simon?

Ooops, you are correct! My bad. It looks like the COS feature was introduced in the v1.3 version.

Murf, is it possible to share your modified version of Allstarlink?  I would love to test it with my AOIC.

All I modified in chan_usbradio.c was the product and vendor ID to match the 1.2 ones.So reversing this, if you can set these to CM108 in 1.3 you are already good to try it.I plan to try this today and will let you know the outcome Sent from my iPhoneOn 2 Mar 2024, at 11:59 pm, Shopstream204 @.***> wrote:
Murf, is it possible to share your modified version of Allstarlink?  I would love to test it with my AOIC.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Simon rather than rebuild v1.3 rc1 with the CM108 Vendor and product ID , here is the changes to the ASL asterisk module :
https://github.com/Murf/ASL-Asterisk/commit/91b621e45c8ade2592f2a5e41bfa3558272de0bd

Ok I see no difference with V1.3 :(

UPDATE: and facepalm... I was using a Quansheng UV-K6, and have now swapped to a 'feng UV-5R and am progressing.

And now OPERATIONAL :)
TL;DR
Use a Baofeng UV-K5, make sure you either 1) Set the Vendor/Product ID of the AIOC to 0d8c:000x OR Modify AllStarLink asterisk module chan_usbradio.c to use the normal AIOC IDs of 1209:7388.

UPDATE: and facepalm... I was using a Quansheng UV-K6, and have now swapped to a 'feng UV-5R and am progressing.

What exactly didn't work? I think those should be very similar 🤔

And now OPERATIONAL :)

Nice! With virtual COS? Or are you using another way of detecting incoming voice?

Modify AllStarLink asterisk module chan_usbradio.c to use the normal AIOC IDs of 1209:7388.

Just curious, how did you do it? Using the python script? Note that the next time you use the script, you need to adjust the VID/PID to the new one, or it doesn't find the AIOC.

For the Quansheng, when I run the radio-tune-menu option "F" which is supposed to turn on PTT, emit a tone, then turn off PTT, which it does for the Baofeng UV-5R, but for the Quansheng UV-K6 the PTT stays on and never goes off, and no tone is emitted.
For the Vendor/Product ID detection I didnt use the script as I could not get it to run. Modifying the ASL chan_usbradio module itself to look for AIOC IDs rather than CM108 IDs is what I did.
So no serial port involved at all, just pure CM108 emulation.
For COS I didnt really do anything to the AllStarLink config other than what the Youtube I linked suggested, which is basically just set carrierfrom=VOX in usbradio.conf
May I ask, what exactly did you base the CM108 emulation on? Was it the PDF that ASL use for modifying the CM08 hardware?

Has anyone been able to successfully use the script?  I have tried on both a linux and windows machine and each time it fails.

Has anyone been able to successfully use the script? I have tried on both a linux and windows machine and each time it fails.

Which script?

The script for v1.3 RC1 that allows the vid and pid to be changed

The script for v1.3 RC1 that allows the vid and pid to be changed

No I could not get it to run either, errors in the file.
I just recompiled chan_usbradio.c with correct IDs

What all is involved in recompiling the file?  Once the file is compiled is it as easy as placing the file on your existing Allstarlink install or do you need to do a complete reinstall of Allstarlink?

What all is involved in recompiling the file? Once the file is compiled is it as easy as placing the file on your existing Allstarlink install or do you need to do a complete reinstall of Allstarlink?

You will need to install build tools on the computer that you have ASL installed on, what OS is it? and distribution?
Then you will need to download the version of ASL you are using (for example I am using ASL V2 beta)
Once you can confirm you can build it (not install it) then edit the chan_usbradio.c file to make the changes, as shown above in previous posts.
then just copy the module "chan_usbradio.so" to /usr/lib/asterisk/modules/, and restart asterisk or reboot

@Murf  I am using the ASL Beta 2 ISO.  I believe it's based on Debian 10.

@Murf I am using the ASL Beta 2 ISO. I believe it's based on Debian 10.

Perfect, thats what I am using.

Hi, @Murf Brett,
Is the modified 'chan_usbradio.c' (chan_usbradio.so) file available?. I have been struggling and only running Raspberry Pi on Linux and would like to try it. I have no major knowledge but can get the file to the correct directory. I would love to get my AIOC working on AllStar. Thanks in advance, or more information (laymans terms) on how to do it.
Ellis

The file is available in my github, but you need to be able to build it. If
you are not familiar with this process then it is probably not the best
option for you.
On Mon, 25 Mar 2024 at 07:38, Hadgee @.***> wrote:

Hi, @Murf https://github.com/Murf Brett,
Is the modified 'chan_usbradio.c' (chan_usbradio.so) file available?. I
have been struggling and only running Raspberry Pi on Linux and would like
to try it. I have no major knowledge but can get the file to the correct
directory. I would love to get my AIOC working on AllStar. Thanks in
advance, or more information (laymans terms) on how to do it.
Ellis
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2016936090, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72OOEAQ4LCIQMOIJCMATYZ42UJAVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWHEZTMMBZGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Murf  No problem. I will investigate further.

@Murf
In the interest of my sanity....after losing far too many hours with permission errors and getting nowhere would it be possible to have a copy of your 'chan_usbradio.so' file as I believe it is only the equivalent of a library file.? I will try anything before assigning my AIOC cable to chirp and APRS and moving on from AllStarLink home repeater.
Yours Hopingly  Ellis de M5AEI

@Murf In the interest of my sanity....after losing far too many hours with permission errors and getting nowhere would it be possible to have a copy of your 'chan_usbradio.so' file as I believe it is only the equivalent of a library file.? I will try anything before assigning my AIOC cable to chirp and APRS and moving on from AllStarLink home repeater. Yours Hopingly Ellis de M5AEI

Assuming you are using a Pi, here you go
chan_usbradio.zip
Also here:
https://archive.org/download/chan_usbradio/chan_usbradio.zip

@Murf  Thank you, yes Pi. I will let you know how it goes.

@Murf
Thanks again. All good first contact through to Hubnet today. AIOC V1.3.   Pi4 8gb running ASL 2.0Beta. I am using Baofeng UV-82.
I have a bit of tweaking but works a treat. :-)

Glad to help!
On Tue, 2 Apr 2024 at 01:33, Hadgee @.***> wrote:

@Murf https://github.com/Murf
Thanks again. All good first contact through to Hubnet today. AIOC V1.3.
Pi4 8gb running ASL 2.0Beta. I am using Baofeng UV-82.
I have a bit of tweaking but works a treat. :-)
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2029852499, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72ONT442O2E4XOK6NRTDY3FV4NAVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRZHA2TENBZHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @Murf do you know if the SimpleUSB option been accomplished using the change in USB IDs and @skuep's virtual-COS? So just using a reconfiguration of the AIOC? It would be good to achieve this as SimpleUSB is much easier for novice users to do on AllStarLink.
It's not clear from the above thread, but it looks like USBRadio is the only config that's been made to work.
Cheers Mark

Hi @Murf do you know if the SimpleUSB option been accomplished using the change in USB IDs and @skuep's virtual-COS? So just using a reconfiguration of the AIOC? It would be good to achieve this as SimpleUSB is much easier for novice users to do on AllStarLink. It's not clear from the above thread, but it looks like USBRadio is the only config that's been made to work. Cheers Mark

I think it is best to wait for the ability to change the ID's on the AIOC firmware itself, then no code changes will be needed for asterisk.
@skuep do you have an ETA on a working python script to set AIOC USB Vendor/Device IDs please?

Hi @Murf I think the USB ID manipulation was delivered and closed on https://github.com/skuep/AIOC/issues/46
So hopefully we are nearly there. I'm not skilled in the manipulation of the AIOC registers so it would be nice to have a canned script to perform the AIOC register mods to make it SimpleUSB compatible. (setting USB ID and Virtual COS)

Yes, that was the plan via  python script
On Thu, 4 Apr 2024 at 09:56, G1LRO @.***> wrote:

Hi @Murf https://github.com/Murf I think the USB ID manipulation was
delivered and closed on #46 https://github.com/skuep/AIOC/issues/46
So hopefully we are nearly there. I'm not skilled in the manipulation of
the AIOC registers so it would be nice to have a canned script to perform
the AIOC register mods to make it SimpleUSB compatible. (setting USB ID and
Virtual COS)
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2035744099, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72OI3KEOEAOELCXXP4TDY3SCIRAVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZVG42DIMBZHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

There was a script provided  for RC1.3 but I have not had success using it.  That said I have no python knowledge and I am relatively green with Linux.

Yes I believe that script was incomplete.
I could be wrong, but I expect its functionality will be something like:
./scriptname.py V_ID=0x0123 H_ID=0xABCD
pretty straightforward...
On Thu, 4 Apr 2024 at 11:57, Shopstream204 @.***> wrote:

There was a script provided for RC1.3 but I have not had success using it.
That said I have no python knowledge and I am relatively green with Linux.
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2035889637, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72OIBUMAWVYEFXVMGYK3Y3SQNZAVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZVHA4DSNRTG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi  @skuep , please do you have a moment to draft a script to configure the AIOC for AllStar as described above?

@G1LRO Thank you for your firmware update script. I flashed my AIOC to v1.3 using it.

You are correct. It's a pretty advanced feature with some caveats, that's why there is no canned script available yet.
import sys
import hid
from struct import Struct
from enum import IntEnum, IntFlag

class Register(IntEnum):
    MAGIC = 0x00
    USBID = 0x08
    AIOC_IOMUX0 = 0x24
    AIOC_IOMUX1 = 0x25
    CM108_IOMUX0 = 0x44
    CM108_IOMUX1 = 0x45
    CM108_IOMUX2 = 0x46
    CM108_IOMUX3 = 0x47
    SERIAL_CTRL = 0x60
    SERIAL_IOMUX0 = 0x64
    SERIAL_IOMUX1 = 0x65
    SERIAL_IOMUX2 = 0x66
    SERIAL_IOMUX3 = 0x67
    VPTT_LVLCTRL = 0x82
    VPTT_TIMCTRL = 0x84
    VCOS_LVLCTRL = 0x92
    VCOS_TIMCTRL = 0x94

class Command(IntFlag):
    DEFAULTS = 0x10
    RECALL = 0x40
    STORE = 0x80

class PTTSource(IntFlag):
    NONE = 0x00000000
    CM108GPIO1 = 0x00000001
    CM108GPIO2 = 0x00000002
    CM108GPIO3 = 0x00000004
    CM108GPIO4 = 0x00000008
    SERIALDTR = 0x00000100
    SERIALRTS = 0x00000200
    SERIALDTRNRTS = 0x00000400
    SERIALNDTRRTS = 0x00000800
    VPTT = 0x00001000

def read(device, address):
    data = device.get_feature_report(int(address), 5)
    address, value = Struct('<BL').unpack(data)
    return value

def write(device, address, value):
    data = Struct('<BL').pack(address, value)
    device.send_feature_report(data)

def dump(device):
    for r in Register:
        print(f'Reg. {r.value:02x}: {read(device, r.value):08x}')

# AIOC is searched for on the system using these values
aioc = hid.Device(vid=0x1209, pid=0x7388)

magic = Struct("<L").pack(read(aioc, Register.MAGIC))

if (magic != b'AIOC'):
    sys.exit(-1)

print(f'Manufacturer: {aioc.manufacturer}')
print(f'Product: {aioc.product}')
print(f'Serial No: {aioc.serial}')
print(f'Magic: {magic}')

if True:
    # Load the hardware defaults
    print(f'Loading Defaults...')
    write(aioc, 0, Command.DEFAULTS)

if True:
    # Set USB VID and PID (use with caution. Will need changes above to be able to re-configure the AIOC)
    vid = 0x1209 # Set VID here
    pid = 0x7388 # Set PID here
    write(aioc, Register.USBID, (vid << 0) | (pid << 16))
    print(f'Now USBID: {read(aioc, Register.USBID):08x}')

if True:
    # Store settings into flash
    print(f'Storing...')
    write(aioc, 0, Command.STORE)
```

This should do the trick. You can set the VID/PID to whatever values you like in the commented lines. After the script has stored the settings on the AIOC, you need to disconnect and reconnect it to your computer.

One important thing: If, for some reason you want to run the script again (e.g. reverting back the AIOC to defaults), you need to change the VID/PID to the new values in the commented line at the top. Otherwise the script will not find the AIOC (because it expects it to be at 0x1209/0x7388). In addition, you should remove all other CM108 devices, that could have the same VID/PID in order for the script not to confuse it with an AIOC.

Second thing: In another issue, we found some problems in conjunction with running the script on Windows. This has to do with Windows being a bit more accurate with what commands it can send to the AIOC (or any HID device). I hope I can find a nice solution for this in the future. For now, you need to use Linux or a Raspberry Pi.

Thanks for this @skuep it's really helpful. Can we confirm that the script also enables the Virtual-COS function at the same time?

Sorry, I forgot to include it, I will update it later

I was wrong, I think virtual COS could be enabled by default on the CM108 volume up or down button.

Thanks @skuep  it does appear the virtual COS is on by default following my initial testing. So far so good.
To help others trying to configure, I have set these in the SimpleUSB tune menu.:
COSFROM Mode (currently "usbinvert")
PTT Mode (currently active LOW)
I found the radio went into PTT on boot up of the AllStarLink so had to change the PTT mode. The COS mode in SimpleUSB is also inverted by default.
I think there are other settings to change to optimize performance, this is just a get-you-going.

I have finally managed to get the python script to run (hint for when using the ASL2 pi image, command is python3 scriptfilename.py, and I needed pip3 install hid--1.0.4)
Unfortunately it does not work:
root@asl2-46471:/home/repeater# python3 aioc_params.py
Traceback (most recent call last):
File "aioc_params.py", line 42, in
aioc = hid.Device(vid=0x1209, pid=0x7388)
File "/usr/local/lib/python3.7/dist-packages/hid/init.py", line 130, in init
raise HIDException('unable to open device')
hid.HIDException: unable to open device
root@asl2-46471:/home/repeater# lsusb
Bus 001 Device 005: ID 1209:7388 Generic

UPDATE: I got the python script to work, I had to:
yum install hidapi
as well as do it on another linux box

That's odd.. it should work on the raspberry pi. Did they do some fundamental changes to the ASL image? Is "root" really the root user (und 0) or is it a regular user just makes root? You could try using sudo with the python3 command, just to be sure...

Its strange, after I change the IDs to CM108 it now lets me use the script
(once I updated the ID's to open of course)
On Sun, 7 Apr 2024 at 18:59, Simon Küppers @.***> wrote:

That's odd.. it should work on the raspberry pi. Did they do some
fundamental changes to the ASL image? Is "root" really the root user (und
0) or is it a regular user just makes root? You could try using sudo with
the python3 command, just to be sure...
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2041375652, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72OMO6X4SI3ONYACQKY3Y4EDFJAVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBRGM3TKNRVGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

So you changed the USB IDs on your other Linux system and now it works on the ASL image? Hmmm.. still smells a bit like permission problems.

Agreed :)
On Sun, 7 Apr 2024 at 20:17, Simon Küppers @.***> wrote:

So you changed the USB IDs on your other Linux system and now it works on
the ASL image? Hmmm.. still smells a bit like permission problems.
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2041407025, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72OMP5VVHVBJKVARCKP3Y4EMLHAVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBRGQYDOMBSGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

I'm having trouble with the virtual-COS on ASL, I had it working the other day and now it's not working and the simpleusb tune menu shows no activity either. I can't see anything has changed.
Does anyone know how to verify the operation of the Virtual-COS buy viewing the expected signals that would come from the CM108 emulation?

I am also having trouble with simpleusb signal detection. With usbradio I use the Vox setting but that is not an option with simpleusb On 10 Apr 2024, at 3:09 AM, G1LRO @.***> wrote:
I'm having trouble with the virtual-COS on ASL, I had it working the other day and now it's not working and the simpleusb tune menu shows no activity either. I can't see anything has changed.
Does anyone know how to verify the operation of the Virtual-COS buy viewing the expected signals that would come from the CM108 emulation?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

I am have resolved the COS issue, it was  hardware problem elsewhere.
I am able to use SimpleUSB rather than Usbradio. To do this I have amended the USB ID info to the CM108 settings, it then works on simple usb. set carrierfrom = usbinvert  and ctcssfrom = no . Also set invertptt = 0
This uses the Virtual-COS Simon has written into the AIOC to avoid using USBradio and Vox, I tried USBradio before with David's modified library for the AIOC but couldn't make it work,
Hope this helps

I'm struggling with the python script on a fresh raspbian 11 (Bullseye) install. getting the same 'unable to open device' error:
`Traceback (most recent call last):
  File "/home/admin/aioc.py", line 42, in <module>
    aioc = hid.Device(vid=0x1209, pid=0x7388)
  File "/usr/local/lib/python3.9/dist-packages/hid/__init__.py", line 130, in __init__
    raise HIDException('unable to open device')
hid.HIDException: unable to open device
`

Now i think this has something to do with permissions as I tried the commands in this article https://bbs.archlinux.org/viewtopic.php?id=278341
It made the python script work perfectly for several times. Until, when I put the commands into a script and ran it again, it's all broken and I can d work out how to get it going again.
I have deleted the /etc/udev/rules.d/92-viia.rules created by these commands and tried running from scratch, no joy.
Any Ideals folks?

I had this issue and had to change the ID from another linux host (Intel
nuc). Pi would not work.
On Thu, 11 Apr 2024 at 09:31, G1LRO @.***> wrote:

I'm struggling with the python script on a fresh raspbian 11 (Bullseye)
install. getting the same 'unable to open device' error:
Traceback (most recent call last):   File "/home/admin/aioc.py", line 42, in <module>     aioc = hid.Device(vid=0x1209, pid=0x7388)   File "/usr/local/lib/python3.9/dist-packages/hid/__init__.py", line 130, in __init__     raise HIDException('unable to open device') hid.HIDException: unable to open device
Now i think this has something to do with permissions as I tried the
commands in this article https://bbs.archlinux.org/viewtopic.php?id=278341
It made the python script work perfectly for several times. Until, when I
put the commands into a script and ran it again, it's all broken and I can
d work out how to get it going again.
I have deleted the /etc/udev/rules.d/92-viia.rules created by these
commands and tried running from scratch, no joy.
Any Ideals folks?
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2048598382, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72OP73GTEPE74YALJ2BDY4XDUZAVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBYGU4TQMZYGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

I have used the simplusb settings following, and everything works except DTMF is not detected.
carrierfrom = usbinvert
ctcssfrom = no
invertptt = 0

I had this issue and had to change the ID from another linux host (Intel nuc). Pi would not work.
…

Interestingly I have one Pi set up (v11 Bullseye) where this works consistently no problem, but all the new images I am trying won't work so there is a solution somewhere. @skuep any ideas?

I have used the simplusb settings following, and everything works except DTMF is not detected. carrierfrom = usbinvert ctcssfrom = no invertptt = 0

DTMF was working for me, but the virtual-cos was dropping between numbers  so you have t send quickly. I tested with the Asterix CLI as in this vid: https://www.youtube.com/watch?v=iCZsMFrVJlM&t=1485s

I had this issue and had to change the ID from another linux host (Intel nuc). Pi would not work.
…

Interestingly I have one Pi set up (v11 Bullseye) where this works consistently no problem, but all the new images I am trying won't work so there is a solution somewhere. @skuep any ideas?

Can you try running the script with sudo?

I have used the simplusb settings following, and everything works except DTMF is not detected. carrierfrom = usbinvert ctcssfrom = no invertptt = 0

DTMF was working for me, but the virtual-cos was dropping between numbers so you have t send quickly. I tested with the Asterix CLI as in this vid: https://www.youtube.com/watch?v=iCZsMFrVJlM&t=1485s

Nice! I think the thresholding detector on the AIOC needs some tuning still. There are ways to manipulate the timeouts using the script as well, but I have not had time to define the registers for that yet.

I have used the simplusb settings following, and everything works except DTMF is not detected. carrierfrom = usbinvert ctcssfrom = no invertptt = 0

Is invertptt = 0 special (different from default)? From what I can tell from e.g. https://allstarsetup.com/modify-a-cm108-sound-fob/ invertptt should have the same polarity as the AIOC.
What about carrierfrom=usbinvert? The AIOC sets the Volume UP or DOWN button (not sure) when the carrier is received. I think that is the other way around by default in ASL?

I had this issue and had to change the ID from another linux host (Intel nuc). Pi would not work.
…

Interestingly I have one Pi set up (v11 Bullseye) where this works consistently no problem, but all the new images I am trying won't work so there is a solution somewhere. @skuep any ideas?

Can you try running the script with sudo?

everything is run Sudo.
this is relatively simple to reproduce by installing a fresh Raspbian bullseye and running the script.

Nice! I think the thresholding detector on the AIOC needs some tuning still. There are ways to manipulate the timeouts using the script as well, but I have not had time to define the registers for that yet.

I think the COS overhang needs to be extended a bit as it does flap a bit between words. this causes a problem on ASL. So good news there's a register for it. I would go to say 600ms or so to start with.

Hi @skuep please can you help with advice about an environment that will support the Python hid library functions? I've been struggling for days to get this to work on Rasbian Bullseye, since this is the OS that end users are likely to use (an an RPi 3 etc). I'm running into one error after another.
I'm very happy to help where I can, as being able to run the script is essential for any user looking to take advantage of the v1.3 features.
Sorry to be a pain but it's difficult to find experts in this specialist area.

ng for me, but the virtual-cos was dropping between numbers so you have t send quickly

None of my DTMF codes show up at all.

Hi all,
Just an update...I am successfully running a AIOC Cable AllStar node using Vox and USBradio on a Pi 4. My radio is  Baofeng UV-82 and has battery eliminator. DTMF works fine using Quansheng K5 with regular connects and tests to HubNet. I've been delayed with the update due to an annoying noise issue. It turned out to be the monitor into the Pi, it is now sorted out and I have clear audio. Thanks again murf for the your file.
I may look at PTT control once its sorted out, at the moment it works perfect so no rush.....
73 Ellis M5AEI

@G1LRO I only tried it once and it didn't work, also on a Pi 3b. I didn't want to mess with my ASL image on the Pi 4 as I had lost it once. So essentially using @Murf 's modified chan_usbradio.so file so no USB ID modification needed. The only issue I have had was the vox triggering and staying on tx which turned out to be very noisy monitor/HDMI lead. So quiet now its headless.

I definitely need to test the script on a Raspberry Pi. Sounds odd to me, that it doesn't work. But currently I don't have a lot of spare time for this project, so it might take a while.

Hi @skuep do you mind if I set up another issue for the HID on Pi problem? That way me may be able to call upon some specialist expertise on that specialist area, I think this item #61 is pretty much completed. I'd also like to log another issue to extend the virtual-COS overhang period.

Hi @skuep do you mind if I set up another issue for the HID on Pi problem? That way me may be able to call upon some specialist expertise on that specialist area, I think this item #61 is pretty much completed. I'd also like to log another issue to extend the virtual-COS overhang period.

Yeah, b feel free to open those issues 👍

Hi @skuep do you mind if I set up another issue for the HID on Pi problem? That way me may be able to call upon some specialist expertise on that specialist area, I think this item #61 is pretty much completed. I'd also like to log another issue to extend the virtual-COS overhang period.

Hi @Murf are you able to test Simon's updated script in https://github.com/skuep/AIOC/issues/67#issuecomment-2080384479 ? I'm AFK for a week.

I've provided a documented/scripted software download for the process of using
AIOC and AllStarLink (Simple_USB) on the Raspberry Pi so I think this issue can be closed @Murf .
https://g1lro.uk/?p=676

Thanks @G1LRO I was having a few problems getting ASL 2 beta to work properly, so i started from scratch with the HamVoip image and it literally worked out of the box.
Great work, @skuep lets close this.

Oops i spoke too early, I am getting no CTSS at all, tried all 3 settings:
ctcssfrom=no
ctcssfrom=usb
ctcssfrom=usbinvert

@Murf I don't think you'll get CTCSS to work through the speaker port of the radio, it's all filtered out by then. CTCSS can be used on the receive settings of the radio to secure the channel, then the AIOC will just use it's virtual-COS when the RX audio arrives..

Sorry i meant DTMF
I am not quite sure what this setting even means to be honest:
ctcssfrom
On Sun, 5 May 2024 at 19:16, G1LRO @.***> wrote:

@Murf https://github.com/Murf I don't think you'll get CTCSS to work
through the speaker port of the radio, it's all filtered out by then. CTCSS
can be used on the receive settings of the radio to secure the channel,
then the AIOC will just use it's virtual-COS when the RX audio arrives..
—
Reply to this email directly, view it on GitHub
https://github.com/skuep/AIOC/issues/61#issuecomment-2094700711, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG72OPCAIHAYOTN3PKWDNDZAX2F5AVCNFSM6AAAAABECYDKOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUG4YDANZRGE
.
You are receiving this because you were mentioned.Message ID:
@.***>

I've provided a documented/scripted software download for the process of using AIOC and AllStarLink (Simple_USB) on the Raspberry Pi so I think this issue can be closed @Murf .
https://g1lro.uk/?p=676

Nice, I like it! Couple of suggestions:

The HID interface for configuring the AIOC might change in the future, due to some issues that we have with windows hosts. The 1.3.0 firmware is a preview firmware and things might break. Just a heads up
Did you modify the binary file to change the COS timeout? In that case I recommend to mark the firmware like so: aioc-firmware-1.3.0-rc.1-g1lro.bin and make it obvious to the user that you are using a "custom" firmware.

Sorry i meant DTMF

I remembered thare are some issues with DTMF due to the default COS timeout being too low.. Not sure though, should be all in this issue here.

I've provided a documented/scripted software download for the process of using AIOC and AllStarLink (Simple_USB) on the Raspberry Pi so I think this issue can be closed @Murf .
https://g1lro.uk/?p=676

Nice, I like it! Couple of suggestions:

The HID interface for configuring the AIOC might change in the future, due to some issues that we have with windows hosts. The 1.3.0 firmware is a preview firmware and things might break. Just a heads up
Did you modify the binary file to change the COS timeout? In that case I recommend to mark the firmware like so: aioc-firmware-1.3.0-rc.1-g1lro.bin and make it obvious to the user that you are using a "custom" firmware.

Hi Simon, I haven't modified your binary firmware, I've just supplied the Python scripts for the user to run with the extra parameter that will extend the COS. When the firmware goes to GA then I'll just change the link to the correct bin file, I think everything else will be OK.
If/when the HID mechanism is changed then I can update that process too. It's all fairly easily scripted, but for now I'm prescribing a Raspberry Pi image to do the updates as that's a stable machine environment.
For @Murf and the DTMF issues, I have not experienced any of these and use DTMF to join nodes on ASL etc, I can also see the DTMF properly reported in the Asterisk command-line console. I wonder if this is a problem with the sending device, I happy to pop a video across if that will help.

@G1LRO  The node radio is a Baofeng UV-5R and the radio I am trying to DTMF to it from is a Quansheng UV-K6(8)

@Hadgee I have tried multiple firmware, and even an Icom and a Yaesu handheld, same thing on all of them, just the occasional "*" is recognized, nothing else.

https://github.com/skuep/AIOC/assets/133013430/97a9516f-40ab-4290-b824-c9e8de97801c
Hi @Murf , here is a video of a Boafeng sending DTMF to a Quansheng K5 connected via my Universal Radio Controller box (that includes the AIOC CPU).
The monitor is showing the ASL Asterisk CLI client receiving the DTMF and the action completing.
The K5 is running stock firmware.
The ASL is a fresh install, the only changes are the PTT and COS settings.
Not sure if this is very helpful to you exactly, other than to show you that it should work and to soldier-on.
73 Mark

I've provided a documented/scripted software download for the process of using AIOC and AllStarLink (Simple_USB) on the Raspberry Pi so I think this issue can be closed @Murf .
https://g1lro.uk/?p=676

Nice, I like it! Couple of suggestions:

The HID interface for configuring the AIOC might change in the future, due to some issues that we have with windows hosts. The 1.3.0 firmware is a preview firmware and things might break. Just a heads up
Did you modify the binary file to change the COS timeout? In that case I recommend to mark the firmware like so: aioc-firmware-1.3.0-rc.1-g1lro.bin and make it obvious to the user that you are using a "custom" firmware.

Hi Simon, I haven't modified your binary firmware, I've just supplied the Python scripts for the user to run with the extra parameter that will extend the COS. When the firmware goes to GA then I'll just change the link to the correct bin file, I think everything else will be OK.

I see.. I was just thrown off by the following
Virtual-COS timer fix.

This section is not needed if you are running the installation after 4th May 2024 as the change is already in the software download.

If/when the HID mechanism is changed then I can update that process too. It's all fairly easily scripted, but for now I'm prescribing a Raspberry Pi image to do the updates as that's a stable machine environment.

That's a good choice in my opinion for now.


Dashboard - List View - Filters

Feature Description
As an author I want to see and filter stories in an elegant way
Feature Brief
Design Note as of Mar 25, Sam will be adding a "simple" view to figma

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Stories can be filtered by an "All Stories" pill.
All Stories is the default filter.
Stories can be filtered by a "Shows all stories" pill
Stories can be filtered by a "Drafts" pill
For the "Drafts" filter, only shows stories that are in draft state (unpublished).
Stories can be filtered by a "Published Stories" pill
For the "Published Stories" filter, Only shows stories that have been published.
The user is able to sort by:

Title
Date created
Last modified (default)
Last opened
Created by (Sorts stories by author. Always puts the author’s own stories first.)
🔗 Most Popular
Only available when Site Kit is installed. Sorts stories by number of unique visits in the last 30 days.

Note: The My templates filter has been omitted for now
QA Instructions

@carlos-kelly notes from our meeting today:

Updated Sorting options / UX. Note AZ vs ZA for Author and Categories columns.

Identifier is placed on the right for Publish items:

Some of these filters are custom - https://github.com/google/web-stories-wp/issues/1195


Keeping selected test name

Refresh shouldn't change selected test name (if possible).

/lgtm

/lgtm
(we were still discussing abt it offline:)
Thanks for this cool change.
Btw @wojtek-t - this should no longer trigger that refresh issue.


Update a few README links

At some point, the maven central badge should also be updated, but that can't happen until there is a release.

Codecov Report

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

@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage          ?   89.53%
  Complexity        ?       87
=========================================
  Files             ?        4
  Lines             ?      602
  Branches          ?        6
=========================================
  Hits              ?      539
  Misses            ?       61
  Partials          ?        2

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 5b863ee...a03caf2. Read the comment docs.

btw, I think the member privileges need to be adjusted.  I do not have merge capability.

@christopher-johnson you should be able to merge now. Sorry about that.


implement bi-directional BFS solver

A faster solver at the expense of requiring more RAM.

made obsolete by DB solver


Fail to import Notepad++

Hi there,
when i try to load the xml file into the user defined section i get following error message:
Fail to import.
I am running notepad++ version 7.5.1 on windows 10.

The plugin works at my end, Notepad++ 7.8.5, although I imported it long ago. Try to import some other language plugin to see if you get same error.


Graceful handling of temp file write failure in fzf.vim

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[ ] bash
[x] zsh
[ ] fish

Problem / Steps to reproduce
Set the temporary directory to somewhere writes will fail simulating a drive that's full; run any vim FZF command that will write to the temp file, say :History
In line 474 of fzf.vim, the call to writefile fails and I believe the code jumps to the finally clause of line 517. In this code path source_command is not defined yet. May be catching the writefile failure or default source_command to empty? Any graceful handling is better than currently erroring out on undefined variable source_command.
Appreciate the great work, thanks!

Thanks for the suggestion.
diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index b17361d..3c705e9 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -444,6 +444,12 @@ function! s:use_sh()
   return [shell, shellslash, shellcmdflag, shellxquote]
 endfunction

+function! s:writefile(...)
+  if call('writefile', a:000) == -1
+    throw 'Failed to write temporary file. Check if you can write to the path tempname() returns.'
+  endif
+endfunction
+
 function! fzf#run(...) abort
 try
   let [shell, shellslash, shellcmdflag, shellxquote] = s:use_sh()
@@ -471,7 +477,7 @@ try
       let source_command = source
     elseif type == 3
       let temps.input = s:fzf_tempname()
-      call writefile(source, temps.input)
+      call s:writefile(source, temps.input)
       let source_command = (s:is_win ? 'type ' : 'cat ').fzf#shellescape(temps.input)
     else
       throw 'Invalid source type'
@@ -515,7 +521,7 @@ try
   call s:callback(dict, lines)
   return lines
 finally
-  if len(source_command)
+  if exists('source_command') && len(source_command)
     if len(prev_default_command)
       let $FZF_DEFAULT_COMMAND = prev_default_command
     else
@@ -660,7 +666,7 @@ function! s:execute(dict, command, use_height, temps) abort
   endif
   if s:is_win
     let batchfile = s:fzf_tempname().'.bat'
-    call writefile(s:wrap_cmds(command), batchfile)
+    call s:writefile(s:wrap_cmds(command), batchfile)
     let command = batchfile
     let a:temps.batchfile = batchfile
     if has('nvim')
@@ -678,7 +684,7 @@ function! s:execute(dict, command, use_height, temps) abort
     endif
   elseif has('win32unix') && $TERM !=# 'cygwin'
     let shellscript = s:fzf_tempname()
-    call writefile([command], shellscript)
+    call s:writefile([command], shellscript)
     let command = 'cmd.exe /C '.fzf#shellescape('set "TERM=" & start /WAIT sh -c '.shellscript)
     let a:temps.shellscript = shellscript
   endif
@@ -877,7 +883,7 @@ function! s:execute_term(dict, command, temps) abort
     call s:pushd(a:dict)
     if s:is_win
       let fzf.temps.batchfile = s:fzf_tempname().'.bat'
-      call writefile(s:wrap_cmds(a:command), fzf.temps.batchfile)
+      call s:writefile(s:wrap_cmds(a:command), fzf.temps.batchfile)
       let command = fzf.temps.batchfile
     else
       let command = a:command

What do you think?

This is perfect ! Thanks


Log when an expiring deployed certificate is detected

Log (in addition to writing a metric) whenever an expiring deployed certificate is detected. This could be useful when using log-based alerting/detection, rather than metric-based.

Coverage increased (+0.003%) to 62.311% when pulling 5c1171b3ca75f9ed49223a5cb132ffce49e42194 on jtschladen:log-expiring-deployed into e9913e56e5cb1a34c12048f29cc83a6206e022d4 on Netflix:master.


Elder's market thermometer calculation

First of all, thanks for the work on this library!
I've been using the indicator from both Tradingview (using lazybear's version) and from Python using pandas_ta. I noticed the values are different between the two versions, is it a bug or is it a difference in the calculation?
Here is an example with BTCUSDT 4h (Binance):
Tradingview:

And here is what i tried from my code:
thermo = df.ta.thermo(length=22, long=3, short=7)
>>print(thermo

              THERMO_22_3.0_7.0  THERMOma_22_3.0_7.0
...
2021-04-18 00:00:00            9038.68          1415.982374
2021-04-18 04:00:00            3971.96          1638.241298
2021-04-18 08:00:00             860.10          1570.576837
2021-04-18 12:00:00             723.77          1496.941460
2021-04-18 16:00:00            1659.75          1511.098724
2021-04-18 20:00:00             720.62          1442.361444
2021-04-19 00:00:00             602.72          1369.349144
2021-04-19 04:00:00             720.06          1312.889219
2021-04-19 08:00:00             290.65          1223.998852
2021-04-19 12:00:00            1898.45          1282.646778
2021-04-19 16:00:00            1042.20          1261.738362
2021-04-19 20:00:00            1165.78          1253.394157
2021-04-20 00:00:00            1280.41          1255.743361
2021-04-20 04:00:00             907.08          1225.424808
2021-04-20 08:00:00             932.82          1199.980911
2021-04-20 12:00:00             419.20          1132.086919
2021-04-20 16:00:00             450.05          1072.779361
2021-04-20 20:00:00             990.37          1065.613329
2021-04-21 00:00:00             919.39          1052.898257
2021-04-21 04:00:00             935.14          1042.658409
2021-04-21 08:00:00             691.84          1012.152460
2021-04-21 12:00:00             596.70           976.026159
2021-04-21 16:00:00             829.00           963.241276
2021-04-21 20:00:00            1592.98          1018.001165
2021-04-22 00:00:00             975.02          1014.263672
2021-04-22 04:00:00             889.00          1003.371179
2021-04-22 08:00:00             373.00           948.556294
2021-04-22 12:00:00            1311.56           980.121834

I'm getting the OHLC data from here: https://api.binance.com/api/v1/klines?&symbol=BTCUSDT&interval=4h&limit=1200
Here, for example, the last candle will have a value of 1311 from Python, while according to Lazybear's version is around 300, the same happens with other candles.  Thanks in advance!

Hello @Jacks349,
Hmm... that's weird. Thanks for providing details and source.
Also if you have not come across it already, here is some discussion about the creation of thermo in Issue #119.
When I test TV indicators, I export from them to do correlation testing. If you could do that when you get a chance and print a correlation result, that would be great.

If you have a TradingView account, add LazyBear's Thermo indicator to a new basic chart. Just use ticker SPY and Daily timeframe. So the new chart should mostly be: the Candles, Volume and Volume MA, and LazyBear's Thermo Plots. Zoom out as far as you can and then you should read Issue #107 on how to export data from TradingView and do correlation testing.
That will give you a good sample to compare visually. Anywhere between 500 and 1000 rows is good. Plot the data on the last 100 or so bars to see how it looks and 300-400 bars for a bigger picture to make sure it looks consistent on a large perspective. You can test Crypto later once you are certain it looks about right or its nearly 99% correlated.

At this time, I currently do not have an expected time on when I can take on this Issue. But I'll keep you posted.
Kind Regards,
KJ

Hello @Jacks349,
Hmm... that's weird. Thanks for providing details and source.
Also if you have not come across it already, here is some discussion about the creation of thermo in Issue #119.
When I test TV indicators, I export from them to do correlation testing. If you could do that when you get a chance and print a correlation result, that would be great.

If you have a TradingView account, add LazyBear's Thermo indicator to a new basic chart. Just use ticker SPY and Daily timeframe. So the new chart should mostly be: the Candles, Volume and Volume MA, and LazyBear's Thermo Plots. Zoom out as far as you can and then you should read Issue #107 on how to export data from TradingView and do correlation testing.
That will give you a good sample to compare visually. Anywhere between 500 and 1000 rows is good. Plot the data on the last 100 or so bars to see how it looks and 300-400 bars for a bigger picture to make sure it looks consistent on a large perspective. You can test Crypto later once you are certain it looks about right or its nearly 99% correlated.

At this time, I currently do not have an expected time on when I can take on this Issue. But I'll keep you posted.
Kind Regards,
KJ

I'm going to try to do correlation testing, once i know how to do it properly, thank you! I'm trying to understand how does Lazybear calculates  it

Hello @Jacks349,
How is this coming along? Have you exported data from TV and run a correlation test yet?
I will be closing this Issue in the new few days if there is no continued activity. Feel free to reopen when you are ready to continue this Issue.
Kind Regards,
KJ

@twopirllc
Sorry for the late answer! I did not manage to do the test due to a lack of time, but i plan to do it. You can close the issue for now, at worst i'll reopen it and post my results!

@Jacks349,

Sorry for the late answer! I did not manage to do the test due to a lack of time, but i plan to do it. You can close the issue for now, at worst i'll reopen it and post my results!

No worries. Thanks for getting back to me. I'll close for now and you can reopen when ready.
KJ


[SUPPORT]How to clean the compacted .log and .hfiles in metadata?

we set parameters for bulck_insert as following:
"hoodie.bulkinsert.sort.mode" -> "GLOBAL_SORT",
"hoodie.metadata.enable" -> "true",
"hoodie.bulkinsert.shuffle.parallelism" -> "1400",
"hoodie.metadata.index.column.stats.enable"  -> "true",
"hoodie.enable.data.skipping" -> "true",
"hoodie.cleaner.policy.failed.writes" -> "LAZY",
"hoodie.metadata.index.column.stats.column.list" ->"speed,sec",
"hoodie.metadata.index.column.stats.file.group.count" -> "512",
"hoodie.metadata.compact.max.delta.commits" -> "1"
but with time flies, we find the old .hfile and .log files not cleaned in /metadata/col_stat/ dir, so how to clean them?

in org/apache/hudi/metadata/HoodieBackedTableMetadataWriter.java
we can find this code:
.withCompactionConfig(HoodieCompactionConfig.newBuilder()
.withAsyncClean(writeConfig.isMetadataAsyncClean())
// we will trigger cleaning manually, to control the instant times
.withAutoClean(false)
if we set hoodie.metadata.clean.async=true, it will call hoodie.clean.async=true, but hoodie.clean.async=true only applies when hoodie.clean.automatic = true,  however, the code write a fixed false by  .withAutoClean(false)
can team check once???

@alexeykudinkin @nsivabalan could you pls help to check once?

yes, cleaning and compaction in metadata table is controlled from within. we don't want to let users override them.
anyways, clean and compaction should be happening for metadata table.
can you share the contents of .hoodie/metadata/.hoodie/
Also, if you can enable debug logs and share what you see when writes are applied to metadata table, we can get in some insights.

likely compaction in MDT is not kicking in (due to some pending operations in data table timeline). if compaction in MDT is not kicking in, cleaner does not have any work to do since there are no older file slices to clean up.

Hi @nsivabalan , thanks for your reply, actually the compation of MDT happend, we can see the commit files in .hoodie/metadata/.hoodie as following pic:

but there are more than 50,000 files left in col_stats/ dir which never be cleaned yet.
BTW, we checked the code and confused by the comment and settings of metatable writer:

@nsivabalan It seems the auto clean of metatable is disabled?

@Zhangshunyu as @nsivabalan Hudi manages the compaction and cleaning for metadata table internally, as shown below in HoodieBackedTableMetadataWriter class:
protected void cleanIfNecessary(BaseHoodieWriteClient writeClient, String instantTime) {
    Option<HoodieInstant> lastCompletedCompactionInstant = metadataMetaClient.reloadActiveTimeline()
        .getCommitTimeline().filterCompletedInstants().lastInstant();
    if (lastCompletedCompactionInstant.isPresent()
        && metadataMetaClient.getActiveTimeline().filterCompletedInstants()
            .findInstantsAfter(lastCompletedCompactionInstant.get().getTimestamp()).countInstants() < 3) {
      // do not clean the log files immediately after compaction to give some buffer time for metadata table reader,
      // because there is case that the reader has prepared for the log file readers already before the compaction completes
      // while before/during the reading of the log files, the cleaning triggers and delete the reading files,
      // then a FileNotFoundException(for LogFormatReader) or NPE(for HFileReader) would throw.

      // 3 is a value that I think is enough for metadata table reader.
      return;
    }
    // Trigger cleaning with suffixes based on the same instant time. This ensures that any future
    // delta commits synced over will not have an instant time lesser than the last completed instant on the
    // metadata table.
    writeClient.clean(instantTime + "002");
  }

Also as laid out above, the current logic prevents the cleaning from happening within 3 instants after the compaction in metadata table.  That could be the reason why you don't see cleaning, as hoodie.metadata.compact.max.delta.commits is set to 1.
Could you try setting  hoodie.metadata.compact.max.delta.commits to 5 and see if that solves your problem?

Hi @yihua, thanks for your reply, i will try once.
BTW, what's the meaning of '002' here in writeClient.clean(instantTime + "002");
i didnt find any instantTime + '002' in timeline

Hi @yihua, thanks for your reply, i will try once. BTW, what's the meaning of '002' here in writeClient.clean(instantTime + "002"); i didnt find any instantTime + '002' in timeline

002 is the suffix for the clean instant timestamp.  The metadata table writer takes the same timestamp from the deltacommit and adds the suffix of 001 for compaction and 002 for clean to differentiate from the corresponding deltacommit.  This is for easy debugging.

The reason you don't see any instantTime + '002' in the timeline is that the clean action does not happen in the metadata table.

@yihua Ok, I see, thank you very much!


Use prod access endpoint first and fall back to the test endpoint when it's not available

PR Summary
Use prod access endpoint first and fall back to the test endpoint when it's not available. In this way, we can unblock the public preview without the prod endpoint being fixed, but also rely on the prod endpoint when it's fixed.

The Copilot Access API uses standard HTTP status codes to indicate the success or failure of a request:

200 OK: The request was successful, and the response contains the authorization status.
401 Unauthorized: Common causes include missing tokens, invalid Object ID or Tenant ID, or incorrect audience claims.
403 Forbidden: The token lacks the required claims.
500 Internal Server Error: An unexpected error occurred on the server.

Even though we only saw 403 so far, I think it's safer to fall back to canary for other possible unsuccessful status code too, as we don't know what may happen when the prod endpoint is getting fixed for us.


🐛 fix broken timeline view

resolves #195

@ebullient thanks a lot and also for great work keeping this fork alive.. appreciated


zotero: Added zotero:// url protocol post_install script

Closes #10288

[x] I have read the Contributing Guide.

/verify

Using an external script?

What do you mean by that?

Is Zotero protocol required for the app? Should it be registered as a default behaviour?

maybe have a look at https://github.com/ScoopInstaller/Extras/blob/master/bucket/picotorrent.json

Why would I make it optional, that is the dumbest thing I've heard. Most if not all Zotero users want this URL protocol registered immediately. I will not pay attention the low percentage of people that want it optional, I don't care about them.

Sorry for being toxic, I was drunk that day. I won't do it again.

Ok @niheaven and @Lutra-Fs I made the 'zotero://' URL protocol registration optional.

Hmm, why not separate script creating process to an external script and just replace app path? Just like https://github.com/ScoopInstaller/Extras/blob/master/bucket/picotorrent.json or other manifests. It's clearer and easier to maintain.

It's only 63 lines, it can't be that hard to handle. I find it easy.

smae suggestion as @niheaven

@HUMORCE @niheaven Fixed it.

/verify


TRAILING_DELTA missing in FilterType

Since today 07.04.2022 the API for getting ExchangeInfo produces an exception because Binance added a new FilterType "TRAILING_DELTA" which is not a part of the enum FilterType in current Java-API.
The only way to fix it is to extend FilterType with this value.

It doesn't work adding only that value in the enum..

@mehc77 i only added TRAILING_DELTA to the enum and then it worked for me. Did you do something else except my solution?

@TheLeBot i have tried to update the enum in my api and getFilterType keeps giving an error, so I had to skip the search for lot_size to keep it working.
I'll look into why just adding in the enum doesn't work, I also thought that would suffice..

@mehc77 Which kind of error do you get? I think you better attach the changed class for your program. Probably it does not use your changes somehow. It worked promtely for me as I added TRAILING_DELTA.

Only added TRAILING_DELTA to the enum and then it worked for me. Like the following ;
public enum FilterType {
// Symbol
PRICE_FILTER,
LOT_SIZE,
MIN_NOTIONAL,
MAX_NUM_ORDERS,
MAX_ALGO_ORDERS,
MAX_NUM_ALGO_ORDERS,
ICEBERG_PARTS,
PERCENT_PRICE,
MARKET_LOT_SIZE,
MAX_NUM_ICEBERG_ORDERS,
MAX_POSITION,
TRAILING_DELTA,
// Exchange
EXCHANGE_MAX_NUM_ORDERS,
EXCHANGE_MAX_ALGO_ORDERS
}

Only added TRAILING_DELTA to the enum and then it worked for me. Like the following ;
public enum FilterType { // Symbol PRICE_FILTER, LOT_SIZE, MIN_NOTIONAL, MAX_NUM_ORDERS, MAX_ALGO_ORDERS, MAX_NUM_ALGO_ORDERS, ICEBERG_PARTS, PERCENT_PRICE, MARKET_LOT_SIZE, MAX_NUM_ICEBERG_ORDERS, MAX_POSITION, TRAILING_DELTA,
// Exchange EXCHANGE_MAX_NUM_ORDERS, EXCHANGE_MAX_ALGO_ORDERS }

Thank you so much!

https://github.com/binance-exchange/binance-java-api/pull/425

Those using OCO orders should probably have a look at this: https://github.com/binance-exchange/binance-java-api/pull/262/files/0f6856748cce6e011046c10732f5dccaac0352a1..e278acddb9c9cbbd5b7db9c49cb2497de7e35a48
FilterType for TRAILING_DELTA has some attributes, which should be added into the API declaration!

You have to add "PERCENT_PRICE_BY_SIDE" also guys. it's new.


/caffe-ios-sample-xcode7/caffe/lib/libglog.a(libglog_la-logging.o), building for iOS simulator, but linking in object file built for OSX, for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Thanks for your project.
I use Xcode  7.1 and meet this error.
Any ideas?
Best!

Please build it with Xcode 6.
Xcode changed the linker.

Do you know how we can get this running on xcode 7 though?
I have another project in xcode 7 which I want to include the caffe in it.

First, thanks a lot for posting your example!
Same question here though. I had to downgrade to Xcode 6.4. That will be great if we have a way to integrate Caffe into Xcode 7+.


Cannot extend tsconfig.json from another monorepo package.

🔎 Search Terms
TS6053: File not found.
extend tsconfig.json
monorepo
turbo
package.json main tsconfig.json
🕗 Version & Regression Information

This changed between versions 5.2.2 and 5.3.2

⏯ Playground Link
No response
💻 Code
package.json of the base package:
{
  "name": "@betterplace/ts-config-base",
  "main": "tsconfig.json",
  "dependencies": {
    "typescript": "5.3.2"
  }
}

package.json of the importing package:
{
  "name": "@betterplace/app",
  "devDependencies": {
    "@betterplace/ts-config-base": "workspace:*"
  }
}

tsconfig.json of the importing package:
{
  "extends": "@betterplace/ts-config-base"
}

🙁 Actual behavior
I'm trying to extend a tsconfig.json with a base config that is imported from another package in a monorepo. This worked until after updating typescript from 5.2.2 to 5.3.2. Now the tsconfig.json is not found anymore.
This is the error message:
⨯ Unable to compile TypeScript:
error TS6053: File '@betterplace/ts-config-base' not found.

This is the basic setup:
@betterplace/ts-config-base

package.json - includes typescript as dependency and defines tsconfig.json as its main entrypoint
tsconfig.json - base config

@betterplace/app

package.json - includes @betterplace/ts-config-base package as a dependency
tsconfig.json - extends the tsconfig from @betterplace/ts-config-base

🙂 Expected behavior
@betterplace/app's tsconfig.json should extend the tsconfig.json from @betterplace/ts-config-base.
Additional information about the issue
If I directly extend the tsconfig using the relative path to the file, it works:
"extends": "../ts-config-base/tsconfig.json"

tsconfig lookups read from the "tsconfig" package.json field, not "main"
{
  "name": "@betterplace/ts-config-base",
- "main": "tsconfig.json",
+ "tsconfig": "tsconfig.json",
  "dependencies": {
    "typescript": "5.3.2"
  }
}

tsconfig lookups read from the "tsconfig" package.json field, not "main"

@andrewbranch Thank you for the hint! Unfortunately that doesn't fix it. The problem is in the other package, the one that uses the tsconfig. I am just adding it as "main" here, because it is the main (and only) file that is exported from this simple config package.

I understand. main cannot be used for this purpose. The other package that uses the tsconfig will not look at main as part of its lookup.

It did work in previous versions, though. Did anything change in that regards and is there any way for me to make this work again?

I’m not able to reproduce this working in 5.1 or 5.2. I didn’t try anything earlier. If it was working with main in a recent version, it may have been an accident, but we would probably want to preserve the behavior for backward compatibility. But as far as I can see in the code or in my attempts to repro, it has never worked with main, and there would be no reason to change it now if that’s the case. Can you provide a working reproduction?

FYI this was an issue in ts-node. Upgrading ts-node from v10.9.1 to v10.9.2 solved it. Thanks for your help!


ignore_keys ignores only common keys

require 'hashdiff'
Hashdiff::VERSION
#=> "1.1.0"

The following snippet fails to ignore top level key :a
a = { a: 4, b: {a: 5, c: 6} }
b = {       b: {a: 7, c: 3} }

diff = Hashdiff.diff(a, b, ignore_keys: :a)
#=> [["-", "a", 4], ["~", "b.c", 6, 3]]

Shouldn't diff be expected to be the below?
[["~", "b.c", 6, 3]]

The documentation on ignore_keys states that:

The :ignore_keys option allows you to specify one or more keys to ignore, which defaults to [] (none). Ignored keys are ignored at all levels.

Here line where :ignore_keys happens  (in Hashdiff::ComparableHashes::call):
opts[:ignore_keys].each { |k| common_keys.delete k }

added_keys and deleted_keys don't seem to have the exclusion applied.

a = { a: 4, b: {a: 5, c: 6}         }
b = {       b: {a: 7, c: 3},  d: 8 }

(1) ignore_keys: keep backwards compatibility
diff = Hashdiff.diff(a, b, ignore_keys: [:a, :d])
#=> [["-", "a", 4], ["~", "b.a", 5, 7], ["~", "b.c", 6, 3], ["+", "d", 8]]

ignores change of b.a but includes :a removal and :d addition.

(2) new ignore_added_keys: only affects added keys
diff = Hashdiff.diff(a, b, ignore_keys: [:a, :d])
#=> [["-", "a", 4], ["~", "b.a", 5, 7], ["~", "b.c", 6, 3]]

like ignore_keys but also ignoring added key :d

@rellampec thanks for spotting this. It is an oversight on my part and having just discovered the bug in my own project today I'm happy to provide a fix, sorry for the delay.
@liufengyun I'd be inclined to provide a new method (not_keys)? with the originally intended functionality and issue a deprecation warning for ignore_keys and remove references to it from the docs. This should not break anything using ignore_keys which can hang around for as long as you deem fit. Let me know your thoughts before I proceed.

Thank you for looking into it @MatzFan @rellampec and sorry for the late response.
Given that the spec says that ignored keys should ignore at all levels, we can consider the current behaviour is a bug. I'd prefer a simple bug fix unless there is a strong reason to do otherwise.

@liufengyun would you consider a patch release to Ruby Gems with this fix? Thx.

I forgot to mention, it's already released in v1.1.1: https://www.rubydoc.info/gems/hashdiff#ignore_keys


Access save button event from another tab view and programmatically change focus on tabs

Is there a way to access the save button onclick in the main PropertyGrid from another tab? ie: I open my orders form which has a customer tab. In my customer tab i select a customer from the grid using rowSelection then in the onClick of my button I get the value of the customerID with  var selectedIDs = this.rowSelection.getSelectedKeys()[0]; That value is passed back to my orders form using this.parentForm.CustomerID.value = +selectedIDs; This works as it should but I would like to programmatically change the focus back to the parent tab and update the record within the customer grid onclick.
OrderDialog.ts (simplified)
     public form = new NOrderForm(this.idPrefix);
     private customerGrid: NOrderCustomerGrid;

     this.customerGrid = new NOrderCustomerGrid(this.byId("CustomerGrid"));
     this.tabs.on('tabsactivate', (e, i) => {
            this.arrange();
        });

    protected afterLoadEntity() {
        super.afterLoadEntity();
    this.customerGrid.parentForm = this.form;

CustomerGrid.ts (simplified)
    public rowSelection: Serenity.GridRowSelectionMixin;
    public parentForm: NOrderForm;

    protected getButtons() {
        let buttons = [];

        buttons.push({
            title: 'Assign Customer',
            hint: 'Assign Customer',
            cssClass: 'choose-customer-button',
            onClick: () => {

                var selectedIDs = this.rowSelection.getSelectedKeys()[0];
                if (selectedIDs == null)
                    Q.notifyWarning("Please select a Customer");
                else
                    Q.notifySuccess("You have selected " + selectedIDs);

                this.parentForm.customerId.value = +selectedIDs;
            }
        });

        return buttons;
    }

I have tried "document.getElementById" and "this.element.tabs('load',0)" and "this.element.find", for changing focus back to the main orders tab but no success. I have gone through the source to try to find the best way to get access to the parents save button onclick event but also have not found anything yet. If anyone has done something similar could you share how? I am relatively new to typescript and jquery but I am having fun learning what I can and can't do with it.

I have send a pull request with this example in serene and another with selectTab in serenity. You can see
https://github.com/volkanceylan/Serene/pull/30
https://github.com/volkanceylan/Serenity/pull/1389
And this fix
https://github.com/volkanceylan/Serenity/pull/1390

Thanks a ton @Estrusco , At first glance this looks like something to get me moving along. As I am only saving one entity I think I can work with this or modify it a bit to fit for what I need to do. I will post final code when working.


Issues with ForceDirectedGraph

Hello,
I want to achieve 3 things in ForceDirectedGraph:

Add arrow to edges from source to target, like : http://bl.ocks.org/rkirsling/5001347
How to adjust node size and edge length?
In order to define links, group is considered as id of the nodes. I want to use "index" field of each node to create links.
For example:
"links":[
{"source":index1,"target":index2,"value":1}
]

Thanks in advance :+1:

Has this been worked on or is there a work around?


Fatal Error : Expected a Chromosome in the form of an integer or a string X, Y, XY, or MT in file

Is there a way that FaST-LMM can ignore chromosome names in plink files? I have scaffold names.

Thanks for your bug report. This is fixed. Sorry for the long wait. See https://github.com/fastlmm/FaST-LMM/issues/36


mpv-unwrapped: 0.34.1 -> 0.35.0

Co-authored-by: adisbladis<EMAIL_ADDRESS>Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

@ofborg build mpv-unwrapped

Darwin is happy.

Why should this be backported? It's pretty large release with lots of potential for breakage. That shouldn't go to stable, especially not this late in the support cycle.

Why should this be backported?

Because many people use it.
Indeed you yourself suggested that Meson support should be postponed, because the breakage on Darwin was unnacceptable.

That shouldn't go to stable, especially not this late in the support cycle.

The legacy(?) waf was building it OK. It looks like a good enough reason to a backport, given that it doesn't introduce breaking changes.
Nonetheless the backport bot failed. I will not pursue it further.

I do not mean the build system change, I mean the feature changes.
MPV has had lots of changes since its last release, some of which are breaking. Stable should not receive breaking changes unless there are very good reasons (i.e. security issues).
Feature updates on stable, while allowed, are not in any way necessary or required; even for popular packages.
See https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#criteria-for-backporting-changes

MPV has had lots of changes since its last release, some of which are breaking.

Not so much, I would argue. But, as I have said, I will not pursue it further.

Feature updates on stable, while allowed, are not in any way necessary or required; even for popular packages.

They aren't prohibited either. The only semblance of a hard prohibition is about breaking changes.

See https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#criteria-for-backporting-changes

I will wait a Portuguese translation. Thanks.

This borked MPV for me: https://github.com/mpv-player/mpv/issues/10859 (this was linked in the original PR https://github.com/NixOS/nixpkgs/pull/200914#issuecomment-1312827576)
$ mpv path/to/file.ogg
 (+) Audio --aid=1 (vorbis 2ch 44100Hz)
[ao/pipewire] Could not connect to context '(null)': Host is down!
'!impl->polling' failed at ../spa/plugins/support/loop.c:872 impl_clear()
fish: Job 1, 'mpv path/to/file.ogg' terminated by signal SIGABRT (Abbruch)

I'm not using pipewire on my system, so I assume the new pipewireSupport ? stdenv.isLinux is causing this.

Looks like an absolute win to me.

The thing is, it isn't nixpkgs's sole responsibility to be up-to-date. If things have to be sorted out, nobody is hurt if we wait for a few days. In fact, people seem to have problems with it now.

I will wait a Portuguese translation. Thanks.

 Also, what are regular (or drive-by) contributors supposed to think of that?

The thing is, it isn't nixpkgs's sole responsibility to be up-to-date.

Until that point, the version bump (without the meson part) was working as expected. Indeed I suggested to not bump meson immediately and open a pull request only for the meson part; only after many unacceptable bugs being found the PR was split.

If things have to be sorted out, nobody is hurt if we wait for a few days.

I aggree. I should not have acted so hasty.

In fact, people seem to have problems with it now.

The bug was found now. Certainly I have a portion of guilt by this, however the bug was somehow unexpected.

Your way of communicating with other maintainers here

Linking the CONTRIBUTING.md file to me was a clear act of debauchery.
I have not ignored the guidelines - quite the opposite, I have argued all the time that I was following the guidelines. (Further, linking the backport guidelines to me when I was arguing about the backporting guidelines is raw mockery, remind that.)
I even conceded the part about breaking changes and ceased to pursue the issue further.
Recapitulating, I was specifically arguing about backporting MPV, exposing why I have labeled this "worthy of backport". As I have said before, I have read the backporting criteria section, and I judged that there was no impediments; so I give it a shot.

if you don't care, why do you even have commit access?

I do care.

Also, what are regular (or drive-by) contributors supposed to think of that?

I have exposed my points above.

I'm not using pipewire on my system, so I assume the new pipewireSupport ? stdenv.isLinux is causing this.

About this specifically, have you tried to force another output? I will upload a patch to render this option false by default.

I'm not using pipewire on my system, so I assume the new pipewireSupport ? stdenv.isLinux is causing this.

According to the thread this should be fixed for pipewire 0.3.60 which is in staging-next right now.

@SuperSandro2000 Will that hit master before branch-off?

About this specifically, have you tried to force another output?

Yes, --ao=pulseworks.

According to the thread this should be fixed for pipewire 0.3.60 which is in staging-next right now.

After an hour of building stuff with the bump cherry-picked it does fix the failing assertion & SIGABRT, so we can just wait 3 days for the merge.


do not add python_abi to runtime requirements

python_abi is being added to runtime requirements becaue we have everything here in requirements.build instead of splitting the host dependencies out
Doing that causes conda-build to apply all of the 'run_exports' requirements.
I don't think anything in riscv-tools links against the x86 python_abi. So, removing this should allow users to bump the version of python without needing to rebuild riscv-tools.
I don't have write perms on this repo so I forked to create this PR.  Hope it is still useful.

For anyone who's interested, the injected runtime dependency comes from https://github.com/conda-forge/python-feedstock/blob/21038d707640da7b5da152a5239e199c720f0574/recipe/meta.yaml#L133-L134
Again, that dep is supposed to say, "Anything that has python in it's host dependencies (i.e. it is linking against the ABI), needs to have python_abi in it's runtime dependencies so that it has libpython.so to link against."  Since we don't split our dependencies into build (stuff we need to execute on the build host) and host (stuff we need to link into what we're building), conda-build doesn't know not to inject the dependency and we have to override it.

@mergifyio copy main

@mergifyio copy main

Closing since #6 passed.


Add integration tests for block_on_spring

Pull Request
Description
Creates integration tests for block_on_spring app.
This pull request addresses #86

[x] make sure you are pulling from a dev branch on your fork
[x] check for code linting

Did you copy the test problem from the most recent version of the block-on-spring code? I think there are more docstrings in the version here.
Also, I would like the problem configuration for this test to be defined directly as a python dictionary, rather than by importing a toml file. That way if anyone looks at how the test is written, they will see a different approach to defining their problem. You can copy the code from the repo linked above.

@arichar6 should test for the leapfrog method too, or just the forward euler?

Good question. How about test both. But you don't need to run very many time steps. Something like 10 steps should be plenty.

Just in case I wasn't clear, I meant that you can test both, and that the tests for both of the solvers only need to run for 10 time steps each.

@arichar6 Thank you! I added a test for BackwardsEuler while I was at it.

Closes #86


Error running starknet-compile using python 3.10

Hi,
As far as I can tell cairo-lang is not explicitly built/tested for python 3.10, but I just wanted to log this issue:
Running starknet-compile using python 3.10 yields:
Traceback (most recent call last):
  File "/usr/local/bin/starknet-compile", line 7, in <module>
    from starkware.starknet.compiler.compile import main  # noqa
  File "/usr/local/lib/python3.10/site-packages/starkware/starknet/compiler/compile.py", line 7, in <module>
    from starkware.cairo.lang.compiler.assembler import assemble
  File "/usr/local/lib/python3.10/site-packages/starkware/cairo/lang/compiler/assembler.py", line 7, in <module>
    from starkware.cairo.lang.compiler.program import CairoHint, Program
  File "/usr/local/lib/python3.10/site-packages/starkware/cairo/lang/compiler/program.py", line 25, in <module>
    from starkware.starkware_utils.marshmallow_dataclass_fields import IntAsHex
  File "/usr/local/lib/python3.10/site-packages/starkware/starkware_utils/marshmallow_dataclass_fields.py", line 6, in <module>
    from frozendict import frozendict
  File "/usr/local/lib/python3.10/site-packages/frozendict/__init__.py", line 16, in <module>
    class frozendict(collections.Mapping):
AttributeError: module 'collections' has no attribute 'Mapping'

frozendict is pinned to version 1.2, released in 2016. In python 3.10 importing abstract base classes from collections directly has been disabled.

the current release of fronzendict is version 2.1.3, and the mapping issue is fixed there:
(cpy310_2) (base) oberstet@intel-nuci7:~/myproject$ python -c "from frozendict import frozendict"
(cpy310_2) (base) oberstet@intel-nuci7:~/myproject$ pip show frozendict
Name: frozendict
Version: 2.1.3
Summary: A simple immutable dictionary
Home-page: https://github.com/Marco-Sulla/python-frozendict
Author: Marco Sulla
Author-email<EMAIL_ADDRESS>License: LGPL v3
Location: /home/oberstet/cpy310_2/lib/python3.10/site-packages
Requires:
Required-by: cairo-lang

why is it version pinned to an exact version rather than eg with an open upper version limit?
it seems, the source of the pinning is
https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/scripts/requirements-gen.txt#L6
and the script to make that into an actual requirements file is
https://github.com/starkware-libs/cairo-lang/blob/master/build.sh

Any news on this one? I have experienced this as well.

Any updates on this? It's breaking Nile's CI 🙏

Hello peeps for the records about support and why it's a good reason to move towards a upper python version:

Ver
End of life

3.11
Ends in 4 years and 9 months (24 Oct 2027)

3.10
Ends in 3 years and 8 months (04 Oct 2026)

3.9
Ends in 2 years and 8 months (05 Oct 2025)

With this one trick of making the changes towards an upper Python version you gain few years of life, performance, patches and you make more developers and package maintainers happy!


Implement Vector class

In order to calculate a Householder reflector we will need a method for outer product of two vectors. We will need a method for geting a normalized vector.

Vector class no longer needed.


Increase openfile and socket limits for nginx process

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/kind api-change
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it: This is needed for running large scale perf tests
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/approve

/lgtm


Add BLoC for widget state flow and favourites with SharedPrefs

favorite list comes up on home page

This probably a more complicated yet very important task to complete. We want to make the app as easy possible to edit.


Add missing push notifications entitlement

Description of problem
As mentioned by MG, our app is missing an entitlement for push notifications and because of that we are receiving warnings from the app store.
Expected behavior
Full entitlements for push notifications
Steps to reproduce
N/A
Screenshots and/or log output
N/A
Environment

[ ] Occurs on Android
[x] Occurs on iOS

Build #:
1418
Android Device Model:
N/A
iOS Device Model:
N/A
Workaround
N/A
Severity

[ ] High
[ ] Medium
[x] Low

Verified in 1.0.15-1452
No reports (email) of this issue.


fix(sffv): add class for disabled state at the form level

The original fix for #2111 didn't add a class name at the form level, which prevents the user from completely hiding the form part of the refinement list when using search for facet values.
This patch adds that class.

Looks good. Thanks for the fix.


podman ls not working on podman 1.1.2

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
Like https://github.com/containers/libpod/issues/2468, but this time with podman ls
Steps to reproduce the issue:

Install podman 1.1.2

Run podman ls

Describe the results you received:
Help text implying an invalid argument
Describe the results you expected:
Same result as podman container ls
Output of podman version:
Version:            1.1.2
RemoteAPI Version:  1
Go Version:         go1.11.5
OS/Arch:            linux/amd64

Output of podman info --debug:
debug:
  compiler: gc
  git commit: ""
  go version: go1.11.5
  podman version: 1.1.2
host:
  BuildahVersion: 1.7.1
  Conmon:
    package: podman-1.1.2-1.1.x86_64
    path: /usr/lib/podman/bin/conmon
    version: 'conmon version 1.13.1, commit: '
  Distribution:
    distribution: '"opensuse-tumbleweed-kubic"'
    version: "20190310"
  MemFree:<PHONE_NUMBER>
  MemTotal:<PHONE_NUMBER>
  OCIRuntime:
    package: runc-1.0.0~rc6-3.1.x86_64
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc6
      spec: 1.0.1-dev
  SwapFree: 0
  SwapTotal: 0
  arch: amd64
  cpus: 2
  hostname: static
  kernel: 4.20.13-1-default
  os: linux
  rootless: false
  uptime: 6m 54.23s
insecure registries:
  registries: []
registries:
  registries:
  - docker.io
store:
  ConfigFile: /etc/containers/storage.conf
  ContainerStore:
    number: 0
  GraphDriverName: overlay
  GraphOptions: null
  GraphRoot: /var/lib/containers/storage
  GraphStatus:
    Backing Filesystem: btrfs
    Native Overlay Diff: "true"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 0
  RunRoot: /var/run/containers/storage
  VolumePath: /var/lib/containers/storage/volumes

Additional environment details (AWS, VirtualBox, physical, etc.):

podman ls is not a valid command.
The valid commands are:
podman container ls
and
podman images ls

@rhatdan But it worked in 1.0.x and earlier and I miss it now it’s gone :)
Are we sure we don’t mind it’s absence?

The fact that it worked was a mistake and it was never documented.

Okay - I will mourn the loss with a smile. Thanks for clearing that’s up


Update user guide for Data Science Jobs

In other parts of the user guide the YAML/PYTHON blocks had the YAML first and Python second. We should check for consistency.


Disable when .ftpconfig does not exist

If the .ftpconfig file is removed from the project, remote-ftp should forget its connection settings and stop attempting connections to the [S]FTP server.

Just restart Atom or reload the window (using the command palette) in order to reload Remote-FTP


Cleanup: refactor powervs cloud to remove extra params

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
This will help with writing tests for the cloud library.
Release note:
none

/retest required

/retest


Dartium has expired

Latest stable Dart version: 1.24
Dartium refuse to launch: "This version of Dartium has expired".

Same here, I reinstalled Dart with Dartium, hoping a new Chromium binary will be installed, which was not the case

Same here

As this version will stay the latest 1.x version, I suggest to remove this expiration.

See the workaround on Mac
$ brew install libfaketime

Then create ‘/usr/local/bin/dartium-fake’ script
export DYLD_FORCE_FLAT_NAMESPACE=1
export DYLD_INSERT_LIBRARIES=/usr/local/Cellar/libfaketime/0.9.7_1/lib/faketime/libfaketime.1.dylib
export FAKETIME="-15d"
exec "/usr/local/Cellar/dart/1.24.3/Chromium.app/Contents/MacOS/Chromium" "$@“

Finally, add execution permission on it.
$ chmod +x /usr/local/bin/dartium-fake

In TALK-general @dan-conachi mentioned
export DARTIUM_EXPIRATION_TIME=1577836800; ./chrome-wrapper

@passerbyflutter See last comment, it should work on Window as well.

Someone on StackOverflow asked if there was a way to release a "final" version of Dartium that won't expire since Dart 2 doesn't use it and there will no longer be any updates to Dartium.

On a mac, you can use the launchctl command to set this as a system-wide environment variable:
launchctl setenv DARTIUM_EXPIRATION_TIME<PHONE_NUMBER>

Dart is a superb development platform, but if Google is not going to support us...  I would love to see someone from the Dart team respond here.

@rafikiadmin there are easy workarounds. I don't see how this is a serious issue.

Ok. I guess that is true. I guess it is fine.

In dart-lang/site-www#962 @jooseplall reports being unable to use the workaround on Windows (windows 10). @passerbyflutter can you give us any tips?

Solution on macOS:

Chromium app must be in /usr/local/Cellar/dart/1.24.3/
$ brew install libfaketime
Create a file /usr/local/bin/dartium-fake with following content:export DYLD_FORCE_FLAT_NAMESPACE=1
export DYLD_INSERT_LIBRARIES=/usr/local/Cellar/libfaketime/0.9.7_1/lib/faketime/libfaketime.1.dylib
export FAKETIME="-15d"
exec "/usr/local/Cellar/dart/1.24.3/Chromium.app/Contents/MacOS/Chromium" "$@"

$ chmod +x /usr/local/bin/dartium-fake
You can now run Dartium with dartium-fake command

@rafikiadmin there are easy workarounds. I don't see how this is a serious issue.

Oh okay, so when we attract people to use Dart 1, right now. And Dartium doesn't work when they run tests, that's fine.
That's the kind of experience the Dart Team wants for newcomers.
No that's not the best experience for newcomers who hear about Dart 2 and want to try out the stable version of Dart. A fix should be released so that, at the very least, the first-time experience for potential users is the best it can be.
Otherwise, we can probably forget about growing this community and drop Dart, if we can't work to ensure the tools needed work as expected out of the box.

I was happy to overlook the missing Chrome VM. But this is just too much. I refuse to transpile and debug generated code. Looks like it's time for me and Dart, my last great hope for a decent web client development experience, to part ways.

@tmst Have you even tried?
Works quite well already and they are still working on improvements.

@Stargator You're right, Dart 2.0 isn't released on stable channel yet, but the Flutter SDK uses Dart 2, and of course Dart 2 is what's on dev channel releases of the Dart SDK. We strongly encourage everyone to switch to Dart 2 now, unless you have a really good reason for remaining on Dart 1.x.
I'll try to make the VM/web download pages more clearly feature downloading Dart 2.

I've created a PR to make the installation directions clearer (on both www.dartlang.org & webdev.dartlang.org): dart-lang/site-shared#23.

Closing now that Dart 2.0 is released.

This is a sad state of affairs for enterprise software projects that can't easily switch from Dart 1.x to Dart 2.x.

@dnalbach do the workarounds not work for you?

No they do not, and having an expiration warning in a browser used primarily for development and testing that no end user would actually use seems unprofessional to me. Dart is a language, not a framework. This is being treated like a consumer product, but languages are business products, and this is tooling for a business product. We still use JVMs back to 6 for some of our enterprise projects, and Java has very strong legacy support.
Dart was promoted heavily and we bought into it for awhile, but it rapidly became a second-class citizen in Google's world and we have moved away from it as much as possible in new projects because of the way things like this have been handled.

@dnalbach This is an effect of the mindset that people will quickly adopt the latest and greatest.
Sometimes organizations or projects are slow to adapt and it doesn't leave a good impression if one day the build no longer works because of something expired. Then that team/organization either have to upgrade their stuff or drop their use of the tool.
I can't blame you for the latter.

@Stargator I agree, my concern is that the timeframes for businesses and end consumers are dramatically different. If a new language is going to be treated like a consumer change/deprecation model, then it isn't going to be viable for most enterprises, who need years to adapt, not months.

I'm sorry for the pain this has caused. Maintaining Dartium had become literally impossible given the Chrome team's evolution of the browser. Dropping it (and moving to the dev compiler model) actually means it's easier for us to support customers long-term since we no longer have to coordinate with such a large dependency.

I'm sorry for the pain this has caused. Maintaining Dartium had become literally impossible given the Chrome team's evolution of the browser. Dropping it (and moving to the dev compiler model) actually means it's easier for us to support customers long-term since we no longer have to coordinate with such a large dependency.

not supporting it is one thing. but stopping people from using it unless they can find some workaround themselves , that's totally different.

Time limiting the browser was mandated by the Chrome team, I believe. We wanted to push folks away from running a Chrome browser that wasn't being actively patched

I understand, but that's consumer thinking. The only people using Dartium are developers, and it doesn't make sense for that audience.

@kevmoo Thanks for the insight that the time limiting was mandated by the Chrome team. It's understandable that you could only work within the constraints given to you.
Does that mean that even if the version of Dartium was the same, you couldn't just reissue it with a new expiration for at least another year?

Does the suggestion at https://github.com/dart-lang/sdk/issues/33580#issuecomment-400978229 not work?
We don't have the ability to build Dartium any more, sadly...well, it'd take a heroic effort to get everything working so we COULD build Dartium again


运行scrapy crawl lianjia出错

切换到house-renting/crawler目录下,运行scrapy crawl lianjia出错,错误信息如下:
2018-05-31 20:03:03 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: house_renting)
2018-05-31 20:03:03 [scrapy.utils.log] INFO: Overridden settings: {'AUTOTHROTTLE_MAX_DELAY': 10, 'NEWSPIDER_MODULE': 'house_renting.spiders', 'CONCURRENT_REQUESTS_PER_DOMAIN': 1, 'AUTOTHROTTLE_TARGET_CONCURRENCY': 2.0, 'SPIDER_MODULES': ['house_renting.spiders'], 'AUTOTHROTTLE_START_DELAY': 10, 'RETRY_TIMES': 3, 'BOT_NAME': 'house_renting', 'DOWNLOAD_TIMEOUT': 30, 'COOKIES_ENABLED': False, 'USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15 ', 'TELNETCONSOLE_ENABLED': False, 'COMMANDS_MODULE': 'house_renting.commands', 'AUTOTHROTTLE_ENABLED': True, 'DOWNLOAD_DELAY': 5, 'AUTOTHROTTLE_DEBUG': True}
Traceback (most recent call last):
File "/usr/local/bin/scrapy", line 11, in
sys.exit(execute())
File "/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py", line 149, in execute
_run_print_help(parser, _run_command, cmd, args, opts)
File "/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py", line 89, in _run_print_help
func(*a, **kw)
File "/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py", line 156, in _run_command
cmd.run(args, opts)
File "/home/yuchen/House/house-renting/crawler/house_renting/commands/crawl.py", line 17, in run
self.crawler_process.crawl(spider_name, **opts.spargs)
File "/usr/local/lib/python2.7/dist-packages/scrapy/crawler.py", line 167, in crawl
crawler = self.create_crawler(crawler_or_spidercls)
File "/usr/local/lib/python2.7/dist-packages/scrapy/crawler.py", line 195, in create_crawler
return self._create_crawler(crawler_or_spidercls)
File "/usr/local/lib/python2.7/dist-packages/scrapy/crawler.py", line 200, in _create_crawler
return Crawler(spidercls, self.settings)
File "/usr/local/lib/python2.7/dist-packages/scrapy/crawler.py", line 52, in init
self.extensions = ExtensionManager.from_crawler(self)
File "/usr/local/lib/python2.7/dist-packages/scrapy/middleware.py", line 58, in from_crawler
return cls.from_settings(crawler.settings, crawler)
File "/usr/local/lib/python2.7/dist-packages/scrapy/middleware.py", line 34, in from_settings
mwcls = load_object(clspath)
File "/usr/local/lib/python2.7/dist-packages/scrapy/utils/misc.py", line 44, in load_object
mod = import_module(module)
File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "/usr/local/lib/python2.7/dist-packages/scrapy/extensions/memusage.py", line 16, in
from scrapy.mail import MailSender
File "/usr/local/lib/python2.7/dist-packages/scrapy/mail.py", line 22, in
from twisted.internet import defer, reactor, ssl
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/ssl.py", line 230, in
from twisted.internet._sslverify import (
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/_sslverify.py", line 15, in
from OpenSSL._util import lib as pyOpenSSLlib
ImportError: No module named _util
并且我已经运行pip install -r requirements.txt命令,请问该如何解决呢?

此问题已经解决,运行如下命令即可:
sudo pip install pyopenssl --user --upgrade


Search a position

Dear IGV team,
In the new version, I am seeing a new behavior which I am not sure it's correct or not.
Use to be when I searched for a position on IGV online it visualizes the alignment in the center of the screen like what we see in desktop IGV.

While in the new version when I looking for a position it shifted to the right side of the screen and it does not match with the centerline

Thanks in advance.
Regards
Amin

Thanks for the report.    I'm going to transfer this issue to igv.js since that's where the actual problem is.


Not obvious how to save to Github

It's obvious how to save to a Gist - Save does that by default. How do I save to a file in a proper Github repo?

I agree with @konklone and think being able to save direct to Github while tracking changesets would be really useful for collaborative mapping. Trying to get a sense for what LOE would be if at all possible.

saving to github is being removed, closing as no longer relevant


Unexpected long cue export time (~73 sec)

What version of CUE are you using (cue version)?

$ cue version

cue version v0.0.0-20230628071453-b6a32da097fc

go version go1.20.6
      -buildmode exe
       -compiler gc
     CGO_ENABLED 1
          GOARCH amd64
            GOOS linux
         GOAMD64 v1
             vcs git
    vcs.revision b6a32da097fce5f9c960ad0a02da51efb18de2fd
        vcs.time 2023-06-28T07:14:53Z
    vcs.modified false

Does this issue reproduce with the latest stable release?
Yes. Also checked on:

v0.5.0
1c1a7b3aff0fa09cd6bc8dbe482f0d4d82f1731a (current master)
f681271a38ec9e13d3a4c7ed2641267f0aabaa75 https://cuelang.org/play/

What did you do?
cue export for single file:
package issue

#Context: {
	cluster: #ClusterInfo
}

#ContextForCluster: #Context & {
	#env:     string
	#cluster: string
	let env = #env
	let name = #cluster
	cluster: #ClusterInfo & {
		#env:  env
		#name: name
	}
}

#ConfigForCluster: #AppConfig & {
	#env:     string
	#cluster: string

	let env = #env
	let cluster = #cluster
	#context: #ContextForCluster & {
		#env:     env
		#cluster: cluster
	}
}

#AppInstanceConfigView: #AppConfigView & {
	#env:     string
	#cluster: string

	let env = #env
	let cluster = #cluster

	#config: #ConfigForCluster & {
		#env:     env
		#cluster: cluster
	}
}

#ClusterInfo: {
	#env:  "dev" | "stage" | "production"
	#name: string

	dev_env_version: number | *0
	env:             #env
	name:            #name

	if #env == "production" {
		dev_env_version: 0
	}
	if #env != "production" {
		dev_env_version: 42
	}
}

#ConfigBase: {
	#env:     string
	#cluster: string
	#context: #Context

	context: #context
	...
}

#AppConfig: #ConfigBase
#AppConfig: {
	#context: #Context

	application: {
		env:     #context.cluster.env
		cluster: #context.cluster.name
	}
	context: #context
	db:      string

	if #context.cluster.env == "production" {
		db: "app"
	}
	if #context.cluster.env == "dev" {
		let _context = #context
		db: "app_\(_context.cluster.env)"
	}
}

#AppConfigView: {
	#config: #ConfigBase

	let config = #config
	foo: #AppConfigFoo & {
		#config: config
	}
}

#AppConfigFoo1: {
	#config: #ConfigBase
	foo1:    1
	...
}

#AppConfigFoo2: {
	#config: #ConfigBase
	foo2:    2
	...
}

#AppConfigFoo3: {
	#config: #ConfigBase
	foo3:    3
	...
}

#AppConfigFoo: #AppConfigFoo1
#AppConfigFoo: #AppConfigFoo2
#AppConfigFoo: #AppConfigFoo3

issue: #AppInstanceConfigView & {
	#env:     "production"
	#cluster: ""
}

What did you expect to see?
I expect milliseconds export time and result like:
{
    "issue": {
        "foo": {
            "foo1": 1,
            "foo2": 2,
            "foo3": 3
        }
    }
}

What did you see instead?
time CUE_STATS_FILE=- cue export .
{
    "issue": {
        "foo": {
            "foo1": 1,
            "foo2": 2,
            "foo3": 3
        }
    }
}
{
    "CUE": {
        "Unifications": 493,
        "Disjuncts": 273499,
        "Conjuncts": 296180,
        "Freed": 273358,
        "Reused": 76737,
        "Allocs": 196622,
        "Retained": 617
    },
    "Go": {
        "AllocBytes":<PHONE_NUMBER>0,
        "AllocObjects": 721155138
    }
}
cue export ./issue  73,23s user 0,68s system 139% cpu 52,970 total

It looks interesting that in this example, line https://github.com/cue-lang/cue/blob/v0.6.0-alpha.2/internal/core/adt/context.go#L577-L579 is executed 28 385 504 times...

Given that you don't import any standard library packages nor make use of many comprehensions, I think this is likely https://github.com/cue-lang/cue/issues/2002 - although it's worthwhile to keep this issue open for the sake of the test case and to keep it open in case that ends up not being the case.
As you can see on https://github.com/cue-lang/cue/discussions/2335, v0.7 will focus on performance - where one of the main issues is disjunctions. Once the planned changes start landing in master, we can try again to see whether those help your example or not.

This particular case appears to be resolved by the new evaluator:
# With the old evaluator. (21.358s)
> env CUE_EXPERIMENT=evalv3=0
> exec cue vet -c
# With the new evaluator. (0.036s)
> env CUE_EXPERIMENT=evalv3=1
> exec cue vet -c

I'm going to mark this issue as resolved then. I lean against adding a performance regression test from the provided code, given how it's relatively large, very slow on the old evaluator, and that we are already adding particularly bad edge cases as specialised benchmark tests such as https://review.gerrithub.io/c/cue-lang/cue/+/1204668.
Thanks again for raising this issue!


Not detecting USB mouse

Not much to say besides that, it is simply not detecting mouses connected via USB.

This application only works with the HP 935 Creator Mouse at this time. We should probably state as much in the readme.

If you're talking about using the computer not detecting the 935 mouse while using the included USB cable (or any other data transfer capable USB cable), then that's true from my experience.
I believe the USB Type-C port on the 930/935 mouse is only capable of power, which charges the internal battery.  I'm going to take a Feynman intuition guess and say that the USB Type-C port of the mouse itself is not wired for data transfer.  I tried this with the included USB cable and another data transfer capable USB cable.  The application can only detect the 930/935 mouse via Bluetooth or the included (likely proprietary) wireless radio transceiver.


Waf cert create from file

content or key from file
- name: Create cert from file
  waf_certificate:
    name: test
    content: "/home/linux/content"
    private_key: "/home/linux/key"
  register: cert_file

thanks!