Raspberry Pi Zero W sound crackles every few seconds

hi,
I'm using a Raspberry Pi Zero W with Raspian Lite, Raspotify and Shairport-sync (AirPlay) connect via USB to a DAC (RME ADI-2 DAC) and playing music via WLAN.
Unfortunately during playback with Raspotify or Airplay sound crackles every few seconds. Anyone has an idea? Maybe the Zero is too weak for playback?
Here some stats via bcmstat.sh:

same installation working on a Raspi 3 without crackles.

thanks

A couple questions?

Have you overclocked the Pi Zero? If not I would advise it. The Pi Zero is not thermally limited. Meaning that even if you overclock it and force turbo to disable frequency scaling and force it to always run at it's max clock speed it will never overheat.

I always run my Pi Zero with these setting in /boot/config.txt
gpu_mem=16
arm_freq=1100
over_voltage=8
core_freq=500
sdram_freq=500
force_turbo=1

Your results may vary if you notice any instability just lower the freq numbers until it's stable. Also please note that this will more than likely void the warranty on your Pi Zero.

Do you do any upsampling? The Pi Zero (unless overclocked) is not powerful enough to resample audio reliably. I would avoid resampling at all costs.

It might also help to completely disable Bluetooth if you're not using it.

Thanks!
I'll try you advices and give feedback.
In alsa config I've changed samplerate from 48000 to 44100 because that's Spotify's native format. So this down sampling is to much for the Zero?

In alsa config I've changed samplerate from 48000 to 44100 because that's Spotify's native format. So this down sampling is to much for the Zero?

It really depends on what resampling algorithm you use and how much CPU Shairport-sync uses during idle. If it's set to 44.1 it's not resampling librespot so it shouldn't be using any extra CPU. Librespot should only be using like 20% CPU during normal use and maybe 50% spikes when it's caching a song. Librespot also shouldn't be affecting Shairport-sync as it doesn't really use any CPU at all when it's idle. i'd be looking really hard at Shairport-sync.

You using Raspotify on your Zero without Problems? Maybe the running Airplay client besides Spotify Connect is too much for the zero?

Yep. The Pi Zero is librespot's official "potato" (lowest spec target device) I've done reasonably extensive non-scientific testing though this whole release cycle to make sure librespot will run on a Pi Zero without a problem. I don't run any other services on the Pi Zero though. It's basically just a Spotify Connect appliance. The general idea being that a Pi Zero isn't really a multitasking device.

Here's an example of basically a default Raspberry Pi OS install (overclocked) running raspotify with the librespot binary replaced with a binary I compiled to test a PR branch. Since librespot is the only thing making noise I bypass dmix because I don't need software mixing. Bypassing dmix also means that no resampling is ever done. Notice that the CPU is at 12.4% and librespot is only using a little over 10%. Pausing causes librespot to go to under 2%.

How do you bypass dmix and how to get the screen with the cpu infos etc.?

How do you bypass dmix?

You'll need dmix for the software mixing if you have both Shairport-sync and librespot making noise. Otherwise when you switch between the 2 there's a chance that one will crash. Without software mixing generally only one app at a time can play audio, and switching between audio services without a mechanism to make sure 1 has fully given up control of the DAC before the other tries to grab it is asking for something to crash.

Spotify Connect playing (see screenshot). In the moment i switch on my DAC (RME ADI-2 DAC) cpu goes from 35 to 100% (mostly about 40%) and it crackles. When the DAC is off and it's still playing CPU is about 10%.

Raspian Lite is up to date. Configuread the DAC in Alsa config defaults.ctl.card 1
defaults.pcm.card 1. DAC is USB Class Compliant. Any idea to get this fixed? Thanks.

Edit:
Tried another DAC (Quedelix 5K) CPU from 25-35% no crackles.

 Maybe someone can optimize the code?

Let's go ahead and disable Shairport-sync and bypass dmix to make 100% sure no resampling is being done.
Add --device hw:1,0 (inside the "" with the rest of the args for that section) to one of the uncommitted sections of  /etc/default/raspotify It really doesn't matter which one, the args are parsed as just a long string. The sections are just a convenience to more logically group the args so it's not one huge list of args.
Now restart the raspotify service with sudo systemctl restart raspotify. Dmix should now be completely bypassed.

Let's go ahead and disable Shairport-sync and bypass dmix to make 100% sure no resampling is being done. 1st disable sharepoint. I have never used it so you'll have to figure that out. I would assume it runs as a systemd service but again I don't know.
Add --device hw:1,0 (inside the "" with the rest of the args for that section) to one of the uncommitted sections of /etc/default/raspotify It really doesn't matter which one, the args are parsed as just a long string. The sections are just a convenience to more logically group the args so it's not one huge list of args.
Now restart the raspotify service with sudo systemctl restart raspotify. Dmix should now be completely bypassed.

killed sharpoint-sync and put --device hw:1,0 in raspotify config. Alsamixer says DAC is connected but the DAC gets no audio signal. Maybe I've to alter Alsa config (defaults.ctl.card 1
defaults.pcm.card 1)?

killed sharpoint-sync and put --device hw:1,0 in raspotify config. Alsamixer says DAC is connected but the DAC gets no audio signal. Maybe I've to alter Alsa config (defaults.ctl.card 1
defaults.pcm.card 1)?

The ALSA config doesn't really mean anything when address the hardware directly with the --device arg. Try --device hw:1,1 Otherwise show me the outputs of aplay -l and aplay -L.

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 1: DAC58580301 [ADI-2 DAC (58580301)], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
abplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=DAC58580301
ADI-2 DAC (58580301), USB Audio
Default Audio Device
sysdefault:CARD=DAC58580301
ADI-2 DAC (58580301), USB Audio
Default Audio Device
front:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
Front speakers
surround21:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
Direct sample mixing device
dsnoop:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
Direct sample snooping device
hw:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
Direct hardware device without any conversions
plughw:CARD=DAC58580301,DEV=0
ADI-2 DAC (58580301), USB Audio
Hardware device with all software conversions

OK. Show me the output of aplay -Dhw:CARD=DAC58580301,DEV=0 --dump-hw-params /usr/share/sounds/alsa/Front_Right.wav
It will most likely fail to play anything because it's a mono file but to will tell us the capabilities of the card.
As an example the output for my cheap little dac hat is this:
 --------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S16_LE S24_LE S32_LE
SUBFORMAT:  STD
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 64]
CHANNELS: 2
RATE: [8000 192000]
PERIOD_TIME:<PHONE_NUMBER>]
PERIOD_SIZE: [32 65536]
PERIOD_BYTES: [256 524288]
PERIODS: [2 4096]
BUFFER_TIME:<PHONE_NUMBER>0]
BUFFER_SIZE: [64 131072]
BUFFER_BYTES: [256 524288]
TICK_TIME: ALL
--------------------

Next we will do a speaker test that plays white noise at 16 bit 44.1 to see if we get crackles.
speaker-test -Dhw:CARD=DAC58580301,DEV=0 -c2 -r44100 -FS16_LE
This is at 80% scale so turn your your amp/stereo down.
To stop it press Ctrl + c to kill it.

OK. Show me the output of:
aplay -Dhw:CARD=DAC58580301,DEV=0 --dump-hw-params /usr/share/sounds/alsa/Front_Right.wav

ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 768000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (20 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
aplay: set_params:1339: Sample format non available
Available formats:

S32_LE

Next we will do a speaker test that plays pink noise at 16 bit 44.1 to see if we get crackles.
speaker-test -Dhw:CARD=DAC58580301,DEV=0 -c2 -r44100 -FS16_LE
This is at 80% scale so turn your amp/stereo down.

speaker-test 1.1.8
Playback device is hw:CARD=DAC58580301,DEV=0
Stream parameters are 44100Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Sample format not available for playback: Invalid argument
Setting of hwparams failed: Invalid argument

is working: no crackles
It seems that ma DAC is only operating with 32 Bit. Now I need a way to configure rapsotify with 32 bit.

The pink noise is synthesized AFAIK meaning it's native 32 bit. The version of librespot currently used by raspotify is 16 bit only. Dmix should be able to convert 16 to 32 without any problems. That shouldn't be costly CPU wise. I'm not sure what's going on there? The latest release has native 32 bit support but that doesn't really help you with Shairport-sync though?

I don't know whats going on. only the speaker test plays without crackles. Raspotify still crackles. No matter what I do.
Later I'll delete the SD card an do a clean install.

okay. i give up!
clean installation only raspian lite an raspotify, default settings, bluetooth deactivated, overlocked to 1,1 GHz: sound crackles.
I guess the raspberry pi zero w don't work with my DAC. so I'm switching to my Raspi 3 for raspotify. works like a charm.

I guess the raspberry pi zero w don't work with my DAC. so I'm switching to my Raspi 3 for raspotify. works like a charm.

I'm at a loss? Like I said converting from 16 bit to 32 bit shouldn't use really any CPU, it's just basically padding the bottom 16 bits with silence.
When raspotify updates librespot you'll get native 32 bit from librespot so that may well solve your problems?

When raspotify updates librespot you'll get native 32 bit from librespot so that may well solve your problems?

Yes well see.
Thanks for your help. Much appreciated.

Yes well see.
Thanks for your help. Much appreciated.

They have some fresh blood and development is starting to move much more rapidly. They are getting ready to release 0.3.0 I am compiling it to use and test on my Pi Zero. If you would like I could provide you a link to that binary that you can use to test to and see if native 32 bit fixes your issue. If it does it's pretty simple to replace the librespot binary with that version in the meantime until 0.3.0 is officially released and  rapsotify is updated to that version.

Yes. Send me a link please.
I'm a Linux newbie and wonder how I install the deb. Currently the raspotify 0.16.0 is installed.
I wonder too which parameter I've to set in raspotiy config.
Maybe FORMAT="S32"
Output of Mac DAC shows S32_LE

Yes. Send me a link please.
I'm a Linux newbie and wonder how I install the deb. Currently the raspotify 0.16.0 is installed.
I wonder too which parameter I've to set in raspotiy config.
Maybe FORMAT="S32"
Output of my DAC shows S32_LE

OK I'm compiling a PR branch right now. If it works as expected I will provide you a link to download the binary and write a quick tutorial on how to test it tomorrow and if all goes well with the test I can also provide instructions on how to replace the binary used by raspotify as a stop gap in the meantime until 0.3.0 is released.

Here you go @heinzgruber I've complied a couple binaries for testing purposes instructions are here.

Here you go @heinzgruber I've complied a couple binaries for testing purposes instructions are here.

Great thanks. Will try it later. Can I install it on a raspian with Raspotify already installed? Or only
On a fresh raspian?

Great thanks. Will try it later. Can I install it on a raspian with Raspotify already installed? Or only
On a fresh raspian?

It's a binary. You don't need to install anything. Just download it, make it executable and run it in a terminal. Just to rule everything out I'd start with a fresh install of Raspberry Pi OS Lite. Headless (no UI) is the way to go with a Pi Zero.
Here are the args I use with librespot:
./librespot -n "PiZero" -b 320 --format S32  --enable-volume-normalisation --normalisation-pregain 3 --normalisation-gain-type track --initial-volume 100 --volume-ctrl fixed --device hw:0,0 --disable-audio-cache --autoplay

-n "PiZero is the name of the device. It can be pretty much whatever you want.

 -b 320 is the bitrate or the music, as in 320 kbps vorbis.

--format S32 tells librespot to output S32_LE (32 bit).

--enable-volume-normalisation --normalisation-pregain 3 This matches Spotify's default volume auto volume leveling (ReplayGain).

--normalisation-gain-type track Tells librespot to use track mode for ReplayGain volume normalisation.

--initial-volume 100 --volume-ctrl fixed Sets the volume to 100% and disables volume control (I use the knob on my receiver)

--device hw:0,0 Tells librespot to use my DAC directly. You would need to change that to --device hw:CARD=DAC58580301,DEV=0.

--disable-audio-cache Tells librespot not to download tracks to the SD card, just buffer them into memory.

--autoplay Tells librespot to keep playing similar songs after a playlist is over.

If you don't want volume leveling you can just leave out all of the related args. No normalisation, fixed volume at 100%, direct into your DAC at 32 bit is a close as you're going to get to "bit-perfect" as you're currently going to get from Spotify until they fully roll out their HiFi lossless tier. Although all internal audio processing in the dev branch (so the binary I provided) is done in 64 bit floating point and then converted to 32 bit right before your DAC so assuming the source audio prior to encoding into vorbis was 16 bit you're looking at around 96dB of digital volume attenuation until any bits are "thrown away". So software volume control and volume normalisation shouldn't be detrimental to sound quality.

Thanks for your feedback. I'm using your binary with
./librespot -n "PiZero" -b 320 --format S32 --initial-volume 100 --volume-ctrl fixed --device hw:1,0 --disable-audio-cache --autoplay
but sound crackles are still there. :(
As I said with my other DAC (Quedelix 5K) everything is perfect with the actual Raspotify release.

I can confirm. I have zero W and Creative Sound Blaster G6 as DAC. I hear cracking sound. Update above not helped (file was downloaded and replaced).
No cracks when i do white noise test.
I also have other DAC - SMSL sk10, but can test it only few days later.

S32_LE isn't a valid value for format try just S32.

with --format S32 it's working but crackles still persist.
I found that crackles much more just after song start. If i pause it  after start and wait 10 seconds, then resume - crackles almost gone, but not 100%. I wonder if Pi Zero W cpu so bad for song listening..
I see 60-70% cpu load when song downloading and playing, and 20-35% only when playing.

it seems like libresport on the Raspi zero has problems with devices which only do 32 bit. as I said my other DAC (Qudelix 5K) is 16 Bit and plays perfect with my Raspi zero.

One of my devices can 16 bit too: https://us.creative.com/p/sound-blaster/sound-blasterx-g6 but aplay shows only 24 and 32

Well, i have same problems with Moode Audio, so..

I see 60-70% cpu load when song downloading and playing, and 20-35% when playing only.

That's not horrible. The Pi Zero isn't a multi-tasking beast or anything but I've never had any problems librespot should run just fine so long as that's basically all the Pi Zero is doing.

it seems like libresport on the Raspi zero has problems with devices which only do 32 bit. as I said my other DAC (Qudelix 5K) is 16 Bit and plays perfect with my Raspi zero.

My DAC HAT is 32 bit and it runs just fine. It really shouldn't matter so long as your DAC supports whatever you're telling librespot to output. There's very little overhead when you bypass dmix. librespot is basically talking directly to the DAC.

One of my devices can 16 bit too: https://us.creative.com/p/sound-blaster/sound-blasterx-g6 but aplay shows support only of 24 and 32

Well, i have same problems with Moode Audio, so..

If I had to guess it's probably a hardware quirk. AFAIK, in theory as long as a USB DAC is compliant with the USB audio spec it should just work, in reality just like any other spec not all DAC's follow it to the letter. Not to mention that Raspberry Pi OS is based off of Debian stable which tends to lag a far bit behind the bleeding edge.
I've use a Pi Zero with raspotify and bare librespot for a while now on 2 different USB DACs and a DAC HAT and never had any problems.
It's a bummer but it looks like you guys just have the bad luck of owning 2 different DACs that just don't play well with others.

It's a bummer but it looks like you guys just have the bad luck of owning 2 different DACs that just don't play well with others.

yes but it's strange that the same installation and both DACs works flawlessly on my Raspi 3.

yes but it's strange that the same installation and problematic DAC works flawlessly on my Raspi 3. So the Raspi Zero is part of the problem. Also the DAC is Class Compliant and works without problems under Ubuntu.

The Pi Zero is an ARMv6 chip where as the Pi 3 is a ARMv8 chip so off the top they are different architectures (sub-architectures?)
The only other Pi I have is a Pi 4 running 64 bit Raspberry Pi OS Lite so I can't test this for sure but I want to say that the 32 bit version of Raspberry Pi OS is dual ARMv6/ARMv7? As in programs are compiled for v6 because v6 binaries will run under a v7 kernel but what kernel you get depends on what Pi you're booting on.
I could very well be mistaken of that but you can test it out by running uname -a on both your Pi Zero and Pi 3 to see if they're running the same kernel. If they aren't that could be the reason that the DAC works fine on one and not the other since drivers live in the kernel.

There's also the fact that the Pi 3 is many orders of magnitude more powerful than a Pi Zero. All other things being equal a task that would cripple a Pi Zero might not be a problem to a Pi 3. Basically the bug could still exist when using a Pi 3 but you don't notice it because 100% CPU on the Pi Zero might only be 20% on a Pi 3.

Please ignore my problems here. All of this because of usb board. Disconnected it and used simple pc usb hub via micro usb port on rpi zero w. No crackles or other sound issues.

@dromeo79 what you're hearing is the sink opening and closing. Not related and in fact I may have already fixed it upstream in librespot when I basically rewrote the alsa backend a while back.
Anyway no matter what both issues are upstream issues.

...my other DAC (Qudelix 5K) is 16 Bit and plays perfect with my Raspi zero.

@heinzgruber did you have to do anything special to get your Qudelix to work? Mine is extremely choppy and cuts in/out rapidly. Headphone jack directly on the Pi works fine. Running on a Pi 3 b v1.2

@heinzgruber did you have to do anything special to get your Qudelix to work? Mine is extremely choppy (if I can get it to play at all which is hit and miss) and cuts in/out rapidly. Headphone jack directly on the Pi works fine. Running on a Pi 3 b v1.2

I would start by running it though a powered hub to rule out the possibility of under-powered USB from the Pi.
I would then run librespot in debug mode and see if it sheds any light on what's going on with librespot -v.

Thanks for the response and advice @JasonLG1979. After making the comment I found this in the troubleshooting section for shairport-sync
https://github.com/mikebrady/shairport-sync/blob/master/TROUBLESHOOTING.md#stuttering-audio-on-certain-usb-dacs-such-as-the-creative-soundblaster-mp3
I should have looked there first but it was eerily similar to another issue I was having with the Qudelix elsewhere and I got down a search rabbit hole.

Thanks for the response and advice @JasonLG1979. After making the comment I found this in the troubleshooting section for shairport-sync which is what I'm actually using. https://github.com/mikebrady/shairport-sync/blob/master/TROUBLESHOOTING.md#stuttering-audio-on-certain-usb-dacs-such-as-the-creative-soundblaster-mp3
I should have looked there first but it was eerily similar to another issue I was having with the Qudelix elsewhere and I got down a search rabbit hole.

Buffer settings was going to be my next suggestion. Looks like you hopefully found the issue.

Looks like you hopefully found the issue.

Forgot to specifically say so but it worked :)

Good deal.


consul_agent_use_ip: true is not handled properly

I have the following inventory and playbook:
dev-consul:
  vars:
    ansible_port: 22
  hosts:
    dev-consul-server1:
      ansible_host: <IP_ADDRESS>
      ipv4_addresses:
        - <IP_ADDRESS>
    dev-consul-server2:
      ansible_host: <IP_ADDRESS>
      ipv4_addresses:
        - <IP_ADDRESS>
    dev-consul-server3:
      ansible_host: <IP_ADDRESS>
      ipv4_addresses:
        - <IP_ADDRESS>

- hosts: dev-consul
  gather_facts: true
  become: yes

  tasks:

  - name: configure consul cluster
    include_role:
      name: andrewrothstein.consul-cluster
      private: yes
    vars:
      - consul_agent_server_group_name: 'dev-consul'
      - consul_agent_network_iface: 'enp0s8'
      - consul_agent_use_ip: true
      - consul_agent_secure: false

with ansible 2.4 and 2.5 I'm getting the error:
TASK [andrewrothstein.consul-cluster : configure templates...] ***********************************************************************************************************************************
fatal: [dev-consul-server1]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'consul_agent_network_iface'"}
fatal: [dev-consul-server2]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'consul_agent_network_iface'"}
fatal: [dev-consul-server3]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'consul_agent_network_iface'"}

This is due to:

unnecessary quotes around consul_agent_network_iface - we want to access the actual value of consul_agent_network_iface
even with unquoted  consul_agent_network_iface I believe what we want in https://github.com/andrewrothstein/ansible-consul-cluster/blob/f8be6c70784508ef99f9f83948415fc2ce59818a/vars/main.yml is

hostvars[inventory_hostname]['ansible_' + consul_agent_network_iface]['ipv4']['address']

instead of
hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['consul_agent_network_iface']]['ipv4']['address']

The same for the peer part in vars/main.yml.

First, let me say thanks for caring! Contributing to FOSS often feels like trees falling silently in the woods! I want to make this useful for others and the documentation could definitely use enhancement!
When I wrote this role I was managing a cluster where I needed to control the network interface to use on a host by host basis.  Using hostvars[inventory_hostname]['consul_agent_network_iface'] allows for resolution of the consul_agent_network_iface as a host var. If you add a group_vars file for you dev-consul group...
---
# group_vars/dev-consul.yml
consul_agent_network_iface: enp0s8

I think you'll be in business. LMK how it goes. I'm open to adding a simplifying role var that makes the role work the way you thought.
Drew

Thanks for answering!
The original functionality of setting consul_agent_network_iface per host is good, and works when setting consul_agent_network_iface in the inventory file, it works both per host and group:
dev-consul:
  vars:
    ansible_port: 22
    consul_agent_network_iface: 'host variable takes precedence'
  hosts:
    dev-consul-server1:
      ansible_host: <IP_ADDRESS>
      consul_agent_network_iface: 'enp0s8'
    dev-consul-server2:
      ansible_host: <IP_ADDRESS>
      consul_agent_network_iface: 'enp0s8'
    dev-consul-server3:
      ansible_host: <IP_ADDRESS>
      consul_agent_network_iface: 'enp0s8'

I have a dynamic inventory that does not know about the network interface for consul, and prefer not to scatter the settings across too many files and keep the source code of the role intact, that's why I assumed it is possible to set consul_agent_network_iface at the playbook level, using include_role. What is your suggestion about this possibility?


Why dividing 3.0 for feature stride in RoIAlign?

In the following codes:
https://github.com/TuSimple/mx-maskrcnn/blob/e8a05daf058375d8b9f07ddd581d035da1b4d472/rcnn/CXX_OP/roi_align.cu#L72-L73, you use 3.0 computing strides. Why use 3.0? Shouldn't it be pooled_height or pooled_width?
@huangzehao  @Zehaos

Thanks for responding and referring me Kaiming's slides.
Wouldn't it loss information by sampling only 2 points if a cell contain many, like in a big RoI?

Oh, this is a interesting topic. I think we know little about ROI Pooling. I think sample more point could help, but I haven't prove it.


[1.14] Add a mechanism to get raids which are in the ServerWorld

I noticed this while looking around the raid api code. There is currently no way to get a raid from the world.
Based on how the implementation would probably act, the raids are in the ServerWorld internally, so for consistency this would make sense in the api's ServerWorld. Since raids can happen in any dimension (yes it sounds ridiculous but you can have a raid in the end [game code doesn't allow raids in the nether]) it further justifies binding raid access to the world.
The best option would probably be to add a method to get a list of raids in the world since multiple raids can happen concurrently.

Closed #2073


Log Visualizer doesn't show anything in home page

I followeed the doc and use "python visualizer/app.py" in Whindows
Then I got blank in the first page instead of log Visualizing:

But when I upload the log in replay.html, I can replay them normally, but not so detailed

I didn't find an upload button in the home page....Did I miss anything?
thx for any reply

I didn't find an upload button in the home page....Did I miss anything?

Oh, It suddenly worked. Maybe it needs to start in a certain order rather than let Flask wait (maybe you can remind it in the Doc) ...
By the way, when using the “Human” mode, it seems that the modified code will be directly given to humans by default, but currently GPTs often find it difficult to provide code that can be run directly and require testing. It's usually necessary to help with
debugging AI code 😂
By the way, Is it possible to drag directly in the visualizerGUI to change the order of ChatChains? I think this will greatly increase convenience and truly allow everyone to create their own ChatChains 🚀
Very good project, I hope to continue cheering 😘

Please see https://github.com/OpenBMB/ChatDev/blob/main/wiki.md#visualizer for more guides.
The log visualizer won't display anything until you start building software using ChatDev by running python3 main.py. It displays real-time logs for the running ChatDev.
The replay visualizer only replays the agent dialogue, it would not contain detailed information in the log.
The log visualizer is used for debugging while the replay visualizer is used for a quick peak on others' logs.
As for dragging directly in some UI to customize the ChatChain, you can try our SaaS service at: https://chatdev.modelbest.cn/login
Thank you for your support!


[WIP] [QA-1585] increasing timeout for kernel wait

<!--
Hello, friend!
Remember to mention what sort of testing/verification you performed in the course of building this PR, i.e. checking functionality in the browser locally.
Thanks!
--!>

Addressing some flaky terra-ui automation tests. Seems like it takes time for the Kernel to open

Adding some more context:

Originally, we thought that the kernel was taking a longer time to get ready but it looks like the notebook actually enters a bad state in this instance. The notebook is unable to connect.

This seemed to happen less on a better VM config, but after some testing, it seems like this issue is not config dependent.

I am not sure the current fix fixes what is needed, but I want to keep this PR open to test.

Closing. The issue is not a UI test problem


Add tooltips with descriptions on mouse hover.

Hello
I decided to start tinkering a bit with the code myself, annoying you with pull requests as well as bug reports ;-). This adds support for mouse tooltips when hovering over known methods and properties.
Note the following things:

The current timeout for the tooltip is 500ms, which seems reasonable to avoid annoying the user.
Tooltips on class names are not implemented as I'm not sure docblocks from classes are even extracted on the PHP side at the moment. I've added a TODO in class-goto for this.
Very strangely, I've noticed that sometimes it takes a few mousemove and mouseout events for the tooltip to start showing for the first time, even though the code is actually properly executed. After the initial show, it works as intended for that specific HTMLElement.

@CWDN  I've also noticed mousemove being used in abstract-goto.coffee, causing the method to be invoked on every mouse move, is there a reason mouseover isn't used instead?
I have very little experience with CoffeeScript, so feedback is also appreciated in that regard.
Thanks in advance

Hello !
Sorry, I'm on hollidays, so I'm not really active this weeks.
I reviewed your PR, and that's pretty nice ! In my opinion, there's something that could be better visually, but I don't know what exactly ^^ So, I merge it even with the problem that you report. It's minor and could be fix later. (I add an issue for that)
Nice work :+1:
Regards, Peekmo

Hello,
Don't you think that the "return" and "params" of the method could be write on new line ? Like description or throws for example:

myMethod($x, $y)
.....
Description:
- my super description
Parameters:
- $x - string - parameter x
- $y - int      - parameter y
Returns:
- boolean - Blabla
Throws:
- ....

I agree, but I would also leave the original way intact (I would do both at the same time), as it immediately allows you to see the complete signature of the function or method at a glance. We are currently indeed missing the description of the parameters and the return type. Maybe something like this?
bool myMethod(FirstClass $x, SecondClass $y)

This is my method (summary).

Description:
  This is a long description of my method (description).

Parameters:
  $x - FirstClass - Description of parameter x from docblock (if present).
  $y - SecondClass - Description of parameter y from docblock (if present).

Returns:
  bool - Description of return value from docblock (if present).

Throws:
  ...

(Which is exactly the same as your example, except for the first line.)

Yep,  I agree, that will be better :)


Fix module cycle handling

This change modifies the way we handle cycle dependencies of modules.
Previously, after finding the loop, we have determined some random path to walk over those modules and walked twice over it. With new approach, we first collect information about location of imports and variables in global scope of the modules in the loop, and then try to find a starting module. After that, we do the analysis starting from that module. Analyzes for modules are saved only after they are obtained for all modules in the loop.

Please don't merge the PR until 9/30, I'd like to run the tests on my main machine.

Most probably conflicts with https://github.com/microsoft/python-language-server/pull/1565 which changed how variables/members are exposed from variable modules.

In the PR branch:

Running analysis tests, LibraryTests.Requests failed consistently.
In the app tests in full-cache mode "python.analysis.cachingLevel": "Library" only some of the numpy modules were saved so on reload analysis still took time.
In partial-cache mode "python.analysis.cachingLevel": "System" results do appear consistently the same.

Reopen from another branch


display:inline-flex;

display:inline-flex;

This issue was imported from Google Moderator
Moderator votes: +17
Issue added by reqshark on 2014-05-24
To vote this issue up or down, simply include +1 or -1 in your comment.

Already part of http://caniuse.com/#feat=flexbox


Death Line

Death line seems to intersect into the Next box, assume bug?

Death line seems to intersect into the Next box, assume bug?

Not intended! I'll fix it.

I rebased this onto master and fixed the issue where the death line was also appearing in the next block window.


How can I create the graph in a Jpanel

Want to try this out, but I want to wrap in my own JPanel
public class sTestCPUGraph extends JPanel{
// Create Chart
chart = QuickChart.getChart("Simple XChart Real-time Demo", "Radians", "Sine", "sine", initdata[0], initdata[1]);
    add(chart);

}
Is this possible?
Thank you for the help
Dave

Ok, I did some digging and have this working.... can you help me understand how to capture CPU % over time....

I figured this out,.... thank you


priorityToTrafficClassMappingIsAvail

see VlanFd Issue #12

Following element has been added to the VlanInterface modeling:

vlanInterfaceCapability::priorityToTrafficClassMappingIsAvail : boolean attribute incl. "true = configuring the mapping of the Priority values into Traffic Classes (queues) is available for individual interfaces. (If similar configuration would be available on switch and on interface level, the interface specific configuration would overwrite the configuration made on switch level.)" comment.

Solved with VlanInterface_1.0.0-tsp.220407.1810.


[1.10.2] Processors and Nodes do not correctly control doors, Odd behavior with Redstone Lamps

[1.10.2] Processors and Nodes do not correctly control doors, Odd behavior with Redstone Lamps
Doors:
This is behavior I have not found in any other mod, nor Vanilla. If a Processor or Node emits a redstone signal which is on a side with a door, the door will open. This is expected behavior.
However if that signal is then turned off (0), the door will remain open. There is no way to close the door using either the Node nor the Processor. This is highly unexpected behavior and I cannot reproduce it with any other mod.
Resetting the Processor does not close the door.
Breaking the Processor or Node (when on the side of a door) does not close the door.
Placing a "redstone provider" in an off state, such as a lever does not close the door however breaking it does.
This behavior is consistent with a bug I encountered in 1.4 where a mod was not correctly updating neighbor blocks on certain redstone changes. I do not remember if the author eventually resolved the issue.
I did test doors using RFTools Sequencers and they consistently cause the door to close when the redstone signal turns off, as expected. So whatever is different between the way Sequencers emit redstone signal and how Control does it might be a good starting point.
Redstone lamps:
This behavior is consistent with Sequencers, however I again have been unable to reproduce this with any other mod in in Vanilla.
There are two types of redstone signals; weak and strong. If a lever is placed under a stack of 2 redstone lamps for instance it will only control the bottom lamp, this is a weak signal. If a redstone torch is placed in the same position both lamps will light, this is a strong signal.
Vanilla Redstone transmits a strong signal to the side of a lamp, lighting both. A redstone torch on the side of a block pointing at the lamps will only light the bottom lamp, this is a weak signal.
When a lamp is placed on top of a Processor or Node, and a program is executed to turn redstone On and Off with a delay between cycles, it will turn the lamp on and off. This is expected behavior.
However, if a second lamp is placed on top of the first when UNLIT, the top one will remain unlit despite the lamp below it. This is consistent with a weak signal.
If a second lamp is placed on top of the first when LIT, the top one will light. This is consistent with a strong signal. However, and it will remain lit despite the lamp below it turning off. This is inconsistent with either signal type and cannot be reproduced with any other mod I have tried.
Screenshots:
This is a Node on top of a Processor, the Node is being told for the Up side to go High (15), wait 40 ticks, go Low (0), wait 40 ticks, repeat. The door opens and never closes.
https://i.imgur.com/VZWd3j7.png
This is a door next to a Processor, same program just using West instead of Up. Door opens and will not close.
https://i.imgur.com/iWibb6Y.png
This is the same example as the first with lamps:
2 Lamps placed while signal from Node was off.
https://i.imgur.com/9Prj2vR.png
After signal turned on.
https://i.imgur.com/KrCprmJ.png
2 Lamps placed while signal was on.
https://i.imgur.com/XyiaxjW.png
and after signal turned off.
https://i.imgur.com/RClCqCV.png
2 redstone lamps with a redstone torch under them.
https://i.imgur.com/3QAUAdY.png
And again with a lever instead.
https://i.imgur.com/zlwAnZd.png
Sorry for the long issue but as prior attempt to articulate this issue into short form on irc failed and I want to be completely clear about what I am experiencing.

After talking with another mod developer Aesen (author of Correlated Potentialistics) who suggested this was a classic block update issue I decided to begin digging in other open source projects. I've looked at two so far:
First a refresher, RFTools Control uses the following to emit redstone:
https://github.com/McJty/RFToolsControl/blob/master/src/main/java/mcjty/rftoolscontrol/blocks/node/NodeTileEntity.java#L65
public void setPowerOut(EnumFacing side, int powerOut) {
    this.powerOut[side.ordinal()] = powerOut;
    markDirty();
    worldObj.notifyBlockOfStateChange(this.pos.offset(side), this.getBlockType());
}

There is a call to markDirty() followed by a notifyBlockOfStateChange()
One thing to note is that the first parameter given to notifyBlockOfStateChange() is the position of the Processor/Node sending the signal, offset by the side it is emiting redstone on. This may be an important thing...
If we look at Random Things Entity Detector Block we see something similar but with a few key differences.
https://github.com/lumien231/Random-Things/blob/master/src/main/java/lumien/randomthings/tileentity/TileEntityEntityDetector.java#L69
Gives us...
this.syncTE();
this.worldObj.notifyNeighborsOfStateChange(pos, ModBlocks.entityDetector);

We'll get to syncTE() in a moment, note the first parameter to notifyNeighborOfStateChange() it is the position of the block itself, not of a neighboring side! More on this below...
Now we need to go to TileEntityBase to find where syncTE() is defined...
https://github.com/lumien231/Random-Things/blob/master/src/main/java/lumien/randomthings/tileentity/TileEntityBase.java#L103
IBlockState state = this.worldObj.getBlockState(this.pos);
this.worldObj.notifyBlockUpdate(pos, state, state, 3);

I'm not sure what this does but if I had to wadger one guess it would be telling the world that this block has something different about itself, so that neighboring blocks are notified of that change, instead of being directly interacted with. Also note that the position again is of the block not a neighbor...
Now lets take a look at Better With Mods Detector block...
https://github.com/BeetoGuy/BetterWithMods/blob/master/src/main/java/betterwithmods/blocks/BlockDetector.java#L184
IBlockState state = world.getBlockState(pos).withProperty(ACTIVE, on);

world.setBlockState(pos, state);

world.notifyBlockOfStateChange(pos.offset(EnumFacing.getFront(i)), this);

What's this? This calls notifyBlockOfStateChange with the position of a neighboring block, but it still works! So what else is in common, getBlockState() and in this case setBlockState() both using the position of the block not a neighbor.
Again maybe the issue is not that RFTools [Control] is failing to notify neighbors of a change but failing to notify them that the source block itself has also changed.
So how do they actually perform in game? The Entity Detector from Random Things opens and closes doors as it is triggered and untriggered. This works with doors on the side and on top of the block. No sticking.
With lamps it lights the bottom lamp and never the top.
Now the Detector block from Better With Mods...
Doors placed on the side and top open and close as they should. With lamps only the bottom one lights and never the top.


GetUtils.isPhoneNumber not working perfectly

Regex need an update!
I think something like this would be better r"^(?:[+0]9)?[0-9]{10}$"
GetUtils.isPhoneNumber is accepting 2 digits.

This is an extremely difficult function to be assertive.
Each country has more than one phone number format and they are different from other countries, there is no standard.

okay thank you but i think it's better to not implement it or just make it little but better

Hi @IlyesBenarroum,
In GetX 3.15.0, GetUtils.isPhoneNumber was improved and no longer accepts just 2 digits


feat: added the websocket configs to backend config file

[ https://github.com/keep-starknet-strange/art-peace/issues/6] issue #
[x] follows contribution guide
[x] code change includes tests
[x] breaking change

Added websocket config to backend.config.json file

Will you be able to setup parsing for this on the backend and use it to initialize the upgrader?


the data of UCF101-24

Hello, can you share the data of UCF101-24? I want to try the training of AVA dataset after UCF101-24 and JHMDB training. I hope you can share it with me. Thank you very much!

The AVA data set is too large. It takes a long time to train once

I used 8 32GB Titan GPUs to train it. It took around 25 hours
On Wed, Feb 15, 2023, 02:18 yan-ctrl @.***> wrote:

The AVA data set is too large. It takes a long time to train once
—
Reply to this email directly, view it on GitHub
https://github.com/joslefaure/HIT/issues/11#issuecomment-1430178581, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ALOMSBBGEGZO3KADHDVRBVLWXPEAJANCNFSM6AAAAAAU34RPIY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I don't have so many cards. The device is limited. The processing method of UCF101-24 is the same as that of JHMDB, right? Can you share with me what you still have?


Check failed in fixed_unigram_candidate_sampler

Click to expand!
Issue Type
Bug
Source
source
Tensorflow Version
tf 2.10
Custom Code
Yes
OS Platform and Distribution
Linux Ubuntu 20.04
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Check failed: range == weights_.size() (10 vs. 3)

Standalone code to reproduce the issue
import tensorflow as tf
import numpy as np
true_classes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
num_true = 2
num_sampled = 4
unique = True
range_max = 10
distortion = 1.0
num_reserved_ids = 0
num_shards = 1
shard = 0
unigrams = [0.1, 0.8, 0.1]
seed = None
sampler = tf.random.fixed_unigram_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, distortion=distortion, num_reserved_ids=num_reserved_ids, num_shards=num_shards, shard=shard, unigrams=unigrams, seed=seed)

Relevant log output
F tensorflow/core/kernels/range_sampler.cc:264] Check failed: range == weights_.size() (10 vs. 3)
abort

@creakseek,
I request you, please take a look at this issue where a similar issue has been proposed and it is still open. Thank you!

hi @tilakrayal
I checked the issue you pointed, although it is the same API, the root causes are different. That issue is triggered when vocab_file is invalid (Non-OK-status: LoadFromFile), and this issue is triggered with an invalid weights_ shape (Check failed: range == weights_.size()). Thus, the PR to that issue will not fix this check-fail problem.

@creakseek check https://github.com/tensorflow/tensorflow/pull/58358


'saved' attribute not mentioned in docs

For the comment and submission models the .save() and .unsave() methods are included but not the .saved attribute.

Attributes on almost all PRAW classes are dynamically provided. The attribute tables just list the most common attributes provided by the API. However, I think the saved attribute would be a great addition to the attribute tables for comments and submissions if you would like to open a PR for that.


Add enabling dark mode through environment variable

This PR adds the ability to set the dark mode setting for both admin, forms and tables through a single environment variable.
FILAMENT_DARK_MODE=true

It does however also allow overriding by FORMS_DARK_MODE for the form builder and TABLES_DARK_MODE for the table builder or for uniformity when not used in combination with filament.

Hi, thanks for your contribution, I do appreciate it. Personally though, I don't think that this is "environment" data - especially if you're using the form and table builders on their own. The custom parts of your app will either support dark mode styling or not, that's not something that could change between app environments.


COMMON: [ICONS] Icon common component V1

Added a common component to use standardized icons
Currently only supporting Icons needed for Log in, more Icons will be supported in the future

FIGMA LINK

 Common component: Create Icon Component V1


Missing icon in the "Preferences" window and taskbar

Hi,
The Lagrange icon is not displayed for the "Preferences" window. Note that a detached tab from "Move tab to new window" is not impacted and is working properly.
This impacts the window title bar and the taskbar, and only MATE and Xfce; GNOME and KDE are fine. The system used is Debian Unstable, so they are recent versions of these desktop environments, and this is Lagrange 1.15.
A cross test has been made with the AppImage, and shows the same behaviour. I will make another issue for the "black on black" text  of the selected section of the Preferences.

This is a terrible hack but I wanted to have fun for a bit. Since I've picked up things from window.c this would require a refactoring, and my C skills are too low to do the right thing, but this works:
--- src/ui/util.c.orig	2023-01-21 12:08:14.000000000 +0100
+++ src/ui/util.c	2023-01-21 18:32:21.225951372 +0100
@@ -35,6 +35,7 @@
 #include "inputwidget.h"
 #include "keys.h"
 #include "labelwidget.h"
+#include "resources.h"
 #include "root.h"
 #include "sitespec.h"
 #include "text.h"
@@ -55,6 +56,9 @@
 #include <the_Foundation/path.h>
 #include <SDL_timer.h>

+#include "stb_image.h"
+#include "stb_image_resize.h"
+
 iBool isCommand_SDLEvent(const SDL_Event *d) {
     return d->type == SDL_USEREVENT && d->user.code == command_UserEventCode;
 }
@@ -1376,6 +1380,21 @@
     }
 }

+static SDL_Surface *loadImage_(const iBlock *data, int resized) {
+    int      w = 0, h = 0, num = 4;
+    stbi_uc *pixels = stbi_load_from_memory(
+        constData_Block(data), (int) size_Block(data), &w, &h, &num, STBI_rgb_alpha);
+    if (resized) {
+        stbi_uc *rsPixels = malloc(num * resized * resized);
+        stbir_resize_uint8(pixels, w, h, 0, rsPixels, resized, resized, 0, num);
+        free(pixels);
+        pixels = rsPixels;
+        w = h = resized;
+    }
+    return SDL_CreateRGBSurfaceWithFormatFrom(
+        pixels, w, h, 8 * num, w * num, SDL_PIXELFORMAT_RGBA32);
+}
+
 void closeMenu_Widget(iWidget *d) {
     if (flags_Widget(d) & nativeMenu_WidgetFlag) {
         return; /* Handled natively. */
@@ -1424,6 +1443,13 @@
         arrange_Widget(dlg);
     }
     addExtraWindow_App(x);
+/* Load icon for the window */
+#if defined (iPlatformLinux) && !defined (iPlatformTerminal)
+    SDL_Surface *surf = loadImage_(&imageLagrange64_Resources, 0);
+    SDL_SetWindowIcon(x->win, surf);
+    free(surf->pixels);
+    SDL_FreeSurface(surf);
+#endif
     SDL_ShowWindow(x->win);
     SDL_RaiseWindow(x->win);
     setActiveWindow_App(x);

Yeah, you're on the right track there. 441f115 does basically the same thing but with a new helper function that also does the same on Win32.

I tried the diff, it works fine here, thanks!


Usage string should display brackets for optional parameters

It is customary to display optional parameters with brackets:
        --input <string>: The input file to read
        --sqlconnection <string> <string>: The sql server and database.
        [--sqlcredentials <string> <string>]: User and password for the database.
If not given, Windows authentication is assumed.
        --help [-h|/h|/help|/?]: display this list of options.

Should I assume that the issue was resolved by PR #25?


Remove buggy logic around retrying for now

@jacobgreenleaf is this where we landed on Friday? If we disconnect from redis then all messages coming from publishes will be lost

Incus is kind of working fine now in production so (shrug)


chore(deps): update dependency @aws-sdk/client-secrets-manager to v3.398.0

This PR contains the following updates:

Package
Type
Update
Change

@aws-sdk/client-secrets-manager (source)
dependencies
minor
3.386.0 -> 3.398.0

Release Notes

aws/aws-sdk-js-v3 (@aws-sdk/client-secrets-manager)
v3.398.0
Compare Source
Note: Version bump only for package @aws-sdk/client-secrets-manager
v3.395.0
Compare Source
Note: Version bump only for package @aws-sdk/client-secrets-manager
v3.391.0
Compare Source
Note: Version bump only for package @aws-sdk/client-secrets-manager
v3.389.0
Compare Source
Features

client-secrets-manager: Add additional InvalidRequestException to list of possible exceptions for ListSecret. (f80ac69)

v3.388.0
Compare Source
Note: Version bump only for package @aws-sdk/client-secrets-manager
v3.387.0
Compare Source
Features

clients: allow client creation without configuration (#5060) (a9723dc)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: src/lambdas/chat/package-lock.json

File name: package-lock.json

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


False negative for RUF019 with not operator

RUF019 checks for things like "key" in dct and dct["key"] in boolean contexts, like an if condition or the argument to bool. It should also detect it as the operand of not.
$ ruff --version
ruff 0.5.1
$ echo 'bool("key" in dct and dct["key"])' | ruff check --isolated --output-format=concise --select RUF019 /dev/stdin
/dev/stdin:1:6: RUF019 [*] Unnecessary key check before dictionary access
Found 1 error.
[*] 1 fixable with the `--fix` option.
$ echo 'not ("key" in dct and dct["key"])' | ruff check --isolated --output-format=concise --select RUF019 /dev/stdin
All checks passed!

This seems reasonable to me.
I think we'll need to visit the operand of a unary not operator using the visit_boolean_test which sets the correct flag on the semantic model:
https://github.com/astral-sh/ruff/blob/880c31d1642a6b4d967a20f9affe9772a3722b85/crates/ruff_linter/src/checkers/ast/mod.rs#L1796-L1804


SILKY_MAX_RECORDED_REQUESTS does not work with sqlite3

HI,
I'm trying to limit requests saved in sqlite3 database, but I do not see any effect of my tries.
I added:
 SILKY_MAX_RECORDED_REQUESTS = 3
cleared Silk entires in database
./manage.py silk_clear_request_log
restart app and refresh several time my app in browser. And Silk still saves more than 3 requests. What am I doing wrong?

same here, how does this work? In the docs it simply says

To make sure silky garbage collects old request/response data, a config var can be set to limit the number of request/response rows it stores.

It sounds like it should only save until it hits the limit and then start clearing old rows.

Garbage collection (clearing the old requests given SILKY_MAX_RECORDED_REQUESTS is done either:

during request save, but with a chance given SILKY_MAX_RECORDED_REQUESTS_CHECK_PERCENT
on launching the ./manage.py silk_request_garbage_collect command


[stableswap]: Add checks for invalid cfmm inputs

Closes: #2694
What is the purpose of the change
From issue:

While testing our stableswap CFMMs (both two-asset and multi), I noticed that given their complexity it is possible for certain really weird inputs to get passed into the solvers that go completely uncaught. Both for security reasons and for more time-effective testing/bug squashing, I think we should implement validity checks for inputs to (and outputs of) the CFMM solvers.

This PR adds these validity checks.
Brief Changelog

Ensure inputs and outputs of CFMM functions are checked for basic validity (not negative, outputs not greater than reserves etc.)

Testing and Verifying
This change added tests that verify negative input checks in stableswap/amm_test.go
Documentation and Release Note

Does this pull request introduce a new feature or user-facing behavior changes? (no)
Is a relevant changelog entry added to the Unreleased section in CHANGELOG.md? (no)
How is the feature or change documented? (not documented)

I just went ahead and refactored the tests to fit our standards – I figured it would be easier to resolve issues in all the open PRs right now than try to fit in a full test refactor later


Robyn Allocator Function Prioritizing Minimization Over Optimization

Body:
Description:
I'm experiencing an issue with the Robyn Allocator function, where it seems to prioritize minimizing spend rather than optimizing it.
Details:
While working on the Robyn model, I expected the allocator function to distribute the spend in an optimal way based on given data. However, I've noticed that it appears to minimize spend instead, which does not yield the most efficient outcomes.
Expected Behavior:
I expected the allocator function to distribute spend in a manner that optimizes output, instead of merely minimizing spend.
Screenshots:
I've attached a screenshot to demonstrate this issue.

Environment:

Robyn version: 3.10.3
Operating System: ubuntu EC2 AWS
R version:

I would greatly appreciate your help on this issue. Thank you in advance!

Hi, we're looking into this issue systematically so it'll take some time for a final fix. But meanwhile you could just raise your lower bound, that will already force the allocator to "go higher". I'm seeing you having lower bounds to 0, which allows these channels and also the total budget to go 0.

in that case, it always chooses the lower bound. thank you for your support.

Ok I missed it. Your display channel hast no effect, so there's only one channel left and thus nothing to optimised. You need to choose a model in which both channels have >0 effects.


Compile errors

Good day ! I'm new to SOCI and I'm having some problems while compiling
I ran  g++ file.cpp -I/usr/local/include/soci  -I/home/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/
public/ -lsoci_core  -lsoci_oracle -ldl -lpq
and I get some errors  ( attached the error file ). Could you please spare some advice ? Thank you !
t.txt

Can you also attach source code?
And which SOCI release are you trying to use?

Thanks for the response
!I'm running the latest version, soci 3.2.3. You want the file.cpp source code ? (if so, I attached it)
file.txt

The problem is coming from type-conversion-traits.h that does not include error.h. I will submit a PR for this issue.
For the moment, can you try to add #include <soci-backend.h> before #include <soci.h>.

I just try to compile your file and I don't get error.
I believe there is some duplicated headers name with your second search path /home/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/public/
Instead of including "soci.h", try to include <soci/soci.h> and use search path /usr/local/include instead of /usr/local/include/soci
Don't use "" when including files not in current directory, always use <>

Thank you for the help. I installed the framework again and now it appears to be working, it doesn't print anything but still...better than nothing. Will try to debug

The program doesn't give me an error but neither does it give me a output. Is there a way to debug ? The standard gdb does not appear to work
source.txt

First if you want to use debugger you have to add debug symbols using -g in gcc command line.
Seconly, you are using stdout (printf) to print informations to console, stdout is buffered, so it is only flushed once buffer is full or you request it.
To be sure to see your logs use fprintf(stderr, "%d\n", linii);

@cipriancus If you have some questions regarding SOCI lib usage, please use<EMAIL_ADDRESS>mail list first.
Thank you.


Common architecture for .enable() APIs

@jbeaurivage, @vccggorski and @vcchtjader,
I (think?) I had some useful insights recently, while trying to solve #609. I wanted to lay out the problem and my proposed solution, to see if we can come up with a common approach that we all like. That would also help keep the APIs consistent across the HAL.
I'll start with the spi module. Right now, the two main structs look like this:
pub struct Config<P, M, Z>
where
    P: ValidPads,
    M: OpMode,
    Z: Size,
{
    // ...
}

pub struct Spi<C: ValidConfig> { ... }

Users create an spi::Config and use a builder API to configure it, before calling .enable(), which consumes the Config and places it inside the Spi. The AnyKind trait pattern is used (via ValidConfig) to reduce the repetition of type parameters on the Spi struct.
Right now, each call of a builder API function on Config corresponds to a register write. I liked this approach, because it gives users maximum freedom, and it means you don't need to store any of the configuration within Config; it is all stored directly in the registers.
On the other hand, @vccggorski preferred a different approach for the clock::v2 module. There, we define these structs.
pub struct Gclk<G, I>
where
    G: GclkId
    I: GclkSourceId
{
    // ....
}

pub type EnabledGclk<G, I, N> = Enabled<Gclk<G, I,>, N>;

In this API, users create instances of Gclk directly. Gclk also uses a builder API, but the configuration is stored within the struct. None of the builder-API functions actually write the registers. Only when calling .enable() are the registers actually written. Then, the Gclk is packed inside the Enabled struct, which provides compile-time counting of dependent clocks using the N type parameter.
@vccggorski and I have had a few debates about this approach. I don't really like that the configuration data is stored permanently within the Gclk. To me, it seems redundant and less compact than it could be.
However, I have to admit that, on at least one occasion, I have run into a problem with initialization order in the spi module. Moreover, I suspect #609 is also caused by initialization order. From that, I conclude that we should probably store the configuration parameters locally, and perform all the register writes in .enable(), so that we can guarantee the correct initialization order.
So I was left with a problem. I want to store all the configuration options within spi::Config and perform all register writes in the .enable() function, but I also don't want to bloat the size of spi::Spi. I think that is a fairly legitimate concern, too, because the full Config struct ends up looking like this:
pub struct Config<P, M, Z>
where
    P: ValidPads,
    M: OpMode,
    Z: Size,
{
    regs: Registers<P::Sercom>,
    pads: P,
    mode: PhantomData<M>,
    size: Z,
    freq: Hertz,
    cpol: Polarity,
    cpha: Phase,
    bit_order: BitOrder,
    baud: Hertz,
    ibon: bool,
    run_in_standby: bool,
}

You end up carrying around a minimum of something like 9 extra bytes for no real reason.
That's when I realized that the Config struct doesn't have to be stored within Spi. Instead, I can unpack the useful contents of Config in the .enable() call, and then drop the rest. With this approach, Spi ends up looking like this
pub struct Spi<P, M, Z>
where
    P: ValidPads,
    M: OpMode,
    Z: Size,
{
    // ...
}

where its fields are limited to keep it as compact as possible. The only downside is that the type parameters have to be repeated on Spi. But I think that actually ended up simplifying things in this particular case.
At this point, @jbeaurivage might ask how I handle reconfiguring an enabled Spi. The existing API has an Spi::reconfigure function that will temporarily disable the peripheral, call a user-provided closure, and then re-enable the peripheral. The user-provided closure effectively had the signature FnOnce(&mut Config). Users could then call methods of a non-builder API, with signatures like
impl Config {
    pub fn get_setting(&self) -> Setting {}
    pub fn set_setting(&mut self, setting: Setting) {}
}

With the new approach, the Config struct no longer has the non-builder API, because it is never used for anything other than constructing an Spi struct. Instead, I created a separate Reconfig struct that has get_ and set_ methods, and I changed the Spi::reconfigure function to take an FnOnce(Reconfig) closure.
I like this approach, because it provides the best of both worlds. It gives HAL authors complete control over creation and initialization, but it doesn't burden users with an unnecessarily bloated struct.
Moreover, I think the approach could be equally applicable to the clock::v2 API. There, we could provide a gclk::Config struct that acts like spi::Config. It would store all of the configuration options and perform all register writes in .enable(). The gclk::Gclk struct could then be stripped down to only the necessary fields.
At this point, I think @vccggorski might object, because he probably doesn't like the idea of calling gclk::Config::new to create a new Gclk. I also don't really like that, which is why I think we could provide
impl<G, I> Gclk<G, I>
where
    G: GclkId,
    I: GclkSourceId
{
    pub fn config<S>(token: GclkToken<G>, source: S) -> (Config<G, I>, S::Inc)
    where
        S: Source<Id = I>,
    {
    }
}

Existing calls to Gclk::new would instead become calls to Gclk::config. I actually think that's better, because it indicates to the user that the Gclk still needs configuration and is not yet enabled.
What do you all think of this approach? Do you see any problems or have any concerns? If it satisfies everyone, I would like to use this common approach in all of our code. I think that would give the HAL a very consistent feel.
Also, please see #613 for a draft of the new approach with the spi module. I think it's pretty much done, but I still need to update the documentation. I also don't want to go too far with it before I get buy-in from the rest of you.

I like the general idea but isn't this Reconfig struct reintroducing the initialization ordering problem? You have a Config that only has a local, logical state. Config::enable writes to registers according to spec order and returns Spi struct. Then, Spi::reconfigure allow you to write over registers in random order via Reconfig. Wouldn't it be better to make Reconfig struct similar to Config one but with the caveat of allowing register read operations? Thus, user could make conditional decisions based on the state of the peripheral HW (without storing the state in a struct itself) while the "finalization" of the reconfiguration process should also follow the in-spec order (just like Config::enable).
As for clock::v2, can one read from HW everything that is settable? Is there full symmetry?

@bradleyharden, I can see value in that approach. I like that all the register writes happen in only one place. I'll look at #613 and give my impressions over there.

I like the general idea but isn't this Reconfig struct reintroducing the initialization ordering problem?

You're absolutely right on this. I forgot about that. I think I had in mind that most use cases for Reconfig would be to change a single setting, but that doesn't prevent you from doing the wrong thing accidentally. Let me rework Reconfig to prevent that. That might mean I completely remove Reconfig in favor of reusing Config.

@vccggorski, I updated #613 to correct the Reconfig problem. It was a pretty minor change overall. The architecture didn't change at all.


Fix GitHub actions

Issues:
Issue#43
Description:
Use Dockerfile from the repository for the environment for GitHub Actions. Sorry for a lot of commits, I will squash them after accepting

Please look first at the next PR. If the approach with two Dockerfile is ok I will use it here


chore: upgrade to Svelte 4

upgrade to svelte 4 in the wake of a couple super frustrating svelte bugs!

In case anyone ever looks at this again: this turned out to be a huge amount of work, in part because of the way we have split up our Javascript code into multiple folders with separate sveltekit configs.


Property 'trackByTime' does not exist on type 'CalendarModal'

After update to Angular 5

Error at ./node_modules/ion2-calendar/dist/components/calendar.modal.d.ts.CalendarModal.html(36,65): Property 'trackByTime' does not exist on type 'CalendarModal'.

It appears when you are trying to build with --prod


Automatic OTP verification in IOS?

I use sms plugin to build an auto top verification in my flutter app. But it doesn't work on ios.
When I search I found that iOS 12 allows securely to read top. Do we have such a plugin for flutter?
https://stackoverflow.com/questions/39631168/automatic-otp-verification-in-ios

Check on pub.dartlang.org or ask on StackOverflow.
You can always make native functionality available building your own plugin
https://flutter.io/developing-packages/#plugin

checkout flutter_otp.
https://pub.dev/packages/flutter_otp


What happened to the tensorflow.keras package?

Please make sure that this is a feature request. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:feature_template
System information

TensorFlow version (you are using):
Are you willing to contribute it (Yes/No):

TF 2.3.1
Yes, if able
Describe the feature and the current behavior/state.
There used to be a separate repo tensorflow-keras.  That page said the worked got merged into this.  Yet, I don't see a org.tensorflow.keras package and my ide complains when I try to access stuff from it.  I want to be able to, at a minimum, load models from Keras.  But yes, it would also be nice to create models on the Java side as well.
Will this change the current api? How?
I suppose so because I do not see a org.tensorflow.keras package currently.
Who will benefit with this feature?
Everyone who is already familiar with Keras.  But also those newer to deep learning as well because Keras is higher level and easier to use than vanilla tensorflow.
Any Other info.
If there have been massive conversations and decisions made behind the scenes, I would hope that at least the README.md is updated to say the level of support, if any, for Keras and why that decision was made so that people aren't scratching their heads.

We looked into making something that was bug compatible with Keras, and that's tricky to do given the differences between Python and Java. Mirroring the Python API into Java would have ended up with something that wasn't very Java-like (and would have improperly encapsulated it's internals).
We're working on a higher level framework modelled after Keras, but it's not called Keras because we thought that would be misleading due to the API differences. It's not all landed in the main tree yet, but @JimClarke5 is working his way through the API and landing it in chunks. You can see the progress here - https://github.com/tensorflow/java/tree/master/tensorflow-framework/src/main/java/org/tensorflow/framework, and there are several active PRs which will integrate more pieces of it.
As for loading Keras models, the Keras hdf5 format is sparsely documented at best, and so we've not started looking at how to load Keras models saved in that format into Java. You can load in TensorFlow SavedModels which we understand to be the format that all of TF is moving towards. Once the API is done we might take another look at loading Keras models.


CI: Don't run on .md changes in PRs, except it's the book

This should speed up the CI, when we are "only" adapting docs. Tested it on a fork and it seems to work as intended.

bors r+


install from strach

when i install from strach i have got the problem:
I use anaconda 3  and do install cuda9.2 ,cudnn 7.3.1 .
when i  input make -j  in my anaconda env:
it  have something wrong:
In file included from /home/zty/Documents/simpledet/mxnet/3rdparty/mshadow/mshadow/tensor.h:16:0,
from include/mxnet/./base.h:32,
from include/mxnet/operator_util.h:43,
from src/operator/contrib/./quadratic_op-inl.h:29,
from src/operator/contrib/quadratic_op.cc:24:
/home/zty/Documents/simpledet/mxnet/3rdparty/mshadow/mshadow/./base.h:179:21: fatal error: cudnn.h: No such file or directory

More related to MXNet than SimpleDet. Please refer to #51


update

typo error solved
Issue #

Changes

-

Flags

Related Issues

Issue #
Pull Request #

This change isn't necessary.


Feature Request:  ability to import private apps

Hello,
It will be nice to be able to support import of existing apps.
It will ease adoption of module for existing platforms and i don't like to re create all stuff :-)
2023-10-12T13:23:02.502+0200 [ERROR] vertex "module.private-apps.netskope_privateapps.map[\"dummy5\"] (import id \"tf-dummy5\")" error: resource netskope_privateapps doesn't support import 2023-10-12T13:23:02.502+0200 [ERROR] vertex "module.private-apps.netskope_privateapps.map (expand)" error: resource netskope_privateapps doesn't support import module.private-apps.data.netskope_publishers.all: Read complete after 0s [id=1697109782]

Ack...I have been looking to support import in future releases.

Thanks, if can help let me know because I'm willing to move all my netskope private apps in a more modern way ( instead of clic clic )
:-)

This would be really great to have!


support tr.update()

support updating TRs.
Fixes: https://github.com/IBM-Bluemix/gp-js-client/issues/73

Coverage decreased (-2.0%) to 89.831% when pulling b6cc3fc60de956821b79a0460485bce6f7b3967f on srl295:ht-update into 9a59eecfd6384ce717afe84421349535a61fec49 on IBM-Bluemix:master.

Rebased and regenerated README.


7.2 what's new and upgrade guide

Coverage remained the same at 80.314% when pulling e119631f528165ff7607cb11172494c3cf45c52c on x/whats-new into 5007ed672481dda645c13a8573b9b697f1e2baab on master.


A small change in  "Installation" Readme.md

The command  "bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)"
changed to "curl -sSL https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer | bash".
The images below show working in bash and zsh.

any update?

please resolve conflicts


Improve VRS and vrs-python documentation

Submitter Name
Reece Hart
Submitter Affiliation
MyOme
Submitter Github Handle
reece
Additional Submitter Details
No response
Which event day would the project be offered?

[X] ISMB 2022 Hackathon Day 1
[ ] ISMB 2022 Hackathon Day 2

Project Details
The goal of this project is to improve the experience of those who are new to VRS. At the start of the session, we will identify areas of focus based in part on the experience and skills of the participants. Possible activities include:

Reading https://vrs.ga4gh.org/ and collecting feedback.
Learning how update VRS documentation and implementing identified changes.
Creating short, focused video tutorials for new users.

Required Skills
Desirable skills: Python, sphinx, jupyter notebooks, video editing, proofreading, Read the Docs

@ahwagner and @larrybabb assessed this.
This proposal is designed for those folks that are new to VRS that would like to work with a VRS co-lead to improve the documentation, collect feedback and identify tasks that need to be done to improve the documentation all around.
The reach goal would be to push one or more updates to the documentation for the next version of the spec.


Work around a startup stall caused by expo-image on low-end Android

There seems to be an issue in expo-image that blocks the UI thread on startup on low-end Android. As a result, we get stuck on the splash screen for 5 extra seconds if even one of those is rendered. As a temporary fix, let's render the startup-blocking images (own avatars in the drawer and the tabbar) as plain RN Image.
This lets us hide the splash ~4.5 seconds earlier. The final time to content seems to only improve by ~2.5s, but that's harder to measure reliably because it's network-bound. (We should optimize the load time too though.)
The proper fix is to get this reported to Expo and see if it can be fixed upstream. Maybe it's something like https://github.com/expo/expo/issues/21921.
(The measurements are taken with https://github.com/bluesky-social/atproto/pull/1790 patched in since it was another cause of the slowdown.)
Before
Time to end of splash: 8s
Time to content: 13s
https://github.com/bluesky-social/social-app/assets/810438/90e8e111-4269-4130-883b-99c55d2b7ae1
After
Time to end of splash: ~3.5s
Time to content: ~10.5s
https://github.com/bluesky-social/social-app/assets/810438/798d1fc4-d015-46cd-98da-6d74910a6dda
Test Plan
Verified both the drawer and the tab bar render my avatar fine on iOS, Android, and web.

Filed Expo bug: https://github.com/expo/expo/issues/25201


Burp Error While Adding Extension

java.lang.ClassNotFoundException: burp.BurpExtender
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at burp.u1g.a(Unknown Source)
at burp.u1g.(Unknown Source)
at burp.ksb.a(Unknown Source)
at burp.bnb.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

What JAR file are you using? Is it one of the pre-built releases or did you compile it on your own? If so, how did you do it? Can you attach your JAR file to this issue? What operating system and what version of Burp and Java (JDK, JRE) are you using?

I am getting same error.
I am using window 8.1
Burp Version : Burp suite Pro 1.6v

@gamermount56 thanks, but please also answer the other, more important questions:

What JAR file are you using? Is it one of the pre-built releases or did you compile it on your own? If so, how did you do it? Can you attach your JAR file to this issue?

Had the same issue - updated java to version 8 and it worked - you can follow instructions here:
http://www.tecmint.com/install-java-jdk-jre-in-linux/

Thanks, I compiled the pre-built releases with JDK version 8 (producting bytecode version 52 files), which indeed cannot be loaded into a version 6 or 7 JVM -- even though the source itself can be compiled even with JDK version 6, which is also validated by Travis CI.
I compiled v0.3 for version 6 as well, and added it to the v0.3 release, select the burp-image-size-v0.3-java1.6.jar and it should work for version 6 and 7 JVMs as well. Thanks @indianfalcon for pointing out this!


Support for Windows job containers

See https://github.com/kubernetes/enhancements/pull/2288 for more background. To avoid any confusion here the name chosen for this container type for the cri API and the user facing k8s settings is HostProcess containers. Internally we've coined these as job containers but it's referring to the same type of container, the cri HostProcess field being set would be our
key to fill in the JobContainer field here on the runtime spec for example.
There's been asks for Windows privileged containers, or something analogous to it, for quite some time. While in the Linux world this can be achieved just be loosening some of the security restrictions normally in place for containers, this isn't as easy on Windows for many reasons. There's no such thing as just mounting in /dev for example.
The model we've landed on to support something akin to privileged containers on Windows is to keep using the container layer technology we currently use for Windows Server and Hyper-V isolated containers, and to simply have the runtime manage a process, or set of processes, in a job object as the container. The work for job containers is open source and lives here:
https://github.com/microsoft/hcsshim/tree/master/internal/jobcontainers
This approach covers all of the use cases we've currently heard that privileged containers would be useful for. Some of these include configuring network settings, administrative tasks, viewing/manipulating storage devices, and the ability to simplify running daemons that need host access (kube-proxy) on Windows. Without these changes we'd likely set an annotation to specify that the runtime should create one of these containers, which isn't ideal.
As for the one optional field, this is really the only thing that actually differs/isn't configurable for normal Windows Server Containers that we would like configurable in this case. With job containers the final writable layer (volume) for the container is mounted on the host so it's accessible and viewable without enumerating the volumes on the host and trying to correlate what volume is the containers. This is different from Windows Server Containers where the volume is never mounted to a directory anywhere, although it's still viewable and accessible from the host (mountvol for example)
Signed-off-by: Daniel Canter<EMAIL_ADDRESS>

This looks like a PR to your own fork, is there a reason for that?

This looks like a PR to your own fork, is there a reason for that? Otherwise, LGTM

Yea, don't wanna open the PR before our team looks at it

Should probably do this also.. @kevpar @ambarve @anmaxvl

Thanks @katiewasnothere! ❤

This looks good to me once the current comments are addressed!


Efficiently binding data fields to a HRec #95

Re-opening #195
I didn't merge in @srid's stuff yet (ought to be a separate PR I think?)

I'm merging this so others can work on top of it easilier.


Bug 2167299: Change version formatting for details card

This commit changes the way the version is formatted in the details cards (internal, external and object service dashboards)
Instead of odf-operator.v4.12.0, we will just show the semver of the operator.
This is done as part of the bluewash changes

Edit :
PR updated to pick the version from the respective operator csvs and updated in all the details card.
The screenshots are the same, just with the v removed
Signed-off-by: Vineet Badrinath<EMAIL_ADDRESS>

/cherry-pick release-4.12

Updated the code to pick the version from the csv. Has multiple changes, please take a look

Looks good, but we don't fetch entire list of CSV directly like this... use "useFetchCsv" hook instead... direct polling can be buggy sometimes...
@vbnrh

Updated the code to pick the version from the csv. Has multiple changes, please take a look

Looks good, but we don't fetch entire list of CSV directly like this... use "useFetchCsv" hook instead... direct polling can be buggy sometimes... @vbnrh

Changes done

/test images

/retest

/test odf-console-e2e-aws

/test odf-console-e2e-aws

/approve
/lgtm

/cherry-pick release-4.12-compatibility

@vbnrh backport PRs are up, plz add correct BZ number to the title and move BZ status to POST


Combined Ignite/create-react-native-app boilerplate

It would be great to be able to use Expo with Ignite.
Is it possible to write a boilerplate that combines the ignite-ir-boilerplate-2016 with what create-react-native-app generates?

Same question.

In that boilerplate, we use some native libraries (react-native-device-info, react-native-vector-icons, i18n) that are incompatible or different from CRNA/expo.
We'd have to separate that stuff in our boilerplate.
Here's what a separated & generated app might look like though:  https://github.com/skellock/expo-with-ignite

Those plugins have an Expo equivalent. It's just a matter of small work to make everything work.

@minibbjd I'll add this to our discussion list for next meeting. cc @GantMan @skellock

Please make CRNA work with Ignite. I have tried Ignite recently and totally love it; however, CRNA has become an official part of react native now, thus moving forward with it is essential

@bubuzzz I'll be working on this soon, I expect you all to be awesome beta testers :D

As I cannot use ignite "native" hot reloading (https://github.com/infinitered/ignite/issues/1121) I made this working with Expo.
I had trouble with DevScreens (DeviceInfo related) but at least I can dev my App with hot reloading now and then copy paste my App and Tests dir into an ignite project.
It would be awesome to have this natively with an ignite boilerplate.

It would be awesome to have this natively with an ignite boilerplate.

Agree.

+1

Is this still in-progress and not yet completed? :( I'm all up for seeing Ignite being fully compatible with Expo.

Well its actually very easy to do so, you just need to copy App folder in a
fresh expo + put ignite dependencies in expo package.json
If you are interested, I can share my setup with you
Le 14 oct. 2017 09:29, "Dovydas Stepo"<EMAIL_ADDRESS>a écrit :

Is this still in-progress and not yet completed? :( I'm all up for seeing
Ignite being fully compatible with Expo.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/infinitered/ignite/issues/1008#issuecomment-336616989,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADUhqatp6_2OiVdEjNQbGPv753jeZECuks5ssGLxgaJpZM4NMhlp
.

@l1br3 I'm definitely interested. Please share your setup.

Well, I'll do it mid of next week.
Le 14 oct. 2017 13:50, "Dovydas Stepo"<EMAIL_ADDRESS>a écrit :

@l1br3 https://github.com/l1br3 I'm definitely interested. Please share
your setup.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/infinitered/ignite/issues/1008#issuecomment-336629957,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADUhqfsXLZLOxho7x4892pAStql9IbxAks5ssKAAgaJpZM4NMhlp
.

@l1br3 No rush, mate, but by the mid of next week, I'll probably make one myself :)

What I realize is that my setup isn't a true ignite project as I cannot
compile. Its more the ignite boilerplate into an expo project. 30mn to set
it up
Le 14 oct. 2017 16:30, "Dovydas Stepo"<EMAIL_ADDRESS>a écrit :

@l1br3 https://github.com/l1br3 No rush, mate, but by the mid of next
week, I'll probably make one myself :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/infinitered/ignite/issues/1008#issuecomment-336638448,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADUhqavwQsEtq5wNS4yJT_IbYx28-vQ0ks5ssMV3gaJpZM4NMhlp
.

Using Ignite to bootstrap an Expo project would be really excellent. I'm voting for this feature.

+1

We're talking internally about it!  Will update when we have more info 👍

Does anyone have a working setup of the ignite boilerplate that works with expo?

@Miheegz The other day, @jbosse posted this in the Ignite Slack

I have a new repo with Expo.io integrated into a new Ignite 2.0 generated app.
Repo: https://github.com/jbosse/expo-with-ignite2
Expo: https://exp.host/@jbosse/expowithignite
https://infiniteredcommunity.slack.com/archives/C41PK1LAY/p1509827728000039

Someone asked me in the Slack about trying to create a boilerplate. I am interested in this but I have to learn how to make a boilerplate first :-). I have a production release next week so I probably won't get to it for a couple of weeks.

Thank you very much, @jbosse! I'll check it out.

@kenneho I just published a version of the boilerplate that integrates Expo. you should be able to get started by using the command ignite new MyLatestCreation -b ignite-expo. Please let me know how it works for you. You can file an issues here

@jbosse Thanks a lot - it works great! I got the same issue as reported here, but other than that it looks great - I've managed to get the application up and running using Ignite + Expo, so this is a real bonus. Thanks for the excellent work!

will soon test that sounds great thank you

Waiting for the CRNA support 👍

We're going to call this one solved by @jbosse the Boss. https://github.com/jbosse/ignite-expo-boilerplate


Error associating wssdagent

This error usually occurs when I try to removed the vm and redeploy it. This is not something I can consistently reproduce, but time seems to be a factor here. So I install eflow, use it as normal (I do quite a few Remove-EflowVm and Deply-Eflow), and then after some days this error starts coming up. Only way I have discovered to fix it is to reinstall Eflow.
Funny enough, it doesn't seem to be affecting anything. If I ignore it, it is still capable of registering to the iot hub, and even deploying correctly. No error logs from either edgeAgent or edgeHub, everything is coming back ok.
I will try this Friday to install Eflow and try to see how long it takes before it starts failing again.
[04/15/2021 08:51:33] Step 3: Configuring directories and virtual machine

[04/15/2021 08:51:33] Configuring directories

[04/15/2021 08:51:33] Associating wssdagent service with nodectl

 - C:\iotedge\nodectl.exe  security login --loginpath c:\programdata\wssdagent\nodelogin.yaml --identity failed to execute [Error: rpc error: code = Unauthenticated desc = Valid Token Required.]
False

To Reproduce
Steps to reproduce the behavior:

install eflow
remove-eflowvm and deploy-eflow a couple of times
after a few days, it starts failing.

Expected behavior
I don't expect it to fail.
Windows Host OS (please complete the following information):

OS Name: Microsoft Windows 10 Enterprise
OS Version: 10.0.19042 N/A Build 19042
Virtual Machine: Local VM
Eflow version <IP_ADDRESS>

Hi @ericvruder,
Thank you for the detailed question and background. We are aware of a similar issue with the wssdagent and networking problems.
If you have this problem again, go to Hyper-V Manager, and select the Networking tab and check if the VM has an assigned IP. If not, please try resetting the VM and check again.
Let me know if that fixes the problem. We will be addressing it in our next update.

Hi @fcabrera23
So it fails during creation of the VM, so it's not something to do with any currently deployed VM. I start out by removing the guest and then redeploying.
[04/23/2021 08:15:11] Deleting virtual machine

 - Removing vnic (name: PCName-EFLOWInterface)
 - Removing storage vhd (file: AzureIoTEdgeForLinux-v1-EFLOW)

[04/23/2021 08:15:16] Virtual machine removed successfully

True

[04/23/2021 08:15:16] Deploying Azure IoT Edge for Linux on Windows

[04/23/2021 08:15:16] Enabling Microsoft Update. This will allow Azure IoT Edge for Linux on Windows to receive updates.

 - Microsoft Update is enabled.

[04/23/2021 08:15:16] Step 1: Preparing host for Azure IoT Edge for Linux on Windows

[04/23/2021 08:15:16] Checking host for required features

 - Checking the status of 'Microsoft-Hyper-V'
 - Checking the status of 'Microsoft-Hyper-V-Management-PowerShell'
 - Checking the status of 'Microsoft-Hyper-V-Hypervisor'
 - Checking the status of 'OpenSSH.Client*'

[04/23/2021 08:15:18] Checking for virtual switch with name 'Default Switch'

 - The virtual switch 'Default Switch' of type 'Internal' is already present

[04/23/2021 08:15:18] Step 2: Verifying host limits

[04/23/2021 08:15:18] Verifying required storage, RAM and number of cores are available

 - Drive 'C:' has 169 GB free
 - A minimum of 10 GB disk space is required on drive 'C:'
 - Host has 5 GB free memory
 - A minimum of 2 GB memory is required
 - Host has 6 CPU cores
 - A minimum of 4 CPU cores is required

[04/23/2021 08:15:18] Step 3: Configuring directories and virtual

[04/23/2021 08:15:18] Configuring directories

[04/23/2021 08:15:18] Associating wssdagent service with nodectl

 - C:\iotedge\nodectl.exe  security login --loginpath c:\programdata\wssdagent\nodelogin.yaml --identity failed to execute [Error: rpc error: code = Unauthenticated desc = Valid Token Required.]
False

[04/23/2021 08:15:18] Verifying installation

 - Testing for expected binaries
 - Testing for expected images
 - Testing for ssh key
 - Testing for wssdagent service
 - Testing if wssdagent is running
 - Testing for Hyper-V Host Compute Service
 - Verifying whether Hyper-V is active
 - Hyper-V is active
 - Testing if container resource is provisioned
 - Testing if vnet resource 'Default Switch' is provisioned

[04/23/2021 08:15:18] Step 4: Runtime install complete. Creating virtual machine

[04/23/2021 08:15:19] Creating virtual machine (username: iotedge-user)

[04/23/2021 08:15:19] Verifying required storage, RAM and number of cores are available

 - Drive 'C:' has 169 GB free
 - A minimum of 16 GB disk space is required on drive 'C:'
 - Host has 5 GB free memory
 - A minimum of 2 GB memory is required
 - Host has 6 CPU cores
 - A minimum of 4 CPU cores is required

[04/23/2021 08:15:21] Setting dynamically expanding virtual hard disk maximum size to 16 GB

 - Creating storage vhd (file: AzureIoTEdgeForLinux-v1-EFLOW)
 - Creating vnic (name: PCName-EFLOWInterface)
 - Instantiating virtual machine (name: PCName-EFLOW)
 - Virtual machine instantiated, hostname is: PCName-EFLOW-3f097630

[04/23/2021 08:15:31] Virtual machine created successfully.

[04/23/2021 08:15:31] Successfully created virtual machine

[04/23/2021 08:15:31] Querying IP and MAC addresses from virtual machine (PCName-EFLOW)

 - Virtual machine MAC: 00:00:00:00:00:00
 - Virtual machine IP : <IP_ADDRESS>

[04/23/2021 08:15:40] Done.

[04/23/2021 08:15:40] Virtual machine hostname: PCName-EFLOW-3f097630

[04/23/2021 08:15:40] Virtual machine IP address: <IP_ADDRESS>

[04/23/2021 08:15:40] Virtual machine MAC address: 00:00:00:00:00:00

[04/23/2021 08:15:40] Testing SSH connection...

[04/23/2021 08:15:41] ...successfully connected to the Linux VM

[04/23/2021 08:15:41] Retrieving vTPM EK pub hash and registration ID for automated provisioning with DPS

 - TPM provisioning information retrieved!

[04/23/2021 08:15:42] vTPM Endorsement Key: XXX

[04/23/2021 08:15:42] Registration ID: XXX

[04/23/2021 08:15:42] Step 5: Installing and verifying virtual machine software

 - Installing and verifying required virtual machine features (username: iotedge-user)
 - Successfully installed/verified moby-engine package
 - Successfully installed/verified azure-iotedge package

[04/23/2021 08:16:04] Provisioning information not specified, provisioning skipped.

[04/23/2021 08:16:04] Deployment successful

OK
Configuring Eflow VM...

[04/23/2021 08:16:04] Querying IP and MAC addresses from virtual machine (PCName-EFLOW)

 - Virtual machine MAC: 00:15:5d:26:43:0b
 - Virtual machine IP : <IP_ADDRESS>

[04/23/2021 08:16:04] Done.

As can be seen, it got a IP address assigned to it. This is validated further on when I deploy some files to it through SCP
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
cert.der                                                                              100% 1358   807.7KB/s   00:00
cert.pem                                                                              100% 1730     1.6MB/s   00:00
daemon.json                                                                           100%  115   112.3KB/s   00:00
nodeConfiguration.json                                                                100% 3749     3.6MB/s   00:00
opcPublisher.json                                                                     100% 1209     1.2KB/s   00:00
setup.sh                                                                              100%  686   670.0KB/s   00:00

From now on, this will ALWAYS happen when I delete and redeploy the VM.

Hi @ericvruder, thanks for trying this out. In the next update of EFLOW, the publicly exposed functions "New-EflowVm" and "Remove-EflowVm" will be removed. Any call into these functions leads to unexpected behavior.
The lifecycle should be: Install the EFLOW MSI, run Deploy-Eflow exactly once, Uninstall EFLOW. After that, you can re-install EFLOW.
The removal of the EFLOW VM and subsequent re-creations such as by calling New-EflowVm or Deploy-Eflow are not supported scenarios.
Apologies, this is a deficiency in our documentation. Please let us know if you come across the described problem for the scenario where you run Deploy-Eflow only after MSI installation. In this case we will need to make an investigation.
Thanks,
Manuel

No worries! But I do have a few questions:

The lifecycle should be: Install the EFLOW MSI, run Deploy-Eflow exactly once, Uninstall EFLOW. After that, you can re-install EFLOW.

Why should I uninstall, then re-install?
What is the imagined flow if I need to re-provision the edge gateway? Right now, I reinstall everything to set it into a fresh condition. Will I be able to just call Provision-Eflow with some new parameters?
Is the goal here to remove the need for me to interact with the linux vm host? By removing the remove-vm and redeploy-vm, you are making it more difficult for me to test setting up the vm with the correct configuration. But most of that stuff is "default", in the sense that I followed the production guide as closely as possible, and that suited my needs. I only change the configuration for the modules I am trying to deploy. Will you be simplifying that process ?

@ericvruder - If you want a new fresh installation of EFLOW, you need to uninstall EFLOW before being able to re-install it. That's the flow, we do not support reinstallation without cleaning the machine first.
Regarding the re-provisioning, in our next release, you can just call the Provision-Eflow with the method (TPM, manualx509, manual string, DPS x509) and the corresponding parameters.
For the setting up, you can use parameters to set up the hardware requirements. Also, we plan to add port configuration, file sharing, and certificate configuration in future releases.
Finally, we are working hard to get our next version public, probably soon, although we don't have a defined date set.


refactor: rewrite Stack::push_slice to allow arbitrary lengths

Performance is the exact same. The current implementation is a hand-rolled version of this PR's.

How did you measure performance for this? It looks great btw!

How did you measure performance for this?

Manually looked at generated assembly for push{1,2,20,32} and it's identical minus register names.
Also ran callgrind:
before (885c0cc81ae717d88126442917b5237ef28c0487): 416,256,326
after1 (cdd4754d9e27cb851b227161263323b3319c38e6): 416,256,326


use [] for computation builders

Does it make sense to use [< struct >] for computation expression builders?
[<Struct>]
type AsyncResultBuilder()

AFAIK no, because there's only ever one instance used (normally). It's that instance you're referring to when you write e.g. result { }. So there's never any allocation of the builder when the CE is used.

I agree with @cmeeren. The Struct attribute meant for value types (record types that model data). Here the AsyncResultBuilder is a type that model behaviour.

@AntyaDev Can I close this one?


Why can't we send data the other way as well?

Which version of the AzCopy was used?
10.3.1
Which platform are you using? (ex: Windows, Mac, Linux)
Mac
What command did you run?
copy [from Azure Container to AWS S3]
What problem was encountered?
Error = "the inferred source/destination combination is currently not supported. "
How can we reproduce the problem in the simplest way?
Allow data to flow in either direction.  If this is an economically related decision (i.e. data only flows into Azure), I'd argue the logic is flawed.  I actually have a workflow in Azure that generates a large number of output files.  I need to transfer those to an external client working in AWS.  If I cant find a solution, I'll likely just move my workflow to AWS ;)
Have you found a mitigation/solution?
Nope
Thank you!

Hi @ConservationMetrics, thanks for reaching out!
I'm closing this issue as it's a duplicate of #348, where we are already tracking this feature request.  😃