What parts of the new WDTK theme should we port into alavetelitheme?

IMO

Banner tidying
Locale switcher
Hero
The nicer bodies/request listing on the homepage
the footer
The nicer request page sidebar
the better print stylesheets (when merged)
probably the button styles

I think it might be easier to think about what not to port over…

mySociety bar
1-2-3 section (not sure how well that would apply to all installs)
colours

Thing
Alavetelitheme
Core
Notes

Printed from
-
Markup and CSS

Logo
Pretty CSS
Markup, basic CSS to position

Locale Switcher
JS + CSS
Markup, Style it in the way it looks now (inline list
Would be nice to extract logic to controller / helpers

Nav
CSS
-

Logged in
CSS
-
Also http://git.io/vqPnH

Hero
Pretty CSS
Markup, basic CSS

How it Works
Pretty CSS
Markup, basic CSS
I'm not that sure on this one. Will it apply to all installs?

Bodies List
Pretty CSS
Markup, basic CSS
Minor code refactoring

Requests List
Pretty CSS
Markup, basic CSS
Minor code refactoring

Footer
Pretty CSS
Markup, basic CSS
Remove UK specific stuff, needs facebook url config

Buttons
Pretty CSS
-

Button hierarchy
CSS
Markup
e.g. add .button-secondary with no styles

Fonts
Yes
-

Pagination
Yes
-

Print Stylesheets

?

Icons
-
Yes

Blog
CSS
-
check what it looks like on core

Help Pages

I think this is already available in core – might be able to remove from WDTK

Sidebars
CSS
-

[How it works] I'm not that sure on this one. Will it apply to all installs?

It's quite specific to WDTK, even the three steps might be hard to lift and shift to a new country. Shall we leave it?

Lots of sites do like the 1,2,3 though

All the checkboxes are ticked, so I think this is done! :tada: :tada: :zap:


Ret 1853

(https://tools.hmcts.net/jira/browse/RET-1853)
Change description
Following the submission of the ET1 form by the Claimant, the ET1 is vetted, and if accepted then the ET1 is required to be served to the Respondent (as per the Respondent details in the ET1 form).  A notification letter of ET1 serving is sent to the Respondent, together with a copy of ET3 form (by post) **
The relevant documents uploaded into the casefile will need to be sent to the parties involved, the admin/caseworker should be able to verify that the documents are sent to the right parties. This page will help in verifying that the details are accurate. Once the details have been verified, the documents will be printed and sent manually.
NB: The respondent will always receive paper at this stage, the claimant details will only be included here if the claimant has asked for paper instead of being notified via GOV.Notify.
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ x] No

Combined 1853 and 1854 into one pull request so this is redundant.
https://github.com/hmcts/et-ccd-callbacks/pull/292


Use pip install to install xinference. How to install only the worker role or supervisor role?QUESTION

Use pip install to install xinference. How to install only the worker role or supervisor role?

The roles are mixed together, just install xinference is OK for both.

The roles are mixed together, just install xinference is OK for both.
意思是说，xinference的supervisor/worker这些角色，无法单独安装？都集成在xinference里面对吧


Refactor flutter command exit code - part 3 of 3

finish migrations to ToolExit exceptions
remove workaround that pinned args to v0.13.6
Fixes https://github.com/flutter/flutter/issues/6766
@devoncarew

Great that we've unpegged the args dep, and happy to we're using a slightly richer mechanism than ints to communicate failures.
lgtm


Meaning of user_id

What does user id mean ? Is it same as customer id ?
Is it an encrypted field?

In the user review datasets, user_id serves as the identifier for users on the platform. Could you clarify which customer_id you’re referring to? Additionally, I don’t think user_id has been encrypted.


Seasonal ma model Typo Fix

Before submitting (must do checklist)

[ x] Did you read the contribution guide?
[ x] Did you update the docs? We use Numpy format for all the methods and classes.
[ x] Did you write any new necessary tests?
[ x] Did you update the CHANGELOG?

Proposed Changes

Closing issues

Codecov Report

Merging #1047 (b481bb9) into master (2fd8fce) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1047      +/-   ##
==========================================
- Coverage   86.11%   86.11%   -0.01%
==========================================
  Files         163      163
  Lines        8629     8627       -2
==========================================
- Hits         7431     7429       -2
  Misses       1198     1198

Impacted Files
Coverage Δ

etna/models/seasonal_ma.py
100.00% <100.00%> (ø)

etna/models/nn/deepar.py
98.93% <0.00%> (-0.02%)
:arrow_down:

etna/models/nn/tft.py
99.10% <0.00%> (-0.01%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

May you also fix the same typo in DeadlineMovingAverageModel

Ok, done


TE/EIO Crash

http://pastebin.com/MYA75x2a
Crashing server on start up, any idea what's causing it?

@skyboy

Some block on the other side of a tesseract returned a null where it shouldn't have.

Returned a null from what?

Removing and re-adding EIO fixes this issue, although I'm not sure if this will cause issues with my setup.

Seems it does. Will have to see what else I can do.

I'm curious - what is the Tesseract connecting to on the other end? That is what is really at at fault here.

I don't know what the issue was. The issue hasn't re-occured so far though. There are thousands of tesseracts on the map, so it's difficult to track down without block coords in the log. :P
I have a backup of the world if you're interested in finding out though.


Iterate on variable references

As mentioned in #136, I feel like there is some interest in enabling composability in variable references. Instead of a strictly 1:1 mapping, I was suggesting using a format taking to how string interpolation is usually done:
parameter.Name: |-
  jdbc:mysql://${outputs.hostname}:${outputs.port}/${outputs.dbName}

@RomainMuller check out the change here. Not 100% what you put up there, but similar.
Using mustache templates now, feel free to throw darts at that and we can iterate some more.


Fixed doc warnings

This PR fixes doc warnings generated by the command:
$ cargo +stable doc --no-deps --workspace --features cosmwasm_1_4

plus few spelling corrections.
This is quite handy, when the cargo doc does not generate any warnings, then during developing a new code, just introduced errors are reported. I find it quite useful and time saving.

Ups... Fixing doc warnings makes CI to fail. I guess I will come back to this topic again in the near future, now I am closing this PR.


Multi tenancy supporting

Hi, I'm investigating the FHIR server to use in our integration product. As we have to ingest data from multiple clients, could you please let me know whether multi-tenancy is supported?
Regards

This is only a starter project. You can add multi-tenancy if you want


CLI roadmap

Following #83 and #88, TODO for the CLI:

[ ] Validate configuration
[ ] Add apis/accounts/applications

I use restart a lot, it would be nice to have it and shouldn't be hard to implement.

Closing this, outdated.


rawBytes is missing data

Hi, I was trying to read split QR codes with this package.
But, rawBytes does not include the header infomation of QR code such as number of splits, parity, or something like that.
Is it possible to fix this issue? as qr_scanner would be deprecated in the future and so we would like to stick to this package.
Thank you for your supports.

The rawBytes value is only intended for the use case where the display value of the QR code is not a UTF-8 string (I.e. a UTF-16 string). It does not include the entire input of the QR code, as that is not exposed either by MLKit or by the Vision API on MacOS.

Thank you for your reply. I will use qr_scanner  instead as this package can provide this information.


Dev Environment Crash

For more info, see https://discord.com/channels/1001847734766145607/1117745002387345488/1117745002387345488

Closing since IntelliJ auto-formatter is too powerful


[RecSync] Empty videos being saved

Fix saving empty vids on initialization

Documented way is to create new MediaRecorder each time video is started, but we can't do that (its surface takes part in capture session init -> recorder should be defined then)


Changing docs issue template to new docs repo location

PR Summary
Updating the issue template for documentation to show the new location of PowerShell-Docs on the MicrosoftDocs repo.
PR Context
Cleaning up references post migration of docs to MicrosoftDocs repo. While the redirect works, showing the correct location is preferred in the long run.
PR Checklist

[X] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[X] Summarized changes
[X] Change is not breaking
[X] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[X] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

User-facing changes

[X] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[X] N/A or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] to your commit messages if the change is significant or affects feature tests

Congratulation on your first PR to this repo.


Stress status dashboard bug fix & double grid height

Closes #2386
Query diff:
...
StatusTable
| summarize arg_max(TimeGenerated, *) by TestName, Namespace
| join (FailTrend) on TestName, Namespace
...
Only adding a namespace on aggregation

/check-enforcer override


Accept any type of duplex stream

This allows secure streams as well as normal ones.
Fixes #56

Thanks :) Sorry for the long wait!


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v3.10 to before v4.14.241",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8e591cb7204739efa8e15967ea334eb367039dde",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b67a821813c7b8160b54d83928281fec84a42d88"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "8e591cb7204739efa8e15967ea334eb367039dde",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "b67a821813c7b8160b54d83928281fec84a42d88",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "KVM: PPC: Book3S: Fix H_RTAS rets buffer overflow\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v4.14.241 by commit b67a821813c7b8160b54d83928281fec84a42d88, it was introduced in version v3.10 by commit 8e591cb7204739efa8e15967ea334eb367039dde. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001403


tiller:v2.1.3 image in gcr.io has a bad mediaType

See: https://github.com/docker/docker/issues/30083
In talks with the gcr.io guys they said that the image was uploaded with the bad mediaType (text/html) and are suggesting that the image be rebuilt and repushed. They'd also like to track down how this happened to begin with, which would be good, but I think getting an image that Docker v1.14 can download up there quickly would be good since its being released soon.

Thanks for the heads-up. I'll put this on the roadmap for the next release.

This can be fixed by changing the docker version to >1.11.0 here:
https://github.com/kubernetes/helm/blob/master/circle.yml#L3

It looks like 1.10.0 is the latest version CircleCI supports 😞 .
Ref:
https://discuss.circleci.com/t/support-docker-versions-newer-than-v1-9-1/7789
https://github.com/circleci/docker/issues/6

@prydonius pointed this out: https://github.com/docker/docker/issues/30083
But we seem to be in a really awkward position, where CircleCI is stuck on Docker 1.10 while 1.13 definitely has this issue.

This may be a dumb question, but:
CircleCI is using a version of Docker they released almost a year ago. Is there anything binding kubernetes/helm to use CircleCI, as opposed to another CI service like Travis (who uses the official docker repos, so they have the latest version available)? It looks like this may have even been worked on recently, in #1672.

We moved from Travis to CircleCI because of the resource restrictions on the Kubernetes org (we had to wait up to 3 hours for a build to even start). We toyed with going back not too long ago.
But... no, there is no reason why we can't switch to another CI provider.

I am told that Docker fixed this in 1.13.1. The first RC is here: https://github.com/docker/docker/releases/tag/v1.13.1-rc1
If anyone has a chance to test that and confirm the fix, please let me know. Otherwise, we'll probably wait until the 1.13.1 final release comes out in a week.

Just upgraded to 1.13.1-rc1 and can confirm it's fixed:
# before upgrade
$ docker version
...
 Version:      1.13.0
...
$ docker pull gcr.io/kubernetes-helm/tiller:v2.1.3
Error response from daemon: target is unknown

# after upgrade
$ docker version
...
 Version:      1.13.1-rc1
...
$ docker pull gcr.io/kubernetes-helm/tiller:v2.1.3
v2.1.3: Pulling from kubernetes-helm/tiller
985c5f84712b: Already exists
83826658bfb8: Pull complete
Digest: sha256:a5919b5a2a837fc265aeeb639413c653427332544c3a590bc8ed74370905d87a
Status: Downloaded newer image for gcr.io/kubernetes-helm/tiller:v2.1.3

Yes! Fantastic!


Compile a list of people using ExternalDNS in production

I would like to gather a list of users using ExternalDNS in production, so that we can gather feedback and think about the future of the project.
If you're using ExternalDNS in production please leave a comment below.

Zalando: https://github.com/zalando-incubator/kubernetes-on-aws/blob/dev/cluster/manifests/external-dns/deployment.yaml
ReactiveOps: https://docs.google.com/document/d/1-i0xQidlXnFEP9fXHWkBxqySkXwJnrGJP9OGyP2_P14
...

Maybe we should start a new file in the "docs" directory with production users?


New architecture

Working

Build process using esbuild, rollup & vite.
Serving of compiled assets.
Realtime compile server and transform server for Metaverse-Modules and loading.
Everything else :)

Not Working

Avatar not moving in some scenes

Changes Made
index.mjs

The file implements additional functions to support the production mode. It uses the -p flag to know whether it's in production mode or development mode. if the file is in development mode it will pass the request to the vite ssr server and will leverage the dynamic compile.
If the server is in production it will serve the assets under the dist and dynamic assets are compile through the function dynamicImport
dynnamicImport helper function simply calls the metaverserfile's rollup.js and leverage it's resolveId and load to serve the module.

Changes in Totum
Rollup.JS

Whenever a module is dynamically loaded it's inside an environment where it don't the exact paths of the Metaversefile & Three so a new Babel Transformation is added for all of the metaverse modules that changes the path of the imports dynamically.

ModuleRewrite

Babel transform passes the path of the moduleRewrite file which process the import path and change them with the server path dynamically.
Paths are matched so there won't be duplicate instances of metaversefile or ThreeJS

Vite.config.js

Added Build Configuration
Added Development Configuration
Create a vite plugin to support the smooth development process.

Workers [FOLDER]

Moved workers to seperate folder and made that folder available for dynamic loading

https://github.com/webaverse/totum/pull/70

Re: workers, what about all the microphone handlers scripts?
https://github.com/webaverse/app/blob/84f1b5e8d3604d55dc1a6d4892305f8b587e5378/avatars/avatars.js#L8

Does production differ from dev? How?

All issues raised by @avaer are resolved. Have to revert one of the commits related to workers path and test the new dynamic path/entry points with workers and then PR will be ready for review again.

closes
https://github.com/webaverse/app/issues/2239
https://github.com/webaverse/app/issues/2337
https://github.com/webaverse/app/issues/1935

Closing in favour of
https://github.com/webaverse/app/pull/2668


feat: redirect to thanks page after submission

Thank you, Fritz! So sorry for not seeing this till now 🙈 That's a good idea! And thanks for cleaning up those left-over imports

Thank you too! This repo really helped me understand how to get my forms working.


Details for cluster doesn't work?

Even if there's nothing extra to add, maybe just return the same thing as the list for API consistency?
>>> from cells_api_py_client import Client
>>> client = Client('https://cells.dev.hubmapconsortium.org/api/')

>>> clusters_with_gene = client.select_clusters(where='gene', has='CASTOR2')
>>> assert len(clusters_with_gene) > 0

>>> clusters_with_gene.get_list(1)[0].keys()
dict_keys(['cluster_method', 'cluster_data', 'grouping_name', 'dataset'])

>>> clusters_with_gene.get_details(1)[0].keys()
Traceback (most recent call last):
...
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Should be fixed with commit:
https://github.com/hubmapconsortium/cross_modality_query/commit/841a5bcf3b62544e5614dbc607da75c2386b65d0

Should be fixed with commit:
https://github.com/hubmapconsortium/cross_modality_query/commit/841a5bcf3b62544e5614dbc607da75c2386b65d0

Yep! ... though response isn't quite what I'd expect. Filed #22, closing this.

Yep! ... though response isn't quite what I'd expect. Filed #22, closing this.


streamlink: drop exceptiongroup input

Description of changes
exceptiongroup has a constraint of python<3.11, and since this application is built against python3.11, we do not need it.
pythonRuntimeDepsCheckHook will complain about this, since it doesn't recognize environment constraints in the manifest, which is why I'm dropping exceptiongroup entirely with pythonRemoveDeps
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

See #321342


CON-5093: introduced Option to use Triggers

this only works in combination with productUpdate with cronjobs
this should be compatible with the import/export plugin

Coverage increased (+0.2%) to 41.597% when pulling 5c6f54c475333234853037cc7dd79c6e6cf1aaf8 on CON-5093 into 8ae47d7e39da859179959da5770b7434eb645f11 on master.


Missing flashcards (bug introduced in 1.12.0)

This fixes:

[BUG] Plugin not picking up certain flashcards #915
[BUG] Unable to recognize multi-line card that begins immediately after the frontmatter's closing line #922
[BUG] Most of my flashcards are now missing #923

@st3v3nmw I've marked this as draft whilst waiting for final confirmation from user who raised issue #923
Also, probably there will be conflicts between this and PR https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/926.
If you approve and merge one of the PRs, then I'll "update from upstream master" on my branch related to the other PR and resolve any conflicts.
If you prefer a different method of resolving the anticipated conflicts, please let me know.
Cheers
Ronny

Hi @st3v3nmw I haven't heard back from the OP of #923,  but I have checked with the file he posted, and all ok.
Because it's an important fix, I don't want to delay any longer.
Cheers
Ronny

Because it's an important fix, I don't want to delay any longer.

Released in v1.12.4, apologies for the delay


update to 2.0.1

The latest changes for https://github.com/OpenClinica/enketo-express-oc/issues/622 have been added too now.


stats: make the title of a section match the link to it in code

Commit Message: I managed to slightly mismatch a reference to a stats.md section in an assertion message. This just changes the section-name to match what we print in the assert, so the link works.
Additional Description: n/a
Risk Level: low
Testing: none - doc only
Docs Changes: this is a doc change
Release Notes: n/a
Platform Specific Features: n/a

oh and DCO :-P

DCO. Hmph. Every time I think I'll shortcut and try to edit a file directly in github I forget DCO.
See https://github.com/envoyproxy/envoy/pull/14499


Update the RTD docs-from-code process to produce more useful information for developers

We have functioning ReadTheDocs (RTD) from source code generating at https://aries-cloud-agent-python.readthedocs.io/en/latest/ (See the "Modules" link).  It's working (yay!) but the generated result is not useful. Everything appears to be in the "aries_cloudagent" module, so you can't traverse the modules.
The current method for generating is here: https://github.com/swcurran/aries-cloudagent-python/blob/master/docs/README.md. Specifically, from the docs dir, run this: sphinx-apidoc -f -o  . ..
The ideal would be that each folder below aries_cloudagent, and below aries_cloudagent/messages be a separate module that we could still auto-generate.
I'm not sure if the problem is that the items are not properly defined as "modules" in python (e.g. that it's a code problem) or if the script calling the generator needs to be setup to call each thing we want as module explcitly. And if the latter, how to we include the code files in the root folder (e.g. aries_cloudagent itself).  For bonus points, how to structure the RST so that we can have the messages code (which are the message family protocols that are optionally added to an instance of Aries Agent) called out separtely from the rest of the code.  I would think all but that bonus point should "just work", so I find the challenge quite weird.
von_anchor is an example of it working much better...https://von-anchor.readthedocs.io/en/latest/modules.html
generated from https://github.com/PSPC-SPAC-buyandsell/von_anchor/tree/master/docs/source
It may be that the rst files (e.g. https://github.com/PSPC-SPAC-buyandsell/von_anchor/blob/master/docs/source/von_anchor_utils.rst) are hand rolled, which is kind of OK - we'd have to figure out how to prevent people from adding new code and not docs.
Good luck - @WadeBarnes with help from myself and @nrempel
Really good to have this working in time for the transfer.

Switched to using sphinx_rtd_theme:
pip install -U sphinx-rtd-theme
Update ./docs/conf.py; html_theme = 'alabaster' => html_theme = 'sphinx_rtd_theme'


Merge upstream

update with the upstream master brunch
use this brunch to create an repo here:
https://github.com/segmentio/public-api-sdk-typescript/tree/test-new-sdk-generator

PR checklist

[ ] Read the contribution guidelines.
[ ] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
[ ] Run the following to build the project and update samples:./mvnw clean package
./bin/generate-samples.sh
./bin/utils/export_docs_generators.sh

Commit all changed files.
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
For Windows users, please run the script in Git BASH.
[ ] File the PR against the correct branch: master (6.1.0) (minor release - breaking changes with fallbacks), 7.0.x (breaking changes without fallbacks)
[ ] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

merge with upstream master brunch


Not suit with 3.10.x on iOS

not work with impller

strokeWidth not work

@sunjianan9900  @Jithesh-kumar please provide me with your source code.


Avoid use of Signature::user_defined for normal functions

Originally posted by @alamb in https://github.com/apache/datafusion/issues/12698#issuecomment-2388306202

Can we make it a goal that not to require Signature::user_defined to implement useful things?

Yes, I think this should be the goal
The usecase for Signature::user_defined that I recall was to implement coercion rules for very specific functions (like coalesce)

Extend signatures and function resolution so that Signature::user_defined is not needed.

Before #12622 is completed, we can introduce signature like Numeric / String / Float / Integer and so on that is used in places more than 1, others use Signature::user_defined by default


Fixes #770: Zipped files with problematic filenames

Fixes #770
Now we'll be able to git clone SecLists from Windows

I guess there is a bit of demand for this in the end.
Thanks for the suggestion and pull request! <3


Fix issue #25

Fixes issue with Gen:nameofcat instead of Gen:4 when clicking on price under My Kitties. Also pretty readable solution.

Closing since you added this code to your repo directly


write to Terminal

is there a way to write to terminal window layout from python to send command to bash ?
something like  this:
term1 = Terminal(....)
term1.write("the command")

perhaps : ....
import sys
with open("/dev/pts/1", "wb+", buffering=0) as term:
term.write("hello".encode())
under linux : echo 'ls -l' > /dev/pts/1 ...
don't seem to be very clean solution ...


[Experiment, do not merge] Remove Eq and Ord from PlutusTx.AssocMap.Map

Description

Checklist

[ ] Commit sequence broadly makes sense and commits have useful messages
[ ] New tests are added if needed and existing tests are updated
[ ] When applicable, versions are updated in .cabal and CHANGELOG.md files according to the
versioning process.
[ ] The version bounds in .cabal files for all affected packages are updated. If you change the bounds in a cabal file, that package itself must have a version increase. (See RELEASING.md)
[ ] All visible changes are prepended to the latest section of a CHANGELOG.md for the affected packages. New section is never added with the code changes. (See RELEASING.md)
[x] Code is formatted with fourmolu (use scripts/fourmolize.sh)
[x] Cabal files are formatted (use scripts/cabal-format.sh)
[x] hie.yaml has been updated (use scripts/gen-hie.sh)
[ ] Self-reviewed the diff

No longer relevant.


Give warning before kill by touching a file

I had a feature request for adding support for signaling another process or supervisor when jvmquake detects that things are going sideways but before it actually kills the process. Since we're running along side the JVM in a compiled JVMTI agent our limits are somewhat limited, we can:

Signal the JVM
Signal another process (but it would have to be passed at startup time)
Touch a file on the filesystem
Fork + exec some executable (probably with a double fork to background it).

I chose to go with option 3 since that is, in my opinion, the simplest and safest option. Then if a user wants to e.g. obtain a CPU profile of the JVM they can watch for updates to the file and run whatever logic they want to get more diagnostic information.
I've added a fourth option, which is a string option containing arbitrary key=value pairs (e.g. key1=value1,key2=value2 so that in the future we can extend the arguments supported by jvmquake. In this PR we now support two new kwargs:

warn: Similar to gc_threshold except will trigger the warning mechanism
touch: The file path to touch when the warn threshold is exceeded.

I've also added a few tests, and done some refactoring of the tests to be slightly cleaner.

@hashbrowncipher can you take a look?

LGTM


[1.8] EOFException : null @ java.io.DataInputStream:-1 upon sendTo through "BungeeCord" RawDataChannel

Currently when trying to do, for example:
ChannelBinding.RawDataChannel bungeeChannel = Sponge.getChannelRegistrar().createRawChannel(this, "BungeeCord");

...

bungeeChannel.sendTo(player, channelBuf -> {
                channelBuf.writeString("Connect");
                channelBuf.writeString("destinationServer");
            });

the player gets a EOFException : null @ java.io.DataInputStream:-1 and is disconnected from bungee, and never send to the correct server.

The issue was a difference between how our ChannelBuf was writing strings (varint followed by data) and how bungeecord tries to read them (short followed by data). I'm writing a fix now.


override abstract method onWindowStartingActionMode

Hi, I get the following error with this recent release: http://cordova.apache.org/announcements/2015/11/09/cordova-android-5.0.0.html
platforms/android/src/com/mesmotronic/plugins/FullScreenPlugin.java:360: error: <anonymous com.mesmotronic.plugins.FullScreenPlugin$6$3> is not abstract and does not override abstract method onWindowStartingActionMode(android.view.ActionMode.Callback,int) in android.view.Window.Callback
Maybe to do with the bump to API level 23?

Looks like there's a couple of new overloads added to the method list in API 23, should have a fix pushed shortly.

Thanks!


could it possible that ViewPager do not need to set a style with a specific height?

Question
the example in readme provide a style={{ flex: 1 }} to ViewPager(like bellow),and it occupy all screen height;  but in my case, the pager's height is not specific，it depends; but without a specific height, ViewPager show nothing
so, could the height of ViewPager be flexible ?
import React from 'react';
import {StyleSheet, View, Text} from 'react-native';
import ViewPager from '@react-native-community/viewpager';

const MyPager = () => {
  return (
    <ViewPager style={styles.viewPager} initialPage={0}>
      <View key="1">
        <Text>First page</Text>
      </View>
      <View key="2">
        <Text>Second page</Text>
      </View>
    </ViewPager>
  );
};

const styles = StyleSheet.create({
  viewPager: {
    flex: 1,
  },
});

it depends; but without a specific height, ViewPager show nothing

Why you can't :
<ViewPager style={[styles.viewPager, { height: whatEverHeight }]} />

Why you can't :
<ViewPager style={[styles.viewPager, { height: whatEverHeight }]} />

because i want ViewPager just wrap the children, and the children's height is depend on fetched data from api

Why you can't :
const [height, setHeight] = useState(0)
<ViewPager style={[styles.viewPager, { height: height }]} >
<Child setHeight={setHeight} />
</ViewPager>

@KingAmo your issue refers to https://github.com/react-native-community/react-native-viewpager/issues/162


Autolinks support

autolinks: [
  {
    pattern: /\B#(\d+)\b/,
    url: autolinkUrl`https://github.com/owner/repo/issues/${1}`
  },
  {
    pattern: /\bJIRA-(?<num>\d+)\b/,
    url: autolinkUrl`https://jira.example.com/issue?query=${'num'}`
  }
],

https://github.com/remarkjs/remark-github
https://github.com/vweevers/remark-autolink-references


Feature/Rebuild referendums 2

This is a continuation for #358.
This PR assumes that #358 has been merged.

Added the rest of voice methods.
Added tests for voices

Other requirements:

[ ] Settings need to be updated
[ ] Permissions need to be updated

Closing this PR due to a more complete pull request here #390


add documentation about Server side rendering

SSR works good now, but i found a little caveat: slate uses a keygenerator which might lead to missmatch in server and client. The problem and solution is described here: https://github.com/ianstormtaylor/slate/issues/870#issuecomment-411052223
With recent react you can do also this:
// useCustomSlateKeygen.js

import { useRef } from "react";
import { KeyUtils } from "slate";

export default (uniqueId) => {
  const ref = useRef(null);
  if (!ref.current || ref.current !== uniqueId) {
    let key = 0;
    const keygen = () => {
      key += 1;
      return uniqueId + key;
    };

    KeyUtils.setGenerator(keygen);
    ref.current = uniqueId;
  }
};

and then you can use it right before HTMLRenderer:
import { HTMLRenderer } from "@react-page/renderer";
import useCustomKeygen from "./useCustomKeygen";

const Content = ({ style, className, contentUniqueId, content }) => {
  useCustomKeygen(contentUniqueId);

  return (
      <HTMLRenderer plugins={plugins} state={content} />
  );
};

We need a section in the docs that describe these tricks, but i am too lazy right now to write that, so i leave it here for reference ;-)

Added the docs here


Updated Fastlane Advanced Guide - The Appfile

Summary
Updated the Fastlane advanced guide by including a small description about the Appfile and how to configure it.
Why
To help users with projects that are using advanced settings, to set a proper Fastlane environment for their lanes.

Great, thanks :+1:


make check fails in CI

Latest release for revive increased the confidence value for package-comments rule from 0.2 to 1 resulting in check-revive failure.
$ make check-revive
# Configure project's revive checks using .revive.toml
# See: https://github.com/mgechev/revive
revive -config .revive.toml $(find . -name '*.go')
./cephfs/command.go:1:1: should have a package comment
./rbd/errors.go:1:1: should have a package comment
./rados/rados_write_op_assert_version.go:1:1: should have a package comment
. . .
./rados/rados.go:1:1: should have a package comment
./rbd/snapshot_namespace.go:4:1: should have a package comment
./rados/ioctx.go:1:1: should have a package comment
make: *** [Makefile:229: check-revive] Error 1

Options going forward:

Restrict revive @ v1.2.1
Raise confidence value above 1.0
Reduce severity for [rule.package-comments]
Remove [rule.package-comments]

Missing option:
* Add doc comments to the packages that lack them.

Possible but then I realized that we have $(find . -name '*.go') in Makefile for check-revive. How about using go list ./... instead?
index 9377d26..03498fb 100644
--- a/Makefile
+++ b/Makefile
@@ -226,7 +226,7 @@ check-format:
 check-revive:
        # Configure project's revive checks using .revive.toml
        # See: https://github.com/mgechev/revive
-       revive -config .revive.toml $$(find . -name '*.go')
+       revive -config .revive.toml $$($(GO_CMD) list ./... | grep -vE 'contrib|internal')

 check-shell:
        shellcheck -fgcc $(SHELL_SOURCES)

$ make check-revive
# Configure project's revive checks using .revive.toml
# See: https://github.com/mgechev/revive
revive -config .revive.toml $(go list ./... | grep -vE 'contrib|internal')

Possible but then I realized that we have $(find . -name '*.go') in Makefile for check-revive. How about using go list ./... instead?

just saw https://github.com/ceph/go-ceph/pull/640 🙄

I'm assigning it to myself. Later today I'll add package level doc comments for the packages that don't have them.

Now that I'm looking more deeply at it, it seems to be failing to detect package comments that do exist. I tried tweaking the comment formatting but that didn't help.
I'm thinking about filing an issue with revive. We may need one of those workarounds in the short term.

While going through the checklist for revive's issue submissions I noticed our github action for running make check was using an old version of Go. Investigating that in case that is helping cause some of the false positives.

So I think I went through all the steps you did in a 2nd loop. I decided that this check is now more trouble than it's worth and have disabled it.  See the linked PR.
If in the future revive grew options for setting build tags (https://github.com/mgechev/revive/issues/230  -- currently revive's oldest open issue :-) )  we could reconsider this and pass package dirs on the command line rather than files but I would rather have all the files checked automatically with the remaining rules than constantly have to deal with these false positives, or some other complicated way of invoking revive.

If in the future revive grew options for setting build tags (mgechev/revive#230 -- currently revive's oldest open issue :-) ) we could reconsider this and pass package dirs on the command line rather than files but I would rather have all the files checked automatically with the remaining rules than constantly have to deal with these false positives, or some other complicated way of invoking revive.

I agree. Thanks for going through the details.


panic: dep ensure or dep ensure update

What version of dep are you using (dep version)?

v0.5.0-4-g6b79ccc
What dep command did you run?

dep ensure -v  or dep ensure -update -v
What did you expect to see?
update the vendor and rewrite the lock file
What did you see instead?
Warning: the following project(s) have [[constraint]] stanzas in Gopkg.toml:

  ✗  github.com/andygrunwald/go-jira
  ✗  github.com/mattn/go-sqlite3
  ✗  github.com/prometheus/common

However, these projects are not direct dependencies of the current project:
they are not imported in any .go files, nor are they in the 'required' list in
Gopkg.toml. Dep only applies [[constraint]] rules to direct dependencies, so
these rules will have no effect.

Either import/require packages from these projects so that they become direct
dependencies, or convert each [[constraint]] to an [[override]] to enforce rules
on these projects, if they happen to be transitive dependencies.

# Gopkg.lock is out of sync with Gopkg.toml and project imports:

·········
panic: version queue is empty, should not happen
goroutine 1 [running]:
github.com/golang/dep/gps.(*solver).findValidVersion(0xc420077300, 0xc4206b8000, 0xc420440d60, 0x1, 0x1, 0x0, 0xc420440d60)
	/Users/liukun/go/src/github.com/golang/dep/gps/solver.go:915 +0x4d7
github.com/golang/dep/gps.(*solver).createVersionQueue(0xc420077300, 0xc420b88d01, 0x14, 0x0, 0x0, 0xc420440d60, 0x1, 0x1, 0x0, 0x0, ...)
	/Users/liukun/go/src/github.com/golang/dep/gps/solver.go:902 +0x80d
github.com/golang/dep/gps.(*solver).solve(0xc420077300, 0x15fcac0, 0xc4200b81c8, 0x139a833, 0x15061a0, 0xc4205acc20)
	/Users/liukun/go/src/github.com/golang/dep/gps/solver.go:505 +0x5b7
github.com/golang/dep/gps.(*solver).Solve(0xc420077300, 0x15fcac0, 0xc4200b81c8, 0x1875f80, 0xc420028099, 0x1e, 0xc420393320)
	/Users/liukun/go/src/github.com/golang/dep/gps/solver.go:440 +0xc8
main.(*ensureCommand).runDefault(0xc4201a1940, 0xc4200dc980, 0xc4201ba7a0, 0x0, 0x0, 0xc4200fc090, 0x1600a60, 0xc420490420, 0xc420028084, 0x33, ...)
	/Users/liukun/go/src/github.com/golang/dep/cmd/dep/ensure.go:281 +0x361
main.(*ensureCommand).Run(0xc4201a1940, 0xc4200dc980, 0xc4201ba7a0, 0x0, 0x0, 0x0, 0x0)
	/Users/liukun/go/src/github.com/golang/dep/cmd/dep/ensure.go:218 +0x865
main.(*Config).Run(0xc4200c6f60, 0x0)
	/Users/liukun/go/src/github.com/golang/dep/cmd/dep/main.go:212 +0xfae
main.main()
	/Users/liukun/go/src/github.com/golang/dep/cmd/dep/main.go:84 +0x54d

Solved.


Function definition (go to definition, peek definition)

Being able to go to definition at least in the same file.

This probably would need the implementation of a language server as well. I will think about it down the road.

This probably would need the implementation of a language server as well. I will think about it down the road.

Any progress? ;)


Add rcl_timer_get_next_call_time timer API

Signed-off-by: Mauro Passerino<EMAIL_ADDRESS>

Closed since not really necessary


Extend HolidayBase::categories to accept a single value

Proposed change

Extend HolidayBase::category to accept a single value

Introduce helpers::_normalize_arguments handler
Update tests
Update examples documentation

Type of change

[ ] New country/market holidays support (thank you!)
[ ] Supported country/market holidays update (calendar discrepancy fix, localization)
[x] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
[ ] Dependency update (version deprecation/upgrade)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (a code change causing existing functionality to break)
[ ] New feature (new python-holidays functionality in general)

Checklist

[x] I've followed the contributing guidelines
[x] I've added references to all holidays information sources used in this PR
[x] The code style looks good: make pre-commit command generates no changes
[x] All tests pass locally: make test, make tox (we strongly encourage adding tests to your code)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

10 of 10 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.978%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
10240

Relevant Lines:
10240

💛  - Coveralls


Enable Windows build

Checklist

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

Added seanyen as a co-maintainer. Hope that's okay. :)
Patched pytohn/CMakeLists.txt to define an alternative option EIGENPY_STIELIB_ROOT to install the Python modules to a different location. It is to accommodate Conda on Windows convention where all the native binaries go to %PREFIX%\Library but all Python things go to %PREFIX\lib.
Patched the Eigen3 package discovery because on Windows, it doesn't export PkgConfig file yet.

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

Link a related pull request: https://github.com/conda-forge/eigen-feedstock/pull/24

cc @conda-forge/eigenpy this is ready for review and merge. thanks!

I have to admit I don't know how to review this, since I am not a conda-forge expert and know very little about Windows.
@seanyen what do you recommend, merging and fixing problems later if they are reported?
cc @wolfv if he has a more informed opinion.

Everything looks good to me except for the (typo?) in EIGENPY_STIELIB_ROOT
I quickly searched the eigenpy repo and didn't find this variable, spelled either correclty or wrong. Not sure from where it comes :) if you tell me it's correct like this i am happy to merge this recipe!

Everything looks good to me except for the (typo?) in EIGENPY_STIELIB_ROOT

Thanks for the fix. That's indeed a typo! And the variable is something made-up by me since the original build recipe assumes all the binaries should go under the same prefix, but it is not the case for conda on Windows.


C#: Update @name for two queries

@felicity-semmle @hvitved This also requires a change to the change notes, right?

This also requires a change to the change notes, right?

Shouldn't be needed; these queries were added in 1.21.

Well adding a new query is also a change ...
See https://github.com/Semmle/ql/pull/1501

Well adding a new query is also a change

You are right, forgot about that.

This also change needs a PR to update the change notes in the code repository...

All LGTM. Thanks for the correction.


how do i change the location of r path in vs code

how do i change the windows default r location

please add to documentation how to add change path in vs code not every1 knows this.

@premiumwd Thank you for issue!
I'll do.
Did you solved this?

yes, had to search for it in someone else's reported bug on this repo.

@premiumwd  OK, think you for sharing.
I'll write it in next 2 weeks.


how to simulate the effect of soil stress on rice yield?

Excuse me, does anyone know how to simulate the effect of soil stress on rice yield?please

Hi, @mrsunhuang , please use the DSSAT.net contact page for general questions about the model https://dssat.net/contact-us/. This issues page is to report bugs with the model code.
The Ceres-rice model does simulate the effects of soil water and soil N deficiencies affecting plant growth and photosynthesis. You can see a report of these stresses in Overview.OUT and PlantGro.OUT.


Integration with forge module

I'm attempting to get the forge module to work with atom-shell.
Forge module mods:
https://github.com/mattcollier/forge/blob/master/js/prng.js#L23
Atom-shell renderer code
https://gist.github.com/mattcollier/3a713b4a076cd65257fe
The code as shown allows one to utilize webworkers while still getting a CSPRNG from io.js via openssl.
I found that I am unable to call include('remote') on line 23 as shown
All of this works as shown, but I would like to have a solution that could be incorporated into forge. Ideally, the code would behave properly whether it is loaded from the renderer or the main process.

Check out #797, you can't require in web worker context :(

I have a question, Why use web workers when there's child_process?

Because i am love it
در تاریخ ۱۷ آوریل ۲۰۱۵ ۲۳:۰۹، "Steel Brain"<EMAIL_ADDRESS>نوشت:

I have a question, Why use web workers when there's child_process?
—
Reply to this email directly or view it on GitHub
https://github.com/atom/electron/issues/1436#issuecomment-94048297.

I love them too :)
But when we have a better option, like child processes and a super-smooth way of communication with those child processes like [ChildProcess-Promise][CPP]. I don't see a point in using them.
[CPP]:https://github.com/steelbrain/ChildProcess-Promise

I just know this way have problem,(s)
در تاریخ ۱۷ آوریل ۲۰۱۵ ۲۳:۱۶، "Steel Brain"<EMAIL_ADDRESS>نوشت:

I love them too :)
But when we have a better option, like child processes and a super-smooth
way of communication with those child processes like ChildProcess-Promise
https://github.com/steelbrain/ChildProcess-Promise. I don't see a point
in using them.
—
Reply to this email directly or view it on GitHub
https://github.com/atom/electron/issues/1436#issuecomment-94050338.

@steelbrain, I think the motivation for having web workers in node is well articulated here: http://blog.std.in/2010/07/08/nodejs-webworker-design/
I thought it would be easy to take advantage of the webworker functionality already built into forge.
Based on the aforementioned thread that explains that this would not be a thread safe configuration, I will not pursue this course any further.  I can add that we did encounter some segmentation faults during our testing.
Thanks for the recommendations!


[Feature Request] [RFC] Grouping similar Top N Queries by Latency and Resource Usage

Is your feature request related to a problem? Please describe
Background
As part of the search query categorization initiative we added support to compute the query shape of the incoming search queries and logged (debug) the basic query shape. We also added instrumentations on the search path to collect the types of queries, types of aggregations, sort order, etc.
As part of Top N queries by latency, we implemented a priority queue-based in-memory data store, with configurable window size, on the coordinator node, designed to efficiently store the top N queries.
Problem
For Top N queries by latency, we can encounter scenarios where some (or most) of the Top N queries contain duplicate queries. Say the same dashboard query is triggered continuously and happens to be the most expensive query in terms of latency - in this scenario all the Top N queries by latency will likely be spammed by the same query. To overcome such scenarios and to get a more detailed view of the Top N query patterns we are proposing to implement Top N query shapes by resource usage (latency, memory, disk, etc).
Describe the solution you'd like
DesignQuery ShapeFor every incoming query, we will compute the query shape. The query shape is essentially lossy transformations on the actual query to help de-duplicate the top N queries. Consider the sample query:

{
  "query": {
    "bool": {
      "must": [
        { "term": { "product_category": "Electronics" } },
        { "term": { "product_description": "Smartphone" } },
        { "range": { "purchase_date": { "gte": "2022-01-01", "lte": "2022-12-31" } } }
      ],
      "must_not": [
        { "exists": { "field": "delivery_date" } }
      ],
      "filter": {
        "terms": { "customer_type": ["New Customers", "Returning Customers"] }
      },
      "should": [
        { "match": { "customer_feedback": "Great product" } }
      ]
    }
  },
  "sort": [{ "product_rating": {"order": "asc"}}],
  "aggs": {
    "terms_agg": {
      "terms": { "field": "product_category" },
      "aggs": {
        "date_histogram_agg": { "date_histogram": { "field": "delivery_date", "calendar_interval": "month" } },
        "avg_agg": { "avg": { "field": "product_rating" } },
        "sum_agg": { "sum": { "field": "product_rating" } },
        "min_agg": { "min": { "field": "product_rating" } },
        "max_agg": { "max": { "field": "product_rating" } },
        "cardinality_agg": { "cardinality": { "field": "product_category" } },
        "percentile_ranks_agg": { "percentile_ranks": { "field": "product_rating", "values": [25, 50, 75] } }
      }
    }
  }
}

The proposed query shape for the above query will look something like:

bool
  must:
    range [field:purchase_date, width:12, unit: months]
    term [product_category:"Electronics"]
    term [product_description:"Smartphone"]
  must_not:
    exists [field:delivery_date]
  should:
    match [customer_feedback:"Great product"]
  filter:
    terms [customer_type:["New Customers","Returning Customers"]]
sort:
  asc [product_rating:asc]
aggregation:
  terms [field:product_category]
    aggregation:
      avg [field:product_rating]
      cardinality [field:product_category]
      date_histogram [field:delivery_date, calendar_interval:"month"]
      max [field:product_rating]
      min [field:product_rating]
      percentile_ranks [field:product_rating]
      sum [field:product_rating]
pipeline_aggregation:

We are capturing the shape of the query, sort, aggregations and pipeline aggregations. We capture the sort order, field names, field values and range width (difference between upper-bound and lower-bound of the range). The range width is captured to help us de-duplicate queries with the same range size but different window. For example, the same dashboard query that is run continuously but for different time ranges.Normalize Query ShapeWe need to normalize the query shape to make sure that 2 same queries always map to the exact same query shape including the ordering of the clauses, ordering of the queries within the clauses, ordering of the aggregations, etc. The following normalizations will be required:

Ordering of Query Shape Major Components: The query shape as shown above is divided into 4 distinct parts. The ordering of these parts will be as shown above: QueryBuilder tree, Sort, Aggregation tree followed by Pipeline aggregations.
Ordering of Bool Clauses: The order of the four boolean clauses will follow a lexicographic sequence as follows: filter, must, must_not followed by should.
Order of Sub-Queries within a Clause: The order of sub-queries within a clause will follow a lexicographic sequence.
Order of Aggregation types: The order of Aggregation types will follow a lexicographic sequence.
Order of Pipeline aggregation types: The order of Pipeline aggregation types will follow a lexicographic sequence.
Order of Sorts: Sorts will be lexicographically ordered based on sort order.
Order of same query type, aggregation type, sort order: If multiple queries, aggregation types, pipeline aggregations or sorts have the same type we will sort based on the real field name (not obfuscated field name).

Top N Query ShapesWe will create a new processor in the Query Insights framework to keep track of the Top N query shapes in the current window, similar to what we do for Top N Queries by latency.For every window, we will keep track of the hash to (count_of_queries, total_latency_across_all_queries). This will enable us to calculate the average latency for the queries. We will also have a priority query to keep track of the Top N queries for the window.The algorithm will be as follows:

After every window we will clear the hash to (count, latency) mapping and Priority Queue. We will export the Top N query shape data for the previous window to a local index similar to what we are aiming to do for the Top N queries by latency.APIsWe will be extending the Top N queries by resource usage APIs as part of query shape insights.Existing APIs:# get top n queries by latency in the last windowGET /insights/top_queries?type=latency# get top n queries by cpu in the last windowGET /insights/top_queries?type=cpuAdditions:# get top n query shapes by latency in the last windowGET /insights/top_queries?type=latency&group_by=shape# get top n query shapes by cpu in the last windowGET /insights/top_queries?type=cpu&group_by=shape
Related component
Search
Describe alternatives you've considered

We can use the actual query to de-duplicate the Top N queries by latency. However, this will not take into account queries that are exactly the same with the only difference being the range width. For example, the same dashboard query that is run continuously but for different time ranges. This will also not group the exact same queries that have ordering differences in the clauses.
Use a more generic query shape that does not contain the field names, field values and range width information. Similar to:

bool
  must:
    term
    terms
  filter:
    constant_score
      filter:
        range
  should:
    bool
      must:
        match
      must_not:
        regex

This approach might end up grouping queries with varying latency characteristics into the same group. Example is the same query on 2 different fields exhibiting different latency due to the cardinality differences for the 2 fields (one high cardinality other low cardinality).
Please let me know your thoughts on the above proposal!

[Triage - attendees 1 2 3 4 5]
@deshsidd Thanks for creating this RFC, we are looking forward to seeing how this progresses.

@deshsidd Thanks for creating the RFC! This feature will be a super useful extension to the current top n queries feature!

Title: Top N Query Shapes by Resource Usage

How would you feel about renaming the title/scope of the RFC to something like “Grouping similar top queries together in the top n queries feature” ? Cause based on the RFC, that is what we are really trying to do. Also the grouping will be more than just “resource usage”, it can be a lot more metric types as well (like latency, volume) - arguably, “latency” shouldn’t be considered as one type of “resources”.

The proposed query shape will look something similar to..

It would be great if you can also provide the original query for this example shape, so that we can compare them side by side.

Normalize Query Shape ..

As part of the normalization and shape calculation, How would you feel about using hashing instead of the magicfield_x: value_x string? cause field_x, value_x doesn’t actually mean anything and we will need extra efforts to maintain them to avoid collision. Would hashing be a more generic solution for our use cases?

We will create a new processor in the Query Insights framework to keep track of the Top N query shapes in the current window, similar to what we do for Top N Queries by latency..
… We will also have a priority query to keep track of the Top N queries for the window.

Seems like you are suggesting we create a separate Priority Queue to keep track of the shapes along with the existing top n queries? IMO that would be a duplicated effort and will potentially have a negative impact on memory usage. What do you think about “extending the current processor and top n features to add a grouping mechanism” instead of making a whole new processor? In that case the user can either use the “vanilla” top n queries, or they can opt-int to do grouping by certain attributes - and shape can simply be one of the attributes.

APIs: We will be extending the Top N queries by resource usage APIs as part of query shape insights.

We don’t need to propose new APIs IMO. The user just need to make certain configuration changes. For example, if they want to use “top n queries with grouping”, they can do something like
PUT _cluster/settings -H 'Content-Type: application/json' -d'
{
    "persistent" : {
        "search.insights.top_queries.latency.enabled" : "true",
        "search.insights.top_queries.latency.window_size" : "1m",
        "search.insights.top_queries.latency.top_n_size" : 20,
        "search.insights.top_queries.latency.group_similar_queries" : true,
        // We only have "group by shape" now
        "search.insights.top_queries.latency.group_by" : "shape",
        // OR this if we don't want to expose the internal "shape" concept
        "search.insights.top_queries.latency.group_granularity" : "low",
    }
}'

Thanks @deshsidd for writing this proposal. Most of it looks good, and storing hashes in memory is really nifty. Should prevent unnecessary memory consumption. Some considerations below:

Order of Sorts: Sorts will be lexicographically ordered based on sort order.

We need to be careful while doing the normalization as the execution/results might be different depending on the sort order. Probably we can compare the execution latency/resource consumption of current query with the average metrics for the shape so far (count_of_queries, total_latency_across_all_queries). Ideally should not be too off for it to be variation of the same shape?

GET /insights/top_queries?type=latency?group_queries=true

I will probably call these parameters as dimension for latency, cpu, memory and have enumeration for grouping. level(values being query,similar,shape) is something used for aggregation within node stats, although there might be better name as well. Also, for better readability type=latency ? &group_queries=true. Breaks my flow a bit! ;)

We don’t need to propose new APIs IMO.

Definitely +1 to that

The user just need to make certain configuration changes. For example, if they want to use “top n queries with grouping”, they can do something like

When it comes to settings/configurations, I like the principal of Less is more. Should cut the number of settings to atleast half (from 6 -> 3) in my opinion.

I'd like to recommend that grouping similar queries should be the default behavior. Otherwise the TopN feature is likely to capture "the same" query for all N, since most search requests are programmatically generated. If there's one dashboard visualization powered by an expensive query (with relative time range), some N refreshes of that visualization will dominate the top N.
Maybe we can have a setting to turn it off, but it's almost always going to be a good thing.
It's probably also worth noting that "query shape" in this context really just refers to deduplicating with a (slightly) relaxed definition of equality. If we come up with the right definition (that reasonably matches what a human would consider "equivalent querie"), we might not even need a setting.
I suppose the counterexample would be cases where a normally fast query is slow because of a stop-the-world garbage collection, which would probably only show up in the non-deduped output. As a countercounterargument, though, capturing that query doesn't really give us any insight (since it's not a slow query in general -- it's just an unlucky victim of garbage collection and timing).

If we come up with the right definition (that reasonably matches what a human would consider "equivalent querie"), we might not even need a setting.

I really love this idea.
We could make deduplicating default to true in top n queries, and start with a setting to turn it off until we have a reasonable behavior defined for equivalent queries.

Thanks for the feedback @peternied @ansjcy @jainankitk @msfroh
@ansjcy
Renamed the RFC to Top N Query Shapes by Latency and Resource Usage.

It would be great if you can also provide the original query for this example shape, so that we can compare them side by side

Agreed. Provided the query and the subsequent query shape in the edit above.

As part of the normalization and shape calculation, How would you feel about using hashing instead of the magicfield_x: value_x string? cause field_x, value_x doesn’t actually mean anything and we will need extra efforts to maintain them to avoid collision. Would hashing be a more generic solution for our use cases?

These are not hashed/obfuscated fields but are sample field names. Changed the query and query shape to real field names above to avoid any confusion. There will be no hashing or obfuscating of field names as part of the above proposal.
@msfroh @ansjcy @jainankitk

Seems like you are suggesting we create a separate Priority Queue to keep track of the shapes along with the existing top n queries?

I'd like to recommend that grouping similar queries should be the default behavior. Otherwise the TopN feature is likely to capture "the same" query for all N, since most search requests are programmatically generated. If there's one dashboard visualization powered by an expensive query (with relative time range), some N refreshes of that visualization will dominate the top N.

When it comes to settings/configurations, I like the principal of Less is more. Should cut the number of settings to atleast half (from 6 -> 3) in my opinion.

Looks like there are 2 different approaches we could potentially take here based on the above discussions.
1. Compute either Top N queries or Top N query groups but not both.
Have a configuration such as:
"search.insights.top_queries.latency.group_similar_queries" : true, which will be enabled by default.
When this configuration is enabled we only compute the query groups and not the individual top N queries. Note that each group will contain a sample query as an example query representing the queries in the group.
Pros:

Save of memory and resource usage since we will either compute top N query groups or Top N queries but not both.
Possibly more intuitive to use

Cons:

Users don't have the option to see real Top N queries & Top N query groups. Only one sample query provided per group.

2. Compute both the Top N queries and Top N query groups and provide the option in the API to view both.
# get top n query shapes by latency in the last window
GET /insights/top_queries?type=latency&group_by=shape

# get top n queries by latency in the last window
GET /insights/top_queries?type=latency

Pros:

Users have the option to see the real Top N queries and Top N query groups.

Cons:

Higher memory and resource usage since we will compute both Top N query groups and Top N queries.

Based on the above discussions looks like we are leaning towards option 1. If the memory and resource usage overhead is not much more in option 2 it will provide more flexibility to the user (might need to perform a POC to verify).

@jainankitk

We need to be careful while doing the normalization as the execution/results might be different depending on the sort order. Probably we can compare the execution latency/resource consumption of current query with the average metrics for the shape so far (count_of_queries, total_latency_across_all_queries). Ideally should not be too off for it to be variation of the same shape?

In that case probably might be beneficial to skip the normalization for multiple sorts and leave it as is in the original query since the order of the execution matters.

I want to call out that we should should not use the word shape anywhere in any APIs.
It's a word that I used when trying to address the problem of collecting anonymous statistics about queries (where we don't care about the specific fields/values being queried, but do care about the types of queries and the complex query structure).
In this case, we have the queries themselves -- we're just trying to avoid the situation where the Top N queries are all the "same" query.

Agreed. Keeping the above in mind I am proposing the following.
We can have a dynamic configuration for the grouping of Top N queries:
"search.insights.top_queries.latency.group_by" : "similarity"

The type of the setting is enum and the values could be none, similarity and in the future user_id (https://github.com/opensearch-project/OpenSearch/issues/13341). similarity could be the default option set.
We do not need any changes in the Top N queries APIs:
# get top n queries by latency in the last window
GET /insights/top_queries?type=latency
# get top n queries by cpu in the last window
GET /insights/top_queries?type=cpu

The output of these APIs will vary based on the search.insights.top_queries.latency.group_by setting configured.

none would give the actual Top N queries
similarity would give the Top N query groups by shape
user_id would give the Top N queries by user_id/tenant_id (potential future scope - https://github.com/opensearch-project/OpenSearch/issues/13341)

Let me know your thoughts!

Made good progress working on implementing the above feature. However, during the implementation came up with some issues that need to be further thought through.
1. Algorithm to group Top queries does not work as expected
In the  algorithm that we used to attain the Top N query groups we missed taking into account the fact that we will require to update the average latency for a group already encountered and existing in the Priority Queue. If the average latency for this group decreases, this might not make it into the Top N query groups and can leave us with incorrect results.
Solutions:
a. Use Total latency rather than average latency
With total latency since the metric will never decrease in value the above issue can be overcome.
Con: This might pollute the Top N query groups with frequently occurring queries rather than query groups exhibiting high average latency.
b. Get Top N groups at the end of the window from the Hashmap
Rather than continuously calculating the Top N groups compute it at the end of the window.
Con: As the cardinality of the groups increases this approach becomes very inefficient.
c. Get Top N groups on a best effort basis (Proposed approach)
Keep the metric as average latency. If the average latency of a query group currently in the Top N (Priority Queue) decreases, check if it is lower than the lowest entry in the PQ. If so, delete the group from the Top N groups.
2. Current Implementation of Top N does not support updating Top N Records in the Priority Queue
Currently, we have a separate Priority Queue for tracking Top N requests by latency, cpu, memory.
We also have an initial LinkedBlockingQueue that buffers the records that will make it to any of the Top N priority queues (A records makes it to the LinkedBlockingQueue if the respective Priority Queue has not reached its capacity OR the smallest entry in the PQ is larger than metric for the current record). This LinkedBlockingQueue is drained every 5 seconds to add the records to the respective priority queues for latency, cpu and memory.
If Top N groups is enabled, we will need to change the current approach and now add ALL the records to the LinkedBlockingQueue and process the Top N groups while updating the respective Priority queues. This will enable us to update the average latency for a previously encountered group that already exists in the Top N query groups priority queue.
The new approach might cause additional overhead to the system when grouping is enabled since we are now processing ALL the records for each MetricType (Latency, CPU, memory). Previously, we were filtering out most of the records and retaining only the Top records as described above.
3. Grouping by individual metric type might not be possible
In the RFC, we proposed the following configurations that could be used to group Top N queries:
"search.insights.top_queries.latency.group_by" : "similarity".
However, based on the new approach proposed in 2 we will have to enable group_by for all Metric Types based on the current implementation.
"search.insights.top_queries.group_by" : "similarity"
This is because if group_by is enabled, we are proposing to add all query records to the LinkedBlockingQueue and not only the records that will make it to the Priority Queue. We need to do this for ALL metric types and cannot do this for individual metric types based on the current implementation.
Another aspect to consider here is how we will display these groups on the query insights dashboard that is currently being worked on.
We will have to either display a table with individual queries as rows and latency, cpu, memory as columns OR a table with query groups as rows and average latency, average cpu and average memory as columns. This might not be possible if we only enable grouping for a subset of metric type (say only for latency).
Need to get consensus on the above before we continue with the implementation and carefully think about some of these aspects. @msfroh @jainankitk @getsaurabh02 @ansjcy

https://github.com/opensearch-project/OpenSearch/pull/11904 does not support updating Top N Records in the Priority Queue

@deshsidd can you please explain what is the issue here specific to grouping. I am assuming the comparison logic for priority queue should follow the same logic for Top N, assuming the mapping of Groups to individual queries is outside in a separate map.

The challenging part for grouping is the key we use to sort items in prority queue can change constantly. But in the normal top n queries, the keys always remain the same. I did some thinking around this and I believe those challenges can still be solved in good time complexity.
We need to twick the data structures a little bit to add another priority queue and a hashmap (so we have 1 min heap, 1 max heap and 1 hashmap).

the min heap is the same as the priority queue we use the top n queries. It stores top n shapes
the hash map stores group to similar query mapping, it should also store a flag to say "which heap this group already exists in".
the max heap is to store the remaining groups that hasn't made to the top n heap.

Refer to the following flow diagram for when / how to update each data structure

Also, if we continue using the normal priority queue, updating / deletion can take O(n) in worst case scenario, which is not acceptable. But I remember indexed priority queue can support O(logn) time update and delete. We should use that for this purpose. Please refer to https://algs4.cs.princeton.edu/24pq/IndexMinPQ.java.html.
For the Current implemetation does not support updating Top N Records in the Priority Queue issue, if we use the above approach it should be good, also the logic to bypass adding records to the buffer can be disabled if grouping is enabled. We should do some benchmarking tests to understand what is the storage impact and what should be the best buffer size to set in this case. IMO this won't be a blocker for this feature.
As for Grouping by individual metric type might not be possible, again I don't think this is a hard blocker on this feature. I am ok to enable grouping for all metrics types at the same time and  "search.insights.top_queries.group_by" : "similarity" looks good to me. Cause I don't see there's any strong use cases when users want to only enable grouping for certain metrics.

Thanks for the responses. Based on my initial comment please note the following:

Algorithm to group Top queries does not work as expected (Resolved - Get Top N groups on a best effort basis)
Keep the metric as average latency. If the average latency of a query group currently in the Top N (Priority Queue) decreases, check if it is lower than the lowest entry in the PQ. If so, delete the group from the Top N groups.

Current implementation does not support updating Top N Records in the Priority Queue (In Progress)
The main concern I had here was that the current buffer + priority approach will not work here. The logic to bypass adding the records to the buffer can be disabled if grouping is enabled and this will work. However, my concern was the performance and storage impact this will have.

My proposal would be to go with the approach to bypass adding the records to the buffer if grouping is enabled and do some benchmarking to figure out the performance and storage impact.

Grouping by individual metric type might not be possible (Resolved - Can use one setting for grouping spanning across all metric types)

@ansjcy , regarding your approach mentioned, it seems like an overly complex approach that might not be required and might still be less performant.
The 2. if it exists in the max heap step will be O(n) time where n is the total number of groups in the window, right? The approach might be much slower as n increases. We can consider using a set to track this to avoid the O(n) but it will further increase the storage.
Furthermore, try add/update in the all groups heap step will be O(n) with a regular heap and O(logn) in the indexed priority queue which will add to the processing time as n increases.
What do you think of the approach mentioned above in 1. where we update the average latency of the record in the priority queue (PQ will have max 100 elements and this should be quick). If the average latency of a query group currently in the Top N (Priority Queue) decreases, check if it is lower than the lowest entry in the PQ. If so, delete the group from the Top N groups else keep it in the Priority Queue. Can also consider using an indexed PQ for better time complexity here.
Let me know your thoughts!

overly complex approach that might not be required and might still be less performant

In terms of time complexity, I don't think the proposed algorithm will be less performant, since you have a hashmap anyway to keep all the groups info, check if it exists in the max heap will only takes O(1) time. Also if you are using indexed priority queue, delete and update will be O(logn), which should be similar to constant time. I agree there will be storage impact, but again, we have to do some benchmarking tests, to understand how many groups could there be.
I'm also okay with the "the best effort approach". But the correctness will be a big concern. Is it possibly to test how accurate this method will be? If it is 90%+ it should be good.

Inspired by the algorithm proposed here, here is the algorithm used in the PR:
Data Structures
     /**
     * Map storing groupingId to Tuple containing Aggregate search query record and boolean.
     * SearchQueryRecord: Aggregate search query record to store the aggregate of a metric type based on the dimension.
     * Example: Average latency. This query record will be used to store the average latency for multiple query records
     * in this case.
     * boolean: True if the aggregate record is in the Top N queries priority query (min heap) and False if the aggregate
     * record is in the Max Heap
     */
    private Map<String, Tuple<SearchQueryRecord, Boolean>> groupIdToAggSearchQueryRecord;
    /**
     * Min heap to keep track of the Top N query groups and is passed from TopQueriesService as the topQueriesStore
     */
    private PriorityQueue<SearchQueryRecord> minHeapTopQueriesStore;
    /**
     * The Max heap is an overflow data structure used to manage records that exceed the capacity of the Min heap.
     * It stores all records not included in the Top N query results. When the aggregate measurement for one of these
     * records is updated and it now qualifies as part of the Top N, the record is moved from the Max heap to the Min heap,
     * and the records are rearranged accordingly.
     */
    private PriorityQueue<SearchQueryRecord> maxHeapQueryStore;

Algorithm
=> New group added to the grouping service:

Add to min PQ and overflow records to max PQ (if the number of records in the min PQ exceeds the configured size N)

=> Existing group being updated to the grouping service

If aggregate record present in min PQ:

remove the record from the min PQ
update the aggregate record (aggregate measurement could increase or decrease)
If max PQ contains elements, add to max PQ and promote any records to min PQ
If max PQ is empty, add to min PQ and overflow any records to max PQ

If aggregate record present in max PQ:

remove the record from the max PQ
update the aggregate record (aggregate measurement could increase or decrease)
add to min PQ and overflow any records to max PQ

We can do some benchmarking to check the performance here and update this to an index PQ to improve the performance if required.

Resolved in the following : https://github.com/opensearch-project/query-insights/pull/66


Reading from SDCard example

I'm having issues to read a csv file from sdcard in chunks; it randomly fails to parse file, using the following code:
    objFile = SD.open("file.csv", "r");
    if (!objFile)
    {
        Serial.print(F("ERROR, unable to open csv file"));
        Serial.println(F(""));
        while (1)
            ;
    }

    */ file contents:
    key,value\n
    102,750\n
    101,750\n
    103,750\n
    104,750\n
    */

    CSV_Parser csvParser(/*format*/ "dd", /*has_header*/ true, /*delimiter*/ ',');

    char buffer[600];
    while (objFile.position() < objFile.size())
    {
        objFile.readBytes(buffer, sizeof(buffer));
        csvParser << buffer;
    }

    csvParser.parseLeftover();
    objFile.close();

I have verified that everything works fine if csv file contents is provided all at once as first argument to csvParser.
Could you please tell the appropriate method to read csv chunks from sdcard ?
This could possible be included in the provided example to help others that may experience the same challenge.
Thanks in advance!
Hernán.-

Thank you for reporting this.
There are 2 problems:

library bug when supplying csv by chunks, fixed with these commits: 1, 2, 3
buffer in the example you posted is not terminated by 0, which can be fixed by defining it as "{0}" at declaration like:

char buffer[600] = {0}; // it will fill it all with 0's

or alternatively, you could use the return of readBytes to terminate the string at the right place directly like:
int i = objFile.readBytes(buffer, sizeof(buffer));
buffer[i] = 0;

I think it could be good idea to supply the file character by character, this way there's not need for using a buffer at all, I added example like this:
https://github.com/michalmonday/CSV-Parser-for-Arduino/blob/master/examples/reading_from_sd_card/reading_from_sd_card.ino

Hi Michal, thank you for your kick response!
I've tested the new version and I can confirm it now works properly following the new example code.


directory options

Can be a good option in administrator show or not directory link in the front page before Login or Register
Possible in some webs like to keep totally privacy of not register users and not like to show the directory
to no login public
That can be a good feature

Admin -> Site -> Block Public

Thanks solve


use user_data_dir rather than user_runtime_dir for view notifications

Resolves https://github.com/UKGovernmentBEIS/inspect_ai/issues/665
It seems as if unlike other directories, user_runtime_dir does not have a fallback if the user don't have the requisite parent directories with permissions. This causes failure modes on devcontainers and other minimally configured systems.
The resolution is to use the user_data_dir instead, which has a ~/.local/share fallback on Linux. VS Code extension is also updated to look for view notification files in both locations to support older and newer versions.

Resolves #665
It seems as if unlike other directories, user_runtime_dir does not have a fallback if the user don't have the requisite parent directories with permissions. This causes failure modes on devcontainers and other minimally configured systems.
The resolution is to use the user_data_dir instead, which has a ~/.local/share fallback on Linux. VS Code extension is also updated to look for view notification files in both locations to support older and newer versions.

I assume you mean user_data_path, per the code in this PR
There is unfortunate inconsistency in naming between XDG and platformdirs.
https://platformdirs.readthedocs.io/en/latest/api.html
has
user_data_dir - data directory tied to the user
user_data_path - data path tied to the user
XDG has

$XDG_DATA_HOME defines the base directory relative to which user-specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.
$XDG_DATA_DIRS defines the preference-ordered set of base directories to search for data files in addition to the $XDG_DATA_HOME base directory. The directories in $XDG_DATA_DIRS should be separated with a colon ':'.
If $XDG_DATA_DIRS is either not set or empty, a value equal to /usr/local/share/:/usr/share/ should be used.

Assuming XDG_DATA_DIRS = user_data_dir, we wouldn't want to use that, since it looks like it would be read-only
If XDG_DATA_HOME = user_data_dir, then we are good to use user_data_dir.
If the upstream bug is fixed, will we revert this to simplify things?

The _dir vs. _path distinction is just one returns a string and one returns a Path
XDG_DATA_DIRS is a fallback list of other root directories to search within (in addition to .local).
I don't think I'll revert if the upstream bug if fixed b/c it will make us depend on a super recent version of platformdirs (which could possibly cause problems for other dependency resolution). runtime_dir is a super obscure variation (again, MacOS and Windows don't even have it) so I think a poor choice in the first place.


Allow option to specify a DTSH output path

#Fixes https://github.com/livepeer/catalyst-api/issues/201
The changes here requires the following Mist changes here:
https://github.com/DDVTECH/mistserver/pull/135

LGTM, the only change I made was to log with Request ID rather than a fmt.Println


QUIC support

Hello,
My point of view on amphp is that this project pushes always PHP limits further, and I love it. I think it's time to talk about a support of QUIC so amp can support HTTP/3 as well.
For the record, QUIC is already supported in some languages, see Wikipedia: https://en.wikipedia.org/wiki/QUIC#Source_code
What do you think about that? Do you have any plan for its support? I assume it should be a package on top of the UDP library of amp.

Yes.
But I consider it most likely that we won't implement QUIC in PHP code, but use bindings via ext/ffi. There's some crypto embedded in QUIC, which isn't trivially done in PHP (or rather doing so would be terribly slow) as openssl refuses to provide a simple API for QUIC, but is going to implement an opinionated one, with their own event loop.

@bwoebi thank you for the details you are giving, this is super interesting. Could you add some links? (I'm curious about the discussion around openssl for example)
Is there another canal where you discussed QUIC support? (PHP RFC? A repository for an extension?)
Is there some information about a WIP inside openssl for the event loop you're talking about?
I'm interesting in trying to help (and I'm probably not the only one ^^), but we I think we need to talk about and give the right links here. :)


DB usage (mysql, posgresql).

Hello
It is seems to me the code is not good:
sailor/src/sailor/db/resty_mysql.lua
line 31: port = 3306,
Is it better to make a new parameter 'conf.port' for databases in the config file?
And this code:
sailor/src/sailor/db/luasql_common.lua
line 43: db.con = assert (db.env:connect(conf.dbname,conf.user,conf.pass,conf.host))
Is it better to make like:
db.con = assert (db.env:connect(conf.dbname,conf.user,conf.pass,conf.host,conf.port))
Because it doesn't work for me with postresql without port parameter.
Thank you.

so sad it's not fixed yet  :crying_cat_face:
luasql postgres env:connect params:
https://keplerproject.github.io/luasql/manual.html#postgres_extensions
luasql mysql env:connect params:
https://keplerproject.github.io/luasql/manual.html#mysql_extensions
the port param is not used

Solved with monkey patching (how can this even work?!  :scream_cat:)
At the top of mysite/index.lua:
require 'monkey_patching'

mysite/monkey_patching.lua:
luasql_common = require 'sailor.db.luasql_common'
local conf = require 'conf.conf'

-- adding port param to luasql_common.connect
local db_conf = conf.db[conf.sailor.environment]
local luasql = require("luasql."..db_conf.driver)

luasql_common.connect = function ()
	if luasql_common.transaction then return end
	luasql_common.env = assert (luasql[db_conf.driver]())
	luasql_common.con = assert (luasql_common.env:connect(db_conf.dbname, db_conf.user, db_conf.pass, db_conf.host, db_conf.port))
end

Monkey patching is weird, but it works :sweat_smile:
I :heart: lua

Fixed in next release.


A11y_AzureDataStudio_Connect to a SQL Server_Keyboard: The New Connection tooltip is not accessible using keyboard

GitHubTags:
#A11yMAS; #A11yTCS; #A11ySev2; #DesktopApp; #BM-AzureDataStudio-Win32-Feb2022; #Azure Data Studio; #WCAG2.1.1; #Win32; #AINotInScope; #Keyboard;
Environment Details:
Windows Version :Windows 11 Enterprise
Application name :Azure Data studio
Repro Steps:

Launch Azure Data Studio.
Select the Connections icon (if not already selected) from left bar.
Hover over the 'Servers' header and select the 'New Connection' icon.
Verify tooltip is accessible using keyboard or not

Actual Result:
The New Connection tooltip is not accessible using keyboard
Expected Result:
The New Connection tooltip should be accessible using keyboard
Note:
Similar issue can be observed in throughout the application wherever icon have a tooltip
Attachment:

upstream issue, being tracked here: https://github.com/microsoft/vscode/issues/132344


Fix npm packages vulnerabilities in Tools

Removed tools/runtime containing a copy of an old unused version of 'ms-rest' and 'ms-rest-azure' (These folder contained several vulnerabilities)
Remove unused vulnerable 'grunt*' dependencies.

"grunt": "~0.4"
"grunt-contrib-connect": "^0.10.1"
"grunt-contrib-symlink": "^0.3.0"
"grunt-devserver": "~0.6"
"grunt-gh-pages": "1.1.0"
"grunt-jsdoc": "~0.6"

Note: We simply removed those vulnerable dependencies reported by GitHub. However, we should review this entire folder and check if some of these assets are no longer in use.

Pull Request Test Coverage Report for Build 1717

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.461%

Totals

Change from base Build 1702:
0.0%

Covered Lines:
2206

Relevant Lines:
3003

💛  - Coveralls


NL: too many emissions SVs in medium index

Might need more topics and trimming.

@lucy-kind @jehangiramjad


Can't see judges and submitted codes in the exam's submission page

Reproduce:
User<EMAIL_ADDRESS>

go to exam's submission page

go to the first question (problemId=3)

See submission page's and click view judges and view source code

This is not implemented.


Calculate (and show) pluvial and fluvial effects of measures

The calculation for buying measures does not influence the pluvial and fluvial 'defense' of a house yet. The delta caused by measures has to be stored with the house (or rather the HouseGroup that is specific to the group and the session.

The effects can be shown when info is provided and shown as '?' in the scenario where no info is available.

The pluvial and fluvial defense of a house is changed as a result of a measure.

The effects of measures are available on the cards (? or value).

The calculation is correct. Later, we can see if we want to show more information on the flood defenses of the measures in the app, and if so, how the layout should be.


css fixes for desktop

Our CSS for the desktop was a bit weird. For some reason media="screen" wasn't working. Furthermore the images were a bit strange, so I found another css file to use. Also cleaned up the show-on-desktop/show-on-mobile css classes
Before

After

Looks alot better, thanks for doing this. LGTM


VariablesToExport and PowerShell Performance

This document makes no mention of VariablesToExport. Should we assume that this should also use an empty array @() and not a wildcard character * in order to not negatively impact PowerShell performance? I did want to note that I am aware of the comments inside a module manifest file (psd1). Those do indicate to use an empty array for FunctionsToExport, CmdletsToExport, and AliasesToExport while VariablesToExport does not. While this may answer the question, it might be nice to see a bit more about it in the online documents. That (1) it's not necessary to do this for VariablesToExport, and (2), the reason as to why.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e04eb8e0-6d57-6d4f-6d89-9fc91cd56883
Version Independent ID: 9b127bf9-6a9e-957d-2c92-823fc82baa26
Content: PowerShell module authoring considerations
Content Source: WindowsServerDocs/administration/performance-tuning/powershell/module-authoring-considerations.md
Product: windows-server-threshold
Technology: performance-tuning-guide
GitHub Login: @lzybkr
Microsoft Alias: JasonSh

tl;dr: VariablesToExport has almost no impact on performance regardless of what you specify or don't.
Command discovery has a big impact on PowerShell performance which is why there is a cache. Building the cache relies on Export entries other than VariablesToExport.
Because VariablesToExport is ignored during command discovery, it's value does not impact the performance of command discover.
That said, it certainly isn't bad for performance to specify an empty array or avoid the use of a wildcard.

This reply was great -- thank you! I still think the help document might benefit from making this clarification, as to avoid answering the same question again. Appreciate your time!

Closing issue...


MoveAutomation is endless if end point coordinates are fractional

Sometimes _getTargetClientPoint returns fractional coordinates in Firefox. In this case a condition in _isMovingFinished never becomes true.

The problem is caused by specifying fractional dragOffsetX and dragOffsetY. For the new API we need to implement a validation for offsets: #439. For the legacy API we decided to round offsets in drag, click and select automations.

I'm working on it.

Found that offsetX and offsetY is already rounded by getOffsetOptions (https://github.com/DevExpress/testcafe/blob/master/src/client/runner/utils/mouse.js#L52). So we need to round dragOffsetX and dragOffsetY only.


E101 False positive in multiline string

I have a python model that contains rest endpoint queries defined as multi-line strings, i.e.
query = """
    query ...
"""

ruff is reporting E101 Indentation contains mixed spaces and tabs for the text inside the string.
Technically this is correct as the indentation of the query does contain a mix of tab and spaces - but in general, I feel that ruff shouldn't try and lint a text block.
Note I observed this in a notebook - I've not tested in a py file

So pycodestyle has this behavior too, though it's unclear whether they consider it correct (https://github.com/PyCQA/pycodestyle/issues/600, https://github.com/PyCQA/pycodestyle/issues/376, https://github.com/PyCQA/pycodestyle/issues/45).
We actually disabled W109 (which flags uses of tabs) within such strings. I'm open to disabling E101 too -- but what's the valid use-case for mixing spaces and tabs within a single indent, even within a string?

In a unit test, one may want to check if a file has the expected content.
a = """
	    example1
	    example2
"""
with open("some_file.txt") as f:
    b = f.read()
assert a == b

The fix breaks the test.

Ignoring leading whitespace in multiline strings seems reasonable because it is not an indentation.


Improve german translation

The german translation is very poor, it is very inconsistent and full of errors.
I've contributed some improvements in pull request #412.

@neuhaus Thanks for the the PR.


Ch3 visuallizeGeometry.cpp can't not work

Hi Professor GAO , there has a problem for me . When I run this cpp file , it will give the following errors:
In file included from /usr/local/include/pangolin/utils/signal_slot.h:3:0,
from /usr/local/include/pangolin/windowing/window.h:35,
from /usr/local/include/pangolin/display/display.h:34,
from /usr/local/include/pangolin/pangolin.h:38,
from /home/nchu734/slambook2-master/ch3/visualizeGeometry/visualizeGeometry.cpp:11:
/usr/local/include/signals/signals.hpp:257:17: error: parameter declared ‘auto’
template<auto PMF, class C>
^~~
/usr/local/include/signals/signals.hpp:269:17: error: parameter declared ‘auto’
template
^~~~
/usr/local/include/signals/signals.hpp: In member function ‘fteng::connection_raw fteng::signal<void(A ...)>::connect(C*) const’:
/usr/local/include/signals/signals.hpp:261:36: error: forming reference to void
auto& call = calls.emplace_back();
^
/usr/local/include/signals/signals.hpp: In lambda function:
/usr/local/include/signals/signals.hpp:263:101: error: ‘PMF’ was not declared in this scope
call.func = reinterpret_cast<void*>(+[](void* obj, A ... args) {((reinterpret_cast<C*>(obj))->PMF)(args...); });
^~~
/usr/local/include/signals/signals.hpp: In member function ‘fteng::connection_raw fteng::signal<void(A ...)>::connect() const’:
/usr/local/include/signals/signals.hpp:272:19: error: ‘func’ was not declared in this scope
return connect(func);
^~~~
/usr/local/include/signals/signals.hpp:272:19: note: suggested alternative: ‘fputc’
return connect(func);
^~~~
fputc
/usr/local/include/signals/signals.hpp: In member function ‘fteng::connection_raw fteng::signal<void(A ...)>::connect(void ()(A ...)) const’:
/usr/local/include/signals/signals.hpp:278:36: error: forming reference to void
auto& call = calls.emplace_back();
^
/usr/local/include/signals/signals.hpp: In member function ‘fteng::connection_raw fteng::signal<void(A ...)>::connect(F&&) const’:
/usr/local/include/signals/signals.hpp:288:24: error: ‘remove_pointer_t’ in namespace ‘std’ does not name a template type
using f_type = std::remove_pointer_t<std::remove_reference_t>;
^~~~~~~~~~~~~~~~
/usr/local/include/signals/signals.hpp:289:23: error: ‘is_convertible_v’ is not a member of ‘std’
if constexpr (std::is_convertible_v<f_type, void()(A...)>)
^~~~~~~~~~~~~~~~
/usr/local/include/signals/signals.hpp:289:23: note: suggested alternative: ‘is_convertible’
if constexpr (std::is_convertible_v<f_type, void()(A...)>)
^~~~~~~~~~~~~~~~
is_convertible
/usr/local/include/signals/signals.hpp:289:40: error: ‘f_type’ was not declared in this scope
if constexpr (std::is_convertible_v<f_type, void()(A...)>)
^~~~~~
/usr/local/include/signals/signals.hpp:289:40: note: suggested alternative: ‘wctype’
if constexpr (std::is_convertible_v<f_type, void()(A...)>)
^~~~~~
wctype
/usr/local/include/signals/signals.hpp:289:48: error: expected primary-expression before ‘void’
if constexpr (std::is_convertible_v<f_type, void(*)(A...)>)
^~~~ .
and so  on.....
Can you tell  me  what is the  reason of my  problem?
By the way , the  IDE  that I use is Clion

I meet the same problem, did you solve it ?

You can try to change the code in  CMakeList .
Like this:
set(CMAKE_CXX_FLAGS "-std=c++17")


Improve documentation around Dockerfiles

Fix the inline example in the cloud-run-http
Add a link to this sample Dockerfile in the main README

Thanks!


cannot access retrieval-corpus download link

I cannot access a processd retrieval-corpus download link that you provided.
(https://huggingface.co/datasets/ignore/FlashRAG_datasets/tree/main/retrieval-corpus)
When I try to access the link, I got a 404 error.
Can you check and provide a new link?
Thanks.

As mentioned in changelog:
https://huggingface.co/datasets/RUC-NLPIR/FlashRAG_datasets/tree/main/retrieval-corpus

I missed it.
The new link hasn't been applied in [docs/process-wiki.md](https://github.com/RUC-NLPIR/FlashRAG/blob/b075fe7a29b7c734723fda27d1e3e08325ea1af9/docs/process-wiki.md), so I think it needs to be updated.


Create sumto.go

This is an efficient way to add number from 1 to say 100.

Sorry, we don't use pull requests.
See https://github.com/golang/go/pull/9220.

And this API addition hasn't been discussed, and I'm sure
we won't add that.