fix: stackoverflow on sorting large number of PaletteItems

As reported in #1606, for large numbers of PaletteItems (5k+) im::Vector causes a stackoverflow by recursively calling a sort function. This PR collects the im::Vector into a Vec and uses std's sorting implementation instead, which does not exhibit this behaviour.
I've added a unit test to guard against this regressing.

[x] Added an entry to CHANGELOG.md if this change could be valuable to users

Codecov Report

Merging #1617 (5a989b5) into master (1431496) will increase coverage by 0.07%.
The diff coverage is 100.00%.

 Learn more


Comments Component now Fails to Load

Describe the bug
I previously had to comments component up and running on my garden. But then updated to the most recent commits and realized that it now fail to load at all. There are not errors in the console and a quick inspection looks like the afterbody div just doesn't exist anymore.
To Reproduce
Steps to reproduce the behavior:
updated branch to commit #1575
Load site with comments component
Nothing happens
Checked on desktop using chrome and edge
Checked on mobile using chrome and safari all with the same result
Expected behavior
Giscus to load
Screenshots and Source

You can help speed up fixing the problem by either
My Fork https://github.com/harrellbm/Quartz-Garden
Site this can be observed on https://harrellbm.github.io/Quartz-Garden/
Desktop (please complete the following information):

Quartz Version: [e.g. v4.1.2]
node Version: [e.g. v18.16]
npm version: [e.g. v10.1.0]
OS: [e.g. iOS]
Browser [e.g. chrome, safari]

Additional context
Add any other context about the problem here.

After updating and trying to use the Comments component for the first time, I ran into the same problem. I've followed all instructions in https://quartz.jzhao.xyz/features/comments . 🥺
commit 1ab9c91df1df799f7a1004200ff890b144d00f19 (HEAD -> v4, upstream/v4)
Author: Aaron Pham<EMAIL_ADDRESS>Date:   Sun Nov 10 18:13:12 2024 -0500

    feat(mermaid): improvement navigation (#1575)

    * feat(mermaid): custom stuff

Can you check if https://github.com/jackyzha0/quartz/pull/1586 fixes this issue?

I can confirm the patch works perfectly! Thanks for the quick response!


Remove branches and cleanup repo

[ ] Remove all branches, which are not required

@awmatheson can you take a look at this repo next week and

Check whether everything is working and
Delete all branches which are not required.
This would be great!


Question: if flake update fails, is PR created?

Thanks for this great GitHub Action. I haven't tested it yet.
What happens if flake update fails?  Will the PR still be created?
An example is the hackage-server flake.nix. Right now, nix flake update will fail because the Flake is incompatible with current NixPkgs.
Additionally, building on https://github.com/DeterminateSystems/update-flake-lock/issues/91, can additional checks be specified that would prevent the PR from being created?
Assuming the PR is created regardless of flake update success or failure, a broken flake.nix can be caught by other GitHub Action tests on the flake. However, there may be a lot of automated and broken PRs sitting in the list.

I think I've answered my own question; no:
https://github.com/DeterminateSystems/update-flake-lock/blob/db4ee38117a597ea8df8f7f75a187dd65093eade/src/index.ts#L65


Translation workflow with prose.io

@Nick-Tallguy
For translators using prose.io it might be easier to provide all files at once.
If we provide files as they proceed, it creates apparently diverging forks and eventually their repo goes out of sync when we merge their finished parts.
Or we need admin rights on their github repos so that we keep them in sync and it should reflect on prose.io repos.
cc @yohanboniface (thanks for the diagnosis and input!)

Althio,
Thanks for that, I hadn't realized what the problem was. I've been
sending messages with images to anders, hoping he will update his
repository following my instructions.
Because of the changes proposed on the staging site, which seems to have
approval, I suggest that the translators work on the staging site.
Hopefully I won't be making any more changes to the beginner section.
Also the start of the JOSM section should be stable.
I have on one occasion 'pulled' from Anders fork without him pushing,
and then made the changes to get it working on the staging site.
Regards
Nick
On 10/06/15 21:57, althio wrote:

@Nick-Tallguy https://github.com/Nick-Tallguy
For translators using prose.io it might be easier to provide all files
at once.
If we provide files as they proceed, it creates apparently diverging
forks and eventually their repo goes out of sync when we merge their
finished parts.
Or we need admin rights on their github repos so that we keep them in
sync and it should reflect on prose.io repos.
cc @yohanboniface https://github.com/yohanboniface (thanks for the
diagnosis and input!)
—
Reply to this email directly or view it on GitHub
https://github.com/Nick-Tallguy/Nick-Tallguy.github.io/issues/25.

--
Nick
Volunteer 'Tallguy' for
https://wiki.openstreetmap.org/wiki/Humanitarian_OSM_Team
http://www.openstreetmap.org/user/Tallguy

Currently trying out  Transifex as a method of providing translations for the site. It should be a lot simpler for the translators. LearnOSM is listed under the HOT section.
Provided it works okay it may solve all the issues we have been having with keeping forks up to date.

Transifex is working well


add ZKPathConstantTest (#484)

Make sure that:

[x] You have read the contribution guidelines.
[x] You submit test cases (unit or integration tests) that back your changes.
[x] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #504 (806ab2a) into master (ed922a2) will increase coverage by 0.18%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #504      +/-   ##
============================================
+ Coverage     13.92%   14.11%   +0.18%
- Complexity      260      269       +9
============================================
  Files           244      244
  Lines          4975     4975
  Branches        463      463
============================================
+ Hits            693      702       +9
+ Misses         4207     4198       -9
  Partials         75       75

Impacted Files
Coverage Δ
Complexity Δ

...va/org/dromara/soul/common/constant/Constants.java
50.00% <0.00%> (+50.00%)
1.00% <0.00%> (+1.00%)

.../dromara/soul/common/constant/ZkPathConstants.java
88.88% <0.00%> (+88.88%)
8.00% <0.00%> (+8.00%)

Continue to review full report at Codecov.

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


feat(observability): add pprof debug support to eg

What type of PR is this?

feat(observability): add pprof debug support to eg
What this PR does / why we need it:
Add pprof debug support to eg, this is a part of https://github.com/envoyproxy/gateway/issues/700

PROFILE
FUNCTION

/debug/pprof/allocs
Returns a sampling of all past memory allocations.

/debug/pprof/block
Returns stack traces of goroutines that led to blocking on sychronization primitives.

/debug/pprof/cmdline
Returns the command line that was invoked by the current program.

/debug/pprof/goroutine
Returns stack traces of all current goroutines.

/debug/pprof/heap
Returns a sampling of memory allocations of live objects.

/debug/pprof/mutex
Returns stack traces of goroutines holding contended mutexes.

/debug/pprof/profile
Returns pprof-formatted cpu profile. You can specify the duration using the seconds GET parameter. The default duration is 30 seconds.

/debug/pprof/symbol
Returns the program counters listed in the request.

/debug/pprof/threadcreate
Returns stack traces that led to creation of new OS threads.

/debug/pprof/trace
Returns the execution trace in binary form. You can specify the duration using the seconds GET parameter. The default duration is 1 second.

Which issue(s) this PR fixes:

Part of https://github.com/envoyproxy/gateway/issues/700

Hi @AliceProxy, I saw emissary expose pprof in <IP_ADDRESS> and enable it in default, can you share some ideas about reviews from others?

Hi @AliceProxy, I saw emissary expose pprof in <IP_ADDRESS> and enable it in default, can you share some ideas about reviews from others?

I wasn't around for when that decision was made but my guess is that so it can be easily routable from outside the pod but when in the same network i.e I can run telepresence to connect into the cluster network and hit the debug endpoint from there. If it's on <IP_ADDRESS> you're only option is kubectl port-forward
Also it's fairly normal to bind to <IP_ADDRESS> in container environments unless there's a reason to keep it private within the pod.
Overall, I take the stance of defaulting to <IP_ADDRESS> but exposing the IPNetworkFamily option for those that do want to expose on <IP_ADDRESS>.

hey @Xunzhuo, @AliceProxy @haq204 @kflynn and I discussed this PR in the community meeting today and here are some suggestions for the PR

Renaming the top level field to Admin instead of Observability
Only exposing the Port within Address and binding to <IP_ADDRESS> for now
Making debug opt-in with a boolean flag field.

/retest

Do we need to implement things like https://github.com/emissary-ingress/emissary/tree/master/pkg/debug ?
And expose it in eg debug server too ? cc @AliceProxy

Do we need to implement things like https://github.com/emissary-ingress/emissary/tree/master/pkg/debug ?
And expose it in eg debug server too, if so, this can be a follow-up ? cc @AliceProxy

imo, should probably wait for user asks before adding more debug features

we're using squash merge mode, do not force push for better reviews.


[SPARK-33663][SQL] Uncaching should not be called on non-existing temp views.

What changes were proposed in this pull request?

This PR proposes to fix a misleading logs in the following scenario when uncaching is called on non-existing views:
scala> sql("CREATE TABLE table USING parquet AS SELECT 2")
res0: org.apache.spark.sql.DataFrame = []

scala> val df = spark.table("table")
df: org.apache.spark.sql.DataFrame = [2: int]

scala> df.createOrReplaceTempView("t2")
20/12/04 10:16:24 WARN CommandUtils: Exception when attempting to uncache $name
org.apache.spark.sql.AnalysisException: Table or view not found: t2;;
'UnresolvedRelation [t2], [], false

	at org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
	at org.apache.spark.sql.catalyst.analysis.CheckAnalysis.$anonfun$checkAnalysis$1(CheckAnalysis.scala:113)
	at org.apache.spark.sql.catalyst.analysis.CheckAnalysis.$anonfun$checkAnalysis$1$adapted(CheckAnalysis.scala:93)
	at org.apache.spark.sql.catalyst.trees.TreeNode.foreachUp(TreeNode.scala:183)
	at org.apache.spark.sql.catalyst.analysis.CheckAnalysis.checkAnalysis(CheckAnalysis.scala:93)
	at org.apache.spark.sql.catalyst.analysis.CheckAnalysis.checkAnalysis$(CheckAnalysis.scala:90)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.checkAnalysis(Analyzer.scala:152)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.$anonfun$executeAndCheck$1(Analyzer.scala:172)
	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper$.markInAnalyzer(AnalysisHelper.scala:214)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.executeAndCheck(Analyzer.scala:169)
	at org.apache.spark.sql.execution.QueryExecution.$anonfun$analyzed$1(QueryExecution.scala:73)
	at org.apache.spark.sql.catalyst.QueryPlanningTracker.measurePhase(QueryPlanningTracker.scala:111)
	at org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$1(QueryExecution.scala:138)
	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:768)
	at org.apache.spark.sql.execution.QueryExecution.executePhase(QueryExecution.scala:138)
	at org.apache.spark.sql.execution.QueryExecution.analyzed$lzycompute(QueryExecution.scala:73)
	at org.apache.spark.sql.execution.QueryExecution.analyzed(QueryExecution.scala:71)
	at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:63)
	at org.apache.spark.sql.Dataset$.$anonfun$ofRows$1(Dataset.scala:90)
	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:768)
	at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:88)
	at org.apache.spark.sql.DataFrameReader.table(DataFrameReader.scala:889)
	at org.apache.spark.sql.SparkSession.table(SparkSession.scala:589)
	at org.apache.spark.sql.internal.CatalogImpl.uncacheTable(CatalogImpl.scala:476)
	at org.apache.spark.sql.execution.command.CommandUtils$.uncacheTableOrView(CommandUtils.scala:392)
	at org.apache.spark.sql.execution.command.CreateViewCommand.run(views.scala:124)

Since t2 does not exist yet, it shouldn't try to uncache.
Why are the changes needed?

To fix misleading message.
Does this PR introduce any user-facing change?

Yes, the above message will not be displayed if the view doesn't exist yet.
How was this patch tested?

Manually tested since this is a log message printed.

Test build #132243 has started for PR 30608 at commit 96bb31d.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36844/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36844/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36844/

Test build #132243 has finished for PR 30608 at commit 96bb31d.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132243/

retest this please

Test build #132253 has started for PR 30608 at commit 96bb31d.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36854/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36854/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36854/

Test build #132253 has finished for PR 30608 at commit 96bb31d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132253/

cc @cloud-fan

This PR also fixes incorrect string interpolation for "Exception when attempting to uncache $name"

You mean #30609? I don't see the patch in this PR. Would you like to have it together?

This PR also fixes incorrect string interpolation for "Exception when attempting to uncache $name"

You mean #30609? I don't see the patch in this PR. Would you like to have it together?

Yes, I separated them out since they were orthogonal. I removed this comment from the description, but please let me know if this needs to go in together. Thanks for taking a look @viirya!

Test build #132283 has started for PR 30608 at commit 6725d69.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36884/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36884/

Test build #132283 has finished for PR 30608 at commit 6725d69.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132283/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36884/

retest this please

Test build #132286 has started for PR 30608 at commit 6725d69.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36887/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36887/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36887/

Test build #132286 has finished for PR 30608 at commit 6725d69.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132286/

Merged to master and branch-3.1.


append query parameter

Thank you for useful library!
I'd like to add query parameter when tracking, because of I use react-route to work with copy paste url with query parameter like
example.com/search?keyword=abc

How about add option to send query?
set default to false, no effect for already set.
option: appenQuery
  bool
  default = false

cond:
 true => appendQuery to path
 false => do nothing

I'm implementing it, after completed I'll make pr.

I found it duplicate,
https://github.com/fed/react-router-ga/pull/4


Create small dataset to validate NLP tools

[ ] Get public 2014 i2b2 clinical notes that the organizers published on GitHub
[ ] Convert them to JSON format ready to be pushed to the data node
[ ] Add JSON file and push_dataset.py to the nlpsandbox-client GitHub repo

The clinical notes are actually published by a participants to the 2014 NLP deid challenge here.


MKV format not supported

I m compressing MKV video file and getting exception  Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference

Hi @imvikasrai
Which version of the library where you using?

Hey @Tourenathan-G5organisation  I'm using 2.1 library version ,com.iceteck.silicompressorr:silicompressor:2.1

@imvikasrai Please try using version 2.2.1


Dynamic Chunk Loading broken again as the publicPath or something else is wrong again...

Laravel Mix Version<EMAIL_ADDRESS>Node Version (node -v): v15.14.0
NPM Version (npm -v): 7.7.6
OS: Ubuntu

Description:
For some-reason it seems that when using dynamic chunk loading using dynamic imports, Laravel Mix set's it up so files are loaded from relative urls... for example, you're at example.com/page_1/sub_page_1, then Laravel Mix will try to load your js file, called example.js from example.com/page_1/sub_page_1/js/example.js instead of the correct example.com/js/example.js
I found the following issue which give me a temporary work-around but still... bugs like this should not happen...
https://github.com/laravel-mix/laravel-mix/issues/863
Especially not multiple times...
Consider me looking for an alternative way to get VueJs used with a Laravel project... this took way too much time to figure out, debug and find a solution for...
Steps To Reproduce:

Use Laravel-mix
Notice a lot of bugs because of the ways stuff is done
Work-around those bugs
Start using dynamic-imports to get your chunks smaller and the application loaded quicker
Enjoy the nice wrong loading of your js files....

(Yes I know I am being passive aggressivly here... but this is the 10th+ bug I am running into since upgrading to Laravel Mix 6, from 5, and all bugs till now are just stupidities and need crazy workarounds to work...)

Can you provide a reproduction repo for this? It would help with triaging the issue much quicker.

but this is the 10th+ bug I am running into since upgrading to Laravel Mix 6

Do you have a short list of everything you ran into?

The same for me, I have upgraded to laravel-mix 6, and now my vue-router is not working it says

ChunkLoadError: Loading chunk XX failed.
(missing: https://negah.test/js/XX.js)

It says missing XX.js file while it is accessible when we click it.
I don't know whether to downgrade laravel mix or not

@azimi-ali did you find a solution for this, using vue-router it throws this error but is able to fetch it and return a 200 ok status

@nickvdwaal Not yet bro, I have just downgraded laravel-mix to an older version and it works. But I really want to use the new laravel-mix which is not stable for me right now. I hope someone help us with this issue and find the solution.


support for multiple go-carbon caches

Hi,
I think this question is more suited for a mailing list, as its not actually an issue.
With graphite/carbon I am able to support multiple caches within a single process. Is their a way to do this with go-carbon or is the prescribed method to run multiple instances of go-carbon.
cheers,
max

The idea behind go-carbon is that it is actually multi-threaded, so you don't need multiple versions running. Carbon caches are single-threaded processes, so splitting out to multiple processes becomes necessary quite quickly.

Ah, did not know that.
I found an example that generated multiple instances of go-carbon on the same machine and figured that was a necessity for parallelization. Appreciate the explanation.
cheers,
max

@johnseekins gave the correct answer. Just increase max-cpu (in common group) and workers (in whisper).


[WIP] Add C# request methods

And refactor all other methods to call through these new methods

Current coverage is 83.43% (diff: 100%)

Merging #821 into master will increase coverage by 0.06%

@@             master       #821   diff @@
==========================================
  Files           315        315
  Lines         12057      12107    +50
  Methods           0          0
  Messages          0          0
  Branches       1594       1594
==========================================
+ Hits          10051      10101    +50
  Misses         1577       1577
  Partials        429        429

Powered by Codecov. Last update 6442aca...32d6a55

Just looked at the C# results so far - I like this a lot. It feels like a much nicer separation of "API surface exposed" and "implementation of API". In particular, I think this approach will work better with users creating fakes - they only need to fake out the request-taking methods, and everything should work.

PTAL


[Bug]:

Preflight Checklist

[X] I have read the Contributing Guidelines for this project.
[X] I agree to follow the Code of Conduct that this project adheres to.
[X] I have searched the issue tracker for an issue that matches the one I want to file, without success.

Bug type
Functionality
It affects the following packages
Components
Which version of Lyne Components are you using
^0.42.4
Operating system
windows 10
Browser / Browser version
chrome
Input mode
Mouse/Keyboard
Additional settings
No response
What happened?
Problem is at the component -sbb-selection-panel--with-checkbox-checked-disabled.

The border of the deactivated selection field should be lighter, even if it is selected. The cause is that for panels without content the style for the border is not set.

Steps to reproduce the issue

acces https://int-www.sbb.ch/de/billette-angebote/abos/halbtax-plus/angebot.html
Log in
observe the ÖV-Guthaben package

Relevant log output
No response

Fixed by #2189 . Will be released with new Lit implementation of our components


re: Fix clippy warning about ignoring write result

Fix clippy warnings about ignoring write result.

@matklad Thanks, this makes the code look much better


option to not ignore burning when dayspawns true

Possible to add an option to make them still burn during the day when daylight spawns are true?

Makes no sense to have that functionality so I won't be supporting it.


Screen-Space UI Buttons do not work in WebXR-AR mode

Description
In WebXR-AR mode, screen-space UI buttons do not receive inputs at all. World-space UI buttons work fine, though.

Sample build (needs to be executed in an WebXR-AR-enabled device, such as a new-ish Android device): https://playcanv.as/b/0ULNdGnS

Steps to Reproduce

Create Scene with WebXR-AR capabilities
Add 2D Screen with a Button
Launch and open AR mode
Try to click on the Button, it will not work

This is possibly the problem here: https://github.com/playcanvas/engine/issues/3635

This is possibly the problem here: #3635

The underlying bug behind issue #4653 had to do with the input system, not the Camera or FOV itself, so I do not believe they are actually related.


Error deploying to Vercel

Frameworks(s) affected: NextJS
Description
Deploying to Vercel seems to succeed, but accessing the page in a browser results in an error. The server logs display the following.
[Error: ENOENT: no such file or directory, open './src/translations/en.json'] {   errno: -2,   code: 'ENOENT',   syscall: 'open',   path: './src/translations/en.json' }
How to reproduce
Follow the steps to bootstrap a new application, add the project in Vercel, set the subdirectory to ‘application’, copy env vars into Environment, deploy.

Hi, the boilerplate requires a persistent backend storage to run https://vercel.com/docs/storage/vercel-kv


Automatically discover clusterName

Description
Try to discover clusterName based on current folder name. Consider validating the discovered name by looking for a corresponding YAML-file.
Example:

CWD=$(current work dir)
Check for file with name $CWD-k3d-config.yaml

I do not want to enforce ways of working, so do you have a suggestion of how I could handle if there are multiple KSail clusters initialized in the same folder?

I think a good default behavior is a good thing, and allow the user to override it. In this case:

If the user specifies a cluster name, user it.
If not, look for a config file (cluster) with the same name as the folder.

I do not understand the proposed solution - will the ksail native config file only contain exactly one clusterName or multiple. If you can, please elaborate on the ksail native config file, especially the example.

It will contain one cluster name.
See it as a per-project configuration. One project should not need more than one ksail project. In rare cases where there could be more than one ksail cluster in a folder, the configuration will use the cluster name to infer which one to provision when running:
ksail up


Repo sync for protected CLA branch

The pull request is created from main638067458746643081sync_temp to main to fix git push error for protected CLA branch

Learn Build status updates of commit 7305493:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


add outside library

Hi Anthony,
I want to try cl-collider. I copied it to the systems directory, but sbcl cannot find it.
How can I add it?
best wishes
Marc

all examples are always using quicklisp and I currently could not get sbcl to load anything with plain asdf :-(

You would just use regular asdf mechanisms to load your code.   For
instance...
(setf asdf:central-registry #p"/path/to/cl-collider-directory")
and then (asdf:load-system :cl-collider).
Or you could create a local-systems directory and copy all of your local
systems there and run..
(asdf:initialize-source-registry '(:source-registry
:ignore-inherited-configuration (:tree #P"/path/to/my/local/systems/")))
ASDF will search under /path/to/my/local/systems/ for cl-collider.asd.
I don't think there's any point in having an ocicl-specific local-project
directory because you can do the same thing with asdf, as above.  But
perhaps I can add this hint to the README.
AG
On Sun, Jun 25, 2023 at 11:11 AM Marc Rohrer @.***>
wrote:

all examples are always using quicklisp and I currently could not get sbcl
to load anything with plain asdf :-(
—
Reply to this email directly, view it on GitHub
https://github.com/ocicl/ocicl/issues/10#issuecomment-1606128222, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAV7CLG56TMSXGBE3VFRJLXNBIJ3ANCNFSM6AAAAAAZTGQUTI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi Anthony,
Hints are always welcome :-)
I will try that asap.
I've been messing around with asdf for quite a while and could not get it to
load anything up to now. We'll see...
Thanx!
Marc

I've added a note on this to the README under Tips and Troubleshooting.  Let me know how it works out.

Hi Anthony,
sorry for not responding. I currently don't have time to venture into cl at all.
But I am still heavily interested!
With the loading issue. This seems to have been primarily triggered by me not understanding some basic concepts, espacially that packages are simply "namespaces".
Thank you very much for your help!
Marc


Idea: Load/Save tournament phases type to a local JSON file

As a TO, I would like to save my manual input in the tournament phase field and/or add more suggestions
Examples include:

Round Robin
Pool A
Winners Quarters
Winners Semis
Losers Semis

I can make so it loads from a txt file, one line per entry, and add these options...?
I was also thinking today about how FGC usually uses "Casuals" for smash's "Friendlies", so yeah this can be a good feature

The TXT file is definitely easier to edit for someone who doesn't know too much about coding

It's like the CSV for local data. I'd use a JSON, but the CSV is more user-friendly for editing in some spreadsheets program.

Fixed in the 3.1 release. I'll wait your confirmation before closing this issue.

This feature seems to work as intended, thanks!


RTM - Wrong metadata in Release nuspec

Steps to reproduce
Install EntityFramework.Core via NuGet UI in VS 2015
The issue
Expect owners and authors in Nuspec (and thus UI) NOT to be the package name, but something like: Microsoft
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
<id>Microsoft.EntityFrameworkCore</id>
<version>1.0.0</version>
**<authors>Microsoft.EntityFrameworkCore</authors>**
**<owners>Microsoft.EntityFrameworkCore</owners>**

Further technical details
EF Core version: 1.0.0
Operating system:
Visual Studio version: (e.g. VS 2012 Update 2, Nuget 3.4.4)

Looks like this applies to all RTM packages from ASP.NET Core and EF Core. I'm not sure if this was intentional cc @Eilon @danroth27 to confirm.

That is most definitely weird.

The owner should end up being correct because the NuGet gallery overwrites whatever you put in there anyway. But it appears something in the build system is messing up the author.

@pranavkm any idea on this? It appears to have happened for all the packages we build...

Probably happened when we switched from RC1 build script to RC2 build script

Oh, looks like it was DNX that was setting the Author and Owner https://github.com/aspnet/dnx/blob/199bc294b6c0958336a4a6d5c9eb5b9d31582fa2/src/Microsoft.Dnx.Tooling/Building/BuildManager.cs#L428-L445

I think we need to change KoreBuild to set the NUGET_AUTHOR environment variable https://github.com/dotnet/cli/blob/04f40f906dce2678d80fb9787e68de76ee6bf57e/src/dotnet/commands/dotnet-pack/PackageGenerator.cs#L364-L381

And we need to add a package verifier rule as well. I logged https://github.com/aspnet/DnxTools/issues/72 to add a rule.

Closing out this one in the EF repo, @BrennanConroy do you want an issue filed somewhere else to deal with the build changes?

Filed https://github.com/aspnet/KoreBuild/issues/92


Cannot read from assets folder

Hi there,
First of all, great job, this library looks interesting, as soon as I make it work :)
I'm trying to read the contents of an asset. I've read the documentation, but to be honest it was not clear to me how to read those files.
Steps:
I added the image inside
android\app\src\main\assets\mipmap-hdpi\image.png:
I deleted the app and restarted the emulator:
RNFetchBlob.fs.readFile('bundle-assets://image.png')
            .then((data) => {
              console.log(data);
            })

please provide the version of installed library and RN project.
"react-native": "0.42.0"
"react-native-fetch-blob": "^0.10.4"

Any idea?

Was the image asset properly required()? My understanding is if it's not required properly then react-native will not bundle it into the build.


[FLINK-1779]Rename the function  getCurrentyActiveConnections in ' org.apache.flink.runtime.blob'.

I think the function name "getCurrentyActiveConnections" in ' org.apache.flink.runtime.blob' is a wrong spelling, it should be "getCurrentActiveConnections" is more better, and also I add some comments about the function and the update Tests.

+1 LGTM

Looks good, will merge this...


manual installation

Hi !
I have a device which complains about metainfo2.txt.
So is manual installation an option ?
If yes i do not understand the following steps
=> Developer mode enabled on module 5F (you need VCDS/OBD11/VCP for this!)
Is this mandantory ?
=>  Log in
Does it need any username / password ?
=> copy mqbcoding.esd to /net/mmx/mnt/app/eso/hmi/engdefs/mqbcoding.esd:
=> cp /net/mmx/fs/sda0/PersonalPOI/PayLoad/0/default/payload.sh /net/mmx/mnt/app/eso/hmi/engdefs/mqbcoding.esd
So payload.sh is mbqcoding.esd ? Or not ?
if yes better say copy payload.sh to mbqcoding.esd on device :)
Ciao Gerd

You enable developer mode which adds more to the green screens so the new menu to install it shows up
Yes you need a username and password for the firmware you have, but you have to go searching for it (think I found a wiki that had it)
The cp line is actually the command you have to use in your terminal program to put the menu item onto the mmi for the install

You enable developer mode which adds more to the green screens so the new menu to install it shows up
Yes you need a username and password for the firmware you have, but you have to go searching for it (think I found a wiki that had it)
The cp line is actually the command you have to use in your terminal program to put the menu item onto the mmi for the install

You enable developer mode which adds more to the green screens so the new menu to install it shows up
Yes you need a username and password for the firmware you have, but you have to go searching for it (think I found a wiki that had it)
The cp line is actually the command you have to use in your terminal program to put the menu item onto the mmi for the install

You enable developer mode which adds more to the green screens so the new menu to install it shows up
Yes you need a username and password for the firmware you have, but you have to go searching for it (think I found a wiki that had it)
The cp line is actually the command you have to use in your terminal program to put the menu item onto the mmi for the install

You enable developer mode which adds more to the green screens so the new menu to install it shows up
Yes you need a username and password for the firmware you have, but you have to go searching for it (think I found a wiki that had it)
The cp line is actually the command you have to use in your terminal program to put the menu item onto the mmi for the install

hi ! Thnx but you did not answer the main question..
if auto installation fails, does manual installation always work ?
in my case auto does not work (mib2 high an fw 1409) so before i spend 35€ for an ethernet adapter..........

Manual installation always works if you have the root password!

So you have fw 1409 ? can you read it out ? i googlet the half day yesterday but i came not far....

So you have fw 1409 ? can you read it out ? i googlet the half day yesterday but i came not far....

Contact me via t.me/Olli991

ok i, i installed this stuff, but how can i find out whta an option does ..
e.g. the options beyond navigation....

make sure you read the readme, and when in doubt check the scripts inside the repository to see what they do


Restrict editing the access for published public work

Closes #1204

on hold for merge until Seth's feedback on https://github.com/psu-libraries/scholarsphere/issues/1204#issuecomment-1029062748

this now ready for review then ok to merge.


add man page for pychroot utility

It could be nice to use the semi-automatic generation method used by pkgcore, but that's a little too implementation specific right now.

I can recommend AsciiDoc for man pages.

I went with rst since I've already got a semi-autogeneration setup for the other pkgcore tools that pulls information straight from argparse instances.


lon rotation

Provide the north_pole_grid_longitude degree of freedom to cartopy's RotatedGeodetic crs
This requires the cartopy pull request
https://github.com/SciTools/cartopy/pull/479
to function

this functionality now patches into cartopy 0.12 if available and raises a warning otherwise, to specify the north_pole_grid_longitude for the crs correctly

@marqh Any test coverage available for this PR?

@marqh Any test coverage available for this PR?

sorry, it missed the rebase, added now

Awesome, thanks @marqh :smiley:

@marqh Travis-CI is choking on the coding standards tests ... it's related to your commented out code.
Otherwise I'm :+1:

@marqh Travis-CI is playing-up ... I restarted two of your jobs.


Error Invalid response format

help, there is one forlder and only one file

hi, im not sure exactly what you mean. could you provide some more details about the problem?


Provide export buttons for expression comparison table

In GitLab by @vrechdelaval on Jul 10, 2019, 19:01
Columns:

Displayed columns in webapp:

Anatomical entity
Score
Minimum rank
Genes with presence of expression
Genes with absence of expression
Genes with no data
Species with presence of expression
Species with absence of expression

Added columns in export:

Anatomical entity ID
Gene count with presence of expression
Gene count with absence of expression
Gene count with no data
Species count with presence of expression
Species count with absence of expression

Possible export files:

Copy to clipboard (as tsv) => yes
CSV (.csv) => yes
Excel (.xlsx) => useful?
PDF (.pdf) => useful?

In GitLab by @marcrr on Jul 11, 2019, 09:41
I don't understand, on the web now I see the Species count with presence (or absence) of expression. You suggest to change this? I would think it's good to leave the species count on the web, and add the species list (separated by e.g. '|') in the export file.

In GitLab by @marcrr on Jul 11, 2019, 09:42
Export format: tsv and/or csv seems sufficient to me.

In GitLab by @vrechdelaval on Jul 15, 2019, 09:26
@marcrr My idea is to change anything in the webapp (except adding buttons for export). In th edescription of the ssue I have only reported columns names.

In GitLab by @vrechdelaval on Jul 15, 2019, 13:15
During Bgee meeting, we decided to have only TSV (copy to clipboard and file)

In GitLab by @vrechdelaval on Jul 15, 2019, 16:32
closed


peer dependencies warnings with @graphql-modules/epoxy

Describe the bug
When installing the latest version of graphql-code-generator, there are 2 unmet peer dependencies warning caused by the CLI package.
warning "graphql-code-generator ><EMAIL_ADDRESS>has unmet peer dependency "@graphql-modules/logger@*".
warning "graphql-code-generator > @graphql-modules/epoxy ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>
To Reproduce
Steps to reproduce the behavior:
install the library
Expected behavior
no warning :)
Environment:

OS: macOS 10.13.6
Codegen: 0.12.6
Node: v8.12.0

Thanks @polco! I'll take a look :)

I'm using 'yarn' by the way. But i guess npm should behave the same way ? :)

@dotansimha I'm experiencing the exact same warning using yarn 😃


[FEA] Regexp: Support octal digits in regexp pattern

Is your feature request related to a problem? Please describe.
We currently fall back to CPU for regexp patterns containing octal digits due to cuDF producing incorrect results.
The issue is demonstrated by this test in RegularExpressionTranspilerSuite:
ignore("known issue - octal digit") {
  val pattern = "a\\141|.$" // using hex works fine e.g. "a\\x61|.$"
  assertCpuGpuMatchesRegexpFind(Seq(pattern), Seq("] b["))
}

Describe the solution you'd like
Support on GPU consistently with Spark.
Describe alternatives you've considered
None
Additional context
None

In Java, octal digits must start with \\0 and the parser currently does not implement this logic, so this is likely the cause of the test failure.

Fixed by #5645.


what function createColoring mwan

what's function createColoring, it looks so puzzled

The function performs a greedy vertex coloring (Wikipedia - Graph Coloring). All vertices of the same color can be optimized in parallel without causing any race conditions.

The function performs a greedy vertex coloring (Wikipedia - Graph Coloring). All vertices of the same color can be optimized in parallel without causing any race conditions.

get it, thanks


Improve coverage

Closes #2
Closes #10

Codecov Report

Merging #21 (afd3bfe) into main (f7dbafa) will decrease coverage by 23.03%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##             main      #21       +/-   ##
===========================================
- Coverage   42.69%   19.66%   -23.04%
===========================================
  Files          12       12
  Lines         534      590       +56
===========================================
- Hits          228      116      -112
- Misses        306      474      +168

Impacted Files
Coverage Δ

tests/test_nmpc.py
100.00% <100.00%> (ø)

tests/test_velocity_obstacle.py
100.00% <100.00%> (ø)

pymapf/decentralized/__init__.py
0.00% <0.00%> (-100.00%)
:arrow_down:

pymapf/decentralized/position.py
0.00% <0.00%> (-100.00%)
:arrow_down:

pymapf/decentralized/obstacle.py
0.00% <0.00%> (-94.45%)
:arrow_down:

pymapf/decentralized/nmpc.py
0.00% <0.00%> (-40.00%)
:arrow_down:

pymapf/decentralized/velocity_obstacle.py
0.00% <0.00%> (-38.54%)
:arrow_down:

pymapf/decentralized/nmpc_agent.py
0.00% <0.00%> (-33.67%)
:arrow_down:

pymapf/decentralized/velocity_agent.py
0.00% <0.00%> (-17.97%)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #21 (afd3bfe) into main (f7dbafa) will decrease coverage by 23.03%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##             main      #21       +/-   ##
===========================================
- Coverage   42.69%   19.66%   -23.04%
===========================================
  Files          12       12
  Lines         534      590       +56
===========================================
- Hits          228      116      -112
- Misses        306      474      +168

Impacted Files
Coverage Δ

tests/test_nmpc.py
100.00% <100.00%> (ø)

tests/test_velocity_obstacle.py
100.00% <100.00%> (ø)

pymapf/decentralized/__init__.py
0.00% <0.00%> (-100.00%)
:arrow_down:

pymapf/decentralized/position.py
0.00% <0.00%> (-100.00%)
:arrow_down:

pymapf/decentralized/obstacle.py
0.00% <0.00%> (-94.45%)
:arrow_down:

pymapf/decentralized/nmpc.py
0.00% <0.00%> (-40.00%)
:arrow_down:

pymapf/decentralized/velocity_obstacle.py
0.00% <0.00%> (-38.54%)
:arrow_down:

pymapf/decentralized/nmpc_agent.py
0.00% <0.00%> (-33.67%)
:arrow_down:

pymapf/decentralized/velocity_agent.py
0.00% <0.00%> (-17.97%)
:arrow_down:

Continue to review full report at Codecov.

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


Only one thread can free a segment

Let copier to free segment only if its state is changed successfully. If the segment is already freed by other thread in the meanwhile, MoveToFreeState request by copier will be ignored.
Remove segment from SSD list when it's moved to victim state.
Add pos logs for segment state/list changes.

review comment 반영하고 main rebase 했습니다.
다시 한 번 확인 부탁드리겠습니다 :)


Consider using ThreadPoolExecutor in Gov2 indexer

Instead of calling/invoking thread.start() manually, we can switch to ThreadPoolExecutor, which usually provides improved performance when executing large numbers of asynchronous tasks.

Gov2 indexer: Total 25172934 documents indexed in 00:59:28
emptydocids.txt 32245

indexed documents plus document that are empty sum up to the number (25,205,179
documents) reported at official site : http://ir.dcs.gla.ac.uk/test_collections/gov2-summary.htm
25172934 + 32245 = 25205179

What are the specs of your machine? I.e., exact processor model? For example our main machine "streeling" is:

2 x Intel Xeon E5-2680 v3 2.5GHz (12 cores)
768 GB RAM

Detailed specs would help compare performance.

less /proc/cpuinfo says Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz
processor number goes upto 39. It has 128 GB RAM.
However, I use java -server -Xms20g -Xmx20g and 15 threads.

The intel spec here is here: E5-2650 v3 @ 2.30GHz. Main difference is that we have 12 cores to your 10 (and hence more cache); and also higher clock freq. But the hardware is quite similar.

Merged to master https://github.com/lintool/Anserini/commit/cfb10c97c904423ca1c460f768a5bd3edf1b3d12


Not Working on TrueNAS Core 12.0

Hi
I installed the spin down script on my TrueNAS Core version 12.0, running one SATA HDD (and a boot USB). I set the timeout to 5 mins for testing purposes, and the io check to one minute.
I found regular announcements that the USB stick had been spun down successfully(!), but no mention of the hard drive (which indeed never did spin down). I set the Storage/Disc settings as per your instructions. Nothing seemed to work.
Plese note I am not a Linux expert by the way!
Is this not something that works under SATA? Could the problem lie elsewhere?
Thank you for your thoughts.
Frankie.

Hey Frankie,
could you please post the full command (including parameters) that you use to start the spindown script?
Please also provide the output of there two commands:

iostat -x
geom disk list

Thanks :)

Hi Niels!
Thank you for your kind response. I have the information you requested (below) but first I should tell you two things I have since learnt (I am a real beginner with TrueNAS!) which I now think will frustrate your script and may be the cause of the HDD not stopping. 1. System disks cannot be spun down! ... I am experimenting and learning about TrueNAS using only 1 HDD disk at the moment (plus a boot USB disk), and so the system is on the HDD, hence it cannot spin down I think? Also, 2. plugins & their jails are also on the HDD - I have read that a disk with a plugin cannot spin down either - this is really bad news for me if it's true.
I was thinking of getting a small inexpensive SDD - say 125Gig - to use as a system disk, JUST so i can spin down the main disks when not in use. Would that be a good idea do you think? Is 125GIG enough space for the system and 3 or 4 plugins?
Anyway here is the info you asked for, just in case it's still helpful.
Parameters.
(I set these to work quickly so I could tell if anything was stopping)

TIMEOUT=60       # Default timeout before considering a drive as idle
POLL_TIME=20      # Default time to wait during a single iostat call
IGNORED_DRIVES=""  # Default list of drives that are never spun down
MANUAL_MODE=0      # Default manual mode setting
QUIET = 0
VERBOSE = 0
DRYRUN = 0

Also the iostat command:
                   extended device statistics

device       r/s     w/s     kr/s     kw/s  ms/r  ms/w  ms/o  ms/t qlen  %b
ada0           7       2   5727.3     48.6    13     0    91    10    0   4
da0            0       0      2.4      0.2     1     7     0     2    0   0
cd0            0       0      0.0      0.0     0     0     0     0    0   0
pass0          0       0      0.0      0.0    22     0    15    21    0   0
pass1          0       0      0.0      0.0     0     0     0     0    0   0
pass2          0       0      0.0      0.0     0     0     0     0    0   0
pass3          0       0      0.0      0.0     5     0     0     5    0   0
And lastly the geom command:
Geom name: cd0
Providers:

Name: cd0
Mediasize: 0 (0B)
Sectorsize: 2048
Mode: r0w0e0
descr: hp CDDVDW SH-216DB
ident: (null)
rotationrate: unknown
fwsectors: 0
fwheads: 0

Geom name: ada0
Providers:

Name: ada0
Mediasize:<PHONE_NUMBER>016 (1.8T)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r2w2e5
descr: ST2000DM001-1CH164
lunid: 5000c50065f4341e
ident: Z1E6YYSE
rotationrate: 7200
fwsectors: 63
fwheads: 16

Geom name: da0
Providers:

Name: da0
Mediasize:<PHONE_NUMBER>8 (29G)
Sectorsize: 512
Mode: r1w1e2
descr: SanDisk Ultra USB 3.0
lunname: SanDisk Ultra USB 3.0   4C530001320824121063
lunid: SanDisk Ultra USB 3.0   4C530001320824121063
ident: 4C530001320824121063
rotationrate: unknown
fwsectors: 63
fwheads: 255

Thank you Neils!
Regards
Frankie Rockett.

From: Niels Gandraß @.>
Sent: 13 April 2021 8:00 AM
To: ngandrass/freenas-spindown-timer @.>
Cc: Frankie3142 @.>; Author @.>
Subject: Re: [ngandrass/freenas-spindown-timer] Not Working on TrueNAS Core 12.0 (#6)
Hey Frankie,
could you please post the full command (including parameters) that you use to start the spindown script?
Please also provide the output of there two commands:

iostat -x
geom disk list

Thanks :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/ngandrass/freenas-spindown-timer/issues/6#issuecomment-818492801, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AET2L76V5TAON5M2IT6GPITTIPTYTANCNFSM42W5H2BQ.

Hi Niels!

Thank you for your kind response. I have the information you requested (below) but first I should tell you two things I have since learnt (I am a real beginner with TrueNAS!) which I now think will frustrate your script and may be the cause of the HDD not stopping. 1. System disks cannot be spun down! ... I am experimenting and learning about TrueNAS using only 1 HDD disk at the moment (plus a boot USB disk), and so the system is on the HDD, hence it cannot spin down I think? Also, 2. plugins & their jails are also on the HDD - I have read that a disk with a plugin cannot spin down either - this is really bad news for me if it's true.
I was thinking of getting a small inexpensive SDD - say 125Gig - to use as a system disk, JUST so i can spin down the main disks when not in use. Would that be a good idea do you think? Is 125GIG enough space for the system and 3 or 4 plugins?
Anyway here is the info you asked for, just in case it's still helpful.
Parameters.
(I set these to work quickly so I could tell if anything was stopping)

TIMEOUT=60       # Default timeout before considering a drive as idle
POLL_TIME=20      # Default time to wait during a single iostat call
IGNORED_DRIVES=""  # Default list of drives that are never spun down
MANUAL_MODE=0      # Default manual mode setting
QUIET = 0
VERBOSE = 0
DRYRUN = 0

Also the iostat command:
                   extended device statistics

device       r/s     w/s     kr/s     kw/s  ms/r  ms/w  ms/o  ms/t qlen  %b
ada0           7       2   5727.3     48.6    13     0    91    10    0   4
da0            0       0      2.4      0.2     1     7     0     2    0   0
cd0            0       0      0.0      0.0     0     0     0     0    0   0
pass0          0       0      0.0      0.0    22     0    15    21    0   0
pass1          0       0      0.0      0.0     0     0     0     0    0   0
pass2          0       0      0.0      0.0     0     0     0     0    0   0
pass3          0       0      0.0      0.0     5     0     0     5    0   0
And lastly the geom command:
Geom name: cd0
Providers:

Name: cd0
Mediasize: 0 (0B)
Sectorsize: 2048
Mode: r0w0e0
descr: hp CDDVDW SH-216DB
ident: (null)
rotationrate: unknown
fwsectors: 0
fwheads: 0

Geom name: ada0
Providers:

Name: ada0
Mediasize:<PHONE_NUMBER>016 (1.8T)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r2w2e5
descr: ST2000DM001-1CH164
lunid: 5000c50065f4341e
ident: Z1E6YYSE
rotationrate: 7200
fwsectors: 63
fwheads: 16

Geom name: da0
Providers:

Name: da0
Mediasize:<PHONE_NUMBER>8 (29G)
Sectorsize: 512
Mode: r1w1e2
descr: SanDisk Ultra USB 3.0
lunname: SanDisk Ultra USB 3.0   4C530001320824121063
lunid: SanDisk Ultra USB 3.0   4C530001320824121063
ident: 4C530001320824121063
rotationrate: unknown
fwsectors: 63
fwheads: 255

Thank you Neils!
Regards
Frankie Rockett.

Hey Fankie,
please excuse my very delayed response!

and so the system is on the HDD, hence it cannot spin down I think?

This is indeed a problem. Your system dataset is frequently accessed and therefore wakes the disk from standby. Theoretically the HDD can be spun down but it is spun up by the system nearly immediately, effectively preventing spindown.

Also, 2. plugins & their jails are also on the HDD - I have read that a disk with a plugin cannot spin down either

As with the system dataset, plugins/jails may produce disk I/O that spins up the HDD.
To sum it up: You can unfortunately only spin down disks that neither contain your system dataset nor any running jails/VMs.

I was thinking of getting a small inexpensive SDD - say 125Gig - to use as a system disk, JUST so i can spin down the main disks when not in use. Would that be a good idea do you think? Is 125GIG enough space for the system and 3 or 4 plugins?

This is exactly what I was about to suggest :) Placing the system dataset and all jails/VMs on a separate SSD allows you to spin down your HDDs.
But there is a potential pitfall to keep in mind. All data that is frequently accessed by the plugins/jails wakes the drives it is stored on. The amount of "hot data" you have determines the required size of your SSD. All other "cold data" can be stored on the HDDs.
Kind regards
Niels


UI Bug Tracker

This issue tracks open bugs in the UI :

[ ] As user : Does not refresh dashboard vlues when switching from a project to the default view
[ ] Launch VM and stay on page does not work
[ ] Destroy instance expanded menu throws errors in the console
[ ] Clear notification button remains when a notification is dismissed via the 'x' icon
[ ] Backup offerings is not visible from the Service offerings tab
[ ] Assign VM to a backup offering button is missing

@utchoang Can you please look into these ?

@davidjumani I have created a PR. Can you please check the above error again?

@davidjumani

Backup offerings is not visible from the Service offerings tab: I don't know where the service offering tab is located, can you be more specific?
Assign VM to a backup offering button is missing: I check and it still shows up, maybe I got it wrong?

Hi, @utchoang, I updated the issues, and in my UI (rebased on latest main), I don't see the Backup offerings

I have it in my lab with <IP_ADDRESS>

And the VMs don't have this button you shared above ^^

I'm probably doing something wrong

@slavkap I running latest main branch with QA server then still show Backup Offerings. Can you check the permission of the user that is allowed to access listBackupOfferings?.

And the button will show with show: (record) => { return !record.backup offeringid } condition. I think it only shows when the VM is not backup yet?

I'm sorry @utchoang! I made some noise for nothing :( There is a configuration option that has to be enabled if you want to use the backup backup.framework.enabled (I forgot about it).
Again, sorry about it. Everything works.


Store SafeBrowsing DB on MySQL or Redis

I recently tested Yandex SafeBrowsing (examples/SafeBrowsing/local-search.php) with thousands of URLs and 100+ concurrent requests and I noticed it uses a lot of CPU and RAM. Probably because on each lookup it has to load the db file ($data = file_get_contents($localDbFile);), json_decode it ($localHashPrefixes = json_decode($data, true);) and loop through all hashes (foreach ($localHashPrefixes as $shavar) {}). Would it be possible to support saving of the db on MySQL database or Redis? This way the lookups would be very fast (even with concurrent requests) and it would use much less CPU and RAM.

It's just examples of usage, of course you can use Redis as storage, it's up to you

Yeah, I see. Thank you for the reply :)

Reopening this according to email

@spytz
The new Redis adapter works perfectly. I found some small issues:
Possible Issue 1:
On local-search.php if I enter an Adult website URL (i.e xtube.com) it reports the website as dangerous:

But on lookup.php it is correctly reported as Adult website (and not dangerous):

Possible Issue 2
The first time I run save-prefixes-db.php sometimes I get those 502 Bad Request errors:
GuzzleHttp\Exception\ServerException
Server error: `GET http://sba.cdn.yandex.net/chunks/ydx-malware-downloadable-mobile-android-shavar/NAn7JoJKkIHz_H1utADRlruOeJQ3XkmsaDIwnDMTkf8=.chunk` resulted in a `502 Bad Gateway` response:

<title>502 Bad Gateway</title>

502 Bad Gateway

 (truncated...)

GuzzleHttp\Exception\ServerException
Server error: `GET http://sba.cdn.yandex.net/chunks/ydx-malware-driveby-shavar/K0Fe3mezwgtnXzuCOc0sA9YM5ZtpeFC0bERqgmaSwuE=.chunk` resulted in a `502 Bad Gateway` response:

<title>502 Bad Gateway</title>

502 Bad Gateway

 (truncated...)

Possible Issue 3
There may be an issue on nixsolutions/yandex-php-library/blob/master/examples/settings.php:
PHP message: PHP Warning:  require_once(/var/www/dev/public/htdocs/yandex/vendor/nixsolutions/yandex-php-library/examples/../vendor/autoload.php): failed to open stream: No such file or directory in /var/www/dev/public/htdocs/yandex/vendor/nixsolutions/yandex-php-library/examples/settings.php on line 11
PHP message: PHP Fatal error:  require_once(): Failed opening required '/var/www/dev/public/htdocs/yandex/vendor/nixsolutions/yandex-php-library/examples/../vendor/autoload.php' (include_path='.:/usr/share/php') in /var/www/dev/public/htdocs/yandex/vendor/nixsolutions/yandex-php-library/examples/settings.php on line 11" while reading response header from upstream, client: <IP_ADDRESS>, server: localhost, request: "GET /yandex/vendor/nixsolutions/yandex-php-library/examples/SafeBrowsing/save-prefixes-db.php HTTP/1.1", upstream: "fastcgi://<IP_ADDRESS>:9000", host: "<IP_ADDRESS>"

I solved this issue by changing this:
require_once dirname(__FILE__) . '/../vendor/autoload.php';
To this:
require_once dirname(__FILE__, 4) . '/autoload.php';
On the file:
/nixsolutions/yandex-php-library/examples/settings.php
This one works fine too:
require_once dirname(__FILE__) . '/../../../autoload.php';

Possible Issue 4:
I used crontab to run update-prefixes-db.php for 7 days every 5 minutes, but I see the size of Redis database is just 9 MB, while the size of MySQL database using GSB PHP library (following the guide on Yandex site) is 800MB, see these screenshot:

@webaddicto thank you for your feedback.
I've found an issue in how hash_prefixes are saved to Redis. (Fix https://github.com/nixsolutions/yandex-php-library/pull/205)
Regarding Possible Issue 1 I've changed local-search.php example to render the shavar lists where the hash prefix was found http://storage5.static.itmages.com/i/17/0503/h_1493817955_5510112_c85f389b68.png.
Possible Issue 2 - Tried many times save-prefixes-db.php, but I'm not lucky;) Suppose sba.cdn.yandex.net may be responsible for that.
Possible Issue 3 - for me dirname(__FILE__) . '/../vendor/autoload.php'; is correct path to vendor/autoload.php, IDE confirm this http://storage8.static.itmages.com/i/17/0503/h_1493816832_9487450_13dcf73fa1.png.
Are you using yandex-php-library as phar archive?
Regarding Possible Issue 4 - interesting, thanks for noticing this. I'll compare results and come back later. For now I can only assume the phpGSB stores some interim or temporal data

@spytz

Regarding Possible Issue 1 I've changed local-search.php example to render the shavar lists where the hash prefix was found http://storage5.static.itmages.com/i/17/0503/h_1493817955_5510112_c85f389b68.png.

That would be perfect.

Possible Issue 2 - Tried many times save-prefixes-db.php, but I'm not lucky;) Suppose sba.cdn.yandex.net may be responsible for that.

Yeah, I noticed it happens randomly and it seems to be releated to sba.cdn.yandex.net

Are you using yandex-php-library as phar archive?

I install yandex-php-library dev-master as this:
apt-get update
apt-get install git curl -y -q
cd /var/www/dev/public/htdocs/yandex
curl -sS https://getcomposer.org/installer | php
php composer.phar require nixsolutions/yandex-php-library:dev-master
php composer.phar require predis/predis

Regarding Possible Issue 4 - interesting, thanks for noticing this. I'll compare results and come back later. For now I can only assume the phpGSB stores some interim or temporal data

Please keep me updated with this.

@spytz
I tested the new version with your PR #205 and it seems to work fine now:


[deb] Stop to use -Wdate-time

Because FlatBuffers uses __DATE__ and __TIME__ and it also uses -Werror flag.
See also  "timeless" value description of "reproducible" in http://man7.org/linux/man-pages/man1/dpkg-buildflags.1.html .

The build failure isn't related.


Error: The object does not have the property "zoom"

Describe your bug here.
i was playing https://gamebanana.com/mods/368674
than it pops
The Revenge intro crashes the game with an error.
flixel/tweens/misc/VarTween.hx (line 99)
flixel/tweens/misc/VarTween.hx (line 55)
flixel/tweens/FlxTween.hx (line 1263)
flixel/FlxGame.hx (line 750)
flixel/FlxGame.hx (line682)
flixel/FlxGame.hx (line556)
openfl/events/EventDispatcher.hx (line 402)
openfl/display/DisplayObject.hx (line 1399)
Uncaught Error: The object does not have the property "zoom"
man wtf
somehow i really want to play this mod
help
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
no

ps : im chinese so dont hope that i can understand some deep words
im still learing!

Dude this is a mod bug not a psych engine bug.

Dude this is a mod bug not a psych engine bug.

k thanks


JPEG contains garbge bytes

in this jpeg file, there's a section with comment text (FF FE) of size 3 bytes, unfortunately, it seems that the minimum size of a section is 4 bytes, so the next iteration moves the cursor to the wrong place.

Em...I looked into it and found something.
You can insert any bytes between sections. It won't damage jpg. Here I insert 7 bytes 0A.

Since every section start with FF, so the correct way may be skipping the garbge bytes.
What's your suggestion?

And I looked into 010 editor's template code. It also treat these bytes as garbge and just skip them.
I'll fix this soon.

Fix in https://github.com/xiaozhuai/imageinfo/commit/8f94e1f68d6b40a535090aac696be7a43cc1df61
Thanks for reporting this.

@hgourvest
Since this issue is solved, I'm going to close it as completed.
Feel free to reopen if you'd like to discuss further.

Thank you very much for the quick fix. I appreciate your work.


Collection object as indexers failed in pandas 1.3.0

>>> from datar.all import c
>>> from datar.datasets import mtcars
>>>
>>> mtcars[c("cyl", "disp", "am", "drat")]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    mtcars[c("cyl", "disp", "am", "drat")]
  File "/.../python3.7/site-packages/pandas/core/frame.py", line 3445, in __getitem__
    if com.is_bool_indexer(key):
  File "/.../python3.7/site-packages/pandas/core/common.py", line 146, in is_bool_indexer
    return len(key) > 0 and lib.is_bool_list(key)
TypeError: Argument 'obj' has incorrect type (expected list, got Collection)

This works in pandas v1.2.*
This is a pandas bug in v1.3.0: https://github.com/pandas-dev/pandas/issues/42433

Fixed at pandas 1.3.1


Used some standard Nim features making it faster

Changed a couple of procedures into templates, made the code a bit cleaner by removing superfluous result = statements. Also switched to echo no newline like the C++ version, and switched to taking in editable Nodes instead of having to return tuples of Nodes (similar to how C++ uses pointers).
This makes Nim faster than C++ raw-pointer version when run with the markAndSweep GC, and the standard GC uses less memory than C++ raw-pointers (at least in my testing, averaged over 100 runs) but it is a bit slower.
On the devel branch the markAndSweep GC also drops to ~800KiB of memory usage, but leaving it at 5MiB for now is fine if you don't want to try that.

Well, this definitely goes beyond "naive" implementation. Let's have it a separate implementation.

I wouldn't really say it's that far from naïve, basically a port from the C++ version with the var stuff, and templates and macros are as everyday as procedures and loops in Nim 😃 The only thing not being completely naïve is the {.noInit.} pragma and the uint32 conversions.
But a separate implementation is fine. Should I just create a separate file in the Nim folder?

@PMunch is there a perf difference between proc {.inline.} and templates here?

I am still using Nim 0.18 and here are my results:

Setup
Time, seconds
Memory, MB

Nim 0.18 -d:release --passC:-flto
0.31
0.63

Nim 0.18 -d:release --gc:markAndSweep --passC:-flto
0.208
5

C++ raw pointers
0.211
0.38

D (see #23)
0.198
0.25

Rust (raw pointers, WIP)
0.218
11 (does not free at all at the momemt)

We are starting to have a tight compentiton on this edge :)
Please, put this solution in a separate file.

Nothing considerable:
Templates: 0.225708346534653
{.inline.}: 0.226656207920792
After all they do pretty much the same, only benefit of using templates is that it's Nim handling it, so it can theoretically do more optimisations and you are guaranteed that it will inline them (IIRC {.inline.} only tells the C compiler that you should inline them).

I prefer to use the rule of using the least powerful construct available between proc/macro/templates.

inline procs are implemented with a C preprocessor macro so should be inlined and optimized the same by GCC/Clang.
Assuming:template split(orig: Node, value: int32, lower, equal, greater: var Node) =
  var equalGreater: Node
  splitBinary(orig, lower, equalGreater, value)
  splitBinary(equalGreater, equal, greater, value + 1)

if value is the result of (x div y) * exp(foo) the template will do: splitBinary(orig, lower, equalGreater, (x div y) * exp(foo))
 splitBinary(equalGreater, equal, greater, (x div y) * exp(foo) + 1)

i.e. computation is done twice (unless optimized by the compiler).
If there are side-effects echo x; (x div y) * exp(foo), they will even be executed twice.

Pfft, D using no D runtime and only C stdlib is cheating 😃 My Nim version uses only standard Nim features and the garbage collector.
Just kidding, good job of the D guys to be able to push it that far, would be interesting to see if I could push Nim even further, but then it wouldn't really be Nim. The Nim code you have there is something you could expect to find in a library or the stdlib. In fact, save for the stdout.write, this is pure Nim which can run on the JS target as well. Performance isn't super great though (native JavaScript code: 1.340s, 49MiB; Nim JavaScript code: 2.855s, 25MiB).

That's true @mratsim, both have their pros and cons (maybe you wanted to run it twice?). In this case though the performance is about the same, templates appear to be slightly faster, but that could just be measuring inaccuracy.

FWIW, I've looked at the code and the changes, and IMO this shouldn't be a separate implementation, but the (only) implementation used.

The Nim code you have there is something you could expect to find in a library or the stdlib.

I completely agree that it is the code quality that you expect to see in stdlib and best libraries out there, but our original idea was to see where one could arrive in each language with initial implementation (i.e. before you start profiling it, if that will ever even happen).
Yet, given a huge interest in the topic (I have merged 22 PRs in the last 24 hours), I am going to create a separate table in the main README, where we can show off all the ~dirty~ tricks (I am going to move PyPy and --gc:* tweaks there).

The key speedup for D happens to be unrelated to no-RT/C stdlib, it's about making merge tail recursive, similar to how split is tail recursive. I changed Node* merge(Node*, Node*) to be void merge(Node*, Node*, ref Node* result) and made the penultimate step (right before calling the next merge) be to assign to the ref result what was previously the returned value. This avoids having to build up a stack of returned values, and allows the compiler to transform merge into a single flat loop rather than a unary tree/list of calls.

Aah, I thought about doing that as well. But I couldn't be bothered. Might have a peek at your implementation and see if I can copy it over to Nim to see if we get any further speedup.
@frol I get your point, and I agree that --gc:* tweaks could go there. But as I said the Nim implementation I have there is not something super esoteric. It's probably what I would've written as a first attempt if I was mindful of performance (not returning objects is always a good thing, and that is the primary change).

@PMunch Well, none of the other solutions (except C++ which is used for the "bare metal" implementation base-line) breaks the common API and that is the design. If that is changed, we will have to redo everything from scratch.

original idea was to see where one could arrive in each language with initial implementation i.e. before you start profiling it)

From the readme:

but then we still wanted to compare the results with idiomatic (a.k.a. common practices) implementations for C++ ("raw-pointers") and Rust ("idiomatic").

Well, the "initial implementation" hugely depends on the person writing the code.
Somebody less experienced would write something slow and/or memory inefficient (been there, done that), while somebody more experienced would write something similar to @PMunch's version (call it "idiomatic a.k.a. common practices" Nim-version, if you will) right from the start.
I still think this is not "show off all the dirty tricks" version, but the regular one.

@frol Simillar to how you do it in C, pass -static to the linker with --passL:'-static'. That should eliminate all dynamic links from C stdlibs

Statically linked to what?

To all the runtimes (including libc), like -static flag on GCC / Clang.

I updated the manual version to also use my optimisations. And moved my optimisations into main_fast.nim.

I think the problem was that it didn't follow the same pattern as the others since it takes in var arguments instead of returning a compound type.

That is exactly right.

Why is Nim with --gc:markAndSweep and not the fast or manual variant in the "tunned" (assume this was meant to be tuned?) section?

@PMunch I have just restructured the existing README and rerunning all the results at the moment. Bumped into Go: https://github.com/frol/completely-unscientific-benchmarks/pull/42#issuecomment-389489281


ReDos in prism

Hi,
I would like to report 6 ReDoS  vulnerabilities in prism (https://github.com/PrismJS/prism).
It allows cause a denial of service if highlighting crafted codes.

The first ReDos
The vulnerable regular expression is "(?:%\s*\n\s*%|%.|[^%"\r\n])*" and is located in

https://github.com/PrismJS/prism/blob/38f42dd668a7bf388dfe0f5ed4b07aacb23b0255/components/prism-eiffel.js#L16
The ReDOS vulnerability can be exploited with the following crafted code string
function aa(){
"%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%%

%!
}

The second ReDos
The vulnerable regular expression is (\s*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1(?:[+|].+)+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+ and is located in
https://github.com/PrismJS/prism/blob/38f42dd668a7bf388dfe0f5ed4b07aacb23b0255/components/prism-rest.js#L4

The ReDOS vulnerability can be exploited with the following  crafted code string
+=+\r++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++!

The third ReDos
The vulnerable regular expression is  (\s*)(?:=+ +)+=+(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1(?:=+ +)+=+(?=(?:\r?\n|\r){2}|\s*$) and is located in
https://github.com/PrismJS/prism/blob/38f42dd668a7bf388dfe0f5ed4b07aacb23b0255/components/prism-rest.js#L11

The ReDOS vulnerability can be exploited with the following  crafted code string
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

The fourth ReDos
The vulnerable regular expression is (^[ \t]*)\[(?!\[)(?:(["'$])(?:(?!\2)[^\]|\.)\2|[(?:[^]\]|\.)]|[^]\]|\.)*]` and is located in
https://github.com/PrismJS/prism/blob/38f42dd668a7bf388dfe0f5ed4b07aacb23b0255/components/prism-asciidoc.js#L4

The ReDOS vulnerability can be exploited with the following  crafted code string
[1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1!

The fifth ReDos
The vulnerable regular expression is (^[^\S\r\n]*)---(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?[^\S\r\n]*\.\.\.$ and is located in
https://github.com/PrismJS/prism/blob/38f42dd668a7bf388dfe0f5ed4b07aacb23b0255/components/prism-tap.js#L15

The ReDOS vulnerability can be exploited with the following  crafted code string
---\n\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r

The sixth ReDos
The vulnerable regular expression is ((?:^|[&(])[ \t]*)if(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|\S+)) and is located in
https://github.com/PrismJS/prism/blob/38f42dd668a7bf388dfe0f5ed4b07aacb23b0255/components/prism-batch.js#L41

The ReDOS vulnerability can be exploited with the following  crafted code string
'if'+'/? '*100+'!'
I think you can limit the input length or modify this regex.
Steps To Reproduce:

First download the zip file from the link below
https://drive.google.com/file/d/10RJ21Xr7NRKFBjtA7IoqaRuUVO3v050V/view?usp=sharing
Open the test.html in the root directory
Input the above crafted code strings and select the corresponding languages

Thank you for reporting! I'll fix them immediately.
@yetingli How did you find vulnerabilities? Some of the patterns in question contain backreferences (and assertions) and I don't know any existing technique for the static analysis of RE that can handle that. Did you go through the patterns by hand or do you know/did you create a tool that does the analysis?

I quickly want to point out that the 6th vulnerability doesn't trigger for 'if'+'/? '*100+'!'. The reason the pattern is vulnerable is because first (?:"[^"]*"|\S+) ambiguous and repeated. A working attack string is:
if/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:"" defined -

I fixed 5/6 patterns.
I can't reproduce the 3rd vulnerability. The attack string doesn't work and I just don't see ambiguity that could cause exponential backtracking.

I quickly want to point out that the 6th vulnerability doesn't trigger for 'if'+'/? '*100+'!'. The reason the pattern is vulnerable is because the first (?:"[^"]*"|\S+) ambiguous and repeated. A working attack string is:
if/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:"" defined -

Oops...This is a typo, What I want to write is 'if'+'/? \"\"'*100+'!'
Yes, your attack string is right, too :)

I can't reproduce the 3rd vulnerability. The attack string doesn't work and I just don't see ambiguity that could cause exponential backtracking.

You can make the string longer, for example,  the attack string '= '*50000 took 24763 ms.
The sub-pattern (?:=+ +)+=+ is ambiguity,   I am willing to suggest that you replace  (?:=+ +)+=+ with =+ +=+
This fix is equivalent, and the repaired regex is safe and efficient.
For example, for the attack string '= '*50000,  the vulnerable regex took 24763 ms and the fixed one only took 1 ms.

Thank you for reporting! I'll fix them immediately.
@yetingli How did you find the vulnerabilities? Some of the patterns in question contain backreferences (and assertions) and I don't know any existing technique for the static analysis of RE that can handle that. ~Did you go through the patterns by hand or do you know/~(I looked at your previous work) did you create a tool that does the analysis?

Yes, I use my tool to detect ReDos vulnerabilities. After a time, I will release my tool  and welcome to use it  :)

I fixed 5/6 patterns.

I can help to detect whether the repaired patterns are safe.

I quickly want to point out that the 6th vulnerability doesn't trigger for 'if'+'/? '*100+'!'. The reason the pattern is vulnerable is because the first (?:"[^"]*"|\S+) ambiguous and repeated. A working attack string is:
if/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:""/a:"" defined -

I just understood what you mean by strings like 'if'+'/? '*100+'!'. I took them as literal strings ("'if'+'/? '*100+'!'") and not a python-like expression to generate strings.
I verified and fixed the 6th vulnerability for your attack string.

Yes, I use my tool to detect ReDos vulnerabilities. After a time, I will release my tool and welcome to use it :)

I'm looking forward to it but in that case, I have a question: There are 2 more vulnerabilities in prism-batch.js (same file as a 6th one). They are in the regexes in line 28 and line 62. They are vulnerable for the same reason the regexes on line 41 you pointed out is (they all contain the sub pattern (?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)*). Did you intentionally omit this or did your tool fail to detect this?
If your tool failed to detect this because it couldn't extract the regexes from the source code, then I can help you with this. I can modify Prism's test suite to extract all of the 2500 unique regexes Prism uses (even the dynamically generated ones) and output all of them into a JSON file (or similar) (like I did here).
I don't want to push you to spend more time on Prism than necessary, so feel free to decline if you aren't interested.

I can help to detect whether the repaired patterns are safe.

All of my fixes are in #2584.

I can't reproduce the 3rd vulnerability. The attack string doesn't work and I just don't see ambiguity that could cause exponential backtracking.

You can make the string longer, for example, the attack string '= '*50000 took 24763 ms.
The sub-pattern (?:=+ +)+=+ is ambiguity, I am willing to suggest that you replace (?:=+ +)+=+ with =+ +=+
This fix is equivalent, and the repaired regex is safe and efficient.
For example, for the attack string '= '*50000, the vulnerable regex took 24763 ms and the fixed one only took 1 ms.

I analyzed the pattern and the problem is the following:
First of all. The pattern does not backtrack exponentially. All words of the language '= '*n (I'm using your notation) are rejected after O(n^2) steps.

Measurments

n
t = time to reject '= '*n
t/(n*n)*1e6 (scaling for nicer numbers)

50
0.021ms
8.540

100
0.077ms
7.724

200
0.303ms
7.573

500
1.907ms
7.628

1000
7.622ms
7.622

2000
30.796ms
7.699

5000
193.134ms
7.725

10000
776.411ms
7.764

Code used:
const { performance } = require("perf_hooks");
const measure = (fn, samples = 1) => {
	const start = performance.now();
	for (let i = samples; i > 0; i--) {
		fn();
	}
	return (performance.now() - start) / samples;
};

const samples = 10;
const re = /(\s*)(?:=+ +)+=+(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1(?:=+ +)+=+(?=(?:\r?\n|\r){2}|\s*$)/;
// warmup
measure(() => re.test("= "), 100);

const measurements = [];
const ns = [50, 100, 200, 500, 1000, 2000, 5000, 10000];
for (const n of ns) {
	const text = "= ".repeat(n);
	const t = measure(() => re.test(text), samples);
	measurements.push([
		n,
		t,
		t / n**2 * 1e6 // scaled up by a constant factor to get nicer numbers
	]);
}

measurements.forEach(([n, t, r]) => {
	console.log(`| ${n} | ${t.toFixed(3)}ms | ${r.toFixed(3)} |`)
});

Run with Node.js v13.12.0 but previous versions will also work.

That being said, I don't think that this can actually be fixed. The problem is that each suffix of the input string takes O(n) steps to reject and it seems like the regex engine is forced to try O(n) many suffixes. Even extremely simple regexes like /a+b/ show this O(n^2) behavior for inputs like 'a'*n.
I also want to point out that (?:=+ +)+=+ and =+ +=+ do not accept the same language but (?:=+ +)+=+ and =+ [ =]*= do.
I will replace all occurrences of (?:=+ +)+=+ with =+ [ =]*= for now. While =+ [ =]*= will still reject your attack string in O(n^2) time, it does so twice as fast as (?:=+ +)+=+ in my tests.

It's very nice  to receive your reply.

Did you intentionally omit this or did your tool fail to detect this?

I want to point out that my tool does not support extracting regular expressions from the projects, but only supports inputting regular expressions to check whether regular expressions are safe.

I can modify Prism's test suite to extract all of the 2500 unique regexes Prism uses (even the dynamically generated ones) and output all of them into a JSON file (or similar) (like I did here).
I don't want to push you to spend more time on Prism than necessary, so feel free to decline if you aren't interested.

Great!  You can send me these regexes and I am willing to check whether all regexes  Prism uses are safe.

I also want to point out that (?:=+ +)+=+ and =+ +=+ do not accept the same language but (?:=+ +)+=+ and =+ [ =]*= do.
I will replace all occurrences of (?:=+ +)+=+ with =+ [ =]*= for now. While =+ [ =]*= will still reject your attack string in O(n^2) time, it does so twice as fast as (?:=+ +)+=+ in my tests.

Indeed, they are not equivalent and you're right.

You can send me these regexes and I am willing to check whether all regexes Prism uses are safe.

Thank you very much! Here is a JSON of all 2587 unique regexes. Each regex is mapped to all of its occurrences in Prism language definitions. All regexes were extracted from the most recent commit in #2584.
If you need/want anything else, please don't hesitate to ask. This is a huge improvement for Prism, so I'm really thankful for the work you're doing.

I have detected 116 vulnerable regular expressions (see the link). There are some scripts for you to verify further.
Feel free to contact me if you have any questions.

Thank you @yetingli!
Sorry for the delay. I have looked at the files and analyzed them.
Changed regexes
Before I show the results, one question: Why did some regexes change?
None of the regexes in your JS files had flags. I went through a few regexes and it seems like none of them actually used the flags but I still wonder. The other change I noticed is more severe:
Non-capturing groups were replaced with capturing groups. This is a huge issue because this changed the groups that backreferences were pointing to.
Example of a changed regex
From
/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ]+.+)/
To
/((^|\r?\n|\r)([\t ]*)([~-]|[&!]?=)).*,[\t ]*((\r?\n|\r)\2[\t ]+.*,[\t ]*)*((\r?\n|\r)\2[\t ]+.+)/

There are no other changes that have been made to the regexes.
I also want to point out that the second change (non-capturing -> capturing) is not consistent across regexes. The second change is significantly more likely for the regexes with higher file numbers.
Extraction
While the script files were very nice in demonstrating the issue, they also make it hard to fix the issues because I had no idea where the regexes are coming from. The first thing I did was to extract the regex and the [x,y,z] tuple (the strings that generate the attack string x+y*n+z) from all scripts. I then added the location of each regex (the array of strings each regex had in the JSON I send you).
Measuring
I then measured the execution time of each regex on generated attack strings x+y*n+z to determine the runtime complexity of the regexes. This can easily be done because the runtime of a regex will either be linear, polynomial or exponential.
Note: With linear, I mean Θ(n). With polynomial, I mean Θ(n^p) with p>=2.
The runtime of both the extracted regex and the original regex were measured. I also measure the runtime of an anchored version of the regex (= /^<extracted regex>/) to determine the whether the polynomial runtime is due to the pattern being matched against O(n) suffixes of the string.
Results
5 regexes were changed enough to affect their runtime. This was usually due to a backreference not referring to the right group anymore.
5 regexes have exponential runtime. 4 of those, I already detect (and fixed) with my method in #2590. The remaining one (Prism.languages.asciidoc.macro) was fixed.
2 regexes have linear runtime. One attack string didn't work because a prefix of it was accepted. The other attack string didn't work because the regex had Prism lookbehind group (just a normal capturing group) that prevented polynomial runtime.
Polynomial
Now to the polynomial. 104 regexes have polynomial runtime. I further subdivided this into 3 categories. The main idea is that some of the polynomial runtime isn't caused by backtracking but by the regex engine moving the pattern across the string to find a match. Even if the pattern only looks at each character once to reject a suffix of the string, it has to do so for O(n) many times due to being moved. (Example: a*b for strings "a"*n.) This is why I also measured an anchored version of each regex.
95 regexes have Θ(n^2) runtime because of moving. This is the majority of all regexes.
1 regex has Θ(n^3) runtime because of moving and polynomial (Θ(n^2)) backtracking.
8 regexes have polynomial backtracking not affected by moving.
Problems with your method
I want to point out that your method seems to favor polynomial runtime over exponential backtracking. Some of the patterns reported as polynomial also have attack strings that can cause exponential backtracking.
Examples:
/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/
// xyz = ['"', '$', '']

/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/
// xyz = ['"', '\\z ', ''] (JS strings, so the backslash is used to escape characters)

/("|')((?!\1|\$\{)[^\\]|\\.|\$\{([^<()"']|\(([^<()"']|\(([^<()"']|\(([^<()"']|\(([^\s\S])*\)|<(?!#--)|<#--([^-]|-(?!->))*-->|"([^\\"]|\\.)*"|'([^\\']|\\.)*')*\)|<(?!#--)|<#--([^-]|-(?!->))*-->|"([^\\"]|\\.)*"|'([^\\']|\\.)*')*\)|<(?!#--)|<#--([^-]|-(?!->))*-->|"([^\\"]|\\.)*"|'([^\\']|\\.)*')*\)|<(?!#--)|<#--([^-]|-(?!->))*-->|"([^\\"]|\\.)*"|'([^\\']|\\.)*')*?\})*\1/
// xyz = ['"', '${}', '']

This is concerning because people may be inclined to ignore fixing patterns that run in "only O(n^2)". This may cause some exponential backtracking to never be found and fixed.
I also want to point out that your method has failed to point out a lot of other patterns with exponential backtracking.
Examples:
/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\2)[^\\])*\2/
// xyz = ['"', '$( )', '']

/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/
// xyz = ['"', '$', '']

/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/
// xyz = ['"', '#{ }', '']

It also failed to find a lot of cases of polynomial backtracking. See #2597 for examples.
Closing thoughts
While not perfect, your method has found a lot of cases of exponential and polynomial backtracking. All cases of exponential backtracking have been fixed in #2590 and I plan to fix all non-moving polynomial backtracking regexes in #2597.

Files
Here is a JSON of the results.
Here is all the code I used to produce these results (scripts are supposed to be executed in the order extract -> measure -> group).

Many thanks for your further verification and repair! @RunDevelopment

Before I show the results, one question: Why did some regexes change?
Non-capturing groups were replaced with capturing groups. This is a huge issue because this changed the groups that backreferences were pointing to.

I'm very sorry, these changes have brought you great inconvenience to fix the issues. I want to explain why I have to make these changes (non-capturing -> capturing). Existing static analysis techniques cannot handle non-capturing and backreferences, etc. well. Although the existing dynamic fuzzing methods can process non-capturing and backreferences, etc., the detection is very time-consuming.  Meanwhile, for dynamic methods, there will be false negatives.
So I would like to try a combination of dynamic and static methods, that is, some regexes are directly checked by static methods (preferred), and the rest are checked by dynamic fuzzing.  I want to try to change the initial regex (e.g., non-capturing -> capturing) so that it can be detected by static methods as much as possible. Thank you for pointing out the problem (This is a huge issue because this changed the groups that backreferences were pointing to), it really cannot be replaced mechanically!

I want to point out that your method seems to favor polynomial runtime over exponential backtracking. Some of the patterns reported as polynomial also have attack strings that can cause exponential backtracking.

This may be related to the detection strategy I mentioned earlier. If I use the dynamic fuzzing method directly, there will be no such problem. It seems that I still need to make a further trade-off between detection efficiency and effect.

I also want to point out that your method has failed to point out a lot of other patterns with exponential backtracking.

On the one hand, there are false negatives as mentioned above, and on the other hand, some characters (e.g., \xA0-\uFFFF) or features (e.g., negative lookbehind (?<!pattern)) are temporarily not supported by my tool.
I really appreciate your responses :)
There is no doubt that your reply is undoubtedly a great help to the further improvement of my tools. thank you so much again for the terrific work.

I'm glad that my results could be of help.

Existing static analysis techniques cannot handle non-capturing and backreferences, etc. well.

I suppose that's the reason flags disappeared as well?
Regarding the non-capturing groups. They can easily be converted to capturing ones if backreferences are also changed so that they still point to the right group.

Here is a little JS function that does exactly that. Given the source of the regex (everything between the //) and whether the u flag is active for the regex (regexes parse slightly differently with that flag), it will return the given source without non-capturing groups.
I used the regexpp library for parsing.
const { RegExpParser, visitRegExpAST } = require("regexpp");

/**
 * @param {string} source
 * @param {boolean} unicode
 * @returns {string}
 */
function toCapturing(source, unicode) {
	const patternAst = new RegExpParser().parsePattern(source, undefined, undefined, unicode);

	/** @type {Map<import("regexpp/ast").CapturingGroup, number>} */
	const groupNumbers = new Map();
	let groupCounter = 0;
	visitRegExpAST(patternAst, {
		onGroupEnter() {
			groupCounter++;
		},
		onCapturingGroupEnter(node) {
			groupCounter++;
			groupNumbers.set(node, groupCounter);
		}
	});

	/** @type {{ start: number; end: number; text: string; }[]} */
	const changes = [];
	visitRegExpAST(patternAst, {
		onGroupEnter(node) {
			changes.push({
				start: node.start,
				end: node.start + "(?:".length,
				text: "("
			});
		},
		onBackreferenceEnter(node) {
			changes.push({
				start: node.start,
				end: node.end,
				text: "\\" + groupNumbers.get(node.resolved)
			});
		}
	});

	changes.reverse();
	for (const { start, end, text } of changes) {
		source = source.substring(0, start) + text + source.substring(end);
	}

	return source;
}

// example
toCapturing(/(?:)(a)\1/.source, false)
// returns '()(a)\\2'

Flags are harder to remove.
I don't want to shamelessly promote my own work but you could use my library refa.
It can parse a JS regex to get my AST format. With the AST, a modified version of refa's JS.toLiteral function could create a regex that is equivalent to the original regex but doesn't use any flags. I.e. /(a|A)+(?=b)/i will be converted to /([Aa]|[Aa])+(?=[Bb])/.
The main limitation is that my AST format doesn't support backreferences.
If you were using existing static analyzers that only support ASCII regexes (e.g. RXXR2), then the AST could be transformed to derive an ASCII regex from any JS regex.
That being said, this is probably too much work for too little gain especially if your tool wasn't focused on JS regexes. I just wanted to point out that it is possible.

@yetingli Can you comment on how your technique differs from the work of Rathnayake / Weideman / Wustholz / Shen?


fix: Make sure that environments are not completely overridden

Fixes #2383

I get the implementation from the perspective of environment variables. I would indeed want to use the environment variables from all the targets and have them override each other based on environment variable name.
However, for activation scripts, I would not want to combine them. I think we should make this distinction is properly made.
Alternatively we could also change the scripts key to take a map instead of an array so you can have "named" scripts which can be individually overriden by different targets.

I get the implementation from the perspective of environment variables. I would indeed want to use the environment variables from all the targets and have them override each other based on environment variable name.
However, for activation scripts, I would not want to combine them. I think we should make this distinction is properly made.
Alternatively we could also change the scripts key to take a map instead of an array so you can have "named" scripts which can be individually overriden by different targets.

I do like the script map idea; it also occurred to me. However; my concern is that existing user configs would be broken by this.

I've reverted the changes to actiavation scripts in https://github.com/prefix-dev/pixi/pull/2396/commits/720db9ee602fc737fd45e24cb68a6622e5c20227; but kept ones for envs to get this in faster.


Missing Services menu in application menu on macOS

My Setup

Operating System: macOS Sierra 10.12.6
App Version: 2.8.0

[ x ] I have tested with the latest version
[ x ] I can simulate the issue easily

Description
I use "Services" for some predefined actions.
Missing Services menu in Rocket.Chat+ application menu:

How it looks correctly for example in Finder:

Current Behavior
I can't run my predefined action while the Rocket.Chat+ application is in the foreground.
Expected Behavior
It should be there, so I can use the Services like in any other application.

+1 I would appreciate this to be added. Its kind of a OSX standard, even Slack supports services.


Fluent validation client-side validation not working

In a previous issue, I wasn't having difficulties to set up client-side validations but a colleague showed me a much simpler way of setting up validation on the client.
public class RequiredIfStatusIsEmployedOrSelfEmployedValidator : PropertyValidator, IClientValidatable
    {
        public RequiredIfStatusIsEmployedOrSelfEmployedValidator(AppFormContext applicationFormContext)
            : base(new LanguageStringSource("NotEmptyValidator"))
        {
        }

        protected override bool IsValid(PropertyValidatorContext context)
        {
            return true; // or false
        }

        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            yield return new ModelClientValidationRule
            {
                ValidationType = "required"
            };
        }
    }

The above works for a property in a path like Application.Employment.EmploymentSectorId but does not work for a property in a path like Application.TradingExperience[0].Questions[0].SelectedAnswerId.
Am I missing something?

Sorry, never mind. Some models had not the proper validator attribute.


chore: prepare py-rattler 0.9.0

Prepare the release of py-rattler 0.9.0.

Waiting for https://github.com/conda/rattler/pull/967


Invoking codeceptUI throws SyntaxError & TypeError in console

Hi,
I just initialized codeceptUI on a fresh new project that uses webdriver helper & BDD setup. Up on running "npx codecept-ui" - I get the following messages in console. It doesnt stop me from running tests but looks a bit clunky.

Which node version do you use?

Node version 11.7.0


Multiline input

Is your feature request related to a problem? Please describe.
Currently, every input is just a single line. We would like to have a parameter for the input component to allow multiline inputs (visible correctly formatted and if needed with a scrollbar)
This feature is vital if one is pasting complex text and wants to edit it in the input field or if one is pasting code (e.g. usage like copilot chat) into the input field.
One slightly bug we discovered with the input component here as well: the shift + enter is recognized as if just enter is pressed. (currently, as multi-line is not supported, nothing should happen)
Describe the solution you'd like
Parameter on the input component
Describe alternatives you've considered
Custom component for the input -> not optimal as it should be native to MESOP

Check out textarea, which is a multi-line text input component: https://google.github.io/mesop/components/textarea/
If you need a multiline text input with custom keyboard shortcuts, then your best bet is using web components: https://google.github.io/mesop/web-components/ which is more work but gives you the most flexibility.


[FEATURE] Editing message in chat room

Description
I would like to add an edit message feature.
Screenshots
No response
Additional information
No response
Record

[X] I agree to follow this project's Code of Conduct
[X] I have checked the existing issues
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

you can go ahead!


Removed 'when you lie' image as it is 404 not found and some grammer …

…changes with Docker section.

Not sure why this failed CI as it was "only" a doc change.

@sullivant Thomas, it is ok, it fails currently because of my recent changes (unrelated to your commit). I will fix it soon

Gotcha, thanks @chubin!