Chipset ICN2037 / Driver 5958

Hello, I bought this panel with SMD 2525 : https://fr.aliexpress.com/item/32836331716.html?spm=a2g0s.90423<IP_ADDRESS>f6c37cu1lnO
I am able to diplay something (1 line on 2) but unable to diplay test_pattern !
The seller said me to use 5958 decoding, i think it is that : http://www.ti.com/lit/ds/symlink/tlc5958.pdf
I send you picture the chips :

When I unplugg A, B and C pins, and I touch them with my fingers, the test_pattern appears sometimes. Strange...

Here is a video of unplug A pin : https://photos.app.goo.gl/4xqDg5gXukx6tXMZA

I try to connect A, B, C to GND and to VCC, no way... The only way to get the test pattern is touching the wire with my fingers..

Could you help me to understand datasheet of ICN2037 : http://en.chiponeic.com/content/details36_245.html
and state graphs : https://www.mikrocontroller.net/attachment/392914/ICN2037.pdf
For 74HC245 chip : https://assets.nexperia.com/documents/data-sheet/74HC_HCT245.pdf
And RT5957 : http://www.dlfushi.com/uploads/201805/5b03e7bc77f3a.pdf
thank you !

The datasheet of 74HC245 specify that it has 3 states output (High Impedance) . I modify the code like that :
 if (_mux_pattern==BINARY)
  {
    if (value & 0x01){
	  pinMode(_A_PIN, OUTPUT);
      digitalWrite(_A_PIN,LOW);
    }else{
	  pinMode(_A_PIN, INPUT);
	  digitalWrite(_A_PIN, HIGH);
	}

    if (value & 0x02){
	  pinMode(_B_PIN, OUTPUT);
      digitalWrite(_B_PIN,LOW);
    }else{
	  pinMode(_B_PIN, INPUT);
	  digitalWrite(_B_PIN, HIGH);
	}

    if (_row_pattern>=8)
    {
	  if (value & 0x04){
			pinMode(_C_PIN, OUTPUT);
			digitalWrite(_C_PIN,LOW);
		}else{
		  pinMode(_C_PIN, INPUT);
		  digitalWrite(_C_PIN, HIGH);
		}
    }

With this code I can display Test_pattern, but nothing else...

I think it is a problem of voltage level. I will order 3,3->5v level shifter.

No difference with the level shifter.
Any idea ?

If it works if you touch the wire it sounds like a grounding issue. Make sure that esp32 and panel ground are connected property.

Thanks you, I was my first idea, but no way. I grounded, all unused pins and ESP32 to power supply ground, no way ! The only pins that I don't ground are Hub75 outputs... I will try !

it does not work

I think the issue is about the mux. Could you explain me in which order the chips are linked :  ICN2037 , 74HC245, RT5957. Thank you.

Sorry ... very busy atm ....

I read this in the datasheet :

9.3 Device Functional Modes
After power on, all OUTXn of TLC5957 are turned off. All the internal counters and function control registers are
initialized. Below is a brief summary of the sequence to operate TLC5957, just give users a general idea how this
part works. After that, the function block related to each step will be detailed in following sections.

According to required LED current, choose BC and CC code, select the current programming resistor RIREF.
Send WRTFC command to set FC register value if the default value need be changed.
Write GS data of line 1 into GS data latch. Using LATGS command for the last group of 48bit GS data
loading, the GS data written just now will be displayed.
Input GCLK continuously, 2
N GCLK (N>=9) as a segment. Between the interval of two segments, supply
voltage should be switched from one line to next line accordingly.
During the same period of step4, GS data for next line should be written into GS data latch. Using LATGS
command for the last group of 48bit GS data loading.
Repeat step 4-5 until it comes to the last line for a multiplexing panel. Input 2
N GCLK (N>=9) as a segment,
at the same time, GS data for 1
st line should be written into GS data latch. Using LINERESET command for
the last group of 48bit GS data loading.
Repeat step 4 through 6

the datasheet : http://www.ti.com/lit/ds/symlink/tlc5957.pdf
Do you know if there is any difference with your library ?

Chip ICN2037 is a 16 bits output register, your library use 8 bits , that's right ?
What should I modify in the code for 16 bits ? thanks

Seems to be related to issue 119 and the ICN 2037 chip although these should be fully compatible according to data sheets and don't require the triple clocking like the fm6126 and icn2038s. I have trying to work through the code and see where it fails. If I look at the comments by Brian in his article the issue relates to pin E required even though 16 scan, but I have set that and still not working. Can happily populate the even numbered rows 0,2,4,6 but not the odd 1,3,5.

Thank you, I set 1/8 scan , because with 1/16 a white pix because 3 pix red, blue, screen. I connect ABC pins, E si grouded and D is usefull...

hello, here is the result of :
display.fillScreen(WHITE);

@texynz : as you say  : Can happily populate the even numbered rows 0,2,4,6 but not the odd 1,3,5.

Hi ..maybe this is related to https://github.com/2dom/PxMatrix/issues/119 ? You could try adding some delay...

thanks, i read it. I try adding 1/2 µs,  before/after, A and C mux, no way

Instead of using the fillscreen function can you try just populating the rows manually in a for loop. As it is a timing issue, the fillscreen maybe adding additional timing.

@texynz  thank you, I try :
  for(int i=0; i<32; i++)
  {
  display.drawPixel(0, i, BLANC);
  delay(500);
  }

strange result for a vertical line populating : https://photos.app.goo.gl/7nxpjen948Jk1UgK8
I try the same with a horizontal line populating and I is OK.

You can try the latest master. I added an option to control the delay in every stage of the multiplexing.
Try adding display.setMuxDelay(0,1,0,0,0); after display.begin() .

Thank you for your work.
I try it, but no way,  it has no effect, the same for a vertical line populating : https://photos.app.goo.gl/7nxpjen948Jk1UgK8
I try with :
display.setMuxDelay(1,0,0,0,0);
display.setMuxDelay(0,1,0,0,0);
display.setMuxDelay(0,0,1,0,0);
display.setMuxDelay(1,1,1,0,0);
display.setMuxDelay(0,5,0,0,0);

The mario screen : some lines are missing, others are clone :

hello, when I unplug Bmux wire, some new lines appears 3 times :

I try to modify code of mux and latch, no way ! Any idea to modify the code of scan pattern ? thanks

Ok...try to re-assign the B Wire to a differen pin

thank you for your help, same issue with pins 21, 22 or 23

Hello,
Some new test, with this code :
for(int y=0; y<32; y++)
{
  display.drawLine(0,y,y,y, BLANC);
  delay(500);
}

line 1 should have 1 pixel,
line 2 should have 2 pixels,
...
However, i get this, with pin Bmux connected :

same code with pin Bmux unplug :

any idea ?

expected result (did with another panel model) :

I think the issue don't provide from ICN2037 chip, but from RT5957 like in this post: https://community.pixelmatix.com/t/led-module-p2-128-64-1-32-driver/414/5

I have A new driver chip screen with ICND2038S, but I use driverchip “shift”, it works fine. but there is no detail about the driverchip register info.
ICN2038S_datasheet_CN_2017_V1.3.pdf

@pyzimmer ... Do you have a data sheet?

Thank you, I compare the two datasheets, the only differnence I seen is OE time = 60ns for ICN 2037 instead of 40ns for ICN2038 . I will try to increase OE_pin activation.

Yes @2dom : https://github.com/2dom/PxMatrix/issues/117#issuecomment-515672955

Thank you, I compare the two datasheets, the only differnence I seen is OE time = 60ns for ICN 2037 instead of 40ns for ICN2038 . I will try to increase activation time of OE_pin.

ohmm, i have visited the chip's official website,  ICN2038 is a little different with ICN2038S, with suffix "S", have LAT registers, ICN2038 none.

I try another test :
for(int y=0; y<32; y++)
  {
   i++;
   if(i==1) color= RED;
   if(i==2) color= GREEN;
   if(i==3) color= BLUE;
   if(i==4) {color= WHITE; i=0;}
   display.drawLine(0,y,y,y, color);
  delay(500);
  }

the result :

when I unplug Bmux :

when I unplug Amux :

Hello, I found something : the chip RT5957 replace classic 74HC138 chip for multiplexing. This chip use a DATA/CLOCK pin instead of ABC pins. But I have no idea how to modify the code...
I send you an english translation of the chinese datasheet :
RT5957.zh-CN.en.pdf

I have the same issue. And will happily help with testing.

I think A, B and C are actually DATA, CLK and LATCH of an shift register used for muxing.
I guess A is DATA, because leaving it floating actually shifts out random noise activating all lines randomly,
Can you trace A, B, and C to actual chip pins with a multimeter / by inspection?

Hello, you are right :
A,B,C pins are connected to A0,A1,A2 of the 74HC245.
Then B0,B1,B2 pins of 74HC245 are connected to LCK, BK, DIN pins of RT5957.
LCK and BK are connected to one RT5957 chip, and DIN to another RT5957 chip. (there are 4 RT5957 chips)

I send you an english translation of the chinese datasheet :
RT5957.zh-CN.en.pdf

@pyzimmer you may try https://github.com/xsrf/PxMatrix/tree/shift-mux , I've added SHIFTREG as additional mux pattern via https://github.com/xsrf/PxMatrix/commit/b91bbd4d4f55346e30fa8cb3320ea82f6b91ed32
Just use this within pattern_test etc:
  display.begin(16); // or 32 ...
  display.setMuxPattern(SHIFTREG); // must be set after begin()!

Performance is pretty bad, it takes 45µs to shift out 16 bits for the mux...
The RT5957 datasheet didn't mention if data is clocked in / latched on rising or falling edge so I just guessed.

Btw. if this works, rewiring could speed up performance and allow us to use SPI hardware for the muxing too.
Option 1) Joining CLK+A and DATA+C together on the first panel would allow using SPI in parallel for muxing and pixels. We would send out up to 4 Bytes of data via SPI for mux (before or after Pixeldata is sent and latched), then latch B. This would also free up 2 Pins on the ESP (only one needed instead of A,B,C)
Option 2) Connect CLK(OUT) of the last panel to A(IN) on the first panel, DATA(OUT) of the last panel to C(IN) on the first panel and LATCH(OUT) of the last panel to B(IN) on the first panel.
This would require us to send up to 4 Bytes for muxing prepended to the Pixeldata. There MAY be a small issue because the propagation delay of the data from the Input of the first panel to the output of the last panel MAY require a tiny guard delay between latching and enabling LED outputs.
This would however free up all muxing pins on the ESP (A,B,C, ... not needed)

it seems good, but flashing (some frames are missing on the video)  : https://photos.app.goo.gl/DWrPRg9NXvByzgSV6

Very good job : https://photos.app.goo.gl/UQMMxsuhDiBzuu8AA
I am going to do more test...

Thx, at least a steady row selection :) But that's only the first mux selection. What happens when all four lines turned white? Is it repeating the same but with all four lines offset by one?
The display clearly is an 1/8 mux btw, so try to use begin(8)... not sure what kind of ZIGZAG pattern this is though.

the result :

Do you need video of complete pattern_test ?
I have to emulate 4 panels for pattern :
display.begin(8);
display.setMuxPattern(SHIFTREG);
display.setScanPattern(LINE);
display.setPanelsWidth(4);
I'll try with 3 panels...
Thanks a lot !!!

I think we can skip the full pattern test :)
If you have some performance measurements let me know... I'll try to implement a faster method.

@pyzimmer I've moved to Hardware SPI now for muxing via https://github.com/xsrf/PxMatrix/commit/c34b1b38439277456ab8eeeff63597bf4cdf1c99 , you may try the latest version of https://github.com/xsrf/PxMatrix/tree/shift-mux
Be aware, this one requires rewiring!!
Pin A of the Panel input must be connected to CLK.
Pin B of the Panel input still is connected to the ESP Pin labeled B in the code.
Pin C of the Panel input must be connected to DATA.
Now Muxing and Pixel-Data share the same SPI bus. This frees two pins on the ESP.

Performances are quite the same, I can refresh a complete panel of 192x32 pixels every 100ms :

Thank you , I'll try this tomorrow :

@pyzimmer I've moved to Hardware SPI now for muxing via xsrf@c34b1b3 , you may try the latest version of https://github.com/xsrf/PxMatrix/tree/shift-mux
Be aware, this one requires rewiring!!
Pin A of the Panel input must be connected to CLK.
Pin B of the Panel input still is connected to the ESP Pin labeled B in the code.
Pin C of the Panel input must be connected to DATA.
Now Muxing and Pixel-Data share the same SPI bus. This frees two pins on the ESP.

Hello,
It does not work, the video of test_pattern : https://photos.app.goo.gl/zs7azTvtNrFv5QVA7
Furthermore, rewiring is not very convenient when using dupont cable. Or is it possible to bridge 2 output pins on ESP ?

Hmm, the video shows that the mux data actually got clocked into the pixeldata and the mux is not working... not sure why this happened. Have you swapped the latch pins?
Please check the wiring? It should look like this:

DATA+C share the same DATA Output of the ESP
CLK+A share the same CLK Output of the ESP
B is still connected as usual.
I know that connecting dupont cables to two pins is harder, a breadboard might help :)
This is the actual timing measured in regular update mode on my ESP8266:

It should clock in the data for the mux and latch the mux. Then it should clock in all data for the pixels and latch these...
One difference between ShiftOut() and HSPI is that ShiftOut had the data active on rising and falling edge. HSPI only on rising edge:
ShiftOut:

HSPI:

But that should only create a line shift in worst case...

I guess I'll implement both methods anyway to be compatible with existing wiring/boards for those who can accept the lower refresh rate caused by shiftout. But I'd be interested if it actually would work with shared SPI.

Just FYI, here is a comparison between ShiftOut and SPI speed @ 20MHz. It takes more than twice as long to just select the mux, than it takes to shift out RGB Data for 128 Pixels.

In terms of wiring, the sequential muxing approach would actually be easier and more compatible... It would require three additional connections from the output of the last panel to the input of the first panel, as mentioned two days ago:

Actually, both wiring should work with exactly the same code... The only code difference is that PIN_B is not needed in the sequential one 🤷♂

@xsrf Amazing work! I will hopefully get time this weekend to test! 👍

Great work @xsrf ... Thanks for looking into this

I check my wiring, It is good.
Maybe it is because :

I use an ESP32 ?
I use 3 panels of 3264 for total 32128
my config is : display.setPanelsWidth(12); (pattern to emulate 4 little panels per panel)

I'll try your sequential wiring this afternoon

I don't think ESP32 or ESP8266 would make much of a difference.
The latching pulse would be shorter because of the higher cpu frequency, but its length is the same for shiftout and SPI, so if it worked with the shiftout one, it should work with SPI too.
Maybe the shift register that does the muxing isn't as fast as the ones for the pixels. You may try to lower the SPI datarate e.g. to 2MHz just for testing... But with so many panels that may actually cause the watchdog to reset the CPU because it spends too much time with sending data...
#define PxMATRIX_SPI_FREQUENCY 2e6
#include <PxMatrix.h>

I try with sequetial wiring, I is not better : https://photos.app.goo.gl/5NnexyGFxLynS23W6
I try with 2Mhz SPI, no change.
Sorry

Interesting... I don't get why the mux data ends up in the pixels.
Are you using the pattern_test? Maybe that's the problem.
Have you tried with one of your regular sketches? displayTestPattern does some low level stuff that breaks the mux selection. That would actually explain the pattern :)

Yes It was test_pattern.
Here is "ChroPro!" text :

instead of :

okay, is this parallel or sequential wiring? Are you using fast update or not?

Picture was sequential, parallel does the same.
Yes I use FastUpdate, without it get this :

I had to increase SPI freq to 16 Mhz, this can explain colored pixels.
Below 16Mhz my ESP crash

Colored pixels can't be explained by this. This means that pixeldata actually got corrupted, usually because of noise on the data/clock lines. This is also a typical issue if your supply voltage is too high.
The ESP has 3.3V voltage levels. The logic on the panels typically is 5V and to register a logic level as HIGH it must typically be 0.7*Vcc which is 3.5V if you run on 5V. So all logic on the panels is already driven outside the specs...
But I guess you haven't changed anything on your power supply? If you can adjust your 5V supply, try to go lower and make sure your ESP has at least 3.3V. Just to make sure...
I need some time to think about what might cause pictures like this, especially the one with the red ghosting.... :)

Okay,
I try again with parallel wiring : I get no diplay....
I don't have adjustable power suply
My power supply was 5.2v
I try with another of 4.9v -> same result
My ESP have 3.3v

Hmm.. I've updated the code: https://github.com/xsrf/PxMatrix/tree/4fae26a12178a86949a12da6831dc248ab83eddf
You can now select from three mux patterns, SHIFTREG_ABC, SHIFTREG_SPI_PA and SHIFTREG_SPI_SE.
SHIFTREG_ABC is the one that used shiftout() and requires the regular wiring of A,B,C from the ESP to the display. Hope this one still works ;)
I'll do more investigations on timing. One critical factor actually is the time between latching row/pixel data and enabling outputs. This should be as high as possible...
The sequential wiring with three panels actually introduces a propagation delay for the row mux selection that may cause the row to be selected after LEDs were enabled.

So, just to be clear here... Parallel/sequential wiring gives you exactly the same result.
fast_update on creates ghosting/bleeding across all 8 muxed rows which is most visible on red channel.
fast_update off creates actually the intended result but with random twinkling colorful pixels?
Can you provide the complete code for the ChroPro example? I'll grad an ESP32 and do some timing measurements there...
Also, despite the fact that it works most of the time, I wouldn't recommend a 5.2V power supply. Everything above 5V is way out of spec. The panel I have already starts twinkling at ~5.05V.

So, just to be clear here... Parallel/sequential wiring gives you exactly the same result.

not exactly, but near

fast_update on creates ghosting/bleeding across all 8 muxed rows which is most visible on red channel.

yes

fast_update off creates actually the intended result but with random twinkling colorful pixels?

yes

Also, despite the fact that it works most of the time, I wouldn't recommend a 5.2V power supply. Everything above 5V is way out of spec. The panel I have already starts twinkling at ~5.05V.

There are 3 chips 74HC245 on every input pin, this chip play as level converter, no ?

Can you provide the complete code for the ChroPro example? I'll grad an ESP32 and do some timing measurements there...

my code :
//#define double_buffer false  // = false pourse libraire < 1.5, ligne commentée pour libaririe >= 1.5
#define PxMATRIX_SPI_FREQUENCY 16000000
#define PxMATRIX_MAX_HEIGHT 32
#define PxMATRIX_MAX_WIDTH 192  // obligatoire à partir de la v1.5 pour 192px
#define PxMATRIX_COLOR_DEPTH 1
#include <PxMatrix.h>  // https://github.com/2dom/PxMatrix
uint8_t display_draw_time=70;  // temps d'affichage (70). Ignoré avec FastUpdate. Diminuer si aucun affichage, mais cela réduit la luminosité
uint16_t temps_rafraichissement=2000; // temps entre 2 rafaichissements (2000 µs) augmenter si aucun affichage, mais cela réduit la luminosité (2600 minimum pour 192*32 avec luminostié de 1800 lux)
#ifdef ESP32
#define P_LAT 4 // 22 // STB
#define P_A 19
#define P_B 23
#define P_C 18 // seulement pour scan 1/8, 1/16, 1/32
#define P_D 5 // seulement pour scan 1/16, 1/32
#define P_E 15 // seulement pour scan 1/32
#define P_OE 2 // STB
// CLOCK = SH = 14
// DATA = R1 = 13
#define SPI_BUS_MISO 21
#define SPI_BUS_CLK 22
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
#endif
// Pins for LED MATRIX
PxMATRIX display(192,32,P_LAT, P_OE,P_A,P_B,P_C);
uint16_t NOIR = display.color565(0, 0, 0);
uint16_t BLANC = display.color565(255, 255, 255);
#ifdef ESP32
void IRAM_ATTR display_updater(){
// Increment the counter and set the time of ISR
portENTER_CRITICAL_ISR(&timerMux);
//display.displayTestPattern(display_draw_time);
//display.displayTestPixel(display_draw_time);
display.display(display_draw_time);  // temps d'affichage (70) diminuer si aucun affichage
portEXIT_CRITICAL_ISR(&timerMux);
}
#endif
void setup() {
display.begin(8); //{4,8,16,32}
display.setMuxPattern(SHIFTREG);  // {BINARY, STRAIGHT, SHIFTREG}
//display.setScanPattern(VZAG); // {LINE, ZIGZAG, ZAGGIZ, WZAGZIG, VZAG}
display.setPanelsWidth(12);
//display.setFastUpdate(true);  // aligne correctement les pixels sur la matrice OBLIGATOIRE pour 192*32
#ifdef ESP32
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, temps_rafraichissement, true); //temps entre 2 rafaichissements (2000 µs)
timerAlarmEnable(timer);
#endif
display.setTextColor(BLANC, NOIR);
display.setTextSize(4);
display.setTextWrap(false); // ne pas sauter de ligne
afficherFond(".       ");
delay(1000);
afficherFond("ChroPro!");
delay(1000);
}
void loop()
{
}
// Afficher sur fond noir (SUPER sur ESP32 même avec rafraichissement 0,1s / clignote sur ESP8266)
void afficherFond(String message)
{
display.setTextColor(BLANC, NOIR);
display.setCursor(1,1);
display.print(message);
}

There are 3 chips 74HC245 on every input pin, this chip play as level converter, no ?

No, they are buffers - or in this case bidirectional bus transceivers. They make sure the input signal is strong enough for the following circuit and also all following panels. This is also why all digital outputs of the first panel are actually 5V.
However: The buffer is not a level converter. If you look in the datasheet of the 74HC245 you'll see that V_IH is 0.7 * V_cc. Examples in the datasheet list 3.15V for 4.5V Vcc and 4.2V for 6V Vcc.
Sure, at 5V Vcc they convert 4.5V logic levels to 5V levels...
A 3.3V to 5V logic level converter would have a V_IH of about 2.0V...
Thx for the code

Okay, so here is the timing for the code (attached below) with SHIFTREG_SPI_PA:

And with SHIFTREG_ABC:

@pyzimmer Can you confirm the first one still has issues, while the second one does not?
Only differences are:

MUX_CLK/DATA Speed 16MHz vs. 2.6MHz
MUX_DATA available on rising edge vs. rising+falling edge
Double load on SPI CLK/DATA on the ESP in SHIFTREG_SPI_PA

The only critical timing I see is the time between latching pixel data and enabling the output, which in both cases is ~125ns, but that has never changed.

Code
#include <Arduino.h> // Needed in PlatformIO
//#define double_buffer false // = false pourse libraire < 1.5, ligne commentée pour libaririe >= 1.5
#define PxMATRIX_SPI_FREQUENCY 16000000
#define PxMATRIX_MAX_HEIGHT 32
#define PxMATRIX_MAX_WIDTH 192 // obligatoire à partir de la v1.5 pour 192px
#define PxMATRIX_COLOR_DEPTH 1
#include <PxMatrix.h> // https://github.com/xsrf/PxMatrix/blob/4fae26a12178a86949a12da6831dc248ab83eddf/PxMatrix.h
uint8_t display_draw_time=70; // temps d'affichage (70). Ignoré avec FastUpdate. Diminuer si aucun affichage, mais cela réduit la luminosité
uint16_t temps_rafraichissement=2000; // temps entre 2 rafaichissements (2000 µs) augmenter si aucun affichage, mais cela réduit la luminosité (2600 minimum pour 192*32 avec luminostié de 1800 lux)

#define P_LAT 4 // 22 // STB
#define P_A 19
#define P_B 23
#define P_C 18 // seulement pour scan 1/8, 1/16, 1/32
#define P_D 5 // seulement pour scan 1/16, 1/32
#define P_E 15 // seulement pour scan 1/32
#define P_OE 2 // STB
// CLOCK = SH = 14
// DATA = R1 = 13
#define SPI_BUS_MISO 21
#define SPI_BUS_CLK 22
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

// Pins for LED MATRIX
PxMATRIX display(192,32,P_LAT, P_OE,P_A,P_B,P_C);

uint16_t NOIR = display.color565(0, 0, 0);
uint16_t BLANC = display.color565(255, 255, 255);

void afficherFond(String message);

void IRAM_ATTR display_updater(){
  portENTER_CRITICAL_ISR(&timerMux);
  display.display(display_draw_time); // temps d'affichage (70) diminuer si aucun affichage
  portEXIT_CRITICAL_ISR(&timerMux);
}

void setup() {
  display.begin(8); //{4,8,16,32}
  display.setMuxPattern(SHIFTREG_SPI_PA); // {BINARY, STRAIGHT, SHIFTREG}
  //display.setScanPattern(VZAG); // {LINE, ZIGZAG, ZAGGIZ, WZAGZIG, VZAG}
  display.setPanelsWidth(12);
  //display.setFastUpdate(true); // aligne correctement les pixels sur la matrice OBLIGATOIRE pour 192*32

  timer = timerBegin(0, 80, true);
  timerAttachInterrupt(timer, &display_updater, true);
  timerAlarmWrite(timer, temps_rafraichissement, true); //temps entre 2 rafaichissements (2000 µs)
  timerAlarmEnable(timer);

  display.setTextColor(BLANC, NOIR);
  display.setTextSize(4);
  display.setTextWrap(false); // ne pas sauter de ligne
  afficherFond(". ");
  delay(1000);
  afficherFond("ChroPro!");
  delay(1000);

}

void loop()
{
}

// Afficher sur fond noir (SUPER sur ESP32 même avec rafraichissement 0,1s / clignote sur ESP8266)
void afficherFond(String message)
{
  display.setTextColor(BLANC, NOIR);
  display.setCursor(1,1);
  display.print(message);
}

Wahoo, pretty timing graphs !
I test your last version of library :

SHIFTREG_ABC : works fine, even in fastUpdate mode
SHIFTREG_SPI_PA or SHIFTREG_SPI_SE did the same not ?

with Parallel wiring : no way , unable to display something
with Sequential wiring :  fastUpdate make ghosting. I found settings that works :

display.setFastUpdate(false);
#define PxMATRIX_SPI_FREQUENCY 13000000
timerAlarmWrite(timer, 2600, true);

But with 2600µs I loses a lot of brightness...
When I increase SPI frequency to 16 Mhz colored pixels appears again, so SPI frequency affect colored pixels (there are fixed pixels, always at the same place)

SHIFTREG_ABC : works fine, even in fastUpdate mode

good to know I haven't messed that up ;)

SHIFTREG_SPI_PA or SHIFTREG_SPI_SE did the same not ?

Yeah almost... SHIFTREG_SPI_SE won't set PIN_B as output since it is not needed, but otherwise it is the same as SHIFTREG_SPI_PA for now.
However, in SHIFTREG_SPI_PA there could actually be set a different (lower) SPI frequency just for the row selection, which would not be possible (as easy) in SHIFTREG_SPI_SE. But I'm not sure if that would help...

with Parallel wiring : no way , unable to display something

So worse than yesterday? 🤔
Did you actually change the wiring between SE and PA settings or did you leave it the same because yesterday I said it wouldn't make a difference regarding code? While this is still the case, electrically it makes small timing differences.

with Sequential wiring :  fastUpdate make ghosting. I found settings that works :

display.setFastUpdate(false);
#define PxMATRIX_SPI_FREQUENCY 13000000
timerAlarmWrite(timer, 2600, true);

I'll look into that, thx.

But with 2600µs I loses a lot of brightness...

Yeah. Keep in mind that with your three panels, 8 mux rows and without fast_update display.display(70) already needs 1850µs to execute with SPI @ 16MHz on the ESP32. If you lower the SPI frequency just a bit, execution exceeds 2000µs and thus cannot be executed every 200µs.

When I increase SPI frequency to 16 Mhz colored pixels appears again, so SPI frequency affect colored pixels (there are fixed pixels, always at the same place)

Interesting... so no random noise...
Can you try again, but this time with display.display() inside loop instead of using the timer?
This will prevent issues with the Timer ISR actually running too long and will just run the display at the maximum rate possible.
Then you should be able to test lower SPI speeds without crashes. I know the display may loose brightness or flicker, but these are other issues ;)

adapted code
#include <Arduino.h> // Needed in PlatformIO
//#define double_buffer false // = false pourse libraire < 1.5, ligne commentée pour libaririe >= 1.5
#define PxMATRIX_SPI_FREQUENCY 8e6
#define PxMATRIX_MAX_HEIGHT 32
#define PxMATRIX_MAX_WIDTH 192 // obligatoire à partir de la v1.5 pour 192px
#define PxMATRIX_COLOR_DEPTH 1
#include <PxMatrix.h> // https://github.com/xsrf/PxMatrix/blob/4fae26a12178a86949a12da6831dc248ab83eddf/PxMatrix.h
uint8_t display_draw_time=70; // temps d'affichage (70). Ignoré avec FastUpdate. Diminuer si aucun affichage, mais cela réduit la luminosité

#define P_LAT 4 // STB
#define P_A 19
#define P_B 23
#define P_C 18 // seulement pour scan 1/8, 1/16, 1/32
#define P_D 5 // seulement pour scan 1/16, 1/32
#define P_E 15 // seulement pour scan 1/32
#define P_OE 2 // STB
// CLOCK = SH = 14
// DATA = R1 = 13

// Pins for LED MATRIX
PxMATRIX display(192,32,P_LAT, P_OE,P_A,P_B,P_C);

uint16_t NOIR = display.color565(0, 0, 0);
uint16_t BLANC = display.color565(255, 255, 255);

void afficherFond(String message);

void setup() {
  display.begin(8); //{4,8,16,32}
  display.setMuxPattern(SHIFTREG_SPI_PA); // {BINARY, STRAIGHT, SHIFTREG}
  display.setPanelsWidth(12);
  //display.setFastUpdate(true); // aligne correctement les pixels sur la matrice OBLIGATOIRE pour 192*32

  display.setTextColor(BLANC, NOIR);
  display.setTextSize(4);
  display.setTextWrap(false); // ne pas sauter de ligne
  afficherFond(". ");
  delay(1000);
  afficherFond("ChroPro!");
  delay(1000);

}

void loop()
{
  display.display(display_draw_time); // temps d'affichage (70) diminuer si aucun affichage
}

// Afficher sur fond noir (SUPER sur ESP32 même avec rafraichissement 0,1s / clignote sur ESP8266)
void afficherFond(String message)
{
  display.setTextColor(BLANC, NOIR);
  display.setCursor(1,1);
  display.print(message);
}

Hello,
Same result :

OK for Sequetial wiring
no display for Parallel... but I noticed that in total darkness (photo with dark mode), I can perceive that :

I'm really not sure what happens here... Since the LEDs only glow red, which I also noticed on the brighter image above, something must run into a current limit causing the voltage applied to the LEDs to break down. Only the red one light up because they have the lowest forward voltage.
The limit seems to be constant per row, causing rows with less colums lit (like the top right section of the 3rd panel) to light up brighter.
Also, all 8 rows of the mux show exactly the same pattern, which suggests that all row drivers are actually (kind of) enabled all the time, not only one at a time...  🤔

I've just read through the code at https://github.com/2dom/PxMatrix/pull/179 which suggests that the Latch I assumed was connected to Pin B may not exist. This would explain why parallel wiring would not work at all, because in PA wiring the last bytes of the picture buffer would end up in the register for the row mux. Sequential however still should work without a separate latch if you are not using fast_update. In fast_update data is pushed to the SPI bus while the LEDs are lit. This would cause all rows to be selected randomly (depending on the picture buffer) for most of the time the LEDs are lit but finally settling in the right row selection. This actually would explain your picture from April 20.

Okay, I've just read the datasheet of the RT5957 again. As you said, B is connected to BK and the Datasheet says: BK: Current output enable signal terminal
Okay 🤦♂ My fault, I missed that when I read the datasheet last time.
The chip actually has no latch...
Guess I'll have to trash the idea of parallel wiring and maybe sequential wiring too.

Also, this means the code could me optimized...  Instead of shifting out 16 bits for a 1/16 display every time, shifting out one bit (1 if row is 0, 0 otherwise) would be enough. This should work as long as the rows are selected incrementally - which is the case for the regular display() call. Only the test patterns may have to be adapted.

Good job ! Sometimes we have to take a break and take a step back...

I've pushed an update to https://github.com/xsrf/PxMatrix/tree/shift-mux which contains the optimization for SHIFTREG_ABC.
Not optimized code (allows random row access):

Here it takes a huge amount of time to select the row.
Optimized code (only works with incremental row access, which is fine in normal operation):

Here, selecting the row is as fast/faster as with STRAIGHT/BINARY.
You don't have to do anything for using the optimized code. Can you try SHIFTREG_ABC again if it still works (faster)?

Very good job, It works fine.
Performances are quite the same : I can't increase SPI over 13e6 otherwise I get some colored pixels.
Lot of thanks from France where I have to stay at home...

Hi, just bought panel with same IC and a driverd board from electrodragon for my ESP32. Nothing is displayed on my panel :(

Hiya folks - I have the same Chipset ICN2037B. I know this issue is marked as closed but looks like the changes made in #192 are no longer applicable? Is there a way to get these to work?


Reservoir package merge

replaces #311 rebased with latest master, missing some integration with the main calling/compute_nhd_v02 function. Now integrated with the calling function.
Hybrid and RFC Reservoir Types added with unit tests and integrated into routing. Routing tests included for Hybrid Persistence USGS type and RFC type reservoirs with the Croton NY domain.
Additions

Updates to V02 routing and MC_Reach, nhd_io, along with Hybrid and RFC reservoir types.
Includes new Reservoir Parameter File along with USGS timeslice and RFC time series files.

Testing

Reservoir Unit Tests and routing tests for Croton NY domain

Added a test case for the Croton level pool and rfc reservoir types using the new V3 input file structure.
Manually incorporated the changes to former compute_nhd_routing_v02.py script in #311 into appropriate locations in __main__.py and compute.py
#!/bin/bash -x

[x] python -m nwm_routing -V2  -f ../../test/input/yaml/CustomInput.yaml
[x] python -m nwm_routing -V3  -f ../../test/input/yaml/CustomInput_loop.yaml
[ ]  python -m nwm_routing -V2 -f ../../test/input/yaml/Croton_NY_with_wb_dev.yaml -- currently fails with input error; planning to deprecate, will not fix.
[x] python -m nwm_routing -V2  -f ../../test/input/yaml/Croton_NY_levelpool.yaml
[x] python -m nwm_routing -V3  -f ../../test/input/yaml/Croton_NY_levelpool_loop.yaml
[x] python -m nwm_routing -V2  -f ../../test/input/yaml/Croton_NY_rfc.yaml
[x] python -m nwm_routing -V3  -f ../../test/input/yaml/Croton_NY_rfc_loop.yaml
[x] python -m nwm_routing -V2  -f ../../test/input/yaml/Croton_NY_hybrid_usgs.yaml
[ ] python -m nwm_routing -V3  -f ../../test/input/yaml/Croton_NY_hybrid_usgs_loop.yaml -- Not created yet
[ ] python -m nwm_routing -V2  --test pocono1 -t -v --debuglevel 1
[ ] python -m nwm_routing -V2  -t -n Mainstems_CONUS -v --debuglevel 1 --parallel by-network --nts 288 --cpu-pool 6
[ ] python -m nwm_routing -V2  -t -n Mainstems_CONUS -v --debuglevel 1 --parallel by-subnetwork-jit-clustered --subnet-size 100 --nts 288 --cpu-pool 6
[ ] python -m nwm_routing -V2  -f ../../test/input/yaml/Florence_Benchmark.yaml
[x] python -m nwm_routing -V2  -f ../../test/input/yaml/Florence_Benchmark_diff.yaml

I tried compiling with the new updates and keep hitting a missing netcdf.mod file error. Is there anything special I need to do in order to update to the new master branch?

I tried compiling with the new updates and keep hitting a missing netcdf.mod file error. Is there anything special I need to do in order to update to the new master branch?

@jhrehanoaa There are a couple of updates to the reservoirs makefile and compiler.sh that were evidently not committed. I will submit a PR with those in a few min.

I tried compiling with the new updates and keep hitting a missing netcdf.mod file error. Is there anything special I need to do in order to update to the new master branch?

@jhrehanoaa There are a couple of updates to the reservoirs makefile and compiler.sh that were evidently not committed. I will submit a PR with those in a few min.

Okay, that sounds good. I appreciate it.


glz::merge writes erroneous comma when object is empty

I am attempting to modify an existing json that may contain additional fields using the following excerpt
struct {
  std::string hello;
} data;
std::vector<int> my_arr;
std::map<std::string_view, std::raw_json_view> potentiallyContainsUnknownJSON;

/* ... read code ... */

data.hello = "goodbye";
glz::write_json(glz::merge{
  glz::obj{
      "my_arr", my_arr,
      "data", metadata
  },
  potentiallyContainsUnknownJSON
});

input:
{"my_arr":[1,2,3],"data":{"hello":"world"} }

expected output:
{"my_arr":[1,2,3],"data":{"hello":"goodbye"}}

actual output:
{"my_arr":[1,2,3],"data":{"hello":"goodbye"},}

Is there a way to work around this or an alternative to achieve the same effect?

Thanks for reporting this. This was an issue with merging empty objects with glz::merge. I included a fix in my active pull request that I just merged: #1519. So, the main branch should now work for you.


Tests sometimes fail due to sites failing to start with "port already in use"

I've seen a few CI test failures this past week due to resources failing to start during tests due to the randomly assigned port being in use. Maybe we should think about ways to reduce the likelihood of this? @ReubenBond
Example:
2024-04-30T17:06:05.3505825+00:00 Resource 'frontend' log: 2024-04-30T17:06:05.0981488 \x1b[41m\x1b[30mfail\x1b[39m\x1b[22m\x1b[49m: Microsoft.Extensions.Hosting.Internal.Host[11]
 [202](https://github.com/dotnet/aspire-samples/actions/runs/8898768635/job/24436629702?pr=247#step:10:203)4-04-30T17:06:05.3505879+00:00 Resource 'frontend' log:       Hosting failed to start
 2024-04-30T17:06:05.3505907+00:00 Resource 'frontend' log:       System.IO.IOException: Failed to bind to address [http://<IP_ADDRESS>:32791:](http://<IP_ADDRESS>:32791/) address already in use.
 2024-04-30T17:06:05.3505945+00:00 Resource 'frontend' log:        ---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
 2024-04-30T17:06:05.3505981+00:00 Resource 'frontend' log:        ---> System.Net.Sockets.SocketException (98): Address already in use
 2024-04-30T17:06:05.3506024+00:00 Resource 'frontend' log:          at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
 2024-04-30T17:06:05.3506063+00:00 Resource 'frontend' log:          at System.Net.Sockets.Socket.Bind(EndPoint localEP)
 2024-04-30T17:06:05.3506095+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
 2024-04-30T17:06:05.3506146+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
 2024-04-30T17:06:05.3506184+00:00 Resource 'frontend' log:          --- End of inner exception stack trace ---
 2024-04-30T17:06:05.3506214+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
 2024-04-30T17:06:05.3506251+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3506528+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3506599+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
 2024-04-30T17:06:05.3506658+00:00 Resource 'frontend' log:       --- End of stack trace from previous location ---
 2024-04-30T17:06:05.3506688+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3506737+00:00 Resource 'frontend' log:          --- End of inner exception stack trace ---
 2024-04-30T17:06:05.3506767+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3506824+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3506869+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3506924+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(ListenOptions[] listenOptions, AddressBindContext context, Func`2 useHttps, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3506978+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
 2024-04-30T17:06:05.3507018+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
 2024-04-30T17:06:05.3507074+00:00 Resource 'frontend' log:          at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
 2024-04-30T17:06:05.3507115+00:00 Resource 'frontend' log:          at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__15_1(IHostedService service, CancellationToken token)
 2024-04-30T17:06:05.3507154+00:00 Resource 'frontend' log:          at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)

/Cc @karolz-ms for thoughts on how we might make the random port assignment DCP does more reliable.

@DamianEdwards are the tests in question launching multiple app host instances in parallel?

@karolz-ms no. There are only two theories and they're in the same class using xUnit default parallelism settings, so should all be sequential, one at a time.

OK. I guess it is time for me to take a closer look.

Got another hit:
2024-05-02T17:56:24.1560247+00:00 Resource 'angular' log: ? Port 36791 is already in use.

I did spend some time looking at how the port allocation works. We made a change that should eliminate port conflicts if multiple Aspire apps/tests are running https://github.com/microsoft/usvc-apiserver/pull/369
Ultimately though DCP is doing the port check, but a service is doing socket creation, so there is always TOCTOU gap that we cannot fully close. There is always a chance that some other program on the system will grab the port that DCP selected to be used by the app.


Only return True in has_ methods if self._N > 0

All the has_ methods should check with return self._property is not None and self._N > 0 since .N can be zero else this will throw errors in the @property methods , as an array that is allocated to 0 should not be considered as being there.
https://github.com/mphowardlab/lammpsio/blob/3070f946570fda16a9881b78a35cd5153d406a5c/src/lammpsio/topology.py#L95C5-L104C40

Resolved in #68


feat: add mongodb 1.15.1, zephir_parser 1.5.3 releases

update mongodb with release 1.15.1
update zephir_parser with release 1.5.3

:tada: This PR is included in version 1.66.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


UI of 404 page should be improved

Problem
The UI of the 404 page of the website should be improved. The visiting user (non-technical person) cannot understand the meaning of the 404 code?
Solution
It should have well designed UI with graphics or illustration and with some appropriate information like we should inform the user that he has jumped or redirected to wrong page or the page he is trying to find is not available.
Please assign this issue to me under GSSOC '22.
Thanks!

I'm working on it.

I installed and setup this project locally but didn't made any changes locally in codebase. But, when I started localhost:3000 it is showing white background except dark background. Why?
Can you please tell me why this problem is happening?

Also, some nav links are not showing on the homepage.


Defined the contact status given the contact force

Do we want to do this automatically in the interface? The explicit flag was to have the status from a probabilistic contact estimator since we may have measured forces but still have the status to be "open"/"not in contact". E.g. on Anymal when we may have up to 50 N phantom forces but the robot should not set the flag unless the probabilistic contact estimators says so

^ the above said, we don't currently have an argument to explicitly pass the state which we do require during control. Should we pass the state as boolean explicitly (extend the argument list) and only if not passed use the norm of the force?

Should we pass the state as boolean explicitly (extend the argument list) and only if not passed use the norm of the force?

It makes sense. What about using a default argument? If the user has not passed this boolean, then we set as proposed in this PR.
If you agree on it, I could implement it now.

Actually, it might be better to create the python bindings, and remove this file.
What do you think?

In principle, Python bindings would be nice - however, passing serialized/deserialized ROS message types isn't easy (it's possible and we've done it before, but requires custom converters). Unless it's a bottleneck we may want to go the easy route and amend the Python module here and add the bindings as a nice-to-have for the future. What do you think?


Using selection.placeMarkers() and selectMarkers() asynchronously?

So I'm trying to use selection.placeMarkers() to store the selection state right before the editor loses focus. I seem to be having trouble with the markers being lost (I'm guessing because of the "formatters") once the focus gets lost.
The flow is something like this:

User clicks a button to activate the "input" for the link
I call selection.placeMarkers() to have scribe insert the "markers" for the selection state
(at this point I can call selection.getMarkers() and 2 elements are returned)
I call input.focus() (deferred via a setTimeout() call)
(at this point if I call selection.getMarkers() then 0 elements are returned) :frowning:

Any idea what is causing this? Ideally the markers would remain in-place while the user is typing in their text into the input. Thanks in advance!

I have had the same problem recently. I got there implementing a new plugin in place of the scribe-plugin-link-prompt-command, with a custom modal instead of a prompt.
My temporary solution (a hack) has been to suspend the formatters with scribe._skipFormatters = true;. They are re-enabled automatically.
As an example:
var selection = new this.scribe.api.Selection();
selection.placeMarkers();
// Hack to avoid loosing the markers within applyFormatters
this.scribe._skipFormatters = true;
this.$el.modal();

and later
var selection = new this.scribe.api.Selection();
selection.selectMarkers();
this.scribe.el.focus();
this.scribe.getCommand('unlink').execute();

This works but I am not proud of it ;)

We had a similar problem. In my case our toolbar had a dropdown you could select from (similar to a heading size selector) that would cause scribe to lose focus. I ended up using @sted's hack to get things working, but I would much prefer a built-in solution.


replaced an unused parameter with _

replaced an unused parameter with _ as the Python convention to stop a linter warning

Can one of the admins verify this patch?

Thanks, can you update to master?

@tensorflow-jenkins: test this please

Flaky test failed.  Merging.


rdm community events

Data Conversations
Data Literacy Snacks
SoDa drop-in
UK Data Service drop-in
ReproHack
Bring Your Own Data workshops
Open Data in a Day

data horror escape room
dans data game

Kirsty Merrett, Christopher Warren (2020): Researchers, Impact & Publications (R.I.P.) Game data (01-2020). https://doi.org/10.5523/bris.1nufzjw3m9ho72cwisj1pwc75h


Add the GitHub Actions workflow from the template module

Please add the workflows folder from the template module

fixed by #8


Time variable toolbox

The download  through the CDS toolbox (3D daily temperature in my case) is generating an integer time variable that cannot be directly used in ESMValTool.
I overcome this issue by changing the time type using cdo.
cdo daymean file_in.nc file_out.nc
This operation will not affect the time-step dimension (both daily in my case) but only the " variable type" modifying it from integer to double.
Hope it helps!

Can you please provide more info about this case? The dataset you are using and the exact error would be nice.
ESMValTool should not have trouble dealing with this kind of data

In my experience the toolbox generates the time as integer instead of double and it needs to be post-processed before using it in the ESMValTool.
I am not sure if the problem arises from the type of time variable or by the missing time bounds, because  using  cdo  it automatically modifies both of them.
Hereinafter an example of ERA5 daily input at 3*3 resolution for the period 2001-2017 as generated by the toolbox that cannot be read by the Toolbox
ERA_5_2_levels_strat_2001_2017_3x3_dai {
dimensions:
time = 6209 ;
lat = 61 ;
plev = 2 ;
lon = 120 ;
variables:
int64 time(time) ;
time:units = "days since 2001-01-01 00:00:00" ;
time:calendar = "proleptic_gregorian" ;
double lat(lat) ;
lat:_FillValue = NaN ;
lat:units = "degrees_north" ;
lat:long_name = "latitude" ;
lat:standard_name = "latitude" ;
lat:valid_min = -90. ;
lat:stored_direction = "increasing" ;
lat:valid_max = 90. ;
lat:type = "double" ;
lat:axis = "Y" ;
double plev(plev) ;
plev:_FillValue = NaN ;
plev:units = "Pa" ;
.....
While simply typing
cdo daymean filein.nc fileout.nc
it modify the time attributes (integer--> double + time bounds) and it can directly used in the ESMValTool_beta version
test_cdo_ERA_5_2_levels_strat_2001_2017_3x3_dai {
dimensions:
time = UNLIMITED ; // (6209 currently)
bnds = 2 ;
lon = 120 ;
lat = 61 ;
plev = 2 ;
variables:
double time(time) ;
time:standard_name = "time" ;
time:bounds = "time_bnds" ;
time:units = "days since 2001-01-01 00:00:00" ;
time:calendar = "proleptic_gregorian" ;
time:axis = "T" ;
double time_bnds(time, bnds) ;
double lon(lon) ;
lon:standard_name = "longitude" ;
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
lon:axis = "X" ;
double lat(lat) ;
lat:standard_name = "latitude" ;
lat:long_name = "latitude" ;
The error come up at the beginning of the ESMValTool run while it is reading the input trying to convert it in the /work/climo directory. Unfortunately I deleted the original file so in order to replicate it I should download it again.


community[minor]: Improve Azure AI Search vector store support

This PR improves the existing Azure Cosmos DB vector store in the following ways:

Add support for custom credentials
Set default search query type

Seems reasonable, thank you!


updates for shared memory mode.

updates for shared memory mode.

@ifratric readme change.pls merge.

Ah, right, sorry, forgot about this one. Thanks!


python312Packages.tencentcloud-sdk-python: 3.0.1201 -> 3.0.1203

Diff: https://github.com/TencentCloud/tencentcloud-sdk-python/compare/refs/tags/3.0.1201...3.0.1203
Changelog: https://github.com/TencentCloud/tencentcloud-sdk-python/blob/3.0.1203/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 331837 run on x86_64-linux 1

4 packages built:

python311Packages.tencentcloud-sdk-python
python311Packages.tencentcloud-sdk-python.dist
python312Packages.tencentcloud-sdk-python
python312Packages.tencentcloud-sdk-python.dist


Add zIndex for android for truely hidden row behind content

For more info: This is the issue https://github.com/jemise111/react-native-swipe-list-view/issues/138

@jarvisluong Thanks for the fix! (and sorry for the delay) This will go out in the next release


Initial support for member access on object types

Codecov Report

Merging #72 (ee098d1) into main (761c39b) will decrease coverage by 0.83%.
The diff coverage is 78.10%.

@@            Coverage Diff             @@
##             main      #72      +/-   ##
==========================================
- Coverage   89.94%   89.10%   -0.84%
==========================================
  Files          20       21       +1
  Lines        1879     1992     +113
==========================================
+ Hits         1690     1775      +85
- Misses        189      217      +28

Impacted Files
Coverage Δ

src/codegen/d_ts.rs
82.78% <ø> (ø)

src/types.rs
66.14% <0.00%> (-5.66%)
:arrow_down:

src/infer/infer.rs
93.81% <28.57%> (-1.74%)
:arrow_down:

src/codegen/js.rs
88.79% <50.00%> (-2.08%)
:arrow_down:

src/infer/substitutable.rs
72.50% <60.00%> (-6.73%)
:arrow_down:

src/infer/infer_mem.rs
93.10% <93.10%> (ø)

src/ast/expr.rs
66.66% <100.00%> (+9.52%)
:arrow_up:

src/infer/context.rs
96.87% <100.00%> (+0.26%)
:arrow_up:

src/parser/expr.rs
99.41% <100.00%> (+0.06%)
:arrow_up:

src/parser/mod.rs
97.40% <100.00%> (+0.14%)
:arrow_up:

... and 3 more

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 761c39b...ee098d1. Read the comment docs.


limitations of CUDA kernels differentiation

Hello apart from fact that Julia 1.7 is needed - are there any other constraints?
For example can one use grid synchronization or  tensor cores wmma ?

I don't think we have tried WMMA or grid synchronization! But you could give it a go and open issues with the errors you are seeing.

We may have some WMMA support (it is in tests), but I'm not sure its complete https://github.com/EnzymeAD/Enzyme/blob/5fe71401cfe29c2b9a1d0917c5946bb087687cea/enzyme/test/TypeAnalysis/tensorcore.ll
If you have code that uses and it doesn't, we can add it!

Thank you! I will do as you suggest!


WSGI application 'project.wsgi.application' could not be loaded; Error importing module.

When I tried to install and use the django-auto-logout I got an error.
What I did
I followed the instructions here:
Installation
pip install django-auto-logout
Append to settings middleware:
MIDDLEWARE = [
...
    'django_auto_logout.middleware.auto_logout',
]

REDIRECT_TO_LOGIN_IMMEDIATELY after the idle-time has expired
from datetime import timedelta
AUTO_LOGOUT = {
    'IDLE_TIME': timedelta(minutes=5),
    'REDIRECT_TO_LOGIN_IMMEDIATELY': True,
}

The Error
Traceback (most recent call last):
  File "[SOME PATH]\site-packages\django\core\servers\basehttp.py", line 47, in get_internal_wsgi_application
    return import_string(app_path)
  File "[SOME PATH]\site-packages\django\utils\module_loading.py", line 30, in import_string
    return cached_import(module_path, class_name)
  File "[SOME PATH]\site-packages\django\utils\module_loading.py", line 15, in cached_import
    module = import_module(module_path)
  File "[SOME PATH]\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\mshem\PycharmProjects\hilal\hilal\wsgi.py", line 16, in <module>
    application = get_wsgi_application()
  File "[SOME PATH]\site-packages\django\core\wsgi.py", line 13, in get_wsgi_application
    return WSGIHandler()
  File "[SOME PATH]\site-packages\django\core\handlers\wsgi.py", line 125, in __init__
    self.load_middleware()
  File "[SOME PATH]\site-packages\django\core\handlers\base.py", line 40, in load_middleware
    middleware = import_string(middleware_path)
  File "[SOME PATH]\site-packages\django\utils\module_loading.py", line 30, in import_string
    return cached_import(module_path, class_name)
  File "[SOME PATH]\site-packages\django\utils\module_loading.py", line 15, in cached_import
    module = import_module(module_path)
  File "[SOME PATH]\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "[SOME PATH]\site-packages\django_auto_logout\middleware.py", line 8, in <module>
    from .utils import now, seconds_until_idle_time_end, seconds_until_session_end
  File "[SOME PATH]\site-packages\django_auto_logout\utils.py", line 5, in <module>
    from pytz import timezone
ModuleNotFoundError: No module named 'pytz'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "[SOME PATH]\threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "[SOME PATH]\threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "[SOME PATH]\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
    return get_internal_wsgi_application()
  File "[SOME PATH]\site-packages\django\core\servers\basehttp.py", line 49, in get_internal_wsgi_application
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: WSGI application '[My Project].wsgi.application' could not be loaded; Error importing module.

Fix
Since it clearly says ModuleNotFoundError: No module named 'pytz' the fix was easy:
pip install pytz

Thank you. I will check and fix it this week.

This bug should be fixed in version 0.5.1 (will be available on pypi mirrors in a few minutes). Please check to be sure.


Typescript errors in 3.5.0

importing @something/filename.svg?component gives typescript error TS2307: Cannot find module in version 3.5.0. It works fine in 3.4.0.
Guessing it has something to do with the removed imports within the *.svg?component module.

Hi, thanks for pointing out! I've released the fix in v3.5.1

Thank you for a super fast fix!


Feat: DCMAW 8381 (and DCMAW-10351)

DCMAW-8381: GA4 schema on the Sign in page

Ticket DCMAW-8381
Logging project PR 1
Logging project PR 2
GA4 Schema v3.1

Evidence of the change

No evidence available
Tests done where possible

Checklist
Before creating the pull request

[x] Commit messages that conform to conventional commit messages.
[x] Ran the app locally ensuring it builds.
[x] Tests pass locally.
[x] Pull request has a clear title with a short description about the feature or update.
[x] Created a draft pull request if it's not ready for review.

Before the CODEOWNERS review the pull request

[x] ~Complete all Acceptance Criteria within Jira ticket.~
[x] Self-review code.
[x] ~Successfully run changes on a testing device.~
[x] Complete automated Testing:

[x] Unit Tests.
[x] Integration Tests.
[x] ~Instrumentation / Emulator Tests.~

[x] ~Review Accessibility considerations.~
[x] Handle PR comments.

Before merging the pull request

[x] Sonar cloud report passes inspections for your PR.
[x] Resolve all comments.

No QA needed on this, therefore approved


SNAP frame of BACnet/MSTP shows up in weird.log

SNAP frame of BACnet/MSTP is a little bit off the beaten path, but not so far off that it deserves to go in weird.log
#path   weird
#open   2020-08-17-20-24-08
#fields ts      uid     id.orig_h       id.orig_p       id.resp_h       id.resp_p       name    addl    notice  peer
#types  time    string  addr    port    addr    port    string  string  bool    string
0.000000        -       -       -       -       -       non_ip_packet_in_ethernet       -       F       zeek
#close  2020-08-17-20-24-08

@duffy-corelight, lol... similar with the other one, could you share pcap also?  Thanks

Port_MSTP_WhoIs.pcap.zip

@duffy-corelight, currently no services/messages on layer 2 have been implemented yet since Zeek doesn't exactly expose a good interface to handle this.  The closest example is from ARP, but I have a feeling we'll be introducing more issues than solving anything at the moment.  This is something that I'll discuss with @voteblake to see if it'll make it into our roadmap.


MM-48614,MM-48638,MM-48641,MM-48642: Saves priority on drafts and other fixes

Summary
Adds priority to server drafts, and fixes any issues around persisting priority, both for server and local drafts
Ticket Link
https://mattermost.atlassian.net/browse/MM-48614
https://mattermost.atlassian.net/browse/MM-48638
https://mattermost.atlassian.net/browse/MM-48641
https://mattermost.atlassian.net/browse/MM-48642
https://mattermost.atlassian.net/browse/MM-48666
https://mattermost.atlassian.net/browse/MM-48667
Related Pull Requests

Has server changes (https://github.com/mattermost/mattermost-server/pull/21752)

Release Note
NONE

@hmhealey @mylonsuren Please help prioritize this PR review.

@koox00 There are some conflicts that need to be resolved here.
@AshishDhama @michelengelen I added you to the PR review as Harrison is out of office on Tuesday.

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/268401

@amyblais we should run the E2E on the related server PR, and do QA testing there.
I'll add the label when the server finishes building.

/cherry-pick cloud

Cherry pick is scheduled.

Error trying doing the automated Cherry picking. Please do this manually
+++ Updating remotes...
Fetching upstream
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
From github.com:mattermost/mattermost-webapp
   a68b60f9db..93b09746e4  Cloud_tests          -> upstream/Cloud_tests
   9ac5175eb9..c8186f5e33  MM-47511_date-picker-hover-styles -> upstream/MM-47511_date-picker-hover-styles
   f48f9c5d67..c1ae68ef38  MM-47870             -> upstream/MM-47870
   12a3975278..f04db37650  MM-48573-a           -> upstream/MM-48573-a
 * [new branch]            MM-48686             -> upstream/MM-48686
   50b50df049..e99652675f  cloud                -> upstream/cloud
 * [new branch]            experimental-pr      -> upstream/experimental-pr
   a1a83d16f4..c45435ea4d  feature/compass-ui   -> upstream/feature/compass-ui
 * [new branch]            fixes/post-priority  -> upstream/fixes/post-priority
   67b0063537..cdc6852e4f  master               -> upstream/master
 * [new branch]            mm-47860-air-gapped-upgrade-modal -> upstream/mm-47860-air-gapped-upgrade-modal
 * [new branch]            patch-plugins-react-dom -> upstream/patch-plugins-react-dom
   e147125ee1..d4992a7bea  self-hosted-accounts -> upstream/self-hosted-accounts
   bc4e5822d9..a16a082fa7  work-template-modal  -> upstream/work-template-modal
Fetching origin
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
+++ Updating remotes done...
+++ Creating local branch automated-cherry-pick-of-mattermost-webapp-#11662-upstream-cloud-1669763103
Switched to a new branch 'automated-cherry-pick-of-mattermost-webapp-#11662-upstream-cloud-1669763103'
Branch 'automated-cherry-pick-of-mattermost-webapp-#11662-upstream-cloud-1669763103' set up to track remote branch 'cloud' from 'upstream'.

+++ About to attempt cherry pick of PR #11662 with merge commit cdc6852e4f3a88179fc8f3333e98180e076f6816.

error: could not apply cdc6852e4f... MM-48614,MM-48638,MM-48641,MM-48642: Saves priority on drafts and other fixes (#11662)
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

+++ Conflicts detected:

UU actions/views/drafts.ts
UU components/drafts/drafts_link.tsx
Aborting.

+++ Aborting in-progress git cherry-pick.

+++ Returning you to the master branch and cleaning up.

/cherry-pick cloud

Cherry pick is scheduled.

Error trying doing the automated Cherry picking. Please do this manually
+++ Updating remotes...
Fetching upstream
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
Fetching origin
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
+++ Updating remotes done...
+++ Creating local branch automated-cherry-pick-of-mattermost-webapp-#11662-upstream-cloud-1669763136
Switched to a new branch 'automated-cherry-pick-of-mattermost-webapp-#11662-upstream-cloud-1669763136'
Branch 'automated-cherry-pick-of-mattermost-webapp-#11662-upstream-cloud-1669763136' set up to track remote branch 'cloud' from 'upstream'.

+++ About to attempt cherry pick of PR #11662 with merge commit cdc6852e4f3a88179fc8f3333e98180e076f6816.

error: could not apply cdc6852e4f... MM-48614,MM-48638,MM-48641,MM-48642: Saves priority on drafts and other fixes (#11662)
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

+++ Conflicts detected:

UU actions/views/drafts.ts
UU components/drafts/drafts_link.tsx
Aborting.

+++ Aborting in-progress git cherry-pick.

+++ Returning you to the master branch and cleaning up.

@koox00 This needs manual cherry-pick to cloud.


[FR] Sample Packing with correct attention mask

Sample packing with correct attention mask (where the model can't attend to other examples in the batch) and ideally correct RoPE offset would be extremely beneficial. In SFT, examples tend to be highly correlated, so there's an opportunity for the model to cheat when training.
It helps (significantly) in training speed when you are training on examples with diversse lengths, with large maximum seq length.
Known existing implementations:

https://github.com/MeetKai/functionary/tree/main/functionary/train/packing
https://github.com/OpenAccess-AI-Collective/axolotl/blob/main/src/axolotl/monkeypatch/multipack.py

This kind of mask is supported by FA:

https://github.com/Dao-AILab/flash-attention/issues/432#issuecomment-1698610752

One thing to consider is how the examples should be packed -- e.g. naive greedy packing, vs. some more elaborate bin packing algorithm. I think a naive greedy approach would bring a lot of benefit.

Thanks for opening this feature request. Indeed, this very thing is being worked on in #875. I am currently investigating how to make the sample masking work with flash attention (we currently use SDPA which does not support arbitrary masks, so may have to use Tri Dao's implementation as you pointed out). If you have thoughts on this would love your feedback on the PR.

https://github.com/pytorch/torchtune/issues/892#issuecomment-2081604842

What I meant by the RoPE comment -- and maybe this is already handled automatically -- is that if we natively just concatenate examples as with naive packing e.g. in HF transformers, the token's positional embeddings will not represent the actual position in the example, but rather a position in the concatenated examples.

Completed by #875


Installation in batch mode / via Juju

Hey,
I've been working on a new installation procedure using Ubuntu Juju. I wrote 2 charms (admin/agent) for the platform in order to test.

https://github.com/SaMnCo/charm-stratio-node
https://github.com/SaMnCo/charm-stratio-admin

The idea is to avoid the server-side SSH connection with a password, but rather auto install from the node. The server is authorized to expose variables and to act on his side.
I have all ports opened, I download the bootstrap to install chef-client, I manage to get the validation.pem & dbkey to start the install.
So I get to the point where the server and the nodes are all functional. The GUI sees my nodes. But there is no communication between the 2 of them (monitoring doesn't work, actions like start/stop do not work either.
Since the admin side is not on GitHub, can you tell me exactly

What happens when one adds nodes manually in the GUI on the server side?
How do you send commands from the GUI to the nodes?

BTW the documention doesn't mention the following ports:
PORT_MONGO_STORAGE=27017
PORT_ELASTIC_MNGT=9200
PORT_ELASTIC_STORAGE=9300
BTW2, I sent an email to<EMAIL_ADDRESS>to ask how I could help you as I like your project. Didn't get an answer yet. Any hints?
Thanks in advance, any help appreciated.

Hi, thanks for your feedback.
Since your issue is related to Stratio Admin, please contact with the Stratio Admin team by using Jira
https://stratio.atlassian.net/secure/Dashboard.jspa
They will take care about your questions. Anyway, i am going to forward them your question.
I do not manage contact account, so let me find and answer your email.

Cool!
Thx for managing the question. I tried connecting to your link but not having a Jira account locks me out of it.
Happy to have one opened and restart from there if it's best practice. Just let me know

Just register yourself at Jira Cloud and open the issue, the Admin team will be glad to help you.
(i am already checking out your email at contact)

OK let me know when my address is validated, I created a Atlassian Cloud
account with this email address<EMAIL_ADDRESS>Thanks for your help,
Best,
Samuel
2015-05-18 11:47 GMT+02:00 David Morales<EMAIL_ADDRESS>
Just register yourself at Jira Cloud and open the issue, the Admin team
will be glad to help you.
(i am already checking out your email at contact)
—
Reply to this email directly or view it on GitHub
https://github.com/Stratio/sparkta/issues/159#issuecomment-102998218.

--
SaM'n'Co
R'U Ready? I was BORN ready!

Ok, thanks.

Sorry, forget about the jira issue.  Use this group instead
https://groups.google.com/forum/?hl=es#!forum/stratio-admin
Thanks

OK no problem. I requested access.
Many thanks for following up,
Best,
Samuel
2015-05-19 15:20 GMT+02:00 David Morales<EMAIL_ADDRESS>
Sorry, forget about the jira issue. Use this group instead
https://groups.google.com/forum/?hl=es#!forum/stratio-admin
Thanks
—
Reply to this email directly or view it on GitHub
https://github.com/Stratio/sparkta/issues/159#issuecomment-103486178.

--
SaM'n'Co
R'U Ready? I was BORN ready!


The pains in copying web contents

(This is basically an extended feature request list.  To skip to it, see
under the bad.)
I've been hacking on some script that copies a bunch of web pages
(generated api documentation pages) to blob storage, which is possible,
but painful.  What I wanted to do is:

Use proper content types
Serve a default html file when visiting .../foo/ instead of forcing
.../foo/index.html
Optionally have generated default index pages when such a file does
not exist.
Make .../foo redirect the browser to .../foo/ which would then be
the above default page.

The way that I achieved all of this is with a pile of hacks:

Iterate over a manually-made list of glob patterns and matching
content types, using --pattern to copy only the respective subset
of files with a correct type.  (This needs to be done carefully,
keeping account of paths in case new file types are added in the
future.)
For each case where there's a directory with an index.html file,
copy that file to a blob name that looks like .../dirname/.
A manual pre-scan of the whole directory generates a simple
index.html in directories that don't have one.
Finally, for each directory foo/bar I upload an html file that is
called foo/bar with a

which works, except that it makes the browser show the stub html for
a brief moment before jumping on (and it also doesn't work with
things like curl).

Note that this means one az use for each type, and two more for each
directory, which means a significant overall time, almost completely
spent in the ~2 second overhead for each such use!

My feature requests are therefore:

A way to specify "use the right content type based on file names"

A way to serve some default sub-blob for requests for foo/bar/ paths
that end with a slash.

I know that dealing with the redirections is too big for a quick
feature request, but it would be much better if the list of http properties
that can be set on blobs would include Location, and the existence
of that header would also make the blob serve with a 307 status.  This
will even make it a good substitute for creating "symlink"-like blobs.
(It could also be used for serving a default file.)
If this was implemented as part of the above "use the right type", it would
be a significant step towards making it possible to host html content in
blob storage.

@troydai can you look at this

@seguler is there any plan on the service-side to support any of these features?

We have supported this:
A way to serve some default sub-blob for requests for foo/bar/ paths that end with a slash.
and this:
 dealing with the redirections is in our backlog. Sorry for the missed response.

@pemari-msft, I see that the first bullet works with a random jpeg, and I'm happy that redirections are planned.
But I still don't see serving some/path/index.html when browsing some/path/.  If you're talking about the special $web blob, than that's different since it forces moving blobs...


Add Monkey atack

[ ] Check changing type of object
[ ] Add binding to attack parameters
[ ] Add to default button
[ ] Log monkey attack error on monkey attack component

References
https://chancejs.com/
https://github.com/boo1ean/casual
https://github.com/fent/randexp.js


Test custom lint rules

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #2442   👈

This comment was auto-generated by Graphite.


Api key authentication consistence

Hey guys,
I was trying to fetch all zones of a user via api and found out, that this is only possible via /pdnsadmin/zones endpoint. Sadly this endpoint has to be authenticated by basic auth and not via api key.
Now my question is, why no consistence? Is there a particular reason for that?
Regards,
Alex

Hello,
With the latest version (master, maybe 0.2.4), users can list their zones via the /server/../zones endpoint.
Regards


Allow session name to be fixed on load

As discussed in #32, this adds a configuration option follow_cwd to allow or disallow session name changes on changes to the current working directory. It does so by adding a global variable vim.g.persisting_session that is either fixed for follow_cwd=false or nil for follow_cwd=true.
By default, follow_cwd=true which will give the prior behavior.

This is a brilliant pull request. Thank you for taking the time to painstakingly create tests and update the README. Code is super clear as well.
The only thing I'd request is in the readme, could you add your use case and why anyone may wish to use the feature, as the first sentence?

Thanks @olimorris. I have actually never written tests for a lua plugin, but the examples you had made it pretty straightforward.
I've adjusted the wording, but I'm not sure I quite captured the use case concisely. Let me know if you'd like me to take another swing at it.


[BUG] Node & DiskStatus deepcopy functions are incorrect

While reviewing https://github.com/longhorn/longhorn-manager/pull/758 I noticed these two issues.
Doing the node deepcopy should call the deepcopy function for the diskStatus here:
https://github.com/longhorn/longhorn-manager/blob/master/types/deepcopy.go#L134
The DiskStatus deep copy does not copy the ScheduledReplica map.
https://github.com/longhorn/longhorn-manager/blob/master/types/resource.go#L339
https://github.com/longhorn/longhorn-manager/blob/master/types/deepcopy.go#L145

Those issues were to be added as a part of disk CRD. But now we're not going that way. So we should address them now.

Not sure how to test this bug...

@shuo-wu Let's fine. It's more of a code bug fix. I can close it when it's merged.


Thrift2Grpc compatibility layer

What changed?
This change introduces a gRPC compatibility layer for current version of Cadence go client.
Current version of Go client uses TChannel with Thrift data types. Those data types also leaked via API. To fully switch to gRPC and proto types it will require breaking changes to the client. Which we intend to do with the next major version release. For the current v0 client, we provide a compatibility layer which does the mapping between proto <-> thrift types at the very bottom of API.
Intstead of creating raw service like this:
service := workflowserviceclient.New(dispatcher.ClientConfig(serviceName))

One would use grpc adapter and create it like this:
clientConfig := dispatcher.ClientConfig(serviceName)
service := compatibility.NewThrift2ProtoAdapter(
	apiv1.NewDomainAPIYARPCClient(clientConfig),
	apiv1.NewWorkflowAPIYARPCClient(clientConfig),
	apiv1.NewWorkerAPIYARPCClient(clientConfig),
	apiv1.NewVisibilityAPIYARPCClient(clientConfig),
)

While also configuring dispatcher to use gRPC transport instead of Thrift and using different frontend port 7833 instead of 7933. Latest server is already listening on this port, just no clients yet send anything.

Why?
Two main purposes:

Test gRPC communication without touching client API surface instead. We are planning on v2 go client as well. It would contain breaking changes by removing exposed Thrift data types and using proto types internally everywhere. But this will be a big change. Testing RPC part in isolation will allow resolving potential problems easier.
Provide a for users to switch to gRPC while retaining older client version if upgrade to v2 is not possible for some reason. Currently server supports both TChannel and gRPC, but sometime in the future we plan to deprecate TChannel.

How did you test it?

Additional integration test pipeline which uses all existing tests via grpc adapter.
Locally tested with canary using this adapter as well.

Potential risks

Forgetting to update adapter mapping when IDLs change can be an issue.

Pull Request Test Coverage Report for Build 28eae249-19bd-4818-8268-2c90edfd05da

1353 of 2992 (45.22%)  changed or added relevant lines in 7 files are covered.
8 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-5.7%) to 70.628%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

test/test_utils.go
29
31
93.55%

internal/compatibility/helpers.go
44
68
64.71%

internal/compatibility/error.go
26
94
27.66%

internal/compatibility/adapter.go
63
155
40.65%

internal/compatibility/request.go
436
1045
41.72%

internal/compatibility/response.go
752
1596
47.12%

Files with Coverage Reduction
New Missed Lines
%

internal/internal_task_pollers.go
8
80.74%

Totals

Change from base Build cb7ec0e8-04df-4c80-a8d7-3f698246e591:
-5.7%

Covered Lines:
11715

Relevant Lines:
16587

💛  - Coveralls


add UI testing and client explorer

Related Issues
https://github.com/threefoldtech/js-sdk/issues/1942

settings:

explorer:

workloads:


Content to copy paste in GitHub Secret for AZURE_CREDENTIALS in incorrect

The way you create a secret for AZURE_CREDENTIALS does not work.
the right way is the following process :
https://github.com/Azure/actions-workflow-samples/blob/master/assets/create-secrets-for-GitHub-workflows.md

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

ID: 9659eab1-b7f7-d163-ff0a-577b7496b5c8
Version Independent ID: 0892de76-78f8-4c1c-c09c-60af3f275320
Content: Handle AKS node upgrades with GitHub Actions - Azure Kubernetes Service
Content Source: articles/aks/node-upgrade-github-actions.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

Thanks for your contribution to the document by opening the PR. Once it is reviewed and approved by doc-author, the changes will be live.

Thank you for the feedback.
We've added a task to our backlog and will prioritize accordingly.
#please-close


Add Musescore.Musescore v<IP_ADDRESS>472200

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

MuseScore 4 doesn't have an x86 version as version 3 used to have and thus this architecture has been left out from version 4's manifest.
Microsoft Reviewers: Open in CodeFlow

Unfortunately the application does not launch after install. When opened, it presents a loading screen and then silently crashes. Here is the error from the Application log:

Faulting application name: MuseScore4.exe, version: <IP_ADDRESS>, time stamp: 0x00000000
Faulting module name: KERNELBASE.dll, version: 10.0.19041.1202, time stamp: 0xc9db1934
Exception code: 0xe06d7363
Fault offset: 0x0000000000034f99
Faulting process id: 0xc08
Faulting application start time: 0x01d91a152118da9f
Faulting application path: C:\Program Files\MuseScore 4\bin\MuseScore4.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: 93deb2ca-aa91-4e4f-b146-1db256ec9f0c
Faulting package full name:
Faulting package-relative application ID:

Hi @stephengillie, thanks for the feedback. I'll see if I can reproduce and debug this one later.

Hi @stephengillie, I'm still unable to reproduce the error you've faced. Not sure if it might be a compatibility issue (although my version is pretty close - 10.0.19041.2364) or if it's an issue with the kernelbase.dll itself. Do you think it might be possible that the dll could be corrupted on your end?

@wingetbot waivers Add Validation-Executable-Error

This package does install and run successfully in a sandbox, so I have applied the executable waiver.

Thanks, @stephengillie.


SEOImages: User Story 1463880, Part 6

Summary
Updating image file names and references to improve SEO.
Fixes #1463880

@mairaw Please review this PR. There are no warnings and all extensions are lowercase,


Stop installing ko for visual-diff tests

The install step is down to 10s from around 1m40s in the last successful run. 🎉


E: Sub-process /usr/bin/dpkg exited unexpectedly

Installation and removal of packages and dependencies with apt (apt-get) fails.
Error message:
E: Sub-process /usr/bin/dpkg exited unexpectedly
Anyone who knows how to fix this is invited to share here please

Didn't you create this? So why are you asking us when you know more about this than we do

Hello. I have same error when I try upgrade kali Linux. The error is:
E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
but the directory exist with rights root.
ev/pts# cd
root@localhost:~# ls -lisa /dev/pts
total 0
1798903 0 drwxr-xr-x 2 root root  64 Feb 28  2019 .
1798900 0 drwxr-xr-x 4 root root 512 Mar 16 19:20 ..
root@localhost:~# ls -lisa /dev
total 16
1798900 0 drwxr-xr-x  4 root root  512 Mar 16 19:20 .
1606944 0 drwxrwxrwx 21 root root  832 Mar 16 19:20 ..
1798901 0 crw-rw-rw-  1 root root 5, 1 Feb 28  2019 console
1798911 4 lrwxrwxrwx  1 root root   13 Feb 28  2019 fd -> /proc/self/fd
1798902 0 crw-rw-rw-  1 root root 1, 7 Feb 28  2019 full
1798909 0 crw-rw-rw-  1 root root 1, 3 Mar 16 20:16 null
1798908 0 crw-rw-rw-  1 root root 5, 2 Feb 28  2019 ptmx
1798903 0 drwxr-xr-x  2 root root   64 Feb 28  2019 pts
1798905 0 crw-rw-rw-  1 root root 1, 8 Feb 28  2019 random
1798910 0 drwxr-xr-x  2 root root   64 Feb 28  2019 shm
1798912 4 lrwxrwxrwx  1 root root   15 Feb 28  2019 stderr -> /proc/self/fd/2
1798913 4 lrwxrwxrwx  1 root root   15 Feb 28  2019 stdin -> /proc/self/fd/0
1798914 4 lrwxrwxrwx  1 root root   15 Feb 28  2019 stdout -> /pro

Do NOT upgrade as it will break the whole system. Instead, install your packages manually using the scripts I have provided at /home/tools. You can simply download any i386 .deb packages and the respective dependencies from 2018-2019 releases at Debian Package or Snapshot Debian, extract and copy to the system using the script "debinst". You can also download and compile source files from the above websites, and install.
These methods are a workaround before I figure out how to make apt-get and/or aptitude to work as expected.
As to fix the
E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
run the script bugfix located at the/home/tools or find its location with this:
find / -name bugfix
This kali is from 2019. So you must actually run package versions around that year. I you want to run a newer version, the good thing to do is to compile and install.

Thank you for your respond. I never don't upgrade now.

Got it from official kali's nethunter rootfs
https://build.nethunter.com/kalifs/kalifs-20190228/
Tried most recent ones but all showing libtinfo6 and libc6 issues. If anyone can manage to get recent rootfs to work, would be great to share with the community


FAI-539: Counterfactual: Refactor support for "partial" goals in Trusty UI

See https://issues.redhat.com/browse/FAI-539
Many thanks for submitting your Pull Request :heart:!
Please make sure that your PR meets the following requirements:

[x] You have read the contributors guide
[x] Pull Request title is properly formatted: KOGITO-XYZ Subject
[x] Pull Request title contains the target branch if not targeting master: [0.9.x] KOGITO-XYZ Subject
[x] Pull Request contains link to the JIRA issue
[x] Pull Request contains link to any dependent or related Pull Request
[x] Pull Request contains description of the issue
[x] Pull Request does not include fixes for issues other than the main ticket

How to retest this PR or trigger a specific build:

Pull Request
Please add comment: Jenkins retest this

Quarkus LTS checks
Please add comment: Jenkins run LTS

Native checks
Please add comment: Jenkins run native

@kelvah This, I believe, now reflects Missy's final(?) design and hence can be merged; if you're happy with it.


Adaptive Sampling Error

>>If Adaptive or Fixed rate sampling are in operation, Ingestion sampling is disabled.
Please clarify is that statement is 'still' correct

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

ID: acd16eae-1cf7-5701-002a-d9dd7d50a3fe
Version Independent ID: 814e2755-5310-70e7-fcfe-958fa748b4d4
Content: Telemetry sampling in Azure Application Insights
Content Source: articles/azure-monitor/app/sampling.md
Service: application-insights
GitHub Login: @cijothomas
Microsoft Alias: cithomas

@yahorsi Thank you for your question!  We will verify this and get back to you shortly.

The statement is correct. If sampling is done once, then other sampling processing ignores the item from further sampling. So items sampled at sdk itself will be ignored from sampling considerations at ingestion even if sampling is turned on at ingestion side.

The statement is correct. If sampling is done once, then other sampling processing ignores the item from further sampling. So items sampled at sdk itself will be ignored from sampling considerations at ingestion even if sampling is turned on at ingestion side.

I will double check it again tomorrow but I observe the opposite, both sampling works, adaptive & ingestion.

mm..that would be a bug if that happens.. let us know if you find that to be the case.

@cijothomas  I'm looking into this as well and will follow up.

Ok, I made the test. I have ASP.NET site (https://github.com/yahorsi/AiSample) deployed to the Azure App Service with Application Insights and Ingest Sampling set to 8.3%.
I wrote client app that runs 100 requests to the site (https://edwtest.azurewebsites.net) with 1 second delay between them. In the end I can only see 10 events in the AI that means Data Sampling works even if there is Adaptive Sampling enabled. So, it either bug or incorrect doc.

And then I have changed ingestion sampling to 100% and rerun axactly the same tool to trigger 100 requests. And now I see 105 events, not sure why it is not 110 but it is clear that ingestion sampling works even if Adaptive Sampling on (see https://github.com/yahorsi/AiSample/blob/master/AiSample/ApplicationInsights.config)

cc @pharring

Adaptive sampling only kicks in in a few minutes after learning the initial load and then it will sample data to keep the telemetry rate under 5 items per second. If rate is under 5 items per second already, then items are not sampled on SDK, therefore, ingestion will apply sampling.
The question is how does Ingestion understand that sampling is enabled in SDK, I think it checks the sampling rate field on the item to know whether SDK sampled it already. So, if item was not actually "sampled In" on SDK side but was just let through because sampling on SDK is unnecessary because load is not too high - the Ingestion would apply its own sampling thinking it's first to evaluate this item.

Closing out this issue. We are also updating the doc with this additional info which will go live on Monday:

#please-close


Reusable Analysis APIs

LLVM has reusable analyses through the getAnalysisUsage api: http://llvm.org/docs/WritingAnLLVMPass.html#specifying-interactions-between-passes
It allows plugins to invoke and query existing analysis passes such as AliasAnalysis, LoopInfo, MemDependence, etc. Binary Ninja should support a generic and standardized analysis framework like LLVM's passmanager.
This ideally would likely result in a new type of plugin class being created.

Closing in favor of: #1606

Closing in favor of: #1606


Recent locations layout

The recent locations side list is pushing the atmospherics widget down. There is a lot of wasted white space.

Added to #1964


第 12 章：翻译存在的问题

12.5.2.

The physical media selection is on autoselection mode (media: Ethernet autoselect (100baseTX )). In this example, dc1 is configured to run with 10baseT/UTP media. For more information on available media types for a driver, refer to its manual page.

物理媒介的选择方式是自动选择模式（media: Ethernet autoselect (100baseTX <full-duplex>)）。在这个例子中，dc1 是被配置来以 10baseT/UTP 运行的。关于更多可用的媒介的驱动，请到它的手册页面上去寻找。

在这个例子中，dc1 是被配置来以 10baseT/UTP 运行的。关于更多可用的媒介的驱动，

???
类似地，

Sometimes performance of the card is poor or below average. In these cases, try setting the media selection mode from autoselect to the correct media selection. While this works for most hardware, it may or may not resolve the issue. Again, check all the network settings, and refer to tuning(7).

有时卡的性能很差或低于平均水平。在这些情况下，尝试将媒体选择模式从 sutoselect 设置为正确的媒体选择。虽然这对大多数硬件有效，但它也可能没法解决这个问题。同样，检查所有的网络设置，并参考 tuning(7)。

<IP_ADDRESS>. vfs.write_behind
The vfs.write_behind sysctl(8) variable defaults to 1 (on). This tells the file system to issue media writes as full clusters are collected, which typically occurs when writing large sequential files. This avoids saturating the buffer cache with dirty buffers when it would not benefit I/O performance. However, this may stall processes and under certain circumstances should be turned off.

This tells the file system to issue media writes as full clusters are collected, which typically occurs when writing large sequential files.

sysctl(8) 变量 vfs.write_behind 的默认值是 1（开启）。这告诉文件系统在收集完整的集群时进行媒体写入，这通常发生在写入大的顺序文件时。这可以避免在 I/O 性能无益的情况下用脏缓冲区使缓冲区缓存饱和。然而，这可能会拖延进程，在某些情况下应该关闭。

这告诉文件系统在收集完整的集群时进行媒体写入，这通常发生在写入大的顺序文件时。

媒体写入？

12.10 过于专业，我无法校对。只做了基础的格式调整。
https://docs.freebsd.org/en/books/handbook/book/#config-tuning


the map show nothing in release build, normal in debug build

I tested all and everything well in debug build, but when I upload to app store, try on test flight.
It is nothing to show on the map.
version 2.3.1

@vjerryv Interesting.  Is there a pervious version that works properly for you?

2.1.0 works

Hmm ok I merged in a branch that added support for OSX so if 2.1.0 works as needed on iOS I would just stick with that version for now. I'll let you know if I find the issue and update.

thanks

I can confirm the problem. With release build you get the first redraw of the clusters then nothing happens, on zoom, on data refresh...

@vjerryv don't you have any issue with map refresh using 2.1.0? I rolled back at that version and not when I replace the annotations set (after a new textual search that change the dataset for the map) the new annotations (singles and clustered) are not visible until I manual zoom in or out the map.

Yes, there are many critical problem while using TSClusterMapView.

Hello @ashare80, any chance to have the issue fixed?
thank you :)

Sorry super busy. Can't seem to reproduce the issue, is this still a problem on the latest update?


Build failure: breakpad

Steps To Reproduce
Run nix shell breakpad or, if you have fcitx5 on your machine, update your flakes and try rebuilding your system.
Build log
Build also failed on Hydra: https://hydra.nixos.org/build/239190603
       last 10 log lines:
       >                  from /nix/store/0b9bsznqs6pdg42dxcwvrlmarjn2p6a1-gcc-12.3.0/include/c++/12.3.0/iostream:39,
       >                  from ./src/google_breakpad/processor/minidump.h:88,
       >                  from ./src/google_breakpad/processor/exploitability.h:44,
       >                  from ./src/processor/exploitability_linux.h:41,
       >                  from src/processor/exploitability_linux.cc:37:
       > /nix/store/x8lqlydsxbrwvf6p7v18gws8kn1xl37f-glibc-2.38-23-dev/include/stdio.h:183:12: note: in a call to function 'int fclose(FILE*)' declared 'nonnull'
       >   183 | extern int fclose (FILE *__stream) __nonnull ((1));
       >       |            ^~~~~~
       > cc1plus: all warnings being treated as errors
       > make: *** [Makefile:5666: src/processor/exploitability_linux.o] Error 1
       For full logs, run 'nix log /nix/store/6lmz5k9p6pnlg6ksckhwid7x5ylfxiwz-breakpad-unstable-3b3469e.drv'.

Notify maintainers
@berberman

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.5.8-cachyos, NixOS, 23.11 (Tapir), 23.11.20231019.7c9cc5a`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix Super) 2.19.0pre20231015_ba035e1`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/store/1jic9mb65hqhnrdxafl4a6s103r85ya6-source`

I removed the 2 lines mentioning "breakpad" in fcitx file as a workaround. I wonder if upstream would be fine with removing breakpad support :/


Option to manually handle the update

Hey,
It would be good in some scenarios, like async calls, that we could control when the state should update manually (disabling the auto sync on next tick).

Transactions?

Hi, disablin state updates temporarily would be tge start of a bunch of 'why is my app not updating' problems.
If you need to make a bunch of updates that may affect to your app performance use transactions (there should be a really big number of updates to see a performance penalty) as @kuraga recommended.
For async operations just update the state when the call finish:
var f = new Freezer({
  loading: false,
  whatever: '',
  other: ''
});

f.on('startAsync', () => {
 // We set up a flag to show some loading message
 // in our app
 f.get().set({loading: true});

 asyncCall( () => {
   // Here you will update the state
   // f.get().set({whatever, 'yeah'});
   f.get().set({loading: false});

   // If you need to update more than one
   // domain of your state you can trigger a new
   // event
   f.trigger('endAsync', 'yeah');
 });
});

// This handles whatever
f.on('endAssign', result => {
 f.get().set({whatever: result});
});

// This handles other
f.on('endAssign', result => {
 f.get().set({other: 'Other ' + result});
});


Update Swift 3.0  podspec Result version

Can you give more insight into the motivation for this change? This looks like you're reverting the version of Result to an older one.

@gfontenot
hi. there is no version 4.0 available. The latest one is 3.0.
3.0 is what you have in Cartfile. So this one is just to make it consistent and working for CocoaPods users.
This one is also related to my comment to #95 PR.

This is done in https://github.com/thoughtbot/Swish/pull/95/commits/61807949b8ad39796b3466d440c553e9c192b8c6#diff-60bb710c5144ead8f8cb73a22de579abR1.


table: fix columns comment (s/rows/columns/)

This appears to have been fixed. Thank you!

Yes, thanks @Apteryks :)


Add shared key auth to data_lake

Is this just a rename that matches other SDKs?

No, small prefactoring for adding shared key auth, which we need downstream in delta-rs.

Is this just a rename that matches other SDKs?

No, small prefactoring for adding shared key auth, which we need downstream in delta-rs.

This be called StoragedSharedKeyCredential and follow a similar pattern as with our other SDKs.
If we yet have a common storage crate, I'd put it in there as well.

Not sure how done this is, and I can't comment on the correctness, but I had a few comments on code quality.

Thanks @rylev! Will review. The current state is that the e2e test passes (haven't tried the examples but should pass as well). I'm looking into doing a bit more work to align with the .Net SDK as proposed by @heaths. Overall goal is to quickly enable delta-rs PR to move forward and follow-up here with more small PRs to move the auth forward.

@rylev I addressed your comments. Most of them I'd like to fix in a follow-up PR since they are in copy/pasted code and I'd like to keep it "original" for this PR and address these in a follow-up PR.

@rylev follow-up PR: https://github.com/Azure/azure-sdk-for-rust/pull/595