Promise returned by disconnect function of useWallet does not settle

Describe the bug
When I call the disconnect function of useWallet hook with await, it stays in await forever.  Interestingly, if you call disconnect twice, first promise will never settle, but the second one will.
To Reproduce
Steps to reproduce the behavior:

Connect phantom wallet
Try to disconnect (await disconnect() or disconnect().then(...))

Expected behavior
Wallet should disconnect, and promise should be settled
Screenshots

P.S. signout function basically calls disconnect
Desktop (please complete the following information):

OS: Ubuntu 22.04
Browser: Chrome Phantom extension
Version: 112.0.5615.49 (Chrome), 23.3.6 (Phantom)

Additional context
This issue happened recently, it was working fine before

This is a duplicate of #755, which is an issue with Phantom, not Wallet Adapter. It's been fixed but users may need to manually update to the latest Phantom version. See https://github.com/solana-labs/wallet-adapter/issues/755#issuecomment-1502231199


The icon 'fontawesome|balance-scale' gets cut off

The icon 'fontawesome|balance-scale' gets cut off on the horizontal edges, despite increasing the style's width, height, and decreasing the icon's size. I've done this in a blank, full-screen container, and still encounter the issue.

This is the same issue as #55

Closing as we'll track this in #55


docs(tutorial): fix wrong text related to screenshots

The text did not fit to the image in the tutorial. I changed the text a bit (tried to keep the same wording).
It's still not 100% correct, to do that I think we'd either need to:

introduce another image as a step between
replace the image heroes-list-2.png with an image which also displays the readonly details

However this is probably a detail and I didn't know if you guys would be okay with it if I just replaced/added a new image and maybe we can also just leave it as it is.
So let me know what you think ;)

It seems the app has changed since that description was written. Your suggestion doesn't match the new behavior either. Fixed in #716


Handle properly stringifying multiline macro expressions

Given the following code:
{%
  a = 1
%}

Its to_s representation before this PR:
{% a = 1 %}

and after:
{%
  a = 1
%}

Hm, but if the expression only has a newline at one end it'll be different, right?
{%
  a = 1 %}
{% b = 1
%}

This presumably stringifies to:
{%
  a = 1
%}
{% b = 1 %}

Hm, but if the expression only has a newline at one end it'll be different, right?

If you have code like:
{%
  a = 1 %}
{% b = 1
%}

and you run the formatter on it, you get:
{%
  a = 1
%}
{% b = 1 %}

So this at least makes things consistent with that.

Pushed up another commit to better handle indentation within the stringified nodes. E.g.
macro finished
  {% verbatim do %}
    {%
      10
      20
    %}
  {% end %}
end

It's string representation is now the same, instead of:
macro finished
  {% verbatim do %}
    {%
  10
  20
%}
  {% end %}
end

Ended up refactoring things one last time. Realized I could do this without touching the AST representation at all and just handle it based on the start/end location of the nodes themselves. So this PR only touches ToSVisitor now.

I wonder if it could be feasible to keep track of line numbers in the ToSVisitor and add newlines accordingly...? 🤔
This should be possible by memorizing the reference position in @str and counting the \n characters in between.
The implementation would consider each node's location relative to each other. If node.location is on line x and node.exp.location is on line x + n, there need to be n newlines in between. We need to add as many as necessary.
Similarly, after stringifying node.exp, count the number of newlines and add more to match the difference of line numbers between node.location and node.end_location.

@straight-shoota I think it should definitely be possible, but would you be opposed to leaving that for another PR to address #15307? This PR is already a good start and is the basis of some other PRs I have in the works.

I'm not super convinced about the implementation in this PR because it just addresses some symptoms, not the problem from the bottom up. It's basically just shifting error cases around, not really solving anything.
It has some benefit because it moves towards better behaviour for well-formatted code which is supposedly more common.
I'd really much more like to resolve the full problem instead of a cosmetic change. IMO this isn't super urgent so we could take some time to explore more effective alternatives.

:+1: Alright, I'll see about doing another refactor to address #15307 in this PR in that case. I'll mark it as draft for now in that case.

Alright @straight-shoota, pushed up another commit that handles significant whitespace as well. Tested against to_s_spec.cr as well as within my other macro code coverage branch's test suite and everything seems to pass so :+1:?


Intellisense Lightbulb does not appear when green squiggle hovered in C++ file

VSCode Version: 1.4
OS Version: Windows 10
Cpptools Version: 0.8.1

Steps to Reproduce:

Open any folder that has a cpp file. The cpp file can be really simple and just include a header that cannot be found.
Mouse over the green squiggle line. I would expect the light bulb (code action) to show up but it doesn't. Note that if you move the keyboard cursor (either move the arrow keys or mouse click) the light bulb shows up.

Currently, we only show them on cursor change events. @egamma We talked about being more explicit for code actions. New ideas?

After experimenting with this we decided not to show the light bulb on hover. Since you can hover anywhere (far away from your cursors) it a little unclear to what position the light bulb refers to. Also it's unclear it then two light bulbs should show (one for the hover position and one for the cursor position) or how the light bulb should move

Ok sounds good. Thank you.


regarding bluetooth data sending  (IDFGH-8789)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
Here i am having an issue of  bluetooth data sending, where i am sending the data only based on  the bluetooth exists using flag. where the flag is set to high on the event where there connection establishes.
i am settting the flag to high on the events
ESP_SPP_OPEN_EVT
ESP_SPP_SRV_OPEN_EVT
the initiator(or master or client) should check whether there exists a connection and if exists then send data based on the flag.
but its is entering into sniff mode
the below shown is the log
where master tries to send data based on flag

while(bBTisConnected) 	{ 	vTaskDelay(500); 	if(iSend_data_to_bluetooth("HEYSLAVE")) 	{ 		printf("okay"); 	} 	else 	{ 		printf("not okay"); 	} 	}
where bBTisConnected is high during ESP_SPP_OPEN_EVT on master side.

anyone knows what may be the possible issue

@beginner140BB Do you not understand why it enters sniff mode? Or, do you not want it to go into sniff mode at all?

dont want to go to sniff mode as
esp_spp_write() function will not work.

@beginner140BB vTaskDelay(500); can be 5 seconds with 10ms-tick. When there is no data to be sent for a period time, it enters sniff mode to save power. If you take no care of power, you can disable sniff mode.
Currently, there is no such an API, we will add this API immediately.

@beginner140BB vTaskDelay(500); can be 5 seconds with 10ms-tick. When there is no data to be sent for a period time, it enters sniff mode to save power. If you take no care of power, you can disable sniff mode. Currently, there is no such an API, we will add this API immediately.

actually i am sending a default string using esp_spp_write()
int iSend_data_to_bluetooth(char *send_bt_data) { 	esp_spp_write( handle,strlen(send_bt_data), (uint8_t *)send_bt_data); 	return 1; }

@espressif-bot For a test, you can change #define BTA_DM_LINK_POLICY_SETTINGS    (HCI_ENABLE_MASTER_SLAVE_SWITCH | HCI_ENABLE_HOLD_MODE | HCI_ENABLE_SNIFF_MODE | HCI_ENABLE_PARK_MODE) to #define BTA_DM_LINK_POLICY_SETTINGS    (HCI_ENABLE_MASTER_SLAVE_SWITCH | HCI_ENABLE_HOLD_MODE | HCI_ENABLE_PARK_MODE). And see if it works.

reply from espressif
For the problem you are facing, please follow these steps to test:

Please download the “libbtdm_app.a”file in the attached and replace the “esp-idf/components/bt/controller/lib_esp32/esp32/libbtdm_app.a” file under the esp-idf SDK that you used.

Delete the “build” file generated by your project and recompile it.

Please redownload the new compiled firmware for testing.

when we face issue in the case of slave device which accepts the connection
here issue is regarding master device when initiates the connection.
here we are able to initiate the connection but when we are sending data based on flag which enabled true during
ESP_SPP_OPEN_EVT which comes when client connection opens i.e there is bluetooth connection based on the flag we are sending the data the flag is turning high but bluetooth is turning to sniff mode thereby not able to send data.

@beginner140BB For a test, you can change #define BTA_DM_LINK_POLICY_SETTINGS (HCI_ENABLE_MASTER_SLAVE_SWITCH | HCI_ENABLE_HOLD_MODE | HCI_ENABLE_SNIFF_MODE | HCI_ENABLE_PARK_MODE) to #define BTA_DM_LINK_POLICY_SETTINGS (HCI_ENABLE_MASTER_SLAVE_SWITCH | HCI_ENABLE_HOLD_MODE | HCI_ENABLE_PARK_MODE).
And see if it works.

it works its not entering to sniff mode

@beginner140BB We will add an API to disable sniff mode.

@beginner140BB We will add an API to disable sniff mode.

just curious will disabling sniff mode consumes more power.
and another question is that whether there is any other way to get to know the bluetooth connection exists other than using
event information.
when i put while(1) its okay
but using flag read from event parameters its not okay
using simple while (1 )
4157) SPP_INITIATOR_DEMO: ESP_SPP_OPEN_EVT handle:129 rem_bda:[da:7a:fb:3f:00:00]
okayI (4167) SPP_INITIATOR_DEMO: ESP_SPP_WRITE_EVT
but when sending based on flag that set to high on open event the code is not executing the while loop
while(bBTisConnected)
`
 break;
case ESP_SPP_OPEN_EVT:
    if (param->open.status == ESP_SPP_SUCCESS) {
    	bBTisConnected=1;
    	ESP_LOGI(SPP_TAG, "BT_connected:%d",bBTisConnected);

        ESP_LOGI(SPP_TAG, "ESP_SPP_OPEN_EVT handle:%d rem_bda:[%s]", param->srv_open.handle,
                 bda2str(param->srv_open.rem_bda, bda_str, sizeof(bda_str)));
        handle=param->srv_open.handle;
        /* Start to write the first data packet */
       // esp_spp_write(param->open.handle, SPP_DATA_LEN, spp_data);
       // send_bt_data("test",4);
       // s_p_data = spp_data;
        gettimeofday(&time_old, NULL);
    } else {
        ESP_LOGE(SPP_TAG, "ESP_SPP_OPEN_EVT status:%d", param->open.status);
    }
    break;

`

@beginner140BB As I said before, if there is no data to be sent for a while, the link will go in sniff mode to save power. When bBTisConnected is set to high, it indicates the spp is open. Even though spp is open, it will still enter sniff mode when there is no data to send.
But in theory, even in sniff mode, calling esp_spp_write() can still exit sniff mode and send data successfully.
You can attach your complete code and I can check it for you.

main.zip
this is the main code of initiator
could you please check this

@beginner140BB In your main.c, while (flag) can be missed if flag is false and never come back...

@beginner140BB In your main.c, while (flag) can be missed if flag is false and never come back...

oh no sorry
thanks for point out the simple issue.

@beginner140BB Do you still use the SPP example?
You can use
esp_bt_gap_set_scan_mode(ESP_BT_NON_CONNECTABLE, ESP_BT_NON_DISCOVERABLE);
to set the slave to non-connectable whenever you want.

@beginner140BB Do you still use the SPP example? You can use esp_bt_gap_set_scan_mode(ESP_BT_NON_CONNECTABLE, ESP_BT_NON_DISCOVERABLE); to set the slave to non-connectable whenever you want.

okay thanks for the support😊


Camera External Parameter Matrix in NPZ Files

Camera External Parameter Matrix in NPZ Files, world_mat.
The row vector length of the 3 * 3 rotation matrix of this matrix is not 1, but more than 1000.
May I ask why this is.
I want to use my own dataset to understand how to handle the camera external parameter matrix to ensure smooth program operation.

Sorry for the delayed response, as I was busy with another project. "world_mat" can be considered as the projection matrix. It is obtained by multiplying the intrinsic and extrinsic camera parameters, which may result in larger values in the first three dimensions. Its definition aligns with the camera matrix in the NeuS dataset. Additionally, we have included a preprocessing code in the "scripts" folder that converts OpenCV camera parameters to our dataset camera parameters. Please feel free to refer to it for help.


Error uploading VM image with gcloud compute images import

Hello, I was able to upload a file 2 days ago after I changed zone to us-west2-a. But today I got this error message when running the same procedure:
[Daisy] Errors in one or more workflows:
import-and-translate: step "import" validation error: step "import-virtual-disk" validation error: ResourceDoesNotExist: projects/strange-terra-239901/global/networks/default does not exist
[import-and-translate]: 2019-05-13T20:42:48Z Error validating workflow: step "import" validation error: step "import-virtual-disk" validation error: ResourceDoesNotExist: projects/strange-terra-239901/global/networks/default does not exist
ERROR
I opened the tmpimage buket and the file shows there:f4c92a07-fca2-4cb8-989c-9936f79c4e99-postgres2.vmdk
Thanks in advance.

It appears there's no default network present in the project anymore. You'll have to use --network (and potentially --subnet) flags to specify a network to be used during import process.

Thank you @zoran15. Is there a way for me to try to build the image from the Temp folder so I dont have to upload the whole 67GB again?

--source-file can be a path to a file in GCS, e.g. --source-file=gs:/your-bucket/your-file
Please use gcloud compute images import --help or the following pages for more help with using image import functionality:
https://cloud.google.com/sdk/gcloud/reference/compute/images/import
https://cloud.google.com/compute/docs/images/importing-virtual-disks
This GitHub repo is for Daisy and it's derivatives which are used internally in image import but they are open source.
More info on Google Cloud Support: https://support.google.com/cloud/answer/6282346
Feel free to create bug reports for any bugs in Daisy or it's derivatives here.


Gives the wrong IFSC code data

https://ifsc.razorpay.com/ALLA0211284
Which gives wrong IFSC code data.
Here is the screenshot attachment from. RBI website data "https://rbidocs.rbi.org.in/rdocs/content/docs/68774.xlsx"

The details come from the RBI website itself: https://rbidocs.rbi.org.in/rdocs/RTGS/DOCs/RTGEB0815.xlsx (Linked at https://www.rbi.org.in/scripts/FAQView.aspx?Id=65)
Can't do anything here, perhaps reach out to RBI or the banks to get this corrected.


object-literal-key-quotes false positive

The rule suggests removing quotes around empty string
const a = {
    '': 'b', // [tslint] Unnecessarily quoted property '' found. (object-literal-key-quotes)
}

Hi @anvish
The object-literal-key-quotes rule is a base TSLint rule.
Can you please create this defect on that project? It is not my source code :(
https://github.com/palantir/tslint/issues/new

Seems to be fixed there in latest version.


How to open a .py file in Spyder by double-clicking a .py file

Issue Report Checklist

[ ] Searched the issues page for similar reports
[ ] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[ ] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[ ] Tried basic troubleshooting (if a bug/error)

[ ] Restarted Spyder
[ ] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[ ] Tried the other applicable steps from the Troubleshooting Guide

[ ] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
What steps reproduce the problem?

What is the expected output? What do you see instead?
Paste Traceback/Error Below (if applicable)

PASTE TRACEBACK HERE

Versions

Spyder version:
Python version:
Qt version:
PyQt version:
Operating System name/version:

Dependencies

PASTE DEPENDENCIES HERE

I am using mac.

describe you issue more detailed please

This is not possible at the moment, sorry.


Agent Architecture Working Group FY24Q3

To help the new Agent Architect in a scalable fashion we are starting by creating the Agent Architecture Working group with a Lead Engineer from all the teams.
The request for Q3 is a 3 week time-boxed allocation for each Lead Engineer to work on initiatives that come up within the quarter.

Will be done under #2193 . Closing as dupe.


New protocol

This branch uses the new transformice protocol, which changes the packet size format.
It is required to update to this new version in order to keep using transfromage.

By the way, I didn't test it. It might have some bugs, but I guess it does work.

By the way, @Minstfm has tested this PR and he said it runs nicely.

Worked for me too :+1:


Add support for Date()

Add basic support for Date() for simple timing. Need to consider possibility of exposing too much timing information.

Could it be opt-in with a flag? In my use case I only need it for some logging during development and debugging. So if it exposed vulnerability, I could disable it for production.

Yes, that might be a good compromise for the time being.


⚠ ClamAV has degraded performance

In f5914ed, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 96 ms

Resolved: ClamAV performance has improved in 5ab93bc after 1 hour, 14 minutes.


Login failed while connecting window desktop through RDP to  Ubuntu desktop

[20170927-15:34:27] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55210
[20170927-15:34:27] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:27] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:34:27] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:34:27] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:34:27] [DEBUG] Security layer: requested 11, selected 0
[20170927-15:34:27] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:34:27] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55212
[20170927-15:34:27] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:27] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:27] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:34:27] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:34:27] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:34:27] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:34:27] [DEBUG] Security layer: requested 0, selected 0
[20170927-15:34:28] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:34:28] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:28] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:34:31] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55214
[20170927-15:34:31] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:31] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:34:31] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:34:31] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:34:31] [DEBUG] Security layer: requested 11, selected 0
[20170927-15:34:31] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:34:31] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55215
[20170927-15:34:31] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:31] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:31] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:34:31] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:34:31] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:34:31] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:34:31] [DEBUG] Security layer: requested 0, selected 0
[20170927-15:34:31] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:34:31] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:31] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:34:41] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55216
[20170927-15:34:42] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:42] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:34:42] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:34:42] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:34:42] [DEBUG] Security layer: requested 11, selected 0
[20170927-15:34:42] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:34:42] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55217
[20170927-15:34:42] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:42] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:42] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:34:42] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:34:42] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:34:42] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:34:42] [DEBUG] Security layer: requested 0, selected 0
[20170927-15:34:42] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:34:42] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:34:42] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:35:04] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55220
[20170927-15:35:04] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:04] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:35:05] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:35:05] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:35:05] [DEBUG] Security layer: requested 11, selected 0
[20170927-15:35:05] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:35:05] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55221
[20170927-15:35:05] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:05] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:05] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:35:05] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:35:05] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:35:05] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:35:05] [DEBUG] Security layer: requested 0, selected 0
[20170927-15:35:05] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:35:05] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:05] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:35:08] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55223
[20170927-15:35:08] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:08] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:35:08] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:35:08] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:35:08] [DEBUG] Security layer: requested 11, selected 0
[20170927-15:35:08] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:35:08] [INFO ] A connection received from: ::ffff:<IP_ADDRESS> port 55225
[20170927-15:35:08] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:08] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:08] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20170927-15:35:08] [ERROR] Listening socket is in wrong state, terminating listener
[20170927-15:35:08] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20170927-15:35:08] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20170927-15:35:08] [DEBUG] Security layer: requested 0, selected 0
[20170927-15:35:08] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
[20170927-15:35:08] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:<IP_ADDRESS> port 3389)
[20170927-15:35:08] [ERROR] Listening socket is in wrong state, terminating listener

Here.

[20170927-15:35:08] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions

The root cause is clear, no feedback from the reporter, closing.


155692396 batch promise calls

Batch promise calls instead of making await series

I know it's not essential but the deprecated calls such as sha3 and throw in usingOraclize.sol should get changed to their respective updated functions (keccak256() and revert() respectively) in order to avoid the compilation warnings.
Lines:
==No Visibility==
35:5
36:5
37:5
38:5
39:5
40:5
41:5
42:5
43:5
44:5
45:5
46:5
50:5
== throw -> revert ==
856:71
859:37
815:29
== sha3 -> keccak256 ==
830:22
908:48

Adding to the readme a notice for us to modernize the usingOraclize contract.


formatMaximum/Minimum take timezone into account for time and date-time format

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
24 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-13.5%) to 79.861%

Files with Coverage Reduction
New Missed Lines
%

dist/formats.js
24
70.98%

Totals

Change from base Build<PHONE_NUMBER>:
-13.5%

Covered Lines:
134

Relevant Lines:
162

💛  - Coveralls


Create a fantastic logging/error reporting system

I've used several methods for logging, and all of them have either fallen short or simply not been complete.  A good logging system should:

Provide various levels of error messaging (ERROR, WARNING, MESSAGE, etc)
Output to multiple streams (std::cout, FILE, Screen)
Be able to turned on/off globally
Provide color-coded output

spdlog is a possible alternative.

This does not need to be included in 0.9 release.  There hasn't been any ask for a logging system at this point and development is mostly managed well with the strong component-based design and test driven development, to be honest.
I'm going to keep the issue for now (a native logging solution would be nice for users), but at a minimum I'm removing the 0.8.9, 0.9 tags and as a task in the Release 0.9 milestone.


Using --genkey --secret filename is DEPRECATED

It is deprecated with OpenVPN 2.5, but the new syntax is not available for any previous version so this pull request breaks the installer almost everywhere.
The warning is harmless, but I will consider suppressing it with a simple test to check for the OpenVPN version.


Pytest - Run test from test explorer fail with uppercase test folder name

Environment data

VS Code version: 1.35.1
Extension version (available under the Extensions sidebar): 2019.6.22090
OS and version: Windows 10 Home Edition
Python version (& distribution if applicable, e.g. Anaconda): Python 3.6.8
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): global python 3.6.8
Relevant/affected Python packages and their versions: pytest 4.6.3
Jedi or Language Server? (i.e. what is "python.jediEnabled" set to; more info #3977): Jedi

Expected behaviour
Test file could be run from test explorer in activity bar.
Actual behaviour
Test file could not run from test explorer in activity bar.
CodeLens adornments disappear from the test file.
Steps to reproduce:

enable pytest from D:\projectRoot.vscode\setting.json as following:

{
    "python.testing.unittestEnabled": false,
    "python.testing.nosetestsEnabled": false,
    "python.testing.pytestEnabled": true,
    "python.testing.pytestArgs": [
        "Test"
    ]
}

project folder structure is as following:

D:\projectRoot\
    .vscode\
    SRC\
        src.py
    Test\
        __init__.py
        test_src.py

Run Test file from test explorer in activity bar

Logs
Python Test Log say that:
============================= test session starts =============================
platform win32 -- Python 3.6.8, pytest-4.6.3, py-1.5.2, pluggy-0.12.0
rootdir: d:\projectRoot
collected 0 items / 1 errors

=================================== ERRORS ====================================
______________________ ERROR collecting test/test_src.py ______________________
ImportError while importing test module 'd:\projectRoot\test\test_src.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
ModuleNotFoundError: No module named 'test.test_src'
...

Additional Information
All the setting work for the vscode-python for previous release (2019.5.18875).
When I change the folder name containing the test file from Test to test, with python.testing.pytestArgs setting in setting.json to ["test"], test file could be run from test explorer. However, codeLens adornments still disappear.
It seems for the current release, vscode-python change the uppercase letter for folder name to lowercase before they import the test module. This change to letter case cause the problem.

I am not getting similar errors, but I can confirm the tests in directory with uppercase test folder name are not being run.

I have a very similar issue. After updating to 2019.6.22090, every capital letter in the test module's path will be turned to lowercase when displayed in the test explorer. A quick fix could be to avoid any capital letter in any source file and folder names, but that would go against our naming convention.
When using "Run All Tests" or "Debug All Tests" buttons in the test explorer, I see in the Python Test Log output window that tests are executed (and whether they pass or not), and the status bar icon reflects the correct result. However, pass/fail results are not reported in the test explorer.
However, when I try to run or debug tests using the green "Play" arrow next to the lowercase test module name, I get a test collection error. Interestingly, when I look at the log message, it correctly capitalizes paths outside of the current workspace, but not paths inside the current workspace. For example, a test module in a workspace located in C:\Sources\ProjectName would have the following path: C:\Sources\ProjectName\TestModules\test_SomeModule.py, but when called from the test explorer, the log displays that PyTest tries to import c:\Sources\ProjectName\testmodules\test_somemodule.py
The test explorer also returns an "all lowercase" version of the file path (from "c:" to ".py") when trying to access the code from the test explorer view. I can't have any code lens on tests if there is a capital letter anywhere in the test module's full path.
Reverting to 2019.5.18875 fixes all these issues.
VS Code version: 1.36.1
Extension version (available under the Extensions sidebar): 2019.6.22090
OS and version: Windows 10 Pro 64-bit, version 1809, build 17763.557
Python version : Python 3.7.3
Type of virtual environment used : N/A (also affects venv and virtualenv)
Relevant/affected Python packages and their versions: pytest 5.0.1
Jedi or Language Server?: Jedi (both are affected)

Is this windows only ?

I observe the same behaviour reported by PhilMacKay above https://github.com/microsoft/vscode-python/issues/6410#issuecomment-509765920

VS Code version: 1.36.1
Extension version (available under the Extensions sidebar): 2019.6.24221
OS and version: Windows 10 Pro 64bit, version 1809, build 17763.557
Python version: Python 3.6.7
Type of virtual environment used: conda
Relevant/affected Python packages and their versions: pytest 5.0.1
Jedi or Language Server?: Language Server

After thorough investigation, I realized this happens with pytest version 5.0.0 and upper, and the extension's TestCollector (in pythonFiles/testing_tools/adapter/pytest/_discovery.py) which applies os.path.normcase on every path.
According to pytest's change log https://docs.pytest.org/en/latest/changelog.html#id15, bugfix https://github.com/pytest-dev/pytest/issues/2761#issue-256094577 changes the way they deal with paths on case-insensitive systems.
Basically, a workaround is:

Use most recent version of pytest and VSCode Python extension version 2019.5.18875 --> everything works as it should.
OR
Use most recent version of VSCode Python extension and a pytest version below 5.0.0. In that case, we only suffer from bug #6695, but we can run any test individually.

This should be resolved now due to #6781 and #6877.  Those changes are already in the insiders build of the extension and will be part of the September release.

@PhilMacKay indicated that this is resolved.  See https://github.com/microsoft/vscode-python/issues/6820#issuecomment-520972436


Keyboard layout problem

There is a ubuntu18:04 docker container in which I install the client freerdp2-x11 and tightvncserver. I connect to this container using Remmina with the VNC protocol, and then, after entering the password, I connect to a Windows 10 remote desktop. Remote desktop connection parameters are passed to the container as environment variables (-e option).
Container run code:
docker run -d --rm --name main-check -e USER=**** -e RDP_IP=***.***.**.** -e VNC_RESOLUTION=1920x1080 -p 5901:5901 test-main:latest

But after the RDP-connection, the keyboard layout gets lost (for example, 'h' is printed instead of 'f'). Everything is fine inside the container, and after connecting via VNC, the password is entered without problems. So most likely the problem is in the RDP-connection. Please tell me what can be done in this situation? (Option / kbd: 0x<id> didn't help).
Script in ENTRYPOINT:
#!/bin/bash
set -e

###VNC settings
VNC_OPTIONS="-depth ${VNC_DEPTH} -geometry ${VNC_RESOLUTION} ${DISPLAY}"

DIRECTORY="$HOME/.vnc"
if [ ! -d "$DIRECTORY" ]; then
  mkdir -p "$DIRECTORY"
fi
umask 0077
chmod go-rwx "$HOME/.vnc"
vncpasswd -f <<<"$VNC_PASSWORD" >"$DIRECTORY/passwd"
VNC_IP=$(ip addr show eth0 | grep -Po 'inet \K[\d.]+')
echo ${VNC_OPTIONS}
vncserver -kill ${DISPLAY} || rm -rfv /tmp/.X*-lock /tmp/.X11-unix \
|| echo "remove old vnc locks to be a reattachable container"
mkdir /root/.Xsession
/usr/bin/vncserver ${VNC_OPTIONS}

###Password window
read_password() {
PROFILE_PASSWD=$(yad --width 300 --center --entry --hide-text \
--image "dialog-password" \
--text "Enter password \n <b>$1</b>:" \
--title " " --button=gtk-ok)
echo "$PROFILE_PASSWD"
}

USER_PASSWD=$(read_password $USER)
RDP_WIDTH=$(awk -F'[x]' '{print $1}' <<< $VNC_RESOLUTION)
RDP_HEIGHT=$(awk -F'[x]' '{print $2}' <<< $VNC_RESOLUTION)
echo $RDP_WIDTH
echo $RDP_HEIGHT

###Start RDP
xfreerdp /u:$USER /p:$USER_PASSWD /v:$RDP_IP:$RDP_PORT /cert-ignore \
/w:$RDP_WIDTH /h:$RDP_HEIGHT

List of environment variables in Dockerfile:
ENV DISPLAY=:1 \
    VNC_PORT=5901 \
    USER=root \
    VNC_DEPTH=24 \
    VNC_RESOLUTION=1280x1024 \
    VNC_PASSWORD=password \
    RDP_PORT=3389 \
    RDP_IP=

@weirdfishes9 this will never work as the VNC server causes the keyboard detection to fail. There simply is no way to get the correct layout with this setup, so you will have to live with that.


feat: Add support for FastAPI Lifespan DIA-69117

Problem
FastAPI SQLA Cannot be used with the FastAPI Lifespan, only with the deprecated startup/shutdown events.
Solution
Split the setup function into two smaller ones; the first one should be called in the Lifespan function and the second one is used to register the middlewares (which cannot be done in the lifespan)
Note that the previous setup function is still there for backward compatibility
Validation
Tested in ER:

The app boot correctly using a Lifespan instead of the events
The test are all passing

Why not change setup to use lifespan rather than having library users to do so?

Also, why changing setup to setup_middlewares? is that necessary? Whenever we'll want to setup something_else, will we add a setup_something_else
Can't we just keep setup?


client.findResources() is failing to discover the resources

Step1: Run client which calles client.findResources() periodically.
var device = require( "iotivity-node" )();

device.configure( {
    role: "client",
    connectionMode: "acked"
} ).then(
    function() {
        discoverResources();
    },
    function( error ) {
        console.log( "Client: device.configure() failed with " + error );
    } );

device.client.addEventListener( "resourcefound", function( event ) {
    console.log( "Discovered resource(s) via the following event:\n" +
        JSON.stringify( event, null, 4 ) );
} );

function discoverResources() {
    device.client.findResources().then(
        function() {
            console.log( "Client: findResources() successful" );
        },
        function( error ) {
            console.log( "Client: findResources() failed with " + error +
                " and result " + error.result );
        } );
    notifyObserversTimeoutId = setTimeout(discoverResources, 5000);
}

Step2: Run the server without resource registration.

var device = require( "iotivity-node" )();

device.configure( {
        role: "server",
        connectionMode: "acked",
        info: {
            uuid: "Test Server",
            name: "server-example",
            manufacturerName: "Intel",
            firmwareVersion: "0.0.1",
        }
} );

Step 3(optional): Run an another server that register the resource.
e.g.  https://github.com/otcshare/iotivity-node/blob/master/js/high-level-server-example.js
Outcome: Check the output at client side
Client: findResources() failed with Error: findResources: failed to cancel previous handle and result 255

@gabrielschulhof


feat: add new regex routing

❓ Type of change

[x] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[x] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[x] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
The new version of this commit https://github.com/nuxt-modules/i18n/pull/2927 includes a new routing system. However, I was unable to complete the last two tests:
specs/routing/prefix-and-default.spec.ts > localePath > route strategy: prefix_and_default > should be worked.
These are related to link generation. Unfortunately, I still can't figure out how it works or how to fix it.
Everything is functioning now, please take a look when you have time.
The description was in the previous pull request.
📝 Checklist

[ ] I have linked an issue or discussion.
[x] I have added tests (if possible).
[x] I have updated the documentation accordingly.

I've caught a memory leak when using routeToObject instead of:
Copy code
const subRoute = {
    name: route.name,
// ...

In this case, all tests start to lag. It seems like this issue might be relevant to any code where routeToObject is used

memory tests(10k requests)
regexp version

8.3.1

Description of the new routing:
Now, routes come in three types:

Primary Route:

name: "blog"
path: "/blog"
This route remains unchanged from the original. However, it can be modified based on the strategy employed. Typically, it's a crucial part of the routing structure.

Localized Route:

path: "/:locale(fr)/blog"
name: "blog___locale"
In this type of route, regular expressions for locales are added to the path. Additionally, the name is prefixed with ___locale. These routes facilitate localization by serving content in different languages.

Custom Routes:

path: "/:locale(fr)/produits/:id()"
name: "products-id___locale___fr"
Each custom route is prefixed with the locale. These routes are more complex and require more extensive testing. Their usage and behavior may vary depending on the strategy employed. Currently, they are not in use, making it challenging to thoroughly test their functionality.

Additionally, meta.locale is added to all routes. This allows for determining whether the module is working with the route or not.
Next, there's a search for routes based on the route name, locale, and strategy. The implementation of this search logic might not be optimal, but no better alternatives have been identified yet.
Further details will follow.

I've fixed all the tests, but there are still some warnings left that I couldn't catch locally; my tests don't show them. Maybe you'll be able to catch them. The resolve function sometimes passes the locale parameter where it's not needed (to routes without a locale), but it's already possible to start reviewing and testing.
I also had to adjust two tests. One issue was related to i18n, and for the second one, I'm out of energy to fix it.

Any chance this is getting merged anytime soon ?

I was wondering if there might be an update on the timeline for merging this? Thank you for your time and consideration.

I was a bit busy the last few months but I'm still considering this feature as we're working v9, no timeline though.


1.16

hey! i use litematic and i use this website to make pixel art but i notcied that sometimes the blocks just straight up dont show up in the schematic when i load it into the world.Any way to fix this?

I've been using the 1.12 version and it works perfectly for my 1.17.1 world, you should probably use worldedit, it's what the site recommends


Lookup function not working

Output of helm version:
version.BuildInfo{Version:"v3.12.1", GitCommit:"f32a527a060157990e2aa86bf45010dfb3cc8b8d", GitTreeState:"clean", GoVersion:"go1.20.4"}

Output of kubectl version:
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.2", GitCommit:"7f6f68fdabc4df88cfea2dcf9a19b2b830f1e647", GitTreeState:"clean", BuildDate:"2023-05-17T14:20:07Z", GoVersion:"go1.20.4", Compiler:"gc", Platform:"windows/amd64"}
Kustomize Version: v5.0.1
Server Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.4", GitCommit:"fa3d7990104d7c1f16943a67f11b154b71f6a132", GitTreeState:"clean", BuildDate:"2023-07-21T14:07:10Z", GoVersion:"go1.20.6", Compiler:"gc", Platform:"linux/arm64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.):
Microk8s
Hi All!
For some reason, my lookup function does not work properly. Here is my chart:
_helpers.tpl
{{- define "password" -}}
{{- $len := 24 | int -}}
{{- $obj := (lookup "v1" "secret" .Namespace "gig3r-secret").data -}}
{{- if $obj }}
{{- index $obj "DB_PASSWORD" -}}
{{- else -}}
{{- randAlphaNum $len | b64enc -}}
{{- end -}}
{{- end }}

secrets.yaml
---
apiVersion: v1
kind: Secret
metadata:
  name: gig3r-secret
type: Opaque
data:
  DB_PASSWORD: "{{ include "gig3r.database.password" (dict "Namespace" .Release.Namespace ) }}"
  debug: "{{ (lookup "v1" "Secret" .Release.Namespace "gig3r-secret") | toJson }}"

kubectl get secret gig3r-secret -n test returns:
NAME           TYPE     DATA   AGE
gig3r-secret   Opaque   1      21h

I deploy this with below command: (sorry for windows escapes)
helm upgrade --install `
  gig3r-test `
  ../chart/gig3r `
  --wait `
  --atomic `
  --namespace=test `
  --create-namespace `
  --dry-run --debug

And the result is this:
MANIFEST:
---
# Source: gig3r/templates/secrets.yaml
apiVersion: v1
kind: Secret
metadata:
  name: gig3r-secret
type: Opaque
data:
  DB_PASSWORD: "SGRMWEZ4RlZCeGdublY1Y0xsaDE3VjUw"
  debug: "{}"

Every time I run, DB_PASSWORD is different, even though there is a secret/gig3r-secret in namespace test with key DB_PASSWORD. And as you can see from data.debug, lookup returns empty object. Is this a bug or am I doing something wrong?

helm upgrade --install `
  gig3r-test `
  ../chart/gig3r `
  --wait `
  --atomic `
  --namespace=test `
  --create-namespace `
  --dry-run --debug

remove dry-run
https://helm.sh/docs/chart_template_guide/functions_and_pipelines/

I believe they are essentially the same, because helm  template will invoke the runInstall function , which is the core function in the helm install process. Then helm template will set dry-run value to true before invoking runInstall.

Works with helm template --dry-run=server, though!

helm upgrade --install `
  gig3r-test `
  ../chart/gig3r `
  --wait `
  --atomic `
  --namespace=test `
  --create-namespace `
  --dry-run --debug

remove dry-run https://helm.sh/docs/chart_template_guide/functions_and_pipelines/

This documentation is not true anymore, so I created a PR on the helm doc's repo.

Thanks @Kerry-G (docs update looks to have been missed from https://github.com/helm/helm/pull/9426 )


feature(cbi-740-ddc-metrics): Rename to meaningfull ocw

Draft PR. Buildable, runnable. Dependencies: Call smart contract submit.

You have conflict in one file. Please pull from feature/ddc-ocw branch and update it.

You have conflict in one file. Please pull from feature/ddc-ocw branch and update it.
I have just pulled feature/ddc-ocw. There is not any conflict. After rebuild successfully, i will notice you.

Can you see this description below?
This branch has conflicts that must be resolved
?
@huythanhcere

So strange: This folder is renamed. frame/example-offchain-worker/src/lib.rs --> frame/ddc-metrics-offchain-worker/src/lib.rs. In local side there is not any conflict.

Pull locally from feature/ddc-ocw
Merge feature/ddc-ocw to your branch and you will face with the conflict
@huythanhcere

Out of date base branch. I commit the latest. I did not need to resolve any thing. Now it is ok.


Move to project.json

Nuget 3 supports project.json. Evaluate if it works with CodeCracker.
 So we won't fix this one.


NO-ISSUE: UPSTREAM: : update owners

Remove alumni from owners
Add m1kola to approvers

/approve
/lgtm


feature: toggling a maximized panel that was closed when maximize command was issued, should close it again

Please consider this workflow

Use CTRL-`  to open a terminal window, it appears with 'restored panel size' height (e.g. about 15 lines, below the editor groups)

Click 'X' to close all the panel, so that editor groups is maximized in height

press CTRL-SHIFT-Q to maximize the panel

press CTRL-SHIFT-Q again. I expect the panel to be closed, instead it's returned to the 'restored panel size' height of about 15 lines, below the editor groups.

--
During development I want to quickly toggle between full size code editor and unit test output. CTRL-SHIFT-Q seems the best way to do this, but it doesn't return the panel to the closed state when I expect it to.
In my example workflow above, I used terminal window as an example, but this should apply to any tab in the panel section.  If the panel is currently closed, then maximized, then maximized again, it should return to the close state, not to the 'restored' state.
thanks

this feature suggestion does not appear to be related to #13906 nor #46017

I can keep this open as a feature request but honestly not all users are expecting this behavior and could be confusing. Due to that I prefer to close this as out of scope since I know this will not be tackled.
For toggling the panel just use ctrl + J

thanks for the response, I will adapt to using CTRL-J


Only show new-node plus sign if a node is expanded and has no children

We seem to be following this rule except for nodes that have fields as children.
Essentially: hide the plus symbol if a node has child field nodes.

right now we're checking if there are children, and so we need to also check if there are fields (and if so, hide the plus node)


net: app: fix IPv6 init for late IP assigment

Fix typo'd "&&" when checking bit value
Don't use NET_EVENT_IPV6_ADDR_ADD for checking mask value
due to combination of bits: _NET_EVENT_IPV6_BASE |
NET_EVENT_IPV6_CMD_ADDR_ADD
Instead use NET_EVENT_IPV6_CMD_ADDR_ADD so the check works
when NET_EVENT_IPV6_ROUTER_ADD is enabled.

Tested fix with echo_server on x86 qemu where it was previously
broken.
Signed-off-by: Michael Scott<EMAIL_ADDRESS>

Thanks! Also tested with frdm_k64f Ethernet.


Add note about creating .env if it doesn't already exist

Pull request checklist
Before creating the PR
Make sure that:

[x] You've read the contribution guidelines.
[x] You've previewed your changes locally.

Describe the change

Impacted parts

For content changes:

[x] Documentation content
[ ] Documentation page organization

After creating your PR and tests have finished
Make sure that:

[ ] You've fixed any issues raised by the tests.
[x] You've previewed your changes on GitHub Pages

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I think this is a bug in the GoQ docs, you shouldn't need to create .env to preview on docker. Created an issue here: https://github.com/ConsenSys/doc.goquorum/issues/234
Thanks for raising!


GQE-164 Only 1 worker generates test data

Jira Ticket: GQE-164
Observed here that tests are failing when using multiple workers, because different test graph data is generated and overwritten by the workers. Update the setup_tests function so it only runs once.
New Features

Add the one_worker_only decorator that can be used on auto-run setup fixtures so that only 1 worker runs them

Bug Fixes

Fix test graph data generation and TestGraphSubmitAndQuery test suite when multiple workers are used

@haraprasadj Reverting the dependency upgrades worked ^
So the pyproject.toml file is currently allowing an update that would break the tests. This will happen again next time someone updates the lock file. Not sure which one is it, but here are the downgrades I did to get it working again:
  • Updating certifi (2024.2.2 -> 2023.11.17)
  • Updating pytz (2024.1 -> 2023.3.post1)
  • Updating setuptools (69.1.0 -> 69.0.3)
  • Updating urllib3 (2.2.1 -> 2.1.0)
  • Updating anyio (4.3.0 -> 4.2.0)
  • Updating multidict (6.0.5 -> 6.0.4)
  • Updating pluggy (1.4.0 -> 1.3.0)
  • Updating aiohttp (3.9.3 -> 3.9.1)
  • Updating click (8.1.7 -> 7.1.2)
  • Updating numpy (1.26.4 -> 1.26.3)
  • Updating tzdata (2024.1 -> 2023.4)
  • Updating gen3datamodel (3.1.2 190f998 -> 3.1.3 190f998)
  • Updating pandas (2.2.0 -> 2.1.4)
  • Updating playwright (1.41.2 -> 1.41.0)
  • Updating pypfb (0.5.29 -> 0.5.27)
  • Updating pytest-base-url (2.1.0 -> 2.0.0)
  • Updating pytest-metadata (3.1.1 -> 3.0.0)
  • Updating python-slugify (8.0.4 -> 8.0.1)
  • Updating tqdm (4.66.2 -> 4.66.1)
  • Updating gen3 (4.22.4 -> 4.22.2)
  • Updating pytest-md-report (0.5.1 -> 0.5.0)
  • Updating pytest-playwright (0.4.4 -> 0.4.3)
  • Updating python-dotenv (1.0.1 -> 1.0.0)


coins disappeared out of my wallet and an unconfirmed transaction in blockchain

My coins have disappeared out my wallet and I have unconfirmed transaction in blockchain from yesterday. PLEASE HELP!!

Hi,
I'll take a look. Can you provide me a transaction I.d and address? If you want to keep it non public email me at<EMAIL_ADDRESS>

I was told this is not going through because my transaction fee is to low?
On Wed, Nov 23, 2016 at 4:29 AM, OutCast3k<EMAIL_ADDRESS>wrote:

Hi,
I'll take a look. Can you provide me a transaction I.d and address? If you
want to keep it non public email me at<EMAIL_ADDRESS>—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/OutCast3k/coinbin/issues/67#issuecomment-262478834,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWl8hgqJvB2rd8kmfUIkCCyjtTRA6dFcks5rBBWZgaJpZM4K6K0z
.

I spend my bitcoins 4 days ago

https://blockchain.info/tx/204dc6c76ac03f918bdedf8866af79d98c5336b192db8c912deab2a7daf462c1


receiving packets and decoding frames but no graphical output

summary
I am making a hobby project to record the screen of firefox inside of docker and output it to the browser via webrtc. I know there are multiple projects that do something similar already but I wanted to try to implement it myself so I have greater control over it and know what is going on internally.
I use pion/webrtc in the back end and I am receiving packets from a TrackLocalStaticSample track in the fron end. When I add the video track the video player on the front end resizes to the right size to match the video that is being sent so I think at least some part of the packets is being decoded correctly. However the video player stays blank and I don't see any graphical output at all. (I also have a audio track running but I'm first trying to make the video track work)
I have been trying to figure out this issue for a few days now and I feel like I'm very stuck so I would appreciate any input you could give me greatly!
my pipeline
The video packets originate from a Gstreamer pipeline that records using ximagesrc, encodes into vp8 and output into an appsink. this is the pipeline:
ximagesrc display-name=:99.0 show-pointer=true startx=0 starty=85 endx=1329 endy=1054 use-damage=false ! video/x-raw,framerate=25/1 ! videoconvert ! queue !  vp8enc target-bitrate=5200000 cpu-used=4 end-usage=cbr threads=4 deadline=1 undershoot=95 buffer-size=32000 buffer-initial-size=16000 buffer-optimal-size=24000 keyframe-max-dist=25 min-quantizer=4 max-quantizer=20  ! appsink name=appsinkvideo
webrtc-internals
Here are my webrtc-internals it shows the audio track above and the video track below.

front-end signaling console logs
Here you can see my front end console and the video player. I highlighted the video player to show that it resized to the same size as the video (I have no active css that makes it resize it only resizes when the track is received so i think that would indicate at least some part of the packets gets decoded)

solution
I just discovered what was messing stuff up for me. it turns out you cant have a audiotrack with autoplay and this prevented my videotrack from playing as well. I didnt have to remove the audio track but i could just add the muted property to the video tag and then autoplay worked and users can enable sound themselves.


XGBClassifier fit() custom eval_metric is not called

I am passing a custom evaluation metric function to XGBClassifier fit(), but the Python API discards callable (i.e., custom) functions. Why? It also seems to discard any string inputs. Regardless of what I pass in, the results are the same. I tried all objective functions as well, and the eval_metric parameter does not have an impact on any of them.
How are we supposed to pass in custom functions? Or is this functionality not supported by the Python Scikit API?
model = XGBClassifier(scale_pos_weight=scale_pos_weight)
model.fit(X_train, y_train, eval_metric=xgb_f1)

@jonyer

I am passing a custom evaluation metric function to XGBClassifier fit(), but the Python API discards callable (i.e., custom) functions.

It works for me. Here is my program:
from typing import Tuple, Dict, List

import numpy as np
import xgboost as xgb
from sklearn.model_selection import train_test_split

# shape of generated data.
kRows = 4096
kCols = 16

kRatio = 0.7
kSeed = 1994

kBoostRound = 20

np.random.seed(seed=kSeed)

def generate_data() -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]:
    X = np.random.randn(kRows, kCols)
    y = np.random.randn(kRows)
    y += np.abs(np.min(y))

    # rmsle requires all label be greater than -1.
    assert np.all(y > -1.0)

    train_portion = int(kRows * kRatio)

    X_train, X_test, y_train, y_test = train_test_split(
            X, y, test_size=kRatio, random_state=kSeed)
    return X_train, X_test, y_train, y_test

def rmsle(predt: np.ndarray, dtrain: xgb.DMatrix) -> Tuple[str, float]:
    y = dtrain.get_label()
    predt[predt < -1] = -1 + 1e-6
    elements = np.power(np.log1p(y) - np.log1p(predt), 2)
    return 'PyRMSLE', float(np.sqrt(np.sum(elements) / len(y)))

def main():
    X_train, X_test, y_train, y_test = generate_data()
    clf = xgb.XGBRegressor(n_estimators=kBoostRound, objective='reg:squarederror',
            tree_method='hist', seed=kSeed)
    clf.fit(X_train, y_train, eval_set=[(X_train, y_train), (X_test, y_test)],
            eval_metric=rmsle)

if __name__ == '__main__':
    main()

Result (XGBoost 1.1.1):
[0]	validation_0-rmse:2.33321	validation_1-rmse:2.35009	validation_0-PyRMSLE:0.64873	validation_1-PyRMSLE:0.65055
[1]	validation_0-rmse:1.75676	validation_1-rmse:1.80821	validation_0-PyRMSLE:0.43219	validation_1-PyRMSLE:0.44691
[2]	validation_0-rmse:1.38112	validation_1-rmse:1.46679	validation_0-PyRMSLE:0.31647	validation_1-PyRMSLE:0.34162
[3]	validation_0-rmse:1.12578	validation_1-rmse:1.27071	validation_0-PyRMSLE:0.24837	validation_1-PyRMSLE:0.29057
[4]	validation_0-rmse:0.97474	validation_1-rmse:1.16187	validation_0-PyRMSLE:0.21377	validation_1-PyRMSLE:0.26594
[5]	validation_0-rmse:0.87860	validation_1-rmse:1.10463	validation_0-PyRMSLE:0.19428	validation_1-PyRMSLE:0.25501
[6]	validation_0-rmse:0.81496	validation_1-rmse:1.07550	validation_0-PyRMSLE:0.18310	validation_1-PyRMSLE:0.25030
[7]	validation_0-rmse:0.76317	validation_1-rmse:1.06308	validation_0-PyRMSLE:0.17378	validation_1-PyRMSLE:0.24899
[8]	validation_0-rmse:0.73728	validation_1-rmse:1.05851	validation_0-PyRMSLE:0.17022	validation_1-PyRMSLE:0.24892
[9]	validation_0-rmse:0.69912	validation_1-rmse:1.06052	validation_0-PyRMSLE:0.16307	validation_1-PyRMSLE:0.25004
[10]	validation_0-rmse:0.66966	validation_1-rmse:1.06130	validation_0-PyRMSLE:0.15724	validation_1-PyRMSLE:0.25068
[11]	validation_0-rmse:0.63564	validation_1-rmse:1.06292	validation_0-PyRMSLE:0.15040	validation_1-PyRMSLE:0.25134
[12]	validation_0-rmse:0.60166	validation_1-rmse:1.06753	validation_0-PyRMSLE:0.14349	validation_1-PyRMSLE:0.25270
[13]	validation_0-rmse:0.58108	validation_1-rmse:1.06794	validation_0-PyRMSLE:0.13882	validation_1-PyRMSLE:0.25289
[14]	validation_0-rmse:0.56392	validation_1-rmse:1.07069	validation_0-PyRMSLE:0.13501	validation_1-PyRMSLE:0.25365
[15]	validation_0-rmse:0.54285	validation_1-rmse:1.07463	validation_0-PyRMSLE:0.12979	validation_1-PyRMSLE:0.25452
[16]	validation_0-rmse:0.52637	validation_1-rmse:1.07646	validation_0-PyRMSLE:0.12632	validation_1-PyRMSLE:0.25493
[17]	validation_0-rmse:0.50439	validation_1-rmse:1.07910	validation_0-PyRMSLE:0.12157	validation_1-PyRMSLE:0.25542
[18]	validation_0-rmse:0.48786	validation_1-rmse:1.08087	validation_0-PyRMSLE:0.11788	validation_1-PyRMSLE:0.25576
[19]	validation_0-rmse:0.47791	validation_1-rmse:1.08157	validation_0-PyRMSLE:0.11571	validation_1-PyRMSLE:0.25587

This works for me too. I wasn't aware that you had to specify eval_set when specifying eval_metric. I have not seen that in the documentation. When I add eval_set, my custom function is called.
However, regardless of what my function returns (i.e., "F1 score" or "1 - F1 score" or even just "0"), the optimization result is the same.
Here are the results of "F1 score" and "1 - F1 score" and "0". As you can see, the classification report is exactly the same for all of them.
Also, I'm using XGBClassifier, no Regressor, in case that makes a difference.
[99]	validation_0-error:0.32139	validation_1-error:0.36103	validation_0-f1:0.67313	validation_1-f1:0.74420
          precision    recall  f1-score   support

       0       0.92      0.69      0.79      9555
       1       0.23      0.59      0.33      1466

accuracy                           0.68     11021

macro avg       0.57      0.64      0.56     11021
weighted avg       0.82      0.68      0.73     11021
          precision    recall  f1-score   support

       0       0.91      0.66      0.76      2421
       1       0.17      0.51      0.26       335

accuracy                           0.64      2756

macro avg       0.54      0.58      0.51      2756
weighted avg       0.82      0.64      0.70      2756

[99]	validation_0-error:0.32139	validation_1-error:0.36103	validation_0-f1:0.32687	validation_1-f1:0.25580
          precision    recall  f1-score   support

       0       0.92      0.69      0.79      9555
       1       0.23      0.59      0.33      1466

accuracy                           0.68     11021

macro avg       0.57      0.64      0.56     11021
weighted avg       0.82      0.68      0.73     11021
          precision    recall  f1-score   support

       0       0.91      0.66      0.76      2421
       1       0.17      0.51      0.26       335

accuracy                           0.64      2756

macro avg       0.54      0.58      0.51      2756
weighted avg       0.82      0.64      0.70      2756

[99]	validation_0-error:0.32139	validation_1-error:0.36103	validation_0-f1:0.00000	validation_1-f1:0.00000
          precision    recall  f1-score   support

       0       0.92      0.69      0.79      9555
       1       0.23      0.59      0.33      1466

accuracy                           0.68     11021

macro avg       0.57      0.64      0.56     11021
weighted avg       0.82      0.68      0.73     11021
          precision    recall  f1-score   support

       0       0.91      0.66      0.76      2421
       1       0.17      0.51      0.26       335

accuracy                           0.64      2756

macro avg       0.54      0.58      0.51      2756
weighted avg       0.82      0.64      0.70      2756

regardless of what my function returns (i.e., "F1 score" or "1 - F1 score" or even just "0"), the optimization results are the same.

That’s expected. We are defining a custom metric, and a custom metric has no effect on the optimization. To modify optimization, should define a custom objective instead.

Here is an example of using both custom objective and custom metric:
from typing import Tuple, Dict, List

import numpy as np
import xgboost as xgb
from sklearn.model_selection import train_test_split

# shape of generated data.
kRows = 4096
kCols = 16

kOutlier = 10000                # mean of generated outliers
kNumberOfOutliers = 64

kRatio = 0.7
kSeed = 1994

kBoostRound = 20

np.random.seed(seed=kSeed)

def generate_data() -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]:
    X = np.random.randn(kRows, kCols)
    y = np.random.randn(kRows)
    y += np.abs(np.min(y))

    # Create outliers
    for i in range(0, kNumberOfOutliers):
        ind = np.random.randint(0, len(y) - 1)
        y[ind] += np.random.randint(0, kOutlier)

    # rmsle requires all label be greater than -1.
    assert np.all(y > -1.0)

    train_portion = int(kRows * kRatio)

    X_train, X_test, y_train, y_test = train_test_split(
            X, y, test_size=kRatio, random_state=kSeed)
    return X_train, X_test, y_train, y_test

def squared_log_obj(y_true: np.ndarray,
                    y_pred: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
    y_pred[y_pred < -1] = -1 + 1e-6
    grad = (np.log1p(y_pred) - np.log1p(y_true)) / (y_pred + 1)
    hess = ((-np.log1p(y_pred) + np.log1p(y_true) + 1) / np.power(y_pred + 1, 2))
    return grad, hess

def rmsle(y_pred: np.ndarray, dtrain: xgb.DMatrix) -> Tuple[str, float]:
    y_true = dtrain.get_label()
    y_pred[y_pred < -1] = -1 + 1e-6
    elements = np.power(np.log1p(y_true) - np.log1p(y_pred), 2)
    return 'PyRMSLE', float(np.sqrt(np.sum(elements) / len(y_true)))

def main():
    X_train, X_test, y_train, y_test = generate_data()
    # Train with reg:squarederror objective
    clf = xgb.XGBRegressor(n_estimators=kBoostRound, objective='reg:squarederror',
            tree_method='hist', seed=kSeed)
    clf.fit(X_train, y_train, eval_set=[(X_train, y_train), (X_test, y_test)],
            eval_metric=rmsle)
    # Train with custom objective
    clf = xgb.XGBRegressor(n_estimators=kBoostRound, objective=squared_log_obj,
            tree_method='hist', seed=kSeed)
    clf.fit(X_train, y_train, eval_set=[(X_train, y_train), (X_test, y_test)],
            eval_metric=rmsle)

if __name__ == '__main__':
    main()

def squared_log_obj(y_true: np.ndarray,
y_pred: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
y_pred[y_pred < -1] = -1 + 1e-6
grad = (np.log1p(y_pred) - np.log1p(y_true)) / (y_pred + 1)
hess = ((-np.log1p(y_pred) + np.log1p(y_true) + 1) / np.power(y_pred + 1, 2))
return grad, hess

What is the meaning of grad and hess here? If I'd like to custom a loss function, is it necessary to return grad and hess?


[Bug]

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache SkyWalking Component
Java Agent (apache/skywalking-java)
What happened
When using a Neo4J 4.x java driver, the skywalking agent closes transactions spans just after the call, not waiting for asynchronous result.
What you expected to happen
It should wait until a result is returned before closing the span.
How to reproduce
Use the agent on code calling Session.writeTransaction API in the Neo4J java client.
Anything else
No response
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Please update the issue title.

@guillaume-alvarez Would you open a pull request for the fix?
I'm trying to build the project. Is there any doc with the advised maven commands?

For compiling and docker build, https://skywalking.apache.org/docs/skywalking-java/next/en/contribution/compiling/

I tried but I get a lot of errors like this one:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project java-agent-network: Compilation failure: Compilation failure:
[ERROR] /C:/skywalking/bug_neo4j/skywalking-java/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/command/BaseCommand.java:[21,51] package org.apache.skywalking.apm.network.common.v3 does not exist

There is git submodule in the repository. If ...v3 doesn't exist, it means you don't CLONE the repo correctly, I am afraid.
./mvnw clean package -Pall is the key, if this is in the git env, it would download submodules automatically. There should be files here

Ping @wallezhang in case you are still watching this plugin.
@guillaume-alvarez Would you open a pull request for the fix?

Thanks for reporting the bug, this is indeed a situation that was not considered at that time.


 When you execute this command, the attached image appears in fullscreen mode or somewhere else on the screen. It’s similar to a drawing studio, but instead of GDI effects, you’re working with images.
or videos using the moviepy library.
you could also change the way to play mp3 files so that the attached mp3 file gets played with a command like .playsound or something

You can already do that just not in one command but in two. Use .upload to upload your video or picture and then use .execute to open it


Please consider fixing issues detected by repository checker

Notification from ioBroker Check and Service Bot
Dear adapter developer,
I'm the ioBroker Check and Service Bot. I'm an automated tool processing routine tasks for the ioBroker infrastructure. I have recently checked the repository for your adapter dysonairpurifier for common errors and appropiate suggestions to keep this adapter up to date.
This check is based the current head revisions (master / main  branch) of the adapter repository
Please see the result of the check below.
ioBroker.dysonairpurifier
   -
ERRORS:

[ ] :heavy_exclamation_mark: [E405] Icon must be in the following path: https://raw.githubusercontent.com/Grizzelbee/ioBroker.dysonairpurifier/main/admin/; correct sources-dist.json
[ ] :heavy_exclamation_mark: [E407] Meta URL must be equal to https://raw.githubusercontent.com/Grizzelbee/ioBroker.dysonairpurifier/main/io-package.json; correct sources-dist.json
[ ] :heavy_exclamation_mark: [E426] Icon must be in the following path: https://raw.githubusercontent.com/Grizzelbee/ioBroker.dysonairpurifier/main/admin/; correct sources-dist-stable.json
[ ] :heavy_exclamation_mark: [E428] Meta URL must be equal to https://raw.githubusercontent.com/Grizzelbee/ioBroker.dysonairpurifier/main/io-package.json; correct sources-dist-stable.json
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,sm,md,lg,xl] for alive at admin/jsonConfig.json/items/testAlive
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,xl] for password at admin/jsonConfig.json/items/Password
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,xl] for select at admin/jsonConfig.json/items/country
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,xl] for select at admin/jsonConfig.json/items/temperatureUnit
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,xl] for text at admin/jsonConfig.json/items/email
[ ] :heavy_exclamation_mark: [E510] responsive check: maximum issues reached, please fix reported ones and recheck

:thumbsup: No warnings found
:thumbsup: No suggestions found
Please review issues reported and consider fixing them as soon as appropiate.
Errors reported by repository checker should be fixed as soon as possible. Some of them require a new release to be considered as fixed. Please note that errors reported by checker might be considered as blocking point for future updates at stable repository.
You may start a new check or force the creation of a new issue at any time by adding the following comment to this issue:
@iobroker-bot recheck
or
@iobroker-bot recreate
Please note that I (and the server at GitHub) have always plenty of work to do. So it may last up to 30 minutes until you see a reaction. I will drop a comment here as soon as I start processing.
Feel free to contact me (@iobroker-bot) if you have any questions or feel that an issue is incorrectly flagged.
And THANKS A LOT for maintaining this adapter from me and all users.
Let's work together for the best user experience.
your
ioBroker Check and Service Bot
@mcm1957 for evidence
Last update at Wed, 13 Nov 2024 05:15:40 GMT based on commit 1104a2175df7214bc7ad9dcacfbc0089d86700d7
ioBroker.repochecker 3.2.2

@iobroker-bot recheck


Add Norwegian Translation

Awesome, thanks for your help @kattti! 👍

Hey, thanks again for your help @kattti. 🙏
I ordered some Pimple Popper stickers. Please send me your address via email if you would like to receive a few. ☺


Added CPR configuration option to SC60228 Encoder

The SC60228 encoders that I have are reporting 2048 ticks rather than the expected 4096. This is probably an SPI register setting, but I can't find documentation on the chip's register map.
As a solution (interim maybe?) I'm proposing making the encoder ticks a parameter, placing it 2nd in the list since I suspect it's more likely to be overridden than the SPI settings.

May I ask which MCU you are using?
Could you try changing the SPI mode to see if it makes a difference? I recently noted a similar thing for the MT6701 sensor, where some MCU types read an extra bit at the start, and others do not...

If we can figure out what's causing the problem and fix it, or at least figure out the MCU types that have it one way vs the ones that have it the other, we can fix it in the code and not make it up to the user... users will find it difficult otherwise.

That's a good point. I'm using a STM32G031F8. I'll see if there's an SPI configuration option that helps.


html

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

not working

fjekeke


equalalways is smarter on splitting than closing

vim --clean -c "vs | vs | sp | res +15 | winc l | winc l | sp | clo"
What I got:       What I expected:

┌───┬───┬───┐     ┌───┬───┬───┐
│   │   │   │     │   │   │   │
├───┤   │   │     │   │   │   │
│   │   │   │     ├───┤   │   │
└───┴───┴───┘     └───┴───┴───┘

equalalways is on by default, and if you don't do the last close (vim --clean -c "vs | vs | sp | res +15 | winc l | winc l | sp") you realize the splitting didn't trigger a global window equalization. This is a good thing: the left side is not affected by the creation of a split on the right side. On the other hand, closing does affect it for some reason.
Reproducible with Vim 8.2.0510

Maybe vim --clean -c "vs | vs | sp | res +15 | setl winfixheight | winc l | winc l | sp | clo" saves you?

Maybe vim --clean -c "vs | vs | sp | res +15 | setl winfixheight | winc l | winc l | sp | clo" saves you?

Yeah no worry, I have workarounds; I'm reporting because I believe there is an issue. BTW, the problem with the workaround your propose is that it breaks the automatic equalization when it matters in the future (typically if I :vs again on the left side).


Rotating square like cylinder animation

Describe the project you want to add with tech stack

This project contains an animation including square.Can you assign this task to me?
Expected behavior

Screenshots (optional)

Additional context (optional )

@MohitGupta121 ,@TusharKesarwani Can you assign this task to me?


Issue with OpenImageIO Buffer when Running

Hello!
We were able to build and run toucan inside Linux(Rocky8.9). However, we are currently having issues when trying to render an OTIO timeline. It looks like an OpenImageIO buffer error is raised when a Gap or an effect is encountered by the tool. This does not seem to happen on Mac, only on Linux. Anytime a  gap is encountered, this error message is printed out:
An ImageBuf was destroyed with a pending error message that was never retrieved via ImageBuf::geterror().
This was the error message: jpeg image resolution must be at least 1x1, you asked for 0x0

It looks like OpenImageIO is trying to write a frame but since it's a gap there is no data to write.
For example, when trying to write Transition.otio with command toucan-render ./data/Transiotion.otio test_toucan.jpg will yield"
0/10

1/10

2/10

3/10

4/10

5/10

An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0

6/10

An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0

7/10

An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0

8/10

An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0

9/10

An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0

Here, it looks like toucan fails when it encounters the transition effect. Running the Gap example, we get a similar error:
toucan-render '/home/ajalbert/workspace/toucan/data/Gap.otio' test/test.jpg
0/9
1/9
2/9
3/9
An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0
4/9
An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0
5/9
An ImageBuf was destroyed with a pending error message that was never
retrieved via ImageBuf::geterror(). This was the error message:
jpeg image resolution must be at least 1x1, you asked for 0x0
6/9
7/9
8/9

Would happen to have an idea why this would be happening on Linux only? Maybe there is a difference between the OpenImageIO API on Mac and on Linux?
Let me know if you could help us and if there is anything we can do!
Thank you!

Maybe it is not finding the plugins; could you try running the command with the "-v" (verbose) flag?

Hello @darbyjohnston ! Thanks for the tip I will try that today!

Hello @darbyjohnston ! When I run the command with the verbose flag it looks like the logs are indicating that the plugin is found correctly:
toucan-render -v '/home/ajalbert/Desktop/test_otio.otio' ./Desktop/test_toucan_arno/test.jpg
toucan::ImageEffectHost: Searching for plugins...
toucan::ImageEffectHost:   Search path:
toucan::ImageEffectHost:   Search path: ../..
toucan::ImageEffectHost: Loading plugins...
toucan::ImageEffectHost: Initializing plugins...
0/249
1/249
2/249
3/249

Sorry, I need to make the language more clear, it looks like the plugins are missing. If it finds the plugins it will print each one like this:
toucan::ImageEffectHost: Loading plugins...
toucan::ImageEffectHost:   Path: bin\toucan-render\Debug\..\..\..\plugins\Debug\toucanColorSpace.ofx
toucan::ImageEffectHost:   Path: bin\toucan-render\Debug\..\..\..\plugins\Debug\toucanDraw.ofx
toucan::ImageEffectHost:   Path: bin\toucan-render\Debug\..\..\..\plugins\Debug\toucanFilter.ofx
toucan::ImageEffectHost:   Path: bin\toucan-render\Debug\..\..\..\plugins\Debug\toucanGenerator.ofx
toucan::ImageEffectHost:   Path: bin\toucan-render\Debug\..\..\..\plugins\Debug\toucanTransform.ofx
toucan::ImageEffectHost:   Path: bin\toucan-render\Debug\..\..\..\plugins\Debug\toucanTransition.ofx
toucan::ImageEffectHost: Initializing plugins...
toucan::ImageEffectHost:   Plugin: toucan:ColorConvert
toucan::ImageEffectHost:     Context: OfxImageEffectContextFilter
toucan::ImageEffectHost:     "color_config": OfxParamTypeString
toucan::ImageEffectHost:     "context_key": OfxParamTypeString
toucan::ImageEffectHost:     "context_value": OfxParamTypeString
toucan::ImageEffectHost:     "fromspace": OfxParamTypeString
toucan::ImageEffectHost:     "premult": OfxParamTypeBoolean
toucan::ImageEffectHost:     "tospace": OfxParamTypeString

It will search for the plugins in directories relative to the binary. Do you see the "*.ofx" files in the "lib" directory?

Hey @darbyjohnston ! Sorry I did not get back to you earlier. Indeed the plugins were not loading correctly. Our error was that even though we installed gcc9, we did not set it as the default compiler. We also had issues in the way we were adding the executable to our environment path. Hence the compiled files were not compatible with the build and. The build worked like a charm after fixing those two issues. We are currently using it to experiment with timeline export. Thank you very much for your contribution to OTIO, the package works great! Thank you!

Great, I'm glad you got it working. If you run into any other problems or have feature requests feel free to create more GitHub issues.


VSIX bookmarklet redundant

It does not work anymore and now there is an official link on the right hand side of the page

Ok, thanks for the information. I will archive this repository. It was useful while it lasted.


ctrld is much slower than manually configuring in the router menu

Interestingly, using the ctrld daemon is 10 to 20ms slower than configuring the router dns in the router menu! (Synology RT2600AC).
Testing was done with Gibson's DNS benchmark. I'm on gigabit fiber in San Diego hitting lax-h03, with status page showing latency of about 7ms.
--------------- ctrld--------manual DoH configuration
cached-------- .022--------.008
uncached------.058--------.041
dotcom--------.024--------.011
Actually, the manual configuration is only a bit slower than directly hitting <IP_ADDRESS> (.006 .040 .010). That's acceptable.
But why is the ctrld daemon so much slower?
Is that a bug or something that could be fixed? Maybe the daemon needs to be run at bit higher priority or something?

Legacy DNS is unencrypted and a single packet. Secure DNS is encrypted and has multiple roundtrips + encryption overhead.
This difference is effectively irrelevant, as DNS queries are made occasionally. Every single https:// connection will be 10x slower than DNS resolution, and it happens more frequently.

Thanks for your quick reply! But...
Both entered in the menu and running the daemon use DoH.
So the latency difference is not cause by encryption...
My questions are:
Why is the ctrld daemon so much slower?
Is that a bug or something that could be fixed? Maybe the daemon needs to be run at bit higher priority or something?

Hi,
Please provide detailed debugging data that illustrates the issue. What you have above is ambiguous and does not provide any actionable data.
You can start ctrld in debug mode (check the docs to see how) and provide a log out of the entire resolution. Which would look like this
{"level":"info","time":"2024-07-26T20:28:25-04:00.202","message":"[a956d1] QUERY: <IP_ADDRESS>:61731 (Office-Box) -> listener.0: A github.com"}
{"level":"debug","time":"2024-07-26T20:28:25-04:00.202","message":"[a956d1] no explicit policy matched, using default routing -> [upstream.0]"}
{"level":"debug","time":"2024-07-26T20:28:25-04:00.202","message":"[a956d1] including client info with the request"}
{"level":"debug","time":"2024-07-26T20:28:25-04:00.202","message":"[a956d1] sending query to upstream.0: "}
{"level":"debug","time":"2024-07-26T20:28:25-04:00.202","message":"[a956d1] sending request header: map[X-Cd-Host:[Office-Box] X-Cd-Ip:[<IP_ADDRESS>] X-Cd-Mac:[74:56:3c:44:eb:5e] X-Cd-Os:[1-1-6.2]]"}
{"level":"info","time":"2024-07-26T20:28:25-04:00.204","message":"[a956d1] REPLY: upstream.0 -> <IP_ADDRESS>:61731 (Office-Box): NOERROR"}
{"level":"debug","time":"2024-07-26T20:28:25-04:00.204","message":"[a956d1] received response of 67 bytes in 2.5087ms"}

In my case it, the whole process too 2.5ms.

I'm not sure how to capture logs in a way that allows me to compare the response time from ctrld vs the DoH setup in the router menus...
I mean, I can capture ctrld's log, but that doesn't compare the latency with the menu option.
Do you have a router that you could try comparing the latency of ctrld vs the router menu setup yourself? If ctrld is just shim added on the router SW, I could imaging it would add some latency. Is 10 - 20ms expected? Seems like too much to me.
The beauty of Gibson's DNS Benchmark is that it does a LOT of queries and averages them. And it easy pulls the cached vs uncached vs dotcom... not sure how it does that.
It's beer time here in California, I'll consider if I can find a way to get you some more data / logs tomorrow.

I was unable, due to my limited skills, to setup a test where I could get comparison data from the logs.
However, I did some additional benchmarking that should be easy for someone else to replicate. I'd really appreciate it if someone else could try this and report back!
This first chart was run from my PC through the Synology RT2600AC router running the ctrld daemon
In this chart you can see the local router (boxed) is significantly slower than the controld open free servers.

The <IP_ADDRESS> response times are:
cached .020
uncached .058
dotcom .023
And this chart was run the same way, but the daemon was stopped and the router configured through it's menus to use DoH: https://dns.controld.com/
In this chart you can see the performance of the router (boxed) is very similar to the controld open free servers.

The <IP_ADDRESS> response times are:
cached .008
uncached .040
dotcom .009
In this test the ctrld daemon was 12-18ms slower than just configuring the router.
Is this just what it takes for the daemon to pass through the requests, on top of the router's latency?
Or is there something that can be done to improve this? Maybe the daemon needs to run at higher priority or something?

Honestly, I'm not sure how this ancient piece of software works (I recall briefly using it 12 years ago) or what those names and colors mean, but we would need to see what I asked here: https://github.com/Control-D-Inc/ctrld/issues/166#issuecomment-2253675608
As that provides actionable data from the perspective of the ctrld process.

I can snatch the logs, but the DNS test software does a zillion requests and I couldn't match the up the request to the log.
Is there a way I can use the windows (or mac) command line or powershell to do single cached, uncached and dotcom lookups?
I can't see an easy way to do that so we can compare all three.
I guess I could just do some standard lookups. and capture the log... but that won't show us the difference in response time for the daemon vs the router with menu settings.
I mean, I haven't proven anything, but the issue seems likely to be in the handoff between the router sw and the daemon and back. We could get an 8ms response in the daemon logs, but the response back through the system could still be 20ms.
I could run the dig command on a mac client, and then pull the log from the daemon for that request. And then I turn off the daemon and setup the the same server in the router menu and run the same dig. But you won't have any logs from the second dig...

Ok...
first I ran dig 5 times with the router configured through it's setup pages to https://dns.controld.com/-resolver-
dig query times to controld.com:
9 ms
11ms
14ms
18ms
18ms
Then I deleted the resolver from the router menu turned on the ctrld daemon with logging.
dig query times to controld.com:
32ms
39ms
32ms
21ms
30ms
With the daemon, latency averages 16.8ms worse on this dig comparison test.
Here is the log for those 5 using ctrld. They are way faster than what the dig on the mac reports back.
{"level":"info","time":"2024-07-29T15:47:15-07:00.397","message":"[8f2aa2] QUERY: <IP_ADDRESS>:55644 (Carls-Air) -> listener.0: A controld.com"}
{"level":"debug","time":"2024-07-29T15:47:15-07:00.397","message":"[8f2aa2] no explicit policy matched, using default routing -> [upstream.0]"}
{"level":"debug","time":"2024-07-29T15:47:15-07:00.397","message":"[8f2aa2] including client info with the request"}
{"level":"debug","time":"2024-07-29T15:47:15-07:00.397","message":"[8f2aa2] sending query to upstream.0: "}
{"level":"debug","time":"2024-07-29T15:47:15-07:00.398","message":"[8f2aa2] sending request header: map[X-Cd-Host:[Carls-Air] X-Cd-Ip:[<IP_ADDRESS>] X-Cd-Mac:[1c:91:80:d9:62:7b]]"}
{"level":"info","time":"2024-07-29T15:47:15-07:00.408","message":"[8f2aa2] REPLY: upstream.0 -> <IP_ADDRESS>:55644 (Carls-Air): NOERROR"}
{"level":"debug","time":"2024-07-29T15:47:15-07:00.408","message":"[8f2aa2] received response of 69 bytes in 11.55942ms"}

{"level":"info","time":"2024-07-29T15:47:16-07:00.489","message":"[4c14fb] QUERY: <IP_ADDRESS>:32922 (Carls-Air) -> listener.0: A controld.com"}
{"level":"debug","time":"2024-07-29T15:47:16-07:00.489","message":"[4c14fb] no explicit policy matched, using default routing -> [upstream.0]"}
{"level":"debug","time":"2024-07-29T15:47:16-07:00.490","message":"[4c14fb] including client info with the request"}
{"level":"debug","time":"2024-07-29T15:47:16-07:00.490","message":"[4c14fb] sending query to upstream.0: "}
{"level":"debug","time":"2024-07-29T15:47:16-07:00.490","message":"[4c14fb] sending request header: map[X-Cd-Host:[Carls-Air] X-Cd-Ip:[<IP_ADDRESS>] X-Cd-Mac:[1c:91:80:d9:62:7b]]"}
{"level":"info","time":"2024-07-29T15:47:16-07:00.500","message":"[4c14fb] REPLY: upstream.0 -> <IP_ADDRESS>:32922 (Carls-Air): NOERROR"}
{"level":"debug","time":"2024-07-29T15:47:16-07:00.500","message":"[4c14fb] received response of 69 bytes in 11.12471ms"}

{"level":"info","time":"2024-07-29T15:47:17-07:00.563","message":"[18b241] QUERY: <IP_ADDRESS>:47904 (Carls-Air) -> listener.0: A controld.com"}
{"level":"debug","time":"2024-07-29T15:47:17-07:00.564","message":"[18b241] no explicit policy matched, using default routing -> [upstream.0]"}
{"level":"debug","time":"2024-07-29T15:47:17-07:00.564","message":"[18b241] including client info with the request"}
{"level":"debug","time":"2024-07-29T15:47:17-07:00.564","message":"[18b241] sending query to upstream.0: "}
{"level":"debug","time":"2024-07-29T15:47:17-07:00.565","message":"[18b241] sending request header: map[X-Cd-Host:[Carls-Air] X-Cd-Ip:[<IP_ADDRESS>] X-Cd-Mac:[1c:91:80:d9:62:7b]]"}
{"level":"info","time":"2024-07-29T15:47:17-07:00.573","message":"[18b241] REPLY: upstream.0 -> <IP_ADDRESS>:47904 (Carls-Air): NOERROR"}
{"level":"debug","time":"2024-07-29T15:47:17-07:00.574","message":"[18b241] received response of 69 bytes in 10.452885ms"}

{"level":"info","time":"2024-07-29T15:47:18-07:00.683","message":"[06f55f] QUERY: <IP_ADDRESS>:36128 (Carls-Air) -> listener.0: A controld.com"}
{"level":"debug","time":"2024-07-29T15:47:18-07:00.683","message":"[06f55f] no explicit policy matched, using default routing -> [upstream.0]"}
{"level":"debug","time":"2024-07-29T15:47:18-07:00.683","message":"[06f55f] including client info with the request"}
{"level":"debug","time":"2024-07-29T15:47:18-07:00.683","message":"[06f55f] sending query to upstream.0: "}
{"level":"debug","time":"2024-07-29T15:47:18-07:00.684","message":"[06f55f] sending request header: map[X-Cd-Host:[Carls-Air] X-Cd-Ip:[<IP_ADDRESS>] X-Cd-Mac:[1c:91:80:d9:62:7b]]"}
{"level":"info","time":"2024-07-29T15:47:18-07:00.693","message":"[06f55f] REPLY: upstream.0 -> <IP_ADDRESS>:36128 (Carls-Air): NOERROR"}
{"level":"debug","time":"2024-07-29T15:47:18-07:00.693","message":"[06f55f] received response of 69 bytes in 10.098813ms"}

{"level":"info","time":"2024-07-29T15:47:19-07:00.745","message":"[93d021] QUERY: <IP_ADDRESS>:32850 (Carls-Air) -> listener.0: A controld.com"}
{"level":"debug","time":"2024-07-29T15:47:19-07:00.745","message":"[93d021] no explicit policy matched, using default routing -> [upstream.0]"}
{"level":"debug","time":"2024-07-29T15:47:19-07:00.745","message":"[93d021] including client info with the request"}
{"level":"debug","time":"2024-07-29T15:47:19-07:00.745","message":"[93d021] sending query to upstream.0: "}
{"level":"debug","time":"2024-07-29T15:47:19-07:00.746","message":"[93d021] sending request header: map[X-Cd-Host:[Carls-Air] X-Cd-Ip:[<IP_ADDRESS>] X-Cd-Mac:[1c:91:80:d9:62:7b]]"}
{"level":"info","time":"2024-07-29T15:47:19-07:00.754","message":"[93d021] REPLY: upstream.0 -> <IP_ADDRESS>:32850 (Carls-Air): NOERROR"}
{"level":"debug","time":"2024-07-29T15:47:19-07:00.754","message":"[93d021] received response of 69 bytes in 9.645062ms"}

So this implies to me that the problem is not how the ctrld daemon does the lookup, it is the communication between the daemon and the router, or maybe the priority of the daemon?
(Yegors, I can provide the full logs, but I do not want to post them publicly.)

I am running a Synology WRX560.  I found similar results as you,  slower performance with the CLI.  I was able to close the gap by using DoH instead of DOH3 in my config.

I noticed faster speed with the router configured vs the CLI on my WRX560.  I changed my config in the CLI to 'v4' under IP Stack (I don't use IPv6 on my router currently).  That sped things up for me noticeably.

How did you confirm whether you are running DoH or DoH3? My config shows
https://dns.controld.com/, which I assume means it is running
"DoH3", but the status page only says DNS-over-HTTPS. Barry tells me the
status page will not tell me if I am specifically running "DoH3".
On Tue, Jul 30, 2024 at 3:33 PM dsohunter @.***> wrote:

I am running a Synology WRX560. I found similar results as you, slower
performance with the CLI. I was able to close the gap by using DoH instead
of DOH3 in my config.
—
Reply to this email directly, view it on GitHub
https://github.com/Control-D-Inc/ctrld/issues/166#issuecomment-2259316046,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJFBQHFIJZIAXBVZDISXYUTZPAICHAVCNFSM6AAAAABLRKTMJGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJZGMYTMMBUGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

The status page will say Protocol DNS-over-HTTPS/3, but I'm fthinking the v4 IP stack setting was perhaps more responsible for my improvement (DOH3 is supposed to be faster).

Guess Barry got that one wrong.

but we would need to see what I asked here: #166 (comment)
As that provides actionable data from the perspective of the ctrld process.

Yegors, did you get a chance to look at my comment with the logs above? https://github.com/Control-D-Inc/ctrld/issues/166#issuecomment-2257164617

From the perspective of ctrld, queries are taking ~10ms. On your router you're also using dnsmasq, which hands off requests to ctrld, that could have latency associated with it, but shouldn't be much.
You can try running ctrld as a direct listener on port 53, instead of dnsmasq and run those numbers with the Gibson's benchmark.

I'll see if I can try disabling dnsmasq soon.
On a note... do you think ctrld does this on all routers... I mean really slows down the dns requests as it does on my Synology? If true, it might be a tradeoff that is worth documenting: ctrld allows more control, but is/may be significantly slower?
The slowdown might not be significant to some people, but for a long time speed has been the way many people pick their DNS.

I think I'm at my skill limit. I was unable to easily stop dnsmasq on my synology router.
Also, I'd need to change the ctrld config, to move to port 53. And I am unable to change the config from the web panel:
I copied my default TOML config file fron the router and made some small changes. Pasted the new file into the web browser "ctrld Configuration" section. Saved. Then I went into the router and did a ctrld restart. Reply was NTC Service restarted. BUT: web panel still shows. "! Not Deployed."
So I cannot easily change the config file to move to port 53.

I was able to try dig from a client and compared
dig @ -p 5354 controld.com
and
dig @ -p 53 controld.com
Hitting port 5354 wasn't consistently faster...

I decided to try the nextdns daemon to compare it's performance to the ctrld daemon.
(a side note, it does caching! So that response is obviously faster.)
But, unlike ctrld the nextdns daemon does perform as I would expect. The responses through the nextdns daemon are not much slower than directly hitting their servers.
From Gibson's DNS Benchmark tool:
--------------- ctrld daemon--------nextdns daemon
cached-------- .022-----------------.000          (obviously a locally cached response is much faster)
uncached------.058-----------------.050          (similar)
dotcom--------.024-----------------.010          (nextdns is way faster)
The same is true with tests using dig.
All my testing hints at some kind of issue with how the ctrld daemon passes stuff to the router, and the nextdns daemon apparently does not have this problem.

Posted on reddit last week, and a couple people have replicated my testing, showing the slow response of the ctrld daemon.
It's definitely not just me.

Except for data from a 15+ year old software, there is nothing that's actionable here. The debug logs provided show expected DNS resolution latency (which is low), which does not match what this ancient benchmark tool shows.
Since we cannot reproduce any delays, and you were unable to disable dnsmasq (you set it to port 0 in web gui) and use ctrld as a direct listener on port 53 to validate if that's the issue, there is nothing that can be done here.


Add CSM introduction for the new tutorial series

Changes
Adds a new Jupyter notebook that introduces the CoordinateSystemManager. This is part of the new tutorial series.
Checks

[x] updated CHANGELOG.rst
[x] updated tests
[x] updated doc/
[x] update example/tutorial notebooks
[x] update manifest file

verbally approved by @CagtayFabry :)