AP not connecting to other (non-ESP32) devices

Tool Settings

Baud Rate:921600
WiFi Channel per Device: 6
FreeRTOS > Tick rate (Hz): 1000

To Reproduce

Build project(s) ... active_ap
Flash project(s) ... active_ap

Desktop (please complete the following information):

OS: Ubuntu

ESP-IDF Version: idf_ver 5.0

Hi everyone I'm really thankful to the steven sir and some other authors.
Now I'm ready with steven sir's AP code and running it successfully but the problem arises when i try to connect any other devices with esp32
The following use to display
I (947221) wifi:new:<6,1>, old:<6,0>, ap:<6,1>, sta:<255,255>, prof:6
I (947223) wifi:station: 00:1a:ef:58:29:85 join, AID=1, bgn, 40U
I (951227) wifi:station: 00:1a:ef:58:29:85 leave, AID = 1, bss_flags is 658530, bss:0x3ffbb84c
I (951228) wifi:new:<6,0>, old:<6,1>, ap:<6,1>, sta:<255,255>, prof:6
I (967688) wifi:new:<6,1>, old:<6,0>, ap:<6,1>, sta:<255,255>, prof:6
I (967690) wifi:station: 00:1a:ef:58:29:85 join, AID=1, bgn, 40U
please help me out and let me collect the csi data successfully :-(

I am not sure what the problem or bug is here.
You are using the active_ap.  The active_ap can receive CSI, but you also need a device to connect and transmit CSI. Otherwise the active_ap is just sitting and waiting for CSI.
The easiest way to accomplish this is through the use of a second ESP32 running the active_sta firmware. It is possible to use other devices as well, but this is an advanced use case that requires user's to have further advanced knowledge. This means: if you use anything other than an ESP32, I can not promise that I will be able to help you.

I am not sure what the problem or bug is here.
You are using the active_ap.  The active_ap can receive CSI, but you also need a device to connect and transmit CSI. Otherwise the active_ap is just sitting and waiting for CSI.
The easiest way to accomplish this is through the use of a second ESP32 running the active_sta firmware. It is possible to use other devices as well, but this is an advanced use case that requires user's to have further advanced knowledge. This means: if you use anything other than an ESP32, I can not promise that I will be able to help you.

Thank you for the reply actually I'm using one esp32 as active_ap and trying to connect that with other devices like mobile,laptop or desktop while connecting to those devices it is giving problem like above which i have mentioned

I am still not sure what the problem is though. You need to details the steps you have taken otherwise I cannot guess what your setup is. Are you connecting the external laptop device to the esp32 AP? How did you do this? Have you set up this external laptop device to transmit any packets? How did you do this?
I will reiterate: if you use anything other than an ESP32 for transmitting CSI, I can not promise that I will be able to help you.
If you find any useful tools or have any recommendations for how to generate CSI packets from non-ESP32 devices, please feel free to share your discoveries.

I am still not sure what the problem is though. You need to details the steps you have taken otherwise I cannot guess what your setup is. Are you connecting the external laptop device to the esp32 AP? How did you do this? Have you set up this external laptop device to transmit any packets? How did you do this?
I will reiterate: if you use anything other than an ESP32 for transmitting CSI, I can not promise that I will be able to help you.
If you find any useful tools or have any recommendations for how to generate CSI packets from non-ESP32 devices, please feel free to share your discoveries.

sure sir

I am still not sure what the problem is though. You need to details the steps you have taken otherwise I cannot guess what your setup is. Are you connecting the external laptop device to the esp32 AP? How did you do this? Have you set up this external laptop device to transmit any packets? How did you do this?
I will reiterate: if you use anything other than an ESP32 for transmitting CSI, I can not promise that I will be able to help you.
If you find any useful tools or have any recommendations for how to generate CSI packets from non-ESP32 devices, please feel free to share your discoveries.

Sir i have one doubt can we scan the available wifi devices in our surroundings and connect to the particular wifi to esp32 in STA mode..??

](url)

I think you need to review what the difference is between an AP and an STA.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html
https://defineinstruments.com/blog/networking-iot-and-wifi-101/
AP does not connect to other devices. Other devices connect to the AP.

Yes sir i know the difference between AP and STA quite well.
But when i made esp32 as STA there are many active wifi devices around me but still it's not connecting to any of open wifi

Please share all of the settings that you set with menuconfig. Specifically under ESP32 CSI Tool Config > ****.

Please share all of the settings that you set with menuconfig. Specifically under ESP32 CSI Tool Config > ****.

serial flasher config --> 'idf.py monitor' baud rate (921600 bps)
ESP32 CSI Tool Config >
(6) WiFi Channel
(myssid) WiFi SSID
(mypassword) WiFi Password
(100) Packet TX Rate
[] Should this ESP32 collect and print CSI data?
[]     (Advanced users only) Should we only collect LLTF?
[*]     Send CSI data to Serial
[ ]     Send CSI data to SD

3)component  config >
. ESP system settings > UART console baud rate >921600
. wIFI > [*] WiFi CSI(Channel State Information)
.FreeRTOS> (1000) Tick rate (Hz)

Please share all of the settings that you set with menuconfig. Specifically under ESP32 CSI Tool Config > ****.

Thank you sir i rectified my problem now it was a silly mistake i made but i learnt something from that
Now I'm able to connect esp32 to my wifi device(router)  and now it's showing like sending frames

Sir i established a connection between esp32(STA) and my wifi router(AP) and now I'm getting some  values on my console by the name of CSI_DATA,STA are they really a CSI values ? If "YES" then why I'm not able to download those values.? If "NO" then what should i do to get CSI DATA  downloaded.?
Once again I apologize for a silly question

Are you deleting your messages? I received an email saying that you left a comment with your menuconfig parameters, but I cannot find the comment anymore. It makes it very confusing for me to help track down  and understand your problems when the messages keep disappearing.
In the future, other users might look through these conversations to solve their own problems. If you made a mistake, someone in the future will likely make the same mistake. You say:

i rectified my problem it was just a silly mistake

but you did not share the mistake or the solution. If you share the mistake and the solution, then it could help user's in the future.
Also, there are no silly questions. We do not know how to walk or talk when we are born, we have to learn how to do these things.

Now on to your question. Yes the data labelled CSI_DATA,STA,... is the CSI data. What do you mean by:

I'm not able to download those values?

What do you mean by "download"?
Share a small sample of the output lines that start with CSI_DATA,STA so that I can understand what you are looking at.
Imagine I am all the way on the other side of the planet and I am trying to help solve problems with you. Imagine that I cannot see what you have done. Imagine that I cannot know what you have tried or what you have not tried yet. Imagine that I cannot read your mind to understand what actual problems are happening. With that imagined scene in your mind, make sure to add as much useful information to your comments as you can. The better that you can explain what is happening, the better that I can help you. Read and reread your comments before you post them to make sure that they are readable and can be understood by someone that is not in the same room with you.

Are you deleting your messages? I received an email saying that you left a comment with your menuconfig parameters, but I cannot find the comment anymore. It makes it very confusing for me to help track down and understand your problems when the messages keep disappearing.
In the future, other users might look through these conversations to solve their own problems. If you made a mistake, someone in the future will likely make the same mistake. You say:

i rectified my problem it was just a silly mistake

but you did not share the mistake or the solution. If you share the mistake and the solution, then it could help user's in the future.
Also, there are no silly questions. We do not know how to walk or talk when we are born, we have to learn how to do these things.

Sorry sir for this actually in the ESP32 CSI tool config i did not set my wifi(router) SSID name and PASSWORD that's why i was not able to connect my to wifi before . Before i rectify my mistake the settings were like this
ESP32 CSI tool config
(6) WiFi Channel
(myssid) WiFi SSID
(mypassword)  WiFi Password
(100) Packet TX Rate
[ * ] Should this ESP32 collect and print CSI data?
[ * ]     (Advanced users only) Should we only collect LLTF?
[ * ]     Send CSI data to Serial
[   ]     Send CSI data to SD

Now on to your question. Yes the data labelled CSI_DATA,STA,... is the CSI data. What do you mean by:

I'm not able to download those values?

What do you mean by "download"?
Share a small sample of the output lines that start with CSI_DATA,STA so that I can understand what you are looking at.
Imagine I am all the way on the other side of the planet and I am trying to help solve problems with you. Imagine that I cannot see what you have done. Imagine that I cannot know what you have tried or what you have not tried yet. Imagine that I cannot read your mind to understand what actual problems are happening. With that imagined scene in your mind, make sure to add as much useful information to your comments as you can. The better that you can explain what is happening, the better that I can help you. Read and reread your comments before you post them to make sure that they are readable and can be understood by someone that is not in the same room with you.

I mean I'm getting the values(data) like below if these are CSI data only then why I'm can not able to download those by using the command "idf.py moniotr -p /dev/ttyUSB0 |grep "CSI_DATA" > sta-file.csv"
initial wifi connection established.
sending frames.
CSI_DATA,STA,38:D5:47:42:F6:D0,-58,11,1,7,0,1,1,1,1,0,0,-96,1,1,0,1610937,0,134,0,0,1.76928,384,[-122 96 8 0 -19 3 -15 2 -11 2 -5 1 1 1 6 1 10 1 14 1 19 1 21 2 23 2 25 3 24 3 24 4 21 5 19 5 15 5 10 5 6 3 2 2 -3 0 -7 -3 -10 -6 -13 -8 -14 -11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 -2 7 -5 10 -8 12 -12 15 -14 16 -16 18 -17 19 -18 20 -17 20 -17 19 -15 17 -13 14 -13 11 -10 6 -9 2 -6 -3 -5 -8 -3 -12 -1 -17 1 -20 3 -24 4 -27 4 -27 4 -28 5 -28 5 ]
CSI_DATA,STA,38:D5:47:42:F6:D0,-60,11,1,7,0,1,1,1,1,0,0,-96,1,1,0,5889409,0,98,0,0,6.04754,384,[98 32 6 0 -7 -6 -3 -4 1 -4 4 -5 7 -5 9 -6 11 -8 12 -10 12 -12 12 -12 11 -14 9 -15 8 -15 6 -15 5 -14 3 -13 2 -11 2 -9 1 -7 1 -5 1 -3 2 -1 3 1 3 2 4 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -9 17 -13 19 -15 20 -16 21 -17 22 -17 21 -16 21 -15 19 -14 17 -13 14 -11 10 -10 6 -9 1 -8 -4 -8 -8 -9 -11 -9 -15 -11 -17 -13 -19 -14 -20 -16 -20 -18 -20 -18 -18 -18 -16 -17 -14 -15 -12 ]
CSI_DATA,STA,38:D5:47:42:F6:D0,-60,11,1,7,0,1,1,1,1,0,0,-96,1,1,0,5900711,0,98,0,0,6.05851,384,[98 32 6 0 -25 6 -25 7 -23 10 -22 11 -19 11 -16 11 -12 10 -10 9 -7 7 -5 5 -3 2 -2 -1 -2 -5 -1 -7 -2 -9 -3 -11 -3 -13 -5 -14 -6 -15 -7 -15 -8 -14 -8 -14 -8 -13 -8 -12 -7 -11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 -20 10 -17 9 -12 10 -7 9 -1 9 4 9 9 9 14 10 19 11 23 12 25 13 28 14 28 14 28 14 26 14 23 13 20 11 16 9 13 6 10 2 7 -2 5 -7 3 -12 2 -16 2 -19 3 ]
CSI_DATA,STA,38:D5:47:42:F6:D0,-60,11,1,6,0,1,1,1,1,0,0,-96,1,1,0,5921241,0,98,0,0,6.07906,384,[98 32 6 0 17 -18 17 -20 15 -21 13 -21 10 -20 8 -18 5 -16 3 -13 1 -10 0 -7 0 -3 0 -1 1 3 2 5 3 8 5 10 6 11 8 12 9 12 10 12 10 11 10 11 10 10 9 10 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 19 8 18 4 15 0 11 -4 7 -8 4 -13 0 -17 -3 -22 -6 -25 -8 -28 -10 -30 -12 -31 -12 -31 -11 -30 -10 -28 -8 -25 -6 -22 -5 -17 -4 -12 -3 -7 -4 -2 -5 3 -6 8 -8 12 -11 14 -13 ]
CSI_DATA,STA,38:D5:47:42:F6:D0,-60,11,1,7,0,1,1,1,1,0,0,-96,1,1,0,5945501,0,100,0,0,6.10328,384,[100 64 6 0 9 -26 7 -26 6 -26 4 -25 2 -23 0 -21 -1 -18 -2 -14 -3 -10 -3 -7 -1 -3 0 0 2 3 3 5 6 7 8 9 9 10 11 10 12 10 13 10 13 9 13 9 13 9 12 8 10 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 4 20 5 14 6 9 7 3 6 -4 6 -9 7 -15 7 -20 7 -25 8 -29 8 -32 9 -33 10 -33 10 -31 10 -29 10 -25 10 -21 8 -16 6 -12 5 -8 1 -3 -2 1 -6 4 -11 7 -14 8 -19 ]

Great, that helps understand the problem a little bit better. However, I still do not understand:

why I can not able to download those by using the command "idf.py moniotr -p /dev/ttyUSB0 |grep "CSI_DATA" > sta-file.csv"

Is there an error that is occurring? Does the command generate a blank file? What are you expecting to see specifically and what are you actually seeing? You need to be more specific about what problems are happening or I cannot help you. Here are some example of Good ways to ask technical questions and a Bad way to ask technical questions.

Good Example:
I run idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > sta-file.csv.
sta-file.csv is created, but the file is empty. I tried breaking down the problem myself by doing X, Y and Z.
X works fine
Y works fine
Z seems to cause an issue.

Bad Example:
I run idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > sta-file.csv. But data does not exist.

I hope you can recognize the difference in approaches for the two example.
Finally, please see the following: https://github.com/StevenMHernandez/ESP32-CSI-Tool/issues/6#issuecomment-801992612

Great, that helps understand the problem a little bit better. However, I still do not understand:

why I can not able to download those by using the command "idf.py moniotr -p /dev/ttyUSB0 |grep "CSI_DATA" > sta-file.csv"

Is there an error that is occurring? Does the command generate a blank file? What are you expecting to see specifically and what are you actually seeing? You need to be more specific about what problems are happening or I cannot help you. Here are some example of Good ways to ask technical questions and a Bad way to ask technical questions.

Good Example:
I run idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > sta-file.csv.
sta-file.csv is created, but the file is empty. I tried breaking down the problem myself by doing X, Y and Z.
X works fine
Y works fine
Z seems to cause an issue.

Bad Example:
I run idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > sta-file.csv. But data does not exist.

I hope you can recognize the difference in approaches for the two example.
Finally, please see the following: #6 (comment)

Thank you sir for guidelines
Yes the command is generating the blank(empty) file it doesn't contain any data in it

sir if run echo "testing" > new_file.csv
I have CSI_DATA in my console and the csv is file created if i open that file in libreoffice it is empty with single name CSI_DATA

sir if i run make monitor > new_file.csv the csv file is created but it is empty

if i run make monitor | grep "CSI_DATA" the csv file is not getting created

and if i run "make monitor | grep "CSI_DATA" > new_file.csv" and "make monitor | cat > new_file.csv" the same thing happening like what i said in point no 2.

what is happening really i don't know
One more question sir why I'm getting csi data delayed by more than 5-8 seconds

Sorry to disturb you sir. Can you please help me how can i download that csv file now ;-(

Sorry, I have been busy with my own work and I have been unable to look at issues.
Take a look at learning about "unix-pipes" and "unix-redirection". These concepts will be very useful for your future knowledge. It will also help understand why I was asking you to perform the 4 steps and what you should expect to see after each step.
For example: 1 and 3 are doing exactly what would be expected. Number 2 and 4 are not working as expected. Number 2 is a simplified version of number 4.
This means we should look at why number 2 is not working. Thank you for adding screenshots, this helps with this process. It looks like when you run make monitor > sat_file.csv the process stops with some (Error?) message:

`...make target 'monitor'. Stop.

Why is the process stopping? Did you stop the process manually? Actually, I think I already helped you with this exact problem See #44.

Sorry, I have been busy with my own work and I have been unable to look at issues.
Take a look at learning about "unix-pipes" and "unix-redirection". These concepts will be very useful for your future knowledge. It will also help understand why I was asking you to perform the 4 steps and what you should expect to see after each step.
For example: 1 and 3 are doing exactly what would be expected. Number 2 and 4 are not working as expected. Number 2 is a simplified version of number 4.
This means we should look at why number 2 is not working. Thank you for adding screenshots, this helps with this process. It looks like when you run make monitor > sat_file.csv the process stops with some (Error?) message:

`...make target 'monitor'. Stop.

Why is the process stopping? Did you stop the process manually? Actually, I think I already helped you with this exact problem See #44.

i didn't stop manually until it that csv file get created. I'm just stuck at the end point (not able to get CSI data in csv file) :-(

Do you understand unix pipes and redirection?

Do you understand unix pipes and redirection?

Yes sir I'm understanding it, Now my question is I'm using a single esp32 board(STA mode) is that the reason why I'm not able to get csi data in csv file.??
Sorry for asking again and again. If i get to know is that the reason means i could use another esp32 board as AP

Oh I see. Please use idf.py instead of make.
Also, do not forget -p from #44

Oh I see. Please use idf.py instead of make.
Also, do not forget -p from #44

Yes sir i did that too idf.py adding -p to it
but once you check the images which i got
when i run

echo "testing" > new_file.csv
the csv file is created but no CSI data in that

2.make monitor > new_file.csv
csv file is created but showing something else which i don't have any idea

3.when i run this command nothing is happening make monitor | grep "CSI_DATA
4.make monitor | grep "CSI_DATA" > new_file.csv
csv is getting created but it is empty

5.make monitor | cat > new_file.csv
when i run this same thing happening as point 2

And finally when i run idf.py monitor -p  /dv/ttyUSB0 | grep "CSI_DATA" > my-experiment-file.csv here also csv file is getting created but it is empty
Sir please can you help me how can i download CSI DATA however CSI data is getting printed on serial but not on csv file

Did you read the error in new_file1.csv and new_file3.csv?

Run these three steps and identify the errors:

idf.py monitor -p /dev/ttyUSB0
idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA"
idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > my-experiment-file.csv

Did you read the error in new_file1.csv and new_file3.csv?
Run these three steps and identify the errors:
1. `idf.py monitor -p /dev/ttyUSB0`

2. `idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA"`

3. `idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > my-experiment-file.csv`

Sir if i run
idf.py monitor -p /dev/ttyUSB0 this command runs same as the idf.py flash monitor and connect to my AP (wifi router) and I'll start getting CSI_DATA on my serial monitor
If i run idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA"  it shows binary file (standad input) matches   and idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > sta-file.csv and in csv file it shows like below image

And if i run directly idf.py monitor -p /dev/ttyUSB0 | grep "CSI_DATA" > sta-file.csv after idf.py flash monitor the same thing is coming on the csv file as in the image

Show me a screenshot for:

idf.py monitor -p /dev/ttyUSB0

Did you search for "binary file (standad input) matches"?

None of the commands I shared should automatically exit. Are they?

Show me a screenshot for:
1. `idf.py monitor -p /dev/ttyUSB0`

Did you search for "binary file (standad input) matches"?
None of the commands I shared should automatically exit. Are they?

No sir they are not exiting automatically just i asked for the information whether we manually need to exit or they automatically exit
Sir i changed the baud rate now so I'm able to see the CSI data for STA mode in csv file .Before the baud rate was 921600 now i made that 115200  i don't think it is because of baud rate.But whatever the data i got in csv file that is different from the data printed on console . I think because of the speed I'm loosing some data but apart from those data at least one  frame should match right.??
And I"m running it for 30sec to 1 min in that time I"m getting more than 50+ frames on my console and more than 250+ frames on csv file

Sir how i can find real and imaginary data from CSI_DATA which i got in csv file..??

Sorry to disturb you sir,,
Sir i have one more doubt can we get the two sets of same data while receiving the csi data..??

To parse the real/imaginary data, see https://github.com/StevenMHernandez/ESP32-CSI-Tool/blob/master/python_utils/parse_csi.py

Sir i gone through python_utils file in your project but i don't know how to run parse_csi.py file
please help me sir
And if try to run idf.py monitor | python ./python_utils/serial_append_time.py > my-experiment-file.csv  this is showing no cmakelist.txt found as i shared in screenshot

Now I'm only left with plotting the amplitude and phase  please help me out sir

@StevenMHernandez  Thank you so much sir for your source by which i can able to complete my project up to some extent :-) Now just trying to plot it for real time but not getting that could you please help for this..??

Okay thank you so much sir :-)


How to handle querystrings in the url?

I'm going to render a url which contains some querystring, for example the following url should render the second page '/PageNo-2':
https://www.digikala.com/Search#!/PageNo-2/
After rendering this page using the web interface, only the first page is shown (https://www.digikala.com/Search#!/)
Why?

I can't reproduce it, website redirects to https://www.digikala.com/Search?pageno=2 and shows a second page for me, both in Splash and in Firefox.


ISPN-11441 Add blockhound support to hotrod server

https://issues.redhat.com/browse/ISPN-11441

All the CI test failures appear unrelated. They are all in different modules and this should have only affected server/hotrod.

And trying to run locally the various tests pass.

Merged, thanks Will!


Question: Smart limiting/grouping of 2D spatial sound instances

Hi, I'm looking for a sound library and this one seems pretty cool since I am using the jwgl3 backend anyways.
I have a small question whether this library supports an easy way to (smartly) limit/group multiple spatial 2d sound emitters?
In my use case i have a 2d game where there are enemies (spiders) which emit a constant looping movement sound (crawling).
There can be tens of spiders in a level.
I would like there to only be like 2-4 instances, depending on where the spiders are located.
E.g. if there are multiple spiders left and right of the player, it should only play one 2d sound on the left, and one on the right, etc.
The grouping/limit should also update when the player moves.
Right now I only have a very naive sound instance limitation, which can cause problems with many spiders because only certain spiders emit sounds and it's not consistent, especially when moving around.
Is there any easy way to achieve this with this library?

Hi!
I think the problem consists of 2 different parts.

Sound part: panning, volume distance attenuation, optionally distance reverberation
Finding groups: determine which and how many spiders should be grouped together and linked to a single sound source and where its center is located.

The library does part 1 pretty much automatically, without having you to take care of anything but the position. You just set the position in 3D space (in your case you just set Y or Z to 0 to make it 2D) and that's it. Panning, volume distance attenuation, and if needed distance reverberation are automatically adjusted by the library.
Part 2 is quite a complex problem and very individual, so I'd rather leave this to the application, I think it's out of scope of this library.
What you are looking for is probably a grouping/clustering algorithm.
K-means looks promising to give a good result audiowise. Oh nice, there's a Baeldung article about it here.
If performance is more important, I think your approach is actually sufficient. Splitting into left and right should not cost very much computing power. Also splitting into quarters could be an option to achieve a better result.


Global variable (memory leak?)

Hi,
On line 70 of utils.js, the variable 'originalValue' is not declared using var, this results in it being defined as a global variable instead of a local variable. You should consider using strict mode to prevent these errors.
Cheers,
Adam.

I see you fixed this in the past few days :)


syncfile naming odd, both times same

I think there is a problem with the procstart time in miniseed2dmc.c, at least as far as naming the output sync file. Both times seems to be the same. For example:
-rw-rw-r-- 1 scsn scsn 123042 May 15 16:08 2019-05-15T16:08:37--2019-05-15T16:08:37.sync
Pretty sure this run took several minutes. Start and end times are the same and the end match the file modification time, at least to the minute. Had a quick look at the code, but I don't see where the issue is, other than it seems likely that the starttime is the one wrong.

Thanks.  Fixed in d07bda8b1bbfdd9b7787a1845ccd25b83d7307ae, will be in next release.


Widgets in cacheExtent are not painted properly

https://github.com/flutter/flutter/issues/82998 is about shadow flickering behaviour which was fixed after https://github.com/flutter/engine/pull/27124 where more consistent math was used to draw shadows. However, there is some discussion about this new issue as it was originally though to be the same issue.
Steps to Reproduce

Execute flutter run on the code sample
Scroll through the widgets to see how widgets disappear before their shadows are out of view.

*The example uses very large coloured shadows to exaggerate the effect so it's more subtle in actual use cases most of the time but it's sometimes very clear as seen in https://github.com/flutter/flutter/issues/31768
Expected results:
Shadows should stay on screen.
Actual results:
Shadows disappear suddenly before they are out of view.

Code sample

import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(home: Journal(false)));
}

class Journal extends StatefulWidget {
  final bool animate;
  const Journal(this.animate, {Key? key}) : super(key: key);
  @override
  _JournalState createState() => _JournalState();
}

class _JournalState extends State<Journal> with TickerProviderStateMixin {
  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: Center(
        child: SizedBox(
          // height: 400,
          child: CustomScrollView(
            cacheExtent: 1000,
            slivers: [
              SliverToBoxAdapter(
                child: JournalEntry(
                  date: 'Jan 18, 2021',
                  entryText:
                      'Amet ea aute reprehenderit occaecat incididunt excepteur anim id reprehenderit ad voluptate.',
                  shadowColor: Colors.green,
                ),
              ),
              SliverToBoxAdapter(
                child: JournalEntry(
                  date: 'Jan 18, 2021',
                  entryText:
                      'Amet ea aute reprehenderit occaecat incididunt excepteur anim id reprehenderit ad voluptate.',
                  shadowColor: Colors.blue,
                ),
              ),
              SliverToBoxAdapter(
                child: JournalEntry(
                  date: 'Jan 18, 2021',
                  entryText:
                      'Amet ea aute reprehenderit occaecat incididunt excepteur anim id reprehenderit ad voluptate.',
                  shadowColor: Colors.orange,
                ),
              ),
              SliverToBoxAdapter(
                child: JournalEntry(
                  date: 'Jan 18, 2021',
                  entryText:
                      'Amet ea aute reprehenderit occaecat incididunt excepteur anim id reprehenderit ad voluptate.',
                  shadowColor: Colors.purple,
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class JournalEntry extends StatefulWidget {
  final String date;
  final String entryText;
  final Color shadowColor;

  const JournalEntry(
      {Key? key,
      required this.date,
      required this.entryText,
      required this.shadowColor})
      : super(key: key);

  @override
  _JournalEntryState createState() => _JournalEntryState();
}

class _JournalEntryState extends State<JournalEntry> {
  @override
  Widget build(BuildContext context) {
    return Material(
      color: Colors.white.withOpacity(0),
      child: Container(
        margin: const EdgeInsets.symmetric(horizontal: 25, vertical: 15),
        padding: const EdgeInsets.fromLTRB(20, 15, 20, 18),
        decoration: BoxDecoration(
          color: Theme.of(context).backgroundColor,
          borderRadius: BorderRadius.circular(20),
          boxShadow: [
            BoxShadow(
              color: widget.shadowColor.withOpacity(0.42),
              blurRadius: 20,
              spreadRadius: 50,
            ),
          ],
        ),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.start,
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            // * Heading
            Text(
              widget.date,
              style: Theme.of(context).textTheme.subtitle2,
            ),
            const SizedBox(height: 10),
            const Placeholder(fallbackHeight: 160),
            const SizedBox(height: 10),
            Text(
              widget.entryText,
              style: Theme.of(context).textTheme.bodyText2,
            ),
          ],
        ),
      ),
    );
  }
}

Logs

flutter analyze:
No issues found! (ran in 1.5s)

flutter doctor -v:
[✓] Flutter (Channel master, 2.6.0-12.0.pre.379, on macOS 11.6 20G165
    darwin-arm, locale en-AE)
    • Flutter version 2.6.0-12.0.pre.379 at
      /Users/hadymashhour/Developer/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 93da78f896 (2 days ago), 2021-10-16 07:18:02 -0400
    • Engine revision faa45f497f
    • Dart version 2.15.0 (build 2.15.0-226.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/hadymashhour/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.61.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.27.0

[✓] Connected device (3 available)
    • iPhone 13 Pro (mobile) • DD5DC257-9F7D-4B47-8C22-4CEE8A753F56 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)        • macos                                •
      darwin-arm64   • macOS 11.6 20G165 darwin-arm
    • Chrome (web)           • chrome                               •
      web-javascript • Google Chrome 94.0.4606.81

• No issues found!

See https://github.com/flutter/flutter/issues/82998#issuecomment-942443932 for screen recordings.

Issue is reproducible on stable and master.

screen recording
https://user-images.githubusercontent.com/88313112/137882968-130d245a-4ed1-47a2-a3d8-19aeafe17adc.mov

 flutter doctor -v
[✓] Flutter (Channel master, 2.6.0-12.0.pre.381, on macOS 11.6 20G165 darwin-arm, locale en-GB)
    • Flutter version 2.6.0-12.0.pre.381 at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ef634b39a5 (8 hours ago), 2021-10-18 15:10:33 -0700
    • Engine revision faa45f497f
    • Dart version 2.15.0 (build 2.15.0-226.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.61.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.27.0

[✓] Connected device (3 available)
    • iPhone 13 (mobile) • 7515F01A-C1B6-456E-8559-8D2383D3719D • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)    • macos                                • darwin-arm64   • macOS 11.6 20G165 darwin-arm
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 94.0.4606.81

• No issues found!

[✓] Flutter (Channel stable, 2.5.3, on macOS 11.6 20G165 darwin-arm, locale en-GB)
    • Flutter version 2.5.3 at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (4 days ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.0, Build version 13A233
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.61.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.27.0

[✓] Connected device (3 available)
    • iPhone 13 (mobile) • 7515F01A-C1B6-456E-8559-8D2383D3719D • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)    • macos                                • darwin-arm64   • macOS 11.6 20G165 darwin-arm
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 94.0.4606.81

• No issues found!

Having the same issue.
Any solutions?


Assorted fixes

WIP

Besides the V8 changes this adds the rest of the (awful) workaround for the crash in https://linear.app/replay/issue/TT-957


lab --version requires api authentication

Invoking with simple args such as --version or --help should not require authentication to GitLab and should not query the remote server.
Without configuration:
lab --version
Enter GitLab host (default: https://gitlab.com):

When hitting rate limiting on GitLab:
lab --version
2020/03/28 19:36:45 main.go:178: GET https://gitlab.com/api/v4/user: 429 failed to parse unknown error format

Looks like this was resolved in #421


[Bug] fancyzones: space around zones reenables itself after editing layout

I never want space around zones in my custom layout.
However when moving around between the "choose your layout"-tabs and then editing my custom layout again it's somehow there again.
Please just take out "space around zones", before it learns to plays nice.
Can make video recording of it, but should be simple enough to reproduce.

Figured out how to reproduce it precisely. Simply have the setting disabled. Click "edit custom layout", don't make any changes and press "Save and Apply".
Video shows how it's done:
https://www.loom.com/share/8de6d0cb8bdd4d2ba8ce10520819ec61

A workaround for those, who are annoyed by the space as well is the following:
Have the setting 'Show space around zones' enables but set the value for 'space around zones' to 0.

Fix available in v0.15.1 https://github.com/microsoft/PowerToys/releases

Yeah, I can actually use FancyZones now!
Before I ended up quickly uninstalling it or ignoring it, because of this bug.
The setting still can reeenable itself, but it's very rare now, so not a problem.
Can't figure out how to reproduce it even, but I guess it involves two external monitors/multiple Virtual Desktops,rebooting the OS and maybe something done in Display Settings.


Add DTLS KeyLog configuration option in WebRTC API

Description
Add an option in the setting engine to log TLS key material when a DTLS connection is established with a peer. The option exists in pion/dtls but is not easily accessible. A user would use it very similarly to the crypto/tls package :
...
if keyLog := os.Getenv("SSLKEYLOGFILE"); len(keyLog) != 0 {
		w, _ := os.OpenFile(keyLog, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0600)
		settingEngine.SetDTLSKeyLogWriter(w)
}
...

This is somewhat related to #618 as it lets a user use Wireshark or a similar tools to capture and decrypt a particular session.

This is really cool @npmenard
If you are interested I would like to make a post on using this! Debugging WebRTC is hard, this is a lot easier then the alternative.


Docs: Align OS table with systems supported by Nutanix

Issue #, if available: N/A
Description of changes:
Align OS table with systems supported by Nutanix.
Testing (if applicable): N/A
Documentation added/planned (if applicable):
Align OS table to align systems supported by Nutanix.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm
/approve
/cherrypick release-0.19


Automations not being restored after restart

Home Assistant release with the issue:
87.1 Docker
Last working Home Assistant release (if known):
All I remember it has been a few releases now.
Operating environment (Hass.io/Docker/Windows/etc.):
Docker
Please provide details about your environment.
-->HA Docker 87.1 on Unraid
Component/platform:
Automation Domain
Description of problem:
When restarting HA, all automations are not being restored. When HA starts, all my automations are off.
Im aware of initial_state: 'on" but shouldnt have to add it to every automation.
I also noticed that the master automation switch only works in the original UI not lovelace.

Please check the docs carefully, that is not how you use initial_state: 'on'. You need to add that to every automation.

Please check the docs carefully, that is not how you use initial_state: 'on'. You need to add that to every automation.

Was there something that change in a new release that caused this? For well over a year that I have been using HA my automatons were always ON by default.

From the chat in Discord, the problem is that the state isn't being restored.

How do you mean? So, if you use initial_state: 'on' it will not restore state (it will always start as on). Restore is only used when the initial state is not defined (similar to input_boolean).

How do you mean? So, if you use initial_state: 'on' it will not restore state (it will always start as on). Restore is only used when the initial state is not defined (similar to input_boolean).

Please forget I even mentioned initial_state: 'on' My automations are not restoring themselves without it.

Turn an automation on and then restart HA. See what happens?
To verify what is going on, you can check the entries in core.restore_state for your automation.

I have noticed this issue as well since the new state recorder came in. I ended up putting my automations to initial_state: 'on' but that is a bandaid to the problem, not a fix. This prevents me from having an automation that I may want to have turned off for awhile.
It didn't seem to happen to me every restart but it happened often enough that I had to resort to defaulting them to on.

I have noticed this issue as well since the new state recorder came in. I ended up putting my automations to initial_state: 'on' but that is a bandaid to the problem, not a fix. This prevents me from having an automation that I may want to have turned off for awhile.
It didn't seem to happen to me every restart but it happened often enough that I had to resort to defaulting them to on.

This.....something happened along the way that seemed to mess it up.

Turn an automation on and then restart HA. See what happens?
To verify what is going on, you can check the entries in core.restore_state for your automation.

I turned them on individually and restarted. Ha restarted and they are all off again.

I think it started around 0.86.0 As i Made a mention of it once they fixed state restore after the slugify change.
https://github.com/home-assistant/home-assistant/pull/20367#issuecomment-457046380

Have you tried deleting your recorder database? I think this was solved for me after mine became corrupted and I had to start a new one.

This as become a recent issue for me, every time I start making a few changes that require restarts all of my automations turn off
I would really prefer not to lock them to on at startup because I have some seasonal ones etc but this is getting annoying.

@bagobones I know its really silly and I know it wasn't like that before but I was always told I dont know what im talking about, that its always been like that.  It should just remember the state and it doesnt.

Came here to report the same thing. I've had to set all my automations to initial_state: on It was just pointed out to me that this is in fact in the docs, but the fact that they aren't remembering the state is annoying. That being said, I restart hassio lots because I'm always making config changes.
Wonder if there's a way to add something to the automation editor to signal this, like a checkbox:
"Initial state:
[ X ] ON
[___]  OFF
"


Create tag for 0.17.1

I started working on this, but my environment is just messed up enough that I couldn't do it. Haven't tested yet, but I do have work that could benefit from this image.

Done!


Can't get to terminal to install the firmware

I have finished assembling my boards and was excited to start installing the firmware but as soon as I powered the board (with the raspberry pi connected to both screen and monitor), the booting started without asking me to login (as described in the instructions) and after a few seconds both the little screen and the monitor were displaying the nsynth grid correctly. The touchpad, potentiometers and midi don't seem to work though, and most importantly no sound is coming out the minijack.
I assume the firmware is not properly installed? I would like to go back to the terminal and try running the mount commands, but.. how do I get to back to the terminal??
Thanks!

Hey I just read here how to do it.

To replace the file and recompile the application you will need access to the Raspberry Pi. Hook it up to an HDMI monitor and a USB keyboard and boot it. Initially, you will see a copy of the Open NSynth Super screen. Hitting the ESC key will get you to a login prompt. Use the username "pi" (without quotes) and the password "raspberry" to log in. As the SD card is mounted as read only by default, you will need write access by remounting it: "sudo mount -u remount,rw /".

Hope this works!
K


loading a texture from raw data is quite slow

just looking into it.

Did some digging. Looks like SWIG is looping through the raw python list, checking to see if each item is a number before inserting into some linked list. We can look into accepting numpy arrays directly to hopefully speed up the wrapper code

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.

Should be fixed in the next version of visii. Make sure to pass numpy arrays directly into the create_from_data function instead of a raw python list for best performance.


[5.4] FormRequest should fail with ValidationException

The FormRequest class is outlined in documentation as an alternative to validation via trait for more complex validation rules.
But while the trait based validation throws a ValidationException the FormRequest throws an HttpResponseException.
That's inconsistent, undocumented and unexpected for anyone working with validations.
On one hand this is a bugfix, but on the other hand this is obviously a backwards incompatible change due to the very nature of the bug (throwing the wrong exception).
Also, see issue  #12276 for a discussion about the problem.

@JosephSilber didn't we talk about doing this for 5.3? I think we wanted to for 5.2 but didn't because it's a breaking change? Or did we have another reason? Regardless, this would need to go to 5.3 branch not  master.

Contribution guidelines in the docs stated that backwards incompatible changes should go to master. As the issue was closed some time ago I expected this to be considered a feature request instead of a bugfix.

Resubmitted to 5.3 as instructed.
Will close this PR now as it's obviously landed in the wrong branch.


Two Feldspar

There is another Feldspar in Dark Bramble after I sent him back to village.

The location of the extra feldspar is on the eggs of the anglerfish.

Thanks for report, fixed in last update


Create New Dashboard

As a user, I want to be able to create a new dashboard, so that I may have many dashboards, each showing different sets of data.

@jessehall3 and I are taking this.

This issue was closed by the PR that was recently merged.


How to get trial_tdof_list, test_tdof_list?

Hi all,
I want to use the function mfem::ParMixedBilinearForm::FormRectangularLinearSystem (link to documentation).
It requires a trial_tdof_list and test_tdof_list. In the documentation, I did not find any hints on how to generate these lists and what size or entries are expected in these lists.
I have an array bdr_attr_is_ess, which marks some attributes on the boundary as essential on the trial space. On the test space, there is no essential boundary. Is there a simple function, similar to mfem::ParFiniteElementSpace::GetEssentialTrueDofs which creates a trial_tdof_list / test_tdof_list for a given bdr_attr_is_ess?
If there is not such a function, how can the lists be generated manually?
Thanks in advance,
Andreas

If there are no essential test DOFs, you can just use an empty array:
Array<int> test_tdof_list; // empty list since no essential test dofs

Then, you can get the essential trial DOFs using ParFiniteElementSpace::GetEssentialTrueDofs just as you mention:
Array<int> trial_tdof_list;
trial_fes.GetEssentialTrueDofs(bdr_attr_is_ess, trial_tdof_list);

The resulting arrays test_tdof_list and trial_tdof_list should do you what you want.

Thanks for the fast reply!

Array<int> test_tdof_list; // empty list since no essential test dofs

Array<int> trial_tdof_list;
trial_fes.GetEssentialTrueDofs(bdr_attr_is_ess, trial_tdof_list);

This solved my problem. I was not aware that with test_tdof_list the essential tdofs are ment. Now its clear.


Check C# samples/snippets syntax

I'm about to submit a series of PRs to check syntax and styles of samples. This issue is for general suggestions and discussions.

I'm not making parallel changes to C++/VB samples... If anyone is interested, feel free to help synchronize the changes.


[Cisco] - [9332D-H2R] - 22H2

Ensure you are utilizing the latest version of the tool from the release page
Please fill in the following:

Organization (As you want it to appear on the website): Cisco

Device series: 9332D-H2R

Speeds supported (GbE): (100, 400 GbE)

Minimum firmware version requirement: NX-OS 10.4(1)

Link to device datasheet:

After the tool execution successfully, there will be four files:
N9K-C9332D-H2R.zip
PDF File
YAML File
Log File
PCAP file
Please attach these here and submit for review!

Approved and listed


Logs in Decoder.sol

Description
Fixes #587
Note: I have commented out the logs functionality to make it all work with current data. I think this is the best way to avoid conflicts because it will take a while before we implement logs support in rest of the codebase.
Checklist:

[ ] I have reviewed my diff in github, line by line.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to the issue(s) that it resolves.
[ ] There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
[ ] The branch has been merged or rebased against the head of its merge target.
[ ] I'm happy for the PR to be merged at the reviewer's next convenience.

I think this is doing an ok job of implementing the discussion from https://discourse.aztec.network/t/proposal-forcing-the-sequencer-to-actually-submit-data-to-l1/426/8 but it needs more documentation or pointing to a spec for the data and formatting as going from the code in here alone was a bit painful 😅


Fix example in opus_ubuntu, Add license info

This PR

fixes a typo in the example for theopus_ubuntu dataset where it's mistakenly referred to as ubuntu
adds the declared license info for this corpus' origin
adds an example instance
updates the data origin type

CI seems to fail due to languages incorrectly being flagged as invalid, I guess that's related to the currently-broken bcp47 validation (see #4304)

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


unwanted offset added to non-square tiles in tilemap

Before using 2.0 stable, GodotEngine displays tiles like this:

(the top one is the original tile, and the bottom one is horizontally flipped in the tilemap. The origin point is actually in the first tile rather than the middle one, but it is centered as expected anyways.)
In the stable version, it looks like this:

For some reason, an extra offset is automatically added onto the beginning of the tiles.

This is a consequence of this pull request #3204.
It improved the way tile offsets are handled when flipping tiles, but indeed as a consequence it means that tilesets from games made with Godot < 2.0 might now have issues. I think the change was good, though it has given me quite a lot of work to port levels of https://github.com/KOBUGE-Games/jetpaca to the new system.

Okay, works now. I have to use top left instead of center and position everything manually. Center offset has become unreliable for me.


Incorrect handling of scipy.sparse matrices?

After much digging, it looks like there's an issue on predicting with scipy.sparse matrices. I think my training worked, but now I'll need to go back and check everything. Any other ideas on trying to debug this? Anything I'm missing?
Using the underlying dense array.
In [149]: model.predict_proba(X_test_subset.tocsr()[:5, :].A)
Out[149]:
array([[ 0.16795158,  0.83204842],
       [ 0.1645692 ,  0.8354308 ],
       [ 0.19039142,  0.80960858],
       [ 0.18842077,  0.81157923],
       [ 0.21735471,  0.78264529]], dtype=float32)

Scoring with a CSR matrix.
In [150]: model.predict_proba(X_test_subset.tocsr()[:5, :])
Out[150]:
array([[ 0.40842509,  0.59157491],
       [ 0.40842509,  0.59157491],
       [ 0.40842509,  0.59157491],
       [ 0.40842509,  0.59157491],
       [ 0.40842509,  0.59157491]], dtype=float32)

I'll try updating scipy...
In [164]: from scipy import __version__

In [165]: print(__version__)
0.14.1

Upgrading scipy did not change anything.

I would suggest go back to the old API and see what is going on, specifcally the one in the basic_walthrough.py

Ah, it has something to do with how missing values are handled in sparse matrices with DMatrix.
In [57]: model._Booster.predict(DMatrix(X_test_subset.tocsc()[:5, :], missing=np.nan))
Out[57]: array([ 0.94607931,  0.95592064,  0.52279431,  0.93196493,  0.95121199], dtype=float32)

In [58]: model._Booster.predict(DMatrix(X_test_subset.tocsc()[:5, :].A, missing=np.nan))
Out[58]: array([ 0.16589592,  0.12011375,  0.14782116,  0.12367617,  0.11791431], dtype=float32)

What does a default missing value of 0 mean?
In [59]: model._Booster.predict(DMatrix(X_test_subset.tocsc()[:5, :].A, missing=0.0))
Out[59]: array([ 0.94607931,  0.95592064,  0.52279431,  0.93196493,  0.95121199], dtype=float32)

In [60]: model._Booster.predict(DMatrix(X_test_subset.tocsc()[:5, :], missing=0.0))
Out[60]: array([ 0.94607931,  0.95592064,  0.52279431,  0.93196493,  0.95121199], dtype=float32)

You can replicate this with basic_walkthrough.py
In [2]: dtrain1 = xgb.DMatrix(npymat, label=labels, missing=np.nan)

In [3]: dtrain2 = xgb.DMatrix(npymat, label=labels)

In [4]: bst.predict(dtrain1)
Out[4]:
array([ 0.01241208,  0.01241208,  0.01241208, ...,  0.01241208,
        0.01241208,  0.01241208], dtype=float32)

In [5]: bst.predict(dtrain2)
Out[5]:
array([ 0.92392391,  0.28583017,  0.28583017, ...,  0.05169873,
        0.05169873,  0.05169873], dtype=float32)

missing is the special value for dense matrix when feed into xgboost. Basically every value that equals missing is treated as missing and the matrix will be converted into a sparse matrix that only contains non-missing entries before prediction.

It sounds like the use of sparse matrices is only a convenience to indicate missingness rather than a way to save space if I actually have some sparse (as in many zeros) features. This was not at all obvious to me.
What are the implications for training if I pass in already sparse matrices? The same logic?
It's not necessarily the case for me that sparsity and missingness are the same thing. Ie., I might have a big sparse matrix with entries specifically encoded as -99 or nan to indicate missingness as distinct from a value I know is zero.
1, 0, 0, 0, 1.5
0, 1, 0, 0, 2.3
0, 0, 0, 1, nan
0, 0, 1, 0, 1.2

If I pass this as a sparse matrix to the scikit-learn API, it sounds like the missing parameter is ignored, zeros are treated as missing values, and then something (?) happens to the np.nan values in training? I assume they're always treated as the no branch in the tree
In [110]: np.nan < 1.5
Out[110]: False

In [111]: np.nan > 1.5
Out[111]: False

I'm basically trying to figure out if I need to go back and redo work, and it sounds like I do since my assumptions for training weren't right.

The missing was only used  when input was dense, and ignored in sparse case(maybe we should put an warning on this).  When there are a lot of 0 in sparse matrix, this will save the space as well as computation.
But current algorithm was not designed to handle missing entry in sparse matrix, and they should be dropped beforehand.

The thing was, most of the time, each column will either contain missing value or contain a lot of 0 (1-hot encoding).  So long as the "missing" in that column only contains one meaning(0 or missing) and the DMatrix is consistently constructed, then the algorithm will behave correctly and efficiently.

Bump.

I agree with @jseabold that xgboost's behavior is undesirable.  Scipy's sparse matrix class handles NaNs in a reasonable way.  @tqchen, why not follow their lead?  Here is an example:
>>> import numpy as np
>>> import scipy.sparse as sp
>>> X_train = np.array([[ 1., -1.,  np.nan],
...     [ 2.,  0.,  0.],
...     [ 0.,  1., -1.]])
>>> sp.csr_matrix(X_train)
<3x3 sparse matrix of type '<type 'numpy.float64'>'
	with 6 stored elements in Compressed Sparse Row format>
>>> sparse.nnz
6
>>> sparse[0,2]
nan

Sparse matrices are useful when storing dummy variables, with many zero values.  It would be nice if we could benefit from the space saving advantages of sparse arrays and yet still support missing variables.
For context, here is what xgboost does to initialize a matrix from a sparse matrix:
class DMatrix(object):
    def __init__(self, data, label=None, missing=0.0,
                 weight=None, silent=False, feature_names=None):

    ...
    elif isinstance(data, scipy.sparse.csr_matrix):
            self._init_from_csr(data)
    ...

    def _init_from_csc(self, csc):
        """
        Initialize data from a CSC matrix.
        """
        if len(csc.indices) != len(csc.data):
            raise ValueError('length mismatch: {} vs {}'.format(len(csc.indices), len(csc.data)))
        self.handle = ctypes.c_void_p()
        _check_call(_LIB.XGDMatrixCreateFromCSC(c_array(ctypes.c_ulong, csc.indptr),
                                                c_array(ctypes.c_uint, csc.indices),
                                                c_array(ctypes.c_float, csc.data),
                                                len(csc.indptr), len(csc.data),
                                                ctypes.byref(self.handle)))

Note that the missing parameter is not used.  A value of np.nan is treated just like any other value (whatever that means) and zeros are treated like missing values.
In contrast, xgboost seems to use the missing parameter when initializing a matrix from a numpy array:
    elif isinstance(data, np.ndarray):
            self._init_from_npy2d(data, missing)
    ...
    def _init_from_npy2d(self, mat, missing):
        """
        Initialize data from a 2-D numpy matrix.
        """
        if len(mat.shape) != 2:
            raise ValueError('Input numpy.ndarray must be 2 dimensional')
        data = np.array(mat.reshape(mat.size), dtype=np.float32)
        self.handle = ctypes.c_void_p()
     _check_call(_LIB.XGDMatrixCreateFromMat(data.ctypes.data_as(ctypes.POINTER(ctypes.c_float)),
                                                mat.shape[0], mat.shape[1],
                                                ctypes.c_float(missing),
                                                ctypes.byref(self.handle)))

@121onto I agree this is confusing. This was rooted from the original design idea to support sparse matrices, which naturally extends to missing as missing can be treated as the entries not presented.
As a solution for now now, if you fill the missing nan value with zero.
It will behave correctly in the desirable way and give you accurate prediction, despite this may sounds a bit strange
As you suggested, sparse matrix is used to support dummy variables, where a lot of zeros are occured. It is equivalent to treat these zeros as "missing". Normally, you won't have both zero and missing in one column. (in dummy you have zero, in dense column you might have missing). So that treatment won't mix the two incorrectly.


ND4J: bad Nd4j.write performance for CUDA

Tested on Windows 10, Titan X system (with fast NVME SSD).

Though CPU is faster, 5-6 seconds per GB is only 180 MB/s, which also seems a little low...
    @Rule
    public TemporaryFolder testDir = new TemporaryFolder();

    @Test
    public void test() throws Exception {
        File f = new File(testDir.newFolder(), "file.bin");

        INDArray arr = Nd4j.create(DataType.FLOAT, 250_000_000);        //1GB
        arr.addi(0);

        for( int i=0; i<10; i++ ) {
            f.delete();
            long start = System.currentTimeMillis();
            try (DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(f)))) {
                Nd4j.write(arr, dos);
            }
            long end = System.currentTimeMillis();
            System.out.println("Time to write 1GB: " + (end-start) + " ms");
        }
    }

CPU:
Time to write 1GB: 21207 ms
Time to write 1GB: 4860 ms
Time to write 1GB: 5909 ms
Time to write 1GB: 5797 ms
Time to write 1GB: 5915 ms
Time to write 1GB: 6485 ms
Time to write 1GB: 6626 ms
Time to write 1GB: 6295 ms
Time to write 1GB: 5870 ms
Time to write 1GB: 5903 ms

CUDA:
Time to write 1GB: 58592 ms
Time to write 1GB: 43293 ms
Time to write 1GB: 44472 ms
Time to write 1GB: 49619 ms

https://github.com/KonduitAI/deeplearning4j/pull/221


Simple data writer

This data writer simply writes bytes to a file. Useful if no data transformations are required. One thing to consider in this PR is if we should refactor the writers to reduce code duplication, since this is really the first non-avro based writer we are pushing up.
Code Review: @eogren @vikarmic

@eogren @vikarmic I've refactored some of the common code. Check it out and let me know what you think.

otherwise looks good to me!


I translated it into Simplified Chinese,Create zh_cn.json

The version is <IP_ADDRESS>
It took me a long time to translate, the contents of the tutorial book have all been translated, and make sure there are no translation errors.
By the way,I want to localize a Chinese name for this mod，What do you think of the name "稳态".This word is a biological term in Chinese, and the meaning is also very consistent with the intention of your mod

I can't accept this unless the translation can be confirmed by another person who has a history on github, and is a native speaker. I can't read this to confirm if it is accurate, and I don't want to incorporate something that might be offensive. I appreciate the submission though!


suggest jarvis for latest repository

RE-CHECK!

Automated adapter checker
ioBroker.jarvis

[ ] :heavy_exclamation_mark: [E300] Not found on travis. Please setup travis
[ ] :eyes: [W400] Cannot find "jarvis" in latest repository

Add comment "RE-CHECK!" to start check anew

E300: available on travis, see https://travis-ci.com/github/Zefau/ioBroker.jarvis
W400: is this pr

Hi,
some review comments:

please add your nodejs limitation also to package.json as "engine" property then npm and also js-controller will better take care to not allow installation at all, so you would not need to take care in your code.
basically constructs like https://github.com/Zefau/ioBroker.jarvis/blob/master/lib/library.js#L122 might break compact mode because these timeouts can/will not be cleared and if unload is called in between and your callback is then coming later this might cause big trouble (e.g. because database connection is already done ... In this case it seems to not be used anywhere ... ?
we are currently in the process to upgrade socket.io to 2.3.0 and new web version is alreayd in latest. Please update your included socket.io too (https://github.com/Zefau/ioBroker.jarvis/blob/master/www/vendor/socket.io.js) and make a dependency to web 3.0. I think it makes no sense to now add a new adapter with that old socketio.

@Zefau  any progress here? Socket.io is now 2.3.0 everywhere.

@Zefau ?


Adjust kafka's maximum poll period.

Kafka allows setting the maximum period between two polls. As we allow for 5 minutes of action execution, in a fully loaded invoker it might take 5 minutes for the consumer to poll again. To prevent rebalances this value is adjusted accordingly.
Bumping Kafka's version is needed because that value is exposed only in 0.10.1+.
ConsumerGroups are removed (or rather: each Invoker/Controller is in it's own ConsumerGroup) to prevent rebalances to impact other consumers. OpenWhisk does not use ConsumerGroup mechanics anyway.

PG1 1749 🔵


SystVnVPlan Issue #2

This issue is regarding Section 3.2.
-I think you should elaborate more on the important qualities of your software and expand them into objectives instead of just listing them.
For instance, you say that the code should be usable at some point. Why is this? Will it be used by non-software engineers?
Why are you very concerned with reliability?

Also the last three points do not really sound like objectives. I think they can be removed or merged with actual objectives. For instance, I do not think point four is necessary as point one seems to discuss this nicely.

@whitere123 @smiths
Thanks for the great feedback!


Add blured class for navbar/toolbar

In the iOS9/Safari9 it will be possible to have the blurred look introduced in iOS7 using -webkit-backdrop-filter.
This PR will add basic support for this in the .navbar and .toolbar. I also modified photoBrowser.js to support a blurred option. The kitchen-sink demo is updated accordingly.
Here is how it looks on an iPad running iOS9

Awesome.

Yes, finally they delivered something we can use :) I haven't installed yet to check that, but i am interesting about performance. On which iPad you did test it? Because i think to enable it by default for all bars and modals if it works smoothly on iPad 2

I only tested it on the latest iPad Air 2.

Good job！

The Apple website uses this effect as well.
background: rgba(255,255,255,.65),
-webkit-backdrop-filter: blur(20px) saturate(180%)
Works well

someone
it has been tested on a mobile android

Could this be rebased and merged? There seems to be demand for this.

I agree, this would be a cool feature. Either this or #1040 should be merged if performance is good.
If it runs smoothly on mid-tier devices, it should be ok since devices are getting faster and faster in the future.
Let's say if it uns smoothly on iPhone 5s (or newer) and iPad Air (or newer), then it should be ok. They both run the Apple A7 chip and will still be supported by Apple in the next version of iOS while older devices might not.
But imho the feature should be opt-in only, so devs would have to flip headerTranslucency:true or sth like that in config if they're sure that they want to trade in translucency-effect for less performance.
By default, translucency should be turned off in my opinion.

@FWeinb are you aware this PR has merge conflicts?
It would be great if you could resolve those and consider @valnub 's points

This isn't working on Chrome.

@J05HI we know, this is iOS/Safari ONLY.

@ZanderBrown
I've a solution in mind.
I'll do a pull request if I have time.

@nolimits4web @ZanderBrown
Should be closed because it's not a good solution.

Reasoning?

@ZanderBrown
Ios only compatibility

Their is no other way to implement this feature and for the iOS theme only having OSX/iOS comparability isn't a major issue.
And due to the way CSS is applied browsers that don't support it will display it as present albeit slightly transparent

What if we only add this to iOS stylesheet?


all: Go 1.13beta1 release status

Issue tracking the go1.13beta1 release by releasebot.

Building Go toolchain1 using /usr/local/go-bootstrap.

Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/arm64.

##### Testing packages.
go build cmd/compile/internal/ssa: /workdir/go/pkg/tool/linux_arm64/compile: signal: killed
ok  	archive/tar	1.009s
ok  	archive/zip	3.194s
ok  	bufio	2.036s
ok  	bytes	15.125s
ok  	compress/bzip2	1.827s
ok  	compress/flate	3.088s
ok  	compress/gzip	2.719s
ok  	compress/lzw	1.817s
ok  	compress/zlib	4.098s
ok  	container/heap	1.811s
ok  	container/list	1.712s
ok  	container/ring	1.863s
ok  	context	1.110s
ok  	crypto	1.731s
ok  	crypto/aes	1.721s
ok  	crypto/cipher	1.675s
ok  	crypto/des	1.643s
ok  	crypto/dsa	1.741s
ok  	crypto/ecdsa	2.249s
ok  	crypto/ed25519	1.945s
ok  	crypto/elliptic	1.828s
ok  	crypto/hmac	1.743s
ok  	crypto/internal/subtle	1.730s
ok  	crypto/md5	1.725s
ok  	crypto/rand	1.650s
ok  	crypto/rc4	1.810s
ok  	crypto/rsa	2.036s
ok  	crypto/sha1	1.764s
ok  	crypto/sha256	1.655s
ok  	crypto/sha512	1.825s
ok  	crypto/subtle	1.705s
ok  	crypto/tls	3.412s
ok  	crypto/x509	2.463s
ok  	database/sql	1.039s
ok  	database/sql/driver	1.705s
ok  	debug/dwarf	1.798s
ok  	debug/elf	4.820s
ok  	debug/gosym	1.756s
ok  	debug/macho	1.785s
ok  	debug/pe	1.669s
ok  	debug/plan9obj	1.726s
ok  	encoding/ascii85	1.726s
ok  	encoding/asn1	1.780s
ok  	encoding/base32	0.331s
ok  	encoding/base64	1.451s
ok  	encoding/binary	1.831s
ok  	encoding/csv	1.489s
ok  	encoding/gob	0.209s
ok  	encoding/hex	1.549s
ok  	encoding/json	0.305s
ok  	encoding/pem	0.266s
ok  	encoding/xml	1.309s
ok  	errors	2.009s
ok  	expvar	0.132s
ok  	flag	1.809s
ok  	fmt	2.238s
ok  	go/ast	1.721s
ok  	go/build	2.438s
ok  	go/constant	1.272s
ok  	go/doc	1.911s
ok  	go/format	1.713s
ok  	go/importer	1.823s
ok  	go/internal/gccgoimporter	1.823s
ok  	go/internal/gcimporter	11.781s
ok  	go/internal/srcimporter	9.209s
ok  	go/parser	1.658s
ok  	go/printer	2.967s
ok  	go/scanner	1.427s
ok  	go/token	1.833s
ok  	go/types	18.412s
ok  	hash	2.375s
ok  	hash/adler32	0.147s
ok  	hash/crc32	2.025s
ok  	hash/crc64	1.683s
ok  	hash/fnv	1.706s
ok  	html	1.724s
ok  	html/template	1.781s
ok  	image	1.959s
ok  	image/color	2.025s
ok  	image/draw	1.933s
ok  	image/gif	2.912s
ok  	image/jpeg	4.122s
ok  	image/png	1.607s
ok  	index/suffixarray	3.491s
ok  	internal/cpu	0.057s
ok  	internal/fmtsort	1.740s
ok  	internal/oserror	1.784s
ok  	internal/poll	2.348s
ok  	internal/reflectlite	1.817s
ok  	internal/singleflight	1.654s
ok  	internal/trace	1.903s
ok  	internal/xcoff	1.785s
ok  	io	1.754s
ok  	io/ioutil	1.724s
ok  	log	1.763s
ok  	log/syslog	4.604s
ok  	math	1.644s
ok  	math/big	2.900s
ok  	math/bits	1.684s
ok  	math/cmplx	1.925s
ok  	math/rand	2.753s
ok  	mime	1.908s
ok  	mime/multipart	0.788s
ok  	mime/quotedprintable	1.893s
ok  	net	15.088s
ok  	net/http	4.332s
ok  	net/http/cgi	1.348s
ok  	net/http/cookiejar	0.202s
ok  	net/http/fcgi	0.401s
ok  	net/http/httptest	0.477s
ok  	net/http/httptrace	0.129s
ok  	net/http/httputil	0.254s
ok  	net/http/internal	1.872s
ok  	net/http/pprof	2.110s
ok  	net/internal/socktest	1.822s
ok  	net/mail	1.042s
ok  	net/rpc	0.169s
ok  	net/rpc/jsonrpc	0.320s
ok  	net/smtp	0.212s
ok  	net/textproto	3.016s
ok  	net/url	0.367s
ok  	os	2.483s
ok  	os/exec	2.083s
ok  	os/signal	8.490s
ok  	os/user	0.451s
ok  	path	1.830s
ok  	path/filepath	1.772s
ok  	reflect	2.631s
ok  	regexp	1.908s
ok  	regexp/syntax	3.077s
ok  	runtime	43.560s
ok  	runtime/debug	1.936s
ok  	runtime/internal/atomic	2.010s
ok  	runtime/internal/math	1.734s
ok  	runtime/internal/sys	1.820s
ok  	runtime/pprof	21.772s
ok  	runtime/pprof/internal/profile	1.797s
ok  	runtime/trace	3.978s
ok  	sort	1.996s
ok  	strconv	3.405s
ok  	strings	19.363s
ok  	sync	1.027s
ok  	sync/atomic	2.001s
ok  	syscall	0.201s
ok  	testing	0.563s
ok  	testing/quick	1.917s
ok  	text/scanner	1.780s
ok  	text/tabwriter	1.694s
ok  	text/template	1.869s
ok  	text/template/parse	0.123s
ok  	time	5.186s
ok  	unicode	1.696s
ok  	unicode/utf16	1.709s
ok  	unicode/utf8	1.727s
ok  	cmd/addr2line	19.116s
ok  	cmd/api	1.860s
ok  	cmd/asm/internal/asm	6.319s
ok  	cmd/asm/internal/lex	1.757s
ok  	cmd/compile	0.113s
ok  	cmd/compile/internal/gc	34.966s
FAIL	cmd/compile/internal/ssa [build failed]
ok  	cmd/compile/internal/syntax	1.768s
ok  	cmd/compile/internal/test	1.776s [no tests to run]
ok  	cmd/compile/internal/types	1.347s
ok  	cmd/cover	11.257s
ok  	cmd/doc	1.621s
ok  	cmd/fix	1.747s
ok  	cmd/go	132.915s
ok  	cmd/go/internal/auth	0.140s
ok  	cmd/go/internal/cache	4.724s
ok  	cmd/go/internal/dirhash	1.861s
ok  	cmd/go/internal/generate	0.083s
ok  	cmd/go/internal/get	0.146s
ok  	cmd/go/internal/imports	1.399s
ok  	cmd/go/internal/load	1.139s
ok  	cmd/go/internal/lockedfile	1.836s
ok  	cmd/go/internal/lockedfile/internal/filelock	1.829s
ok  	cmd/go/internal/modconv	0.130s
ok  	cmd/go/internal/modfetch	0.214s
ok  	cmd/go/internal/modfetch/codehost	1.561s
ok  	cmd/go/internal/modfile	1.758s
ok  	cmd/go/internal/modload	0.343s
ok  	cmd/go/internal/module	0.119s
ok  	cmd/go/internal/mvs	1.553s
ok  	cmd/go/internal/note	1.063s
ok  	cmd/go/internal/par	1.649s
ok  	cmd/go/internal/renameio	1.575s
ok  	cmd/go/internal/search	1.087s
ok  	cmd/go/internal/semver	1.562s
ok  	cmd/go/internal/sumweb	0.328s
ok  	cmd/go/internal/tlog	1.908s
ok  	cmd/go/internal/txtar	1.567s
ok  	cmd/go/internal/web	0.465s
ok  	cmd/go/internal/work	1.358s
ok  	cmd/gofmt	1.545s
ok  	cmd/internal/buildid	2.014s
ok  	cmd/internal/dwarf	1.465s
ok  	cmd/internal/edit	1.468s
ok  	cmd/internal/goobj	5.230s
ok  	cmd/internal/obj	1.418s
ok  	cmd/internal/obj/arm64	1.459s
ok  	cmd/internal/obj/x86	18.227s
ok  	cmd/internal/objabi	1.391s
ok  	cmd/internal/src	1.380s
ok  	cmd/internal/test2json	1.857s
ok  	cmd/link	14.197s
ok  	cmd/link/internal/ld	10.490s
ok  	cmd/link/internal/sym	1.395s
ok  	cmd/nm	19.418s
ok  	cmd/objdump	18.170s
ok  	cmd/pack	7.624s
ok  	cmd/trace	0.242s
ok  	cmd/vet	21.582s
FAIL
2019/06/26 16:45:25 Failed: exit status 1
2019/06/26 12:46:25 $ /usr/local/google/home/andybons/go-releasebot-work/go1.13beta1/gopath/bin/release -target linux-arm64 -user andybons -version go1.13beta1 -tools master -net master -rev 60f14fddfee107dedd76c0be6b422a3d8ccc841a
2019/06/26 13:06:48

The release is ready. Run with mode=release to execute it.

Latest build: go1.13beta1
src (tar.gz)
linux-386 (tar.gz)
linux-armv6l (tar.gz)
linux-amd64 (tar.gz)
linux-arm64 (tar.gz)
freebsd-386 (tar.gz)
freebsd-amd64 (tar.gz)
windows-386 (zip) (msi)
windows-amd64 (zip) (msi)
darwin-amd64 (tar.gz) (pkg)
linux-s390x (tar.gz)
linux-ppc64le (tar.gz)
Log
2019/06/26 13:33:55 starting
2019/06/26 13:33:55 working in /usr/local/google/home/andybons/go-releasebot-work/go1.13beta1
2019/06/26 13:33:55 $ git fetch origin master
2019/06/26 13:33:55 $ git fetch origin master
2019/06/26 13:33:55 $ git clone --reference /usr/local/google/home/andybons/go-releasebot-work/go1.13beta1/gitmirror -b master https://go.googlesource.com/go /usr/local/google/home/andybons/go-releasebot-work/go1.13beta1/gitwork
2019/06/26 13:33:58 $ git codereview change relwork
2019/06/26 13:33:58 $ git config gc.auto 0
2019/06/26 13:33:58 Release status issue title: "all: Go 1.13beta1 release status"
2019/06/26 13:33:58 Release status issue: https://golang.org/issue/32792
2019/06/26 13:33:58 $ git rev-parse go1.13beta1
2019/06/26 13:34:30 $ git tag go1.13beta1 60f14fddfee107dedd76c0be6b422a3d8ccc841a
2019/06/26 13:34:30 $ git push origin go1.13beta1
2019/06/26 13:34:35 $ go get golang.org/x/build/cmd/release
2019/06/26 13:35:06 release linux-386: already have [go1.13beta1.linux-386.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release freebsd-386: already have [go1.13beta1.freebsd-386.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release linux-armv6l: already have [go1.13beta1.linux-armv6l.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release linux-arm64: already have [go1.13beta1.linux-arm64.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release windows-amd64: already have [go1.13beta1.windows-amd64.zip go1.13beta1.windows-amd64.msi]; not rebuilding files
2019/06/26 13:35:06 release freebsd-amd64: already have [go1.13beta1.freebsd-amd64.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release linux-ppc64le: already have [go1.13beta1.linux-ppc64le.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release windows-386: already have [go1.13beta1.windows-386.zip go1.13beta1.windows-386.msi]; not rebuilding files
2019/06/26 13:35:06 release darwin-amd64: already have [go1.13beta1.darwin-amd64.tar.gz go1.13beta1.darwin-amd64.pkg]; not rebuilding files
2019/06/26 13:35:06 release linux-s390x: already have [go1.13beta1.linux-s390x.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release linux-amd64: already have [go1.13beta1.linux-amd64.tar.gz]; not rebuilding files
2019/06/26 13:35:06 release src: already have [go1.13beta1.src.tar.gz]; not rebuilding files
2019/06/26 13:35:25

The release run is complete! Refer to the playbook for the next steps.

Thanks for riding with releasebot today.

I believe this is done now, closing. /cc @andybons


Ollama error with Griptape run: Agent

the disable workflow works, but not the other one.

"The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable"

I needed to put in an Openai api key and then it works

The non-disabled workflow should still be working - you don't have any nodes that require openai api keys.
When did you last install the griptape nodes?

I reinstalled freshly
I entered an API key, but then the Ollama worked with the create agent node

I've verified this will work in the upcoming release w/out an effective OPENAI_API_KEY. :)

closing - please let me know if this is still an issue


Provide information about person supplying job posting

On the job details page, we should be supplying:

first name/last initial of the person supplying the job posting
the enrollment status of that person if it is non-null

This will require both back- and front-end changes


Explore pytest-xdist to run pytest in parallel

See https://pypi.org/project/pytest-xdist/
We may need to restructure some of the tests to ensure they are atomic, particularly any which share output/intermediate folders (e.g. switch to using /tmp for those).
The GitHub Actions seem to offer 4 CPUs/threads.

I'm hoping this will work well for unit tests - some of the longer whole-workflow/integration tests might need to be run "serially." We can probably split the two test groups with pytest markers.

Sadly just installing this dependency and adding -n auto to the pytest command is not enough. This does run the tests in parallel but we get multiple somewhat cryptic failures. e.g. running with more cores than the current 13 tests on Linux:
$ pytest -n auto -v tests/ -k "no slurm"
===================================== test session starts ======================================
platform linux -- Python 3.12.3, pytest-8.3.2, pluggy-1.5.0 -- /home/pjacock/miniforge3/envs/pyani-plus_py312/bin/python3.12
...
=================================== short test summary info ====================================
FAILED tests/snakemake/test_snakemake_fastani_workflow.py::test_snakemake_rule_fastani - FileNotFoundError: [Errno 2] No such file or directory: '/home/pjacock/repositories/pyani-p...
FAILED tests/snakemake/test_snakemake_slurm.py::test_dnadiff_rule_delta_slurm - snakemake_interface_common.exceptions.WorkflowError: Error: Unlocking the directory /home/p...
FAILED tests/snakemake/test_snakemake_dnadiff_workflow.py::test_snakemake_rule_delta - snakemake_interface_common.exceptions.WorkflowError: Error: Unlocking the directory /home/p...
FAILED tests/snakemake/test_snakemake_anim_workflow.py::test_snakemake_rule_delta - snakemake_interface_common.exceptions.WorkflowError: Error: Unlocking the directory /home/p...
FAILED tests/snakemake/test_snakemake_slurm.py::test_snakemake_rule_fastani_slurm - snakemake_interface_common.exceptions.WorkflowError: Error: Unlocking the directory /home/p...
FAILED tests/snakemake/test_snakemake_slurm.py::test_dnadiff_rule_show_diff_slurm - FileNotFoundError: [Errno 2] No such file or directory: '/home/pjacock/repositories/pyani-p...
FAILED tests/snakemake/test_snakemake_slurm.py::test_snakemake_rule_filter_slurm - snakemake_interface_common.exceptions.WorkflowError: Error: Unlocking the directory /home/p...
====================== 7 failed, 6 passed, 6 warnings in 62.83s (0:01:02) ======================

I think the workflow tests might not be suitable for the parallel approach - but that's all we have implemented jsut now.
Let's keep pytest-xdist in our back pockets for unit tests as we build up parsing/database integration, and the CLI.

For per-test temporary output directories, I was looking at using the Python tempfile module and thinking about how to do cleanup - then discovered https://docs.pytest.org/en/latest/how-to/tmp_path.html should take care of that for us.
It looks like most (all?) of the snakemake failures are to do with locking,
E           snakemake_interface_common.exceptions.WorkflowError: Error: Unlocking the directory /Users/pc40583/repositories/pyani-plus failed. Maybe you don't have the permissions?
E           FileNotFoundError: [Errno 2] No such file or directory: '/Users/pc40583/repositories/pyani-plus/.snakemake/locks'

../../mambaforge/envs/pyani-plus_py312/lib/python3.12/site-packages/snakemake/workflow.py:838: WorkflowError

That could be as simple as running snakemake in a temporary working directory each time, rather than the current directory?

For per-test temporary output directories, I was looking at using the Python tempfile module and thinking about how to do cleanup - then discovered https://docs.pytest.org/en/latest/how-to/tmp_path.html should take care of that for us.

Aye - pytest is really comprehensive and tends to have most things we can think of covered 😄

I think changing the output directories of each test to use tmp_path makes sense, but it means refactoring many of the fixtures like the configuration dictionaries which include this as "outdir". Possibly via https://docs.pytest.org/en/stable/how-to/fixtures.html#fixtures-can-introspect-the-requesting-test-context to get the current path to use for "outdir"?

Could we use a single  pytest temporary path for the pytest run output, defined in conftest.py and extended in the existing fixtures, rather than writing to a local directory under tests? Or am I misunderstanding the issue?

Something like:
@pytest.fixture()
def anim_nucmer_targets_filter_outdir(tmpdir) -> Path:
    """Output directory for MUMmer filter snakemake tests.

    This path indicates the location to which MUMmer should write
    its output files during ANIm testing
    """
    return tmpdir / "outputs" / "nucmer_filter_output"

Essentially yes (although tmp_path is the fixture name they used https://docs.pytest.org/en/stable/how-to/tmp_path.html#the-tmp-path-fixture).
I was thinking a new temp path for each test to ensure isolation, but if we have distinct named subdirectories, that isn't needed.

I spent most of today trying to get the snakemake tests to work with a custom working directory (wanting to use different temp directories for parallel testing). Doing so means relative paths in the inputs and outputs are no longer relative to the repository:
https://snakemake.readthedocs.io/en/stable/project_info/faq.html#how-does-snakemake-interpret-relative-paths
This seems to mean making the inputs absolute, and a choice of absolute output directories (under temp as per #56), or relative directories (under the temp working directory).

I just updated the https://github.com/pyani-plus/pyani-plus/tree/issue_51 branch with the initial commit (addressing a merge conflict), and as expected it fails on macOS with locking issues (4 workers) but surprisingly the Linux test passed (2 workers). Remember this is the non-SLURM tests only. Perhaps simply with less workers there was less chance of conflict?
Note the GitHub Actions runtime was not dramatically different on macOS (4 workers, about 14 or 15 mins - perhaps a minute quicker assuming the computations actually all ran), but is now slower on Linux (2 workers, took about 14 to 15 mins, up from 8 to 9 mins without parallelization).
This may be far more useful for local development where we have access to significantly more cores.


Uncss fails after updating graphics card

I updated my graphics card and now the same version of uncss that I was using does not work anymore. Here is the output.
Running "uncss:target" (uncss) task
Fatal Windows exception, code 0xc0000005.
PhantomJS has crashed. Please read the bug reporting guide at
http://phantomjs.org/bug-reporting.html and file a bug report.
Fatal error: Cannot assign to read only property 'message' of<PHONE_NUMBER>

This isn't an issue with grunt-uncss. Try uncss but judging from the crash it's phantomJS that's crashing so you should report the issue there.


WIP: Failing tests for virutal methods used by syncvar hook

tests for https://github.com/vis2k/Mirror/issues/1581
Not sure if weaver, mono or c# causes this issue

@James-Frowen nice work. this is most likely a weaver issue. it helps if you have a test script where it happens, then open Assembly-CSharp.dll from library folder in ILSpy. There you can see the generated weaver code to understand what went wrong.

This compiled code looks right, both the abstract and virtual methods are called using this

@James-Frowen try a breakpoint in the virtual method, or a log message with stack trace, to see what calls it

Calling onValue2Changed manually calls the override. But the call from OnDeserialize calls the virtual.

I've added extra tests for now to make sure the classes are set up correct.

@James-Frowen to clarify, OnDeserialize calls both the overriden and the base function, even though the overriden function does not call the base function in the user's code?
and the generated code looks like it is correct, but it does something different?

In Base class
public abstract void onValue1Changed(float old, float newValue)
public virtual void onValue2Changed(float old, float newValue)
In Override class
public override void onValue1Changed(float old, float newValue)
public override void onValue2Changed(float old, float newValue)
base.onValue2Changed should be the only way to call the virtual method.
OnDeserialize in base class called this.onValue2Changed but the virtual method is the one that is run by the code.
Calls to the abstract method work correctly, so there is something weird with virtual

I pushed a fix,
Turn this draft into a fix and we can merge


Display doc_string field for each node in visualization

This field is populated by front-ends with human-readable information about each node. For example, Pytorch populates this with stack trace information. Can we make this field accessible in the visualization?

Definitely. Do you have a sample .onnx file you can share?

Sure, the squeezenet example ONNX file was exported from pytorch with stack traces: https://github.com/onnx/tutorials/blob/master/tutorials/assets/squeezenet.onnx

0.2.0 shows shortened doc_string as part of the attributes list. Click on it and it will show the full string the bottom in the sidebar. 'ATTRIBUTES' might turn into 'NODE DETAILS' at some point with a better distinction between name, doc_string and the other attributes.


Playstate.hx coding help

What is your question?
How do I run a lua script only if an option is turned on, and the current song is dadbattle?
I've already got an if statement, and the custom option.

so if the option isn't checked remove the path to said script from the 'foldersToCheck' array, or just stop it from being made in the code that makes the scripting objects (its at about line 840) you can also just check this in the scripts themselves

if option here and songName == 'dadbattle' then


Create vi.js

Add Vietnamese language

Thanks! Can you submit tests along with this patch (they should live in /test_cases/vi.json, you can translate them from English) so that we can verify that the translation continues to work in perpetuity?

Dear Sir/Madam,
I have new create pull for the  file /test_cases/vi.json. You can check again the problem?
Thanks and best regards


Update Documentation For Aloha Solo

Still need to change

Aloha Solo Specification Sheet
Aloha Solo Hardware Assembly
Additional Launch Arguments in Bringup and Shutdown

Added Specification Sheet (Not Perfect) and Hardware Assembly.


Submodules cannot be git cloned, permission issue

Did you read the documentation and check existing issues?

[X] I have read all the :help cursor-text-objects documentation
[X] I have updated the plugin to the latest version before submitting this issue
[X] I have searched the existing issues and closed issues issues

Neovim version (nvim -v)
0.10.2
Operating system/version
Linux
Describe the bug
Adding recommended plugin setup to lazy.nvim
{
    "ColinKennedy/cursor-text-objects.nvim",
    config = function()
        vim.keymap.set(
            {"o", "x"},
            "[",
            "<Plug>(cursor-text-objects-up)",
            { desc = "Run from your current cursor to the end of the text-object." }
        )
        vim.keymap.set(
            {"o", "x"},
            "]",
            "<Plug>(cursor-text-objects-down)",
            { desc = "Run from your current cursor to the end of the text-object." }
        )
    end,
    version = "v1.*",
}

yields a bunch of submodule cloning errors:
  Failed (1)
    ○ cursor-text-objects.nvim
        Cloning into '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim'...
        remote: Enumerating objects: 89, done.
        remote: Counting objects: 100% (89/89), done.
        remote: Compressing objects: 100% (74/74), done.
        remote: Total 89 (delta 29), reused 56 (delta 9), pack-reused 0 (from 0)
        Receiving objects: 100% (89/89), 15.71 KiB | 15.71 MiB/s, done.
        Resolving deltas: 100% (29/29), done.
        Submodule '.dependencies/busted' (git@github.com:LuaCATS/busted.git) registered for path '.dependencies/busted'
        Submodule '.dependencies/luassert' (git@github.com:LuaCATS/luassert.git) registered for path '.dependencies/luassert'
        Submodule '.dependencies/luvit-meta' (git@github.com:Bilal2453/luvit-meta.git) registered for path '.dependencies/luvit-meta'
        Cloning into '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/busted'...
<EMAIL_ADDRESS>Permission denied (publickey).
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.
        fatal: clone of 'git@github.com:LuaCATS/busted.git' into submodule path '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/busted' failed
        Failed to clone '.dependencies/busted'. Retry scheduled
        Cloning into '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/luassert'...
<EMAIL_ADDRESS>Permission denied (publickey).
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.
        fatal: clone of 'git@github.com:LuaCATS/luassert.git' into submodule path '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/luassert' failed
        Failed to clone '.dependencies/luassert'. Retry scheduled
        Cloning into '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/luvit-meta'...
<EMAIL_ADDRESS>Permission denied (publickey).
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.
        fatal: clone of 'git@github.com:Bilal2453/luvit-meta.git' into submodule path '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/luvit-meta' failed
        Failed to clone '.dependencies/luvit-meta'. Retry scheduled
        Cloning into '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/busted'...
<EMAIL_ADDRESS>Permission denied (publickey).
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.
        fatal: clone of 'git@github.com:LuaCATS/busted.git' into submodule path '/home/thoma/.local/share/LazyVim/lazy/cursor-text-objects.nvim/.dependencies/busted' failed
        Failed to clone '.dependencies/busted' a second time, aborting

Steps To Reproduce
See bug description.
Expected Behavior
Plugin installs without errors
Health
No response
Log
No response
Repro
vim.env.LAZY_STDPATH = ".repro"
load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))()

require("lazy.minit").repro({
    spec = {
    {
        -- Add anything you need here (configuration, other plugins, etc)
        "ColinKennedy/cursor-text-objects.nvim",
    },
})

What is the output of
git clone git@github.com:LuaCATS/luassert.git .dependencies/luassert
git clone git@github.com:LuaCATS/busted.git .dependencies/busted
git clone git@github.com:Bilal2453/luvit-meta.git .dependencies/luvit-meta

If you don't have SSH keys set up then I would expect that above would fail.

What is the output of
git clone git@github.com:LuaCATS/luassert.git .dependencies/luassert
git clone git@github.com:LuaCATS/busted.git .dependencies/busted
git clone git@github.com:Bilal2453/luvit-meta.git .dependencies/luvit-meta

If you don't have your SSH key set up for GitHub then I would expect that above would fail.

First of all, I'm now able to enjoy your plugin. Good stuff!
Having a github account is not something I would expect when using a neovim plugin.
I already had my SSH key set up, but lazy.nvim still didn't allow cloning.
Then I tried you suggestion where I got
$ git clone git@github.com:LuaCATS/luassert.git .dependencies/luassert
Enter passphrase for /home/thoma/.ssh/id_ed25519:

This file can be created with $ ssh-keygen -t ed25519 -C "some label text"
I think lazy.nvim can't handle this "enter passphrase .." dialog and fails.
After some research I found that ssh-agent -- an SSH key manager -- can be used to prevent git from asking the passphrase.
For that I added eval $(keychain --eval id_ed25519 >/dev/null) to my ~/.zshrc. keychain is a tool that deals with ssh-agent in ways I don't know but it works.

This file can be created with $ ssh-keygen -t ed25519 -C "some label text"

I'm not sure how you set up your SSH but this is how I do it
ssh-keygen -b 4096

Press enter through all the prompts. Then copy the ~/.ssh/id_rsa.pub to GitHub. It doesn't prompt for passwords after that.

Having a github account is not something I would expect when using a neovim plugin

I agree with you however the submodules here only there to support lua-languager-server which currently requires them. I personally find that dependency not excusable so I put in an issue a while back basically asking "please remove the coupling between lua-language-server and git submodules" that didn't get a lot of attention. See https://github.com/LuaLS/lua-language-server/issues/2905. You're welcome to chat over there if you think raising this issue will be a good use case to explain why that's bad design. You have my vote at least :)
A workaround to all this could be to just delete the submodules entirely but keep the .gitmodules file. Basically, fake out lua-language-server into thinking that the folders are submodules even though they aren't. I confirmed that solution is viable over at https://github.com/jeffzi/llscheck/issues/7#issuecomment-2428194549 but would be very hacky.
An alternate would be to petition lazy.nvim and other package managers to have some kind of configuration option not to install submodules. e.g. something like
    "ColinKennedy/cursor-text-objects.nvim",
    config = function()
        vim.keymap.set(
            {"o", "x"},
            "[",
            "<Plug>(cursor-text-objects-up)",
            { desc = "Run from your current cursor to the end of the text-object." }
        )
        vim.keymap.set(
            {"o", "x"},
            "]",
            "<Plug>(cursor-text-objects-down)",
            { desc = "Run from your current cursor to the end of the text-object." }
        )
    end,
    submodules = false,
    version = "v1.*",

Though that's likely not to be a good idea because then every package manager would need its own equivalent.

Also @cthoma on a personal level you can also add git config --global url."https://github.com/".insteadOf<EMAIL_ADDRESS>to your ~/.gitconfig.
The reason you were getting SSH errors I think is because the .gitmodules hard-codes the dependencies using SSH syntax. But with insteadOf, it will substitute all SSH URLs for their HTTPS variants. You would just need to move / remove the existing cursor-text-objects.nvim folder and do another rebuild. That has a good chance of working for your setup. Though of course something cleaner that could help everyone would be preferred.

@cthoma I think I fixed it - the .dependencies submodule directory is gone completely and tests still pass. Let me know if you still have issues cloning and I can re-address it!