How to organize polling of a large number of IP addresses via Modbus TCP (for example, 30)? (IDFGH-9251)

A maximum of 5 IP addresses with associated UIDs can be specified in the table.
Or 1 IP address with many descriptors in which you can set any UID and all of them will be tied to only one IP address.

Hello @iamalek ,
The communication approach assumes that the master connects to all defined slaves first before performing any communication with slaves. This approach follows the Modbus TCP application implementation document from the Modbus Association. This is because the connection timeout may be up to ~3 seconds. This is what can cause the response timeout management issue.The master supports the maximum CONFIG_FMB_TCP_PORT_MAX_CONN defined in kconfig. However, it is not recommended to make more than five connections simultaneously because it takes up enough resources and memory and can cause latency and other issues.
The resources of the ESP32 chip and its memory are significantly constrained compared to a Linux-based device or other similar PLC.
Because of this, please consider using fewer slaves with your master.

Thanks for the answer! There is one more unpleasant drawback of this implementation of the library - if at least one connection with the slave cannot be established at the time of initialization by the master, then the master hangs on it, waiting for the connection and making it impossible to work with the rest of the available slaves. This is a very significant shortcoming, please advise how to organize the work of the master, regardless of the availability of connecting slaves during initialization! Thank you!

Thank you for your feedback. I agree that this approach is not very good in some projects. For the mentioned functionality, the code shall include event-based state machine and according to the slave state will go through all the required phases and do re-connection as required. I implement this behavior and going to include this in some update of Modbus.
However for existing approach we can do as below:
It is possible to start communication while the connection cycle is not completed, but it requires some modification of stack code. The simple approach is to change the connection cycle to pass just one asynchronous connect command xMBTCPPortMasterConnect() for each slave config in xMbPortConfig.pxMbSlaveInfo[slave] despite the errors: ERR_CONN - connection can not be established and ERR_INPROGRESS - connection in progress. Then start polling cycle even while the connection is not established. The read/write functions will return the errors for these broken slaves, and if the ERR_CON is returned, the connection command can be issued again for the appropriate slave. Also, the stop polling and re-connection functions here should be removed to continue polling in spite of errors.

Hi @iamalek ,
This feature request will be implemented in modbus stack v2.0.0_beta1. This version will be able to handle the connection and resolving stages for each slave individually.

Thank you for your feedback. I agree that this approach is not very good in some projects. For the mentioned functionality, the code shall include event-based state machine and according to the slave state will go through all the required phases and do re-connection as required. I implement this behavior and going to include this in some update of Modbus. However for existing approach we can do as below: It is possible to start communication while the connection cycle is not completed, but it requires some modification of port layer code. The simple approach is to change the connection cycle to pass just one asynchronous connect command xMBTCPPortMasterConnect() for each slave config in xMbPortConfig.pxMbSlaveInfo[slave] despite the errors: ERR_CONN - connection can not be established and ERR_INPROGRESS - connection in progress. Then start polling cycle even while the connection is not established. The read/write functions will return the errors for these broken slaves, and if the ERR_CON is returned, the connection command can be issued again for the appropriate slave. Also, the stop polling and re-connection functions here should be removed to continue polling in spite of errors.
see also here

Good afternoon.
You can make changes to the Master TCP, I tried to make sure that if one of the slaves loses connection, the polling of the second one continues, but I can’t make it so that at startup, if there is no connection with the slave, the polling of the second one starts correctly, and after it appears on the network, a reconnection occurs.
port_tcp_master.zip
This is my file from version: "1.0.15"

Hi @pr200sd,
I just took a look to your change and it seems the change you made
pucMBTCPFrame[MB_TCP_UID] = pxInfo->ucSlaveAddr;

is not needed. When the xMBMasterTCPPortSendResponse() is called the UID field in the frame buffer is already set correctly by transport layer. I think the change you made might help in your case but it is not required for stack. Please let me know if I miss something and you have some specific details. I will try to verify as soon as I can.
The v1 stack starts the connection right after initialization of the stack as it recommended by implementation guide from association. The version v2 is able to configure network and start polling immediately. Each slave connection and communication is controlled independently. I have the updated implementation of v2 stack but the test infrastructure does not adequately test this yet. I think you will need to use the new stack implementation for your project.

Hi @pr200sd,
I just took a look to your change and it seems the change you made
pucMBTCPFrame[MB_TCP_UID] = pxInfo->ucSlaveAddr;

is not needed. When the xMBMasterTCPPortSendResponse() is called the UID field in the frame buffer is already set correctly by transport layer. I think the change you made might help in your case but it is not required for stack. Please let me know if I miss something and you have some specific details. I will try to verify as soon as I can. The v1 stack starts the connection right after initialization of the stack as it recommended by implementation guide from association. The version v2 is able to configure network and start polling immediately. Each slave stage such as connection, address resolution, error tracking, re connection and communication is controlled independently for each slave node. I have the updated implementation of v2 stack but the test infrastructure does not adequately test this yet. I think you will need to use the new stack implementation for your project.

Thanks for the answer, yes, I saw your version V2, but everything has been changed there, and I’m not sure that I can run my project simply by replacing the esp-modbus folder with V2, and since with esp-modbus I use both modbus RTU and TCP and everything works almost perfectly. with the exception of not starting master tcp if at the initial stage there is no one of the configured Slaves, so I would like to get this version, according to the recommendations you gave above. I tried to make the edits myself, but couldn't figure it out completely. As for this edit, yes, I made it back in 22, then apparently it didn’t exist and wouldn’t work without it, and then I moved it to a more recent version. I'll check without her.

Thanks for the answer, yes, I saw your version V2, but everything has been changed there, and I’m not sure that I can run my project simply by replacing the esp-modbus folder with V2, and since with esp-modbus I use both modbus RTU and TCP and everything works almost perfectly.

The v2, has changes but the adoption of your Modbus code will be pretty straight-forward. I need to complete  test implementation the verification of this V2 version and will try to share it to get some feedback as soon as possible.
Unfortunately, I am very limited on what can be updated or implemented in V1. The V2 will be the only version where the features will be implemented.

As for this edit, yes, I made it back in 22, then apparently it didn’t exist and wouldn’t work without it, and then I moved it to a more recent version. I'll check without her.

The code was changed long time ago to set the corresponded UID in the frame on transport layer.

Hi @pr200sd,
The stack v2 version is updated and supports the multi-instance TCP Slave and Master with its own communication options. The pre-release esp-modbus component version 2.0.0-beta.1 can be selected by idf_component.yml in main folder like below:
dependencies:
  idf:
     version: ">=4.1.0"
  espressif/esp-modbus:
    version: "^2.0.0-beta"
  espressif/mdns:
    version: "^1.0.0"
    rules:
      - if: "idf_version >=5.0"
  mb_example_common:
    path: "../mb_example_common"
  protocol_examples_common:
    path: ${IDF_PATH}/examples/common_components/protocol_examples_common

@iamalek,
@pr200sd,

with the exception of not starting master tcp if at the initial stage there is no one of the configured Slaves, so I would like to get this version, according to the recommendations you gave above. I tried to make the edits myself, but couldn't figure it out completely.

The stack can be easily updated. For more information you can take a look to the examples of esp-modbus v2. They kept with minimal changes required for V2. The start_disconnected option in the tcp configuration structure allows to start polling cycle while some slave are still disconnected. For the rest of slaves the IP addresses will be resolved and be connected when they become alive and connected.

@alisitsyn  Thank you, I tried to replace the contents of the old esp-modbus-master folder in my idf with what is in the new one, the assembly did not work, the first error is related to esp_timer_is_active, then mbs_ascii_transp_delete
As I understand it, it’s not possible to simply replace one folder with another manually?  I have ESP-IDF v4.4

@pr200sd,
Thank you for the feedback.

I tried to replace the contents of the old esp-modbus-master folder in my idf with what is in the new one, the assembly did not work, the first error is related to esp_timer_is_active, then mbs_ascii_transp_delete

Ok, I will take a look and will prepare the example for v4.4. Please send your log if possible. I can help you with the transition to esp-modbus v2.0.0, if it applicable for you.

As I understand it, it’s not possible to simply replace one folder with another manually? I have ESP-IDF v4.4

Unfortunately, it is not enough. The API calls should be fixed. For example thembc_tcp_master_setup() call is removed from new version and the options are being set in the constructor of concrete instance.
The below code describes the changes that are required:
For example the original code from v1.0.x:
static void* master_handler = NULL;

// ... other code
// TCP master initialization:
    mb_communication_info_t comm_info = { 0 };
    comm_info.ip_port = MB_TCP_PORT;
    comm_info.ip_addr_type = ip_addr_type;
    comm_info.ip_mode = MB_MODE_TCP;
    comm_info.ip_addr = (void*)slave_ip_address_table;
    comm_info.ip_netif_ptr = (void*)get_example_netif();
    esp_err_t err = mbc_master_init_tcp(&master_handler);

    MB_RETURN_ON_FALSE((master_handler != NULL), ESP_ERR_INVALID_STATE,
                                TAG,
                                "mb controller initialization fail.");
    MB_RETURN_ON_FALSE((err == ESP_OK), ESP_ERR_INVALID_STATE,
                            TAG,
                            "mb controller initialization fail, returns(0x%x).",
                            (int)err);

    err = mbc_master_setup((void*)comm_info);
    MB_RETURN_ON_FALSE((err == ESP_OK), ESP_ERR_INVALID_STATE,
                            TAG,
                            "mb controller setup fail, returns(0x%x).",
                            (int)err);
    err = mbc_master_set_descriptor(&device_parameters[0], num_device_parameters);
    MB_RETURN_ON_FALSE((err == ESP_OK), ESP_ERR_INVALID_STATE,
                                TAG,
                                "mb controller set descriptor fail, returns(0x%x).",
                                (int)err);
    ESP_LOGI(TAG, "Modbus master stack initialized...");

err = mbc_master_get_cid_info(cid, &param_descriptor);
....
// the read code:
err = mbc_master_get_parameter(param_descriptor->cid, (char *)param_descriptor->param_key, (uint8_t *)pinst, &type);

shall be changed to the code below for esp-modbus v2.0:
static void* master_handle = NULL; // keep this pointer to the created master instance, this will be used in all API calls.
// ..... other code

    mb_communication_info_t tcp_master_config = {
        .tcp_opts.port = MB_TCP_PORT,
        .tcp_opts.mode = MB_TCP,
        .tcp_opts.addr_type = ip_addr_type,
        .tcp_opts.ip_addr_table = (void *)slave_ip_address_table,
        .tcp_opts.uid = 0,
        .tcp_opts.start_disconnected = false,
        .tcp_opts.response_tout_ms = CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND,
        .tcp_opts.ip_netif_ptr = (void*)get_example_netif()
    };
    // Create the master instance with the options in one call (Note: setup call is removed)
    esp_err_t err = mbc_master_create_tcp(&tcp_master_config, &master_handle);
    MB_RETURN_ON_FALSE((master_handle != NULL), ESP_ERR_INVALID_STATE,
                                TAG,
                                "mb controller initialization fail.");
    MB_RETURN_ON_FALSE((err == ESP_OK), ESP_ERR_INVALID_STATE,
                            TAG,
                            "mb controller initialization fail, returns(0x%x).",
                            (int)err);
    err = mbc_master_set_descriptor(master_handle, &device_parameters[0], num_device_parameters);
    MB_RETURN_ON_FALSE((err == ESP_OK), ESP_ERR_INVALID_STATE,
                                TAG,
                                "mb controller set descriptor fail, returns(0x%x).",
                                (int)err);

mb_parameter_descriptor_t* param_descriptor = NULL;

// The below is the read code:
err = mbc_master_get_cid_info(master_handle, CID_HOLD_FLOAT_ABCD, &param_descriptor);
...
float float_data[3];
err = mbc_master_get_parameter(master_handle, param_descriptor->cid, (uint8_t *)float_data[i], &type);

The possible ways to integrate the v2 into your project:

Update the API calls to according to esp-idf V2 changes (See above, required for both options below).
Copy the context of esp-modbus v2.0.0 into components folder of your project.
Add the idf_component.yml manifest file into main component folder of your project with the below content:

dependencies:
  idf:
     version: ">=4.1.0"
  espressif/esp-modbus:
    version: "^2.0.0-beta"
  espressif/mdns:
    version: "^1.0.0"
    rules:
      - if: "idf_version >=5.0"
  mb_example_common:
    path: "../mb_example_common"
  protocol_examples_common:
    path: ${IDF_PATH}/examples/common_components/protocol_examples_common

This option will allow to download the esp-modbus V2 component by component manager and use it instead of previous one.
Let me know if you have any questions.

@alisitsyn
The fact that the calls in my code will need to be adjusted is understandable, I’m talking about the esp-idf assembly itself, I wouldn’t want to change everything globally, it’s important for me to be able to quickly return to the previous working version of esp-modbus.
Add the idf_component.yml manifest file into main component folder of your project with the below content:
Should the idf_component.yml with its contents be placed in the components folder of my project?
and then the folder from esp-idf/components/esp-modbus can not be replaced/deleted? Will the 2.0.0-beta build be used as long as the idf_component.yml file is present?

The fact that the calls in my code will need to be adjusted is understandable, I’m talking about the esp-idf assembly itself, I wouldn’t want to change everything globally,

I think it is possible to make the code adjustable using macros for example to allow  to use old or new component. I will not make a pressure to you to migrate to v2.0, it is up to you.  The above description will be useful for other users later.
The original idea is to merge the v2.0.0 to master on final stage to replace v1.0..x as an obsolete.

Should the idf_component.yml with its contents be placed in the components folder of my project?

The idf_component.yml should be placed into main folder in the root of your project that corresponds to main library of the project.

and then the folder from esp-idf/components/esp-modbus can not be replaced/deleted? Will the 2.0.0-beta build be used as long as the idf_component.yml file is present?

Yes, once the manifest is set the context of components/your_modbus_comp_name can be removed. The component manager will download the latest v2 component into proj_root/managed_components and it will be compiled by idf.py as dependent component. This will work as long as the manifest file present in your project.

Okay, I'll check it out. Do I understand correctly that now I should wait for you to build v2.0.0 for esp-idf 4.4?

Okay, I'll check it out. Do I understand correctly that now I should wait for you to build v2.0.0 for esp-idf 4.4?

I will check possible issues for v4.4 but propose you to migrate to esp-idf v5.0 at least or to latest release (better). The v4.4 is out of support period now. Is this possible for you to migrate?

Okay, I'll check it out. Do I understand correctly that now I should wait for you to build v2.0.0 for esp-idf 4.4?

I will check possible issues for v4.4 but propose you to migrate to esp-idf v5.0 at least or to latest release (better). The v4.4 is out of support period now. Is this possible for you to migrate?

I plan to in the future, but since my project is complex with support for ethernet and wi-fi with a large number of libraries added manually, I’m not sure what to quickly adapt to 5.0

I plan to in the future, but since my project is complex with support for ethernet and wi-fi with a large number of libraries added manually, I’m not sure what to quickly adapt to 5.0

I was trying to update the v2.0.0-beta to work with esp-idf v4.4. I successfully solved some issues but there are many of them related to other component compatibility (mdns for example). I still have some other issues to solve. Unfortunately, I need to postpone this for now. Will take a look later. Once you have opportunity later please try to update your project to esp-idf v5.0. This will allow to solve a lot of issues in future and the libraries will be able to be updated automatically.

I have been working with idf espressif since 2015, and every transition from one version to another is a headache for at least a week, something is always not going to work, the Python is not the same, or the paths do not match. I decided to install it on one PC, but since W7 there, none of the options ended in success. As a result, the old assembly no longer works. On the second PC with W10, I managed to install v5.3 on the 4th attempt, the standard example was assembled, when I tried to replace it with v2.0.0, errors began to appear, most likely I got confused with the placement of the files. But this is not the most important thing, v5 is radically different in everything from v4.4, and even if I check modbus_tcp_master v2.0, I will not be able to adapt my project to v5, which has been developing since 2021.

I clearly understand your concern and understand you would keep it as is.
The most important process is migration to esp-idf v5 from v4.4. This update move many of the components out of esp-idf and also has some other changes, this may make some regression and this process should be performed carefully. After update to any v5 the further changes should be much easy. I don't expect any serious issues to migrate from esp-modbus v1 to v2. The esp-idf v4.4 to v5.0 migration guide for components may help.

The issue is closed due to lack of feedback. Feel free to reopen.


Make BaseAsyncExecutor and BaseExecutor siblings

[x] I have added the tests to cover my changes.
[x] I have updated the documentation and CHANGELOG accordingly.
[x] I have read the CONTRIBUTING document.

Closes #978
Also closes the following CI issues: #980 (second attempt), #984.

@scottwn @wjcunningham7 Let me know if you prefer the CI fixes split off into their own PR.


Limits on Comments and Posts

Adding limits on the number of comments per post and the number of posts per blog.

See PR #151


Unable to set client certificate for Postgres SSL connection

Summary
There seems to be no way to specify the client certificate to be used when enabling Postgres SSL connection
Steps To Reproduce

Use helm-chart Kong
Create a new instance of SQL in GCP allowing only SSL enabled connections
Deploy Kong with the configuration of pg_ssl = on

Additional Details & Logs
{
 insertId: "qfggk8rqvv2a18nr9"
 labels: {
  k8s-pod/app: "kong"
  k8s-pod/component: "init-migrations"
  k8s-pod/controller-uid: "19bfac91-87d5-4be6-a243-5ba5820a2afa"
  k8s-pod/job-name: "kong-supply-kong-init-migrations"
  k8s-pod/release: "kong-supply"
 }
 logName: "projects/production-apps/logs/stderr"
 receiveTimestamp: "2020-01-09T19:05:22.289472751Z"
 resource: {
  labels: {…}
  type: "k8s_container"
 }
 severity: "ERROR"
 textPayload: "Error: [PostgreSQL error] failed to retrieve server_version_num: FATAL: connection requires a valid client certificate

"
 timestamp: "2020-01-09T19:04:34.372554762Z"
}

@magicalbanana, yes it is a known limitations, we need to get this in OpenResty before we can make another PR to pgmoon and then finally land it in Kong. We also need to probably see how we can support it with LuaSockets: https://github.com/openresty/lua-nginx-module/pull/1602

@magicalbanana, possible workaround until then is to use Nginx stream proxy (or other proxy/bouncer), and set client cert there.

@bungle thanks for replying. Kinda sucks to be that way but using the nginx proxy would be difficult given that I am using a managed Postgres from GCP. Or are you referring to something else?

Stumbled across the same problem. I submitted a pull request for this:
https://github.com/Kong/charts/pull/156


amplify push fails on "The specified key does not exist ... Error Code: NoSuchKey;"

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
No response
Amplify CLI Version
6.0.1
What operating system are you using?
Pop Os
Amplify Categories
auth, storage, function, api
Amplify Commands
push
Describe the bug
Amplify push fails on CREATE_FAILED XXXResolver AWS::AppSync::Resolver Tue Sep 21 2021 21:53:45 GMT+0300 (Eastern European Summer Time) The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: XXX; S3 Extended Request ID: XXX=; Proxy: null)
Expected behavior
Push should succeed
Reproduction steps
I have been merging changes from dev to staging, and accidentally did amplify push to dev environment while I had staging codebase open. I also updated to Amplify CLI 6.0.1 earlier today, but I'm pretty sure I did successful pushes after that.
GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
I have verified that the deployment bucket for dev environment exists in S3. Pushed work fine in staging environment.

@parvusville based on the description I am sure that you run into something that is not even supposed to mean, but to confirm that could you provide exact repro steps and more details about what resource failed only 1 resolver? I'd like to close out that we are having a valid issue.
Is that a resolver that is for a type which is different between staging and dev?

@attilah Ah. In dev I have this type where this XXX field was the only one missing @auth directive. In staging as a part of getting push through I had to remove all of those @auths and then added them back in the next push (including this XXX field). I  added the @auth for the field in dev too and now pushing works again :) I realized this when I was already done writing the steps I took,  so leaving them here anyways in case you can use this for something..:
I am not 100% sure, but this is how I think  it happened.
1: Before these problems I merged changed from dev to staging and pushed. Including changes to GraphQL API, new REST API and multiple new functions
2: CICD fails because of this https://github.com/aws-amplify/amplify-cli/issues/6231
3: Fixing previous by removing @auth rules from non-model types and pushing, CICD now fails because of some one the new functions had environment and secret variables set up.
4: Now I did amplify env checkout staging and amplify push. It asks me to set up the variables and goes on.
5: Push fails on https://github.com/aws-amplify/amplify-cli/issues/4094 .
6: I removed the index from dynamodb console
7: amplify push works now
8: amplify env checkout dev
I notice that in staging some graphql requests aren't going through because of removing @auth rules at step 3.
9: I add @rules back in staging git branch. I'm not 100% sure if I used git and CI/CD or amplify push. Probably I used CICD and everything still worked fine
Now I believe im in state where amplify env dev is active, and staging git branch is active.
10:  amplify function update, give function Resource access permission for my REST API. (I wanted the API_MYAPI_APIID environment variable to see if I can build REST url dynamically for each enivornment)
`UPDATE_COMPLETE    GraphQLAPIKey                                   AWS::AppSync::ApiKey       Tue Sep 21 2021 21:02:24 GMT+0300 (Eastern European Summer Time)
CREATE_FAILED      XXXResolver AWS::AppSync::Resolver     Tue Sep 21 2021 21:02:24 GMT+0300 (Eastern European Summer Time) The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: XXX; S3 Extended Request ID: XXX; Proxy: null)
⠹ Updating resources in the cloud. This may take a few minutes...
UPDATE_ROLLBACK_IN_PROGRESS XXX-123-myApi-XXX AWS::CloudFormation::Stack Tue Sep 21 2021 21:02:26 GMT+0300 (Eastern European Summer Time) The following resource(s) failed to create: [XXXResolver].
⠦ Updating resources in the cloud. This may take a few minutes...
UPDATE_FAILED myApi AWS::CloudFormation::Stack Tue Sep 21 2021 21:02:35 GMT+0300 (Eastern European Summer Time) Embedded stack arn:aws:cloudformation:eu-west-1:1234:stack/amplify-myApp-dev-115515-myApp-123/1234-5588-11eb-9903-021248ca0799 was not successfully updated. Currently in UPDATE_ROLLBACK_IN_PROGRESS with reason: The following resource(s) failed to create: [UpsertReservationResultdestinationEmailResolver].
⠋ Updating resources in the cloud. This may take a few minutes...
UPDATE_ROLLBACK_IN_PROGRESS amplify-urentdealer-dev-115515 AWS::CloudFormation::Stack Tue Sep 21 2021 21:02:36 GMT+0300 (Eastern European Summer Time) The following resource(s) failed to update: [apiurentdealer].
⠸ Updating resources in the cloud. This may take a few minutes...`

I'm glad that you partially unblocked yourself as I see a lot is going on.
This error: The specified key does not exist most probably coming from the fact that your deployment bucket does not have the files for the resolver: UpsertReservationResultdestinationEmailResolver could you verify if that is the case? also check if you see it in the build folder for your API resource and confirm that this resolver is something that you'd expect to be present based on your schema.

As far as I know everything works now after I added the @auth to the destinationEmail field in dev and pushed it. In the build folder I now have UpsertReservationResult.destinationEmail.req/res.vtl, and also in the #current-cloud-backend.zip in the deployment bucket. I downloaded that folder also when I had problem with the push, and indeed in that version I was missing that resolver.


Add elvah

Hey there,
I'm a member of elvah, a company that wants to excite and accelerate the adoption of sustainable mobility - our first step towards this is to provide a unified experience when charging electric vehicles with our app and flat-rate, but we have more coming up 😅.
We've been working on and as elvah since the middle of 2020, after eight years of being a successful software agency with some renowned customers in the media, sports, and travel industry. Like many others, the current pandemic hit us hard and we were faced with the choice to either shut down the company or find a solution to sustain ourselves. We preferred the latter and to take the opportunity to not "just" give our best to customers, but to put our energy into something of our own 🥰.
One of our founders, Gowry, has created an article series on Medium describing our process to pivot to the product company we are today, and we're happy to have convinced a number of angel investors with more financing rounds to follow 🥳.
Cheers
Jérôme

Hey @jeromegamez, thanks for the submission!
A couple of things:

Could you resize the image width to be 128px? I looked at the change and it seems that it doesn't matter much but all the logo right now have maximum dimension of 128px so it would be nice to make it the same.
Could you shorten the description of the Now and Early days column a bit? We're trying to make it concise and easy to understand when you just skim the repo.
I just merged a PR, so we need to rebase this PR.

Other than that, it looks good and we should be able to merge this.

Thank you, @fikrikarim! The image is now resized, the now and early days shortened and the branch rebased 💪 🙏

Thanks, merged!

Thank you! 🌺


Add .json files

.csv and .xlsx files are nice for those with less programming expertise, but it'd be extra convenient to host most of the important data in a single .json file. The .json format will allow for entries of different length, which is nice. This can also be used to store key VASP parameters so the user doesn't need to download the raw log files.

Addressed in upcoming v3.


Added bogo sort in bash

Takes so long to run XD

Hey @berquist I think this PR looks good. Are we missing anything?

Cool, thank you. Hopefully you're learning as much about bash built-ins as I am.

Yeah have never ~abused~ used bash like for actual algoithms before this


bert-base embeddings

I tried to run the following command:
tape-embed unirep my_input.fasta output_filename.npz bert-base --tokenizer unirep --full_sequence_embed
why bert-base embedding not working and only 1900 dim embeddings?
thanks!

You might want to try using the . "iupac" tokenizer.
in the readme it mentions the following in the hugging face api section:
tokenizer = TAPETokenizer(vocab='iupac')  # iupac is the vocab for TAPE models, use unirep for the UniRep model

You also have to switch the model type to transformer. So the command should be tape-embed transformer input_file output_file bert-base. ‘iupac’ is the default tokenizer so you can pass it in or not.

it fails:

Traceback (most recent call last):
File "/home/nlp/dahanka1/anaconda3/bin/tape-embed", line 8, in
sys.exit(run_embed())
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/site-packages/tape/main.py", line 232, in run_embed
training.run_embed(**embed_args)
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/site-packages/tape/training.py", line 627, in run_embed
model_type, task_spec.name, model_config_file, from_pretrained)
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/site-packages/tape/registry.py", line 217, in get_task_model
model = model_cls.from_pretrained(load_dir, num_labels=task_spec.num_labels)
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/site-packages/tape/models/modeling_utils.py", line 505, in from_pretrained
model = cls(config, *model_args, **model_kwargs)
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/site-packages/tape/models/modeling_bert.py", line 404, in init
self.embeddings = ProteinBertEmbeddings(config)
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/site-packages/tape/models/modeling_bert.py", line 125, in init
self.LayerNorm = LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/site-packages/apex/normalization/fused_layer_norm.py", line 127, in init
fused_layer_norm_cuda = importlib.import_module("fused_layer_norm_cuda")
File "/home/nlp/dahanka1/anaconda3/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 994, in _gcd_import
File "", line 971, in _find_and_load
File "", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'fused_layer_norm_cuda'

Maybe the solution is to change the config "output_hidden_states": false to True?

Hmm. What version of numpy are you using? That shouldn't be an issue. I'll try to debug and see if I get the same error.

Thank you!
numpy version : 1.17.4

notice that it tried to convert (768,768) into shape (768)
isn't it a logical problem?

I'm actually having trouble reproducing this error. I'm also using numpy version 1.17.4 and python 3.6. Running the same command on my own fasta file completes successfully without issue. Are you able to provide your fasta file? Alternatively, if you download one of our datasets (e.g. fluorescence), are you able run successfully on that?
I'm not sure why it's trying to save an array of 768 x 768. None of the returned tensors there should be that size.

Ok, I debugged the code and found out that val is a tuple.
The first element is a tensor (protein_len, 768) and the second (768, )
So I changed the code to:

with open(self.tmpfile, 'wb') as fid:
fmt.write_array(fid, np.asanyarray**(val[0])**, allow_pickle=True)
self.zip.write(self.tmpfile, arcname=fname)
Is it ok?
Thank you for your fast reply!

So val is supposed to be a tuple of length 2, containing the full sequence representation at val[0] and the pooled representation at val[1]. This seems to work fine for me when saving. I'm curious what the specific issue is that causes this. If you're able to provide your data, I'd be happy to see if I can reproduce the error (you can email it to me at<EMAIL_ADDRESS>or upload to google drive /etc.). Of course I understand if you can't share your data.

Ok I am now getting the same issue. Thanks for sending the data. Will try and figure out what causes it.

Found the issue, numpy didn't like it if there was a protein of length 768 in the dataset. Should be fixed now. Note that this slightly changes how the save file is returned (each entry will be a dictionary with keys, but it should be straightforward enough).

awesome, thanks!


TeX annotation in MathML output mode should be XML escaped

It would be nice if the TeX annotation generted in the MathML output would be XML escaped.
Otherwise, XML validation tools might cosinder the characters & < >... to be invalid.
In https://gerrit.wikimedia.org/r/#/c/166556/ provides a workaround for most cases, but if the TeX string contains "" we could have a problem with the woraround.
As far as I know this is a MathJax and not a MathJax node bug, but feel free to move the bug if I'm wrong.

==> In Testsuite
UI/issue935.html


zorder of drawmapboundary() gets on top of imshow()

Hi all,
I got this weird issue that changing the order of drawmapboundary() wrt drawparallels() and drawmeridians() gives different results. Specifically, calling drawmapboundary(fill_color='0.8') first leads to an overlay of grey over the imshow() (see left panel in figure). While putting drawmapboundary() after drawparallels() and drawmeridians() gives correct results (right panel in figure).

The script to create that plot:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

def plotBmap(data, x, y, ax, order):

    bmap=Basemap(projection='cyl',\
            llcrnrlat=y[0],llcrnrlon=x[0],\
            urcrnrlat=y[-1],urcrnrlon=x[-1],\
            ax=ax)

    bmap.imshow(data, interpolation='nearest')

    # plot axes labels
    lat_labels=np.linspace(-90, 90, 5)
    lon_labels=np.linspace(0, 360, 6)
    ax.set_yticks(lat_labels)
    ax.set_xticks(lon_labels)
    ax.tick_params(axis='both',which='major',labelsize=10)
    ax.xaxis.set_ticklabels([])
    ax.yaxis.set_ticklabels([])

    # draw continents
    bmap.drawcoastlines(linewidth=1.5,linestyle='solid',color='k',\
        antialiased=True)
    bmap.drawcountries(linewidth=0.5,linestyle='solid',color='k',\
            antialiased=True)

    if order=='before':
        bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8')
        bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
                labelstyle='+/-',fontsize=10)
    elif order=='after':
        bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8')

    return bmap

if __name__=='__main__':

    x=np.arange(0, 361, 1)     # lon
    y=np.arange(-90, 91, 1)    # lat
    X,Y=np.meshgrid(x,y)
    z=np.sin(X/90.)+np.cos(Y/90.)

    # create an area of missings
    z[10:50, 20:80]=np.nan

    fig, (ax1, ax2)=plt.subplots(1, 2, figsize=(12,6))

    bmap1=plotBmap(z, x, y, ax1, 'before')
    ax1.set_title('before')

    bmap2=plotBmap(z, x, y, ax2, 'after')
    ax2.set_title('after')

    fig.show()

I guess it's the zorder that is wrong. specifying zorder=0 in drawmapboundary() doesn't work, by zordre=-1 does.
The versions of relevant packages:

basemap = 1.2.0
matplotlib = 2.2.3

One of the combinations that doesn't have this issue:

basemap = 1.0.7
matplotlib = 2.2.3

Fascinating...
I still need to dig into exactly what the code looked like back in v1.0.7,
but one thing I am suspecting is that between then and now, I normalized
the limb-handling code across all of the drawing functions. In particular,
the drawparallels() and drawmeridians() methods would trigger a call to
_cliplimb() now, which exits early if the map boundaries haven't been drawn
yet. But, I don't know how setting clip paths could possibly have an impact
on any of this.
Now, one thing about this is that drawmapboundary() defaults to zorder of
0, so explicitly setting a zorder of zero would have no impact on behavior.
I am going to have to investigate this a bit further to figure out the
cause of the issue.
On Wed, Aug 21, 2019 at 6:22 AM Xunius<EMAIL_ADDRESS>wrote:

Hi all,
I got this weird issue that changing the order of drawmapboundary() wrt
drawparallels() and drawmeridians() gives different results.
Specifically, calling drawmapboundary(fill_color='0.8') first leads to an
overlay of grey over the imshow() (see left panel in figure). While
putting drawmapboundary() after drawparallels() and drawmeridians() gives
correct results (right panel in figure).
[image: basemap]
https://user-images.githubusercontent.com/8076931/63423894-d2caca80-c43f-11e9-9544-a224c703c007.png
The script to create that plot:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
def plotBmap(data, x, y, ax, order):
bmap=Basemap(projection='cyl',\
        llcrnrlat=y[0],llcrnrlon=x[0],\
        urcrnrlat=y[-1],urcrnrlon=x[-1],\
        ax=ax)

bmap.imshow(data, interpolation='nearest')

# plot axes labels
lat_labels=np.linspace(-90, 90, 5)
lon_labels=np.linspace(0, 360, 6)
ax.set_yticks(lat_labels)
ax.set_xticks(lon_labels)
ax.tick_params(axis='both',which='major',labelsize=10)
ax.xaxis.set_ticklabels([])
ax.yaxis.set_ticklabels([])

# draw continents
bmap.drawcoastlines(linewidth=1.5,linestyle='solid',color='k',\
    antialiased=True)
bmap.drawcountries(linewidth=0.5,linestyle='solid',color='k',\
        antialiased=True)

if order=='before':
    bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8')
    bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
            labelstyle='+/-',fontsize=10)
    bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
            labelstyle='+/-',fontsize=10)
elif order=='after':
    bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
            labelstyle='+/-',fontsize=10)
    bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
            labelstyle='+/-',fontsize=10)
    bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8')

return bmap

if name=='main':
x=np.arange(0, 361, 1)     # lon
y=np.arange(-90, 91, 1)    # lat
X,Y=np.meshgrid(x,y)
z=np.sin(X/90.)+np.cos(Y/90.)

# create an area of missings
z[10:50, 20:80]=np.nan

fig, (ax1, ax2)=plt.subplots(1, 2, figsize=(12,6))

bmap1=plotBmap(z, x, y, ax1, 'before')
ax1.set_title('before')

bmap2=plotBmap(z, x, y, ax2, 'after')
ax2.set_title('after')

fig.show()

I guess it's the zorder that is wrong. specifying zorder=0 in
drawmapboundary() doesn't work, by zordre=-1 does.
The versions of relevant packages:

basemap = 1.2.0
matplotlib = 2.2.3

One of the combinations that doesn't have this issue:

basemap = 1.0.7
matplotlib = 2.2.3

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/matplotlib/basemap/issues/474?email_source=notifications&email_token=AACHF6CJSS2VSUZ5ONADI23QFUJMRA5CNFSM4IOE3SP2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HGPC7RQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACHF6BO7ELAMVNSAQQBU23QFUJMRANCNFSM4IOE3SPQ
.

Hi, I wonder is there any fix being patched, but I noticed something new.
I created a new conda environment and installed basemap = 1.2.0 and matplotlib = 2.2.3. Now setting zorder=-1 in drawmapboundary() makes the top and the left hand side black frames gone (see top-right in figure below), as if the fill_color is overlaying the figure frame. Again it seems to be related to the ordering of drawmapboundary() wrt drawparallels() and drawmeridians(). I've created a new plot to show this:

Code below:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

def plotBmap(data, x, y, ax, method):

    bmap=Basemap(projection='cyl',\
            llcrnrlat=y[0],llcrnrlon=x[0],\
            urcrnrlat=y[-1],urcrnrlon=x[-1],\
            ax=ax)

    bmap.imshow(data, interpolation='nearest')

    # plot axes labels
    lat_labels=np.linspace(-90, 90, 5)
    lon_labels=np.linspace(0, 360, 6)
    ax.set_yticks(lat_labels)
    ax.set_xticks(lon_labels)
    ax.tick_params(axis='both',which='major',labelsize=10)
    ax.xaxis.set_ticklabels([])
    ax.yaxis.set_ticklabels([])

    # draw continents
    bmap.drawcoastlines(linewidth=1.5,linestyle='solid',color='k',\
        antialiased=True)
    bmap.drawcountries(linewidth=0.5,linestyle='solid',color='k',\
            antialiased=True)

    if method=='before no zorder':
        bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8')
        bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
                labelstyle='+/-',fontsize=10)
    elif method=='before with zorder':
        bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8', zorder=-1)
        bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
                labelstyle='+/-',fontsize=10)
    elif method=='after no zorder':
        bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8')
    elif method=='after with zorder':
        bmap.drawparallels(lat_labels,labels=[1,1,0,0],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmeridians(lon_labels,labels=[0,0,0,1],linewidth=0,\
                labelstyle='+/-',fontsize=10)
        bmap.drawmapboundary(color='k',linewidth=1.0,fill_color='0.8', zorder=-1)

    ax.set_title(method)

    return bmap

if __name__=='__main__':

    x=np.arange(0, 361, 1)     # lon
    y=np.arange(-90, 91, 1)    # lat
    X,Y=np.meshgrid(x,y)
    z=np.sin(X/90.)+np.cos(Y/90.)

    # create an area of missings
    z[10:50, 20:80]=np.nan

    fig, axes=plt.subplots(2, 2, figsize=(12,6))

    bmap1=plotBmap(z, x, y, axes[0,0], 'before no zorder')
    bmap1=plotBmap(z, x, y, axes[0,1], 'before with zorder')
    bmap1=plotBmap(z, x, y, axes[1,0], 'after no zorder')
    bmap1=plotBmap(z, x, y, axes[1,1], 'after with zorder')

    fig.show()


feat: add brew install for lula

Description
Added Brew release configuration. This should create the release inside of the Defense Unicorns Brew repo. Permissions were previously setup.
A separate issues exists for updating the documentation after a release has been cut and testing has bee conducted. https://github.com/defenseunicorns/lula/issues/321
This issue would be a follow on after a release has been made.
Related Issue
Fixes #
#702
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Other (security config, docs update, etc)

Checklist before merging

[ ] Test, docs, adr added or updated as needed
[ ] Schema Updates applied
[x] Contributor Guide Steps followed

Added a GitHub Action that will run GoReleaser check on any pushes or PRs that contain a change to the .goreleaser.yaml file.
Also tweaked the wording a bit in our release documentation to call out the brew info and the action. We don't go too in-depth into distros.


jsoup 1.9.2 and later are available on MavenCentral, but not JCenter

jsoup 1.9.2 and higher (including 1.10.x) are available on MavenCentral. However, they are not available on JCenter, where the latest version is 1.9.1.
The comments on issue #692 suggest that JCenter is supposed to proxy Maven Central, however this is not happening with these later jsoup versions.

you can used by below URL that is all version about jsoup
http://mvnrepository.com/artifact/org.jsoup/jsoup

You need to report this to jcenter/bintray. They are doing the sync.

So I've been trying to work with Bintray to get this fixed. Apparently if you "take ownership" (associate an account) for a package, it silently stops syncing from Maven Central. They want to make you use Bintray to push into Maven Central, or otherwise do every release by hand. Seems a cynical approach to get usage up. And their tool won't let me delete the package now.
So until their CS can help out, I'd suggest just not trying to fetch releases from Bintray / JCenter / Jfrog / whatever it's called. Just use Maven Central.

Per their instructions I deleted my Maven repo in Bintray (which was created when I took "ownership" of jsoup there.
And it's now got a proxy version that's tracking again correctly: https://bintray.com/bintray/jcenter/org.jsoup:jsoup


Only Alert when a website comes online

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
Other
🔖 Feature description
I am working with an application and with storms lately it has been brought offline for a variety of reasons. Uptime is able to alert saying the application is down and using ncarlier/webhookd:edge-distrib it allows uptime to launch a DR version of the application. The DR application is being routed through a different URL.  I would like the ability to alert when a website comes online, but do not alert if its offline.
✔ Solution
The best option I can think of is only alert when a monitor turns active and do not report when its not active.
❓ Alternatives
I tried using upside down mode, but it will send an alert that the DR application is down when it is actually online.
📝 Additional Context
Not able to switch DNS which makes this more challenging. Also have to manually sync the data between DR and the main site when it comes back online.

I think this is a duplicate of https://github.com/louislam/uptime-kuma/issues/3585
If you agree, could you please close this Issue, as duplicates only create immortal zombies and are really hard to issue-manage?
If not, what makes this issue unique enough to require an additional issue? (Could this be integrated into the issue linked above?) ^^
Note that our contribution guide can be found here and that we are open to contributions if you adhere to this

@CommanderStorm https://github.com/louislam/uptime-kuma/issues/3585 would solve my issue as well. Closing this issue


video pad filter support?

Hi,
please mark this issue as Question (appologies, i don't know, how to do it)
1- is this filter supported.?
2- can you please provide a simple textdraw example using python for command line
huge thanks,haseeb

1 - All ffmpeg filters can be called using the filter (or filter_) method: https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py#L28
2 - Here is an example of how I use textdraw to add 'watermarks' to videos: https://github.com/153957/time-lapse/blob/master/time_lapse/watermark.py

thanks, this is great example, it also shows, how to load fonts relative locations, grateful again.
i tried following, but wasn't able to successfully accomplish
data = "somevideo.mp4"
in_file = ffmpeg.input(data)
PAD_OPTIONS = {
    'width':'main_w',
    'height':'main_h+100',
    'x':'0',
    'y':'0',
    'color': 'Olive'
}
po =  ffmpeg.filter_(in_file,"pad",**PAD_OPTIONS)
po.output("padded_video.mp4").run()

output log something like this..
[Parsed_pad_0 @<PHONE_NUMBER>792da0] [Eval @<PHONE_NUMBER>0feba0] Undefined constant or missing '(' in 'main_w'
[Parsed_pad_0 @<PHONE_NUMBER>792da0] [Eval @<PHONE_NUMBER>0feba0] Undefined constant or missing '(' in 'main_h+100'
any ideas?, thanks again.

just noticed, replacing 'main_w' with 'iw' and 'main_h' with 'ih+100' works perfectly, huge thanks again for support , its awesome..


Fix typo in raspotify.service

Typo was preventing environment variables from being defined in /etc/default/raspotify , e.g., login details, bitrate, etc
Fixes dtcooper/raspotify#413

It's there on purpose, see the docs for systemd, re: EnvironmentFile: here


Organisation of the data layer code

Frontend code for a single data layer currently lives in several different places, eg.

config/data-layers/hazards/
state/layers/data-layers/hazards.ts
state/data-selection/hazards/
sidebar/sections/hazards/

It might make more sense to colocate all code relating to a single dataset (or layer.) eg:

data/hazards/config/
data/hazards/state/
data/hazards/sidebar/

See also https://github.com/nismod/irv-frontend/blob/main/docs/directions.md#refactoring-directions.

Layer config, state, and sidebar components are now grouped by layer under src/data-layers/.


Updates for force delete and prefix and delim bug

Adding force delete

This functionality is critical for testing against MinIO, which is heavily used in corporate environments, and the API some enterprise-level storage systems utilise.

Fixes for prefix and delim bug

Hi @casibbald, if you want to re-open the PR, I am more than happy to review and merge the changes. Looks like a meaningful improvement.

Hi Johannes, It's likely a reduced version of the PR may come through with just the prefix/delim bug fix.
We will check if Weave-gitops still needs the force delete of buckets, if it does we will put that in.
I cancelled the PR we felt that it might be two PR's

Great to hear that! Will take a look at it shortly!


Unexpected NaNs in a jax port of PSIS-LOO

Description
I'm trying to port the Pareto smoothed importance sampling (PSIS) algorithm to JAX, since I need to be able to differentiate through the log-weights; specifically, I am interested in porting the psislw function. There are already two existing implementations I'm aware of - Aki Vehtari's original version, and an Arviz version.
The main difficulty in porting these to JAX was that the original code involves a lot of dynamic array operations -- shapes depend on values. To try and solve this, I wrote a version in which all array sizes are static and "truncations" are replaced with jnp.nans (so that sums and means could be replaced by jnp.nansum and jnp.nanmean, etc). There were also some control-flow issues which I replaced with jnp.where (sometimes at the cost of pre-computing both branches - that may be avoidable, I'm not sure).
The current version of my jax port is here.
This worked fine, and I was able to reproduce the results of both implementations on random data. However, when I try to take the grad of the version I wrote, I'm getting nan gradients; when I ran this with config.update("jax_debug_nans", True), I got this (just the relevant part):
~/projects/recast-optimizer-api/optimizer/algorithms/loo.py in psis_single(x, cutoff_ind, cutoffmin, k_min)
    103
    104     expxcutoff = np.exp(xcutoff)
--> 105     x2 = np.where(x > xcutoff, x, np.nan)
    106     n2 = np.where(x > xcutoff, 1, 0).sum()
    107

so seems like the nan-padding worked fine for the "forward pass", but doesn't play nicely with the gradient computation? Is that the expected behavior?
Thanks!
What jax/jaxlib version are you using?
0.3.14
Which accelerator(s) are you using?
CPU
Additional system info
macOS, Python 3.9.5
NVIDIA GPU info
No response

Please take a look at the FAQ entry on "Gradients contain NaN where using where":
https://jax.readthedocs.io/en/latest/faq.html#gradients-contain-nan-where-using-where

Thanks for the quick response @shoyer !
If I understand this correctly, this means that the idea of "nan-padding" to bypass the dynamic nature of arrays in the psislw function isn't going to work, right? Will the same hold for "inf-padding", I guess?

I think Stephan's point was not that NaN-padding won't work, but that you may need (surprisingly) two where clauses one before and one after.

Yes, this is unfortunately a well known issue with most AD systems. The FAQ section also has links to two issues where it has been explained it detail. The short story is that nan padding is not a bad idea by itself, but you might need to replace those nans with values from the domain of a function before applying it. You might get away with not doing that for some basic stuff like +, but anything more complicated (*, sin, exp, ...) will likely break.
I'll close this since it's already been discussed at length. But feel free to open up a new discussion if you need more help!


Wechat bot to relay ChatGPT queries to desktop app

I see a demand for a new feature that enables WeChaty to relay ChatGPT queries from WeChat to ChatGPT Desktop App (https://github.com/lencx/ChatGPT).  I do not have relevant knowledge or skills to implement it, but hope some gurus can help make it happen.
Currently, Open AI does not provide ChatGPT service to queries initiated from China, but a ChatGPT Desktop App running in the US can relay the queries from WeChat if a messaging channel is established between WeChat and ChatGPT Desktop.  I imagine that a robot signing in to WeChat as group member can filter messages, and relay relevant messages or queries to ChatGPT Desktop and further to ChatGPT servers.  After ChatGPT Desktop receives the responses, it replicates the responses to the robot, which further relays and displays them in the corresponding WeChat group.  I am not sure if I have stated my idea clearly but please let me know if you have any questions or see anything infeasible.
Thanks,
-Kevin

i think it's a good idea and feature


ipyvolume triggers icon and blur

when i run the cell, a java icon appears, the browser loses focus.

it is similar to https://github.com/twosigma/beakerx/issues/3355
fix is probably similar too:
https://github.com/twosigma/beakerx/commit/af33f32da28522b8c50e783aa1d032da15d35a99

Couldn't recreate it on Ubuntu and Windows, so it require running some test on MacOS.
Fix is based on adding java.awt.headless=true to jvm start properties by default.


Update readme.md

Make the README better for developers to directly understand where to start + directly see the necessary things

assign this task to me

sure


[stable/prometheus-operator] Synced alerts from upstream projects use different selection labels from chart

The stable/prometheus-operator chart has scripts that will automatically sync alerts and dashboards from upstream projects. In some cases it is possible for these alerts to have alternate selectors due to the upstream project having a different deployment process. For example:
count_values("config_hash", alertmanager_config_hash{job="{{ $alertmanagerJob }}"}) BY (service) / ON(service) GROUP_LEFT() label_replace(prometheus_operator_spec_replicas{job="{{ $operatorJob }}",controller="alertmanager"}, "service", "alertmanager-$1", "name", "(.*)") != 1

source
This alert uses a relabel expression to select an alertmanager service that does not get deployed by the chart, and so it will never trigger.

Creating a completely universal script that is capable of dealing with these conditions may be beyond the scope of this project, however, validating the functionality of the alerts, and amending the configuration to function with the chart is still necessary.
What are your thoughts on this, @paskal @gianrubio ?

I'm sorry, but what's the problem? Script make such substitutions and define these variables in the beginning of the script:
{{- $alertmanagerJob := printf "%s-%s" (include "prometheus-operator.fullname" .) "alertmanager" }}
<...>
      expr: count_values("config_hash", alertmanager_config_hash{job="{{ $alertmanagerJob }}",namespace="monitoring"}) BY (service) / ON(service) GROUP_LEFT() label_replace(prometheus_operator_spec_replicas{job="{{ $operatorJob }}",namespace="monitoring",controller="alertmanager"}, "service", "alertmanager-$1", "name", "(.*)") != 1

source
It was defined that way before I've introduced auto-sync and I've re-used this mechanism in the synchronization script.
Could you please rephrase, what is the problem exactly?

Replacement rule:
{
    'job="alertmanager-main"': {
        'replacement': 'job="{{ $alertmanagerJob }}"',
        'init': '{{- $alertmanagerJob := printf "%s-%s" (include "prometheus-operator.fullname" .) "alertmanager" }}'},
}

Currently entry title get replaced by replacement value, and init value added to file header.
Only current problem I see (after sync I've done) is many lines like this introduced:
expr: increase(prometheus_tsdb_compactions_failed_total{job="{{ $prometheusJob }}",namespace="monitoring"}[2h]) > 0

This namespace selector is not proper and need to be replaced with actual namespace of deployment.

The issue is with the label_replace function used as part of the alert expression.
The value of replacement from the source configuration is "alertmanager-$1", which is correct for the project it is sourced from, but not correct for the helm naming conventions used in the chart. Here, the correct value is "$1"

I've added replacement rule, see #11617. I don't think maintaining script with such replacements is too much of a burden, in exchange we have reliable mechanism of having these files in up-to-date state.

Every time someone syncs rules from upstream repositories they will need to go through the changes to make sure that potential changes are not having one of these effects and add amend the script if it does That seems like it could get pretty out of hand

I understand you, however this particular thing was there for 9+ months. I think we have to manage these cases somehow anyway, and doing this via script rewrites is not the worst way possible.


Allow 'catch_system_errors' to be Configured via .runsettings File

As requested by issue #13, the command-line parameters 'catch_system_errors' and 'detect_fp_exceptions' are now configurable via the .runsettings file via the boolean configuration options 'CatchSystemError' and 'DetectFloatingPointExceptions' respectively.

Refer to pull request #18 which contains correct change log


Update sys-dm-pdw-exec-sessions-transact-sql.md

When you create a private endpoint, the traffic flows through the azure backend network. When the packet reaches the SQL db, it emanates from a network device that applies IpV6 ip address on the packet. This IpV6 address range is an internal range and no public IpV6 address will have this value. That is how SQL knows that the traffic is coming from a private endpoint.

@WilliamDAssafMSFT
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Create an input data validator

The current check_and_read function has 2 main functionalities:

check if input excel file has the expected format
extract specific columns from the input excel file

My thought is to have a input data validator (which checks file existence and the column names), and then once the files are validated, just a generic extract_col function to read the excel file and convert the data type (which is the other half of what's currently in check_and_read) -- so the main thing is to separate the checking and reading components
Below from #13:

The input Excel files have the correct column headers (necessary because we use Pandas).
The input Excel files have correctly defined values e.g. appropriate NaN values, no strings in integer/float columns.

This is addressed via #161.


Add icon exclude option

Closes #5
I realize that this isn't a common use case. If you don't think that this change would be useful to anyone else, I can maintain a separate fork.

You can add icons by editing node-modules/electron-titlebar-windows/html/index.html, then by editing node-modules/electron-titlebar-windows/lib/titlebar.js you can add event listener to your new icon or anything else you put there.
Hope this helps :D


chore: update packages and update code into apify-client v2

fixes #22

the methods in apify_helpers can be replaced

@fnesveda The problem here is that we need to use z.request which is passed there from methods in Zapier to be able do some metrics and debugging there.


Changed cmake var used for builds

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Documentation has been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Changes CMAKE_SOURCE_DIR to PROJECT_SOURCE_DIR in all CMakeLists.txt
Is there an open issue that this resolves? If so, please link it here.
Fixes #448
What is the current behavior? (You can also link to an open issue here)
Build is OK
What is the new behavior (if this is a feature change)?
Build is still OK
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Other information:

 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.

Thanks for the approval!


cmake/Macros.cmake: Do not alter default naming

In just about any library which is compilable for both linux and
mingw-w64, import libraries are called *.dll.a and static libraries are
called *.a; there is no benefit from changing the naming, and could
cause confusion.
Signed-off-by: Marty E. Plummer<EMAIL_ADDRESS>

@LaurentGomila do you remember what the reasoning was for this? Changing it now will cause confusion with existing users (and guides need to be adjusted), yet I do see that there's no real benefit from diverging what "everyone" else is doing, plus it will be easier to explain that import libraries are .dll.a and static libraries are .a.

In theory ".a" might be associated and as such be a hidden extension by default, so users would only see "sfml-system.dll" (the actual ".dll.a") and "sfml-system" (the actual ".dll"). This could be confusing, but then again you'd assume at least some basic understanding and sense from people wanting to get into programming, so probably a weak point. Besides that, the ".dll.a" file for MinGW is pretty much pointless anyway, since (in contrast to Visual Studio), GCC will just accept a DLL as a direct input for the linker, so there's no need to pick the ".dll.a" (whatever extension it has).

That was probably done for consistency. But in the end I don't really care, except that if we go this way we may also not remove the "lib" prefix.

Not having "lib" in front is perfectly fine, it's very uncommon on Windows anyway IMO. But one could think about dropping "-s" for static versions, since file names would no longer overlap, although I'm not 100% sure how linking logic would work in case both are installed. Are the ".dll.a" files even used?

Not having "lib" in front is perfectly fine, it's very uncommon on Windows anyway IMO

This is the default, we have to explicitly remove it in our CMake config.

But one could think about dropping "-s" for static versions, since file names would no longer overlap

Only in this specific case (Windows / gcc). Visual C++, for example, only uses ".a", for both import and static libraries.

Are the ".dll.a" files even used?

If that's what the linker finds (and it usually is, since you give it the "lib" path, not the "bin" one), yes, they are used.

After thinking about this a bit more, I think it makes sense to keep the current behavior.
It's aligned with how it's usually expected when working with GCC and libraries from the Linux side.
Plus a lot of guides for SFML may already use this and would have to be updated, so we're only creating more confusion from my point of view.


Edge properties for Canvas

A nice syntactic feature to add might be North/South/East/West "properties" to Canvas so that when using the EdgeReached event handler, rather than checking the edge variable against a numeric constant, one can check it against Canvas1.NorthEdge, for example. It might make blocks code involving canvas easier to follow.

I also have a proposal for enumerations for App Inventor, which touches on this problem as well. In that document, I proposed a new block type with a different color to make it clear that they are constants. We could adopt similar coloring for any "constant properties" if we take the route proposed above.

This was addressed by @BeksOmega's GSOC project.


Crashes when loading saved game

I'm not sure if it's a mod conflict or what the deal is but I was getting a crash when trying to load a saved game after doing anything in that save. I can save and load a fresh new game all I want until I move around and move a locomotive. As soon as I do that, I can't load that save anymore. I removed this mod and that issue went away completely. I'm happy to provide any info you need but I'm not a modder and have absolutely no idea where to begin. I loved the mod when it worked and would be happy to provide any info I can to aid in a fix.

I've encountered similar.
when you save a game with a train moving, it somehow will crash upon loading this save.
I've ensured that i always have all engines stopped before i save and exit the game as a workaround.

I believe mine were fully stopped when I encountered the issue. It was a
fresh game, I saved and exited to the menu, and reloaded just fine. I
exited to desktop and also reloaded just fine, but after rerailing the
broken starter locomotive, and moving the working one out of the shed I
could not reload that save without deleting this mod. Haven't had a single
issue since removing it.
HOWEVER my brother and I tried to play multiplayer last night and we had
some issues with him not being able to see certain assets in game, and we
realized I may not have had all my mods completely up to date even though
I'd double checked. I believe I was one version behind on AssetLoader, and
his was the most recent version, it caused him to not be able to see the
sheds or any rolling stock in game if I was hosting.
Not sure if that has anything to do with this mod at all
On Tue, Apr 2, 2024, 3:27 PM Hr_Ravn @.***> wrote:

I've encountered similar.
when you save a game with a train moving, it somehow will crash upon
loading this save.
I've ensured that i always have all engines stopped before i save and exit
the game as a workaround.
—
Reply to this email directly, view it on GitHub
https://github.com/t0stiman/rr_better_mouse_mod/issues/16#issuecomment-2032942004,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BHQNAP3P4YZJLUWDV6RPPCTY3MBAXAVCNFSM6AAAAABFSJPD32VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZSHE2DEMBQGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Does this bug still occur in the latest update?


Stablize compilation time measurement in benchmarks

Right now we measure the compilation time for compiling various models. Though the numbers reported can vary a lot. For example, this one ranges from 60s to 140s; similarly for CPU. With such a level of noisiness we cannot draw any meaningful information out of it and it's actually a distraction. We'd need to figure out ways to make the numbers more stable.

Unassigned myself as I'm not working on this currently


Reorganizing the Wiki for improved UX

I have been thinking about how to improve navigation and UX in the wiki. I already added a little sidebar with some important pages, which I believe helps. I think the next step is to create a clear skeleton for the wiki to help direct newcomers (and contributors) to where they need to be.
Now, the following ended up a bit longer than I had hoped, so apologies for that. In any case, I thought that such a drastic plan should be discussed before being implemented. Once - on this thread - we agree about the structural map, I could start another issue with a checklist and we can divide the work.
Now since the wiki is to be complementary to the manual, rather than a replacement, I figured we should also think about how is the wiki going to be different. The following is what I could come up with:

Ecosystemic: the manuals cover specific software (Nix, NixOS, etc.) while the wiki covers the Nix ecosystem as a whole, helping the user understand the interrelations more clearly.
Heterogeneous: the manuals normally give one canonical approach to something, the wiki has the potential to reveal the more diverse approaches and workflows used in practice.
Pragmatic: the manuals are intended for comprehensive and detailed reference, while the wiki could emphasize practical and learning resources such as guides, tutorials and cookbooks.
Reticulate: the manuals are catenary meaning they have a linear sequence of one chapter following another while the wiki is reticulate, having a network structure of links, allowing the user to reach information in multiple ways.
Community: the manuals cover the more official and stable core of the Nix ecosystem, while the wiki can cover the whole Nix community with its diverse projects and communication channels.

Based on these considerations, I propose the following two-tiered structure for the skeleton and navigation sidebar; the links / pages are marked in bold and the explanation of the page contents in italics:

Home Page - Gives a general introduction to the wiki and a map of its contents.

Search - Links to the hound search tool as it does now.

Ecosystem - An article providing an overview of the components of the Nix ecosystem and their relations, including everything listed below. Possible also with infographics.

NixOS*
Nix*
Nixpkgs - An overview of how nixpkgs is arranged, and how its development workflow goes.
Nix Language - An overview of the language, usage, design patterns (linked to cookbooks).
NixOps*
Hydra*
Disnix*
Other Applications - This is the page now called 'Applications' which will be renamed for clarity in this context; maybe another name would be better.

Resources -  This is to provide an overview of helpful resources for learning and using Nix/OS stuff, including the whole contents of what is now the 'Bookmarks' page.

Guides - How-to guides: for example installation, language and hardware specific guides.
Tutorials - Pedagogic courses: specifically designed to teach some aspect of the ecosystem.
Cookbooks - Recipe collections: arranged by theme / tool in separate articles.

Community - An overview of the Nix/OS community, IRC, Github, Reddit, etc.

Contribute - A contribution guide, for the wiki, the Nix ecosystem and the community in general.
Support - Where to get help, including links to troubleshooting guides, the FAQ, etc.

[* for the NixOS, Nix, NixOps, Hydra and Disnix pages it would be nice to have a regular structure - something like introduction, usage (installation, operation, configuration), internals, development and (optionally) history.]
So what do you folks think?

I largely agree with the structure. The only thing which seems ambiguous to me, is how to distinguish between guides, tutorials and cookbooks. The arch wiki equivalent to this section is probably https://wiki.archlinux.org/index.php/General_recommendations
I would propose to flatten the hierarchy here for the sake of simplicity.

In my understanding, guides are longer instructional texts that help you accomplish a particular task (installation, getting, tutorials are educational tours intended to teach you something, and cookbooks are collections of short hacks / code snippets arranged around a theme.
I agree that at this point, we are probably lacking the content to warrant these three to have their own pages; this may also apply to some other pages. For these, we can have subsections in the parent page in the meanwhile.
I would still like to have a way to focus contributions on these resources, but we can figure it out after this initial skeleton is built.

@ixxie I really like the new structure and i am pretty sure this change can make a difference with regards to the sub-par documentation for the nix ecosystem right now.
I am in favor of distinguishing between tutorials and HOW-TOs.

Tutorials are learning-oriented and especially helpful for newcomers.
How-Tos solve real-world problems and are goal-oriented.

@Mic92 a very good read is https://www.divio.com/en/blog/documentation/ . It explains the difference between the types of documentation. It also somewhat depicts the biggest issue with the nix* manuals: different types of documentation get mixed up into multiple large documents.

@makefu Yep so just clarifying, How-Tos = Guides as @ixxie and your link says.

@vyp exactly. But as ixxie said, as long as we do not have enough resources to fill up whole pages we can keep them on a single page. In the end it is a wiki and stuff can change over time.

@makefu that link is great! Exactly what I had in mind. I guess the ecosystem articles would fall under both reference and discussion, but where the documentations are (or should be) more reference like, the wiki would be more discussion like. The one thing missing from there is the cookbook, which is a bit different.

Summarized here: https://nixos.wiki/index.php?title=Contributing_to_to_the_wiki&diff=251&oldid=0


1.7: Should functions in plugin with names of events be called without subscribing to events?

I noticed that functions with names corresponding to existing events get called, even when getSubscribedEvents() is not defined and no events are subscribed to.
Tested on Grav 1.7 with functions onPluginsInitialized() and 'onPageInitialized()'

I feel you should still have to subscribe the method even if the name matches the event name. This is to ensure you meant to call it at the appropriate time, in the appropriate manner.  I've not tested this as I always manually subscribe, but seems like a bug to me.
Any thoughts @mahagr?

I feel you should still have to subscribe the method even if the name matches the event name. This is to ensure you meant to call it at the appropriate time, in the appropriate manner.  I've not tested this as I always manually subscribe, but seems like a bug to me.
Any thoughts @mahagr?

That is part of Symfony Event Dispatcher implementation. I think that is something that will be changing, though, as Symfony now follows PSR-14.

That is part of Symfony Event Dispatcher implementation. I think that is something that will be changing, though, as Symfony now follows PSR-14.


Issues with sticky header

Hi,
I have some problems with the sticky header feature, used together with expand/collapse behavior

Sometimes the sticky header view losses it's background. It's nearly impossible to provide steps to reproduce this, you need just to drag, expand and collapse random list headers for a while.

Sometimes the sticky header is not shown correctly. Steps to reproduce:

make an sticky adapter with 3 expandable headers, 10 children each
make them collapsed on start
on the top of the list, expand the second one, then the first one
scroll down until you reach the second header, scroll a bit more, so that the bottom of sticky header is in the middle of the first item, collapse header
scroll up, the sticky header is missing at this point

How to handle expand state change properly? I have an arrow at the header item, it should rotate when this state changes. I'm updating this when binding view holder, and in expandView/collapseView methods in the view holder. Still, sometimes the arrow have wrong rotation, should i override any other method to handle it properly?

@ILikeYourHat, could you please check if those issues are still present when you use the Snapshot version? Have a look at the last post of #39.

2 and 3 are still present, for 1 I've found a workaround (wrapping item with FrameLayout), so I am not sure. I will check this tomorrow and let you know

Yup, 1 is present too.

Hi, I also face issue 2 with disapearing sticky header when you collapse it after you scrolled its section up and  down.

Expand sections
Scroll up till section B become sticky
Scroll a litte down
Collapse section B
Sticky header for section B disaapeares.

Any fix for this issue would be very helpful.

@ILikeYourHat, @pkleczko, thanks, I will verify the issues n.1-2. Unfortunately, I am quite busy on something else more urgent than this.
@ILikeYourHat Regarding the point 3) you should call isExpanded() when the item is bound (in bindViewHolder). You can enable the automatic rebound of the expandable by overriding ExpandableViewHolder.shouldNotifyParentOnClick() please check ExpandableHeaderItem.
Thanks to an older issue, I've also done a fix if automatic collapse all is enabled too (available for the moment only in the Snapshot version).

For point 2) I got illumination, basically, the issue derives from the technical scrolling when items disappear... To fix, temporary override collapseView until I publish the snapshot as following:
@Override
protected void collapseView(int position) {
	super.collapseView(position); //If overridden, you must call the super method
	if (itemView.getX() < 0 || itemView.getY() < 0) {
		mAdapter.getRecyclerView().scrollToPosition(position);
	}
}

If you have a better idea please advice.
But this introduce another little glich: basically scroll to have the sticky header (B) almost to the end of child 2. Then you expand, sometimes you will see the sticky header not at the correct position, it will restore the position as soon as you scroll 1 pixel.

After refresh data, if header item is partially visible, then sticky header not sticked.
https://youtu.be/meu3rq2V5aY
in demo project original item is visible, in my just blank place

how to reproduce: swipe to refresh and scroll up in a half of item height (see video)

@volser, that half item scroll while you refresh might be the touch of your finger. If I refresh the list it doesn't occur, but I'm using the latest code from Snapshot. Just published the new App from Snapshot under latest release.
@ILikeYourHat, the solution proposed nicely fix the behaviour in point 2) but it introduces an issue which is worst than the previous, as described. However, the fact that some items scroll out of the screen is managed by LayoutManager when it recalculate the items to contain. So I do not consider it as bug.
For point 3, please use the current Snapshot, you can now be sure an item receives the update or not. However, you should read the property by calling the method isExpanded() in the item implementation, ?which is the one I use in my example. If you refer to a sticky item that remains sticky, I temporary disabled the rebound because of a possible crash. Need to find another way to propagate the new content.
For pont 1, I do know how much realistic the mechanism to reproduce is for the final user.

@ILikeYourHat, probably I found the way to reproduce the point 1).
Using the UNDO feature when retrieving the next sticky header, the position of the first visible item is wrong. As from official documentation:

This position does not include adapter changes that were dispatched after the last layout pass.

So, RV thinks that header is swapped, while it isn't, because the situation is still not changed after the delete notifications are dispatched.
I now added a delay of 100ms after any dispatch, and at least this issue should be resolved.
I will deploy in the next snapshot.

Great, thank you :) So, for clarity (correct me if I am wrong):

It will be fixed in the new snapshot
It is fixed, but that fix introduces a small bug, and that small bug cannot be fixed because Android
It is already fixed

@ILikeYourHat, snapshot published.

Give a try, not sure if it is the same issue.
I've put that fix in the snapshot, please give some tries, now it seems to work better. Anyway, if the bug described here appears, I do not know how to resolve it.
Not a bug for me.

@ILikeYourHat, if you don't have other remarks on this fix, I will close this issue.


Edge Case: Previous Bottom Navigation Icon remains highlighted when using navigation drawer links

Very minor icon issue:
https://user-images.githubusercontent.com/81057116/219446151-97132a34-49b2-433e-b0bf-070eadf68ac5.mp4
Expected Behavior:

When the Bottom Navigation is revealed, only one icon should be highlighted (matching the active page)

Actual Behaviour:

The previous Bottom Navigation Icon remains highlighted when using navigation drawer links

Steps to reproduce:

Visit https://holodex.net/
Decrease browser width to <= 959px to reveal Bottom Navigation
Open the top left navigation drawer/hamburger menu
Click on Favorites
Open the top left navigation drawer again
Click on Home
Notice in the Bottom Navigation, both Home and Favorites icons are highlighted

https://user-images.githubusercontent.com/81057116/219448096-234649d2-e81b-4671-8d57-f72745c79e03.mp4


Insiders DEB package 1.56.0-1618572971 amd64 missing dependency libxshmfence1

VS Code Version: code-insiders/stable 1.56.0-1618809920
OS Version:  Debian 10: Linux 5.10.0-0.bpo.4-amd64 #1 SMP Debian 5.10.19-1~bpo10+1 (2021-03-13) x86_64 GNU/Linux

The package seems to have been published on the feed within the last 8 hours.
Steps to Reproduce:

Upgrade the code-insiders package from 1.56.0-1618572971 to 1.56.0-1618809920 via apt upgrade
Start code-insiders. A missing SO library is immediately reported:

$ code-insiders
/usr/share/code-insiders/bin/../code-insiders: error while loading shared libraries: libxshmfence.so.1: cannot open shared object file: No such file or directory

Workaround/fix:
Install the libxshmfence1 package. After that, code-insiders is nominal.
APT feed the package came from, to be entirely precise:
$ cat /etc/apt/sources.list.d/vscode.list
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64,arm64,armhf] http://packages.microsoft.com/repos/code stable main

Code pointer:
https://github.com/microsoft/vscode/blob/b47d277a2e109252558160f0874b8a0804d73c9e/resources/linux/debian/control.template#L4
https://github.com/microsoft/vscode/blob/main/resources/linux/rpm/dependencies.json

after install vscode on our debian servers, found that these packages were missing in Depends, so I need to install them manualy.
missing packages in Depends:
libasound2
libunwind8
libdrm
libxshmfence1
and for working X11 forwarding:
and for working Xserver redirect
libx11-xcb1


OS versions 10 or higher are broken

When the OS version is 10 or higher, the minor version gets truncated.
For example, iOS 10.0.1 shows up as "10." instead of "10.0"

Fixed in version 1.2


docs: update vue-tsc vue 2 support section

They moved the section this was referring to to another place. Also it is only needed for Vue 2 version 2.6.14 and lower to install @vue/runtime-dom.

Thanks!


fix fix move existing tablet to trash

when move tablet to trash, it has bug to move existing tablet to trash;
Proposed changes
Issue Number: close #xxx

run p0


Adds Flair section for logos, images, badges, etc.

Added a section for "flair" as a hat-tip to Office Space for badges, logos, images and other graphical elements to showcase and promote RedwoodJS.
Added per: @thedavidprice suggestion in https://community.redwoodjs.com/t/i-made-a-redwoodjs-badge/963/2

@dthyresson That badge looks sweet!


Add documentation/update readme on customizing the client using builders

In the codebase, we have used builders instead of traditional object creation using new. Have to update docs with examples

Do you have any good articles or videos you recommend for the @builder pattern? I came across one but it's not very good.


Archive this repository

With no activity on this repo in six months, it appears that this project is no longer actively maintained. Would-be contributors continue to file issues and pull requests, and the most recent release lags behind master, which I found out the hard way after much sleuthing.
I intend no criticism of the project participants for discontinuing the project, but I do think that archiving the repo would send a useful signal to potential future users and contributors.

We don't actually want for this project to be discontinued... We need the rights to be able publish wasm-pack to crates.io. See more in #958.
I'm wondering, if we can't reach @ashleygwilliams that we should make new packages on crates.io for wasm-pack and binary-install perhaps. I'm interested in hearing what @fitzgen and @alexcrichton thinks though.

i started using this project today, i'm starting to learn how to deal with "rust". can't believe this project is going to be discontinued?

I actually just got publishing rights for wasm-pack at crates.io! I will go through some PRs/issues and publish a new version soon.

@drager 👏👏👏👏👏

@drager Sounds great. I think that's sufficient reason to close this!


Muu 242

Small visual bug fixed, animation timeframe shortened

Older PR; newer and more relevant changes are in Muu 246.


Expiration of the certificate SSL Standard (medicmobile.org) in 29 days

This mail is to inform you that your certificate SSL Standard ([medicmobile.org](http://medicmobile.org/)) expires in 29 days, on 2023-09-24 01:59.

Warning: for Pro and Business certificates, web browsers have increased security. It can now take up to several weeks, and so we strongly recommend that you perform the operation as soon as possible.

If you would like to keep your certificate, we recommend renewing it before the expiration date. For this you must launch the renewal process from the following page:
https://admin.gandi.net/certificate/3b1c7ba8-cfa3-11e7-a050-00163ec31f40/7bd096e4-2876-11ed-8147-00163e816020

If you do not want to keep your certificate, then no further action is necessary on your part. It will be automatically revoked by our services and rendered useless.

Feel free to contact our Customer Care Department should you have any questions or require any additional assistance:
https://help.gandi.net/en/contact/
Thank you for choosing Gandi!

Cert from last year: https://github.com/medic/medic-infrastructure/issues/514

We think this may not be needed any more but we're going to check

Maybe our registrar has free redirects for www.medicmobile.org and medicmobile.org to medic.org? This would be easiest.
otherwise my vote is we renew the certs, put them up on a simple vhost that only 301s to medic.org

@Hareet @henokgetachew @Reagan This expires today. Have we confirmed this is no longer needed?

We're now getting a security warning when going to medicmobile.org. If you accept the risk it redirects to medic.org as expected.

afaik, this hasn't affected us. Is this safe to close?

I'm still getting the Warning: Potential Security Risk Ahead  message on https://medicmobile.org/ because the cert is expired.
curl https://medicmobile.org
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

AH - I see, @henokgetachew you're asking, "Since this has been expired for many months, is this safe to close as 'won't fix'"?
If you're asking me, I'd say no, this domain needs to redirect on both http and https to medic.org in perpetuity.  We can't really measure SEO loss from an IT or "no one is complaining" level. Instead we'd need to look at Google  Webmaster tools and referrals over time and and such.

@mrjones-plip, I'm reviewing this with @henokgetachew, and we agree with your suggestion. We'll move this to the SRE Queue instead of keeping it in Awaiting Triage. Thanks!


Windows get the wrong size when there are 2-screen with different DPIs involved

Environment
Windows 1909 18363.356
Surface Book 2 (screen is at 200% scale)
Connected to a Dell U3818DW monitor (at 125% scale).
The geometry of the screens in Settings is this (38" Dell monitor is above the SB2 screen):

Configuration is a custom one, where the Dell monitor is divided as follows: the left 2/3 of the screen as an area and the right 1/3 is divided into 2. The SB2 screen is not divided (entire screen is an area).
Windows build number: Microsoft Windows [Version 10.0.18363.356]
PowerToys version: 0.11.0
PowerToy module for which you are reporting the bug (if applicable): FancyZones

Steps to reproduce

Drag a window from the left (2/3 of the screen) to the bottom area in the right 1/3.
The Window gets resized, but since it temporarily occupies mostly the SB2 screen (where the DPI is higher and the scale is higher) the window then gets shrunk and needs to be moved again to the same area to resize correctly.
Move the window a big again (same target zone) to get the intended size.

Expected behavior
No need to move a second time, i.e. the window gets resized after the effect of switching to a different DPI screen (different scale in settings) takes place.
Actual behavior
The window gets resized and only then the effect of switching to a different screen scale takes place, leaving the window too small (in my setup).
Screenshots
Before moving the window:

While moving the window (when it's still mostly on the Dell screen with lower scale %):

While moving the window (it gets bigger as it occupies mostly the SB2 screen with higher scale %):

After moving the window the first time (and having it in the process grow temporarily as part of the move, then resized, then shrink due to the lower scale %):

A second move solves this, as the window then gets only resized without temporarily having a bigger scale):

@enricogior has this been fixed?  bug from 0.11 and a lot has changed

We have fixed similar problem, but better to try to reproduce this to make sure it's one of the cases we fixed.

@ivan100sic can you try to reproduce it?
Thanks.

I can reproduce it.

I have a fix

The fix is now available in 0.16 https://github.com/microsoft/PowerToys/releases


Update nl translation

As requested in #861, I've updated all translations I've found.
If the Play Store description should be translated as well, feel free to let me know.

that was quick, thank you!


Battery optimization setting

Task/Issue URL: https://app.asana.com/0/0/1205806273393589/f
Description
See asana
Steps to test this PR
Test AppTP setting

install

Current dependencies on/for this PR:

develop

PR #3756   👈

This comment was auto-generated by Graphite.


Possible typo in English version

In slice() method description of English version of the service, the text states:

The slice() method returns a shallow copy of a portion of an array into a new array object. You can specify either just the ending element (where begin will default to zero) or both the beginning and the end, comma-separated. The original array will not be modified.

But in fact, we cannot specify only ending element, but the beginning one. To prove my words I will refer to w3schools.com, admitting that the signature of the method is the following: slice(start, end), where both parameters are optional. The start parameter comes first, so we cannot specify end parameter leaving the former out.

Good catch! That was an error on my part, I'll fix it up in the next version. Thanks!


Bug 1792501: Increase revision pruner pod memory request

Originally added in https://github.com/openshift/library-go/pull/683, we are still seeing revision pruners get OOMKilled, so attempting to increase the memory request again

/lgtm

To follow up with this, I did some investigating on a longer-running cluster. In the operator I looked at (KSO), there was only 1 revision pruner pod (out of 8) that was OOMKilled. That pod was only using 40M at its peak (with request & limit set to 100M). So I'm wondering if increasing memory requests will actually fix this, or if in some cases our revision pruner is just the unlucky pod that got dropped on an otherwise full cluster.
We can give it another bump, but it isn't essential that no revision pruners ever get OOMKilled (because the next one will clean up any work from the previous one to get killed). And we don't want to request excessive memory to push out other components that are actually critical. This may just be a case where we're chasing the wrong flake

Actually, https://github.com/openshift/library-go/pull/707 seems to have more information. Missing CPU limits might have been the case here.


Continue to fetch secret value even if describe access denied

Issue #, if available:
Description of changes:
Currently, if DescribeSecret is not allowed for one of the secrets, the entire Mount request and the auto rotation would fail. But sometimes secrets might be created with only GetSecret allowed, which is still enough permission to generate a new secret. It would be great to still try fetching secret value even if describe failed because of AccessDenied.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This is intentional design: DescribeSecret does not carry the decryption performance overhead that GetSecretValue does. (see the helper here).
Grant DescribeSecret permissions to the identity fetching them in your cluster.


Set up GitHub Sponsors

Specifically, create a Stripe Connect account and link it to the bank account.

GitHub wants me to sign a W-8BEN-E, but Vezel is a sole proprietorship, so I believe a W-8BEN is the correct form. I've contacted support.

GitHub has assigned a W-8BEN instead.

All done.


Possibility to enable and disable modifiers

SciChart has possibility to enable and disable modifiers. This library would benefit this kind of possibility, because clearing and re-adding them all the time seems little bit too much.

This seems like a good move! Just add a demo of it working to the PR and I'll be happy to merge this.


Explain platform string format in README

One would get started faster with this script if the format was explained in README.md.

done, I documented the string format in the README file.
Note, I added a separate ticket #4 to add automatically documented documentation, to make it easier to keep docs like this up to date.


Previous chart not destroying (implements onChanges in angular)

Hi,
When passing data into the chart component, the data changes on the parent, reimplementing the chart, however the previous chart still persists and shows when hovering over the chart or when toggling a legend item.
I'm using angular 6/7

Scrap that, even though the component implements onChanges, I still needed to destroy the previous chart before proceeding.
if (this.chart) {             this.chart.destroy();  }

hi,
while clicking on the parent chart im getting an error like "core.js:12501 ERROR TypeError: Cannot read property 'removeHoverStyle' of null"


gexpect: make Capture() idempotent

This way, a function like ExpectWithOutput can be implemented and
substitute calls to Expect without any other changes.
See https://github.com/coreos/rkt/pull/974#issuecomment-107938286

I can also implement ExpectWithOutput in gexpect directly if that's alright.

This PR LGTM

Ping