getting problem in running inbuilt sample code RGB_input_async in pico in arduino....

I receive this on comport while run inbuilt sample code RGB_input_async in pico in arduino....
code description is this..

Description:
Starts a DMX Input on GPIO pin 0 and read channel 1-3 repeatedly
*/
but it shows four lines as show below and in first column 255 value randomly occurred. What is the problem?

09:08:04.175 -> Received packet: 0, 0, 0, 0,
09:08:04.211 -> Received packet: 0, 0, 0, 0,
09:08:04.257 -> Received packet: 0, 0, 0, 0,
09:08:04.304 -> Received packet: 0, 0, 0, 0,
09:08:04.351 -> Received packet: 0, 0, 0, 0,
09:08:04.351 -> Received packet: 0, 0, 0, 0,
09:08:04.398 -> Received packet: 0, 0, 0, 0,
09:08:04.445 -> Received packet: 0, 0, 0, 0,
09:08:04.492 -> Received packet: 0, 0, 0, 0,
09:08:04.539 -> Received packet: 0, 0, 0, 0,
09:08:04.586 -> Received packet: 0, 0, 0, 0,
09:08:04.633 -> Received packet: 0, 0, 0, 0,
09:08:04.680 -> Received packet: 0, 0, 0, 0,
09:08:04.680 -> Received packet: 0, 0, 0, 0,
09:08:04.725 -> Received packet: 0, 0, 0, 0,
09:08:04.772 -> Received packet: 0, 0, 0, 0,
09:08:04.818 -> Received packet: 0, 0, 0, 0,
09:08:04.865 -> Received packet: 0, 0, 0, 0,
09:08:04.913 -> Received packet: 255, 0, 0, 0,
09:08:04.957 -> Received packet: 0, 0, 0, 0,
09:08:04.957 -> Received packet: 0, 0, 0, 0,
09:08:05.004 -> Received packet: 0, 0, 0, 0,
09:08:05.050 -> Received packet: 0, 0, 0, 0,
09:08:05.097 -> Received packet: 0, 0, 0, 0,
09:08:05.144 -> Received packet: 0, 0, 0, 0,
09:08:05.192 -> Received packet: 0, 0, 0, 0,
09:08:05.238 -> Received packet: 0, 0, 0, 0,
09:08:05.285 -> Received packet: 0, 0, 0, 0,
09:08:05.285 -> Received packet: 0, 0, 0, 0,
09:08:05.332 -> Received packet: 0, 0, 0, 0,
09:08:05.379 -> Received packet: 0, 0, 0, 0,
09:08:05.426 -> Received packet: 0, 0, 0, 0,
09:08:05.475 -> Received packet: 0, 0, 0, 0,
09:08:05.521 -> Received packet: 0, 0, 0, 0,
09:08:05.569 -> Received packet: 0, 0, 0, 0,
09:08:05.569 -> Received packet: 0, 0, 0, 0,
09:08:05.616 -> Received packet: 255, 0, 0, 0,
09:08:05.660 -> Received packet: 0, 0, 0, 0,
09:08:05.707 -> Received packet: 0, 0, 0, 0,
09:08:05.754 -> Received packet: 0, 0, 0, 0,
09:08:05.800 -> Received packet: 0, 0, 0, 0,
09:08:05.848 -> Received packet: 0, 0, 0, 0,
09:08:05.895 -> Received packet: 0, 0, 0, 0,
09:08:05.895 -> Received packet: 0, 0, 0, 0,
09:08:05.942 -> Received packet: 0, 0, 0, 0,
09:08:05.989 -> Received packet: 0, 0, 0, 0,
09:08:06.037 -> Received packet: 0, 0, 0, 0,
09:08:06.083 -> Received packet: 0, 0, 0, 0,
09:08:06.130 -> Received packet: 0, 0, 0, 0,
09:08:06.176 -> Received packet: 0, 0, 0, 0,
09:08:06.225 -> Received packet: 0, 0, 0, 0,
09:08:06.225 -> Received packet: 0, 0, 0, 0,
09:08:06.271 -> Received packet: 0, 0, 0, 0,
09:08:06.319 -> Received packet: 0, 0, 0, 0,
09:08:06.369 -> Received packet: 0, 0, 0, 0,
09:08:06.412 -> Received packet: 0, 0, 0, 0,
09:08:06.459 -> Received packet: 0, 0, 0, 0,
09:08:06.507 -> Received packet: 0, 0, 0, 0,
09:08:06.507 -> Received packet: 0, 0, 0, 0,
09:08:06.551 -> Received packet: 0, 0, 0, 0,
09:08:06.596 -> Received packet: 0, 0, 0, 0,
09:08:06.643 -> Received packet: 0, 0, 0, 0,
09:08:06.691 -> Received packet: 0, 0, 0, 0,
09:08:06.737 -> Received packet: 0, 0, 0, 0,
09:08:06.784 -> Received packet: 0, 0, 0, 0,
09:08:06.831 -> Received packet: 0, 0, 0, 0,
09:08:06.831 -> Received packet: 0, 0, 0, 0,
09:08:06.878 -> Received packet: 0, 0, 0, 0,
09:08:06.925 -> Received packet: 0, 0, 0, 0,
09:08:06.972 -> Received packet: 0, 0, 0, 0,
09:08:07.018 -> Received packet: 0, 0, 0, 0,
09:08:07.067 -> Received packet: 0, 0, 0, 0,
09:08:07.114 -> Received packet: 0, 0, 0, 0,
09:08:07.114 -> Received packet: 0, 0, 0, 0,
09:08:07.160 -> Received packet: 0, 0, 0, 0,
09:08:07.207 -> Received packet: 0, 0, 0, 0,
09:08:07.253 -> Received packet: 0, 0, 0, 0,
09:08:07.301 -> Received packet: 0, 0, 0, 0,
09:08:07.349 -> Received packet: 0, 0, 0, 0,
09:08:07.396 -> Received packet: 0, 0, 0, 0,
09:08:07.396 -> Received packet: 0, 0, 0, 0,
09:08:07.442 -> Received packet: 0, 0, 0, 0,
09:08:07.489 -> Received packet: 0, 0, 0, 0,
09:08:07.536 -> Received packet: 0, 0, 0, 0,
09:08:07.581 -> Received packet: 0, 0, 0, 0,
09:08:07.628 -> Received packet: 0, 0, 0, 0,
09:08:07.670 -> Received packet: 0, 0, 0, 0,
09:08:07.708 -> Received packet: 0, 0, 0, 0,
09:08:07.755 -> Received packet: 0, 0, 0, 0,
09:08:07.802 -> Received packet: 0, 0, 0, 0,
09:08:07.802 -> Received packet: 0, 0, 0, 0,
09:08:07.850 -> Received packet: 0, 0, 0, 0,
09:08:07.897 -> Received packet: 0, 0, 0, 0,
09:08:07.944 -> Received packet: 0, 0, 0, 0,
09:08:07.992 -> Received packet: 0, 0, 0, 0,
09:08:08.036 -> Received packet: 0, 0, 0, 0,
09:08:08.082 -> Received packet: 0, 0, 0, 0,
09:08:08.129 -> Received packet: 0, 0, 0, 0,
09:08:08.129 -> Received packet: 0, 0, 0, 0,
09:08:08.175 -> Received packet: 0, 0, 0, 0,
09:08:08.221 -> Received packet: 0, 0, 0, 0,
09:08:08.268 -> Received packet: 0, 0, 0, 0,
09:08:08.315 -> Received packet: 0, 0, 0, 0,
09:08:08.363 -> Received packet: 0, 0, 0, 0,
09:08:08.411 -> Received packet: 255, 0, 0, 0,
09:08:08.459 -> Received packet: 0, 0, 0, 0,
09:08:08.459 -> Received packet: 0, 0, 0, 0,
09:08:08.506 -> Received packet: 0, 0, 0, 0,
09:08:08.553 -> Received packet: 0, 0, 0, 0,
09:08:08.601 -> Received packet: 0, 0, 0, 0,
09:08:08.649 -> Received packet: 0, 0, 0, 0,
09:08:08.695 -> Received packet: 0, 0, 0, 0,
09:08:08.695 -> Received packet: 0, 0, 0, 0,
09:08:08.743 -> Received packet: 0, 0, 0, 0,
09:08:08.791 -> Received packet: 0, 0, 0, 0,
09:08:08.837 -> Received packet: 0, 0, 0, 0,
09:08:08.884 -> Received packet: 0, 0, 0, 0,
09:08:08.930 -> Received packet: 0, 0, 0, 0,
09:08:08.978 -> Received packet: 0, 0, 0, 0,
09:08:09.025 -> Received packet: 0, 0, 0, 0,
09:08:09.025 -> Received packet: 0, 0, 0, 0,
09:08:09.073 -> Received packet: 0, 0, 0, 0,
09:08:09.120 -> Received packet: 0, 0, 0, 0,
09:08:09.167 -> Received packet: 0, 0, 0, 0,
09:08:09.214 -> Received packet: 0, 0, 0, 0,
09:08:09.263 -> Received packet: 0, 0, 0, 0,
09:08:09.308 -> Received packet: 0, 0, 0, 0,
09:08:09.308 -> Received packet: 0, 0, 0, 0,
09:08:09.354 -> Received packet: 0, 0, 0, 0,
09:08:09.401 -> Received packet: 0, 0, 0, 0,
09:08:09.448 -> Received packet: 0, 0, 0, 0,
09:08:09.497 -> Received packet: 0, 0, 0, 0,
09:08:09.541 -> Received packet: 0, 0, 0, 0,
09:08:09.591 -> Received packet: 0, 0, 0, 0,
09:08:09.591 -> Received packet: 0, 0, 0, 0,
09:08:09.635 -> Received packet: 0, 0, 0, 0,
09:08:09.681 -> Received packet: 0, 0, 0, 0,
09:08:09.729 -> Received packet: 0, 0, 0, 0,
09:08:09.777 -> Received packet: 0, 0, 0, 0,
09:08:09.824 -> Received packet: 0, 0, 0, 0,
09:08:09.875 -> Received packet: 0, 0, 0, 0,
09:08:09.875 -> Received packet: 0, 0, 0, 0,
09:08:09.920 -> Received packet: 0, 0, 0, 0,
09:08:09.964 -> Received packet: 0, 0, 0, 0,
09:08:10.011 -> Received packet: 0, 0, 0, 0,
09:08:10.059 -> Received packet: 0, 0, 0, 0,
09:08:10.106 -> Received packet: 0, 0, 0, 0,
09:08:10.153 -> Received packet: 0, 0, 0, 0,
09:08:10.201 -> Received packet: 0, 0, 0, 0,
09:08:10.201 -> Received packet: 0, 0, 0, 0,
09:08:10.248 -> Received packet: 0, 0, 0, 0,
09:08:10.294 -> Received packet: 0, 0, 0, 0,
09:08:10.341 -> Received packet: 0, 0, 0, 0,
09:08:10.387 -> Received packet: 0, 0, 0, 0,
09:08:10.434 -> Received packet: 0, 0, 0, 0,
09:08:10.482 -> Received packet: 0, 0, 0, 0,
09:08:10.482 -> Received packet: 255, 0, 0, 0,
09:08:10.530 -> Received packet: 0, 0, 0, 0,
09:08:10.577 -> Received packet: 0, 0, 0, 0,
09:08:10.623 -> Received packet: 0, 0, 0, 0,
09:08:10.670 -> Received packet: 0, 0, 0, 0,
09:08:10.717 -> Received packet: 0, 0, 0, 0,
09:08:10.765 -> Received packet: 0, 0, 0, 0,
09:08:10.765 -> Received packet: 0, 0, 0, 0,
09:08:10.813 -> Received packet: 0, 0, 0, 0,
09:08:10.861 -> Received packet: 0, 0, 0, 0,
09:08:10.909 -> Received packet: 0, 0, 0, 0,
09:08:10.956 -> Received packet: 0, 0, 0, 0,
09:08:11.004 -> Received packet: 0, 0, 0, 0,
09:08:11.050 -> Received packet: 0, 0, 0, 0,
09:08:11.097 -> Received packet: 0, 0, 0, 0,
09:08:11.097 -> Received packet: 0, 0, 0, 0,
09:08:11.142 -> Received packet: 0, 0, 0, 0,
09:08:11.189 -> Received packet: 0, 0, 0, 0,
09:08:11.237 -> Received packet: 0, 0, 0, 0,
09:08:11.284 -> Received packet: 0, 0, 0, 0,
09:08:11.332 -> Received packet: 0, 0, 0, 0,
09:08:11.379 -> Received packet: 0, 0, 0, 0,
09:08:11.379 -> Received packet: 0, 0, 0, 0,
09:08:11.427 -> Received packet: 0, 0, 0, 0,
09:08:11.475 -> Received packet: 0, 0, 0, 0,
09:08:11.523 -> Received packet: 255, 0, 0, 0,
09:08:11.569 -> Received packet: 0, 0, 0, 0,
09:08:11.617 -> Received packet: 0, 0, 0, 0,
09:08:11.617 -> Received packet: 0, 0, 0, 0,
09:08:11.665 -> Received packet: 0, 0, 0, 0,
09:08:11.713 -> Received packet: 0, 0, 0, 0,

I have the exact same issue with the RGB_input_async example.
If I have the DMX controller sending data, the buffer is always all 0s. If I stop sending DMX data, the code correctly detects that we're not receiving DMX packets. I also tried using the optional callback function as an argument to read_async but, again, the buffer is always empty.
If I run the synchronous read function, buffer is always populated as expected, and I can read the correct values for all channels.
@sagarpateldt did you find a solution for this? Maybe @jostlowe can also give me a pointer to what I could be doing wrong here?
Thanks a lot for the library, by the way!

@sagarpateldt could you share your solution if you found one?

I'm sorry it took me a while to come back to this. I was looking at the issue again today and realized that the problem is that GPIO0 (the default input pin in the example) is also UART_TX. I confirmed this was the issue by not sending data through (or initializing) the UART interface and it worked.

example without UART
#include <Arduino.h>
#include "DmxInput.h"
DmxInput dmxInput;

#define START_CHANNEL 1
#define NUM_CHANNELS 3

volatile uint8_t buffer[DMXINPUT_BUFFER_SIZE(START_CHANNEL, NUM_CHANNELS)];

void setup()
{
    // Setup our DMX Input to read on GPIO 0, from channel 1 to 3
    dmxInput.begin(0, START_CHANNEL, NUM_CHANNELS);
    dmxInput.read_async(buffer);

    // Setup the onboard LED so that we can blink when we receives packets
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
    delay(30);

    if(millis() > 100+dmxInput.latest_packet_timestamp()) {
        return;
    }
    for (uint i = 0; i < sizeof(buffer); i++)
    {
      if (buffer[i] > 127) {
        delay(10);
        digitalWrite(LED_BUILTIN, HIGH);
        delay(10);
        digitalWrite(LED_BUILTIN, LOW);
      }
    }
}

Changing the pin to GPIO15 fixed the issue completely, even with UART enabled.
The following patch changes all examples not to use GPIO0 or GPIO1, as they are used for UART. Please feel free to merge it if you think it makes sense @jostlowe , but please take a closer look at the parallel_output example, as the initialization code is not really nice the way I patched it.
Again, thanks a lot for the great library :)
From 77f2a2102ae6d44803bed29da578b58c49098080 Mon Sep 17 00:00:00 2001
From: Flavio Amieiro<EMAIL_ADDRESS>Date: Thu, 1 Jun 2023 22:17:05 -0300
Subject: [PATCH] Changes DMX pin on examples so they don't conflict with UART

While investigating #26 I realized that the default pin in the examples
(pin 0) is also the TX pin for UART in the microcontroller. Since the
`RGB_async_input` example sends the received data through UART, this was
causing issues reading the data. This commit changes the code so users
who run the async example don't run into the same issue, but also
changes the other examples so sending and receiving data through UART
won't affect the DMX input/output.
---
 examples/RGB_input/RGB_input.ino             | 10 +++++-----
 examples/RGB_input_async/RGB_input_async.ino | 10 +++++-----
 examples/highlight_all/highlight_all.ino     | 10 +++++-----
 examples/parallel_output/parallel_output.ino | 16 ++++++++--------
 4 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/examples/RGB_input/RGB_input.ino b/examples/RGB_input/RGB_input.ino
index 9dd66fe..5bee3b1 100644
--- a/examples/RGB_input/RGB_input.ino
+++ b/examples/RGB_input/RGB_input.ino
@@ -2,9 +2,9 @@
  * Copyright (c) 2021 Jostein Løwer
  *
  * SPDX-License-Identifier: BSD-3-Clause
- *
- * Description:
- * Starts a DMX Input on GPIO pin 0 and read channel 1-3 repeatedly
+ *
+ * Description:
+ * Starts a DMX Input on GPIO pin 15 and read channel 1-3 repeatedly
  */

 #include <Arduino.h>
@@ -18,8 +18,8 @@ volatile uint8_t buffer[DMXINPUT_BUFFER_SIZE(START_CHANNEL, NUM_CHANNELS)];

 void setup()
 {
-    // Setup our DMX Input to read on GPIO 0, from channel 1 to 3
-    dmxInput.begin(0, START_CHANNEL, NUM_CHANNELS);
+    // Setup our DMX Input to read on GPIO 15, from channel 1 to 3
+    dmxInput.begin(15, START_CHANNEL, NUM_CHANNELS);

     // Setup the onboard LED so that we can blink when we receives packets
     pinMode(LED_BUILTIN, OUTPUT);
diff --git a/examples/RGB_input_async/RGB_input_async.ino b/examples/RGB_input_async/RGB_input_async.ino
index b8464cf..533d271 100644
--- a/examples/RGB_input_async/RGB_input_async.ino
+++ b/examples/RGB_input_async/RGB_input_async.ino
@@ -2,9 +2,9 @@
  * Copyright (c) 2021 Jostein Løwer
  *
  * SPDX-License-Identifier: BSD-3-Clause
- *
- * Description:
- * Starts a DMX Input on GPIO pin 0 and read channel 1-3 repeatedly
+ *
+ * Description:
+ * Starts a DMX Input on GPIO pin 15 and read channel 1-3 repeatedly
  */

 #include <Arduino.h>
@@ -18,8 +18,8 @@ volatile uint8_t buffer[DMXINPUT_BUFFER_SIZE(START_CHANNEL, NUM_CHANNELS)];

 void setup()
 {
-    // Setup our DMX Input to read on GPIO 0, from channel 1 to 3
-    dmxInput.begin(0, START_CHANNEL, NUM_CHANNELS);
+    // Setup our DMX Input to read on GPIO 15, from channel 1 to 3
+    dmxInput.begin(15, START_CHANNEL, NUM_CHANNELS);
     dmxInput.read_async(buffer);

     // Setup the onboard LED so that we can blink when we receives packets
diff --git a/examples/highlight_all/highlight_all.ino b/examples/highlight_all/highlight_all.ino
index 615e44f..488a764 100644
--- a/examples/highlight_all/highlight_all.ino
+++ b/examples/highlight_all/highlight_all.ino
@@ -2,9 +2,9 @@
  * Copyright (c) 2021 Jostein Løwer
  *
  * SPDX-License-Identifier: BSD-3-Clause
- *
- * Description:
- * Starts a DMX Output on GPIO pin 0 and sets all channels to max (255)
+ *
+ * Description:
+ * Starts a DMX Output on GPIO pin 15 and sets all channels to max (255)
  */

 #include <Arduino.h>
@@ -20,8 +20,8 @@ uint8_t universe[UNIVERSE_LENGTH + 1];

 void setup()
 {
-    // Start the DMX Output on GPIO-pin 0
-    dmx.begin(0);
+    // Start the DMX Output on GPIO-pin 15
+    dmx.begin(15);

     // Set all channels in the universe to the max allowed value (512)
     for (int i = 1; i < UNIVERSE_LENGTH + 1; i++)
diff --git a/examples/parallel_output/parallel_output.ino b/examples/parallel_output/parallel_output.ino
index d5ce1e7..35511ae 100644
--- a/examples/parallel_output/parallel_output.ino
+++ b/examples/parallel_output/parallel_output.ino
@@ -3,9 +3,9 @@
  * Copyright (c) 2021 Jostein Løwer
  *
  * SPDX-License-Identifier: BSD-3-Clause
- *
- * Description:
- * Starts a 8 DMX Output on GPIO pins 0-7
+ *
+ * Description:
+ * Starts a 8 DMX Output on GPIO pins 2-9
  */

 #include <Arduino.h>
@@ -21,18 +21,18 @@ uint8_t universe[UNIVERSE_LENGTH + 1];

 void setup()
 {
-    // Start the DMX outputs on GPIO-pins 0-7.
+    // Start the DMX outputs on GPIO-pins 2-9.
     // Only 4 outputs can run on a single PIO instance, so
     // the 8 outputs are divided onto the two PIO instances
     // pio0 and pio1

-    for (int i = 0; i < 4; i++)
+    for (int i = 2; i < 6; i++)
     {
-        dmxOutputs[i].begin(i, pio0);
+        dmxOutputs[i-2].begin(i, pio0);
     }
-    for (int i = 4; i < 8; i++)
+    for (int i = 6; i < 10; i++)
     {
-        dmxOutputs[i].begin(i, pio1);
+        dmxOutputs[i-2].begin(i, pio1);
     }
 }

--
2.39.2


Try multiple methods of getting data in asuswrt.

Description:
Try multiple methods of getting data in asuswrt.
Some routers don't support all commands used in this component, so data is retrieved from the commands that run successfully.
Related issue (if applicable): fixes #11108 and potentially #8112
Checklist:
If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass

Hi @PeWu,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

This works form my Router RT-AC53 in ap mode. But (this might be me) this seems to ignore track-new-devices = false.
I got plenty of new devices showing up, but tracking new devices is disabled.

Also there's the issue that apparently I am always at home. There might be a problem when the values are updates.
The interface does an additional step (see here https://github.com/home-assistant/home-assistant/issues/8112#issuecomment-326284578)
var networkmap_fullscan = '<% nvram_get("networkmap_fullscan"); %>';
var fromNetworkmapdCache = '<% nvram_get("client_info_tmp"); %>'.replace(/&#62/g, ">").replace(/&#60/g, "<").split('<');

So you have to call networkmap_fullscan before getting the client info.

I did some more experiments and I observe the same thing as @maweki – the nvram command does not update the device list.
I tried to find what the UI does to refresh the list. It looks like the following shell command line should perform the network full scan (see hints here and here):
$ killall -s SIGUSR1 networkmap

This command does something but it does not refresh the client_info_tmp entry. It does cause networkmap_fullscan to return 1 for a while though.
I think it will be better not to return stale data as it is not very useful so I'll remove the nvram command from this PR.

Doesn't it work with fullscan? That's what the web UI does.

Do you know how to force a full scan from the command line?
nvram get networkmap_fullscan only returns 1 when a full scan is in progress (my interpretation). It doesn't start a full scan. In particular, it returns 1 when a full scan is performed from the web UI.

I don't think so. As I read the code used by the web ui, this is what triggers the scan and updates the client info. It has to be since the webui code has no trigger when data is updated.
I am currently not at home so I can't look right now but when I looked last I think I was pretty sure that there was no other executable trigfered. From the webui.
The one is possibly True/successful in the C interpretation and not some running state or error in the bash interpretation.

My router UI does a POST request to http://x.x.x.x/apply.cgi with action_mode=update_client_list when I open the client list and also periodically, and with action_mode=refresh_networkmap when I click the Refresh button.
I only found a reference to refresh_networkmap here.

I removed the nvram get client_info_tmp command from this PR.
Regarding track_new_devices, I believe this feature should be handled by the platform (device_tracker/__init__.py), not by individual device scanners.

@PeWu correct, that should be a core feature


Reorg directory structure

We need to adjust the code directory structure so that:

Modules are divided more clearly
Hide internal implementations that do not have to be exposed (move to /internal)
Splitting up different usage scenarios, txnkv and rawkv can be imported in separate packages to make the dependencies lighter

mark


My tabs after collapsing are hiding header but i want them below header after collapsing .Any way to achieve that?

Hello,
Native base has introduced this feature,
https://codeburst.io/react-native-parallax-scroll-with-tabs-721feec463c5
<EMAIL_ADDRESS>


IE11 does not accept 0 as a valid length for the flex-basis property.

IE11 appears to have the following bug with flexbox. When using the flex property in IE11, setting a length value of '0' for the flex-basis component of the flex property (e.g. flex: 1 1 0) is not recognized as a valid value, and can cause the browser to ignore the flex property.
This appears to be confirmed by Microsoft's documentation for flex-basis in IE11:
https://msdn.microsoft.com/en-us/library/dn254946(v=vs.85).aspx
See: "Width as specified by a number, followed by a length unit. Negative numbers are invalid."

This was reported as a bug in the YUI compressor: https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port/issues/26

I opened a new PR to note this bug/feature: #2532

FYI flexbugs already lists this one:
https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored

Closing this issue, since the PR got merged.


the result between two cargo-vendor runs changed in few weeks

Not sure whether this is real problem.
My use case is to download all dependencies for e.g. cargo or rust build. After that I create GNU tar archive where I reset time to 1970 and force owner to root. This way I'm able to create unique archive with particular sha256 check sum. I can recreate the same archive even on different computer.
But I have find out the data can differ after few weeks or days. Which is causing problems. It seems that some crater versions were updated in between.
But not sure how it's possible. Original cargo or rust version lists still the same version dependencies.
To be more specific I'm preparing integration of Rust into Solaris where our build system is using sha256 check sum, it caches these archives and it needs to be reproducible.
(example: https://github.com/oracle/solaris-userland/blob/master/components/desktop/firefox/Makefile)

Are you using a lock file between runs of cargo-vendor?

No. I start new workspace totally from scratch.

Ah ok, I believe that's the issue then! A lock file is required to guarantee that you get the same set of dependencies every time, so you'll want to check in and persist Cargo.lock

Ok. It makes sense. I will try to archive also Cargo.lock file. But not sure why it's not included directly in cargo-0.26.0 archive. To me 'cargo' is binary not library?! Thanks!

I see that the issue was already discussed here:
https://github.com/rust-lang/cargo/commit/5c9665f41c6b4d3b99d3b9f8b48a286f5f154692


Where are the snippets?

Snippets are referenced, but where are they?

I am sorry, the code is unusable.
It's not finished yet.
If you want the features described in the repo, you can write your own or submit pull request.


Bloxstrap uninstalled, "used in another process."

So, due to the fact that Byfron blocks Bloxstrap at the moment, i wanted to uninstall it and get the regular ROBLOX version until its unblocked, now it comes up with the error:
Unable to open file for writing: C:/ProgramData/Roblox/Downloads/.part - Another process is accessing this file.
I already tried deleting the things etc, is there another thing that i have to do, since i have deleted bloxstrap the normal uninstall way.

Did you install Bloxstrap into a custom directory?
Open up task manager and kill any Bloxstrap processes, then you'll be able to continue.

Did you install Bloxstrap into a custom directory?
Open up task manager and kill any Bloxstrap processes, then you'll be able to continue.

Did those things and it wasnt in a custom directory.

Bloxstrap is installed into %LOCALAPPDATA%\Bloxstrap by default. If your Bloxstrap installation wasn't in a custom directory, then the folder you mentioned would be from an official Roblox installation. I doubt this is related to Bloxstrap at all if that's the case.

Okay nvm fixed it, deleted the HKEY Registry Keys of Bloxstrap and now roblox is working again, ty anyway. :)

Are you sure that error was coming from Bloxstrap? Doesn't seem like it. Also, Byfron doesn't block Bloxstrap? Where does that statement come from?


Handle All filter when using default filter

@hobbestigrou (related to his previous pr)

Ok for me, I agree.


Kite status bar text disappears when disabling and re-enabling from preferences

What steps will reproduce the problem?
Kite icon disappears from the status bar when enabling and disabling from preferences

Note: Seems like when disabling the provider, the logic inside the client stop method is not setting thread_started to False
https://github.com/spyder-ide/kite-provider/blob/b0e9c978052827aae7f2085042c7e6fa4cd0d4f1/kite_provider/client.py#L72-L76
That prevents starting the thread that handles the connection with Kite when the provider is enabled again:
https://github.com/spyder-ide/kite-provider/blob/b0e9c978052827aae7f2085042c7e6fa4cd0d4f1/kite_provider/client.py#L61-L65

Note: Also, related with the enable/disable providers behavior see https://github.com/spyder-ide/spyder/issues/21462


Fix PHP LongRunning doc

As flagged here: https://github.com/GoogleCloudPlatform/google-cloud-php/pull/756/files/6283b2768d3a792e90dd6e4c3266461663512b43#diff-325d5dff8a69359bdab4f2b7f12eef20R147

Codecov Report

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

@@            Coverage Diff            @@
##             master    #1709   +/-   ##
=========================================
  Coverage     85.54%   85.54%
  Complexity     4398     4398
=========================================
  Files           426      426
  Lines         17400    17400
  Branches       1810     1810
=========================================
  Hits          14885    14885
  Misses         1896     1896
  Partials        619      619

Continue to review full report at Codecov.

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


Unnecessary "releases"

I noticed that you make Github releases on both – strapi/strapi and strapi/strapi-docker repositories. This way you have >1 place to update the versions and it ends up with strapi/strapi-docker not being updated.
I guess we don't need releases in strapi/strapi-docker Github repo, because we have in on Docker Hub and in strapi/strapi.
Less work for you guys and less confusion for us when you forgot to update.

Hi @cadavre, We have dropped making releases on this repo for quite a while.
As you are saying, you can just look at the docker hub tags to know what versions are availabel ;)

IMHO please remove existing Github releases to avoid confusion. :)

@cadavre I will create a new and last release with the right links to avoid deleting work made by previous contributors ;) Thanks for the suggestion 💯


Batch Editing

Hi.
Firstly, thank you so much for your great grid editor. I've just started using it in the past two weeks and it's been great. My client now has a request to do batch editing.
I've been able to get part of it working, but when I click the external "Save Batch" button, I can't get the updated data for each row, only the last row.
See my JSFiddle here https://jsfiddle.net/GlennSuperdude/4u6xp3t3/
(In my real code, I'm using AJAX calls for the CRUD operations, but only using static data for the fiddle.)
When I'm looping over the rows during the save routine, I don't think the current edit row is being set correctly.
Thank you in advance for your help.
Regards,
Glenn.

Sorry, link should have been:
https://jsfiddle.net/GlennSuperdude/4u6xp3t3/88

@GlennSeymon, thank you for the feedback.
Your example doesn't work because jsGrid fields assumes that you edit only single row at a time:
https://github.com/tabalinas/jsgrid/blob/master/src/fields/jsgrid.field.text.js#L58
As you see field stores a reference to the editControl of the last row, so as a result your have only last edited row.
As an alternative look at my suggestion to following issue:
https://github.com/tabalinas/jsgrid/issues/357#issuecomment-232976327
So the user can edit only one row at a time but you don't send data to the server at once accumulating changes. And send them when all batch updates are done.

Thanks for your feedback
I did see this issue (357) but found that the save button for each row needs to be clicked, rather that one button to save all rows.
If this isn't possible, I'll unfortunately have to find another grid plugin.
Thks.
Glenn.

@GlennSeymon  and @tabalinas ,
Thanks for this comments, it helps me a lot. @GlennSeymon, thanks for your jsfiddle.
I have tried something. I have updated that in Glenn's fiddle here : updated fiddle
Now Batch Edit is working. Sorry Glenn but I have updated Edit and Update both. But it will need much more testing with other functionalities. @tabalinas you can help me in that. After then only, we can add this into jsGrid.  #757

@Sachin4dotnet  great. when updated only get fileds edit. How to get all data of row (included data change).


Fix media queries and upgrade Emotion

Changes

Fix the media query generation which breaks on current Emotion versions.
Upgrade Emotion related dependencies to latest versions.

thanks Felix for fixing this!


Return updateResource input on not modified

Coverage increased (+0.001%) to 94.651% when pulling a5a9100a61d90e59122f10c9dbcae6e6eb973c03 on cody-return-user-input-on-not-modified into b57276772e32df9c2dd1b7fc9d7740dbfefeb55b on main.


Come up with a cool name

A cool game always has a cool name :)

Some name I suggest are:

[ ] 1. Inside Out
[ ] 2. Boxed In
[ ] 3. B-World
[ ] 4. Brain-Box
[ ] 5. Box Mania


VTMGo app crashes on startup

I'm testing integration of MicroG within Android-x86, currently being ported to Android 11. A summary of me setup is as follows:

signature spoofing is integrated into the build (fyi, Android 11 patch can be found in [1])
android-x86 running in qemu with virgl, in live mode (aka /data is tmpfs, no data persistence between run)
install GmsCore v<IP_ADDRESS>315
install com.google.android.gsf-8.apk
install com.android.vending-16.apk
launch MicroG settings, go to Self Check, enable everything
adb shell am start -n com.android.vending/.GrantFakeSignaturePermissionActivity, grant permission
go back to MicroG settings -> Self Check, verify all check boxes are ticked
install VTMGo [2]
launch VTMGo app => crash; logcat output can be found in [1]

[1] https://drive.google.com/drive/folders/1wZ0ZSh-m7jLpWUSwcP9MtvgeHvFzbgjN?usp=sharing
[2] https://apkpure.com/vtm-go/be.vmma.vtm.zenderapp

Probably fixed through dbcf70f99ec36e68a886efef5f4552fe0e0d7e7e

Confirmed, app runs fine now. Thanks.


Broken go get github.com/go-swagger/go-swagger/cmd/swagger after PR (#1130)

Problem statement
After pull request Update vendor (#1130), "go get github.com/go-swagger/go-swagger/cmd/swagger"
On go 1.7 is broken
Log
github.com/go-swagger/go-swagger/vendor/github.com/go-openapi/runtime/middleware
../github.com/go-swagger/go-swagger/vendor/github.com/go-openapi/runtime/middleware/router.go:185: undefined: url.PathUnescape
Swagger specification
Steps to reproduce
1) run command go get github.com/go-swagger/go-swagger/cmd/swagger

Environment
swagger version: x.x.x
go version: go1.7
OS:   linux/amd64
Error
Probably the error its on this patch:
   branch = "master"
   name = "github.com/go-openapi/runtime"
   packages = [".","client","flagext","middleware","middleware/denco","middleware/header","middleware/untyped","security"]
-  revision = "af767f4dce066d1bc26dd784dcbe9c8ee6b417ca"
+  revision = "73a94727f26953a79ffd70902d0f24977b6297d1"

Thanks! 👍


[IMPROVEMENT] Batch Job pooling curve is linear and increase too quickly

Should probably be logarithmic and top at 10 or 20 seconds

I sometimes have to wait 1 minute after the batch is completed to get the results

Something like (1000(log(x) + 1))


Add option to set default page to redirect user to after login

Now it always redirects to account-profile-switcher

Hi Alex,
Thanks for the collaboration on this. It seems that the bit of code at the end of members.php:
bx_require_authentication();
header('Location: ' . BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=account-profile-switcher'));
Could be tweeked to send wherever. a varible could pretty easily be assigned to rediect wherever. the question is the best way to implement this. Please let me know your thoughts on this. I'd be happy to contribute.

@Dream16webdesign
Thank you, yes, you can change this, but it isn't recommended since it maybe problems with the upgrade after custom modifications.

By default UNA auto-detects referrer page URL and redirects on that page after login automatically. Redirect to Account Switcher appears only when somebody login directly from member.php page. It means that a user should type URL like the following http://www.domain.com/member.php directly in his browser to get on Account Switcher page. It happens not so often and therefore the setting is not needed. However we decided to change the default redirect to Dashboard page.

Well thanks for getting back to me on this. The original issue stems from the splash page nav menu link going to the login page which then logs in through member.php which redirects to this page. how do we redirect to a different page or any fix for this annoying problem. The login on the bottom of the splash page goes one place and the login at the top of the splash page goes somewhere else

@Dream16webdesign login form almost always redirects to the page where account link in top right corner was pressed. Only when there is no referrer page, then member is redirected to default page:

when user fills-in login form on splash page
when user comes to login form without referrer, or from another site
In all other cases user is always redirected back to the page where he/she clicked on account link in top-right corner.


difficulty implementing diffusion module

I m trying to implement diffusion within my parcels run using the HYCOM ocean model and am running into a few issues whilst following the examples.  I am trying to implement uniform diffusivity using the UniformDiffusionKh module, however the example instructs me to add diffusivity to the fieldset as a constant using the following line:
fieldset.add_constant_field("Kh_zonal", 1, mesh="flat")
yet the documentation suggests there is no 'add_constant_field' class. i have overcome this by using:
fieldset.add_constant("Kh_zonal", 1)
fieldset.add_constant("dres", 0.01)

I hope this is appropriate.
Next, the examples tutorial states that  'The diffusion-step can in this case be computed after or before advection, thus allowing you to chain kernels using the + operator'. However, when I attempt to execute parcels using:
pset.execute(AdvectionRK4 + DiffusionUniformKh,                 # the kernel (which defines how particles move)
                      runtime=timedelta(days=60),    # the total length of the run
                      dt=-timedelta(minutes=1),      # the timestep of the kernel (negative timestep for backwards run)
                      output_file=output_file)

i get the error message:
TypeError: unsupported operand type(s) for +: 'function' and 'function'

Any advice on how I could get this working would be greatly appreciated

Thanks for raising this, @molkjam. For the difference between the example and the documentation, I'm pinging @daanreijnders
For the error that you're getting, that is easy to fix. You will need to convert at least one of the two functions to a Kernel object first, otherwise the + operator is not defined. So change AdvectionRK4 to pset.Kernel(AdvectionRK4), i.e.
pset.execute(pset.Kernel(AdvectionRK4) + DiffusionUniformKh,                 # the kernel (which defines how particles move)
                      runtime=timedelta(days=60),    # the total length of the run
                      dt=-timedelta(minutes=1),      # the timestep of the kernel (negative timestep for backwards run)
                      output_file=output_file)

Thanks for raising this, @molkjam. For the difference between the example and the documentation, I'm pinging @daanreijnders
For the error that you're getting, that is easy to fix. You will need to convert at least one of the two functions to a Kernel object first, otherwise the + operator is not defined. So change AdvectionRK4 to pset.Kernel(AdvectionRK4), i.e.
pset.execute(pset.Kernel(AdvectionRK4) + DiffusionUniformKh,                 # the kernel (which defines how particles move)
                      runtime=timedelta(days=60),    # the total length of the run
                      dt=-timedelta(minutes=1),      # the timestep of the kernel (negative timestep for backwards run)
                      output_file=output_file)

Hi Erik, thanks for your quick response. Unfortunately with your fix it chucks out the following error:
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-4-b56bd1fd64fa> in <module>()
      6
      7 output_file = pset.ParticleFile(name="/{$HOME}/plastics/simulations/test60d.nc", outputdt=timedelta(hours=1)) # the file name and the time step of the outputs
----> 8 pset.execute(pset.Kernel(AdvectionRK4) + DiffusionUniformKh,                 # the kernel (which defines how particles move)
      9                       runtime=timedelta(days=60),    # the total length of the run
     10                       dt=-timedelta(minutes=1),      # the timestep of the kernel (negative timestep for backwards run)

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/kernel.py in __add__(self, kernel)
    455     def __add__(self, kernel):
    456         if not isinstance(kernel, Kernel):
--> 457             kernel = Kernel(self.fieldset, self.ptype, pyfunc=kernel)
    458         return self.merge(kernel)
    459

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/kernel.py in __init__(self, fieldset, ptype, pyfunc, funcname, funccode, py_ast, funcvars, c_include, delete_cfiles)
    150             kernelgen = KernelGenerator(fieldset, ptype)
    151             kernel_ccode = kernelgen.generate(deepcopy(self.py_ast),
--> 152                                               self.funcvars)
    153             self.field_args = kernelgen.field_args
    154             self.vector_field_args = kernelgen.vector_field_args

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in generate(self, py_ast, funcvars)
    428
    429         # Generate C-code for all nodes in the Python AST
--> 430         self.visit(py_ast)
    431         self.ccode = py_ast.ccode
    432

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_FunctionDef(self, node)
    459         for stmt in node.body:
    460             if not (hasattr(stmt, 'value') and type(stmt.value) is ast.Str):  # ignore docstrings
--> 461                 self.visit(stmt)
    462
    463         # Create function declaration and argument list

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_Assign(self, node)
    571     def visit_Assign(self, node):
    572         self.visit(node.targets[0])
--> 573         self.visit(node.value)
    574         if isinstance(node.value, ast.List):
    575             # Detect in-place initialisation of multi-dimensional arrays

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_Call(self, node)
    523         else:
    524             for a in node.args:
--> 525                 self.visit(a)
    526                 if a.ccode == 'parcels_customed_Cfunc_pointer_args':
    527                     pointer_args = True

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_BinOp(self, node)
    655         self.visit(node.left)
    656         self.visit(node.op)
--> 657         self.visit(node.right)
    658         if isinstance(node.op, ast.BitXor):
    659             raise RuntimeError("JIT kernels do not support the '^' operator.\n"

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_Subscript(self, node)
    643         elif isinstance(node.value, IntrinsicNode):
    644             raise NotImplementedError("Subscript not implemented for object type %s"
--> 645                                       % type(node.value).__name__)
    646         else:
    647             node.ccode = "%s[%s]" % (node.value.ccode, node.slice.ccode)

NotImplementedError: Subscript not implemented for object type ConstNode

May this be because Zh_zonal and Zh_meridional and being added as constants (currently set  as 1 for both) not constant fields? if so, can you think of a workaround for this, given the absence of the 'fieldset.add_constant_field' class?
Many thanks,
Molly

Hi Erik, thanks for your quick response. Unfortunately with your fix it chucks out the following error:
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-4-b56bd1fd64fa> in <module>()
      6
      7 output_file = pset.ParticleFile(name="/{$HOME}/plastics/simulations/test60d.nc", outputdt=timedelta(hours=1)) # the file name and the time step of the outputs
----> 8 pset.execute(pset.Kernel(AdvectionRK4) + DiffusionUniformKh,                 # the kernel (which defines how particles move)
      9                       runtime=timedelta(days=60),    # the total length of the run
     10                       dt=-timedelta(minutes=1),      # the timestep of the kernel (negative timestep for backwards run)

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/kernel.py in __add__(self, kernel)
    455     def __add__(self, kernel):
    456         if not isinstance(kernel, Kernel):
--> 457             kernel = Kernel(self.fieldset, self.ptype, pyfunc=kernel)
    458         return self.merge(kernel)
    459

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/kernel.py in __init__(self, fieldset, ptype, pyfunc, funcname, funccode, py_ast, funcvars, c_include, delete_cfiles)
    150             kernelgen = KernelGenerator(fieldset, ptype)
    151             kernel_ccode = kernelgen.generate(deepcopy(self.py_ast),
--> 152                                               self.funcvars)
    153             self.field_args = kernelgen.field_args
    154             self.vector_field_args = kernelgen.vector_field_args

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in generate(self, py_ast, funcvars)
    428
    429         # Generate C-code for all nodes in the Python AST
--> 430         self.visit(py_ast)
    431         self.ccode = py_ast.ccode
    432

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_FunctionDef(self, node)
    459         for stmt in node.body:
    460             if not (hasattr(stmt, 'value') and type(stmt.value) is ast.Str):  # ignore docstrings
--> 461                 self.visit(stmt)
    462
    463         # Create function declaration and argument list

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_Assign(self, node)
    571     def visit_Assign(self, node):
    572         self.visit(node.targets[0])
--> 573         self.visit(node.value)
    574         if isinstance(node.value, ast.List):
    575             # Detect in-place initialisation of multi-dimensional arrays

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_Call(self, node)
    523         else:
    524             for a in node.args:
--> 525                 self.visit(a)
    526                 if a.ccode == 'parcels_customed_Cfunc_pointer_args':
    527                     pointer_args = True

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_BinOp(self, node)
    655         self.visit(node.left)
    656         self.visit(node.op)
--> 657         self.visit(node.right)
    658         if isinstance(node.op, ast.BitXor):
    659             raise RuntimeError("JIT kernels do not support the '^' operator.\n"

/local1/scratch/moja/envs/parcels/lib/python3.6/ast.py in visit(self, node)
    251         method = 'visit_' + node.__class__.__name__
    252         visitor = getattr(self, method, self.generic_visit)
--> 253         return visitor(node)
    254
    255     def generic_visit(self, node):

/local1/scratch/moja/envs/parcels/lib/python3.6/site-packages/parcels/codegenerator.py in visit_Subscript(self, node)
    643         elif isinstance(node.value, IntrinsicNode):
    644             raise NotImplementedError("Subscript not implemented for object type %s"
--> 645                                       % type(node.value).__name__)
    646         else:
    647             node.ccode = "%s[%s]" % (node.value.ccode, node.slice.ccode)

NotImplementedError: Subscript not implemented for object type ConstNode

May this be because Zh_zonal and Zh_meridional and being added as constants (currently set  as 1 for both) not constant fields? if so, can you think of a workaround for this, given the absence of the 'fieldset.add_constant_field' class?
Many thanks,
Molly

I think this is because you made an error in one of your kernels. Did you use a parentheses ([ ]) as if Kh was a Field? You shouldn't add these parentheses if Kh are constants

I think this is because you made an error in one of your kernels. Did you use a parentheses ([ ]) as if Kh was a Field? You shouldn't add these parentheses if Kh are constants

The default Kernel assumes Kh to be Fields, see https://github.com/OceanParcels/parcels/blob/master/parcels/kernels/advectiondiffusion.py#L86-L111
So you should use
fieldset.add_constant_field("Kh_zonal", 1)
fieldset.add_constant_field("Kh_meridional", 1)

The default Kernel assumes Kh to be Fields, see https://github.com/OceanParcels/parcels/blob/master/parcels/kernels/advectiondiffusion.py#L86-L111
So you should use
fieldset.add_constant_field("Kh_zonal", 1)
fieldset.add_constant_field("Kh_meridional", 1)

this bring me back to my original issue:
AttributeError: 'FieldSet' object has no attribute 'add_constant_field'

this bring me back to my original issue:
AttributeError: 'FieldSet' object has no attribute 'add_constant_field'

That is then probably because you don't have the most recent version of Parcels. Depending on how old your version of Parcels is, you could try
fieldset.add_field("Kh_zonal", 1, lon=0, lat=0)
fieldset.add_field("Kh_meridional", 1, lon=0, lat=0)

That is then probably because you don't have the most recent version of Parcels. Depending on how old your version of Parcels is, you could try
fieldset.add_field("Kh_zonal", 1, lon=0, lat=0)
fieldset.add_field("Kh_meridional", 1, lon=0, lat=0)

I am using version 2.2.1.
add_field generated the following error:
TypeError: add_field() got an unexpected keyword argument 'lon'

I am using version 2.2.1.
add_field generated the following error:
TypeError: add_field() got an unexpected keyword argument 'lon'

Oh sorry, should be
fieldset.add_field(Field("Kh_zonal", 1, lon=0, lat=0))
fieldset.add_field(Field("Kh_meridional", 1, lon=0, lat=0))

Oh sorry, should be
fieldset.add_field(Field("Kh_zonal", 1, lon=0, lat=0))
fieldset.add_field(Field("Kh_meridional", 1, lon=0, lat=0))

Hi @molkjam! I forgot to update the documentation for Parcels 2.2.1. The latest update should support fieldset.add_constant_field("Kh_zonal", 1, mesh="flat"), even though it's not present in the documentation yet.

Hi @molkjam! I forgot to update the documentation for Parcels 2.2.1. The latest update should support fieldset.add_constant_field("Kh_zonal", 1, mesh="flat"), even though it's not present in the documentation yet.

@erikvansebille , thanks your workaround worked great! @daanreijnders I have 2.2.1 and fieldset.add_constant_field("Kh_zonal", 1, mesh="flat") is not being recognised

@erikvansebille , thanks your workaround worked great! @daanreijnders I have 2.2.1 and fieldset.add_constant_field("Kh_zonal", 1, mesh="flat") is not being recognised

The tutorial indeed includes features that are not available yet in the latest release (2.2.1 at the moment). This includes the fieldset.add_constant_field() method, which was added in #967.  It's a convenience method for the lines Erik just sent. Sorry for the confusion!

The tutorial indeed includes features that are not available yet in the latest release (2.2.1 at the moment). This includes the fieldset.add_constant_field() method, which was added in #967.  It's a convenience method for the lines Erik just sent. Sorry for the confusion!

Thank you both for the advice and clearing up any confusion

Thank you both for the advice and clearing up any confusion


Beautify the code

Issue
Beautify The Code #108
Description

Used Prettier - Code formatter

Name: Prettier - Code formatter
Id: esbenp.prettier-vscode
Description: VS Code plugin for prettier/prettier
Version: 2.3.0
Publisher: Esben Petersen
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

Managed some of the long codes manually.

thank you sir


Mac NuGet package targets wrong platform

Reported by spotcatbug
See Forum post http://forums.xamarin.com/discussion/31650/cocossharp-1-3-1-on-mac-os-no-go
During the update of the iOS unified release for <IP_ADDRESS> the target platform for the Mac NuGet was modified to be platform lib/Xamarin.iOS10.  This needs to stay at lib/net40.

Successfully added MacOS.<IP_ADDRESS> and MacOS.PCL.<IP_ADDRESS> to Classic Mac projects.


CORE-13866: Increase Kakfa timeouts

The assumption is that the current timeouts are too slow and are leading to increased rebalancing.  This has been through limited testing using the performance tests.
More testing should help stabilise these numbers and it's likely that as other areas improve we'll be able to refine them further.

Can we try and get metrics showing us the rebalances and when they happen relative (time-wise) to a "run" under load, before and after?  Put them on the JIRA.
I'd like to know the distribution (is it all at the beginning?), and how much improvement these changes bring.

Can we try and get metrics showing us the rebalances and when they happen relative (time-wise) to a "run" under load, before and after? Put them on the JIRA.
I'd like to know the distribution (is it all at the beginning?), and how much improvement these changes bring.

I have some runs with these changes and with a baseline which is a HEAD.
Baseline:

With changes:

It's only a single run of each but it appears better.

I can pop the above in the JIRA but it's not really a lot of information.  I'll see if I can get more than a headline number from that dashboard

I can pop the above in the JIRA but it's not really a lot of information. I'll see if I can get more than a headline number from that dashboard

Put some results in the JIRA.  Running a few other tests as well, but they'll be ancillary to this change


Add skeleton as round-start species

I believe Skeleton is balanced and should be playable. It is beginner friendly, I personally hate the hunger, thirst and oxygen mechanics of the game.

Halloween was last october bruh
April fools on the other hand...

Skeleton is not really balanced... they can just go into spaced areas for no cost...

Keeping Skeletons for just Halloween seems like developers can't come up with other ideas for Halloween

Skeleton is not really balanced... they can just go into spaced areas for no cost...

they can't be revived if they actually die and can't be healed with chems

Skeleton is not really balanced... they can just go into spaced areas for no cost...

they can't be revived if they actually die and can't be healed with chems

They can be healed with milk.

Sure not being able to be revived is a fair point, but the New Life Rule doesn't apply to them, since they're left as a skull on the ground, I can imagine a lot of syndies getting outed for that, which doesn't sound fun to me personally.
I love playing a skeleton, but I think skeletons should be left as a limited thing personally.

Sure not being able to be revived is a fair point, but the New Life Rule doesn't apply to them, since they're left as a skull on the ground, I can imagine a lot of syndies getting outed for that, which doesn't sound fun to me personally.
I love playing a skeleton, but I think skeletons should be left as a limited thing personally.

Perhaps can just make a specific rule for that?

Go to ideaguys.


Command: SPAWNBOSS - Boss Plantera Needs Check

Spawning this boss needs a check for if player is in correct biome (Jungle) and if game mode is hardmode. Well maybe hardmode check shouldn't be required as other hardmode bosses can safely be spawned in a pre-hardmode world.

Spawning plantera outside of jungle biome is possible and works. The problem is that plantera is then enraged and much harder. But maybe this is desirable, Closing issue since it's not really a bug and someone could want the functionality.


Fix crash on shader constant initialization on MinGW compiler

Fix https://github.com/godotengine/godot/issues/93387 (only the crash, the constants parsing should be rewritten in future). As a workaround, it works.

@matheusmdx would you like to check it?

Cherry-picked on latest master and i can confirm this stop the crash

Thanks!


UID Missing?

Trying to use the cloud based command, but getting problem with a UID?
mac:roomba rby$<EMAIL_ADDRESS>Passw0rd!!
2024-03-19 20:50:15 INFO [Roomba.Password] Using Password version 2.1
2024-03-19 20:50:15 INFO [Roomba.Password] reading/writing info from config file ./config.ini
2024-03-19 20:50:15 INFO [Roomba.Password] waiting on port: 5678 for data
2024-03-19 20:50:15 INFO [Roomba.Password] Robot at IP: <IP_ADDRESS> Data: {
"ver": "3",
"hostname": "Roomba-3165050861141710",
"robotname": "Roomby Foyer",
"ip": "<IP_ADDRESS>",
"mac": "80:C5:F2:CE:82:0C",
"sw": "3.5.62",
"sku": "R690020",
"nc": 0,
"proto": "mqtt",
"cap": {
"ota": 1,
"eco": 1,
"svcConf": 1
}
}
2024-03-19 20:50:15 INFO [Roomba.Password] Robot at IP: <IP_ADDRESS> Data: {
"ver": "3",
"hostname": "Roomba-3167C91801016540",
"robotname": "Roomby Gym",
"ip": "<IP_ADDRESS>",
"mac": "80:C5:F2:C4:8B:58",
"sw": "3.5.62",
"sku": "R690020",
"nc": 0,
"proto": "mqtt",
"cap": {
"ota": 1,
"eco": 1,
"svcConf": 1
}
}
2024-03-19 20:50:15 INFO [Roomba.Password] Robot at IP: <IP_ADDRESS> Data: {
"ver": "3",
"hostname": "Roomba-3176C30460837590",
"robotname": "Roomby Lounge",
"ip": "<IP_ADDRESS>",
"mac": "D0:C5:D3:DC:A1:9A",
"sw": "3.5.62",
"sku": "R690020",
"nc": 0,
"proto": "mqtt",
"cap": {
"ota": 1,
"eco": 1,
"svcConf": 1
}
}
2024-03-19 20:50:25 INFO [Roomba.Password] Getting Roomba information from iRobot aws cloud...
2024-03-19 20:50:26 DEBUG [urllib3.connectionpool] Starting new HTTPS connection (1): disc-prod.iot.irobotapi.com:443
2024-03-19 20:50:26 DEBUG [urllib3.connectionpool] https://disc-prod.iot.irobotapi.com:443 "GET /v1/discover/endpoints?country_code=US HTTP/1.1" 200 1789
2024-03-19 20:50:26 DEBUG [urllib3.connectionpool] Starting new HTTPS connection (1): accounts.us1.gigya.com:443
2024-03-19 20:50:26 DEBUG [urllib3.connectionpool] https://accounts.us1.gigya.com:443 "POST /accounts.login HTTP/1.1" 200 211
Traceback (most recent call last):
File "./password.py", line 294, in
main()
File "./password.py", line 291, in main
get_passwd.get_password()
File "./password.py", line 119, in get_password
iRobot.login()
File "/Users/robby/.homebridge/Roomba980-Python/roomba/getcloudpassword.py", line 107, in login
uid = response['UID']
KeyError: 'UID'

I guess it’s not logging in to your Roomba account.
did you enter your Roomba account login and password correctly? You may need to put “ around your password if it has special characters in it.

Thanks for the reply. I tried adding the quotation marks (at first I thought I would just go change my irobot password but they're requiring special characters now). I got pretty much the same thing:
Brian:roomba robby$ ./password.py<EMAIL_ADDRESS>"2345FGGG!!"
2024-03-20 20:52:27 INFO [Roomba.Password] Using Password version 2.1
2024-03-20 20:52:27 INFO [Roomba.Password] reading/writing info from config file ./config.ini
2024-03-20 20:52:27 INFO [Roomba.Password] waiting on port: 5678 for data
2024-03-20 20:52:27 INFO [Roomba.Password] Robot at IP: 192.168.1.XX Data: {
"ver": "3",
"hostname": "Roomba-3176C30460837590",
"robotname": "Roomby Lounge",
"ip": "192.168.1.XX",
"mac": "D0:C5:D3:DC:A1:9A",
"sw": "3.5.62",
"sku": "R690020",
"nc": 0,
"proto": "mqtt",
"cap": {
"ota": 1,
"eco": 1,
"svcConf": 1
}
}
2024-03-20 20:52:27 INFO [Roomba.Password] Robot at IP: 192.168.1.XX Data: {
"ver": "3",
"hostname": "Roomba-3167C91801016540",
"robotname": "Roomby Gym",
"ip": "<IP_ADDRESS>",
"mac": "80:C5:F2:C4:8B:58",
"sw": "3.5.62",
"sku": "R690020",
"nc": 0,
"proto": "mqtt",
"cap": {
"ota": 1,
"eco": 1,
"svcConf": 1
}
}
2024-03-20 20:52:27 INFO [Roomba.Password] Robot at IP: 192.168.1.XX Data: {
"ver": "3",
"hostname": "Roomba-3165050861141710",
"robotname": "Roomby Foyer",
"ip": "192.168.1.XX",
"mac": "80:C5:F2:CE:82:0C",
"sw": "3.5.62",
"sku": "R690020",
"nc": 0,
"proto": "mqtt",
"cap": {
"ota": 1,
"eco": 1,
"svcConf": 1
}
}
2024-03-20 20:52:37 INFO [Roomba.Password] Getting Roomba information from iRobot aws cloud...
2024-03-20 20:52:37 DEBUG [urllib3.connectionpool] Starting new HTTPS connection (1): disc-prod.iot.irobotapi.com:443
2024-03-20 20:52:38 DEBUG [urllib3.connectionpool] https://disc-prod.iot.irobotapi.com:443 "GET /v1/discover/endpoints?country_code=US HTTP/1.1" 200 1789
2024-03-20 20:52:38 DEBUG [urllib3.connectionpool] Starting new HTTPS connection (1): accounts.us1.gigya.com:443
2024-03-20 20:52:38 DEBUG [urllib3.connectionpool] https://accounts.us1.gigya.com:443 "POST /accounts.login HTTP/1.1" 200 212
Traceback (most recent call last):
File "./password.py", line 294, in
main()
File "./password.py", line 291, in main
get_passwd.get_password()
File "./password.py", line 119, in get_password
iRobot.login()
File "/Users/robby/.homebridge/Roomba980-Python/roomba/getcloudpassword.py", line 107, in login
uid = response['UID']
KeyError: 'UID'

I’m not sure what to tell you. It works, because I just tried it, with no problems.
The reason you get the error is that aws is returning an error message, which does not have the ID field in it. The usual cause is incorrect login or password.
If you want to see the error message, you can edit getcloudpassword.py and add after line 106:
print(“response: {}”.format(response))

Which will print the error message you get back. Usually it says “invalid loginID or password”.
If you want to see what you are sending, add at line 97:
Print(“data: {}”.format(data))

Which should show what you are sending for login and password. Likely still something to do with the special characters in your password.
Linux does not like special characters in strings…

Thanks. I’ll definitely take a look. But you’re able to edit/save your iRobot password without a special character?

On Mar 21, 2024, at 4:06 PM, Nick Waterton @.***> wrote:
I’m not sure what to tell you. It works, because I just tried it, with no problems.
The reason you get the error is that aws is returning an error message, which does not have the ID field in it. The usual cause is incorrect login or password.
If you want to see the error message, you can edit getcloudpassword.py and add after line 106:
print(“response: {}”.format(response))
Which will print the error message you get back. Usually it says “invalid loginID or password”.
If you want to see what you are sending, add at line 97:
Print(“data: {}”.format(data))
Which should show what you are sending for login and password. Likely still something to do with the special characters in your password.
Linux does not like special characters in strings…
—
Reply to this email directly, view it on GitHub https://github.com/NickWaterton/Roomba980-Python/issues/127#issuecomment-2013736497, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFTMFOGDVOBCJZGICHQFW7DYZNDWHAVCNFSM6AAAAABE6UMVEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJTG4ZTMNBZG4.
You are receiving this because you authored the thread.

Yes.

Can confirm. Ran into the same issue with two (2) special characters at the end of the password. Removed both and it ran fine.
Thank you!


Azure Storage File Service

Tests here are only testing the basic functionality. Will continue working on tests.

Next step: Update to the right test json file.

Close this one as we moved to another PR


Feature Request: Make restage more like push

A log of things about an application can be specified at push time that are not possible to change outside of a push.  If I don't want to modify the application just some stuff about the application it is a pain to acquire the previously pushed application code just to make a change of buildpack for example.
It would be nice to be able to change things like buildpack, healthcheck. startup timeout, stack, etc outside of pushing the application code.  Perhaps some of those push parameters can be added to a command like cf restage?

Hi @youngm,
Thanks, that's an interesting feature. cf scale has a few push parameters already. Let's think about the best UX: duplicating parameters over cf push, cf scale and cf restage, or maybe giving cf push an option to skip uploading app bits?

@dkoper One issue with an option to simply skip uploading app bits is you then have some functional duplication between push, scale, and route management as you pointed out.  Perhaps we could put a bunch of these orphan push command options into a new cf update-app command.  But, that feels like it is a little too model driven of an approach for my liking but could work.
Another options is to conceptually divide cf scale as changes that can be made to a running application that typically wouldn't require a restage.  cf create-route and cf map-route as a way to manage an applications route post deploy.  And conceptually assign option that typically require a restage to cf restage and potentially create other commands for other options.  Here are some candidate option assignments I could see:
CF Scale:

Memory
Number of instances
Disk Limit

CF Restage:

Stack
Startup Command
Buildpack

CF Map Route:

Domain
Host
No Route
No Hostname

I'm not sure where to put these options.  Perhaps a new command(s)?  Given discussions of more health check customizability in the future [0] perhaps we can punt on these?

Startup Timeout
Health Check Type

The problem with this approach is it isn't as future proof and direct but does set up a model to support modifying these commands into the future.
Thoughts?
Mike
[0]<EMAIL_ADDRESS>

Hi @dkoper sorry for bumping an old issue.  But, with work started on v3-push I thought it prudent to remind you of this issue.
The issue has a very specific proposal that may not be applicable anymore.  But, I hope you will take into account the underlying issue of not being able to update certain application properties without repushing.  If the v3 command suite supports updating applicable application attributes without re-pushing then I'll consider this issue closed.
Do you have any current design docs on the v3 commands I can look at?

Hi @youngm
I'm sorry I missed this bump. I do now and then revisit your suggestion in this proposal, it's an interesting one.
You will have seen by now what the v3 commands look like.

Looking at the create a build, we could add buildpack(s) and stack to v3-stage.
To set the startup command we'd now point people to the Procfile, so you'd still have to upload your app bits.
Startup timeout, referring to the healthcheck timeout, might fit well in set-health-check as the timeout may be different for e.g. process vs http path. I wonder if the timeout setting is used much though. It's description (and attribute name in the app manifest) has been so confusing I would have expected to have received more reports about it overtime.

Thanks for revisiting @dkoper .

Adding buildpack to v3-stage works for me.  Stack should probably go here too, eh?
The command moving to Procfile makes sense also so we can forget about that one.
I do have a few customers using Startup timeout though I had to point it out to them as a solution to their problem.  I'm not to picky about where to put that one as long as it is possible to set outside a push. :)  That said, set-health-check I think would be appropriate since I believe the same health check is used to determine startup as is used to determine crash.  Only the startup one says how long to invoke the health check to determine if the app is initially up.  So, I'd be good with that one.

Not being able to specify buildpack without pushing continues to be a problem for my org.  And Stack will soon be an issue once the new ubuntu stemcells come out.  Thanks again for coming back to this issue!
Mike

@XenoPhex So, did you add "buildpack" and "stack" to v3-stage?  And did you add setting startup time to something?

We're in the process of creating a v3-apply-manifest function which [should] act the same way the manifest works in the current version of push. The v3-apply-manifest command will allow you to set all the properties of a given manifest prior to restaging or restarting.
While the workflows are slightly different in the v3 world, I believe the v3-apply-manifest will let you do what you're looking for, except for the fact that it requires a manifest. But the manifest is/has always been additive, so it'll only have to contain property updates - not the app itself.
Note: This command will require a new version of the CC as it hinges on the apply_manifest endpoint which we are in the process of creating with the CAPI Team.

@XenoPhex I can see how v3-apply-manifest would work.  But it would probably be easier to execute curl commands. :)
Any reason why you wouldn't want to:

Add a buildpack parameter to v3-stage.
Add a startup timeout parameter to set-health-check?

This issue was created because I experienced pain in these 2 areas.  I don't think v3-apply-manifest helps much to alleviate that pain unless using v3-apply-manifest is the strategic way to specify most any app configuration cli users might want to change.  Thoughts?  I think this issue should be re-opened.


Add converter class for model into SQLite and GraphQL components

Synced with Daniel on this, opening issue to refactor some of this conversion logic into some converter class to be used to take model field types and values into SQLite and GraphQL components
Originally posted by @lawmicha in https://github.com/aws-amplify/amplify-ios/pull/317

This was mostly done by the PR #334. I'll close this one for now and we can track future improvements of the serialization code in a new ticket.


Stop setting a null webview client

From documentation: This value cannot be null.
See: https://developer.android.com/reference/android/webkit/WebView#setWebViewClient(android.webkit.WebViewClient)

Sorry I've missed that one! Do not hesitate to ping me on stale reviews like this 😎


[Feature] Change cursor on gauge

What problem does this feature solve?
I got a gauge defined like this:
{
  type: 'gauge',
  min: 0,
  max: 10,
  startAngle: 180,
  endAngle: 0,
  itemStyle: {
      color: '#6b7280',
  },
  pointer: {
      width: 2,
      length: '65%',
      offsetCenter: ['0', '8%']
  },
  progress: {
      show: true,
      overlap: true,
      roundCap: true
  },
  axisLine: {
      lineStyle: {
          width: 5,
          color: [
              [0.75, '#71717a'],
              [1, '#a1a1aa']
          ]
      },
  },
  splitLine: {
      show: false,
      distance: 0,
      length: 10
  },
  axisLabel: {
      show: false
  },
  axisTick: {
      show: false
  },
  detail: {
      show: false,
  },
  radius: '100%',
  center: ['50%', '75%'],
},

I'd like to change the cursor of the chart's canvas element to be a pointer but I don't find anything in the docs about this.
If I hover the canvas, the cursor is the default OSX-cursor.
What does the proposed API look like?
Actually, I am not a good enough JS dev to make a good proposal here :-(

@plainheart Do you consider supporting it？Or is there any solution ？


Malware Scanner Throws Error

Hi,
we have a CAP/Fiori Elements application with cap-js/attachment and deployed it to cloud foundry. We used object store to save the attachments.
The attachment association is added to an entity which is draft-enabled. The attachment reuse UI is shown and I could upload a text file, but I see an error in console and when I save the draft, I get an error.
The CF log shows me:
06T07:49:03.064Z","msg":"❗Uncaught Found 0 matching services","stacktrace":["VError: Found 0 matching services","at Object.serviceCredentials (/home/vcap/app/node_modules/@sap/xsenv/lib/xsservices.js:121:11)","at getCredentials (/home/vcap/app/node_modules/@cap-js/attachments/lib/malwareScanner.js:91:16)","at scanRequest (/home/vcap/app/node_modules/@cap-js/attachments/lib/malwareScanner.js:31:23)","at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"],"jse_shortmsg":"Found 0 matching services","jse_info":{},"message":"Found 0 matching
The file is nevertheless there and after some time, the save works.
Could you please give advice?
Best regards,
Christine

Hi @ch-sap,
You have to bind the malware scanning service instance from btp, as it is enabled by default in the plugin.
Another option is to disable it in the package.json if you want to by setting attachments.scan = false
Hope this helps.
Best Regards,
Muskan

Hello Muskan,
is this documented somewhere?
I found these documentations:

https://cap.cloud.sap/docs/plugins/#attachments: There is almost no information, at least a direct and visible link to the plugin github repo should be available.
https://github.com/cap-js/attachments: The malware example is there, but only for local deployment. I miss the information how the malware service is named and how it works with MTA.yaml for cloud foundry.

It would be great if you could enhance the documentation.
Is this the malware scanning service, I shall use?
https://discovery-center.cloud.sap/protected/index.html#/serviceCatalog/malware-scanning-service?service_plan=clamav&region=all&commercialModel=btpea
Could you please change the behavior that a clear error message is shown in cloud foundry log and not just a dump?
Best regards,
Christine

Hi @ch-sap,
Yes, this is the service, you can create an instance and bind it to the application.
We will also enhance the error handling in our plugin
Best Regards,
Muskan

We have enhanced the error handling


Issue where active document expiration during enumeration causes early return

I think I found an issue with the Redis.OM nuget package where enumerating the collection will return early if documents are actively expiring while enumerating.
Repro Steps:
You can find a somewhat minimum reproducible project here: https://github.com/jrpavoncello/RedisOMTestBed
On latest Redis Stack and Redis.OM, if you:

Set up an index (the POST /Person/CreateIndex endpoint in the test bed)

Insert 10,000 documents, let's call each document a  Person, and set half of them to randomly expire in the next minute (/Person/CreateIndex would already have done this for you)
Example:

  // Create an even distribution so that people are expiring in the middle of enumeration
  var expirationMilliseconds = Random.Shared.Next(msToCreateEveryPerson, msToCreateEveryPerson + msToAllowForTesting);
  await database.KeyExpireAsync($"{nameof(Person)}:{person.Id}", TimeSpan.FromMilliseconds(expirationMilliseconds));

Enumerate the whole index via something like:  await foreach(var person in redisConnectionProvider.RedisCollection<Person>(2000)) until it's done enumerating (GET /Person/EnumeratorTest_GetFirstPerson in the test bed w/ default values)
Throw an exception if the number of documents returned is less than 4999 (10,000 / 2 - 1)

You will find that the exception gets thrown while documents are actively expiring. The enumerator will stop early with anywhere between 1800-1999 documents (i.e. not 10,000, and less than the chunk size).
I think I've found this is because the SearchResponse interprets those null documents returned by RedisSearch as (docArray.Length < 2) which skips the document so then RedisCollectionEnumerator interprets "documents count less than the chunk size" as "we're done enumerating, don't get the next chunk".
Once the documents are done actively expiring, Redis.OM will start working again it'll give you the expected 5000 documents every time.
Versions tested
Redis Stack version: Latest

Redis.OM nuget package version: Latest (0.5.4)
Proposed Fix
Maybe SearchResponse could expose a property to allow RedisCollectionEnumerator to detect when any documents were skipped. If any documents were skipped, adjust the offsets as if all documents were read for that chunk, and grab the next chunk. If the next chunk is empty and no documents were skipped then we know we're done.

Hi @jrpavoncello - thanks for opening this, your analysis is spot-on, RediSearch nulls out fields if they are caught up by the index and expired before they are actually materialized out of the index.
I think your solution is spot on too. Have a number of skipped documents and base whether to go and get the next chunk on that and the number of returned documents to the enumerator.

@slorello89 Awesome, thanks for the confirmation. Are you able to provide some kind of rough ETA on fixing this or where this falls priority-wise for your team? I'm certainly open to taking a shot at this if it wouldn't be able to be fixed in the next week or so, but I haven't started the effort yet.

@jrpavoncello,  just pushed v0.5.5 - thanks for submitting!


Severe performance issues in WinUI 3

Describe the bug
Getting some brutal performance issues in all versions of WinUI 3, including the latest 1.0 Preview 1. Running the following on CompositionTarget.Rendering with a completely empty window consistently yields results between 29 and 31ms:
PerformanceCounter.Stop(); //PerformanceCounter is an instance of class Stopwatch
Console.WriteLine(PerformanceCounter.Elapsed.TotalMilliseconds + "ms");
PerformanceCounter.Restart();

For comparison, if I do exactly the same in UWP XAML I get results in the ballpark of 0.5ms - that's 60 times faster than WinUI 3, which's current framerate (equivalent to ~33fps) is not acceptable even for a desktop UI.
Steps to reproduce the bug
public App()
{
    InitializeComponent();
    CompositionTarget.Rendering += PerformanceTest;
}

private Stopwatch PerformanceCounter = new();
private void PerformanceTest(object Sender, object Event)
{
    PerformanceCounter.Stop();
    Console.WriteLine(PerformanceCounter.Elapsed.TotalMilliseconds + "ms");
    PerformanceCounter.Restart();
}

Expected behavior
At minimum, I expect the average user's PC to produce at least 60fps (16.6ms) in an empty window, ideally being able to match any common refresh rate. As shown by the tests above, a PC with considerably above-average specifications produces framerates that are well below what the average user that would consider acceptable.
Screenshots
No response
NuGet package version
No response
Windows app type

[ ] UWP
[X] Win32

Device form factor
Desktop
Windows version
Insider Build (22000.194)
Additional context
Tested on a machine with the following specs:
OS: Windows 11 Pro (22000.194)
GPU: NVIDIA GeForce GTX 1080ti
CPU: AMD Ryzen 5 2600
RAM: 2x8GB DDR4, 3000MHz

@MikeHillberg and @codendone

Well over a year now, and WinUI 3 rendering perf is still too slow to consider it being usable for certain classes of application :(
Really wish it were open source so the community could fix it themselves...

A fix for the core issue is included in the 1.3 release, released April 12th. If you are still seeing low framerates on high refresh monitors using 1.3, please log a new issue, as it is likely a different scenario and we should track it separately.

@bpulliam While I'm glad it's finally fixed, this really shouldn't have taken 18 months to get to the point where WinUI 3 could be used for basically expected stuff like playing videos or camera previews (which also meant the same for MAUI apps BTW).
I think some kind of project management retrospective may be in order to find out what went wrong here. It may have technically just been a performance issue, but one serious enough that our company couldn't commit to developing on the platform. Even more concerning than the bug itself was the lack of acknowledgement that this was even being looked at, which is particularly important given the community's inability to deal with these things themselves.


feat(dev): alembic check

Implements wrapper for check command.
Refs: https://alembic.sqlalchemy.org/en/latest/autogenerate.html#running-alembic-check-to-test-for-new-upgrade-operations
Refs: https://alembic.sqlalchemy.org/en/latest/api/commands.html#alembic.command.check
Signed-off-by: Mike Fiedler<EMAIL_ADDRESS>

Note: this check should not be marked as required, since there are cases where we want to allow for a code-side removal (which would generate a migration) and merge that PR, and ship the database migration after the code no longer relies on it.

You can see a failing run here, where I introduce a code change that has no associated migration:
https://github.com/pypi/warehouse/actions/runs/10394102434/job/28783297165?pr=16483


force_trigger remap not working

If you're having trouble with NCM2, Please provide the following information
along with your detailed issue description:
OS
"Oracle Linux Server 7.5"
neovim :version output
NVIM v0.3.1-1-g489d32f2b
Build type: RelWithDebInfo
LuaJIT 2.0.5
Compilation: /usr/bin/gcc-5 -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -DMIN_LOG_LEVEL=3 -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-c
olor=auto -Wno-array-bounds -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/home/travis/build/neovim/bot-ci/build/neovim/build/config -I/home/travis/build/neovim/bot-ci/build/neov
im/src -I/home/travis/build/neovim/bot-ci/build/neovim/.deps/usr/include -I/usr/include -I/home/travis/build/neovim/bot-ci/build/neovim/build/src/nvim/auto -I/home/travis/build/neovim/bot-ci/build/neovim/build/include
Compiled by travis@travis-job-ecc960f4-8e53-44e6-a8e8-9587ed80f885

Minimum vimrc
" [standard install of ncm2 using vim Plug
inoremap <C-space> <C-r>=ncm2#force_trigger()<cr>

Issue
In trying to implement the force_trigger function, I get the error unknown function ncm2#force_trigger

Solution
I believe the issue is that I was trying to use :source $MYVIMRC to check changes in my init.vim. Once I quit out and restarted neovim, the issue disappeared.


[Proposal] Change handler consistency

Here's a quick snapshot of our change handlers:
Checkbox: onChange(evt) { console.log(evt.target.checked); }
Input: onChange(evt) { console.log(evt.target.value); }
Menu: onItemSelect(selectedItem: object)
Modal: onClose(closeSource: string)
Pagination: onPageChange?: (nextPage: number, prevPage: number)
Popover: onOpen(), onClose()
RadioGroup: onChange(evt) { console.log(evt.target.value); }
Select: onChange(evt, params)  { console.log(params.selectedOptions) }
Slider: onChange(evt, value) { console.log(value) }
TextArea: onChange(evt) { console.log(evt.target.value); }
As you can see, there's a pretty significant amount of variation between components. It would probably be good for us to make these more consistent, or at least develop some guidelines around what to use when.
I'd like to make a case for gravitating towards the following API long term:
onChange(value, event, meta)

If this is a form control with a value, just pass that directly as the first argument. This prevents people from needing to remember how to dig into the event object like evt.target.checked or evt.target.value, etc. It also works better for components like multiple Select or Slider where the event doesn't actually have the form control value.
Event is second. I'd argue if you have the value first, event is rarely needed. It can also be confusing for something like multiple Select, where things like removing a tag technically trigger a change event. Or for pagination where clicking back/next or selecting a page from the dropdown can both trigger page changes.
Meta is third. This is an object that can include things like previous value (if useful), or any other metadata that may be useful to the user.

The only benefit I can think for keeping event as the first argument is that it matches what people expect when using a native html element, but in many cases our components are not native html elements and the event can come from multiple different types of dom interactions. I'd rather be consistent within our own components than consistent with native elements.
Curious to hear what folks think about this – do you agree there's a need to standardize? Are there downsides with the api proposed in this issue?

Thanks for putting this together David!
As I see, moving to a standardized change handler makes users' life a lot simpler. The only thing I'd change is the order of the arguments to be the following: onChange(event, value, meta), because of:

more intuitive - if you write native change handlers, you'll get the event as the first too
more widespread - examples include materiual ui, gestalt or garden

While I agree that in most cases we'd only use the value, being consistent with native apis and other component libraries outweighs the cons for me.

more intuitive - if you write native change handlers, you'll get the event as the first too

I agree it's more similar to native, however in my opinion the frustration users would experience when seeing the inconsistency of event objects outweighs the desire align with native. Our <Select>, for example, does not emit native select change events and if a user tried to access event.target.value it may not be available, this could mislead and confuse many users. Similarly, the events emitted by Pagination/Slider/Datepicker/etc components will not have any information related to the value. I would not describe these cases as "intuitive", on the contrary I think passing the value first is much more intuitive, even if it doesn't match the native APIs.

more widespread - examples include materiual ui, gestalt or garden

I'm not sure it's actually that consistent among libraries. evergreen, atlaskit, react-select, react-dates, and others seem to use value-first. Since there's not widely accepted standard, at the end of the day we should probably do what is easiest fo users.

makes sense David, thanks for the extra information 👍 - it seems I've only checked the libraries which reinforced my point :facepalm:

Maybe controversial opinion here. If we're building for the future anyway - and we're not entirely trying to mimic native handlers, why not go all the way to object params i.e. onChange({value, event, meta}) so we can forgo order altogether and allow users to just pick out what they need?
I agree that we should come to some sort of standardized API for the non-native change handlers.

i like this approach a lot @abmai

That's a big improvement over event-first I think. With this paradigm we may not need the explicit meta property anymore–those properties could just be added to the main object onChange({prevValue}).
I do wonder what this object should be named if its not being destructured. Maybe we could use meta for that? onChange(meta: {})

What about data?

In my recent designed components value was not popular, or it was not a primitive type (object for instance). So I would leave event as first argument. Sometimes value is found in event itself. So my preference to leave only two arguments: event and meta, which may contain any extra information helpful for consumption, including the value itself

In my recent designed components value was not popular, or it was not a primitive type (object for instance). So I would leave event as first argument. Sometimes value is found in event itself.

By the same reasoning, sometimes value is not found in the event (select, slider, pagination, datepicker, etc), so event is "not popular" in those cases. By encouraging users to use the explicit value property we'd reduce the cognitive overload they have when implementing different components.
I think Anh's API does a pretty good job of balancing the concern of whether event or value should come first – they're both available if necessary, it's consistent across all components, and the value is readily present.

@schnerd  what should we do if there is no value for onChange handler (or even other handlers)? Set it to undefined ?

Just leave it out. Modal onClose for example: onClose({event, source})

What would be the benefit of calling it data and what would be the benefit of calling it  event?

Calling it event makes sense semantically, but when reading code/docs people might initially think it's the normal event object until they read further – it seems like a different name would reduce ambiguity.
Also originalEvent might be the react synthetic event, if users want the real native event for some reason they might have to do event.originalEvent.nativeEvent which feels a bit gnarly.
Oleg called it params in Select, which could be good. It's a tossup for me between that and data.

That makes sense - @nadiia would you be ok with data or params?

In terms of follow-ups (once we determine the final object name - I don't really have a preference there), looks like this will be a breaking change.
There are some other breaking changes that I'd like to get in as well. Should we plan for a v2.0.0, and gather API change proposals somewhere?

Just created a 2.0.0 milestone - just add any issues/prs to it that you'd like to include

So I am for one argument as well. Imo, more than 2 arguments becomes confusing of purpose.
One param arg is more flexible.

@schnerd @abmai @blackswanny actually, do we want to have a 2.0.0 milestone?
How about we just do major bumps for this, and for the menu too? Then we wouldn't have to wait for merging PRs, so we could move faster with addressing these changes. The user of this library would have to update their usage for either way, just that if we release a major whenever we are ready, they can do it in smaller batches.
What do you think?

@gergelyke Ok. nit: usually next major version means some complete change in framework.

strictly speaking, it just means an incompatible API change

Hm, maybe we can still do a "milestone" release, but apply some sort of cadence to major version bumps, so we're not just bumping major versions all the time?
My worry is that a lot of the components are still being battle-tested, whether through our own integration or not, and we might need to evolve the API a handful of times in the next few months. How do we make sure we don't end up with baseui v5.0.0 by end of the year? Or is that not really something we should be concerned with (which could be a totally valid approach)?
Thoughts?

I wouldn't be concerned with that - as I see that's just a number. The smaller the API surface for any given major version, the simplest it will be for consumer to upgrade.
What's your take on it @schnerd @nadiia ?

Just discussed with @gergelyke in chat, we agree that since we're still under pretty heavy development, we should optimize to move faster and bump major versions as often as needed. Once we are more stable (and baseui is used by more internal apps), we can slow down to a better major release train. What does everyone else think?

all good. Just in case if anyone used our baseui already one of the ways is to do a pre-release version (npm suffixed), so they won't update it automatically and wont take breaking change, send release email and only after remove pre-release suffix from version

all good. Just in case if anyone used our baseui already one of the ways is to do a pre-release version (npm suffixed), so they won't update it automatically and wont take breaking change, send release email and only after remove pre-release suffix from version

Major bumps should already prevent these accidental upgrades for existing users so I don't think we need to do a pre-release. What other cases were you thinking of?

no other. What is major bump in this case? we change signature of handlers, so user has to change usage of handlers as well

@schnerd do you want to take this on, or do you want us to prio it for one of the next sprints?

that sounds good, thanks!

It was released in 4.0.0


chore(master): release 1.4.3

:robot: I have created a release beep boop
1.4.3 (2023-03-23)
Miscellaneous

deps: update peter-evans/enable-pull-request-automerge action to v3 (e236b15)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/docker-shared-services/releases/tag/v1.4.3 :sunflower:


Cannot login on linux platform, but it is ok on windows

2023/10/19 17:39:59.210 [D]  | <IP_ADDRESS>| 403 |   1.512234ms| nomatch| POST     /api/login

Post data to /api/login, but reponse 403
{"application":"app-built-in","organization":"built-in","username":"admin","password":"123","autoSignin":true,"type":"login"}

@i0gan show your:

Demo video
Browser URL
Host field of the 403 request
Origin field of the 403 request

It has Cypress UI test for both PR and direct commits: https://github.com/casdoor/casdoor/tree/master/web/cypress/e2e
The community has its development cycle and pace. If you don't like frequent new commits, just stay on a old code branch and avoid updating it.
I can't reproduce your issue on Ubuntu 22.04 and http://localhost:8000

Without further input as asnwering my questions, this issue will be closed.

@hsluoyz Thanks bro for your patient answer!


MemAccessUtils: handle the case of enum with no operand in findOwnershipReferenceAggregate

This fixes a crash when trying to compute the immutable scope of an address which comes from an Optional.none.
rdar://90119694

@swift-ci smoke test

@swift-ci benchmark

@eeckstein thank you. I've hit this myself because I remember being surprised that FirstArgOwnershipForwarding didn't have an arg. Not sure why I didn't get in the fix.


Codeigniter session not working on android chrome

Hi, am having a problem with saving sessions on chrome android browser. The system logs a user in but it doesn't redirect to dashboard page which is accessible when a user is logged in. Am using codeigniter version 3.1.9. Any help of how I can fix the problem will be quite appreciated. Elvis.

Perhaps if you provided for information & details. Perhaps even the source code...

This is a bug tracker. You should seek help on our forums instead.
And be more descriptive; CI doesn't have a "dashboard" or "login" in it, so you're basically just saying "something I built doesn't work".


Update _Mods-Functions.ps1

Rewritten Uninstall-ModsApp function
One of Linters still complains about huge blocks of copy-pasted script.
That should help.

I let @KnifMelti have a look as it is his main part. But for me looks ok :)

I let @KnifMelti have a look as it is his main part. But for me looks ok :)

As stated in Readme.md under mods all that is just examples of what you can do.
A script Template and Mods Functions are included as an example to get you started...
No support, no guarantee...
...so, whatever feels right 👍

For sure I personally do not want to see those pesky warnings from linters. The greener, the better.
If this project expands over time (and t will) then we need to keep the noise level as low a possible.
IMHO

Also. with expanded logging (https://github.com/Romanitho/Winget-AutoUpdate/pull/597) individual editors and tinkerers should have a much easier life.


Collapse element text during includesText

Trim white-spaces from element text before comparing to expected result
see: #104

can you add corresponding test for those cases?

I've repeated all of the original tests but with irregular spacing.
Do you think it's right to duplicate these, or should I merge them?

looks good, thanks! :)


[BUG]: USER REGISTRATION

When I registered the first time as a lawyer, I got a confirmation that I am registered and it is waiting for approval.

But when I logged in as a  Nyay Mitra, I could not see the application as pending to approve.
The second time I did the registration- following the exact same process, however, it worked. Not sure what the glitch was that it didn't work the first time

@Ramu-kandimalla i am not able to reproduce this issue. @Beehyv-Vinod  can you please try to reproduce this issue and make a recording for the steps and also the network details.


⚠ LPDM Handbook (hosted on Divio) has degraded performance

In d558016, LPDM Handbook (hosted on Divio) (https://repohubdev.tk) experienced degraded performance:

HTTP code: 500
Response time: 5481 ms

Resolved: LPDM Handbook (hosted on Divio) performance has improved in c3cbda1.


[go-guideline] Pagers aren't supposed to be interfaces.

As per conversation with @jhendrixmsft, Pagers are not supposed to be interfaces.

(@jhendrixMSFT is making changes in this area now, so I'm fairly certain what I had here is outdated. We'll revisit and update after that design is complete)


Refresh on release

Currently pages refresh when the page is pulled down. This doesn't feel natural — it should refresh on release instead.

Are you referring to all pages that use PullToRefresh like the events screen/repository screen/org screen?

Yes, as far as I know this happens on all screens.

What does "refresh on release" mean?

@lex111 i think @andrewda means when you release the screen so put away your finger the refresh action should start, right?

Yea. Almost all apps I know of refresh when you let go, not when you pull up. Example:

@andrewda thanks, now I understand what you, although it's unusual for me, or I'm just used to the fact that now :smile:

So all pull to refresh functionality uses the RefreshControl (either directly or through FlatList as a onRefresh prop). So on iOS - it works lovely in my opinion

However if I'm not mistaken, the last time I tried with Android it acted a little weirdly. It wasn't really pulling the list was it? It just shows the loading indicator on pull and that's it. @andrewda @lex111 are you noticing the same thing?
Attached an android tag to this ticket but let me know if you happened to also be referring to iOS @andrewda

Wait @housseindjirdeh try on a profile or repository. That's where it acts strangely for me (on iOS).

Yeah when you pull down and don't leave you finger it refreshes the content and acts a bit strange


Start-SshAgent hangs when module is being loaded

When I run powershell.exe, it hangs. If I comment out Start-SshAgent in profile.example.ps1, it stops hanging.
If I call Start-SshAgent manually in ISE, the SSH agent is added successfully, but it produces the following output:
ssh-add.exe : Identity added: C:\Users\MyUser\.ssh\id_rsa
(C:\Users\MyUser\.ssh\id_rsa)
At C:\Users\MyUser\Code\posh-git\GitUtils.ps1:285 char:25
+         if ($sshPath) { & $sshAdd $sshPath }
+                         ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Identity added:...MyUser\.ssh\id_rsa):
   String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

This output does not appear when the module is being loaded.
Stepping through the code, everything seems ok. I don't know if these two issues (hanging and NativeCommandError output) are related, but it does seem like a strange coincidence.

Open since Jun 2013? Well..
I'm having the same issue on PowerShell ISE startup:

Any help?

The error generate in ISE is harmless.  *nix utilities have a habit of using stderr to output info.  ISE converts all stderr output to an ErrorRecord.   This is an old enough issue (starth-sshagent hanging) and given that OpenSSH support on Windows provides an ssh-agent Windows service, I'm closing this.  If someone runs into this issue again, I suggest trying the posh-sshell module to see if the issue still exists.  If it does, file an issue in https://github.com/dahlbyk/posh-sshell.