[Vulnerability] Springfox springfox-swagger2 /api-docs group Parameter Improper Logging Issue

Springfox contains a flaw in the Swagger2ControllerWebFlux and Swagger2ControllerWebMvc classes in the springfox-swagger2 component. The issue is triggered as input to the 'group' parameter in the /api-docs endpoint is not properly sanitized before being logged. This may allow a remote attacker to use new line characters to inject log entries or HTML code that may be rendered when a user views log data in a browser session.
Vulnerable version====>

io.springfox
springfox-swagger2
3.0.0

Team please fixed vulnerability in this version and provide latest version.

For more information, this vulnerability is documented here: https://security.snyk.io/vuln/SNYK-JAVA-IOSPRINGFOX-1317096

Duplicate of: https://github.com/springfox/springfox/issues/3508
Previous resolution attempts: https://github.com/springfox/springfox/pull/3549 and https://github.com/springfox/springfox/pull/3568
The maintainers of the code align with Snyk's viewpoint of:
Amendment
This was deemed not a vulnerability.

and unfortunately this won't be resolved.


Improve speed of [a v] lookups

Right now, <avs does a bunch of selects against all_datoms.  It's super slow, since it's extremely inefficient to queryall_datoms for a textual match.  This ticket tracks doing something less significant than #69 to speed this up.  Namely:

only query from all_datoms for fulltext attributes;
consider using a temporary table and one big query rather than many small queries.

@ncalexan is this still relevant with your rewrite?

No, this should be "efficient" if not "optimized".


MongoDB integration

Hello Daniel,
this repo is masterpiece, great work! I am just starting with react-native. I would be really graceful for any advice how to integrate mongo database to your project.
Thank you for your response.

Steps to reproduce
Expected Behavior
Actual Behavior

No go. I am done with open source. And mongo db is super unsecure. Sorry.


Can ipex-llm-0.43.1 run on Centos7.9?

Can ipex-llm-0.43.1 run on Centos7.9? I encountered an error:Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.Error: Failed to load the llama dynamic library.

I saw that the official documentation of IPex-LLM supports Centos7, and I would like to know where the problem lies. Then I tried using Docker and encountered a timeout issue when pulling image. Is there any other way to pull image?

Can you pull other Docker images successfully? It seems like some Dockerhub mirrors are closed. please refer to [this] (https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6) and [this] (https://linux.do/t/topic/114516)

I'm glad to hear you successfully pulled the image. I noticed you mentioned that vllm is unable to "quality the model." Could you please clarify what you mean by "quality the model"? Additionally, could you provide the steps you took when encountering this issue? This information will help me understand the problem better and offer more accurate assistance.

The model I am using is chatglm4,and my device can only use quantified large language models such as INT4.

Could you provide the command to reproduce the issue?


catch go mod download overwriting changes to vendor

Issue #, if available:
Description of changes:
From pretty much the beginning of eks-d and then eks-a after it, we have run go mod download before building.  Some upstream projects, such as k/k, actually check in their vendor folder so in those cases we do not technically need to run go mod vendor (and in the case of k/k we actually do not, never have) but we do anyway to be consistent and avoid having to have made a case by case decision.  This was also important for reproducible builds, there is some oddities with go dependencies that have been download vs checked in and pulled. I have previous PRs which talk about this.  Always running go mod vendor ensured all projects would build regardless of if the vendor dir was checked in or not.
About a year ago, the harbor build in eks-a was updated with a patch that actually did patch something in the vendor directory.  At that time we added GO_MODS_VENDORED in https://github.com/aws/eks-anywhere-build-tooling/pull/2078 to allow projects to skip running go mod vendor.
Recently a patch was added to CCM for versions 1.28+ which 1) adds the vendor directory and 2) patches something in that directory.  As is, this patch is not actually taking affect because it gets overwritten when the go mod vendor call is ran.  The fix, which @markapruett is taking, is to port over the skipping mechanism from eks-a to eks-d and setting GO_MODS_VENDORED to true for the ccm build.
While discussing with Mark this nuance, I was thinking of ways we could catch this and avoid the silent "failure".  This is my attempt, if the vendor dir exists before running go mod vendor then use git to determine if anything changed in that folder due to go mod vendor, if so, then error.
With this change it will require that any time we patch a go.mod/sum file for a project with vendored deps, we need to make sure the patch includes the vendor folder updates, otherwise git will see a difference and trigger this error. The fix should be pretty easy/obvious in this case.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/retest

/retest aws-cloud-controller-manager-1-26-presubmit

/test aws-cloud-controller-manager-1-26-presubmit


Fix Arr, CookieJar and Date classes so that tests pass

Signed-off-by: Fotis Alexandrou<EMAIL_ADDRESS>

Hi @stevewest
Please review my PR
Thanks

No need to highlight me, I get notifications for everything

For now, the only option is to remove the implements DateTimeInterface, since the fine people at PHP have borked that one. The seperate DateTimeInterface class can go alltogether, it was used to emulate it in PHP 5.4, but since v2 is now 5.5+, that is no longer relevant.

And @sagikazarmark, I wasn't drunk. ;-)
At the time it was designed, it was no problem using the interface in PHP 5.5. I haven't been able to test it again in 5.5, but it looks like it's broken in 5.6...

Realised that, my apologies. :)


corrected english language in readme

Very nice idea and library! I noticed a few spelling and grammer issues in the readme and corrected them (including some layouting).

Thanks hixfield


Option to overwrite existing files

The default operation of Java's java.nio.file.Files.copy() method is to copy files and throw an IOException if the file already exists on disk.
There should be an option for users to overwrite these files if desired.

added in 9f7b17f


No module named future

I tried running the latest DDS using Python 2.7.10, the following error appeared:
  File "/project/apps/feeds/tasks/__init__.py", line 3, in <module>
    from dynamic_scraper.utils.task_utils import TaskUtils
  File "/usr/local/lib/python2.7/site-packages/dynamic_scraper/utils/task_utils.py", line 2, in <module>
    from future import standard_library
ImportError: No module named future

I then figured that i was missing the 'future' package so i installed it. I tried checking what the issue is and it's probably because of this: 83dcf295de6456e3fc505b01ae52d44dd6299079
I am not sure why 'install_requires' has been commented out. This is preventing the package from installing it's dependencies and hence, the error appeared.

Hi Rakan, I didn't want to include packages like Django, Scrapy or Celery in the requirements section since I didn't want people to have their Django version updated automatically when updating the software. I see that commenting out all requirements was a bit over the top. I will re-include the unproblematic requirements like pillow or future in the next release.


Migrate away from Bettercloud Vault Client

The Bettercloud client is no longer supported - see this comment. As such, we should migrate away from it to another client implementation that can be shared with the Vault Connector.

Hi @adammead / @adesjardin
I was analyzing this issue, correct me please if I missunderstood the AS-IS.
AS-IS

TO-BE (proposal)

new avio-hhtp-vault-connector will provide a mechanism to use a vanilla/wrapper (could be Grizzly) http client or mule-http-connector (imported as a dependency I think we can use this specific part of the connector) to retrieve secrets from Vault.

Please let me know what do you think about this approach.

Hi @neckron,
I don't think we want to use the mule-http-connector dependency of the client. We want to use the Mule HTTP client (org.mule.runtime.http.api.client.HttpClient) since that is required for MuleSoft certification. Other than that, the approach looks good.
I think the new library should be called vault-http-client since it's not a MuleSoft connector, but rather a Vault client library.

@adammead I'm sorry for inconvenient.
I've forked the vault-java-driver as io.github.jopenlibs:vault-java-driver the project of simple open source github organization.
I'm going to support it by review & deploy sometimes. Any developer can join to the simple organization.
It seems to me that the advantage of the organization is that when changing the developer, it will not be necessary to change the group of artifacts.


oci_cloud_guard_target returns no result

Describe the bug
oci_cloud_guard_target returns no data for select * oci_cloud_guard_target query
it's wired that the CLI also returns no data
turbot-macpro-raj:steampipe-plugin-aws raj$ oci cloud-guard target list --compartment-id ocid1.compartment.oc1..aaaaaaaapysrwqktbfsfsdfdsfdsfdsfds
  "data": {
    "items": []
  }
}

Steampipe version (steampipe -v)
Example: v0.9.0
Plugin version (steampipe plugin list)
Example: v0.3.1
To reproduce
Steps to reproduce the behavior (please include relevant code and/or commands).
Create the managed list in Cloud Guard and execute  select * oci_cloud_guard_target
Area to look for,
It could have been affected to few tables, need further deep investigation

Whether previous versions working? Yes, as the new table results show in the respective PR
Might have broken from the new SDK version, hence we might have to start checking since

Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

https://github.com/turbot/steampipe-plugin-oci/issues/278


Licenses for default embedded fonts not included in epaint crate license

The epaint crate uses license MIT OR Apache-2.0 but when one uses it with the default features or the default_fonts features a set of default fonts are embedded in the binary that have additional licenses.
This makes it so tools like cargo-deny (license compliance) and cargo-about (license attribution) can't see and validate/include the required licenses.
These are the licenses used for the default fonts:

:heavy_check_mark: fonts/emoji-icon-font.ttf - license: MIT
:heavy_check_mark: fonts/Hack-Regular.ttf - license: MIT
:x: fonts/NotoEmoji-Regular.ttf - license: OFL-1.1
:x: fonts/Ubuntu-Light.ttf - license: "UBUNTU FONT LICENSE 1.0"

haven't found an SPDX identifier for this in the spec
so maybe we have make up our own (SPDX supports it)? like LicenseRef-UFL-1.0.
what do you think @Jake-Shadle ?

So to be fully correct in the license definition of the epaint crate I believe we would have to specify to license as:
(MIT OR Apache-2.0) AND OFL-1.1 AND LicenseRef-UFL-1.0.
A recent and good previous example for another crate was https://github.com/dtolnay/unicode-ident/pull/9.
A drawback of that however would be that if you use the crate with default-features = false and not with features = ["default_fonts"] tools wouldn't know that these licenses are then not required.
So believe the most clean solution for everyone would be to split out the default fonts into a separate crate (like epaint-default-fonts) that has this full license, a crate that just does include_bytes! on the fonts and exposes global variable with them. And then in epaint we can keep  MIT OR Apache-2.0 license and include the epaint-default-fonts optionally in that.
Tools like cargo-deny and cargo-about would fully understand this and then only require that the OFL-1.1 and LicenseRef-UFL-1.0 are on the allow list if the optional default fonts are included.
What do you think about such an approach @emilk ?

Thanks for taking a look at this and opening an issue!
I agree that the clean solution is desirable, but also more complicated, so maybe I'll start with the simple solution.

sounds good!

Link to the ubuntu font license 404s

Also just hit this - I think a separate crate for the fonts would be the right way to go

You wanna make a PR for that? epaint_default_fonts makes sense imho. Maybe we should version and publish it separately from the other crates, though that's slightly more annoying. But releasing a new version of it every time we release a new egui seems wasteful, when the default fonts rarely change.


support for pod annotations

Update chart to support for assigning pod annotations

@munnerz when you get a moment, can you take a look at this one?  The benefit of this is to add annotations for things like velero for backups of the PV data.

Thanks!


Build Failing, Bitdefender Detects Gen:Variant.Razy.609843

Bitdefender is removing b3sum and preventing a successful build using cargo install b3sum.
Error:
The file \cargo-installJYtDLo\release\build\anyhow-abe5dfc7615735a9\build_script_build-abe5dfc7615735a9.exe is infected with Gen:Variant.Razy.609843 and was moved to quarantine. It is recommended that you run a System Scan to make sure your system is clean.

It's not clear to me what we can do about this. Any suggestions?

Given the full path, the quarantined file was the compiled build.rs from the anyhow crate (https://github.com/dtolnay/anyhow/blob/master/build.rs), which is one of b3sum's dependencies (that is, b3sum didn't even compile, since the dependencies have to compile first).
Since the crate affected is not b3sum or blake3, this issue should be closed. And it doesn't even make sense to open it as an issue on the anyhow crate, since there's nothing they can do. It's a false positive, and should be reported to Bitdefender, which is the one actually responsible for the build failing. According to Wikipedia (https://en.wikipedia.org/wiki/Bitdefender#Trojan.FakeAlert.5), it is not the first time something like this happens.


Add maven wrapper and utf-8 standard encoding

Motivation
To ensure platform independence for Maven builds and to align with best practices for encoding standards.
Relates to: #205
What
Added Maven wrapper and set UTF-8 as default encoding.
Why
To make the build process more consistent across different platforms and to avoid encoding-related issues.
How

Added Maven wrapper files (mvnw, mvnw.cmd, .mvn/wrapper/)
Configured Maven to use UTF-8 encoding by default (<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> in pom.xml)

Verification Steps

Clone the repository.
Navigate to the project directory.
Verify that the Maven wrapper files (mvnw, mvnw.cmd) are present.
Open pom.xml and confirm <project.build.sourceEncoding> is set to UTF-8.
Run a build using the Maven wrapper (./mvnw clean install) and ensure the build completes successfully on different platforms (Windows, macOS, Linux) and no warning appeared for source encodig.

Checklist:

[x] Code has been tested locally by PR requester
[ ] Changes have been successfully verified by another team member

Progress

[x] Finished task

Additional Notes
No additional notes.

@jannickherrmann thanks, I can confirm that the wrapper works (after marking the script as executable)

@pb82 thanks for the comment, i made the wrapper for unix/mac systems executable by default and pushed it. works on windows maschines


CG: Hide left nav antora config

We must explain how to configure antora component documentation site to remove the left side navigation.

@alandefreitas can you point me in the right direction of what the instructions should look like?

can you point me in the right direction of what the instructions should look like?

I can. But I'm not sure the following is possible:

We must explain how to configure antora component documentation site to remove the left side navigation.

This is how the option is configured:
https://github.com/boostorg/website-v2-docs/blob/9b1b952d747676b1b7f6b876ed786117c0bae56d/site.playbook.yml#L40
https://github.com/boostorg/website-v2-docs/blob/9b1b952d747676b1b7f6b876ed786117c0bae56d/libs.playbook.yml#L51-L54
The sitedocs and libs playbooks use different configurations.
It uses the same format as the built-in pagination attribute:
https://docs.antora.org/antora-ui-default/template-customization/#page-pagination-attribute
asciidoc:
  attributes:
    page-pagination: ''

That is, leaving it undefined disables it and setting it to any string (including the empty string) enables it.
However, this UI option is enabled in the playbook. All components in the playbook will use the same UI with the same options. Thus, enabling or disabling it for a specific component is impossible the way this is set up.
I can look into options to enable or disable it for a specific component, but such a solution would be many orders of magnitude more complex. We would need to create an extension that intervenes with an event listener at some point in the Antora cycle to potentially render the UI with different options for each component.
I don't know if that's possible, but it's much more advanced than any example extension in the Antora documentation. The best way is to ask directly if that's possible on https://antora.zulipchat.com/.

@PeterTurcan: when fixing this, the content can just include what I wrote in the previous comment, except for the part about it being impossible to make the change happen for the component, and probably being a little more formal in the language.


Network/connectivity death after idle period

This has me a little stumped
Have 2.0.8 working fine, I'm running it via script in smanager, but after a period of idle, i.e. waking device up after an hour or so, the devices wifi and/or cell icons have crossed on them, only a reboot will bring my connection back
Never experienced a single issue with connectivity without dnscrypt...
Any ideas?

I have no idea what you are talking about and "Ng smanager" on Google doesn't return anything relevant to computers.
What is it? Is it something on Windows? Android? iPhone maybe?

Apologies, autocorrect murdered that sentence...fixed

Apologies, autocorrect murdered that sentence...fixed


added API calls for whitelabel and image control

Manipulating the whitelabel doc and images contained therein required some additional functions.

Hey, looking good, though we will need on additional thing to accept this. Can you please add functional tests to the  lib/hz2600/Kazoo/Tests/Functional/ directory? We require these tests be present and passing to accept pull reqeusts for this project. Thank you!

Have not seen any updates on this. We need to make two changes to merge this with the project.

function names should follow the convention of lowerCamelCase.
functional tests should be added in https://github.com/2600hz/kazoo-php-sdk/blob/master/docs/UnitTests/index.md

Hey! Thanks for reminding me. I got busy with other stuff and forgot to come back to this. But I certainly want to get it merged so i'll work on changing the names and adding functional tests.

No worries, thanks for helping build this out. Ping us if you need any help with getting the tests working.

One problem i ran into when running these tests on my dev environment was the rate limiting in crossbar getting triggered due to so many requests being generated. I turned that off in the couch doc and it went away.
I required a sample json object, and i've put that in as a private variable in AccountTest... there is probably a better place for that to go.
And I have not written a test for the image function yet... i'll have to look into how the base64 image needs to get passed in.

I think there might an issue with the way i implemented the image function. I'm having trouble testing it.

Any thing I can help with? What do you mean by "having trouble testing it"?

Closing due to lack of updates from submitter. Please re-open when you get a chance to work on this. Thank you!


python3 compatibility

Python3 utf8 encoded messages are bytes objects, so this script outputs key=b'value' instead of key='value'
A quick fix is  to replace the line 65
print (" {0}={1}".format(final_key, repr(str(final_value, "utf-8"))), end='')
but I guess this will not be compatible with python2

I noticed that too; PR #6 includes a similar change, where I simply got rid of the encode-to-utf-8 step.
I don't see why that was ever needed.  In python2, both str and unicode (similar to python3 "bytes" and "str" respectively) display the same:
# python
Python 2.7.5 (default, Aug  4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> foo = "aaa"
>>> bar = u"bbb"
>>> print "{0}={1}".format(foo, bar)
aaa=bbb
>>>


Sample job that allows you to download the generated files as Artif…

Sample job that allows you to download the generated files as Artifacts from the Github Actions page

Hi @taivo123
Thanks for the PR!
I understand what it does, however, I don't know what is the purpose of this. What is this for and what is your use case?
Best

An example for people who can not or want not to run cli in their pc or just want CICD get-started guide :) you can delete the PR no problem, just thought to share because our team needed this.

From: Xabier Larrakoetxea Gallego @.>
Sent: Thursday, September 23, 2021 8:32:51 AM
To: slok/sloth @.>
Cc: Taivo Tihhanov @.>; Mention @.>
Subject: Re: [slok/sloth] # Sample job that allows you to download the generated files as Artif… (#160)
Hi @taivo123https://github.com/taivo123
Thanks for the PR!
I understand what it does, however, I don't know what is the purpose of this. What is this for and what is your use case?
Best
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/slok/sloth/pull/160#issuecomment-925517690, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AUKFMRHSOE54JBM732KIDA3UDK3YHANCNFSM5EQXTFXQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Understood! I never thought about this use case, I like the idea!

Hi @taivo123! Sorry for the delay, I'll add this also to the documentation :)

Codecov Report

Merging #160 (1a197bf) into main (3f0d37f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #160   +/-   ##
=======================================
  Coverage   78.10%   78.10%
=======================================
  Files          16       16
  Lines        1311     1311
=======================================
  Hits         1024     1024
  Misses        233      233
  Partials       54       54

Continue to review full report at Codecov.

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


Using routes.unmatched: heuristic interferes with Prometheus/Grafana regex interpretation

If the following is enabled in the configuration:
routes:
  unmatched: heuristic

Beyla will automatically identify certain parts of the route (like numeric ids) and replace them with an asterisk in order to prevent high-cardinality metrics and to be able to analyze common routes even if the path contains a unique id. However, the specific use of an asterisk (*) can introduce some problems when using regex in the label selectors.
For example, if you want to match a certain list of paths, the asterisk is interpreted as regex which causes no matches.
http_server_request_duration_seconds_sum{http_route=~"/my-service/tenants/*/services/*/activate|/my-service/tenants/*/services/*/activate"}

Here I would expect metrics from these two specific HTTP routes, but there are no results, because:

I need to use =~ to enable the usage of pipes.
Using =~ enables regex as well, which interprets the asterisks rather than using them as a literal value.

This can be worked around, but is unhandy at times.
I would suggest making the replacement character (currently the asterisk) configurable. The asterisk can stay the default, but maybe it could be made configurable so the user can choose something else instead of an asterisk (either a single character or a string of characters).

I was now able to escape them with \ e.g. /my-service/tenants/\\*/services/\\*/activate. However, escaping in itself is still required because of the asterisk. If it were any character not part of the regex token set, then that would not be necessary.

I see, definitively it's unpractical. I wouldn't mind make this configurable, but I think it's a bit overkill to add just a config option for that. Maybe we can come up with a better character/word than *.

This is a good point, our use of asterisk came from looking at what the OpenTelemetry Java SDK did for unknown routes, but perhaps we can replace it in 2.0 which is a major new release. Adding '{}' might be an option too, but to make the code perform it was easier to use a single character. The loop in the heuristic processor is ugly because it's highly specialized, we were concerned with performance.

Dummy question, wouldn't escaping the asterisks work?
http_server_request_duration_seconds_sum{http_route=~"/my-service/tenants/\*/services/\*/activate|/my-service/tenants/\*/services/\*/activate"}

or maybe
http_server_request_duration_seconds_sum{http_route=~"/my-service/tenants/\\*/services/\\*/activate|/my-service/tenants/\\*/services/\\*/activate"}

@mariomac it does, your option 2 works like I mentioned in my earlier comment. So it can indeed be worked around, but it would be better to use a character that is not interpreted by regex at all.


Could Event use Set Modifier instead of [Modifier]?

I was wondering if the Event type could use Set Modifier instead of [Modifier]?
I don't think the modifiers have an ordering, and pattern matching on a specific ordering of modifiers is error-prone.

Thanks for opening this. You're right that modifiers don't have an ordering. In my view, [Modifier] is not the right abstraction for what is going on anyway, and Set would be more appropriate. But I think the raw pragmatism of [Modifier] wins over Set just for pattern-matching the two simplest and most common cases: zero and one modifiers. If you need to go beyond that to check for multiple patterns, guards can be used instead. (I don't know of any language extensions that add support for pattern-matching sets, although if one existed then that could be nice!)

In my view, [Modifier] is not the right abstraction for what is going on anyway, and Set would be more appropriate. But I think the raw pragmatism of [Modifier] wins over Set just for pattern-matching

That's a good point, and I agree 100% 👍

I don't know of any language extensions that add support for pattern-matching sets

Technically Set is an instance of the IsList type class, which powers the OverloadedLists language extension. That allows pattern matching on sets using list syntax. Unfortunately, it's implemented in terms of converting to and from a linked list, so you still have the problem of ordering:
GHCi, version 9.0.2: https://www.haskell.org/ghc/  :? for help
ghci> :set -XOverloadedLists
ghci> import qualified Data.Set as Set
ghci> let mySet = Set.fromList [1, 2, 3]
ghci> case mySet of [3, 2, 1] -> "It works"; _ -> "It doesn't work"
"It doesn't work"

Yeah, pattern-matching on sets really would have to be aware of them as sets, not "list-like" things, in order to disregard ordering for comparisons.
A silver lining here might be that modifier support in terminals is generally abysmal and we are often lucky to get even one modifier to work correctly, let alone two, which perhaps makes lack of easy pattern-matching slightly less problematic. 😊


Pointer to pointer gets extra whitespace

unittest
{
    char** buf = cast(char**)mem.xmalloc(dim * (char *).sizeof);
}

unittest
{
    char* * buf = cast (char* * ) mem.xmalloc(dim * (char* ).sizeof);
}

There shouldn't be a trailing space in the (cast* ).sizeof either, probably the same issue.


Wrong design of getGlobalState

Describe the bug
in Interact with smart contracts it's said :

Read state¶
Anyone may read the global state of any application or the local state of an application within a given user account using the REST API account_info endpoint.

Yet these lines can only get global state of an app created by this account, not everyone because of getApp queries from createdApp
https://github.com/scale-it/algo-builder/blob/a3cb569e65d3721f34f1199ba378a7a934b1d183/packages/runtime/src/account.ts#L150-L152
https://github.com/scale-it/algo-builder/blob/a3cb569e65d3721f34f1199ba378a7a934b1d183/packages/runtime/src/account.ts#L181-L182
Expected Behavior
(NON_CREATOR as AccountStoreI).getGlobalState(appID, KEY) returns same value as (APP_CREATOR as AccountStoreI).getGlobalState(appID, KEY)
Current Behavior
(NON_CREATOR as AccountStoreI).getGlobalState(appID, KEY) always returns undefined
Possible Solution
I tired to PR this but I don't know how. The apps are stored under Runtime.store
Steps to Reproduce

start a NON_CREATOR = new AccountStore(BigInt(1e10)); and a APP_CREATOR.
create some stateful smart contract with global state  (KEY)
testshould_defined = runtime.getAccount(NON_CREATOR.address).getGlobalState(appID, KEY);
the should_defined is undefined

Environment

OS: macOS 12.1
Node.js version: v17.1.0
algob version: 3.2.0

@PabloLION , you are using wrong object.

AccountStore will query state registered in the account (both global for apps registered in that account and local for apps where the account opted-in)
Runtime.getGlobalState will give you what you want. See the API and code: https://github.com/scale-it/algo-builder/blob/develop/packages/master/src/runtime.ts#L296

The point was that an account cannot get global state of an app not created by this account. It seems a misinterpret for me?


ios-usb-dependencies build failing

Is there an existing issue for this?

[X] I have searched the existing infra issues

Type of Request
bug
Infrastructure Environment
LUCI
What is happening?
ios-usb-dependencies build has been failing for months: https://ci.chromium.org/ui/p/flutter/builders/prod/ios-usb-dependencies
Looking at the error, it seems that we're expecting libplist-2.0.3.dylib
https://flutter.googlesource.com/recipes/+/refs/heads/main/recipes/ios_usb_dependencies/ios-usb-dependencies.resources/libplist.sh#28
However, it's creating libplist-2.0.4.dylib
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8769020256275116193/+/u/install_libplist/stdout
Steps to reproduce
N/A
Expected results
ios-usb-dependencies build not to fail.
Also, we should probably have some sort of monitoring for this. This seems to have been going on undetected for months. It hasn't been an issue since we haven't needed to upgrade any of the tools, but if we had, we'd have been surprised to find that we wouldn't have been able to without fixing what's going wrong.

@christopherfujino @keyonghan any concerns about moving this workflow from recipes to cipd packages self service?

@christopherfujino @keyonghan any concerns about moving this workflow from recipes to cipd packages self service?

Those artifacts are being uploaded to GCS, will that be an issue?

any concerns about moving this workflow from recipes to cipd packages self service?

How would Flutter developers get a cipd package? Are we vendoring cipd tooling in the flutter tool?

Also, don't we want provenance for anything that we're pulling down for Flutter development?

@christopherfujino @keyonghan any concerns about moving this workflow from recipes to cipd packages self service?

Those artifacts are being uploaded to GCS, will that be an issue?

CIPD seems like the wrong tool to distribute these to end users.
Given how infrequently we update these tools, I think it would be reasonable to punt on fixing this until we actually needed a new version.
If we really think it's worth keeping this up to date (and I'm skeptical), I think we would need to have a plan for how to staff keeping our build infra up to date with upstream. Because of how the libimobiledevice project is organized (many sub-repos that need to be built in a certain order, and dependent projects expect their dependencies to be present in system directories) building them is fundamentally brittle.

Link to recent failed builds: https://ci.chromium.org/ui/p/flutter/builders/prod/ios-usb-dependencies


[Bug][move-prover] move prover crashes on non-existent search path

🐛 Bug
cd to /libra/language/stdlib/modules (or lots of other directories)
cargo run -- -s ../stdlib/modules ../stdlib/modules/libra.move
thread 'main' panicked at 'called Result::unwrap() on an Err value: Error { depth: 0, inner: Io { path: Some("transaction_scripts"), err: Os { code: 2, kind: NotFound, message: "No such file or directory" } } }', /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/ops/function.rs:154:5
To reproduce
Code snippet to reproduce
# Your code goes here
# Please make sure it does not require any external dependencies

Stack trace/error message
// Paste the output here

Expected Behavior
A graceful error giving the bogus path and a hint that it's the search path.
System information
Please complete the following information:

Additional context
Add any other context about the problem here.

FWIW, as far as I can tell, this issue no longer occurs 🙌
I dug around to see what exact commit fixed it but I'm not certain. For one thing, the move-prover -s search path option was removed on May 19 in 97568aee2e0d. The error handling was also improved in various commits but I didn't bisect to determine which one specifically fixed the panic. Right now, move-prover /does/not/exist.move prints Error: No such file or directory '/does/not/exist.move' and exits with an error, so I think this issue can be closed!


 component

Beginning of September, I volunteered to work on a <Menu /> component. Unfortunately, travelling and recovering from it moved that contribution to the back of my mind.
I noticed that the issue is still open so I assumed it's still relevant, so nevertheless I had some fun 🍿
A bit late, but better late than never! 🦄 💁🏻♂
What kind of change does this PR introduce?
Adds a new <Menu /> component to Reakit with the following API:
<Menu>
  <Menu.Item>Item 1</Menu.Item>
  <Menu.Item>Item 2</Menu.Item>
  <Menu.Divider />
  <Menu.Item>Item 3</Menu.Item>
</Menu>

The layout can be controlled via horizontal and horizontalAt props as per this suggestion.
Does this PR introduce a breaking change?
I bet this fits into a minor version bump 🏷
Notes for the reviewer
1
I'm not familiar with Typescript, I did my best, having extra   👀  on the type declarations would be 👌🏻
2
I abstracted this behavior from <Group /> into a common utility to not repeat the same in <Menu /> and stay consistent.
3
To make <MenuDivider /> implicitly aware of whether the menu is configured as horizontal or not ( as it needs to render in one way or another accordingly ) I used React's Context.
4
Should <Menu /> accept any type of children or only <MenuItem /> or <MenuDivider /> ?

Those were my 2 cents. Behavior is ok to me! Can you address the type errors from ci? If you have any problem just let me know.

Codecov Report

Merging #290 into master will increase coverage by 0.15%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #290      +/-   ##
==========================================
+ Coverage   67.18%   67.33%   +0.15%
==========================================
  Files          85       88       +3
  Lines         649      652       +3
  Branches      149      149
==========================================
+ Hits          436      439       +3
  Misses        213      213

Impacted Files
Coverage Δ

packages/reakit/src/Menu/Menu.tsx
100% <100%> (ø)

packages/reakit/src/Menu/MenuItem.ts
100% <100%> (ø)

packages/reakit/src/Menu/MenuDivider.tsx
100% <100%> (ø)

Continue to review full report at Codecov.

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

Thanks a lot for the feedback @diegohaz @PlayMa256, I addressed your suggestions and everything looks much lean 💖 🎊 ,  👀  my last commit ( force pushed my own branch for a clearer history ).
I improved the README for the new component and fixed the linting errors 🤞🏻
Are we ok with the default styles set on the new components? ( I see most of the other components have no styles and leave the theme to actually define that )

@diegohaz any feedback on the updates ☝🏼 ? no rush from my side, I'm happy to wait or make more amendments 👍🏻

@diegohaz addressed your suggestions, good catch adding role to each component 🙌🏻
Happy to refine more if needed 👍🏻

@diegohaz I think this one looks ready, now that I know better how the project is structured hopefully next PR ends up more lean 💅🏻
In case we want to refine it more I may close this one and open a new one linking to it, as it's becoming a bit hard to manage feedback wise 👍🏻

This looks good to me @lluia. Thank you very much for the awesome work. I'm gonna wait a little bit to merge this because we need to release a few things first.

Should we also consider keyboard interaction on the menu in order for it to be accessible? Unfortunately, by default, I don't think browsers come with this keyboard interaction out of the box. 😞

@jxom good tip, I'll try to add this during the weekend as seems a good idea 👌

Closing this one as I believe is not relevant anymore ( see my comment #345 )


Improve Copy/Paste

The Problem
Copy/paste for many PDFs is broken.  Even in the TraceMonkey example, try copying and pasting the area highlighted in the image below, and you will get the following text:
 informationis available

Notice that when you paste, there is no space between information and is.  That is, there is no space between new lines.
But there are examples that are much worse than the above. In the PDF at the link here, the PDF structure itself has no spaces. That is, whatever software created this PDF, only created PDF objects for the text itself, and did not consider spacing.  Thus, when one copy/pastes anything from this document using pdf.js, they get no spaces in their pasted text.
It's not just copy/paste that's a problem, but CTRL+F find also does not work.  If you CTRL+F for information is in the TraceMonkey example, you will not get any results.
Other Viewers
Other PDF software gets this right, they figure out that there is a space between words or lines and automatically insert the proper space when the user copies text. Adobe Reader, for example, will not only detect a space and insert it, but it will also detect when a line ends with a hyphen and automatically remove it when doing copy/paste. For example, if you copied the word comp-ile in the image above, Reader would actually copy compile.  That is probably overkill, but it is interesting that others gave this signifigant amount of thought.
Other software that also gets this right includes pdf miner, a project that goes to great lengths to properly extract text from PDFs. The Chrome viewer (Foxit) also gets this right (it also does hyphens right too).
The Solution
This commit aims to resolve these issues by automatically detecting when we need spaces, and inserting them into the text chunks where appropriate.  The insertion occurs within the worker, so not only will copy/paste work, but getTextContent() will now also return text with proper spacing. Accordingly, any headless text extraction will also benefit from this PR.
Unfortunately, for PDFs that do not have the wordSpacing text state set, this feature must resort to using a bit of a heuristic, but I do not see anyway around that.
I also added a test which hooks into the getTextContent function.

Nice work! Early run through looks great, will testing more thoroughly and will report anything odd. I had started something similar a while back to try and improve copy/paste, glad to see I was on the right path :+1:

@timvandermeij Hi Tim - can you make a build of this when you get a chance?

Sure, no problem!
/botio-linux preview

Hm, I see no change at all for the Tracemonkey paper. I tried copying the part in your image, but it still copies without a space at the newline for me.

@timvandermeij I see that too with the built viewer, but it works in my local checkout. In my local checkout, I have PR #5545, which has a change relating to the text layer's line-height. I bet that's what's fixing this case. I'll look into the best fix here (either incorporating the small bit from #5545 or changing this code slightly). I'll also add a test for the tracemonkey PDF specifically.

@timvandermeij Hi Tim... I just tried it with the viewer you built, and it works fine.

@timvandermeij I just updated the commit, adding a test specifically for the tracemonkey paper. It's passing for me.

/botio-linux preview

Still no luck for me. If I copy the text "information is available" from the first paragraph, I get:

information
is available

with the current master and

information
is available

with the build above, i.e. both are the same. Also if I copy both texts and paste them in for example the Firefox URL bar, both appear as "informationis available", i.e. without a space before "is". You cannot reproduce that?

@timvandermeij Very strange. First off, where are you testing master? I assumed that the demo page was master, but is that incorrect?
I don't get a line break in either of them.
Here is my result copied from http://<IP_ADDRESS>:8877/7b23cd1eedc95f6/web/viewer.html
information is available

And here is the result copied from http://mozilla.github.io/pdf.js/web/viewer.html
informationis available

I'm using Chrome on Windows. Could it be a browser thing?

Also, if you have time, could you take a look at the DOM in both and see what you get?
This is the DOM from http://<IP_ADDRESS>:8877/7b23cd1eedc95f6/web/viewer.html:

And here is the DOM from http://mozilla.github.io/pdf.js/web/viewer.html:

Notice there is an extra space in the first.

I do get the space in the DOM, but for some reason it doesn't copy it for both links you posted. I'm really confused about that: is it a browser bug perhaps? I'm using Firefox 36.0.1 on Windows 7 x64.

It does appear to be something with the browser. Take http://www.sersc.org/journals/IJSIP/vol4_no3/5.pdf for example. At the bottom of the first page it says "established by ISO". If you select the text carefully, you can also select a space character behind ISO. Copy/pasting that does give "ISO " with a space, but if you also take the next line the space disappears when you copy/paste. Really weird...

Maybe it isn't a browser bug. Maybe Firefox is actually smarter than the others.  As you pointed out, in the TraceMonkey paper, Firefox is inserting a line-break between lines. There are no line-break characters within the DOM itself, so Firefox must be doing something to detect it and insert it.  Other browsers do not insert line-breaks.
I would bet that as part of that logic, when it detects a line break in selected text, it strips the end of the line of any whitespace.

Good point! That would mean that this patch would not have much effect in Firefox, but it will help for other browsers.

Try copying and pasting text in the following jsfiddle: https://jsfiddle.net/4wwd654y/
In Chrome, if you try copying and pasting, the entire thing, you get:
Line OneLine Two

I put money on the fact that in Firefox you would get:
Line One
Line Two

Regarding your second point: this patch would not have an effect on the Firefox Tracemonkey paper. However, it would still fix messed up PDFs like this one in firefox.

You're right, that is what is happening in Firefox. However, for the PDF you linked in the comment just above this one, I also see no difference in Firefox. Both https://mozilla.github.io/pdf.js/web/viewer.html and http://<IP_ADDRESS>:8877/7b23cd1eedc95f6/web/viewer.html copy any text without spaces for me. The DOM shows the spaces in each div, but since they are separate divs, Firefox strips those spaces too. I think we'll have to look into this later, but nevertheless this seems like a great patch for other browsers and for when we figure out what exactly is different in Firefox.

Fixed the nits.
Also, I did some testing of this PR in Firefox and other browsers.
TLDR: This PR fixes a number of issues in Chrome and IE and fixes a CTRL+F issue in Firefox. Also, I spotted a real browser bug in Firefox.

PDF.js uses absolutely positioned divs in its text layer. Selecting, copying, and pasting absolutely positioned divs is not an easy problem and browsers work differently. Firefox tries to be smart about copy/paste. In most browsers, if you select, copy, and paste more than one absolutely positioned div, no space will be put between them. In Firefox, if two absolutely positioned divs are selected, and they are separated by more than some set distance, then firefox inserts a new line in between the two divs.
You can see this by viewing this new jsfiddle. Ideally, a browser would copy/paste something like the following:
Line One
Line Two

Line Three A Line Three B

Unfortunately, no browser does that. Chrome and IE will put everything on the same line, without any space between:
Line OneLine TwoLine Three ALine Three B

Firefox works a bit differently. When you do a copy paste, it adds new lines between each div:
Line One
Line Two
Line Three A
Line Three B

This PR fixes the issue in Chrome and IE by automatically putting a space at the end of a div when the following div is more than a set distance away.  This jsfiddle simulates that. Thus, in Chrome and IE, the copy paste will now work nicely.
Unfortunately, this PR has no effect on Firefox. It will continue to put new lines between divs even though there should not be a new line, i.e., it will always put Line Three A and Line Three B on the same line. This appears to be a browser bug.
But wait, there's more.  Copy/paste is not the only issues addressed in this PR. It also fixes another aspect of the text layer: PDF.js's find feature. For example, if you load the TraceMonkey example (in any browser) and do a CTRL+F for information is, the first hit should be in the first paragraph.  However, instead, you get nothing.  If you search for informationis, then the first hit appears.
This PR also fixes this CTRL+F issues because we are inserting a space into the text layer. This is not a Firefox only fix, this fix is cross-browser.
Admittedly, the fix in the Tracemonkey example is subtle.  However, if you view the messed up PDF which has no spaces, the improvement is much more stark. Try loading that PDF and searching for any of the words in the first line of the abstract, such as disclosed is an.  Across all browsers, you will get no results in master, but you will get the correct result with this PR.

@speedplane Thank you for the analysis! I can confirm that Ctrl+F at line breaks now works properly with your patch applied. In fact, it seems to fix a lot of PDFs with a two-column layout for me. Really nice work!

Implemented all of your suggestions. Regarding the PDF, it is a U.S. patent, which is a government work, and accordingly there can be no copyright claim.
Also note, that this should also fix #5697.

Given that the textLayer is currently one of the main performance pain points for a lot of PDF documents, what kind of performance impact does this PR have?
(To help with benchmarking, please see https://github.com/mozilla/pdf.js/wiki/Benchmarking-your-changes)

@Snuffleupagus I tried running the benchmark script, with no success, any idea why?
C:\...\pdf.js_speedplane\test>node test.js --browserManifestFile=resources/browser_manifests/browser_manifest.json --statsFile=stats/results/baseline.json --statsDelay=5000 --manifestFile=my_pdfs.json --port=7489
Server running at http://<IP_ADDRESS>:7489/

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:1001:11)
    at Process.ChildProcess._handle.onexit (child_process.js:792:34)

@speedplane Probably it is trying to spawn a process/application that it cannot find. Run npm update to get all dependencies. Probably it is https://github.com/mozilla/pdf.js/blob/master/test/webbrowser.js#L25 that is failing.

@speedplane, great work! IMHO, you resolve very important problem!

I found some bugs:

Small difference in highlighting. There is small shift to the left.
For example, search for 'up' in the TraceMonkey example document
Original:

Your:

In this document (http://www.selab.isti.cnr.it/ws-mate/example.pdf) try to search "an example paper".
There will no matches, because there is no space between 'example' and 'paper'.

--

@speedplane This also needs a rebase onto the current master.

What is the status of this? Any news?

@danez been very busy with other projects. I want to clean up this PR (and
others that I submitted), but won't realistically get to them until late
August.
On Tue, Jun 30, 2015 at 11:18 AM, Daniel Tschinder<EMAIL_ADDRESS>
wrote:

What is the status of this? Any news?
—
Reply to this email directly or view it on GitHub
https://github.com/mozilla/pdf.js/pull/5783#issuecomment-117224625.

In the case of this pdf there are chunks between each word that only contain the space itself.
The text-layer/viewer is not rendering the text-divs as the width of a space is calculated as 0. I first tried to change something there and render these divs with a single space, but then all the scale-calculation cannot be done as of width being zero.
So I ended up adding spaces to the surrounding words if there are space-chunks in-between to fix that. What do you think about that?
-        // If the last chunk ends with a space it does not need one.
+
         var lastChunk = bidiTexts[bidiTexts.length - 1];
+
+        // If the last chunk equals a single space concat the space to chunk before the last chunk
+        if (lastChunk.str === ' ' && bidiTexts.length - 2 >= 0) {
+            var beforeLastChunk = bidiTexts[bidiTexts.length - 2];
+            if (beforeLastChunk.str.length === 0) {
+                return;
+            }
+            var lastChar = beforeLastChunk.str[beforeLastChunk.str.length - 1];
+            if (lastChar !== ' ') {
+                beforeLastChunk.str += ' ';
+            }
+            return;
+        }
+
         if (lastChunk.str.length === 0) {
           return;
         }
-        var lastChar = lastChunk.str[lastChunk.str.length - 1];
+
+        // If the last chunk ends with a space it does not need one.
+        lastChar = lastChunk.str[lastChunk.str.length - 1];
         if (lastChar === ' ' || lastChar === '-') {
           return;
         }

I also noticed that the selection is now off in the web-viewer, because the space is added to the div, but the scale is wrong.
You see the selection ends inside the character. (can also be seen in the image from jazzy-em above)

This of course gets worse with my patch from above.

hello,
what is the status of the pull request. As I see it even if it doesn't solve the problem as desired it is already a big step forward! Can we not merge it into master?

It needs to be rebased onto the current master and reviewed before we can land this.

@speedplane any idea when you will get to this?

Closing since this was never completely finished and it's not in a mergeable state. However, the associated issue will remain open with a reference to this pull request so the work can be continued later on.


Fix bug not required parent

Description
Changes proposed in this pull request:

added required flag to FormGroup
added required flag to ResourceRenderer
implemented custom function for form validation instead of built-in checkValidity-function, which produced wrong results

Related issue(s)

/retest

/retest

/woof


Added an option to run the SCC's updates manually instead of in Update

Setting the manualUpdateOnly property disables calling SingleUpdate in Update(). As well, there is now a delegate that is called after the single update method. This is useful if you need to verify the position of the SCC after all it's logic is done in a different script.

Nice, more flexibility to the SSC
Why not make a preUpdate and postUpdate too?

Yeah, I thought about adding in a variety of other events, but I didn't have a use case for them at the time (which is usually when I add new features, since I have a context for how they'd be used). But having more access/control to the SCC's main loop is definitely something I'd like to include, and events are super useful in general for that.


Create GitHub action to push to Lokalise

@abatilo thanks for the review! I meant to open this as a draft. I'll address your changes, tidy up the documentation, and finish my PR description 🙈 .


Example with multiple drones

It would be good to provide an example how we can use the Python wrappers to connect to multiple drones at the same time.
It's a bit tricky because we need to run a mavsdk_server for each drone.

It's a bit tricky because we need to run a mavsdk_server for each drone.

Or maybe we should extend the API to support multiple drones like in MAVSDK-C++. We talked about that a while ago, if I remember correctly :blush:.

Is there any update?? Or is there any reference issue of this??

No there is currently no update from our side as it is not our priority.
Would you be able to contribute/work on this?

Yeah I could. But I need to understand this system and codes before doing this. Is there any additional development documentations of MAVSDK? Thanks.

You have probably seen this? https://mavsdk.mavlink.io/develop/en/cpp/
Do you already understand the C++ API, gRPC backend and language frontends? If not I'd suggest to look at the C++ API first and see how multiple drones are working there.

I'm not familiar with gRPC. OK let me see C++ API first and would do that. But now I've been focusing on other project, so I couldn't say 'I can!!'. Thanks!!

It's a bit tricky because we need to run a mavsdk_server for each drone.

Or maybe we should extend the API to support multiple drones like in MAVSDK-C++. We talked about that a while ago, if I remember correctly blush.

So it looks to me like currently if you have several mavSDK systems on one ip/port (for example you're using qgroundcontrol's MAVlink forwarding) it picks a random device to communicate with. This is pretty surprising behavior and could easily be a safety issue. I suspect it gets weirder than that, but I didn't continue testing past that point.
Even just keeping the current system where you need multiple mavsdk_server's but allowing you to specify the system-id of the drone you're trying to communicate with would be a big improvement.

if you have several mavSDK systems on one ip/port

Assuming that the different systems have a different IP, you could write a simple demultiplexer that would redirect each drone (based on its ip) to a different mavsdk_server instance :+1:.

I believe that mavlink-router can accomplish this, it's still another jenga block on the tower though and makes it a fair bit harder to develop nice self-container apps that are reliable.

I don't think mavlink-router does this :thinking:, though it does a lot of other things that you don't need here.
However, such a multiplexer is quite trivial to write (I wrote something similar in ~80 lines of python), and it can totally be part of your main python app, right?

How? Are you using pymavlink for that?

No, I just proxy the UDP packets based on the source IP (I assume that each drone has a different IP, and redirect the messages of each drone to the corresponding mavsdk_server instance).

Oh, I misunderstood. That's not going to work with qgroundcontrol's mavlink forwarding. I'd prefer to keep the drones connected to both qgroundcontrol and my script for safety reasons.

I don't really understand what the proxy would be doing here that can't be done by just having mavsdk directly connect to each of those IPs separately.

Well the proxy allows MAVSDK to connect to each IP separately, by having one MAVSDK instance per IP :thinking:. It seems like you would like to have multiple drones sending to the same UDP port on MAVSDK, but IMO that is a bad idea (and that's not how mavsdk_server works).

That's not going to work with qgroundcontrol's mavlink forwarding.

Right, I don't know your setup, so I couldn't say.

but IMO that is a bad idea (and that's not how mavsdk_server works).

It is however how the actual CPP mavsdk API appears to wrok, where nodes get identified by their sysid's and you can subscribe to an event listener that tells you when a new drone shows up. The functionality exists, it's just exposed over the grpc interface.
Just saying, it's been about 4 years since this issue was opened, and there are still very much use-cases where it's a problem. I can go in to more detail about the specifics of those use cases if needed. The 1000 foot overview is that the default PX4 simulator script uses a UDP-broadcast mode that doesn't seem to work with a direct connection, trying to use a forwarder like the one built-in to qgroundcontrol won't work, there's no real way to auto-detect multiple drones under python, etc. It introduces a fair bit of friction and makes the python SDK unsuitable for making a real app.
This is a bit of an upstream problem as it exists in the mavsdk_server binary implementation and can't really be fixed on the python side of things.

It is however how the actual CPP mavsdk API appears to wrok

It is, and MAVLink allows it. I am just saying that IMO it is a bad idea over a UDP/IP network :see_no_evil:. It is easy to handle in C++, but harder to translate to the MAVSDK gRPC system. So I am reluctant to spend a lot of my own time solving this particular problem in this particular way, because I personally believe that it is generally not the right way.
Now if you find a way to add support for that over gRPC in a clean way, then I will be more than happy to review your idea/PR :+1:.

If I had the ability to specify what sysid a system is trying to connect to, and a method that let me know when new sysid's became available, I could hack something together using the existing spawn-a-new-server-for-each-drone methodology. That should bring feature parity to the python SDK for auto discovery. I can probably even submit some upstream PR's to the python side of things to wrap it in a nicer interface.
From the python side of things I'd imagine something like

drones={}
startport=50051

watcher=System(port=startport)

async for newdrone in watcher.find_new_broadcasters("udp://:14550"):
    startport+=1
    drone=System(port=startport)
    await drone.connect(system_address=newdrone["system_address"],sysid=newdrone["sysid"])
   drones[newdrone["sysid"]]=drone

Not familiar enough with the internals to know if this makes sense, but would something like that work without breaking your grpc model? Doesn't require you to pass complex objects around or state the sysid in every message.

Unfortunately, mavsdk_server only really starts when the drone is detected: https://github.com/mavlink/MAVSDK/blob/main/src/mavsdk_server/src/mavsdk_server_api.cpp#L13. So it's not straightforward to add detection logic there.
To be honest, if I had time to improve that, I would rather spend it working on the direct FFI wrappers (i.e. removing gRPC and calling the C++ API directly from the language bindings). This would bring the C++ discovery to the wrappers. But that is not trivial to do.

We do work with the python (gRPC) library and also encounter the limitations. Thus I am looking for an alternative - as I understand the way to go would be C++. We would prefer to use CSharp instead, but it is declared as "Proof of concept." on the mavsdk webpage. Can you tell me whether it uses gRPC (like python) and suffers from the same limitations or is it like C++ and has full access to all features?

C# is not maintained at all, I would advise against using it.
This said, an easy way to support multiple drones is to run multiple instances of MAVSDK and have the drones send MAVLink on different ports. I would (and I did in the past, actually) write a simple proxy that would receive messages from the drones on 14550 and that would redirect them to a new port.
You could maybe ask e.g. @ThomasDebrunner if Auterion would be willing to open source the reverse proxy I wrote, I believe it does exactly that.

It might be verry possible that we got that reverse proxy already 😉 (however we modified it a bit meanwhile)
We do run multiple servers and it works fine. However occasionally we run into other limitations as e.g. waypoints do not support autocontinue param in python where they do in C++, etc. Also scalability might become an issue at some point. Currently we would like to operate at least 3-4 drones. Thus we are looking for alternatives. Would it make sense to use ctypes from python?
Am 10. April 2024 12:55:54 MESZ schrieb Jonas Vautherin @.***>:

C# is not maintained at all, I would advise against using it.
This said, an easy way to support multiple drones is to run multiple instances of MAVSDK and have the drones send MAVLink on different ports. I would (and I did in the past, actually) write a simple proxy that would receive messages from the drones on 14550 and that would redirect them to a new port.
You could maybe ask e.g. @ThomasDebrunner if Auterion would be willing to open source the reverse proxy I wrote, I believe it does exactly that.
--
Reply to this email directly or view it on GitHub:
https://github.com/mavlink/MAVSDK-Python/issues/102#issuecomment-2047210242
You are receiving this because you commented.
Message ID: @.***>


AWS: End to end testing for dynamoDB

Test 4 scenarios end to end for dynamoDB instrumentation

I met with André today to get the testing environment set up for Ruby. Unfortunately, we weren't able to successfully complete the setup for Cloud Watch Metric Streams because of an error, which has been reported to the correct teams.
I should have the information I need to finish Cloud Watch Metric Stream set up when the error is resolved.
Fortunately, Ruby is already set up for API Polling, and now I know where we need to go to look for the related entities. I may need one more sync with André to finish the knowledge transfer.

This issue is blocked until we can get Cloud Watch Metric Stream set up for our account. The problem is under review by the Infra UI team.

We got through the initial Cloud Watch Metric Stream setup, but we are still not seeing data ingested for our account. I'm troubleshooting this on May 7 with André.

Testing passed! https://newrelic.atlassian.net/wiki/spaces/INST/pages/3307634814/AWS+DYNAMO+DB+TABLE#Ruby-Agent


Envoy doesn't forward/recognize timeout response codes when proxying 100-continue

Description:
When configured to proxy Expect: 100-continue (via proxy_100_continue), envoy will not forward timeouts to the client or update internal metrics as expected.
Config / Repro steps:
Don't have a clean minimal config to share, but I can reliably reproduce in a config where the listener has proxy_100_continue set to be true and the upstream cluster for a route has a timeout shorter than the request duration (with an upstream setup to support 100-continue itself)
From the perspective of curl, this looks like this:
> ....
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
* TLSv1.2 (IN), TLS alert, Client hello (1):
* Empty reply from server
* Connection #0 to host <url> left intact
curl: (52) Empty reply from server

This happens because in router.cc, onUpstream100ContinueHeaders sets downstream_response_started_ to be true. Then when the request times out, onUpstreamAbort destroys the stream instead of sending & updating the code.
Ideally the client would get the 503, but I'm not actually sure what is allowed/expected here as per http spec. What is definitely an issue is that we don't see expected timeout metrics for this (because chargeUpstreamAbort also checks downstream_response_started_), and not updating the response code internally means that in, eg access logs we see a status of 100 as supposed to a 503.
Logs:
Envoy debug logs when this happens:
2020-07-16 14:36:58.201 [44][debug][router] [source/common/router/router.cc:816] [C6487][S12773442203076911571] upstream timeout
2020-07-16 14:36:58.201 [44][debug][router] [source/common/router/upstream_request.cc:263] [C6487][S12773442203076911571] resetting pool request
2020-07-16 14:36:58.201 [44][debug][client] [source/common/http/codec_client.cc:114] [C6490] request reset
2020-07-16 14:36:58.201 [44][debug][connection] [source/common/network/connection_impl.cc:109] [C6490] closing data_to_write=0 type=1
2020-07-16 14:36:58.201 [44][debug][connection] [source/common/network/connection_impl.cc:200] [C6490] closing socket: 1
2020-07-16 14:36:58.201 [44][debug][connection] [source/extensions/transport_sockets/tls/ssl_socket.cc:298] [C6490] SSL shutdown: rc=0
2020-07-16 14:36:58.201 [44][debug][connection] [source/extensions/transport_sockets/tls/ssl_socket.cc:226] [C6490]
2020-07-16 14:36:58.202 [44][debug][client] [source/common/http/codec_client.cc:91] [C6490] disconnect. resetting 0 pending requests
2020-07-16 14:36:58.202 [44][debug][pool] [source/common/http/conn_pool_base.cc:265] [C6490] client disconnected, failure reason:
2020-07-16 14:36:58.202 [44][debug][http] [source/common/http/conn_manager_impl.cc:205] [C6487][S12773442203076911571] doEndStream() resetting stream
2020-07-16 14:36:58.202 [44][debug][http] [source/common/http/conn_manager_impl.cc:1936] [C6487][S12773442203076911571] stream reset
2020-07-16 14:36:58.202 [44][debug][connection] [source/common/network/connection_impl.cc:109] [C6487] closing data_to_write=0 type=2
2020-07-16 14:36:58.202 [44][debug][connection] [source/common/network/connection_impl_base.cc:30] [C6487] setting delayed close timer with timeout 1000 ms
2020-07-16 14:36:58.202 [44][debug][pool] [source/common/http/conn_pool_base.cc:93] [C6490] destroying stream: 0 remaining

cc @alyssawilk

Hm, I think we should be willing to send informational headers if only informational headers have been sent, and I could imagine that being a bug.  I'll take a look.

Incidentally, my guess is Envoy is just sending an H2 reset or an HTTP/1 connection close, as it would if there were a timeout during body processing.  If that's the case it should be a straight-forward fix.

@alyssawilk that is my understanding too. The root cause seems to be that the expectation of downstream_response_started_ is that the downstream has already received headers/etc and that is no longer safe to send a 503 status code, but of course 100-continue is a wierd corner case where that behavior is not only allowed, but desired

Yeah, I think in the case of sending a reply, it's pretty easy to say if we've sent 1xx but not other response headers, we can send 5xx on upstream failure rather than just resetting the stream.  More interesting is hedging and retries.  I hate to penalize the upstream for sending early non-informational headers, but I am concerned about the complexity of allowing a retry which might send its own 1xx (we've had problems with more than 1 1xx).   I'm inclined to at least have the first pass fix just be fixing the error communication and not the error handling.

Sounds reasonable - I'm certainly not the expert on this :)

I've got a PR out for the error handling case.    I think after @htuch 's work on 100 coalescing we could handle the retry case pretty easily too.  If we coalesce in the HCM we can even handle redirects as well cc @penguingao


core database: batch_upsert validation + save a bunch of clones

Change of DatabaseRow::new signature saves a lot of clones
Validate rows before inserting them in database (by generating their schema, which will be used later to update the schema in base)

Added tests


Handoff Works But Not Continuity with MacPro 2009 and IOGear dongle

The compatibility chart suggests it should work but it doesn't. I have handoff without the tool but would like Continuity and Airdrop without buying the Apple card and playing with the antenna. Ideas? Also, are the latest versions of El Capitan supported?

I have the same problem. Hands off and AirDrop works well, but Continuity doesn't.
El Capitan 10.11.6 beta with USB dongle on MacBook Pro 2011 late.


Tracking pandora index RAM usage and runtime

To be done

@rmcolq runs:
Commit: https://github.com/rmcolq/pandora/commit/84aaaac57c236901f9583f54057076f7bd9e79dc
1/
PRG: /nfs/leia/research/iqbal/projects/pandora/klebs/holt_gastro/prg/holt2015/combined_genes_igr10/pangenome_PRG.fa
Command line: pandora index -w 19 -k 31 -t 16 /nfs/leia/research/iqbal/projects/pandora/klebs/holt_gastro/prg/holt2015/combined_genes_igr10/pangenome_PRG.fa
Max Memory : 18297 MB (17.8 GB)
Run time : 1747 sec (0.48 h)
2/
PRG: /hps/nobackup2/iqbal/projects/pandora/ecoli/panrg/ecoli_pangenome_PRG_210619.fa
Command line: pandora index -w 19 -k 31 -t 16 panrg/ecoli_pangenome_PRG_210619.fa
Max Memory : 20352 MB (19.8 GB)
Run time : 3565 sec (1h)

Runtime seems fine, RAM is a little bit worrying, but indexing will not be done as frequently as map and compare. I think the hardest instances will be when augmenting the PRG with denovo sequences, will update this when we get this.
For now setting the priority of this issue to low (feel free to update if indexing should be prioritised).

sounds good. if/when we need to,index RAM can be dropped by indexing genes independently


[docs] works-with-clojurescript

There are a few works-with-* topics, one that's missing is Clojurescript (specifically https://github.com/kwrooijen/tauri-cljs).
Would be nice to include it as well.

thanks for the headsup!


Running composer gives: SSL certificate problem: unable to get local issuer certificate

Is there an existing issue for this?

[X] I have searched the existing issues

Output of ddev debug test
Expand `ddev debug test` diagnostic information
➜  d10-test ddev debug test
Running bash [-c /var/folders/s9/q1kr5vbj14j_6bs1t3fp8b2r0000gp/T/test_ddev.sh]
======= Existing project config =========
These config files were loaded for project d10-test: [/Users/rich.jones/Code/d10-test/.ddev/config.yaml]
name: d10-test
type: drupal10
docroot: docroot
php_version: 8.1
webserver_type: nginx-fpm
webimage: ddev/ddev-webserver:v1.22.7
additional_hostnames: []
additional_fqdns: []
database: {mariadb 10.4}
project_tld: ddev.site
use_dns_when_possible: true
composer_version: 2
nodejs_version: 18
default_container_timeout: 120
======= Creating dummy project named  tryddevproject-21312 in ../tryddevproject-21312 =========
OS Information: Darwin MacBookPro-RichJones 23.4.0 Darwin Kernel Version 23.4.0: Wed Feb 21 21:44:31 PST 2024; root:xnu-10063.101.15~2/RELEASE_X86_64 x86_64
ProductName:		macOS
ProductVersion:		14.4
BuildVersion:		23E214
User information: uid=502(rich.jones) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),702(com.apple.sharepoint.group.2),701(com.apple.sharepoint.group.1),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),400(com.apple.access_remote_ae)
DDEV version:  ITEM             VALUE
 DDEV version     v1.22.7
 architecture     amd64
 db               ddev/ddev-dbserver-mariadb-10.4:v1.22.7
 ddev-ssh-agent   ddev/ddev-ssh-agent:v1.22.7
 docker           25.0.3
 docker-compose   v2.24.5
 docker-platform  docker-desktop
 mutagen          0.17.2
 os               darwin
 router           ddev/ddev-traefik-router:v1.22.7
 web              ddev/ddev-webserver:v1.22.7
PROXY settings: HTTP_PROXY='' HTTPS_PROXY='' http_proxy='' NO_PROXY=''
======= DDEV global info =========
Global configuration:
instrumentation-opt-in=true
omit-containers=[]
performance-mode=mutagen
router-bind-all-interfaces=false
internet-detection-timeout-ms=3000
disable-http2=false
use-letsencrypt=false
letsencrypt-email=
table-style=default
simple-formatting=false
use-hardened-images=false
fail-on-hook-fail=false
required-docker-compose-version=v2.24.5
use-docker-compose-from-path=false
project-tld=ddev.site
xdebug-ide-location=
no-bind-mounts=false
router=traefik
wsl2-no-windows-hosts-mgt=false
router-http-port=80
router-https-port=443
mailpit-http-port=8025
mailpit-https-port=8026
traefik-monitor-port=10999

======= DOCKER info =========
docker location: lrwxr-xr-x@ 1 rich.jones  staff  54 12 May  2023 /Users/rich.jones/.docker/bin/docker -> /Applications/Docker.app/Contents/Resources/bin/docker
Docker Desktop Version: Docker Desktop for Mac 4.28.0 build 139021
docker version:
Client:
 Cloud integration: v1.0.35+desktop.11
 Version:           25.0.3
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        4debf41
 Built:             Tue Feb  6 21:13:26 2024
 OS/Arch:           darwin/amd64
 Context:           default

Server: Docker Desktop 4.28.0 (139021)
 Engine:
  Version:          25.0.3
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       f417435
  Built:            Tue Feb  6 21:14:25 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
DOCKER_DEFAULT_PLATFORM=notset
======= Mutagen Info =========
Mutagen is installed in ddev, version=0.17.2
--------------------------------------------------------------------------------
Name: d10-test
Identifier: sync_XZKeo2P2PeaZRoHi7FrXickTPgrbCqVwCuhOsd01IIt
Labels:
	com.ddev.config-hash: 654a7799e053320033f4baa45c0f9c345f2546e4
	com.ddev.volume-signature: Users-rich-jones-docker-run-1710359330
Configuration:
	Synchronization mode: Two Way Resolved
	Hashing algorithm: Default (SHA-1)
	Maximum allowed entry count: Default (2⁶⁴−1)
	Maximum staging file size: Default (18 EB)
	Symbolic link mode: POSIX Raw
	Ignore VCS mode: Default (Propagate)
	Ignores:
		/.git
		/.tarballs
		/.ddev/db_snapshots
		/.ddev/.importdb*
		.DS_Store
		.idea
		/docroot/sites/default/files
	Permissions mode: Default (Portable)
Alpha:
	URL: /Users/rich.jones/Code/d10-test
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
	Connected: Yes
	Synchronizable contents:
		30 directories
		79 files (146 kB)
		0 symbolic links
Beta:
	URL: docker://ddev-d10-test-web/var/www/html
		DOCKER_HOST=unix:///Users/rich.jones/.docker/run/docker.sock
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
		Compression: Default (DEFLATE)
	Connected: Yes
	Synchronizable contents:
		30 directories
		79 files (146 kB)
		0 symbolic links
Status: Watching for changes
--------------------------------------------------------------------------------
======= Docker Info =========
Docker platform: docker-desktop
Using Docker context: default (unix:///Users/rich.jones/.docker/run/docker.sock)
docker-compose: v2.24.5
Using DOCKER_HOST=unix:///Users/rich.jones/.docker/run/docker.sock
Docker version: 25.0.3
Able to run simple container that mounts a volume.
Docker disk space:
Filesystem                Size      Used Available Use% Mounted on
overlay                  58.4G      9.3G     46.0G  17% /

 Container ddev-d10-test-db  Stopped
 Container ddev-d10-test-web  Stopped
 Container ddev-d10-test-web  Stopped
 Container ddev-d10-test-db  Stopped
 Container ddev-d10-test-db  Removed
 Container ddev-d10-test-web  Removed
 Network ddev-d10-test_default  Removed
Project d10-test has been stopped.
Stopped Mutagen daemon
The ddev-ssh-agent container has been removed. When you start it again you will have to use 'ddev auth ssh' to provide key authentication again.
Network ddev_default removed
Existing docker containers:
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
Network ddev_default created
Starting tryddevproject-21312...
Network ddev-tryddevproject-21312_default created
 Container ddev-ssh-agent  Created
 Container ddev-ssh-agent  Started
ssh-agent container is running: If you want to add authentication to the ssh-agent container, run 'ddev auth ssh' to enable your keys.
Building project images...
Project images built in 1s.
 Container ddev-tryddevproject-21312-web  Created
 Container ddev-tryddevproject-21312-db  Created
 Container ddev-tryddevproject-21312-web  Started
 Container ddev-tryddevproject-21312-db  Started
You have Mutagen enabled and your 'php' project type doesn't have `upload_dirs` set.
For faster startup and less disk usage, set upload_dirs to where your user-generated files are stored.
If this is intended you can disable this warning with `ddev config --disable-upload-dirs-warning`.
Starting Mutagen sync process...
Mutagen sync flush completed in 2s.
For details on sync status 'ddev mutagen st tryddevproject-21312 -l'
Waiting for web/db containers to become ready: [web db]
Starting ddev-router if necessary...
 Container ddev-router  Created
 Container ddev-router  Started
Waiting for additional project containers to become ready...
All project containers are now ready.
Successfully started tryddevproject-21312
Project can be reached at https://tryddevproject-21312.ddev.site https://<IP_ADDRESS>:63333
======== Curl of site from inside container:
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 14 Mar 2024 13:25:57 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding

======== curl -I of http://tryddevproject-21312.ddev.site from outside:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Thu, 14 Mar 2024 13:25:58 GMT
Server: nginx
Vary: Accept-Encoding

======== full curl of http://tryddevproject-21312.ddev.site from outside:
Success accessing database... db via TCP/IP
ddev is working. You will want to delete this project with 'ddev delete -Oy tryddevproject-21312'
======== Project ownership on host:
drwxr-xr-x  4 rich.jones  staff  128 14 Mar 13:25 ../tryddevproject-21312
======== Project ownership in container:
drwxr-xr-x 4 rich.jones dialout 4096 Mar 14 13:25 /var/www/html
======== In-container filesystem:
Filesystem     Type 1K-blocks     Used Available Use% Mounted on
/dev/vda1      ext4  61202244 11069372  46991548  20% /var/www
======== curl again of tryddevproject-21312 from host:
Success accessing database... db via TCP/IP
ddev is working. You will want to delete this project with 'ddev delete -Oy tryddevproject-21312'
Thanks for running the diagnostic. It was successful.
Please provide the output of this script in a new gist at gist.github.com
Running ddev launch in 5 seconds

Please run cleanup after debugging with 'ddev debug testcleanup'

Expected Behavior
Following the Drupal installation steps here:
https://ddev.readthedocs.io/en/latest/users/quickstart/#drupal
I expected composer to download the relevant packages.
I'm not sure if this is a DDev issue, or more general Docker issue... But raising here in the first instance.
Actual Behavior
SSL error:
➜  d10-test ddev composer create drupal/recommended-project -vvv

Network ddev-d10-test_default created
Building project images...
Project images built in 1s.
 Container ddev-d10-test-web  Created
 Container ddev-d10-test-db  Created
 Container ddev-d10-test-db  Started
 Container ddev-d10-test-web  Started
Starting Mutagen sync process...
Mutagen sync flush completed in 2s.
For details on sync status 'ddev mutagen st d10-test -l'
Waiting for web/db containers to become ready: [web db]
Starting ddev-router if necessary...
 Container ddev-router  Running
Waiting for additional project containers to become ready...
All project containers are now ready.
Executing Composer command: [composer create-project drupal/recommended-project -vvv --no-install /tmp/fQgKib]

Running 2.7.2 (2024-03-11 17:12:18) with PHP 8.1.27 on Linux / 6.6.16-linuxkit
Failed to initialize global composer: Composer could not find the config file: /home/rich.jones/.composer/composer.json
To initialize a project, please create a composer.json file. See https://getcomposer.org/basic-usage
Creating a "drupal/recommended-project" project at "/tmp/fQgKib"
Checked CA file /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a file.
Checked directory /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a directory.
Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
Executing command (/var/www/html): 'git' 'branch' '-a' '--no-color' '--no-abbrev' '-v'
Executing command (/var/www/html): git describe --exact-match --tags
Executing command (CWD): git --version
Executing command (/var/www/html): git log --pretty="%H" -n1 HEAD --no-show-signature
Executing command (/var/www/html): hg branch
Executing command (/var/www/html): fossil branch list
Executing command (/var/www/html): fossil tag list
Executing command (/var/www/html): svn info --xml
Failed to initialize global composer: Composer could not find the config file: /home/rich.jones/.composer/composer.json

Downloading https://repo.packagist.org/packages.json

In CurlDownloader.php line 389:

  [Composer\Downloader\TransportException]
  curl error 60 while downloading https://repo.packagist.org/packages.json: SSL certificate problem: unable to get lo
  cal issuer certificate

Exception trace:
  at phar:///usr/local/bin/composer/src/Composer/Util/Http/CurlDownloader.php:389
 Composer\Util\Http\CurlDownloader->tick() at phar:///usr/local/bin/composer/src/Composer/Util/HttpDownloader.php:392
 Composer\Util\HttpDownloader->countActiveJobs() at phar:///usr/local/bin/composer/src/Composer/Util/HttpDownloader.php:363
 Composer\Util\HttpDownloader->wait() at phar:///usr/local/bin/composer/src/Composer/Util/HttpDownloader.php:114
 Composer\Util\HttpDownloader->get() at phar:///usr/local/bin/composer/src/Composer/Repository/ComposerRepository.php:1486
 Composer\Repository\ComposerRepository->fetchFile() at phar:///usr/local/bin/composer/src/Composer/Repository/ComposerRepository.php:1195
 Composer\Repository\ComposerRepository->loadRootServerFile() at phar:///usr/local/bin/composer/src/Composer/Repository/ComposerRepository.php:823
 Composer\Repository\ComposerRepository->hasProviders() at phar:///usr/local/bin/composer/src/Composer/Repository/ComposerRepository.php:484
 Composer\Repository\ComposerRepository->loadPackages() at phar:///usr/local/bin/composer/src/Composer/Repository/RepositorySet.php:198
 Composer\Repository\RepositorySet->findPackages() at phar:///usr/local/bin/composer/src/Composer/Package/Version/VersionSelector.php:87
 Composer\Package\Version\VersionSelector->findBestCandidate() at phar:///usr/local/bin/composer/src/Composer/Command/CreateProjectCommand.php:416
 Composer\Command\CreateProjectCommand->installRootPackage() at phar:///usr/local/bin/composer/src/Composer/Command/CreateProjectCommand.php:196
 Composer\Command\CreateProjectCommand->installProject() at phar:///usr/local/bin/composer/src/Composer/Command/CreateProjectCommand.php:171
 Composer\Command\CreateProjectCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:298
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:1040
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:301
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:385
 Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:171
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:145
 Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:93
 require() at /usr/local/bin/composer:29

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--ask] [--] [<package> [<directory> [<version>]]]

Failed to create project:exit status 1, stderr=

Steps To Reproduce
No response
Anything else?
No response

Ok thanks - seems like it has to do with running behind Zscaler. I tried a temporary workaround to bypass Zscaler, and it works fine. I'll have to try and find a more permanent solution...


Do not send notifications for UP notifications

📑 I have found these related issues/pull requests

https://github.com/louislam/uptime-kuma/issues/4368
This could work but the solution is complex, this should be implemented on the notification level.
https://github.com/louislam/uptime-kuma/issues/508

🏷 Feature Request Type
Settings
🔖 Feature description
New option to all notification "channels" (type in the UI)
Toggle option should read:

Only send error/down notifications.

And that's it.
Telegram specific part
The only current available option is:

Send Silently
Sends the message silently. Users will receive a notification with no sound.

So either be annoyed by all successful checks or silent them all and miss important errors.

So my Telegram specific suggestion is that there should be an additional option that send all errors non-silently and send non-errors silently, this way I both know it's working and I don't get annoying notifications while knowing that if an error happens I'll get notified.
✔ Solution
.
❓ Alternatives
No response
📝 Additional Context
No response

Sort of in conflict (or at least interaction is unclear/difficult) with https://github.com/louislam/uptime-kuma/issues/508
I think adding a disable_notification toggle from the telegram api and https://github.com/louislam/uptime-kuma/issues/508 are an alternative.
Maybe a good alternative merging the approaches would be to have this as a mult-selection box (notify for => UP/DOWN/other)

Sort of in conflict (or at least interaction is unclear/difficult) with #508

Completely missed this one, I searched  for notification not alert.

I think adding a disable_notification toggle from the telegram api and #508 are an alternative.
Maybe a good alternative merging the approaches would be to have this as a mult-selection box (notify for => UP/DOWN/other). What do you think about these alternatives?

This would be awesome yes.

Tip
Notification provider specific changes are really hard to keep up with. If you want to get there faster, you can consider contributing a change to the notification provider12

I could totally help with telegram implementation once #508 is done, I've worked a lot with the telegram API and currently working full stack and typescript.
But as of now #508 blocks this.

Just noticed that disable_notification is already an option we implement.
=> don't think anything is needed in this department
What #508 needs should be pretty simple to implement.
The shared part of the notification dialog is here:
https://github.com/louislam/uptime-kuma/blob/dbbc79a05a2036176c8b011401c915c0db3384ca/src/components/NotificationDialog.vue
Notifications in the backend are send here
https://github.com/louislam/uptime-kuma/blob/dbbc79a05a2036176c8b011401c915c0db3384ca/server/notification.js#L164-L170

Hi, I thought to check if we are facing the same problem:
I would like to know audibly and visually if

There are any DOWN children (sound A)
All children are UP (sound B)

In order to have different sounds, I sent 1 and 2 into different group chats, but that created another issue: I can't easily see if the latest status is UP or DOWN.
After reading earlier comments, I thought it might make sense to have a 3rd chat that is always silent, but has all messages. Another alternative is to have the bot modify the title of the group chat with an icon?
Or is there some way we can meet all requirements using only a single group chat?


filename/url with params

I have a url that grabs image data from the database and then returns it as a pdf header type in another file, however the url needs a parameter filled out like so
https://www.example.com/portal/plugins/pdfjs-dist/web/viewer.html?file=https://www.example.com/portal/imageload.php?i=123
I'm using the viewer to display the pdf, which is working fine, however I had to change some code within viewer.JS to get it to work
Old code
function parseQueryString(query) {
  var parts = query.split('&');
  var params = Object.create(null);
  for (var i = 0, ii = parts.length; i < ii; ++i) {
    var param = parts[i].split('=');
    var key = param[0].toLowerCase();
    var value = param.length > 1 ? param[1] : null;
    params[decodeURIComponent(key)] = decodeURIComponent(value);
  }
  return params;

}

had to be changed to
function parseQueryString(query) {
  var parts = query.split('&');
  var params = Object.create(null);
  for (var i = 0, ii = parts.length; i < ii; ++i) {
    var param = parts[i].split('file=');
    var key = "file";
    var value = param.length > 1 ? param[1] : null;
    params[decodeURIComponent(key)] = decodeURIComponent(value);
  }

  return params;

}

All of this works fine, but I just wanted to check to see if this is most appropriate or if there is an easier way without having to modify the viewer.js

All of this works fine, but I just wanted to check to see if this is most appropriate or if there is an easier way without having to modify the viewer.js

It's true, you need to modify the demo viewer to make it work for your app. Closing as answered.
The current algorithm is needed to support all types of URLs. (In your case you cannot provide URL like https://www.example.com/portal/imageload.php?i=123&j=45)

I think we can modify the parseQueryString function as below:
`function parseQueryString(query) {
let parts = query.split('&');
let params = Object.create(null);
for (let i = 0, ii = parts.length; i < ii; ++i) {
let temp = parts[i];
let equalIndex = temp.indexOf('=');
            if(equalIndex > -1) {
                let key = temp.substr(0,equalIndex).toLowerCase();
                let value = temp.substr(equalIndex + 1);

                if(key) {
                    params[decodeURIComponent(key)] = decodeURIComponent(value);
                }
            }
        }
        return params;
    }`

This worked for me. Practically is passing all arguments to the viewer.
function parseQueryString(query) {
  var params = Object.create(null);
  var param = query.split('file=');
  var key = "file";
  var value = param.length > 1 ? param[1] : null;
  params[decodeURIComponent(key)] = decodeURIComponent(value);
  console.info(params);
  return params;
}


[csolution] misc->for-compiler: documentation vs schema misalignment

Reported by @JonatanAntoni
Describe the bug
Currently misc, for-compiler not accepting a list of compilers
I.e., we have to duplicate options even if identical for multiple compilers
According to the documentation for-compiler should be accepting a list of compilers:
https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/YML-Input-Format.md#misc
https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/YML-Input-Format.md#for-compiler
However, it is set to accept only one compiler type in the schema:
https://github.com/Open-CMSIS-Pack/devtools/blob/main/tools/projmgr/schemas/common.schema.json#L285
https://github.com/Open-CMSIS-Pack/devtools/blob/main/tools/projmgr/schemas/common.schema.json#L91-L95

The misc->for-compiler accepts only one compiler at each item to safely keep compiler options separated.
For example:
  misc:
      - for-compiler: AC6
        C-CPP:
          - -O1
          - -g
      - for-compiler: GCC
        C-CPP:
          - -Og

In my opinion the clarity of having separated misc options overweighs the benefit of having a more concise yaml file when the options are eventually identical, for this reason I would suggest just to update the documentation to make it more clear - actually in misc it is already written singular "Name of the toolchain" which implies one toolchain and not a list.

Let's improve the documentation.  I would suggest not to change the tool.

Fixed in https://github.com/Open-CMSIS-Pack/cmsis-toolbox/commit/5ec3e56baed8e5e0b67c134d5deba1ad0b020289


⚠ Bofrost.es has degraded performance

In fcda6cd, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1790 ms

Resolved: Bofrost.es performance has improved in 9fdde5c after 23 minutes.


About training

I am glad to see that your work has been accepted by CVPR2024. Recently, while reviewing the code, I have encountered some questions. In the dataset readers, using Hypernerf as an example, camera information consists of scene image indices and their corresponding timestamps, t. However, in the training section of train.py, it seems that during iteration, a random camera view and its corresponding time step t are selected for training. My concern is that during the initial stages, there are no well-defined Gaussian points to fit the scene. In such a scenario, how do we predict the changes d_xyz, d_rotation, and d_scaling, given only one supervised image for training and without a fully formed Gaussian representation to predict dynamic scene changes?
I would appreciate any insights or clarifications on this matter.

Hi, sorry for the late reply.
First of all, I would thank for your interest and your insightful question.
At the beginning of this work, we had the same concern that jointly optimizing the deformation field during the early phase when the canonical GS is still being optimized might lead to training collapse. Therefore, we introduced a warm-up phase, independently optimizing the 3D-GS under the canonical space for the first 3k iterations.
However, I later found that removing the warm-up in some D-NeRF scenarios actually resulted in better rendering quality. From my current experience, I believe it is the robustness of this joint training mechanism that allows the deformation field and the canonical 3D GS to learn well on their own.
An interesting point is that, after about 20k iterations, the position of the 3D GS under the canonical space no longer changes, and only the deformation field continues to be optimized.

Thank you for your response, but I still have some questions. As you mentioned, there is a warm-up phase of 3k steps. However, the randomly sampled camera viewpoints will have different time steps t, and the position of the 3DGS in the canonical space learned during the warm-up phase may vary at different time steps t. So, does the 3DGS in the learned canonical space correspond to a specific frame of the dynamic scene at different time steps t?


Capture Error event handler

Hi Team,
I can't find capture error event handler ? Is it possible ?
For example, I have usb capture device.If I unplug the usb cable from the computer, I expect a capture error to occur while capturing.
Thanks in advance.

Currently FlashCap has weak strict error detection and has no such structure as a public event for errors.

This is an excuse, but abnormal conditions that occur in the DirectShow filter graph are difficult to detect, and this is the reason why we left the interface design for error handling.

See also #15. Someone has shown us a practical solution.


[Jetchat] Tablet test fix + Lazycolumn migration

Actualización Android 12 in progress

derivedStateOf should be remembered, similarly to mutableStateOf

Right! fixed


Exclude patterns not working as expected

I have the following .yamlfmt file in my project:
include:
  - .
  - .yamlfmt
exclude:
  - node_modules

The idea is to include all *.yml / *.yaml files in the project, including hidden files, but excluding some directories such as dependency directories (node_modules in this case). But for some reason this is isn't working, node_modules is still checked if . is included.
I may be missing something. What would be an alternative approach? I don't want to maintain a list of files and directories to include.

Hi @pereorga thanks for opening an issue.
I would have expected that config to work. I can spend some time debugging tonight to try and find the issue.

Found the issue, it should be fixed in the next release of yamlfmt. Not sure yet when I will be able to get that out but I will try within the next couple of weeks.

Thanks @braydonk


Remove type hint

If you try to deactivate user in the CMS via "Deactivate selected" dropbox on the users list, it throws an error:
Type error: Return value of RainLab\User\Models\User::clearPersistCode() must be an instance of RainLab\User\Models\void, none returned" on line 159 of \plugins\rainlab\user\models\User.php
Removing the type hint solves the problem in version 1.* and it becomes compatible with PHP7.0^.

Thanks for this!


wrong url in our team

Description
some links are wrong
in facebook icon link of GitHub is opening
Screenshots
No response

@nikhil25803 correct it

I have replaced the Facebook icon with GitHub! Now it's fine.
As everyone does not have a Facebook account, I have added LinkedIn, GitHub, and Twitter only. Do I need to add the Facebook links too or make a PR as it is now only?


Added VS_DEBUGGER_WORKING_DIRECTORY to examples

We discussed adding a line to the CMake on the Vulkan discord that sets VS_DEBUGGER_WORKING_DIRECTORY for all the examples. So this is that PR, let me know if you want any changes.

LGTM. Thx for this PR, very much appreciated!