Same module for Nitro

Is your feature request related to a problem? Please describe.
For Nitro there seems to be no module like nuxt-security. I wonder if nuxt-security can be "ported" as Nuxt is basically Nitro.
Btw. if you look into the Nitro docs you might think it doesnt support modules, but in fact it is just not documented: https://github.com/unjs/nitro/issues/1862

Hey there,
Thanks for creating this issue.
You are correct. There is no module like NuxtSecurity for Nitro (unless there is one that works differently).
@pi0 what are your thoughts on that?
But honestly, I wont be able to find a time to create and maintain another module. I am happy to provide guidance to someone who can create and maintain it but me myself wont be able to do it.

I feel like it is a general problem of Nitro that it basically has no modules and all exisiting Nuxt modules are not compatible out of the box.
A security module is urgently needed but I was thinking what if Nuxt releases an amazing Auth module for Nuxt? It will be not available for Nitro as well.
@pi0 Maybe a solution would be great where modules like security or auth are developed for Nitro instead of for Nuxt and then automatically work for both. I guess thats not possibly but brings me back to my request of bringing Nuxt backend api and ssr more apart https://github.com/nuxt/nuxt/issues/26103

Hi. Everything security related i expect to be directly discussed, developed and maintained within Nitro core only. A security feature for nitro is urgently needed only if there is a clear issue reported within it's context.

Wouldnt this make nuxt-security redundant then?
I dont see Nitro providing the same features like nuxt-security, e.g. rate limiter, request size limiter, xss validator, xss protection

Hi @MickL
My understanding is that Nuxt creates a hybrid application, while Nitro creates a server.
As far as Nuxt-Security is concerned, we mostly deal with application security. A good example is CSP: CSP is a set of rules that apply to the client-side and are enforced by the browser. Even though the rules are transmitted by the server, their purpose is to protect the end-user, not to protect the server.
In other words, Nuxt-Security aims at enforcing good security practices for the Nuxt application running in the browser, but does not aim at provide defense against badly-designed code or compromised libraries that could be running in the Nitro server.
Please note that I am using my own mental map of the difference between Nuxt and Nitro here, so I might be mistaken.
I would even venture to say that in my opinion, it is very difficult to understand what is the real scope of Nuxt vs the real scope of Nitro, because the tasks are often shared, there are many runtime inter-dependencies that make the distinction very blurry, and to be honest the terminology can sometimes be quite confusing. Personal opinion here, and for the record I'm a Nuxt fanboy.

I hope the maintainers of this project don't take my message personally and that I'm just mentioning this because was mentioned in this discussion.
Yes, security depends on context. x-powred-by header is a feature of Nuxt actually!, and for features like CSP headers, we had them built-in since Nuxt 2, I just wish someone helped this to be sooner in the core.
Nitro provides the infrastructure for building secure web applications (for everyone). CSP support is relevant for Nitro but it has to be a built-in feature for it to be usable by higher order layers such as Nuxt.
If someone wants to collaborate on the Nitro side, discussions and issues are always the way to go and welcome.

I actually use most of nuxt-security to protect my api routes only, and all those things are missing for Nitro:

Rate limiter: Prevent brute forcing login credentials
Request size limiter: Prevent too huge file uploads
XSS Validator: Whitelist what html tags can be party of the body

I agree with @vejja who is doing ana amazing work for the module. The reason we are doing all the work we do for the module is that we are huge fans of Nuxt framework.
I myself am a maintainer of at least four Nuxt modules and there is a reason for that :)
I understand that it could have been useful to have similiar feature for Nitro but I cannot work on it. But I am happy to help with feedback, sharing knowledge and others if someone would be interested in porting the module.


Adding support for SNPL 00116US

I have a Gen 2 Shelly US plug. I am using your integration and ma able to turn on and off the plug, but I"m getting the Shelly type mismatch: SNPL-00116US. If you want, I'm happy to help debug this to add it to official integration – it just might take a bit of time.
Also, as an aside, do you know how to suppress those errors?

Hi if the device is compatible with the others which are already supported, then it should be not a big deal.
I could adapt the code and then it would be great if you could test if it works...

Sure. Just let me know what tests you want and how to run them

hi @Jacksonbm1
Well I am a bit confused as you wrote "Gen 2". Are you sure that this device is a 2nd generation device which supports the new gen 2 api, or is it just similar to the shelly plug s which you can buy here in Europe
Shelly Plug US
https://shopusa.shelly.cloud/shelly-plug-us-wifi-smart-home-automation#393
Shelly Plug S
https://shop.shelly.cloud/shelly-plug-s-wifi-smart-home-automation#62
Well, if both devices are internally the same, then it should be a gen 1 device.
On the other hand all older device start with SH... and all newer ones with SN or SP for the pro version.
So it could be that it is just a gen 2 relay.
Please provide more details so that I know what node to change for you....

Can you send me the response of the shelly in your browser
"http://your-shelly's-ipaddress-here/shelly"
The output of a gen2 device should look like

Ok, working on getting you the information:

Re: gen 1 vs 2. I was going off what I was told in the following two posts:

https://community.home-assistant.io/t/cant-find-enable-coiot-on-my-shelly-plug/435801
https://www.reddit.com/r/homeassistant/comments/vorqed/cannot_find_shelly_coiot_settings/?utm_source=share&utm_medium=web2x&context=3

Maybe it's gen 2 in a different sense than you're talking about?

Results:

{"name":null,"id":"shellyplugus-083af201c4d8","mac":"083AF201C4D8","model":"SNPL-00116US","gen":2,"fw_id":"20220211-132652/plugusprod2_app-gcb4621f","ver":"plugusprod2","app":"PlugUS","auth_en":false,"auth_domain":null}

Hope that helps!

@Jacksonbm1 yes that helped. Indeed it is a gen 2 device. So it should be compatible with the Shelly Plus.
99-shelly.zip
Can you unzip the file and replace the file 99-shelly.js in the folder where you installed the nodes?
under windows this should be C:\Users%USERNAME%.node-red\node_modules\node-red-contrib-shelly\shelly...
Then take a gen 2 node and configure it as "Relay".
If that test works, then I will finalize the work and create a new release. Thanks in advance.

Got it! It worked except that it seems like the on off buttons are reversed (I just grabbed the example code and added my rules):
[{"id":"2a0d4cf.cf9e6b4","type":"shelly-gen2","z":"617941e5.1c25","hostname":"<IP_ADDRESS>","description":"ap shelly post 2","mode":"polling","server":"","outputmode":"event","uploadretryinterval":5000,"pollinginterval":5000,"pollstatus":false,"getstatusoncommand":true,"devicetype":"Relay","outputs":1,"x":1160,"y":2300,"wires":[["fd13a665.b18848"]]},{"id":"943b269e.dbdfa8","type":"inject","z":"617941e5.1c25","name":"Get Status","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":780,"y":2260,"wires":[["2a0d4cf.cf9e6b4"]]},{"id":"8936c9ba.18f9f8","type":"function","z":"617941e5.1c25","name":"0 on","func":"msg.payload = {\n    method: \"Switch.Set\",\n    parameters : {\n        id : 0,\n        on : true,\n        toggle_after : 2 // optional flip back time in seconds\n    }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":910,"y":2320,"wires":[["2a0d4cf.cf9e6b4"]]},{"id":"a8be884f.f48af8","type":"function","z":"617941e5.1c25","name":"0 off","func":"msg.payload = {\n    method: \"Switch.Set\",\n    parameters : {\n        id : 0,\n        on : false,\n        toggle_after : 2 // optional flip back time in seconds\n    }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":910,"y":2380,"wires":[["2a0d4cf.cf9e6b4"]]},{"id":"8a26ef73.9e32f","type":"function","z":"617941e5.1c25","name":"0 toggle","func":"msg.payload = {\n    method: \"Switch.Toggle\",\n    parameters : {\n        id : 0,\n    }\n};\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":2440,"wires":[["2a0d4cf.cf9e6b4"]]},{"id":"adae31ae.d9655","type":"function","z":"617941e5.1c25","name":"id 0","func":"msg.payload = {\n    method: \"Switch.GetConfig\",\n    parameters : {\n        id : 0,\n    }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":910,"y":2500,"wires":[["2a0d4cf.cf9e6b4"]]},{"id":"8d3674ea.09ee58","type":"function","z":"617941e5.1c25","name":"id 0","func":"msg.payload = {\n    method: \"Switch.SetConfig\",\n    parameters : {\n        id : 0,\n        config : {\n            // name : \"switch\",\n            // in_mode : \"follow\",\n            // initial_state : \"restore_last\",\n            auto_on : true,\n            // auto_on_delay : 60.00,\n            // auto_off : false,\n            // auto_off_delay : 60.00,\n            // power_limit : 3500\n        }\n    }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":910,"y":2540,"wires":[["2a0d4cf.cf9e6b4"]]},{"id":"fd13a665.b18848","type":"debug","z":"617941e5.1c25","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1330,"y":2320,"wires":[]},{"id":"7c8ababa.894c84","type":"inject","z":"617941e5.1c25","name":"Turn On","props":[{"p":"payload","v":"","vt":"date"},{"p":"topic","v":"","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":784.9941310882568,"y":2320.193359375,"wires":[["8936c9ba.18f9f8"]]},{"id":"a789fce7.d3be2","type":"inject","z":"617941e5.1c25","name":"Turn Off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":780,"y":2380,"wires":[["a8be884f.f48af8"]]},{"id":"617f8aff.6318e4","type":"inject","z":"617941e5.1c25","name":"Toggle","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":770,"y":2440,"wires":[["8a26ef73.9e32f"]]},{"id":"5453abc5.8b49c4","type":"inject","z":"617941e5.1c25","name":"Get Config","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":780,"y":2500,"wires":[["adae31ae.d9655"]]},{"id":"b9520ec0.b628e","type":"inject","z":"617941e5.1c25","name":"Set Config","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":780,"y":2540,"wires":[["8d3674ea.09ee58"]]}]

Just wanted to drop by and check in on how this issue is doing. No rush, just pretty sure everything is 99% working (except the above mentioned problem.

Will do this at the weekend...

@Jacksonbm1 I can not find out why your SNPL does not behave like the other shellies. Can you please check via http://<IP_ADDRESS> if there is a setting that could be responsible for that. See the menu for the Shelly 1 PM

Doesn't seem like I have that option:

I also have a ticket with shelly that I need to respond to. They want me to try to check the firmware by connecting to a hotspot (not sure why), but I'm a little loathed to do it since I'd need to rebuild an already semi-working system


Update the project generated by protostar init

Make it beginner friendly. Comment everything. Use Proxy pattern.
Rename the autogenerated directory — from src to contracts?

What's wrong with src ?

I am not sure about renaming src to contracts. I noticed in a few projects this naming convention, e.g.: https://github.com/jediswaplabs/JediSwap.
Also, some people keep contracts and frontend code in the same directory, and frontend code is usually kept in the src directory.

I wouldn't introduce a change in conventions if we already settled on src for long time.
Hmm, but lib and tests are also conflicting with frontend repos.

Let's leave the src then.


Upgrade to AWS Go SDK v2

This is now supported
https://docs.aws.amazon.com/sdkref/latest/guide/version-support-matrix.html.
Developer guide has a section
on migrating; it
appears most of the work will be in client creation.
A significant change for us right now is the addition of a ContextLogger
interface.
We can use that to help with #2682.

In favor to upgrade, more information about v2: https://aws.amazon.com/blogs/developer/aws-sdk-for-go-version-2-general-availability/

Against the upgrade is that the new version might remove some capabilities in a bid to simplify the interface.  Specifically it will be hard to write s3Uploader, which is a chunked uploader.
Also...
:warning: BEWARE OF USING manager.Uploader :warning:
This is dangerous.  It was dangerous, but it still is. aws/aws-sdk-go-v2#1040 is that files large enough to need multipart uploads do not have their digests checked.
Now it might seem the if you access S3 only via https then TLS checks everything for you.  But (of course) that reduces the issue but does not eliminate it.  If gremlins reside after the TLS endpoint and modify the data, it is entirely unchecked.  This is a significant path along multiple machines in the data centre, so is not safe.

Unassigning myself and keeping it on the backlog: no current plans for this because the v1 SDK still works for us.  Keeping open because I still want my ContextLogger, it can greatly improve debugging in some cases with heavy load.


how to initialize a plugin file at start with ".excalidrawlib" file?

I'm trying "loadSceneOrLibraryFromBlob" method. but unable to find right way to do it.

See here https://github.com/excalidraw/excalidraw/blob/3e334a67ed43d11c6a5a331f82a847c07ff6175d/dev-docs/docs/%40excalidraw/excalidraw/api/utils/utils-intro.md#loadsceneorlibraryfromblob


Postgresql array parsing failure.

Version：
1.1
Code:
String sql = "select name[1] from table";
Select select = (Select) CCJSqlParserUtil.parse(sql);
Exception:
Exception in thread "main" net.sf.jsqlparser.JSQLParserException
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:56)
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " "[" "[ "" at line 1, column 20.
Was expecting one of:

"AS" ...

Strange. I thought some kind of array adressen was already implemented.

@wumpz: Do you think of Pull Request #306 ? Its still open as tests are missing.


Deleting the last value in the database causes an error

When the database has it's last entry removed, there is an exception when calling get_headers()

Deleting a value from the database no longer calls get_headers(). Calling get_headers on an empty database doesn't cause an exception either. Added a test for this.


Print out warning msg if length of hostname >=64

@maximilien This PR is ready for review. Thanks.

Cool. I like it. Thanks for adding tests for everything and comment. Best 👍


Added columns to the output of list commands

For details, see the commit message.

coverage: 33.894%. first build when pulling 55e01b569c5bfaacd91d32436363010a7206e2ce on andy/partition-shortname into 0a99218b59b7cf4093209a2216bbe06ac8f7fe57 on master.


Haversine or Spherical law of Cosines for latLng.distanceTo()?

Documentation says Haversine forumla for L.latLng.distanceTo() while the L.CRS.Earth.distance() uses "spherical law of cosines approximation"

https://github.com/Leaflet/Leaflet/blob/master/src/geo/crs/CRS.Earth.js line 22

Comparing the formula in CRS.Earth to Wikipedia's article on Great circle distance, it certainly looks like we're using the first formula used in that article, which is the "spherical law of cosines".
We should update the docs for distanceTo to reflect this.

If this still requires fixing.  I'd be happy to take this on.

@loisgh go for it! 👍

So I made the change and created a branch for it.  I Can't push remotely as I don't have access.  Please advise.

@loisgh ok, please open a pull request from the your branch in your repository!
Here's some GitHub docs on pull requests if you aren't familiar with them: https://help.github.com/articles/about-pull-requests/

Here's the problem, I need to create a branch remotely before I can create a pull request.  I'm getting a 403 error.  I assume that I need to add permissions somewhere for this to happen.
git push -u origin update_distance_to
remote: Permission to Leaflet/Leaflet.git denied to loisgh.
fatal: unable to access 'https://github.com/Leaflet/Leaflet.git/': The requested URL returned error: 403

Please advise

@loisgh Fork the Leaflet/Leaflet repo into loisgh/Leaflet, then push to your fork, then create a pull request from your forked repo to Leaflet's main repo. You can push branches to your own repos, but only Leaflet maintainers can push branches to the Leaflet main repo.
I suggest you take a bit of time to read https://help.github.com/articles/working-with-forks/ , as well as https://help.github.com/articles/changing-a-remote-s-url/
I know it takes some time to get used to a git workflow and it can be frustating. Have a bit of patience, and don't despair.

@IvanSanchez is this still open?

I sent a PR for this a while ago.  It should be closed.

Closed by #5791


Should this be added to jumpbox-boshrelease and/or toolbelt?

I would say definitely not toolbelt, but jumpbox boshrelease might eventually make sense. Only problem is that the app requires configuration to some specific CF/BOSH, such that it makes a lot of sense being deployed as a CF app itself.

👍


error creating resource

I followed the readme instructions with both a new tenant and an existing one and I am getting the following error - script continues and fives me a url but no resources are created.
.\Create-FhirServerSamplesEnvironment.ps1 -EnvironmentName fhirj2rr -UsePaaS $false Current context is user: XXXXXX fhirj2rr FhirServer PS module is loaded Creating keyvault with the name fhirj2rr-ts Current context is user<EMAIL_ADDRESS>Adding permission to keyvault for 595750b9-846e-4f16-afa6-7f5ed5f5fa60 Ensuring API application exists Checking if UserPrincipalName exists User not, will create. New-AzureADApplicationPasswordCredential : Error occurred while executing GetApplication Code: Request_ResourceNotFound Message: Resource 'ad29f0f6-8669-4d88-8a07-a070a4569434' does not exist or one of its queried reference-property objects are not present. RequestId: 3d84ab92-0d1c-4125-87fd-371a37c3bcb5 DateTimeStamp: Wed, 17 Jun 2020 19:35:11 GMT HttpStatusCode: NotFound

Are you using a different AAD tenant for your Azure subscription and the data plane?

Hi Michael,
I am yes, I created a new AAD tenant and moved the subscription over. This was about 1 hour ago. I was getting issues earlier with the original AAD (I did have owner rights) and the script was having issues with the keyvault as well..
does the loginAz-Account cmd know how to differentiate between accounts?

Hmm...I have not tried the scenario of moving the subscription over so we may be in uncharted waters here.
The concept here is that we use the AzureAd module to set up things in the AAD tenant that controls access to the data plane. And we use Az module to provision resources. The AAD tenant for the dataplane and the one for the subscription can be the same but don't have to be.
You should make sure you select the right subscription....using Select-AzSubscription ... if you have multiple subscriptions tied to the tenant you log into with Login-AzAccount. Could that be it?
Also, you may want to clean out any resource groups that you have created with any prior attempts, if it finds an KeyVault with "old" tenant details it will start trying to update those applications and that could fail.

I only have one subscription with 2 tenants. When I do the Login-AzAccount , it still displays the old tenant but the Connect-AzureAd -TenantDomain does work.
I did have a previous instance of the FHIR server installed as I was testing it before on its own. I'll try to clean up the old version and start from scratch.
Thanks

Also try to do Clear-AzContext a few times to make sure you sign in the right place.
You cannot have one subscription with two tenants, so there may be some misunderstandings too. A subscription is always tied to a single tenant. The same tenant can have multiple subscriptions or it can in fact have no subscriptions at all if you are just using it for data plane.

I finally created a new subscription and did a few Clear-AzContext as suggested and it worked. Thanks!
If I may ask a couple of questions on your devdays presentation you mention that there is a sample Datafactory that can show transforming the data. Is that available anywhere that we could use as a starting point to build on?

We used to use Data Factory in this samples environment for export, but now that the service supports $export we just use that.

Thanks! I did create it with the Export flag. I'll explore a bit.
Could I bug you for one more question?
I am trying to post a bundle from the Synthea project to the \Bundle end point of my server. I get a 201 created but the individual resources are not found when I do a \Patient{id} for example
do you know what could be the problem?
I tried to change type from transaction to batch and tried a simple bundle from the fhir site too.. same result

If you want to post a bundle, you need to do it to the root endpoint (please read spec). For the managed service, we only support bundles of type batch. For transaction bundles, use the OSS server with SQL persistence provider.
I’m gonna close this issue. If you have issues with the FHIR server, please post them on that repo.


Skip cassandra tests on openshift

Signed-off-by: Kevin Earls<EMAIL_ADDRESS>

What's the reason for this? Are we facing unsolvable problems for Cassandra?

@jpkrohling I wouldn't say unsolvable, but intermittent problems, and we don't officially support Cassandra on OpenShift anyway.

I think we should try to ensure that it works there, even though it's not supported. If you need to temporarily disable it there, I'm fine with it, but disabling it altogether means that we cannot ever tell whether it works in OpenShift at all.

I'm merging with the assumption that this will be used only in special situations.


I built a site with Eleventy!

Karatronics GmbH
Website of Recruiter from Frankfurt, Germany. Using Locomotive Scroll and gsap for screen transitioning.

Hey @appdevkaratronics, as you've already figured out, this is not the right repo for these proposals and you already opened https://github.com/11ty/11ty-community/issues/715, so I'll close this one.


Peel data for 2021-06-12 recorded 1million extra new cases (cross post)

[Cross posting since it's unclear where data reliability aught to be posted]
The data entry for June 12 included an extra 1million new cases - which is nearly impossible given the population of that health region is only 1.4million.
{
            "date": "2021-06-10", "change_cases": 96, "change_fatalities": 0, "change_recoveries": 95, "change_vaccinated": 0, "change_vaccinations": 0, "total_cases": 110527, "total_fatalities": 771,
            "total_recoveries": 108941, "total_vaccinated": 88848, "total_vaccinations": 1212884
          },
          {
            "date": "2021-06-11", "change_cases": 67, "change_fatalities": 1, "change_recoveries": 138, "change_vaccinated": 41005, "change_vaccinations": 55545, "total_cases": 110594,
            "total_fatalities": 772, "total_recoveries": 109079, "total_vaccinated": 129853, "total_vaccinations": 1268429
          },
          {
            "date": "2021-06-12", "change_cases": 1000087, "change_fatalities": 2, "change_recoveries": 99, "total_cases": 1110681, "total_fatalities": 774, "total_recoveries": 109178,
            "total_vaccinated": 129853, "total_vaccinations": 1268429
          },
          {
            "date": "2021-06-13", "change_cases": 64, "change_fatalities": 1, "change_recoveries": 151, "total_cases": 1110745, "total_fatalities": 774, "total_recoveries": 109329,
            "total_vaccinated": 129853, "total_vaccinations": 1268429
          }
        ],
        "id": 3553,
        "population": 1480214,
        "province": "ON",
        "short": "Peel",
        "updated_at": "2021-06-13T23:42:02.000Z"

It looks like there was a superfluous extra 1. You can see this when calculating the 7day average of new cases:

cf: https://covid19.colinbendell.dev/

Thank you - the issue has been resolved. Data quality issues are usually resolved most quickly if sent directly to<EMAIL_ADDRESS>


CSV node outputs non valid RFC4180 CSV data under certain conditions

Current Behavior
This is related #3919 (but to be addressed separately)
In the screenshot below, an object prop with a double quote generates invalid CSV then fails completely to reconvert to object

Here is what Google Sheets / Excel makes of double quotes...

Note that double quotes are doubled up and surrounded in double quotes as per RFC
Here is what convertcsv.com make of it...

Expected Behavior
If this is considered a bug, then target master with fixes
If this is considered "current/expected behaviour" then target dev with suggested enhancements...
Ideally, we would make the CSV output data that is 100% compatible with the specification however if it is deemed making the CSV node 100% RFC compatible would break users existing flows, it may be preferable to implement a new [x] Strict Mode option that fully adheres to the specification
Steps To Reproduce
Import provided flows - they demonstrate the various problems
Example flow
[{"id":"ee0d712a0a753877","type":"inject","z":"3b9a9d02857dd4a7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"c\\\"c\":3,\"d.d\":4,\"b,b\":2,\"e`e\":5,\"a'a\":1},{\"d.d\":2,\"e`e\":1,\"b,b\":4,\"c\\\"c\":3,\"a'a\":5}]","payloadType":"json","x":930,"y":1460,"wires":[["81bfac100669ed83"]]},{"id":"81bfac100669ed83","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1110,"y":1460,"wires":[["21813caee6ea84c1"]]},{"id":"21813caee6ea84c1","type":"debug","z":"3b9a9d02857dd4a7","name":"debug 28","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1300,"y":1460,"wires":[]},{"id":"31e6b7bd1227c180","type":"comment","z":"3b9a9d02857dd4a7","name":"No col/template object data only.  Outputs invalid header   c\"c,d.d,\"b,b\",e`e,a'a   (RFC4180 2.6/2.7)","info":"#### Demo 1 - no column template\n\nInput data\n```\n[\n    {\"c\\\"c\":3,\"d.d\":4,\"b,b\":2,\"e`e\":5,\"a'a\":1},\n    {\"d.d\":2,\"e`e\":1,\"b,b\":4,\"c\\\"c\":3,\"a'a\":5}\n]\n```\n\nExtracts col template...\n```\n['c\"c', 'd.d', 'b,b', 'e`e', \"a'a\"]\n//c\"c,d.d,b,b,e`e,a'a               as a CSV string\n```\n\nAccording to RFC4180 2.6 & 2.7 the CSV generated for the template is invalid:\n\n> 2.6\n> Fields containing line breaks (CRLF), double quotes, and commas\n> should be enclosed in double-quotes\n\n> 2.7\n> If double-quotes are used to enclose fields, then a double-quote\n> appearing inside a field must be escaped by preceding it with\n> another double quote\n\ni.e. the column template should be...\n\n```\n\"c\"\"c\",d.d,\"b,b\",e`e,a'a\n```","x":1210,"y":1420,"wires":[]},{"id":"fe74d9ac546a36a1","type":"inject","z":"3b9a9d02857dd4a7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"c\\\"c\":3,\"d.d\":4,\"b,b\":2,\"e`e\":5,\"a'a\":1},{\"d.d\":2,\"e`e\":1,\"b,b\":4,\"c\\\"c\":3,\"a'a\":5}]","payloadType":"json","x":930,"y":1600,"wires":[["bb56df9c07e10fb7"]]},{"id":"bb56df9c07e10fb7","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"a'a,\"b,b\",c\"c,d.d,e`e","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1110,"y":1600,"wires":[["c450170efe7dfb96"]]},{"id":"c450170efe7dfb96","type":"debug","z":"3b9a9d02857dd4a7","name":"debug 109","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1600,"wires":[]},{"id":"8de0e9f39fe63f23","type":"comment","z":"3b9a9d02857dd4a7","name":"Incorrectly parses `col`  a'a,\"b,b\",c\"c,d.d,e`e  - as -  ['a'a,b', 'b,cc', 'd.d', 'e`e']      (RFC4180 2.6)","info":"#### Demo 2\n\nColumn Template\n```\na'a,\"b,b\",c\"c,d.d,e`e\n```\n\nparses as\n```\n['a'a,b', 'b,cc', 'd.d', 'e`e']\n```\n\nAccording to RFC4180 2.6 the CSV for the template is invalid:\n> Fields containing line breaks (CRLF), double quotes, and commas\n>  should be enclosed in double-quotes\n\n\nUsing https://www.npmjs.com/package/@vanillaes/csv\n\n```\ncsv.parse('a\\'a,\"b,b\",c\"c,d.d,e`e')\n//Uncaught Error: CSVError: Illegal state [row:1, col:3]\n```","x":1190,"y":1560,"wires":[]},{"id":"eecf56ebbebfa0c6","type":"inject","z":"3b9a9d02857dd4a7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"c\\\"c\":3,\"d.d\":4,\"b,b\":2,\"e`e\":5,\"a'a\":1},{\"d.d\":2,\"e`e\":1,\"b,b\":4,\"c\\\"c\":3,\"a'a\":5}]","payloadType":"json","x":930,"y":2020,"wires":[["56c208f10d5666c4"]]},{"id":"56c208f10d5666c4","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"a'a,\"b,b\",\"c\"\"c\",d.d,e`e","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1110,"y":2020,"wires":[["2f27f53e4d0407a0"]]},{"id":"2f27f53e4d0407a0","type":"debug","z":"3b9a9d02857dd4a7","name":"debug 110","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":2020,"wires":[]},{"id":"ade3b3657fafd2a1","type":"comment","z":"3b9a9d02857dd4a7","name":"Valid CSV `col` incorrectly parsed   a'a,\"b,b\",\"c\"\"c\",d.d,e`e  →  a'a,\"b,b\",cc,d.d,e`e","info":"#### Demo 5\n\nColumn Template\n```\na'a,\"b,b\",\"c\"\"c\",d.d,e`e\n```\n\nparses as\n```\n['a'a', 'b,b', 'cc', 'd.d', 'e`e']\n//a'a   \"b,b\"   cc    d.d    e`e\n```\n\nAccording to RFC4180 2.7 this should be\n```\n[ \"a'a\", 'b,b', 'c\"c', 'd.d', 'e`e' ]\n// a'a    b,b    c\"c    d.d    e`e    just values\n// a'a,\"b,b\",\"c\"\"c\",d.d,e`e           as a CSV string\n```\n\n\n--- \n\nUsing https://www.npmjs.com/package/@vanillaes/csv\n\n```\ncsv.parse('a\\'a,\"b,b\",\"c\"\"c\",d.d,e`e')\n// [ [ \"a'a\", 'b,b', 'c\"c', 'd.d', 'e`e' ] ]\n```","x":1150,"y":1980,"wires":[]},{"id":"a93a707f65d0e980","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"a'a,\"b,b\",c\"\"c,d.d,e`e","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1110,"y":1740,"wires":[["a848ea05db8a81f3"]]},{"id":"ce107b562b9d768b","type":"inject","z":"3b9a9d02857dd4a7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"c\\\"c\":3,\"d.d\":4,\"b,b\":2,\"e`e\":5,\"a'a\":1},{\"d.d\":2,\"e`e\":1,\"b,b\":4,\"c\\\"c\":3,\"a'a\":5}]","payloadType":"json","x":930,"y":1740,"wires":[["a93a707f65d0e980"]]},{"id":"a848ea05db8a81f3","type":"debug","z":"3b9a9d02857dd4a7","name":"debug 108","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1740,"wires":[]},{"id":"a535f1c991015aca","type":"comment","z":"3b9a9d02857dd4a7","name":"Incorrectly parses `col`  a'a,\"b,b\",c\"\"c,d.d,e`e  - as -  ['a'a,b', 'b,cc', 'd.d', 'e`e']      (RFC4180 2.6)","info":"#### Demo 3\n\nColumn Template\n```\na'a,\"b,b\",c\"\"c,d.d,e`e\n```\n\nparses as\n```\n['a'a,b', 'b,cc', 'd.d', 'e`e']\n```\n\nAccording to RFC4180 2.6 the CSV for the template is invalid:\n> Fields containing line breaks (CRLF), double quotes, and commas\n>  should be enclosed in double-quotes\n\n\nUsing https://www.npmjs.com/package/@vanillaes/csv\n\n```\ncsv.parse('a\\'a,\"b,b\",c\"\"c,d.d,e`e')\n// Uncaught Error: CSVError: Illegal state [row:1, col:3]\n```","x":1190,"y":1700,"wires":[]},{"id":"5f8644df15a13de8","type":"inject","z":"3b9a9d02857dd4a7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"c\\\"c\":3,\"d.d\":4,\"b,b\":2,\"e`e\":5,\"a'a\":1},{\"d.d\":2,\"e`e\":1,\"b,b\":4,\"c\\\"c\":3,\"a'a\":5}]","payloadType":"json","x":930,"y":2160,"wires":[["5c78de4ec669b8a6"]]},{"id":"5c78de4ec669b8a6","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"a'a ,\" b,b\",\" c\"\"c\",d.d, e`e","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1090,"y":2160,"wires":[["d4cd02472bf4a44f"]]},{"id":"d4cd02472bf4a44f","type":"debug","z":"3b9a9d02857dd4a7","name":"debug 111","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1230,"y":2160,"wires":[]},{"id":"b21a46644ce246f1","type":"comment","z":"3b9a9d02857dd4a7","name":"Valid CSV `col` incorrectly parsed     a'a ,\" b,b\",\" c\"\"c\",d.d, e`e  →   ['a'a', 'b,b', 'cc', 'd.d', 'e`e']  (RFC4180 2.4)","info":"#### Demo 6\n\nColumn Template\n```\na'a ,\" b,b\",\" c\"\"c\",d.d, e`e\n```\n\nparses as\n```\n['a'a', 'b,b', 'cc', 'd.d', 'e`e']\n//a'a,\"b,b\",cc,d.d,e`e             as a CSV string\n```\n\nAccording to RFC4180 2.4 this should be\n```\n[ \"a'a \", ' b,b', ' c\"c', 'd.d', ' e`e' ]\n//\"a'a \",\" b,b\",\" c\"\"c\",\" d.d\",\" e`e\"     as a CSV string\n```\n\n\n--- \n\nUsing https://www.npmjs.com/package/@vanillaes/csv\n\n```\ncsv.parse('a\\'a ,\" b,b\",\" c\"\"c\",d.d, e`e')\n[ \"a'a \", ' b,b', ' c\"c', 'd.d', ' e`e' ]\n```","x":1230,"y":2120,"wires":[]},{"id":"c95c51ee79981882","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"a'a,\"b,b\",c\"\"c,d.d,e`e","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1110,"y":1880,"wires":[["4b3bb17567930944"]]},{"id":"f2066292ecf6c372","type":"inject","z":"3b9a9d02857dd4a7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"c\\\"c\":3,\"d.d\":4,\"b,b\":2,\"e`e\":5,\"a'a\":1},{\"d.d\":2,\"e`e\":1,\"b,b\":4,\"c\\\"c\":3,\"a'a\":5}]","payloadType":"json","x":930,"y":1880,"wires":[["c95c51ee79981882"]]},{"id":"4b3bb17567930944","type":"debug","z":"3b9a9d02857dd4a7","name":"debug 112","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1880,"wires":[]},{"id":"f20fd2e9a3d93b60","type":"comment","z":"3b9a9d02857dd4a7","name":"Incorrectly parses `col`  a'a,\"b,b\",\"c\"c\",d.d,e`e  - as -  a'a,\"b,b\",cc,d.d,e`e      (RFC4180 2.7)","info":"#### Demo 4\n\nColumn Template\n```\na'a,\"b,b\",\"c\"c\",d.d,e`e\n```\n\nincorrectly parses as\n```\na'a,\"b,b\",cc,d.d,e`e\n```\n\nAccording to RFC4180 2.6 the CSV for the template is invalid:\n> Fields containing line breaks (CRLF), double quotes, and commas\n>  should be enclosed in double-quotes\n","x":1170,"y":1840,"wires":[]},{"id":"08bc532a384512b8","type":"inject","z":"3b9a9d02857dd4a7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":895,"y":2380,"wires":[["344cc244e2924a56"]],"l":false},{"id":"344cc244e2924a56","type":"template","z":"3b9a9d02857dd4a7","name":"RFC4180 compliant CSV","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"a'a,\"b,b\",\"c\"\"c\",d.d,e`e\n1,2,3,4,5\n5,4,3,2,1","output":"str","x":1070,"y":2380,"wires":[["2937c4b7db968a2d"]]},{"id":"2937c4b7db968a2d","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":true,"hdrout":"all","multi":"mult","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1250,"y":2380,"wires":[["7384a10937784487"]]},{"id":"7384a10937784487","type":"debug","z":"3b9a9d02857dd4a7","name":"gets prop name  c\"c  wrong","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1430,"y":2380,"wires":[]},{"id":"34442861f7ba5ee0","type":"comment","z":"3b9a9d02857dd4a7","name":"\"c\"\"c\",d.d,\"b,b\",e`e,a'a \\n 3,4,2,5,1 \\n 3,2,4,1,5","info":"#### Demo 6\n\nColumn Template\n```\na'a ,\" b,b\",\" c\"\"c\",d.d, e`e\n```\n\nparses as\n```\n['a'a', 'b,b', 'cc', 'd.d', 'e`e']\n//a'a,\"b,b\",cc,d.d,e`e             as a CSV string\n```\n\nAccording to RFC4180 2.4 this should be\n```\n[ \"a'a \", ' b,b', ' c\"c', 'd.d', ' e`e' ]\n//\"a'a \",\" b,b\",\" c\"\"c\",\" d.d\",\" e`e\"     as a CSV string\n```\n\n\n--- \n\nUsing https://www.npmjs.com/package/@vanillaes/csv\n\n```\ncsv.parse('a\\'a ,\" b,b\",\" c\"\"c\",d.d, e`e')\n[ \"a'a \", ' b,b', ' c\"c', 'd.d', ' e`e' ]\n```","x":1070,"y":2320,"wires":[]},{"id":"ca71df2df82ef0bc","type":"inject","z":"3b9a9d02857dd4a7","name":"Object data with prop names  a'a  b  c\"c","props":[{"p":"payload"},{"p":"topic","vt":"str"},{"p":"payloadCopy","v":"[{\"a'a\":\"A1\",\"b\":\"B1\",\"c\\\"c\":\"C1\"},{\"a'a\":\"A2\",\"b\":\"B2\",\"c\\\"c\":\"C2\"}]","vt":"json"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"a'a\":\"A1\",\"b\":\"B1\",\"c\\\"c\":\"C1\"},{\"a'a\":\"A2\",\"b\":\"B2\",\"c\\\"c\":\"C2\"}]","payloadType":"json","x":1030,"y":2580,"wires":[["7568fe04a18602b3","b08d04c713911cfe"]]},{"id":"7568fe04a18602b3","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1090,"y":2640,"wires":[["401aa7959500fa9b","854aa86a2263b67d"]]},{"id":"401aa7959500fa9b","type":"debug","z":"3b9a9d02857dd4a7","name":"Input data as CSV","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1430,"y":2640,"wires":[]},{"id":"c53905fdfdd7ce03","type":"comment","z":"3b9a9d02857dd4a7","name":"Output invalid CSV (outputs header row as  a'a,b,c\"c  but it should be  a'a,b,\"c\"\"c\"  (RFC4180 2.7)","info":"> 2.7\n> If double-quotes are used to enclose fields, then a double-quote\n> appearing inside a field must be escaped by preceding it with\n> another double quote","x":1200,"y":2540,"wires":[]},{"id":"854aa86a2263b67d","type":"csv","z":"3b9a9d02857dd4a7","name":"","sep":",","hdrin":"","hdrout":"all","multi":"one","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1090,"y":2700,"wires":[["a5cd2b4bf639c39a"]]},{"id":"a5cd2b4bf639c39a","type":"debug","z":"3b9a9d02857dd4a7","name":"Input data back to Object","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1410,"y":2700,"wires":[]},{"id":"b08d04c713911cfe","type":"debug","z":"3b9a9d02857dd4a7","name":"Input data","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1460,"y":2580,"wires":[]}]

Environment

Node-RED version: V3+
Node.js version: 16
npm version: 8
Platform/OS: All / NA
Browser: All / NA

@dceejay has already started works in branch CSV-fix-n-handling-inside-text-fields

@dceejay
Following our discussion on RFC for CSV node, I am almost finished (tests written etc).
One last bone of contention for me is the use of regex for the number parsing. For one, regex is not known for its super high performance and it fails to convert hexadecimal/octal/binary notation too.
So, since number parsing is on the hot path, I have been doing some performance testing and seeing if there is a better AND faster method.
TL;DR
I am proposing using the + cast method for number parsing. In tests (100000 iterations) it is consistently 1.93 times faster (often more) than the original regex.  Additionally, it also correctly converts 0x0, 0b0 and 0o0 into numbers
Do you have any objections?
toNumber (proposed)
function toNumber(value) {
    const v = +value
    const isNumber = !isNaN(v)
    return isNumber ? v : value
}
if (parseNumbers) {
    v = toNumber(v)
}

regex (original)
var isNumberTest = /^ *[-]?(?!E)(?!0\d)\d*\.?\d*(E-?\+?)?\d+ *$/i;
if (parseNumbers &&  isNumberTest.test(v)) {
    v = parseFloat(v)
}

performance testing details
2 data sets,:

Array of 55 items, 40 good number strings, 15 bad/non number strings
Array of 12 items, all strings (should defiantly not be parsed to numbers)

3 conversion functions

toNumber_regex - using original regex & parseFloat method
toNumber_parseFloat - using isNaN and parseFloat
toNumber_proposed - using + cast

Summary of Data set 1
testNumbers[55], 100000 iterations.  40 numbers, 15 non numbers

toNumber_proposed  (winner)

Operations : 5500000
Pass rate% : 100.00%
Performance:<PHONE_NUMBER>370575ms

toNumber_regex (2nd fastest)

Operations : 5500000
Pass rate% : 74.55%
Performance:<PHONE_NUMBER>479294ms

toNumber_parseFloat (slowest)

Operations : 5500000
Pass rate% : 83.64%
Performance:<PHONE_NUMBER>087738ms

toNumber_proposed is 2.15 times faster than toNumber_parseFloat
toNumber_proposed is 1.93 times faster than toNumber_regex
Summary of Data set 2
testStrings[12], 100000 iterations.   (all strings, no numbers)

toNumber_proposed  (winner)

Pass rate% : 100.00%
Performance: 62.891900062561035ms

toNumber_regex (2nd fastest)

Pass rate% : 100.00%
Performance:<PHONE_NUMBER>9790192ms

toNumber_parseFloat (slowest)

Pass rate% : 100.00%
Performance:<PHONE_NUMBER>3356934ms

toNumber_proposed is 2.18 times faster than toNumber_parseFloat
toNumber_proposed is 2.08 times faster than toNumber_regex

Full test results with detail (click to expand)

################################################################################
Data set 'testNumbers[55], 100000 iterations.  40 numbers, 15 non numbers

------------------------------toNumber_parseFloat-------------------------------
Operations : 5500000
Pass rate% : 83.64%
Performance:<PHONE_NUMBER>087738ms
Failures:
┌─────────┬──────────┬────────┬──────────┐
│ (index) │   test   │ result │ expected │
├─────────┼──────────┼────────┼──────────┤
│    0    │  '0x1'   │   0    │    1     │
│    1    │  '0x01'  │   0    │    1     │
│    2    │ '0x001'  │   0    │    1     │
│    3    │  '0b1'   │   0    │    1     │
│    4    │ '0b0001' │   0    │    1     │
│    5    │ '0b1010' │   0    │    10    │
│    6    │  '0o1'   │   0    │    1     │
│    7    │ '0o001'  │   0    │    1     │
│    8    │ '0o123'  │   0    │    83    │
└─────────┴──────────┴────────┴──────────┘
--------------------------------------------------------------------------------

---------------------------------toNumber_regex---------------------------------
Operations : 5500000
Pass rate% : 74.55%
Performance:<PHONE_NUMBER>479294ms
Failures:
┌─────────┬────────────┬────────────┬──────────┐
│ (index) │    test    │   result   │ expected │
├─────────┼────────────┼────────────┼──────────┤
│    0    │   '0x0'    │   '0x0'    │    0     │
│    1    │ '0x000000' │ '0x000000' │    0     │
│    2    │   '0x1'    │   '0x1'    │    1     │
│    3    │   '0x01'   │   '0x01'   │    1     │
│    4    │  '0x001'   │  '0x001'   │    1     │
│    5    │   '0b0'    │   '0b0'    │    0     │
│    6    │ '0b000000' │ '0b000000' │    0     │
│    7    │   '0b1'    │   '0b1'    │    1     │
│    8    │  '0b0001'  │  '0b0001'  │    1     │
│    9    │  '0b1010'  │  '0b1010'  │    10    │
│   10    │   '0o1'    │   '0o1'    │    1     │
│   11    │  '0o001'   │  '0o001'   │    1     │
│   12    │  '0o123'   │  '0o123'   │    83    │
│   13    │   '007'    │   '007'    │    7     │
└─────────┴────────────┴────────────┴──────────┘
--------------------------------------------------------------------------------

-------------------------------toNumber_proposed--------------------------------
Operations : 5500000
Pass rate% : 100.00%
Performance:<PHONE_NUMBER>370575ms
--------------------------------------------------------------------------------

################################################################################
Data set 'testStrings[12], 100000 iterations.  (all strings, no numbers)

------------------------------toNumber_parseFloat-------------------------------
Operations : 1200000
Pass rate% : 100.00%
Performance:<PHONE_NUMBER>3356934ms
--------------------------------------------------------------------------------

---------------------------------toNumber_regex---------------------------------
Operations : 1200000
Pass rate% : 100.00%
Performance:<PHONE_NUMBER>9790192ms
--------------------------------------------------------------------------------

-------------------------------toNumber_proposed--------------------------------
Operations : 1200000
Pass rate% : 100.00%
Performance: 62.891900062561035ms
--------------------------------------------------------------------------------

Performance test code (click to expand)

const isNumberTest = /^ *[-]?(?!E)(?!0\d)\d*\.?\d*(E-?\+?)?\d+ *$/i;

function toNumber_parseFloat(value) {
    const v = parseFloat(value);
    const isNumber = !isNaN(value - v);
    return isNumber ? v : value
}
function toNumber_regex(value) {
    const isNumber = isNumberTest.test(value)
    return isNumber ? parseFloat(value) : value
}

function toNumber_proposed(value) {
    const v = +value
    const isNumber = !isNaN(v)
    return isNumber ? v : value
}

const testNumbers = [
    { value: "0x0", expect: 0},
    { value: "0x000000", expect: 0},
    { value: "0x1", expect: 1},
    { value: "0x01", expect: 1},
    { value: "0x001", expect: 1},

    { value: "0b0", expect: 0},
    { value: "0b000000", expect: 0},
    { value: "0b1", expect: 1},
    { value: "0b0001", expect: 1},
    { value: "0b1010", expect: 10},

    { value: "0o1", expect: 1},
    { value: "0o001", expect: 1},
    { value: "0o123", expect: 83},

    { value: "007", expect: 7},
    { value: "0", expect: 0},
    { value: "0 ", expect: 0},
    { value: "0.0", expect: 0},
    { value: "0.0 ", expect: 0},
    { value: "0.1", expect: 0.1},
    { value: " 0.1", expect: 0.1},
    { value: "0.1 ", expect: 0.1},
    { value: " 0.1 ", expect: 0.1},
    { value: "0.1.1", expect: "0.1.1"},
    { value: "0.000000000000" , expect: 0},

    { value: "1 ", expect: 1},
    { value: "1", expect: 1},
    { value: "1.1", expect: 1.1},
    { value: " 1.1", expect: 1.1},
    { value: "1.1 ", expect: 1.1},
    { value: " 1.1 ", expect: 1.1},
    { value: "1.1.1", expect: "1.1.1"},
    { value: "1.000000000000" , expect: 1},

    { value: "123", expect: 123},
    { value: "3.14", expect: 3.14},
    { value: "3.14.1", expect: "3.14.1"},

    { value: "-5", expect: -5},
    { value: "-5.1", expect: -5.1},
    { value: "-5.1.1", expect: "-5.1.1"},

    { value: "-0.5", expect: -0.5},
    { value: "-1.23", expect: -1.23},
    { value: "-1.23.1", expect: "-1.23.1"},

    { value: "2e3", expect: 2000},
    { value: "1E-4", expect: 0.0001},
    { value: "1e+12", expect:<PHONE_NUMBER>000},
    { value: "1e+12.1", expect: "1e+12.1"},
    { value: "1e+12.1.1", expect: "1e+12.1.1"},
    { value: "1F-4", expect: "1F-4"},
    { value: "1d-4", expect: "1d-4"},

    { value: "1.7976931348623157e+308", expect: 1.7976931348623157e+308},

    // strings that should not be considered numbers
    { value: "1 2", expect: "1 2"},
    { value: " 1 2", expect: " 1 2"},
    { value: "foo123", expect: "foo123"},
    { value: "123foo", expect: "123foo"},
    { value: "123foo456", expect: "123foo456"},
    { value: "123 bar", expect: "123 bar"},
]

// just strings! should NOT be considered numbers
const testStrings = [
    { value: "1 2", expect: "1 2"},
    { value: " 1 2", expect: " 1 2"},
    { value: "foo123", expect: "foo123"},
    { value: "123foo", expect: "123foo"},
    { value: "123foo456", expect: "123foo456"},
    { value: "foo123bar", expect: "foo123bar"},
    { value: "foo 123", expect: "foo 123"},
    { value: "123 bar", expect: "123 bar"},
    { value: "0 foo 123 bar 456", expect: "0 foo 123 bar 456"},
    { value: "a very long long long looooooooooooooooooooooooooooong string", expect: "a very long long long looooooooooooooooooooooooooooong string"},
    { value: "123 numbers followed by a very long long long looooooooooooooooooooooooooooong string", expect: "123 numbers followed by a very long long long looooooooooooooooooooooooooooong string"},
    { value: "123 numbers followed by a very long long long looooooooooooooooooooooooooooong string followed by numbers 123", expect: "123 numbers followed by a very long long long looooooooooooooooooooooooooooong string followed by numbers 123"},
]
const iterations = 100000
console.log('################################################################################')
console.log(`Data set 'testNumbers[${testNumbers.length}], ${iterations} iterations.  ${testNumbers.filter(e => typeof e.expect === 'number').length} numbers, ${testNumbers.filter(e => typeof e.expect !== 'number').length} non numbers`)
console.log('')
const testResults1 = doTest(toNumber_parseFloat, testNumbers, iterations)
const testResults2 = doTest(toNumber_regex, testNumbers, iterations)
const testResults3 = doTest(toNumber_proposed, testNumbers, iterations)
logResults([testResults1, testResults2, testResults3])

console.log('################################################################################')
console.log(`Data set 'testStrings[${testStrings.length}], ${iterations} iterations.  (all strings, no numbers)`)
console.log('')
const testResults1b = doTest(toNumber_parseFloat, testStrings, iterations)
const testResults2b = doTest(toNumber_regex, testStrings, iterations)
const testResults3b = doTest(toNumber_proposed, testStrings, iterations)
logResults([testResults1b, testResults2b, testResults3b])

function doTest(testFunction, testValues, iterations = 10000) {
    const performanceStart = performance.now();
    const opCount = testValues.length * iterations;
    const failures = {};
    let passCount = 0;
    for (let i = 0; i < iterations; i++) {
        testValues.forEach(({value, expect}) => {
            const result = testFunction(value);
            if (result === expect) {
                passCount++
            } else {
                failures[value] = {
                    result: result,
                    expected: expect
                }
            }
        });
    }
    return { functionName: testFunction.name, opCount, passCount, failures, duration: performance.now() - performanceStart }
}

function logResults(testResults) {
    const arr = Array.isArray(testResults) ? testResults : [testResults]
    for (const testResult of arr) {
        const {functionName, opCount, passCount, failures, duration} = testResult
        const fnLen = functionName.length
        const header = fnLen > 80 ? functionName : functionName.padStart((80 - fnLen) / 2 + fnLen, "-").padEnd(80, "-")
        console.log(header);
        console.log("Operations : " + opCount)
        console.log("Pass rate% : " + (passCount / opCount * 100).toFixed(2) + "%")
        console.log("Performance: " + duration + "ms");
        if (Object.keys(failures).length) {
            console.log("Failures:")
            console.table(Object.entries(failures).map(([key, val]) => { return { test: key, ...val } }))
        }
        console.log("--------------------------------------------------------------------------------");
        console.log("");
    }
}

@dceejay ^ scratch that ^
It would mess with things like phone numbers<PHONE_NUMBER> and the likes :(
Was a nice idea until reality got in the way.
PR incoming for the work we discussed last week.

Also would it have worked with exponents ?     3e5  10e-2  etc ?

Also would it have worked with scientific notation ? 3E5 10E-2 etc ?

@dceejay  Yeah, +casting does handle scientific notation too.

It would mess with things like phone numbers<PHONE_NUMBER> and the likes :(

I think I have a compromise which yields 20%+ performance increase (not as snappy as previous try out, but it passes all the tests and gives us 0x0, 0b0, 0o0 parsing too)
By simplifying the number check regex and reversing the logic (i.e. find the things we know we DONT want to convert) then let the +cast do its bit.
// original regex
const isNumberTest = /^ *[-]?(?!E)(?!0\d)\d*\.?\d*(E-?\+?)?\d+ *$/i;
function toNumber_regex(value) {
    const isNumber = isNumberTest.test(value)
    return isNumber ? parseFloat(value) : value
}

// alt logic
const skipNumberConversion = /^ *(\+|-0\d|0\d)/
function toNumber_proposed_alt(value) {
    if(!skipNumberConversion.test(value)) {
        const v = +value
        return !isNaN(v) ? v : value
    }
    return value
}

operational comparison

Performance Summary

toNumber_proposed_alt is ~12.8% faster than toNumber_regex when the CSV data strings are mostly numerical
toNumber_proposed_alt is ~37% faster than toNumber_regex when NONE of the CSV data strings are numerical
toNumber_proposed_alt is ~13% faster than toNumber_regex when the CSV data is all numerical strings

Performance Details (click to view)

################################################################################
Data set 'testNumbers[60], 200000 iterations.  40 numbers, 20 non numbers

---------------------------------toNumber_regex---------------------------------
Operations : 12000000
Pass rate% : 78.33%
Performance: 1214.7373000383377ms
Failures: 13...
┌─────────┬────────────┬────────────┬──────────┐
│ (index) │    test    │   result   │ expected │
├─────────┼────────────┼────────────┼──────────┤
│    0    │   '0x0'    │   '0x0'    │    0     │
│    1    │ '0x000000' │ '0x000000' │    0     │
│    2    │   '0x1'    │   '0x1'    │    1     │
│    3    │   '0x01'   │   '0x01'   │    1     │
│    4    │  '0x001'   │  '0x001'   │    1     │
│    5    │   '0b0'    │   '0b0'    │    0     │
│    6    │ '0b000000' │ '0b000000' │    0     │
│    7    │   '0b1'    │   '0b1'    │    1     │
│    8    │  '0b0001'  │  '0b0001'  │    1     │
│    9    │  '0b1010'  │  '0b1010'  │    10    │
│   10    │   '0o1'    │   '0o1'    │    1     │
│   11    │  '0o001'   │  '0o001'   │    1     │
│   12    │  '0o123'   │  '0o123'   │    83    │
└─────────┴────────────┴────────────┴──────────┘
--------------------------------------------------------------------------------

-----------------------------toNumber_proposed_alt------------------------------
Operations : 12000000
Pass rate% : 100.00%
Performance: 1059.2009999752045ms
--------------------------------------------------------------------------------

toNumber_proposed_alt is ~12.8% faster than toNumber_regex
when there are mostly numbers in the strings

################################################################################
Data set 'testStrings[12], 200000 iterations.  (all strings, no numbers)

---------------------------------toNumber_regex---------------------------------
Operations : 2400000
Pass rate% : 100.00%
Performance:<PHONE_NUMBER>168396ms
--------------------------------------------------------------------------------

-----------------------------toNumber_proposed_alt------------------------------
Operations : 2400000
Pass rate% : 100.00%
Performance:<PHONE_NUMBER>322342ms
--------------------------------------------------------------------------------

toNumber_proposed_alt is ~37% faster than toNumber_regex
when the CSV data strings are NOT numerical

################################################################################
Data set 'allNumbers[40], 200000 iterations.  (all numbers)

---------------------------------toNumber_regex---------------------------------
Operations : 8000000
Pass rate% : 67.50%
Performance:<PHONE_NUMBER>324249ms
Failures: 13...
┌─────────┬────────────┬────────────┬──────────┐
│ (index) │    test    │   result   │ expected │
├─────────┼────────────┼────────────┼──────────┤
│    0    │   '0x0'    │   '0x0'    │    0     │
│    1    │ '0x000000' │ '0x000000' │    0     │
│    2    │   '0x1'    │   '0x1'    │    1     │
│    3    │   '0x01'   │   '0x01'   │    1     │
│    4    │  '0x001'   │  '0x001'   │    1     │
│    5    │   '0b0'    │   '0b0'    │    0     │
│    6    │ '0b000000' │ '0b000000' │    0     │
│    7    │   '0b1'    │   '0b1'    │    1     │
│    8    │  '0b0001'  │  '0b0001'  │    1     │
│    9    │  '0b1010'  │  '0b1010'  │    10    │
│   10    │   '0o1'    │   '0o1'    │    1     │
│   11    │  '0o001'   │  '0o001'   │    1     │
│   12    │  '0o123'   │  '0o123'   │    83    │
└─────────┴────────────┴────────────┴──────────┘
--------------------------------------------------------------------------------

-----------------------------toNumber_proposed_alt------------------------------
Operations : 8000000
Pass rate% : 100.00%
Performance:<PHONE_NUMBER>071121ms
--------------------------------------------------------------------------------

toNumber_proposed_alt is ~13% faster than toNumber_regex
when the data is all numerical strings

Differences that we need to agree:

RFC MODE - Will parse hex/oct/bin notation numbers - CHANGE
RFC MODE - All other strings (not covered by point 1) should yield the same result as lecagy mode - NO CHANGE
LEGACY MODE - CSV parsing will use the original regex - NO CHANGE

Final words
I have now spent far too much time on this in the pursuit of a few ms.  What do they say about premature optimisation? 😆

Hi @Steve-Mcl, can you please close this issue (resolved in 4540) because it seems that GH did not do it. Thanks 🙂

It will be closed when merged into master

I have removed the needs-triage label and added fixed label


Agent's set_destination needs update in their logic and fix broken tailgating, but how?

Description
Addresses #7341:
set_destination does not really use the start_location, only for boolean evaluation instead of allowing users to pass a location.
In my experiments this sometimes creates troubles when passing a starting point, e.g. for tailgating the agent performs U-Turns to an old way point.
Where has this been tested?
Note: Python code only

Platform(s): Ubuntu 22.04
Python version(s): 3.7, 3.10
Unreal Engine version(s): 4.26

Possible Drawbacks

This change is

@glopezdiest could you give it a look when you have the chance and share your thoughts. Thanks a lot.

Thank you for your reply.
As summary, we have these cases and end_location is always not None:

The first one is the more generic one. Both start_location and end_location are given, because a specific path is desired. In this case, the function should clean the previous queue, and just add the new route. In this case, the start_location can make the controller fail if it is a weird position, but that is acceptable and the fault relies on the inputs, not the function itself.

start_location is not None
clear_queue=True

The second one is the rerouting one, where you just want to, for example, stop moving randomly, and start moving in a specific way.

start_location is None
clear_queue=True

The third one is the non-interference one, where you don't want to change the current behavior, and just add to it once it has finished.

start_location is None
clear_queue=False

Theoretically this gives a fourth case similar to 3) with the problems of 1) and up to the input.

start_location is not None
clear_queue=False

I'll look again over it in the coming days/week

That breakdown looks good to me

Theoretically this gives a fourth case similar to 3) with the problems of 1) and up to the input.
start_location is not None
clear_queue=False
And yes, that's true, but I don't see an issue with that. It is a weird use-case from my point of view, but maybe someone can find a reasonable on later on

@Daraan Would you be interested in changing the set_destination function as discussed? I think this would be a good fix

Yes, I am just held up with something else currently.
I'll look again in the next week (s)
Am 31.05.2024 13:13 schrieb "glopezdiest - @." @.>:
External Sender: Achtung bei Links & Anhängen innerhalb dieser E-Mail // Careful with links & attachments inside this email!
@Daraanhttps://github.com/Daraan Would you be interested in changing the set_destination function as discussed? I think this would be a good fix
—
Reply to this email directly, view it on GitHubhttps://github.com/carla-simulator/carla/pull/7342#issuecomment-2141799919, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGU3QFXT5UKEUCFVEKDMY2DZFBLOXAVCNFSM6AAAAABF6OGM2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBRG44TSOJRHE.
You are receiving this because you were mentioned.Message ID: @.***>

@glopezdiest
I've finished and updated the rework. Comments are currently left in for you and can/should be cleaned.
Case 2 start_location=None, clean_queue=True:

Default A same behavior: However, it also checks if the local_planner.target_waypoint is set. This is currently always the case, but I think it could make sense in the future to set it to None in LocalPlanner.run_step when the queue is empty instead of keeping the last waypoint that was targeted -> fallback to vehicle location if it is not available.

Case 1 :  start_location not None, clean_queue=True:

Default B - New behavior : start_location is actually used instead of disregarding it for the vehicle location. For me this fixes the BehaviorAgents buggy tailgaiting behavior of randomly turning around because the queue, was not cleaned (#7341 )

Case 3:  start_location=None, clean_queue=False:

If the queue is not empty takes the last waypoint from the local planner's waypoint queue as starting location so that the new route is appended. In my opinion it makes no sense to plan from the current location, right?. If empty -> fallback to vehicle location.
NOTE: This last waypoint will then be twice in the queue. Do you think this could cause a problem? Could also pop it at that location instead.

Case 4:  start_location not None, clean_queue=False:

New theoretical option as discussed above.

Looks good, if you remove the comments we can merge it

Looks good, if you remove the comments we can merge it

Take a look again. Are you find with the cleaned comments and type annotation or should I fully remove them?

The small comment is fine, as a further clarification. I'll merge it ASAP


[Storage] Prep for STG91 GA Release (again)

I messed up on getting APIView approval in time, so.. tomorrow 😄

API change check
API changes are not detected in this pull request.


Fix wheels not being compressed

As pointed out in https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.writestr when creating a ZipInfo it defaults to ZIP_STORED, which means the compression passed to zipfile.ZipFile() is ignored. This leads to the wheel file being uncompressed.
To fix this copy over the compression type from the ZipFile instance. Note that the same is true for the compression level, but it's not used, and there is currently no public API to set it, see https://github.com/python/cpython/issues/65616#issuecomment-1303990505
Fixes #519

In my case this reduced the file size for one wheel from ~500kb to ~130kb

Good catch. I'm surprised we didn't notice this before: meson-python is used for some large projects!Thanks for the patch. It looks good, but i think you missed one instance of .writestr() that needs handling, and the test needs to be updated to catch it.

I can only see two calls to writestr() and both are handled :/

Other than that, can you please wrap the commit message at 72 characters? And, just to be extra picky, we use a convention where "Fix" in the commit message subject line is lowercase not capitalized. Thanks!

done

I can only see two calls to writestr() and both are handled :/

Yes, sorry, my bad. Not enough coffee this morning yet.

Thanks!

Thanks a lot, great catch!

I'm surprised we didn't notice this before: meson-python is used for some large projects!

I think why I didn't notice is that we always run numpy/scipy wheels through auditwheel & co, and those tools will write out a new compressed wheel with dependencies vendored, so in those cases it didn't matter. Without that, the difference is very large indeed.


What is possible or not in Svelto.Tasks ?

Im just diving in to the convoluted world of tasks and threads and im really frustrated of all the limitations and (probably necessary) safety precautions of paralell processing.
I have but one simple problem : i want to push webcamtexture processing to the background thread and recover vector3 array back to the main thread to use it for something fancy.
The thing is that i have no idea if in Svelto.Tasks i have to convert  the wecamtex to Color32 array or byte array and then convert it back to process it with external library for cv. Also i have no idea if this will speed the performace up or not.

Hello,
theoretically is possible. Svelto.Tasks 1.5.9 is also theoretically stable, but it's a LONG time I don't use it as I know work with an alpha version of Svelto.Tasks 2.0 that is unreasable.
If I were you, would check first the .net Tasks library. In many sense they are really similar in the way of thinking, but at least you are 100% sure that .net Tasks works and nowadays is also as simple to use.

Hello,
theoretically is possible. Svelto.Tasks 1.5.9 is also theoretically stable, but it's a LONG time I don't use it as I know work with an alpha version of Svelto.Tasks 2.0 that is unreasable.
If I were you, would check first the .net Tasks library. In many sense they are really similar in the way of thinking, but at least you are 100% sure that .net Tasks works and nowadays is also as simple to use.

@sebas77
Yes im using unity currently.
Ive already thought about using tasks but im afraid that i couldnt use the unity specific objects like "webcamtexture" .
My other choices currently are Unitask and bare net tasks.

@sebas77
Yes im using unity currently.
Ive already thought about using tasks but im afraid that i couldnt use the unity specific objects like "webcamtexture" .
My other choices currently are Unitask and bare net tasks.

check this repo, you should find good examples: https://github.com/sebas77/Svelto.Tasks.Tests
I hope it will help you! Good luck.

check this repo, you should find good examples: https://github.com/sebas77/Svelto.Tasks.Tests
I hope it will help you! Good luck.


While trying to install package i am facing the error.

npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node":
HTTP error 404 Not Found
Hint: If github.com is not accessible in your location
try setting a proxy via HTTP_PROXY, e.g.
  export HTTP_PROXY=http://example.com:1234

or configure npm proxy via
  npm config set proxy http://example.com:8080

gyp info it worked if it ends with ok
gyp verb cli [ '/usr/local/bin/node',
gyp verb cli   '/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library=' ]
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| darwin | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb which failed Error: not found: python2
gyp verb which failed     at getNotFoundError (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:13:12)
gyp verb which failed     at F (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:68:19)
gyp verb which failed     at E (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:80:29)
gyp verb which failed     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:89:16
gyp verb which failed     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/isexe/index.js:42:5
gyp verb which failed     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/isexe/mode.js:8:5
gyp verb which failed     at FSReqWrap.oncomplete (fs.js:152:21)
gyp verb which failed  python2 { Error: not found: python2
gyp verb which failed     at getNotFoundError (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:13:12)
gyp verb which failed     at F (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:68:19)
gyp verb which failed     at E (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:80:29)
gyp verb which failed     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:89:16
gyp verb which failed     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/isexe/index.js:42:5
gyp verb which failed     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/isexe/mode.js:8:5
gyp verb which failed     at FSReqWrap.oncomplete (fs.js:152:21)
gyp verb which failed   stack: 'Error: not found: python2\n    at getNotFoundError (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:13:12)\n    at F (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:68:19)\n    at E (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:80:29)\n    at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/which/which.js:89:16\n    at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/isexe/index.js:42:5\n    at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/isexe/mode.js:8:5\n    at FSReqWrap.oncomplete (fs.js:152:21)',
gyp verb which failed   code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb which succeeded python /usr/bin/python
gyp verb check python version /usr/bin/python -c "import platform; print(platform.python_version());" returned: "2.7.10\n"
gyp verb get node dir no --target version specified, falling back to host node version: 8.9.1
gyp verb command install [ '8.9.1' ]
gyp verb install input version string "8.9.1"
gyp verb install installing version: 8.9.1
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version not already installed, continuing with install 8.9.1
gyp verb ensuring nodedir is created /Users/12112211/.node-gyp/8.9.1
gyp verb created nodedir /Users/12112211/.node-gyp/8.9.1
gyp http GET https://nodejs.org/download/release/v8.9.1/node-v8.9.1-headers.tar.gz
gyp WARN install got an error, rolling back install
gyp verb command remove [ '8.9.1' ]
gyp verb remove using node-gyp dir: /Users/12112211/.node-gyp
gyp verb remove removing target version: 8.9.1
gyp verb remove removing development files for version: 8.9.1
gyp ERR! configure error
gyp ERR! stack Error: ENOENT: no such file or directory, open '/Users/12112211/Documents/Development/New Ember Application/samplePr/C:/devel/ret_root.crt'
gyp ERR! stack     at Object.fs.openSync (fs.js:646:18)
gyp ERR! stack     at Object.fs.readFileSync (fs.js:551:33)
gyp ERR! stack     at readCAFile (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/node-gyp/lib/install.js:466:15)
gyp ERR! stack     at download (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/node-gyp/lib/install.js:438:22)
gyp ERR! stack     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/node-gyp/lib/install.js:185:19
gyp ERR! stack     at /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/mkdirp/index.js:30:20
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:135:15)
gyp ERR! System Darwin 17.2.0
gyp ERR! command "/usr/local/bin/node" "/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/ember-intl-tel-input/node_modules/node-sass
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
Build failed with error code: 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: node scripts/build.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      /Users/12112211/.npm/_logs/2017-12-12T08_52_35_790Z-debug.log

<EMAIL_ADDRESS>install /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/ember-intl-tel-input/node_modules/node-sass
node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node

<EMAIL_ADDRESS>postinstall /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/ember-intl-tel-input/node_modules/node-sass
node scripts/build.js

Building: /usr/local/bin/node /Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
at Promise.all.then.arr (/Users/12112211/Documents/Development/New Ember Application/samplePr/node_modules/execa/index.js:236:11)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)

npm version  5.5.1
node version 8.9.1
ember version is 2.17.0
Python 2.7.10
I have node-sass version 4.5.2 installed in my PC as node 8 does not support 3.13.1.
Please let me know how to resolve this issue and install the "ember-intl-tel-input" .

I get the same error as well.

Hello, This project looks like is not currently mantained. I've made a fork of this project. Check it at  https://emberobserver.com/addons/ember-intl-tel-input2


qFlipper: Add wrapGAppsHook to build inputs

Description of changes
I'm on NixOS 22.11 (Raccoon, gnome DE) and when using qFlipper it runs into an error while attempting to select a file from  my system.
(qFlipper:187584): GLib-GIO-ERROR **: 17:27:29.657: Settings schema 'org.gtk.Settings.FileChooser' is not installed

This was resolved by adding wrapGAppsHook
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Appears to be working~

Do you wish to make any further changes?

@cab404 No that's all!


Cannot use make to build sdb library [Question]

Hi,
In the README.md you write:
First, clone the submodules:
$ git submodule update --init --recursive
To build, run:
$ make
I have problems running the make - command prompt says the make command doesn't exist.
Perhaps I am missing something fundamental, would be appreciated if someone could help me so I can use the debuggin tools.
Thanks in advance,
Alexander

Which platform are you using?

I am running Windows 10, if that is what you are asking :)

OK then you need to install a POSIX environment like https://www.cygwin.com/ to be able to build it.

Closing as the question has been answered.


lbmap: correct comment for Service4Value and Service6Value

Update the comment for Service4Value and Service6Value to align with the commit 899feebe724b ("bpf: Get rid of _v2 in svc code").
Correct the comment for Service4Value and Service6Value

@ldelossa I update the PR with lable "release-note", the "dont-merge/needs-release-note-label" is still existed. So this should be handled by manual to remove the "dont-merge" tag ?

Hi @borkmann @ldelossa ,How to fix the 13 "Expected — Waiting for status to be reported" CI issues ? I rebased it many times, the same results. :-(

/test

/test

/test

/test

/ci-ipsec-upgrade

/ci-ipsec-upgrade

/ci-ipsec-upgrade

/ci-ipsec-upgrade


Picoin

Sure but picoin no network to send
On Mon, 1 Jun 2020, 02:12 Henry Watson<EMAIL_ADDRESS>wrote:

Hi I like what you are doing with a widely available to mine cryptocurrency
for the wider public is there any chance you can donate me some picoin
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/picoin/picoin_v1/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGLYGEBOPI6E75LUS5ZOT7LRUK6LJANCNFSM4NPJ7CQA
.


Multicontainer docker support on Beanstalk

It seems to me that the best of both worlds (docker and EBS) should be possible: https://aws.amazon.com/about-aws/whats-new/2015/03/aws-elastic-beanstalk-supports-multi-container-docker-environments/
I'm looking into this setup, but if anyone has any suggestions it'd be awesome to hear!

@philippeluickx I'm pretty in this type of setup and a willing test user. :) Let me know how I can help. I'm happy to do research if you can think of a checklist.

I'm definitely interested in this effort, but as I'm not a Docker expert, the most I can do is review pull requests.

@pydanny Thanks for the thumbs up!
@statwonk I got a basic setup running, still interested?
I'm actually making progress with this, got a first very basic setup running.
However, there are some practical challenges. E.g. one is that with multicontainer Beanstalk, you pull docker images from repositories, you can not build and push a container yourself.
So this setup would work, but there would be quite some docs and instructions on how to get it running.
Still trying to learn how to get a full project up, once I have that running I'll fork and share what I've got!

I'm excited by this! For the HTTP Server are you using Nginx or Caddy? I'm asking because websocket/asgi support would mean channels on ELB! Yeah!

Using plain old nginx. But it's docker, so should be easy to swap?
On Wed, Apr 26, 2017, 23:32 Daniel Roy Greenfeld<EMAIL_ADDRESS>wrote:

I'm excited by this! For the HTTP Server are you using Nginx or Caddy? I'm
asking because websocket/asgi support would mean channels on ELB! Yeah!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pydanny/cookiecutter-django/issues/1004#issuecomment-297532583,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAzFAqMoLhtJyHEWE_YymvhwWOJrxR5Dks5rz6npgaJpZM4LrE_h
.

Nginx is fine with me. I know @jayfk prefers Caddy, but as long as we get this for ELB, I'm not picky. 😄

https://github.com/philippeluickx/cookiecutter-django/tree/d/ebs
Started a new fork (and d/ebs branch) to share what I've got so far. I started out by removing a lot of functionality (e.g. Celery support) to get just to basics running. So far a simple implementation works for my project that started from a basic cookiecutter, trying to copy the changes to the core project.
I'd love to get feedback on this. Wouldn't make sense to continue adding functionality and logic if the starting point goes in the wrong direction.
By the way, if there is any better way to test, I'd love to hear about it. For now, I always do a git push for the smallest change to debug, not really best practice I fear.
Finally, I couldn't test it myself because of an issue https://github.com/pydanny/cookiecutter-django/issues/1150 .

Hey @philippeluickx  thanks for the work! I also want to get this working on Elasticbeanstalk but i was approaching it from the Python EBS platform and not the multi-container docker route. I'll give your fork a try and will provide feedback if I can

@matt7277 Sounds good!
It's really really WIP, but drop me a message when you get stuck somewhere.
I am keeping some docs as well, make sure to check that out.

@pydanny @matt7277 Found some time and got the multicontainer setup to work. Please check out https://github.com/philippeluickx/cookiecutter-django/tree/d/ebs2 . Added a file in docs, so be sure to read that.
I would need people testing this more in depth, what's the best approach?

Stumbled upon this issue today. Just a heads up that the EBS support has been removed recently.

Yes, I'll be putting up a fork for this and rebase regularly. Thanks for the heads up!


Sharp do not release the gif input image

For example, it is not possible to delete the gif image after passing it to Sharp.
import sharp from 'sharp'
import fs from 'fs'

let input = 'link to a gif image'
let output = '…'

async function start() {
  await sharp(input).png().toFile(output)

  fs.rmSync(input) // KO
  fs.rmSync(output) // OK
}

start()

System

OS: Windows 10 10.0.19042
CPU: (8) x64 Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
Memory: 1.49 GB / 7.94 GB

Binaries

Node: 14.17.0
Yarn: 1.22.10
npm: 7.19.0

Hi, did you see https://sharp.pixelplumbing.com/api-utility#cache
sharp.cache(false);

Oops, sorry I hadn't seen. :sweat_smile:


Java support, create module, package and deploy lambda

The stylistic changes make it harder to review the core deltas.

Doesn't matter what it looks like.  This is a start for Java support! :+1: :100:

Yeah, some of the files hand't been formatted with jscs yet.  Should I have created a separate pull-request with just those changes first?

@doapp-jeremy It would be easier to review I guess. Nice work! :+1:

this is awesome!
any eta on when itll be merge/part of a release?

I'm interested in the progress on this, as my teams will mainly use Java based lambdas. However, we are using gradle as the build tool rather than maven - any chance to make it so I can plug in my own gradle based package manager?

@ac360 It looks like the code has changed pretty significantly since this was written. I think it might make sense to close this PR for now and as part of the java support roadmap item, take care to create a good abstraction around builds so that other build tools like gradle or sbt can be easily used in the future.

Closing this PR as it's severely outdated. Thanks tons @doapp-jeremy for your work on this :blush:


Add dnt support in s2s ( Proto changes)

Added dnt_phrases parameter in translation_config.

@shiralal please rebase on top of release/2.17.0 branch, since it is targeted for upcoming release.

@shiralal please rebase on top of release/2.17.0 branch, since it is targeted for upcoming release.

rebased on release/2.17.0 branch


Add description of install_yamls_makes

As a pull request owner and reviewers, I checked that:

[x] Appropriate documentation exists and/or is up-to-date:

Depends-On: https://github.com/openstack-k8s-operators/ci-framework/pull/695

This can be merged once rebased on https://github.com/openstack-k8s-operators/ci-framework/pull/695

Will let @dasm decide if he wants to point to an example as shown by Marios.
Also, maybe showing how to invoke the role to generate the install_yamls_make role? This is shown here:
https://github.com/openstack-k8s-operators/ci-framework/blob/main/ci_framework/playbooks/01-bootstrap.yml#L46-L50

/approve


Add support for RHSSO and OpenId Connect

This PR integrates Red Hat Single Sign-On with APIcast to verify the identity of an End-User and issue JWT tokens for use by 3scale applications (clients in Red Hat Single Sign-On) wishing to access the End-User resources.
JWTs will be issued by  Red Hat Single Sign-On and verified by APIcast based on the public key for the  Red Hat Single Sign-On realm configured. Rate limiting and usage on 3scale will be done based on the client_id (aud value encoded in JWT.)
TODO

[x] add a CHANGELOG entry
[x] write description of this PR
[x] document RHSSO_ENDPOINT variable
[x] let @3scale/productization know about new dependency (https://github.com/3scale/apicast/pull/283/files#r104702400)

For this to go into ER5 it basically means it will need to be reviewed and merged tomorrow Thursday. We will do a dry-run release on Friday for the real thing on Monday.

We are using the complete JWT in the cached_key, this might not be optimal, as it can be huge (and the shared dict is limited in size), and we really just need the extracted app_id.

@mayorova Agree that would be good, but I'm not comfortable making more changes without test coverage. IMO that can wait for CR1 and be done with proper test coverage (like full integration test with keycloak).

Regarding the JWT in the cached key, we need to think about the trade off of verifying the jwt each time (to extract the client_id) versus once only, not sure what's best, for now I decided to just keep the jwt in the cache

Thinking about it some more, the JWT will expire at some point so we should take that into consideration... I guess this would be fixed if we verify the JWT each time

True. It is quite trivial to extract the TTL from the token and add the cache key with expiry.


flac-linux-x86 file not found

i started a virtualenv with python3 on it
installed pocketsphinx,pyaudio and speech_recognition using pip
then ran python -m speech_recognition
and ran into this
FileNotFoundError: [Errno 2] No such file or directory: '/home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition/flac-linux-x86'
please note that the file exists when i used ls command
VirtualBox:~/testmic$ ls '/home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition/flac-linux-x86'
/home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition/flac-linux-x86

this is the full output :
A moment of silence, please...
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Set minimum energy threshold to<PHONE_NUMBER>086315
Say something!
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Got it! Now to recognize it...
Traceback (most recent call last):
  File "/usr/lib/python3.4/runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.4/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition/__main__.py", line 16, in <module>
    value = r.recognize_google(audio)
  File "/home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition/__init__.py", line 642, in recognize_google
    convert_width = 2 # audio samples must be 16-bit
  File "/home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition/__init__.py", line 385, in get_flac_data
    ], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
  File "/usr/lib/python3.4/subprocess.py", line 859, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.4/subprocess.py", line 1459, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: '/home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition/flac-linux-x86'

That's weird, can you try out the following to narrow down the issue?

Try running the example code outside of a virtualenv.
Try one of the other example scripts, such as this one
Are you sure you checked that it exists inside your VM? I noticed you're running this in VirtualBox.
Check if it works when run as superuser. When it's allowed to, the library will do a more thorough search for the binaries.
How did you install the library, exactly? Inside the VM, right?

As a temporary workaround, simply do sudo apt-get install flac, yum install flac, or your OS's equivalent of this.

note : installing flac solved the problem inside and outside virtualenv
1- i got the same result outside virtualenv
2- this is weird , but the example resulted into this:
FileNotFoundError: [Errno 2] No such file or directory: '/home/scriptus/testmic/english.wav'
3- all the output i sent was actually from the virtual machine , i sent the issue from it
4- superuser gives the same error
5 -
i installed lubuntu 15.10 on a virtualbox VM , then
im gonna rebuild the virtualenv and share it with u , step by step
sudo apt-get install python3-pip
virtualenv --no-site-packages --python=python3 testmic
cd testmic
source bin/activate
pip3 install pocketsphinx
pip3 install pyaudio
pip3 install speechrecognition
python3 -m speech_recognition

with flac installed it works , without it doesnt

Running the same commands on Ubuntu 16.04 did not manifest the issue. In fact, the example works quite fine out of the box.
Perhaps the output of ls -l /home/scriptus/testmic/lib/python3.4/site-packages/speech_recognition would be useful?

well , i got rid of that VM and decided to start from scratch
you were right , it worked just fine this time , i have no idea what was wrong with the previous installation
as for the example , i just forgot to include an "english.wav" file in the directory , so all is fine now :smiley:

Huh, well glad it works now, please do re-open if it happens again!


Bug Bounty - Looking for security issues in your CI. Please ignore :)  bacnvy

Bug Bounty - Looking for security issues in your CI. Please ignore :)  bacnvy

Build failed (check pipeline).

gooddata-create-gooddata-react-app-unit-tests-zuul-docker : SKIPPED
https://checklist.intgdc.com/job/compliance/job/gooddata-create-gooddata-react-app-oss-check/374/ : Tests on opensource repositories should be triggered by users in gooddata organization in 4s