Issue "getting" data from Python/R into SAS and vice versa

Hi,
Thanks for making such a great tool!
I manage an RStudio Server Pro installation for a variety of users on RedHat 8. We have a variety of data scientists who work in R, Python, and SAS. Some people have expressed interest in using this tool in their workflows so I'm working to get it all setup for them.
I have R versions 3.6.0 to 3.6.3 and Python versions 3.7.6 and 3.6.9. Additionally, I have SAS set-up.
On the SoS side, I have installed the following package using pip:
pip install sos sos-notebook sos-papermill sos-r sos-sas

I also have installed irkernel and feather for all versions of R AND saspy and sas_kernel for SAS. Each of the languages work fine on their own independently. R and Python are playing nice with each other. However, I cannot pass data to SAS (from any version of R or Python) nor can I get data from SAS (from any version of R or Python).
Below is what happens when I to pass data to SAS:

Below is what happens when I try to retrieve data from SAS:

I tried Googling around, but I couldn't really find anything helpful. Our set-up is pretty specific so if you need more information from me let me know.

Thank you very much for working on this. My problem is that I have just started a new job at a new institution (Baylor College of Medicine) and have no access to their computational environment (which hopefully has a SAS server) yet. I will get back to you as soon as I can.
@zhudakai : Is there a SAS server at Baylor?

No worries! Thank you for the timely response.

Just make sure that you have read https://vatlab.github.io/sos-docs/running.html#sas carefully. In particular, sos-sas requires SAS 9.4 or higher.

Ok. I looked into all the specifics around our session and environment. Posting them here for your convenience and whenever you have a chance to look at this.
Operating System: Red Hat 8
RStudio Server Pro - 1.2.5019
Jupyter Notebook - 6.0.3
Jupyter Lab - 1.2.6
Jupyter Core - 4.6.1
Python - 3.7.6 (Focal version where SoS, Jupyter, saspy etc. are installed)
saskernel - 2.2.0
saspy - 3.2.0
ipykernel - 5.1.4
SoS - 0.21.5
SoS notebook - 0.21.7
SoS Papermill - 0.1.6
SoS R - 0.19.2
SoS SAS - 0.18.0
Python - 3.6.5 (also set-up as its own kernel)
ipykernel - 4.8.2
R 3.6.3
R 3.6.2
R 3.6.1
R 3.6.0
irkernel - 1.1 (installed for each version of R, each has their own kernel set up)
All the above software is on a separate machine from our SAS install. I have configured sascfg.py in saspy correctly so the SAS kernel is working within Jupyter. Below is the information concerning SAS and the OS of that machine.
SAS - 9.4 - Maintenance 5
Operating System - Red Hat 7

Sorry guys, I've been preoccupied with my company emails. Yes we are running SAS server of some sort. We support SAS Studio as well as SAS Enterprise Guide. Both requires some back end metaserver. We even activated LDAP for authentication. Looking forward to helping in any way
On Tuesday, April 7, 2020, 01:21:11 PM CDT, jrisi256<EMAIL_ADDRESS>wrote:
Ok. I looked into all the specifics around our session and environment. Posting them here for your convenience and whenever you have a chance to look at this.
Operating System: Red Hat 8
RStudio Server Pro - 1.2.5019
Jupyter Notebook - 6.0.3
Jupyter Lab - 1.2.6
Jupyter Core - 4.6.1
Python - 3.7.6 (Focal version where SoS, Jupyter, saspy etc. are installed)
saskernel - 2.2.0
saspy - 3.2.0
ipykernel - 5.1.4
SoS - 0.21.5
SoS notebook - 0.21.7
SoS Papermill - 0.1.6
SoS R - 0.19.2
SoS SAS - 0.18.0
Python - 3.6.5 (also set-up as its own kernel)
ipykernel - 4.8.2
R 3.6.3
R 3.6.2
R 3.6.1
R 3.6.0
irkernel - 1.1 (installed for each version of R, each has their own kernel set up)
All the above software is on a separate machine from our SAS install. I have configured sascfg.py in saspy correctly so the SAS kernel is working within Jupyter. Below is the information concerning SAS and the OS of that machine.
SAS - 9.4 - Maintenance 5
Operating System - Red Hat 7
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Reading more closely on your ticket now while the SAS server is being configured.
No idea on the put data to SAS part, but to get data out, we are doing something very simple here, namely we create a temporary directory, and run the following in SAS
https://github.com/vatlab/sos-sas/blob/181810a59e50ceba17fcf7d27149ec426fae5b94/src/sos_sas/kernel.py#L83-L87
libname TEMP 'path_to_temp';
Data TEMP.dat_1;
   set CLASS;
run;

and we assume that a file named data_1.sas7bdat would be created under path_to_temp. With your version of SAS, what file would be created with this statement?

@jrisi256 There is also a possibility that the Jupyter server and SAS server do not share the same /tmp directory... If that is the case, we have to find a common directory so that the Jupyter server can read the /tmp/... sas7bdat file written by the SAS server.

dat_1.sas7bdat
We're running SAS 9.4 (TS1M6)
On Tuesday, April 14, 2020, 05:04:56 PM CDT, Bo<EMAIL_ADDRESS>wrote:
Reading more closely on your ticket now while the SAS server is being configured.
No idea on the put data to SAS part, but to get data out, we are doing something very simple here, namely we create a temporary directory, and run the following in SAS
https://github.com/vatlab/sos-sas/blob/181810a59e50ceba17fcf7d27149ec426fae5b94/src/sos_sas/kernel.py#L83-L87
libname TEMP 'path_to_temp';
Data TEMP.dat_1;
set CLASS;
run;
and we assume that a file named data_1.sas7bdat would be created under path_to_temp. With your version of SAS, what file would be created with this statement?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Since SAS 9.4 is using the same file format, so @jrisi256 must have the SAS server and Jupyter server on two file systems. Let me check if there is a good solution to that... In many cases these servers share the same $HOME etc, but not /tmp.

That is correct! The SAS server and the Jupyter server are on two different machines. Currently they don't share any directories or anything like that. We could set it up so that there was mounted directory that both of them could access. How would we configure SoS then to use this new shared directory (rather than /tmp)?

As far as I remember, saspy did not support this (sas and jupyter on different filesystems) when we developed sos-sas. The SoS -> SAS problem was caused by the use of newer versions of saspy, and the SAS -> SoS  problem was caused by the separation of file systems. I have fixed the former and is working on the latter... It should be ready by the end of this week.

Are you guys talking about something like NFS mount or Samba share? If a file system is a shared resource, any host can mount a slice, just make sure SAS and Jupyter are mounting the same slice - sorry if I'm off target here
On Wednesday, April 15, 2020, 04:06:29 PM CDT, Bo<EMAIL_ADDRESS>wrote:
As far as I remember, saspy did not support this (sas and jupyter on different filesystems) when we developed sos-sas. The SoS -> SAS problem was caused by the use of newer versions of saspy, and the SAS -> SoS problem was caused by the separation of file systems. I have fixed the former and is working on the latter... It should be ready by the end of this week.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Yes and no. Yes, we could use some directory that is shared between two services, but in general if saspy allows across file system communication, sos-sas should do so as well. There are some technical problems, in particular I am not sure if the jupyter ioPub channel can be used to pass large amount of data, but I should be able to come up with something that @jrisi256 can test.

Bo, I’m really interested in all of this. A novice question: can OpenMPI be used as an API? I know building a system around file systems is silly. Thanks. Dakai
Sent from my iPhone

On Apr 15, 2020, at 17:46, Bo<EMAIL_ADDRESS>wrote:

Yes and no. Yes, we could use some directory that is shared between two services, but in general if saspy allows across file system communication, sos-sas should do so as well. There are some technical problems, in particular I am not sure if the jupyter ioPub channel can be used to pass large amount of data, but I should be able to come up with something that @jrisi256 can test.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Short answer is no.
To ensure maximum compatibility, sos-notebook takes a wrapper approach to existing kernels. It can "inject" commands to kernels and "tap" output from kernels, but does not change subkernels in anyway, or know anything about the kernel.
In case of sos-sas, SoS Notebook currently sends a statement to the SAS kernel to save the dataset to a file,  "pick up" the output from the file system, and load the dataframe to SoS, effectively "transferring"  a dataframe from SAS to SoS. However, when SoS and SAS do not share file system, SoS failed to pick up and the bug happened.
There are two solution here. I really would like to use SAS kernel to dump the data out but to do that I will have to let SAS "print" out the dataset so that SoS can get the output and create a dataframe. The problem right now is that the SAS Kernel prints everything in HTML. This means if I want to output a large dataset, all output will be wrapped in things like 123, which is a HUGE waste of bandwidth and I do not know if it will work for reasonably large dataset.
Another option is to grab the dumped files directly from the SAS server, which could work if the connection is through SSH, but will not work if the connection is through a JAVA library (the IOM method).
I am debating which method I should use. Perhaps I can implement second method for Linux-based servers, and then add the first method later for windows-based servers. It would be slower but windows users can already tolerate windoze....

sas can output in clear text format such as a .lst file, but it's still formatted. it has a lot less tags, easier to be cleaned up. it can also dump into PDF format - suppose you have an API? if you insist, sas has a driver to write out .csv. there are a few other format really - not all are file system dependent. i personally would use a put/file combo so I can get a data file for next stop - what if you write to stdout?
in this blog: https://communities.sas.com/t5/SAS-Programming/How-to-redirect-put-statements-to-the-result-instead-of-the-log/td-p/513618
sas -stdio <(echo 'data null; file stdout; put "hello, foobar"; run;') 2>/dev/null
On Wednesday, April 15, 2020, 07:46:53 PM CDT, Bo<EMAIL_ADDRESS>wrote:

Short answer is no.
To ensure maximum compatibility, sos-notebook takes a wrapper approach to existing kernels. It can "inject" commands to kernels and "tap" output from kernels, but does not change subkernels in anyway, or know anything about the kernel.
In case of sos-sas, SoS Notebook currently sends a statement to the SAS kernel to save the dataset to a file, "pick up" the output from the file system, and load the dataframe to SoS, effectively "transferring" a dataframe from SAS to SoS. However, when SoS and SAS do not share file system, SoS failed to pick up and the bug happened.
There are two solution here. I really would like to use SAS kernel to dump the data out but to do that I will have to let SAS "print" out the dataset so that SoS can get the output and create a dataframe. The problem right now is that the SAS Kernel prints everything in HTML. This means if I want to output a large dataset, all output will be wrapped in things like 123, which is a HUGE waste of bandwidth and I do not know if it will work for reasonably large dataset.
Another option is to grab the dumped files directly from the SAS server, which could work if the connection is through SSH, but will not work if the connection is through a JAVA library (the IOM method).
I am debating which method I should use. Perhaps I can implement second method for Linux-based servers, and then add the first method later for windows-based servers. It would be slower but windows users can already tolerate windoze....
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

No, writing file is not the problem here. The python end can read sas7bdat, csv or whatever SAS saves, but it need to access the file that in this case on the remote host.
After playing around a bit, I found that if I run
%put CLASS2
DATA CLASS2;
   INPUT NAME $ 1-8 SEX $ 10 AGE 12-13 HEIGHT 15-16 WEIGHT 18-22;
CARDS;
JOHN.    M 12 59 99.5
PETER    F 15 59 9.5
PROC PRINT;
RUN;

in SAS, a file called class.sas7bdat would appear in a directory that is under the work directory on the SAS server.
%put %sysfunc(getoption(work));

I can retrieve the class.sas7bdat file with scp now, but could you let me know if this is always the case? That is to say, for whatever dataset in SAS, they will be under this work dir?
I think an obvious exception is for user to do
libname NAME 'path'

but how SAS creates dataset in NAME? Sorry, I have not used SAS in the past 15 years and forgot all about it.

With the latest patch, remote SAS server works if it is linux-based that is connected through ssh.

But more tests are certainly needed.
@jrisi256 You are welcome to build sos-sas from GitHub and test if it works in your environment, but only if you are comfortable with building python packages from source and testing unstable source code. I will test the module in the next few days and will release the next version of sos-sas afterwards.

libname defines where a permanent dataset should be stored, otherwise, all temporary datasets should be destroyed when SAS ends, but if one kills SAS forcibly then there would be no chance for garbage collection to occur - this is a sysadmin’s headache. Anyway, the temporary directory or working directory can be defined post installation, in a file sasv9.conf. This can be customized with sasv9_local.conf. A user can also define this in his home directory to supersede my system settings. I frequently would change default from /tmp to /scratch/SAS, given /scratch always seems to be much bigger. Other things I change is the memsize and swapsize, again, I have to have these especially large
Sent from my iPhone

On Apr 15, 2020, at 22:23, Bo<EMAIL_ADDRESS>wrote:

No, writing file is not the problem here. The python end can read sas7bdat, csv or whatever SAS saves, but it need to access the file that in this case on the remote host.
After playing around a bit, I found that if I run
%put CLASS2
DATA CLASS2;
INPUT NAME $ 1-8 SEX $ 10 AGE 12-13 HEIGHT 15-16 WEIGHT 18-22;
CARDS;
JOHN.    M 12 59 99.5
PETER    F 15 59 9.5
PROC PRINT;
RUN;
in SAS, a file called class.sas7bdat would appear in a directory that is under the work directory on the SAS server.
%put %sysfunc(getoption(work));
I can retrieve the class.sas7bdat file with scp now, but could you let me know if this is always the case? That is to say, for whatever dataset in SAS, they will be under this work dir?
I think an obvious exception is for user to do
libname NAME 'path'
but how SAS creates dataset in NAME? Sorry, I have not used SAS in the past 15 years and forgot all about it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Regarding SAS working directory, I wonder if there’s an environment variable you can tap into? We can take a look in our RedHat 7 host
Sent from my iPhone

On Apr 15, 2020, at 22:45, Bo<EMAIL_ADDRESS>wrote:

With the latest patch, remote SAS server works if it is linux-based that is connected through ssh.
But more tests are certainly needed.
@jrisi256 You are welcome to build sos-sas from GitHub and test if it works in your environment, but only if you are comfortable with building python packages from source and testing unstable source code. I will test the module in the next few days and will release the next version of sos-sas afterwards.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Once in SAS, variable WORK is the location of temporary files of all kinds. Hence
data one;
Is the same as
data WORK.one;
WORK must be a reserved libname then
Sent from my iPhone

On Apr 15, 2020, at 22:45, Bo<EMAIL_ADDRESS>wrote:

With the latest patch, remote SAS server works if it is linux-based that is connected through ssh.
But more tests are certainly needed.
@jrisi256 You are welcome to build sos-sas from GitHub and test if it works in your environment, but only if you are comfortable with building python packages from source and testing unstable source code. I will test the module in the next few days and will release the next version of sos-sas afterwards.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

So if I understand you correctly,
data WHATEVER

is the same as
data WORK.WHATEVER

which is under a directory that can be retrieved (however the system is set up) with the following command.
%put %sysfunc(getoption(work));

This is the case that I have already handled.
Now, is there any command to get
Data mylib.data

where mylib is defined somewhere with
libname mylib path

What I want to do is, when user tries to do
%get mylib.data

from a SoS kernel, sos-sas should try to get the path of mylib, and then scp the path_to_mylib.data.sas7bdat to the local file system to read into SoS.

Define and use libname will result permanent datasets to be read/written to a custom location - key word is 'permanent'. WORK on the other hand should be cleared up if SAS can exist normally. In our case, if you go to /scratch/sastemp/, you'd see SAS garbage people dumped when their jobs were terminated abnormally
For your purpose, tapping into -WORK environmental variable inside SAS is the best bet. If a libname is defined and you can tap into it then that should cover more datasets. Do you give people an option here?
On Thursday, April 16, 2020, 08:33:11 AM CDT, Bo<EMAIL_ADDRESS>wrote:
So if I understand you correctly,
data WHATEVER
is the same as
data WORK.WHATEVER
which is under a directory that can be retrieved (however the system is set up) with the following command.
%put %sysfunc(getoption(work));
This is the case that I have already handled.
Now, is there any command to get
Data mylib.data
where mylib is defined somewhere with
libname mylib path
What I want to do is, when user tries to do
%get mylib.data
from a SoS kernel, sos-sas should try to get the path of mylib, and then scp the path_to_mylib.data.sas7bdat to the local file system to read into SoS.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Yes and no again because I do not know SAS well.
For example, if you have a dataset under a customized libname,
libname mylib "my path"
Data mylib.DATA ...

Can DATA be accessed without mylib?
Basically I am trying to decided if SoS should be more clever and do
%get DATA --from SAS

or users have to prefix with libname
%get mylib.DATA --from SAS

Note that in case of WORK, we ignored WORK and used dataset name directly.

I never used Sos, SoS looks so flexible in sharing objects among platforms, I agree with Dakai that it is necessary to assign libname.
My basic idea is that the object (sas, R, python) created should be tracked with its full address, maybe work (SAS) scenario is very hard to track, since it depends on the initial assignment when sas was installed.

sample codes above seem to work on the current working space, another question is for module sos-sas engine, if it does not depend on current working environment, how does it get input feed and generate sas dataset?

@finkbine Let us do this one by one. If you create a dataset under another directory with libname mylib "path", can it be assessed without libname?

in sas, a prefix (libname) must be used to reference a dataset, basically, libname my lib "path" means path already exists, and if you want to use datasets within path, you have to write path.***

and the only exception is "work"...
Second question, say you have create a mylib, what is the command for me to get the directory of mylib?

in sas, as far as I know, libname was created by user, so user should know what he is doing.
in a sas session, any number of instances (libnames) could be initiated

in SoS, is there any mechanism to track what users types in sas code, for example, searching keyword libname

No.  I am using
%put %sysfunc(getoption(work));

to get the directory of WORK. I actually saw something online that says
%put %sysfunc(pathname(mylib));

can be used to get path of mylib. Could you check if this is true?

I see, I never used this option since it is rare to me.
Yes, this command can give absolute path for libname, and retrieve datasets.

Great. Then could you please adapt the "CLASS" example to an example in a customized libname so that I can test it? The workflow would be something like
libname mylib path
create CLASS inside mylib

Then from SoS
%get mylib.CLASS --from SAS

should grab mylib.CLASS and create a dataframe. I have not decided what name the dataframe should be called. It could be just CLASS, or a namespace with CLASS inside so the dataframe would be called mylib.CLASS.

did you implement these engines with default python, R , sas functions? sometimes, format problem could be a concern.

Maybe Dakai can do it? Currently, I do not know how to use it.

Thanks @finkbine . That is ok, I think I can figure out.

Hi @BoPeng thanks so much for all the hard work you're doing in trying to resolve this issue. I am an admin for a group of users so as a policy I don't download/install unstable development releases. Since this isn't an urgent issue for us, I am going to hold off until you officially release the fix.
In the mean time, if you need me to test something or if there is anything else I can to help, let me know. Sadly I don't know SAS at all either, haha. I just set it up for people to use.


Feature: Save smart contract info in DB

Description

closes: #70

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Wrote unit and integration
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

@crussell-figure another pr for when you get back from PTO. (:  I looked around but was struggling to find anything with smart contracts in explorer-service.  Where would we access that in here?  Also, I tagged a few places where it looked like we interacted with a data base or data source, but they didn't look like they were used and so I was curious what to do with those?  Thanks!


Update to release 0.5

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

ℹ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.

For the test.requires section of the recipe, you should usually use python {{ python_min }} for the python entry.
If the package requires a newer Python version than the currently supported minimum version on conda-forge, you can override the python_min variable by adding a Jinja2 set statement at the top of your recipe (or using an equivalent context variable for v1 recipes).

ℹ PyPI default URL is now pypi.org, and not pypi.io. You may want to update the default source url.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12133572156. Examine the logs at this URL for more detail.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

@duncanmmacleod I just wanted to make sure you saw this. I just added SLY 0.5, which was released in 2022. I also made small changes to make the conda linter happy. Overall I think this shouldn't be a large review for you.


⚠ Spryr has degraded performance

In af0193a, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 6222 ms

Resolved: Spryr performance has improved in 8659cb9 after 11 minutes.


Update index.ts

1, All error responses now return JSON.
2, Using express-validator to validate and sanitize critical fields. 3, Simplified filtering logic in GET /jobs.
4, Added basic rate limiting middleware.
5, Used process.env.PORT.

Hello @henalolp , there seems to be a conflict. Could you please resolve it so I can merge the PR? Thanks!


Chem: DrugBank structure query integration

Let's integrate our sketcher with the drug names, so that when you enter db:aspirin aspirin molecule would appear.
Let's implement is as an exported function in the DrugBank package using the following approach:
https://community.datagrok.ai/t/cheminformatics-updates/457/14?u=skalkin

Good job!


hystrix bug The service response time must be greater than 3000 to trigger a circuit breaker

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
During the test, it is found that the service response time must be greater than 3000 before the circuit breaker is triggered. Otherwise, even if all requests fail, the circuit breaker will not be triggered
Expected Behavior
No response
Steps To Reproduce
No response
Environment
ShenYu version(s):2.6.0

Debug logs
No response
Anything else?
No response

pls refer to shenyu plugin document for hystrix

pls refer to shenyu plugin document for hystrix

I read the documentation, the test case is exactly the same as the example, the parameters are also exactly the same, the test found that sleep must be added to the test case, so that the business response time exceeds 3000 will trigger the hystrix blowout error

it is because in 2.6.0 hystrix plugin set timeout = 3000ms as a constant. and you also cannot change this value by using BasicConifg -> PluginHandle,  the plugin handle you added in hystrix plugin doesn't work! it seems that hystrix's plugin handle are
all const (https://github.com/apache/shenyu-dashboard/blob/2.6.0/src/routes/Plugin/PluginRuleHandle/HystrixRuleHandle.js).
if you want to modify the timeout param, you should change the source js ,rebuild and replace the js in shenyu-admin/src/main/resources/static/  (https://github.com/apache/shenyu-dashboard)

it is because in 2.6.0 hystrix plugin set timeout = 3000ms as a constant. and you also cannot change this value by using BasicConifg -> PluginHandle, the plugin handle you added in hystrix plugin doesn't work! it seems that hystrix's plugin handle are all const (https://github.com/apache/shenyu-dashboard/blob/2.6.0/src/routes/Plugin/PluginRuleHandle/HystrixRuleHandle.js). if you want to modify the timeout param, you should change the source js ,rebuild and replace the js in shenyu-admin/src/main/resources/static/ (https://github.com/apache/shenyu-dashboard)

i found shenyu-dashbord V2.6.1 js(https://github.com/apache/shenyu-dashboard/blob/2.6.1/src/routes/Plugin/PluginRuleHandle/HystrixRuleHandle.js) had fix this timeout param missing problem. so i replace the shenyu-admin/src/main/resources/static/ index*.js by V2.6.1(https://github.com/apache/shenyu/blob/v2.6.1/shenyu-admin/src/main/resources/static/index.7b7196e2.js).
timeout can be modified!

ok ,thanks


Support for thermostats

Another device I´d like to see is the room thermostat.
This again is a wireless combination of a room temperature sensor and an actuator which acts as a simple switch to open or close a connected valve.
Configuration is the following, please tell me if more config examples are necessary.

Perhaps I get more knowledge when I implemented my ones, which I can also test and them we can look at these.

I will try different scenarios and report my findings later.

My findings so far:
(in my case the actuator regulates a valve for my underfloor heating with water-carrying pipes)
AL_INFO_VALUE_HEATING and AL_ACTUATING_VALUE_HEATING always hold identical values.
I read the values when the actuator was set to 'ON', 'OFF' and 'ECO' and with different temperature settings. It seems that the value can alternate between 0 and 100. So I would guess, this is a percentage of how far the heating valve opens. This would mean it´s not a simple on/off switch even if I can hear a relais clicking.
I found various values between 0 and 100 depending on the set temperature and how far the set temperature is from the actual temperature.
So I´d say this is more of a technical info and nothing we need displayed.

Hey @nrenner73
I have also - at least - the valve position. This is completely controlled by F@H based on the current temperature and the to-be temperature. It can be e.g. exposed later to HA as an additional attribute. As stated, I will try to get my wired RTCs implemented and I want to get - at a minimum - the same info as in the integragtion from jheling
hvac_modes: heat_cool, off
min_temp: 7
max_temp: 35
target_temp_step: 0.5
preset_modes: none, eco
current_temperature: 21
temperature: 19
preset_mode: null
valve: 0
temperature_correction: 0
icon: mdi:thermometer-lines
friendly_name: Gästezimmer Temperatur
supported_features: 401

I just need to find the time between work and family 😄

No worries!
Just tell me, if you need any additional tests or anything I can provide. I'm happy if I am of any help 😀

see #80

The PR #80 implements the Room Temperature Controller. Do we think we need to implement FID_HEATING_ACTUATOR as a switching device as well?

I can only talk about my setup:
Each of my FID_HEATING_ACTUATOR devices (this is the physical valve-device) is linked to one of my FID_ROOM_TEMPERATURE_CONTROLLER_MASTER_WITHOUT_FAN devices in F@H. The RTC-devices are in charge of controlling the valve of a Heating-device. So I would be a bit feared, to directly modify the datapoints of a Heating-device.
On the other side:
What someone is doing with this library is out of our control. It only provides the tooling 😃
And implementing the HeatingActuator device can be easily done.
Just state, if I should do it or not.

We could add this one with a default disabled state and if someone needs it they can manually enable it. https://developers.home-assistant.io/docs/entity_registry_disabled_by/#integrations-setting-default-value-of-disabled_by-for-new-entity-registry-entries
That would ensure someone doesn't just make a change and potentially mess up their heating, but allow for them to enable the entity if they really need it.
Whether it's worth the effort when this is really a sub-function of the RTC controller, I really don't think so. @nrenner73, do you see yourself actually needing this actuator in Home Assistant? Or will just having the Thermostat itself suffice?

From my perspective, the thermostat itself is all I need. I just want to read/set the temperature and let the thermostat do its magic.
I would not want to tinker with the valve itself.

Sounds good, we can split this off into a new issue to implement the new device class and close this one with #80

Created new issue https://github.com/kingsleyadam/local-abbfreeathome/issues/87 to track the creation of HeatingActuator.


Backwards compatible with Python 2.7

Very minor changes that lets the code run on legacy Python 2.7

Thanks! I've merged and made a couple of minor fixes. I hope it works in Python 2. I can't check myself, Python 2 is unsupported in my Linux box.

thanks, i've confirmed that the latest version works on my python2 installation.


<EMAIL_ADDRESS>Hash check failed

Hash check failed!
App:         extras/retroarch
URL:         https://buildbot.libretro.com/stable/1.9.4/windows/x86_64/RetroArch.7z
First bytes: 55 122 188 175 39 28 0 4
Expected:    1a2483375167097522ded7308162496b0b6b0d109ecdee87265aa5eaedc43a52
Actual:      fc48ce12426f6b731479cd9b51cb6e83594f70b7a55adb448915f5e52a629abc

Not sure what's going one here, but I downloaded RetroArch.7z from the manifest URL manually on two machines (one on Cox home internet, another on Linode) and they both hash to  fc48ce12426f6b731479cd9b51cb6e83594f70b7a55adb448915f5e52a629abc according to BusyBox's sha256sum and PowerShell's Get-FileHash.

...and now it's working. Perhaps a CDN issue.


add user permission for accessing DLX

(B)  The authorization server authenticates the resource owner (via
the user-agent) and establishes whether the resource owner
grants or denies the client's access request. (http://tools.ietf.org/html/rfc6749#section-4.2)

Make sure user has to log in the first time a client auth request is made. Display a message on the login page asking them whether they give permission for the specified app to access their DLX data, along with the name and description of the app. If they click yes, check whether they're already logged in. If they are, continue with the grant flow. If not, display the login options.

User objects will probably need to have an array of authorized apps. When a user is logged in with an app, check to see whether that app ID exists in the authorized apps array, and if not, request permission from the user before redirecting.

this will need to be handled by dlx-org: https://github.com/digitallinguistics/dlx-org/issues/36


Explorer in Voyager

Many users are looking to have a read only block explorer to see the state of the network and verify txs.
Proposed structure:
New page Network: Holds information about the current network (similar to first page in old explorer). Can maybe be enriched with data from https://hubble.figment.network/chains/gaia-9002.

New page Blocks: Holds information about blocks. Similar to our old block explorer in Voyager with blocks flying in. You can search for a block and open it in a new page (able to link to it).
New page Block(no link): Holds block meta info (see below). Holds link to transactions page (pre-filtered for block).

(old) Page Transactions: Add ability to filter for: hash, block, address. Ability to set those as an URL-query so we can link to it.

https://github.com/cosmos/voyager/issues/1719
https://github.com/cosmos/voyager/issues/1701
https://github.com/cosmos/voyager/issues/965

How does the old Transactions page relate to the new one ?

I was initially thinking on having a link on the sidebar that says Blockchain and within that we can have a Network and Blocks tabs (maybe Transactions depending on the above question)

New page: Network 👍
New page: Blocks 👍
New page: Block 👍

New page: Network 👍
New page: Blocks 👍
New page: Block 👍

I guess that means 2 sidebar links (one for network and one for blocks ?). I'm down if everyone agrees to have that

2 sidebar links

yeah, inside of the network connectivity component (is my proposal).

network connectivity component

I would also link from there. I am not sure that it is clear, that this component would link to anything. what do you think about that?

I would also link from there.

sure, let's do both.


STYLE: No longer set hooks-max-size for nifti2_io.c, doxygen.config.in

nifti2_io.c was removed by:

pull request https://github.com/InsightSoftwareConsortium/ITK/pull/2630 commit 68221fdd30fb9ba89219a4bd5a47870b2d1cf7e6
"ENH: Prepare for update to NIFTILIB3.0.1", 9 July 2021

The two doxygen.config.in files were removed by:

pull request https://github.com/InsightSoftwareConsortium/ITK/pull/3311 commit a96d03fb5f4a4bb470516aa623dbc9b4aaaa6e4f
"COMP: Use modern doxygen_add_docs command ITK_WRAP_DOCS", 11 March 2022
pull request https://github.com/InsightSoftwareConsortium/ITK/pull/4500 commit 0c5c63890b2a417708b2fbcc4ebdb4e98247ef9f
"STYLE: Remove doxygen.config.in (superseded by DoxygenConfig.cmake)", 12 March 2024

Thanks for your approval @dzenanz Now I'm wondering, is there any reason to to a complete CI build when only just the  ".gitattributes" file is touched? Or should it be added to the "exclude" lists in Testing/ContinuousIntegration/*.yml?
This file is specifically for ghostflow-check-master, right?


Confusing error message from spirv-val

The spirv gist can be found here but I also created a graph from the spv file which I think is easier to read.

I get the following error message:

error: line 150: block  80 branches to the selection construct, but not to the selection header  83
%bb0_1 = OpLabel

Is the error message actually correct? I probably violated some rule but I don't think that %80 is the problem.
Note: I generated the spv file myself.

Sorry, I posted it in the wrong repository.


Support for Arabic Diacritics

The arabic support works great in this library, but is there any support for the diacritics (vowels) of the arabic language? Here's some more info on it:
https://en.wikipedia.org/wiki/Arabic_diacritics

annyang wraps around the speech recognition engine provided by the browser. It doesn't include it's own speech recognition and so we can't really change it, add support for new languages, or language features.
I suggest you try the browser's support forum.
Good luck 👍


"schema_version"

There is a mixture of references in the code to schema or schema_version in the code to mean the same thing.
Can we standardize this to schema? Particularly now that schema themselves now have versions, and this is just referring to their name.

Yes, I agree.  schema_version is old - and confusing - terminology.  Should just be schema.


Move paths code to shared

Change
Move the filesystem and path related code to the shared lib project as a foundation for a future change.
Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run


Use rapidsai CODE_OF_CONDUCT.md

This repo's CODE_OF_CONDUCT.md is superseded by an organization-wide policy: https://github.com/rapidsai/.github/pull/3

@gpucibot merge


Refresh while serving

This is an enhancement, so that MapProxy can be configured to refresh tiles from source while serving.
The expiration period of a given cache can be configured as in the seeding configuration:

absoute time
relative time
file reference time

Hello @ramunasd, thanks for your thumbs up on the PR.
I have written to the community on the mailing list in order to get some feedback on how to integrate the added features of PR #515 and #518 into the main mapproxy branch, however I got no response.
What's the procedure and who should review the modifications before merging them ?
Would it be possible to be involved in the 2021 release ?

Correct me if I'm wrong but this does not refresh tiles, just serves old ones on SourceError?

Up to now, mapproxy-serve does neither of these:

If the tile is found in cache, it is served, whatever its age.
If the tile is not found in cache, it is requested from source.

if the source is available, it is served and cached:
if the source is not available, either of following happens:

if an error handler applies (on_error), an error tile is generated (and optionally cached)
if there is no error handler, you get an http error

So the server has currently no notion of stale tiles.
What is new in this PR:

If tile is found in cache, but expired according to the new parameter refresh_before:

a new tile is requested.

if source available: new tile is served and cache refreshed
if source unavailable: generation of error tile or http error as above

I am currently working on the error behaviour, to be able to optionally serve a stale tile, if tile is expired and source is unavailable, see https://github.com/camptocamp/mapproxy/pull/1

Just one thought came to my head :) Can we set response headers to something 'max-age:0,must-revalidate' if we are serving stale tile? @mki-c2c

Well, it sounded like a good idea at first, but the question has been twisting my mind for a while now.
I think the service provider (mapproxy operator) chooses to authorize use of the stale tile for some time as it authorizes use of the valid tile for some time. The expires_hours will be chosen accordingly.
Maybe it is useful to configure a different value for expires_hours in the case of stale tiles.
I am somehow afraid of forcing no-cache for stale tiles, since the server will then receive a big amount of requests:
it breaks the browser caching strategies, since the browser has to re-request the stale tile every time.
Tricky questions, I have started a reply 3 times and each time I realized a new subtle detail.

Hello @weskamm,
I have been working on some additional features for mapproxy, and I would like to discuss the possibilities to merge the features into an upcoming release.
I have not managed to get any feedback on the release schedule via the mailing list or the discussion on pull requests. Since you have just prepared two bugfix releases, I wonder if you have any further information about the roadmap for a 2021 feature release and how to participate in the next release.

Hi @mki-c2c,
i already noticed your PRs.
There currently is no roadmap for upcoming releases, they happen when time and features allows or urgency is high.
In other words: I cannot tell you if or when your PRs will get merged and released, but as far as i can see, most of them are looking good and have good chances, when tested and reviewed, to be included in the next release...

@weskamm I will add this to next milestone 1.14
Let's organize things better here :)

took into account your remark on the comment, thanks.


Primary key assigned to a wrong column

Describe the bug
reform-db init assigns primary key to a wrong column
To Reproduce

Given database schemaCREATE TABLE `builds` (
  `i` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `id` varchar(32) NOT NULL,
  `name` text NOT NULL,
  PRIMARY KEY (`i`),
  UNIQUE KEY `id` (`id`)
);

Run reform-db -db-driver MySQL -db-source ... init /package/path
Resulting model:type Builds struct {
	I    int64  `reform:"i"`
	ID   string `reform:"id,pk"`
	Name string `reform:"name"`
}

Expected behavior
Expected model is:
type Builds struct {
	I    int64  `reform:"i,pk"`
	ID   string `reform:"id"`
	Name string `reform:"name"`
}

Additional context
I don't know what happened here. I am new to go so I actually don't want to dig deeper in the source code but I assume primary key recognition relies on a column name being id rather than actual PRIMARY KEY constraint.

No, it should rely on PRIMARY KEY. Sounds like a bug.

It will be fixed tomorrow in 1.4.1


Not throwing warnings for using md5

What happened:
In this poc a DTO is using md5 to hash a password.
const md5 = require('md5')

class UserRequest {

    _name
    _login
    _password

    constructor(name, login, password) {
        this._name = name
        this._login = login
        this._password = md5(password)
    }

    model() {
        return {
            name: this._name,
            login: this._login,
            password: this._password
        }
    }
}

module.exports = UserRequest

After running horusec start from the root of the project, a warning about the use of depreciated algorithm for hashing should be shown.
What you expected to happen:
A warning about the use of unsecure hashing algorithm should be presented in Horusec Log
How to reproduce it (as minimally and precisely as possible):

Use https://www.npmjs.com/package/md5 in code
run horusec start

Anything else we need to know?:
Environment:

Horusec version (use horusec version): v2.5.0
Operating System: Ubuntu 20.04.3 LTS
Network plugin / Tool and version (if this is a network-related / tool bug):
Others:

Hello @guilhermepaulozup

Hello @guilhermepaulozup

Hello @guilhermepaulozup
Thanks for the feedback, we will look to improve our HS-JAVASCRIPT-4 rule.

Hello @guilhermepaulozup
The rule was to improve and will be available in the next release.

Thank you Lucas!
I'll be sure to checkout then.


C3 version fix

Adds collection number new field
The destination filepath follows a new format ex: ga_ls_wo_3/1-6-0/090/081/1998/07/30/ga_ls_wo_3_090081_1998-07-30_interim.odc-metadata.yaml

Thanks for looking into this Nehem.
Is this the new standard it's implementing? https://docs.google.com/spreadsheets/d/10CawHQvvwiyPojBRezPsYIQkLVtMtJL4xbpqrxJIpcc/edit#gid=1327870591
As mentioned on Slack, we probably need to maintain backwards compatibility with the older folder structure, as many product are already produced and stored in the older structure. The Travis tests will fail as they're testing for this consistency.
We will probably need to make this a new option under the DatasetAssembler(naming_conventions="...", ...) property. Currently users specify naming_conventions="dea", so this could be "dea-2020" or something.

Coverage decreased (-0.7%) to 86.221% when pulling ce65b5c83d319df33b2028e9ab4e651362c48980 on C3_version_fix into fab96dfc51e2755e46160fd5ce3a2e8a44d00a90 on eodatasets3.

Just to echo previous discussion today: above collection versioning was approved.
From Slack discussion, just need to fix: https://github.com/GeoscienceAustralia/eo-datasets/pull/97#discussion_r501385221
At this risk of delaying further (but it’s a quick fix!), I noticed the collection_numberfield is sometimes a string, sometimes an int (in the doc strings). I assume we want it specifically to be an int?
It could be added here to always be auto-converted to an int: https://github.com/GeoscienceAustralia/eo-datasets/blob/334fed42fb91904f039bf71e08dd7e7bffa6979f/eodatasets3/properties.py#L227


LegacyDECT: Add the functionality to delete single PPs

Add the functionality to delete single PPs at legacy FP side. The PP should be determined with the handset id.

When a DECT device is registered, there is no possibility to deregister just this one device. You just need to deregister all devices.
A function for deregister only one device is missing.
Detected in 1.0.3. DSPG/Dialog.

After deregistering a handset, it's not possible to setup a call.
42_client.txt
42_server.txt

On DSPG, after deregistering a handset, it's not possible to setup a call.
42_client.txt
Uploading 42_server.txt…

Please remove label 'fixed'

We can reproduce the issue and we will fix it with the version 1.0.7.


[ART-2287] Create advisory-drop command

Advisories can only be dropped by their creators, or by program
management. This change implements the advisory-drop command, which
allows a bot user that creates advisories, to also drop them.

Have been playing on staging errata: https://errata.stage.engineering.redhat.com/advisory/61150

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@9287447). Click here to learn what that means.
The diff coverage is 5.00%.

@@            Coverage Diff            @@
##             master     #162   +/-   ##
=========================================
  Coverage          ?   24.75%
=========================================
  Files             ?       39
  Lines             ?     3203
  Branches          ?      615
=========================================
  Hits              ?      793
  Misses            ?     2385
  Partials          ?       25

Impacted Files
Coverage Δ

elliottlib/cli/__main__.py
0.00% <0.00%> (ø)

elliottlib/cli/advisory_drop_cli.py
0.00% <0.00%> (ø)

elliottlib/constants.py
100.00% <100.00%> (ø)

elliottlib/pushd.py
100.00% <0.00%> (ø)

elliottlib/cli/change_state_cli.py
0.00% <0.00%> (ø)

elliottlib/runtime.py
18.39% <0.00%> (ø)

elliottlib/tarball_sources.py
32.96% <0.00%> (ø)

elliottlib/cli/add_metadata_cli.py
0.00% <0.00%> (ø)

elliottlib/metadata.py
56.94% <0.00%> (ø)

elliottlib/cli/puddle_advisories_cli.py
0.00% <0.00%> (ø)

... and 32 more

Continue to review full report at Codecov.

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


setup: pull request labeler

Helps:
Automatically label new pull requests based on the paths of files being changed.
Refer:
https://github.com/marketplace/actions/labeler

pull request above does'nt solve the issue.

@Utkarsh1504 thank you!


fix(orchestrator): improve workflow instances page table size

FLPATH-887
Currently the default page size is 5, when often the workflow runs length are more than 5 and there's a lot of space left on the page that is wasted.
To improve this, it will show a table with 20 rows and pagination if there are more than 20 rows, otherwise it'll show a table without pagination.
This behavior matches the backstage catalog tables.
In order to reuse the CatalogPage and avoid duplicating this code, this would be possible when there will be better integration of backstage with the orchestrator and the workflow instances will be backstage entities.
Short list:

Long list:
Screencast from 25-01-24 13:53:58.webm

Hey @batzionb, please revert the changes outside the orchestrator package.

This PR can be closed in favour of https://github.com/janus-idp/backstage-plugins/pull/1127


/chat/completion returns invalid json

im trying to use auto gpt with rwkv via rwkv-runner but it keeps failing because the json /chat/completion returns is not the json auto gpt expects

I think this problem is from the model itself. I checked the logs and this is the response provided by RWKV. In complex situations, accurate JSON format cannot be generated at present. Although RWKV Runner provides a compatible API, accurate generation of the specified JSON format is still difficult for RWKV's chat mode, and you may have to use instruction mode or finetune the model.


Routing and method calling for ETH staking

What would you like to share?
If the user selects $ETH on the currency switcher, change the routing of the Join pages are as follows:

/join/[tier]?input=ETH

Also, the staking method will be changed to a method that supports ETH.
- Agent.positionsCreate
+ Agent.positionsCreateWithEth

Additional information
No response
Would you like to work on this issue?

[ ] Yes, I want to work on this issue!

Code of Conduct

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

this issue also related to #11

#16 fixes this


Better document default imagePullPolicy behaviour

The imagePullPolicy field is set automatically based on the image tag
if it's initially omitted, but it is not updated if the image tag later
changes. This can lead to confusing
behaviour.
This change attempts to warn users of this potential pitfall.
This change replaces #25737 and #25736.
Staged at:
https://deploy-preview-26661--kubernetes-io-master-staging.netlify.app/docs/concepts/containers/images/#updating-images
https://deploy-preview-26661--kubernetes-io-master-staging.netlify.app/docs/concepts/configuration/overview/#container-images

/assign @sftim
/assign @kbhawkey
Sorry for the long delays on this!

👋 @adrianludwin .
The changes are clear. Thanks for contributing!
/lgtm

Thanks @kbhawkey. Sorry, can you please re-LGTM? I noticed and fixed a typo I had introduced ("IfNotPreset" -> "IfNotPresent").

/approve

Hi @sftim and/or @kbhawkey , can you please give this an lgtm as well? Otherwise, please let me know who's review I should try to get. Thanks!


fixed typo in getting started

fixed a typo
we see can can optionally to we see it can optionally

Awesome! Thank you!


Speedup by caching compilation depends on OS

I am trying to figure out how much caching compilation helps speedup CI for a typical SciML use case:
https://github.com/ArnoStrouwen/CITester.jl/blob/master/test/runtests.jl
On Windows I see a massive speedup, because everything was already nicely precompiled:
https://github.com/ArnoStrouwen/CITester.jl/actions/runs/7399237038/job/20130173669#step:6:306
However, on Linux I only got a moderate speedup, and on Mac none at all.
On those operating systems, testing needed to precompile everything again:
https://github.com/ArnoStrouwen/CITester.jl/actions/runs/7399237038/job/20130172872#step:6:304
Is this difference between operating systems to be expected?
Can I configure anything such that the same speedup as windows is achieved?

So Julia v1.10.0 might actually be a regression in performance of this caching..
The issue is that caches depend on the mtime of stdlib caches, which are installed by the setup-julia action. i.e. newer than the cached depot, so triggers precompilation
1.9: most stdlibs are in the sysimage, so not many deps are affected by this
1.10: some stdlibs are removed so more deps are affected
1.11: moved away from mtime cache sensitivity to content, so not an issue. happily avoids re-precompilation
To improve the situation on 1.10 I think we need to revive this for the release-1.10 branch https://github.com/JuliaLang/julia/pull/50919 and get it into 1.10.1
As for why it's different for different platforms.. I guess it's a filesystem/tar behavior difference.

Turns out the julia archive mtimes are maintained on windows via julia-actions/setup-julia which explains why the precompilation caching is effective. https://github.com/julia-actions/setup-julia/pull/200
And setup-julia will soon have an mtime fix which will solve this for all platforms https://github.com/julia-actions/setup-julia/pull/196

Should be fixed in https://github.com/julia-actions/setup-julia/releases/tag/v1.9.5


multipart parser files not in req.swagger.params

multipart parser like connect-multiparty or multer store the data for uploaded files in the req.files object, which is not included in req.swagger.params. They simply will be ignored.
As a workaround I extended the req.body with req.files in a middleware.
app.use(function(req, res, next) {
   _.assign(req.body, req.files);
  next();
});

I'm not sure if this should be added into swag-metadata.js or if a workaround like mine is the appropriate solution, since responding to every request to support a specific middleware is no solution. But I struggled a few hours with this, so at least it's a note to everyone having this problem.

Got a specific library/middleware that you'd like to see me use by default?  I'd like to knock this out but before I get started, I'd love to hear what you'd like to see me use.  Of course, the plan is to have a default implementation like I do with body/query string parsing and then allow you to use whatever you want as long as a particular req.??? is available when the swagger-metadata middleware is ran.

multer is more popular since it's done by expressjs itself. I think this would be the best approach.

That's what I'll use then.  Thanks a lot.

Agree with using whatever people would be most familiar with.Sent using CloudMagicOn Tue, Feb 10, 2015 at 8:49 AM,  Jeremy Whitlock<EMAIL_ADDRESS>wrote:            That's what I'll use then.  Thanks a lot.
—Reply to this email directly or view it on GitHub.

@timomeh Since you've used multer before, for the built-in (provided) multer, do you have any suggestions on multer configuration?  I'll likely provide options for configuring this, and I should do the same for bodyParser as well, but a reasonable default is what I need.  Also, I'd love to avoid mucking with the filesystem to add this support.  (I'd rather the consumer of req.swagger.params to write files to disk, parse them, ...)

The only configuration I use is dest as the destination of incoming/uploaded files. Often I'm using something simple like dest: './uploads/'. The rename config also sounds useful, but I never used it. The generated filenames from multer are pretty unique.

Is there a way to do this without dest, say in memory or something?  I would like the API business logic to handle things like where files get saved, how they are renamed, etc. by default.  Of course, since it's configurable you can override the defaults.

I think there is a way to do it in memory. That tends to be a lot faster although people unfamiliar may find it ever so slightly more confusing. It’s something like req.files.buffer or req.*.buffer. I don’t remember exactly.

On Feb 10, 2015, at 10:13 AM, Jeremy Whitlock<EMAIL_ADDRESS>wrote:
Is there a way to do this without dest, say in memory or something? I would like the API business logic to handle things like where files get saved, how they are renamed, etc. by default. Of course, since it's configurable you can override the defaults.
—
Reply to this email directly or view it on GitHub https://github.com/apigee-127/swagger-tools/issues/60#issuecomment-73751729.

I just read that multer will always write to disk so by default, I'll set dest to a temp directory and when someone really wants to use this their way, they can pass in their own options.

I'm pretty sure they have an option called inBuffer or inMemory which will bypass the write to disk and only put it in memory.Sent using CloudMagicOn Tue, Feb 10, 2015 at 10:23 AM,  Jeremy Whitlock<EMAIL_ADDRESS>wrote:            I just read that multer will always write to disk so by default, I'll set dest to a temp directory and when someone really wants to use this their way, they can pass in their own options.
—Reply to this email directly or view it on GitHub.

That's what I thought, inMemory, but some sources say even that writes to disk and its purpose is to store the file in memory as well as on disk.  I'll do some digging.

Seems like I found some old information or it was inaccurate.  The multer page has this to say about inMemory: _If the inMemory option is true, no data is written to disk but data is kept in a buffer accessible in the file object.
Problem solved.

Sorry it took so long.  I'll document this and get a release out soon.  This work also resulted in better form parameter support as well.

@whitlockjc Any update on this? Can you please point me to any working example for this as I'm struggling with the same issue?

I'll need more information than that.  One thing I can tell you is that swagger-tools uses multer so once you define your Swagger parameters that are type: file, req.swagger.params.{yourParamName}.value will be a multer file object as described in their documentation.  As for the example you asked about, we have one in the test suite: https://github.com/apigee-127/swagger-tools/blob/master/test/2.0/test-middleware-swagger-metadata.js#L343

So, what's the solution? I'm trying to figure out how to get file uploads working with express, swagger, and multer. Multer works but it fails swagger validation if I set the form-data parameter to be required still.

Run with debugging to figure out why.

for me : what did the trick with node v12 was adding this middleware code:
app.use(function (req, res, next) {
	if (req.file && !req.files) {
		req.files = [{...req.file}];
	}
	next();
});


Configuring margin settings for futures_create_order

Every order I place with futures_create_order, the order is automatically set to 20x by default which is too risky for my tastes. Neither the wrapper nor raw binance API documentation mention anything about configuring margin for futures orders. Is it possible to manually configure the margin for each order?

To configure leverage use
client.futures_change_leverage(symbol=coin, leverage=lev)


Antialiasing + Mask

Hello Pixi.js community,
I'm sorry to probably bring that back again but I'm having some issues with masking. I'm simply creating a Graphic and would like to properly mask an image with it. Below, it's the code you might be interested in. Please let me know if you need more from me to understand this issue.
var width = $(window).width();
var height = $(window).height()
var points = [0, 100, width, 50, width, height - 50, 0, height - 100];

this.renderer = PIXI.autoDetectRenderer(width, height);

this.mask = new PIXI.Graphics();
this.mask.beginFill(0xFF3300,.5);
this.mask.moveTo(0,0);
this.mask.drawPolygon(this.points);
this.mask.endFill();

this.background = PIXI.Sprite.fromImage('images/01.jpg');
this.background.mask = this.mask;

handleResize:function(e){
   this.renderer.resize(e.width,e.height);
}

This is the result :

Related issue : #2792
Thanks.

Anyone ? Any clues ?

@GozuPro WebGL antialiasing works only on primary framebuffer. That means, no masks, no filter, e.t.c.
Theoretically, you can make a sprite mask, where the sprite is AA-ed graphics made from canvas with js Texture.fromCanvas(...), that'll work.

this.renderer = PIXI.autoDetectRenderer(width, height, {antialias:true);
should help!
Its worth baring in mind there is a performance hit when enabling antialiasing. Also not all browsers / devices support it.
If this is the case you could add the FXAA filter to your stage to get 'fake' antialiasing.
stage.filters = [new PIXI.filters.FXAA()];
Cheers!


[ZCPU] Restructure CPU and GPU files

ZCPU
Moves the zvm, cpulib and hlzasm code into the gmod_wire_cpu folder and the gpulib into gmod_wire_gpu. Helps making the lua folder more cleaner and more structured. It doesn't change any functionality.
Tested

CPU
GPU
SPU

I don't think this makes a lot of sense - none of this code is specific to any particular wire entity, and so it shouldn't live under lua/entities/. In particular, the HLZASM compiler can be, and is, run when there aren't any ZCPU entities existing.
(I'd argue that the E2 compiler files should also live outside of lua/entities/gmod_wire_expression2, but I don't feel particularly strongly about that.)

The CPU can be seen as the main zyelios product and gpu/spu are just variants of it. The HLZASM compiler is part of the zcpu/gpu/spu entities, so it doesn't matter if it gets ran before.
Also having for everything a seperate library and a folder in lua/wire is pretty unstructured.

If you want to structure things more, I'd suggest lua/wire/zyelios/{zvm,hlzasm,cpulib}, and (if it wouldn't cause as much refactoring everywhere) renaming gpulib to screenlib. I think sticking code that's unrelated to entities under lua/entities/.../ is a misleading structure that's worse than just lua/wire/{zvm,hlzasm,cpulib}.

Agree with @AbigailBuccaneer - code that is not specific to the CPU entity should not be under the CPU entity folder. Same for the GPU. Isn't gpulib used by things like EGP as well?


WIP: felix/encap: ippools give precedence for enabled/disabled

Description
The encapsulation modes enabled/disabled have seen a decent amount of churn already, but this PR looks to align the code with the spirit of recent changes such that the IPPool encapsulation modes are the primary source of truth whether encapsulation is enabled or not. The vxlanEnabled at the global felix configuration layer serves as just a tool to force encapsulation interfaces to be created as the documentation suggests:
Optional, you shouldn’t need to change this setting as Felix calculates if VXLAN should be enabled based on the existing IP Pools. When set, this overrides whether Felix should create the VXLAN tunnel device for VXLAN networking.

Note that this still needs testing and is a WIP but wanted to start the discussion early
Related issues/PRs
https://github.com/projectcalico/calico/issues/6670
https://github.com/projectcalico/calico/pull/6498
https://github.com/projectcalico/calico/pull/6494
https://github.com/projectcalico/calico/issues/6442
https://github.com/projectcalico/calico/pull/5576
Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

TBD

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

@muff1nman thanks for your PR, though I'm not sure about these changes... The intention when making felix determing VXLAN encap by the existing IP pools was that the vxlanEnabled FelixConfig would no longer be necessary, but would be respected to allow for seamless upgrading. This is broken it seems, but I think the real issue is that the FelixConfig should not touch IPv6 (seeing as it was added after these changes).
What do you think @caseydavenport?

@coutinhop Testing this PR allows upgrading from 3.22 to 3.23 without IPv6 VXLAN getting in the way. However it does not solve the issue that vxlanEnabled: true cannot be dropped without removing all of the IPv4 vxlan interfaces. I imagine it makes sense to pursue that in a separate change? And maybe it makes sense to not yet update the vxlanEnabled description in this PR because I don't feel the change I've made is accurate. Considering just this change alone, the description should maybe say:
VXLANEnabled must be set to true for IPv4 VXLAN to be enabled. Ignored for IPv6. [Default: nil (unset)]

But maybe we just don't change that quite yet and wait for this hypothetical second change? Also would make backporting easier..

/sem-approve

/sem-approve


Refactored function names to be more aligned with gdscript standards

Just went through and renamed the functions and signals to be snake_case. I did this so it is more consistent with the rest of the API for Godot. I'm pretty sure I got everything.

The gdscript functions are aligned to the C++ methods of the GOG api since everyone using the api will need to know what happens on the GOG side.
I think it's a matter of preference. I'll ask the Godot community.

@Duroxxigar The GD community approves:

Thanks :)

You do realize that it's no-longer compiling after this, right? Because you also renamed the functions that are supposed to be overriden in impelementation.

You do realize that it's no-longer compiling after this, right? Because you also renamed the functions that are supposed to be overriden in implementation.

I haven't had time to work on the project for a long time. Maybe at the end of the year. Sorry.
Feel free to jump on board.


Cfg

Sorry for giant pr...
Took the send-file branch you had and added cfg support as well. Also broke stuff out into a few different files just for sanity sake, but we can easily squash that back into cmdo.go if ya prefer!

thanks!
I am down for decomposition of files, lets merge this and do some testing along the way with the fixes to come if necessary


Add the Lime icon as the application icon

See limetext/lime#246.

Fixed by 085e9f69d188fa6241b840efeac611b79e74256c, although the application name still shows as Unknown on Gnome Shell.

Nice.


[Bug] Why is latex tag not supported? But katex supports it.

Initial checklist

[X] I agree to follow the code of conduct
[X] I searched issues and discussions and couldn’t find anything (or linked relevant results below)

Affected packages and versions
6.3.2
Link to runnable example
No response
Steps to reproduce

Expected behavior
Be the same as the above
Actual behavior
Be the same as the above
Runtime
Chrome
OS
macOS
Build and bundle tools
esbuild

https://github.com/Saul-Mirone/milkdown/commit/7232d68ff85d546133efd22d40216008230ca49a

https://milkdown.dev/online-demo?text=CTBQFEF4FkGED0BMACAOgFwIYHMDeBGAX1BFFCA%3D


Improper E value provided

Hi, when I want to request for a RSA test vector, I get the following,
***ACVP [STATUS][acvp_login:2320]--> Logging in...
***ACVP [STATUS][acvp_login:2340]--> Login successful
***ACVP [STATUS][acvp_register:1854]--> Building registration of capabilities...
***ACVP [STATUS][acvp_register:1860]--> Sending registration of capabilities...
***ACVP [ERR][log_network_status:1466]--> 400 error received from server. Message:
***ACVP [ERR][log_network_status:1467]--> [
{
"acvVersion": "1.0"
},
{
"error": "Validation error(s) on JSON payload.",
"context": [
"RSA-sigVer-1.0: Improper E value provided"
]
}
]
***ACVP [ERR][acvp_register:1872]--> Failed to send registration
***ACVP [ERR][acvp_run:3007]--> Failed to register with ACVP server
Is libacvp not support RSA yet?

Hello,
I am unable to reproduce this issue. Have you made any code changes?
Can you provide your ./configure and ./acvp_app arguments?
RSA is supported provided you are using a supporting crypto module, but should still register properly regardless.
Thanks,
Andrew

I'm able to reproduce by putting random strings in the SigVer fixedPubExp registration field. Whatever was changed from our based code is triggering this issue. It is likely a parameter limitation enforced by the NIST server, however I see no definition of that limitation in their specifications for expPubFixed. Maybe it is defined in the old RSAVS CAVS specs.  Regardless, this is something you should take up with NIST via an issue at their github, https://github.com/usnistgov/ACVP
Regards,
Barry

Hi, sorry for late reply since I am not work on the libacvp side recently. Yes, I figure out that it is my configuration error, there is no problem when I use the default configuration. But never mind, I see you guys add a --manual-registration feature recently, which is very helpful.


Import of provisioners from private OCI registry/image

Description

Added the docker login support
as mentioned here: https://github.com/oras-project/oras-go/blob/main/example_test.go#L106
What does this PR do?

This PR supports dynamic login which uses $DOCKER_CONFIG/config.json for login..
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New chore (expected functionality to be implemented)

Checklist:

[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[x] I've signed off with an email address that matches the commit author.

the following code was added from https://github.com/oras-project/oras-go/blob/main/example_test.go#L122
while the old test cases tested it, it spits no error, so adding some logged output showed some clarity ...
=== RUN   ExampleGetFile_oci_https 2024/11/20 00:24:49 Starting getOci for URL: oci://ghcr.io/score-spec/score-compose-community-provisioners:v0.1.0#00-service.provisioners.yaml 2024/11/20 00:24:49 Parsed reference: ghcr.io/score-spec/score-compose-community-provisioners:v0.1.0, with tag: v0.1.0 2024/11/20 00:24:49 Specified file from fragment: 00-service.provisioners.yaml 2024/11/20 00:24:49 Docker credentials successfully loaded 2024/11/20 00:24:49 Connected to remote repository: ghcr.io/score-spec/score-compose-community-provisioners:v0.1.0 2024/11/20 00:24:49 Fetching manifest for reference: v0.1.0 2024/11/20 00:24:50 Manifest fetched and decoded successfully 2024/11/20 00:24:50 Searching for YAML files in manifest layers 2024/11/20 00:24:50 Checking layer: 00-redis-dapr-state-store.provisioners.yaml 2024/11/20 00:24:50 Found YAML file: 00-redis-dapr-state-store.provisioners.yaml (count: 1) 2024/11/20 00:24:50 Checking layer: 00-service.provisioners.yaml 2024/11/20 00:24:50 Found YAML file: 00-service.provisioners.yaml (count: 2) 2024/11/20 00:24:50 Selected layer for file: 00-service.provisioners.yaml 2024/11/20 00:24:50 Fetching blob for layer: sha256:be27ce16ed6916c35fe0a08f56c4a86e884d6b40a8273c6031d6d772a8fccfb0 2024/11/20 00:24:50 Reading blob content with limit:<PHONE_NUMBER> bytes 2024/11/20 00:24:50 Successfully read 231 bytes from file: 00-service.provisioners.yaml 2024/11/20 00:24:51 Read 231 bytes from GET https://github.com/score-spec/community-provisioners/raw/v0.1.0/score-compose/00-service.provisioners.yaml --- PASS: ExampleGetFile_oci_https (2.11s)
I haven't tested it yet with a private repository, I'll update it according and add a test case for it as well

@7h3-3mp7y-m4n , like discussed, please provide the instructions to reproduce/test this new feature.
Maybe with a local registry. Maybe with this local registry setup: https://oras.land/docs/compatible_oci_registries#cncf-distribution?

for sure I'll post the steps and also the output ASAP!


New term request:

Hi,
The authors in PMID: 24187568 report that:
"We did observe that blocking PD-L1 decreased the proportion of early apoptotic (Annexin V+ 7-AAD-) CD8+ T cells, 7 days after exposure to the H1N1 virus (Figures 2(d) and 2(f)). CD4+ T cells did not show any significant differences in apoptosis after PD-L1 blocking (Figure 2(e))"
I could find the GO:0006924: "activation-induced cell death of T cells". Would it be possible to add "activation-induced cell death of CD4-positive T cells" and
"activation-induced cell death of CD8-positive T cells"?
Thanks,
Penelope
Reported by: pgarmiri
Original Ticket: geneontology/ontology-requests/11256

@dosumis
I'll take this one if you don't mind ;-) as it's apoptosis stuff
[Note for self: this was ported over from SF so Penelope may need to be added to conversation]

@paolaroncaglia - Thanks!
Ideally they'd be linked to appropriate CL terms - but it seems there are no generic CD4 and CD8+ T cell terms.  Might want to ask for these on CL tracker.

Cheers, will do and will post link to CL ticket here, when I get round to this.

Hi @mcourtot and @zebrafishembryo
(can't find a GitHub username for Penelope)
GO:0006924 "activation-induced cell death of T cells" is defined as being this specific pathway:
“A T cell apoptotic process that occurs towards the end of the expansion phase following the initial activation of mature T cells by antigen and is triggered by T cell receptor stimulation and signals transmitted via various surface-expressed members of the TNF receptor family such as Fas ligand, Fas, and TNF and the p55 and p75 TNF receptors.”.
Looking at section 3.2 in PMID:24187568 (i.e. where the sentences quoted by Penelope are found), I’m not 100% sure that the PD-L1 Signaling described there is exactly GO:0006924. By comparing with the sibling term GO:0070238 “activated T cell autonomous cell death” defined as
“A T cell apoptotic process that occurs towards the end of the expansion phase following the initial activation of mature T cells by antigen via the accumulation of pro-apoptotic gene products and decrease in anti-apoptotic gene products.”
my point is that it looks like there are not enough details in the paper about the specific signalling to be sure about what term to use. I could be wrong though - I’m not an immunologist and I didn’t have a chance to read the full paper. I’d suggest to annotate to the existing term GO:0070231 “T cell apoptotic process” or regulation thereof. Note that terms specifically for CD4 and/or CD8 apoptotic process may be requested via the TermGenie template “cell_apoptotic_process”. There are various options of cell ontology terms to choose from there. (If the appropriate cell ontology (CL) term is missing, that needs to be requested on the CL tracker.) Of course, regulation terms, if needed, may also be requested via TG.
Agreed with Melanie that I’ll mention her and Aleks in this ticket to look into annotations.
The ontology side is dealt with. I’m setting the ticket to pending; can be closed once annotations are made.
Thanks,
Paola

The reason there are no "generic" CD4+ and CD8+ T cells in the CL, is that when immunologists experiment on and report information about these cell types, they are using shorthand for what we call in the CL 'CD4-positive, alpha-beta T cell' (CL:0000624) and 'CD8-positive, alpha-beta T cell' (CL:0000625).
95% of T cells in the blood are either 'CD4-positive, alpha-beta T cell' or 'CD8-positive, alpha-beta T cell', and alpha-beta T cell always bear CD4 or CD8.  The remaining T cells are gamma-delta T cells (they bear the gamma-delta T cell receptor), and only a small fraction of gamma-delta T cells co-express CD4 or CD8.  Unless they are specifically studied, most immunologists ignore their presence and use CD4 and CD8 as proxy markers for 'CD4-positive, alpha-beta T cell' and 'CD8-positive, alpha-beta T cell', respectively and report their data in the belief they are studying these cell types.  They have been doing so for nearly 30 years in thousands and thousands of published papers, and this biology is considered extremely well settled.
The CL is not going to introduce generic CD4+ or CD8+ T cell terms, for this very reason.
Best regards,
Alex

Thanks Alex!

Why not add, immediately obsolete, then point to this ticket or a FAQ,
this comes up a lot I think
On 3 Mar 2016, at 7:19, addiehl wrote:

The reason there are no "generic" CD4+ and CD8+ T cells in the CL, is
that when immunologists experiment on and report information about
these cell types, they are using shorthand for what we call in the CL
'CD4-positive, alpha-beta T cell' (CL:0000624) and 'CD8-positive,
alpha-beta T cell' (CL:0000625).
95% of T cells in the blood are either 'CD4-positive, alpha-beta T
cell' or 'CD8-positive, alpha-beta T cell', and alpha-beta T cell
always bear CD4 or CD8.  The remaining T cells are gamma-delta T cells
(they bear the gamma-delta T cell receptor), and only a small fraction
of gamma-delta T cells co-express CD4 or CD8.  Unless they are
specifically studied, most immunologists ignore their presence and use
CD4 and CD8 as proxy markers for 'CD4-positive, alpha-beta T cell' and
'CD8-positive, alpha-beta T cell', respectively and report their data
in the belief they are studying these cell types.  They have been
doing so for nearly 30 years in thousands and thousands of published
papers, and this biology is considered extremely well settled.
The CL is not going to introduce generic CD4+ or CD8+ T cell terms,
for this very reason.
Best regards,
Alex

Reply to this email directly or view it on GitHub:
https://github.com/geneontology/go-ontology/issues/11431#issuecomment-191811909

Hi @cmungall ,
"Why not add, immediately obsolete, then point to this ticket or a FAQ,
this comes up a lot I think"
Because life is, really, far too short. Sorry. :-) I changed the title of this ticket to
"NTR: CD4 and CD8-positive (CD4+, CD8+) T cell-related GO terms"
so that it can come up more easily when searching the GitHub ontology tracker. I hope this is an acceptable compromise.
@mcourtot ,
Would it be ok with you if I assigned you this ticket? As agreed, looking at annotations is not a priority, and the ticket is labeled 'pending', but I don't really have anything else to contribute. Thanks!

I meant in CL
On 4 Mar 2016, at 2:03, paolaroncaglia wrote:

Hi @cmungall ,
"Why not add, immediately obsolete, then point to this ticket or a
FAQ,
this comes up a lot I think"
Because life is, really, far too short. Sorry. :-) I changed the title
of this ticket to
"NTR: CD4 and CD8-positive (CD4+, CD8+) T cell-related GO terms"
so that it can come up more easily when searching the GitHub ontology
tracker. I hope this is an acceptable compromise.
@mcourtot ,
Would it be ok with you if I assigned you this ticket? As agreed,
looking at annotations is not a priority, and the ticket is labeled
'pending', but I don't really have anything else to contribute.
Thanks!

Reply to this email directly or view it on GitHub:
https://github.com/geneontology/go-ontology/issues/11431#issuecomment-192216255

Ah, that's for @addiehl then :-)

Assigning to Melanie to look into the annotations; labelled as low priority.
Ticket can be closed then, thanks.

Hi @paolaroncaglia - I don't see any annotation to GO:0006924 from PMID:24187568
Am I looking at the wrong thing?

Hi @mcourtot
PMID: 24187568 is the paper for which Penelope requested terms that we then evaluated should not be added. Instead, we suggested to annotate PMID: 24187568 using the existing term GO:0070231 “T cell apoptotic process” or regulation thereof.
Thanks for looking into this!

Ok - thanks! Penelope will be back from vacation next week so I'll make a note to have her look at this.

Both @paolaroncaglia and Penelope confirmed this was all done.


Added timezone handling with recurrences

Changed date handling with recurrences to be compatible with the kludgy way rrule.js implements timezone handling.

@tgBryanBailes  thanks for the PR

Awesome. Any idea when a new npm version will be posted?

is this in latest npm package ? I seem to be having a similar issue when I publish to a server on a different time zone.


ForwardHookManager on multiple GPUs

Hi,
How can I use ForwardHookManager within a DataParalled?
Thanks

Hi @arbellea
If you are using a module wrapped by DataParallel or DistributedDataParallel, you should provide the right device when instantiating ForwardHookManager
For instance, you can replace
device = torch.device('cpu')
forward_hook_manager = ForwardHookManager(device)

with
device = torch.device('cuda')
forward_hook_manager = ForwardHookManager(device)

in this example notebook.

Thanks, but that is not what I meant
After further digging, I saw that pop_io_dict() gathers the outputs from all devices.
Since I would like to use this as a submodule of a network on parallel gpus, I need to extract only the outputs from the relevant gpu.
I wrote a small fuction that does that:
    def get_io_dict_from_device(self, device):
        device_io_dict = dict()
        for module_path, module_io_dict in self.io_dict.items():
            device_io_dict[module_path] = dict()
            for io_type in list(module_io_dict.keys()):
                sub_dict = module_io_dict[io_type]
                values = sub_dict[device.index]
                device_io_dict[module_path][io_type] = values
        return device_io_dict

and it works fine

@arbellea Thank you for the clarification.
Can I ask you for what purpose you'd like extract device-wise input/output?
I didn't expect the forward hook manager to be used in that way, but if that sounds useful for other users, I may want to update it.

I want to take a pretrained network, let's say ResNet, and use that as a backbone for my model.
I would like to take several intermediate layers and continue computations. For example, a U-Net with a ResNet backbone.

What I do now is download the code and modify it so that I can extract the intermediate layers...
But your code is much more convinent!

But your code is much more convinent!

Great to hear that :)
It may make sense, and I'll shortly update mine, mentioning this issue.
As you might have known, IntermediateLayerGetter in torchvision might also be something you're looking for, as it's used in R-CNN object detectors using ResNet and FPN as their backbones.


Train tricks

Hi! Thanks for your code! Can you give some advice on how to reproduce your result in readme file.
For example RFBNet300, must train 300 epoch on voc to get your report point 80.5. Also, I found the lr rate doesn't change during the training, I got 66%map on voc 07 test after 90 epoch. I use the v.4.0 branch.

The lr will change at 150,200,250 epoches.

@lzx1413 Hi, I only got 78.3%MAP after 300 epochs training.

Which version of pytorch are you used.

pytorch 4.1 on branch 0.4, batch size 64, 4 GPU training.

I have not finished testing it. I will update the code in a few days.

@lzx1413 I don't why you set lr like that. I check the code and everything is OK

@lzx1413 according to this https://github.com/ruinmessi/RFBNet/issues/13
it maybe the version problem. I didn't try the 0.3.1 version.

@lzx1413 I got 79.7% on FSSD-300 which is beyond your benchmark. But RFB-net never reach that

The warn up epoch is 6 for rfb

Thanks! Finally got 80.3% RFB net

Can you share the COCO dataset training setting???

For example, How about the lr setting, batch size and how many epoch do we need to get the final score as the RFB paper

@lxtGH How do you ahcieve the 80.3%? Can you share the training setting?

@dongfengxijian  pytorch 4.1 on branch 0.4, batch size 64, 4 GPU training. Learning rate is as the default setting, warm up epoch is 6

@lxtGH Thank you!

Traceback (most recent call last):
File "train_test.py", line 425, in
train()
File "train_test.py", line 290, in train
loss_l, loss_c = criterion(out, priors, targets)
File "/home/lxt/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "/home/lxt/PytorchSSD/layers/modules/multibox_loss.py", line 82, in forward
pos_idx = pos.unsqueeze(pos.dim()).expand_as(loc_data)
RuntimeError: The expanded size of the tensor (32752) must match the existing size (32756) at non-singleton dimension 1
Exception ignored in: <bound method _DataLoaderIter.del of <torch.utils.data.dataloader._DataLoaderIter object at 0x7f00b39af668>>
Traceback (most recent call last):
File "/home/lxt/anaconda3/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 399, in del
self._shutdown_workers()
File "/home/lxt/anaconda3/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 378, in _shutdown_workers
self.worker_result_queue.get()
File "/home/lxt/anaconda3/lib/python3.6/multiprocessing/queues.py", line 337, in get
return _ForkingPickler.loads(res)
File "/home/lxt/anaconda3/lib/python3.6/site-packages/torch/multiprocessing/reductions.py", line 151, in rebuild_storage_fd
fd = df.detach()
File "/home/lxt/anaconda3/lib/python3.6/multiprocessing/resource_sharer.py", line 57, in detach
with _resource_sharer.get_connection(self._id) as conn:
File "/home/lxt/anaconda3/lib/python3.6/multiprocessing/resource_sharer.py", line 87, in get_connection
c = Client(address, authkey=process.current_process().authkey)
File "/home/lxt/anaconda3/lib/python3.6/multiprocessing/connection.py", line 487, in Client
c = SocketClient(address)
File "/home/lxt/anaconda3/lib/python3.6/multiprocessing/connection.py", line 614, in SocketClient
s.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
Have you met this problem when using 512 train size

@lxtGH Have you solved this problem? I have no idea how to change the code

@lxtGH  @WangTianYuan
You should attach [128, 'S', 256] to the end of extras['512'] in SSD_vgg.py

Yes, it miss the last bolocks


"Board: Drag and drop cards" feature not working

What happened?
The 1.30 new feature (Board: Drag and drop cards by @marcusolsson) is not working. When I try drag and drop cards, the entire column is moved instead just the card.
What did you expect to happen?
Drag and drop cards (notes)
How can we reproduce it (as minimally and precisely as possible)?
Try drag and drop cards.
Anything else we need to know?
No response
Plugin version
1.30
Obsidian version
1.0.3
OS
Linux

Is this a duplicate of #205?

I think these are separate things. #205 is talking about dragging and dropping as it relates to the priority of items within a single column. This is talking about dragging items from one column to another.

Excuse me, but really is duplication.
I didn't realize it, but if you set priority, the problem stops happening, as reported in #205


排序算法

sort algo

bubble sort
伪代码
*   for j = 2 to A.length
*       key = A[j]
*       //insert A[j] into the sorted sequence A[1 ... j-1]
*       i = j - 1
*       while i > 0 and A[i] > key
*           A[i + 1] = A[i]
*           i = i - 1
*
*       A[i + 1] = key

bubble sort
伪代码
*/*****
*
* INSERTION-SORT(A)
*   for j = 2 to A.length
*       key = A[j]
*       //insert A[j] into the sorted sequence A[1 ... j-1]
*       i = j - 1
*       while i > 0 and A[i] > key
*           A[i + 1] = A[i]
*           i = i - 1
*
*       A[i + 1] = key
*
*****/

insert sort
伪代码
*   for j = 2 to A.length
*       key = A[j]
*       //insert A[j] into the sorted sequence A[1 ... j-1]
*       i = j - 1
*       while i > 0 and A[i] > key
*           A[i + 1] = A[i]
*           i = i - 1
*
*       A[i + 1] = key


[$1000] App crash on click of thread created from Welcome message

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

from userA, go to Settings > Workspaces
click on New workspace button
go to the #announce room and send a message
click on the room header
go to Settings > Welcome message
add any message and click on the save button
go to Settings > Workspaces >Members > Invite
invite userB
from userB, go to #announce
hover over welcome message > click reply in thread option > send a message in thread
from userA, observe the thread appears initially as [Deleted message] in the LHN.
Click on the thread's LHN row while in that state.

Expected Result:
App should not crash when clicking the thread
Actual Result:
App crashes when click the thread
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:
Reproducible in staging?: needs reproduction
Reproducible in production?: needs reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/13dd381d-8eac-43ef-af3e-8673877fe7ec
Console error

Expensify/Expensify Issue URL:
Issue reported by: @gadhiyamanan
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687271550225839
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01352d0a7b677d7fd7
Upwork Job ID:<PHONE_NUMBER>453809664
Last Price Increase: 2023-06-30

I can't reproduce this one, it works correctly on the latest staging: v1.3.35-4. Closing the issue out!
https://github.com/Expensify/App/assets/16232057/ae07f803-d77c-4740-abf3-e87aa0336ea0

Okay, I was able to repro this in the end. Updated the steps. You need to click on the LHN row when it's appearing as [Deleted message].
https://github.com/Expensify/App/assets/16232057/fec7aa45-eb59-49c3-ada0-21858b4dff6f

Hey, I'm Marcin from Callstack - expert contributor group - I'd like to take a look at this issue

Yep, let's do it @Swor71!

How are you looking @Swor71?

hey, so far I've been investigating the issue, I have one lead, which I'm currently exploring further, it just takes time to reproduce this behaviour as you know.

for some reason after pulling latest changes, I cannot reproduce this anymore. Tested several times on different and new accounts. The app doesn't crash when pressing on the reply msg. @trjExpensify would you mind testing this again with the latest changes from main, if you have a moment, please?

Hm, same.. I can't seem to reproduce the crash anymore either on the latest staging:

We do still have that [Deleted message] row temporarily for the thread that seems strange, but there's an issue for that here it seems.
Do you think we just close this out then? @gadhiyamanan you're welcome to try and reproduce it if you want!

@trjExpensify App has not crashed on [Delete message] but still profile pic is missing in LHN

Yep, which wouldn't you say is more closely tied to the other issue with [Deleted message] right?


Response content was truncated

Same as #660. But
index = GPTSimpleVectorIndex.load_from_disk('index.json', llm_predictor=llm_predictor)
or
index.query("姓名是什么",  text_qa_template=get_prompt(), llm_predictor=llm_predictor)
doesn't work with version 0.5.18.
error ouput:
TypeError: BaseGPTIndex.init() got an unexpected keyword argument 'llm_predictor'

The same!!
TypeError: BaseGPTIndex.init() got an unexpected keyword argument 'llm_predictor'
I've been  having this problem.
By the way, I can't find a source with the models accepted in this API... only davinchi and chatgpt Turbo? Or can I use Ada?

service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor)
index = GPTSimpleVectorIndex.load_from_disk('index/index.json', service_context=service_context)
this issue had been solved.

service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor)
index = GPTSimpleVectorIndex.load_from_disk('index/index.json', service_context=service_context)

Did you solve the response being truncated problem? It stays the same to me. If you don't mind, please share the code.

I had show the code in my previous answer. My case is related to Chinese. If your answer is in English and has been truncated, your problem may have exceeded the max token limit of model.

# customize the LLM settings
llm_predictor = LLMPredictor(llm=OpenAI(temperature=0, model_name="text-davinci-003", max_tokens=2048))
# load from disk and set the LLM predictor
index = GPTSimpleVectorIndex.load_from_disk('index.json', llm_predictor=llm_predictor)
response = index.query(input_text, response_mode="compact")

Hope this helps


Upgrade postcss to version 8.2.10 or later

The current postcss version is vulnerable, kindly update to a later version

Done. I just raised a PR for that

Can you close this issue, since it has been resolved


fix: don't save the scroll position between transitionHook and updateScroll

In Rudy it is possible that updateScroll is not called immediately after a transition (rather it might occur asynchronously afterwards).
Further, the content of the new route might not be rendered immediately. for example, the following things might happen

transitionHook called to indicate that a transition is about to occur
URL changes
loading spinner is displayed as the page content
asynchronous API request is done
final page content is rendered
updateScroll is called to restore the scroll position on the new route

Sometimes, scroll events happen at steps 3 or 5, because the page content height reduces such that it is lower than the current window.scrollY value. In this case, it is not desired to save the scroll position, because it is just noise occurring during the transition.
This adds a flag _isTransitioning which is used to skip saving the scroll position in between calls to the transition hook and updateScroll. The assumption is that updateScroll is always called after every transition.

I'm really sorry for the delay here. We've been swamped at work lately. I'll take a look by early next week. Unfortunately probably not this weekend

No problem, thanks for you help so far - I'll be grateful if you can have a look soon.
I'd like to make the tests cover his change but it looks like that would require a bit of surgery on he test setup - to make it call updateScroll not immediately after the URL transition.

can you merge with master to avoid the conflicts with your other PR?

conflict fixed

any chance of getting to this soon?

sorry, i've been really swamped. i'll look by end of week

Besides implementing your suggestion for the API, I also added tests (which was easier with this API), and in the process fixed a bug that prevented this feature from working for custom elements.
I think it's ready now.

published to v0.9.11

thanks for your help here – sorry for the delay

No worries, thankyou!


Update header.ejs

Logo not displayed properly on mobile
BEFORE:

AFTER:

LGTM

@TaiweiLoh any chance of swapping the logo and menu buttons around? Menus are typically on the right hand side, and logos on the left.


[BUG - Release] Game crashes on start

Branch or Release
v3.0.1
Game and Engine Version
Soulmask (Steam) UE <IP_ADDRESS>
Describe the bug
Copied files to Win64 folder. When I start the game it immediately crashes (the process closes itself. No error displayed)
Mods directory
To Reproduce
Steps to reproduce the behavior:

Launch game

Expected behavior
No crash
Screenshots, UE4SS Log, and .dmp file
Desktop (please complete the following information):

OS: Win11

Additional context

We are going to more info. Please upload the UE4SS.log and the crash.dmp

Had the same issue, game doesn't crash per se, it just doesn't even start. Older versions of ue4ss using xinput work.

There is no log and no dmp file

using zDEV-UE4SS_Xinput_v2.5.2-247-g92ccace.zip I get this:

Using other tools that should be compatible with 4.27.2 also give errors. Tried UUUv4 and cake-san's UE4 base table for CE. Neither work, with the latter maybe pointing in the direction of where things break.
stringoffset/ByteProperty not found
GUObjectArray not found!
It is trying to find GUObjectArray, but can't. Maybe the engine is a modified version of 4.27.2.

Was just told that the engine is modified as a part of their anti-cheat approach, has anti-debugging and encrypts fname.


Logger Migration to Pino

Currently, we use a custom logger with limited capabilities.
The idea is to migrate to Pino with two key features:

Prevent Leaks of Sensitive Data
Sensitive data like GITHUB_TOKEN might inadvertently leak when passing environment variables to containers, especially if the containers fail to execute commands. For example (Relevant Code):
Error running workflow: Command failed: docker run -e GITHUB_AUTH_TOKEN=ghp_************************ --rm ghcr.io/ossf/scorecard/v5:ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4 --repo=https://github.com/jshttp/content-type --show-details --format=json
Error: check runtime error: CII-Best-Practices: internal error: error during json parsing: error during json.Unmarshal: invalid character '<' looking for beginning of value
	    2024/12/12 19:23:27 error during command execution: check runtime error: CII-Best-Practices: internal error: error during json parsing: error during json.Unmarshal: invalid character '<' looking for beginning of value

Using Pino, we can ensure sensitive data is redacted from logs to prevent such leaks (ref1, ref2).

Suppress Logs During Test Execution
To maintain clean logs and simplify debugging, we aim to avoid logging when tests are running (Relevant Code)

i can help with this ;)

Awesome! I will assign the issue to you. Let me know if you need help :)