Positive Integrs only

Can someone posit a configuration that allows positive non-zero interger input only?
Thanks

Simply set the vMin to 0 and set the number of decimals to 0 with mDec = 0.
you can assign it with html5 attribute data-v-min="0" and data-m-dec="0"
Have fun!

Thanks for the quick reply!
This still allows me to enter a single "0" in the input. I would like to prevent a zero from being entered. Maybe my config is wrong:
$('.positive-integer').autoNumeric('init', {mDec: '0',  vMin: '0', vMax:'999', lZero: 'deny'});

You're right,
you can validate the input after or you can set the vMin to 1 (it's integer so it's start from 1).
Remember that if you want a double number you need to specify a vMin 0.0000001 (obviously with the decimal places that you allow).

Please note that setting vMin: "1"  once you enter a number that the input cannot be blank. If there is a single digit the user will need to highlight the digit to overwrite.
--------- Original Message --------- Subject: Re: [autoNumeric] Positive Integrs only (#124)
From: "Peter Boccia"<EMAIL_ADDRESS>Date: 3/24/15 1:49 am
To: "BobKnothe/autoNumeric"<EMAIL_ADDRESS>You're right,
you can validate the input after or you can set the vMin to 1 (it's integer so it's start from 1).
Remember that if you want a double number you need to specify a vMin 0.0000001 (obviously with the decimal places that you allow).
Reply to this email directly or view it on GitHub.

Ah, didn't realize you needed to highlight to back out. That will definitaly confuse users.
Feature request:
You guys would have a complete solution if the plugin could configure a min value and max value and on foucs out, force the input to either end based on the initial input beign high or low.

Joe,
Currently if you want the min / max both to be greater than 0 "zero" you need to hi-light and replace.
Are you suggesting a option that allows the client to violate the min / max rules while the input has "focus" but on "focusout" the the developer can set a "default / new" value if the current value violates the min / max settings?
If so could that be accomplished by developer by setting vMin: '0' to zero and validating on the "focusout" event?
Bob
--------- Original Message --------- Subject: Re: [autoNumeric] Positive Integrs only (#124)
From: "Joe Ersinghaus"<EMAIL_ADDRESS>Date: 3/25/15 3:50 pm
To: "BobKnothe/autoNumeric"<EMAIL_ADDRESS>Cc: "Bob Knothe"<EMAIL_ADDRESS>Ah, didn't realize you needed to highlight to back out. That will definitaly confuse users.
Feature request:
You guys would have a complete solution if the plugin could configure a min value and max value and on foucs out, force the input to either end based on the initial input beign high or low.
Reply to this email directly or view it on GitHub.


New: Microsoft Windows Application Driver Version 1.2.1

Signed-off-by: Daniel Sutton<EMAIL_ADDRESS>
[ x] Have you signed the Contributor License Agreement?
[ x ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ x] Have you validated your manifest locally with winget validate --manifest <path>?
[ x] Have you tested your manifest locally with winget install --manifest <path>?
[ x] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@wingetbot waivers Add Validation-Executable-Error


Supporting VlanFc Creation with proper UUID

While configuring a new VLAN, means instantiating a new VlanFc, the ForwardingConstruct object of the to be created VlanFc has to contain some value in its uuid attribute (because it is the key attribute in the ForwardingDomain::_fc [*] attribute).
Problem: The Application cannot anticipate the UUID value, which will be assigned by the Device to the ForwardingConstruct object.
Idea: The Device shall tell the Application, which UUID value to be used while instantiating the VlanFc.
In the specific case of the VLAN, most Devices are assigning UUID values to the ForwardingConstruct object, which are somehow containing the VLAN ID of the VLAN. So for enabling the Device to tell the to be used UUID value, the Device has to be informed about the VLAN ID, which is intended to be used.
Proposal:
A VlanFdConfiguration::vlanIdOfToBeCreatedVlan : INT64 [1] = -1 attribute shall be added.
A nextVlanFcUuidType datatype shall be created.
A nextVlanFcUuidType::vlanIdOfToBeCreatedVlanFc : INT64 [1] = -1 attribute shall be added.
A nextVlanFcUuidType::uuidOfToBeCreatedVlanFc : String = "UUID not yet created." attribute shall be added.
A VlanFdStatus::nextVlanFcUuid : nextVlanFcUuidType [1] attribute shall be added.
As soon as some value has been successfully configured into the VlanFdConfiguration::vlanIdOfToBeCreatedVlan attribute, the VlanFdStatus::nextVlanFcUuid::vlanIdOfToBeCreatedVlanFc attribute shall represent the exact same value and the VlanFdStatus::nextVlanFcUuid::uuidOfToBeCreatedVlanFc shall contain the corresponding UUID value, which is to be used while instantiating the VlanFc.

Is there any sequence diagram availbale where the concrete interaction between application and device is visible? The reason behind my question is the different interpretation of Idea and proposal on my side, not being present during the disucssions leading to this proposal.
The formulated Idea implies for me that the Application has to interact twice with the device (first time requesting in general to create a VLAN with a dedicated VLAN-ID, then the device will send back the to be used UUID for this VLAN and at the end the Application has to send the full request containing both VLAN-ID and UUID to device back. But reading the description of the proposal I would assume that the UUID problem will be solved device internally (with the poper modell and behaviour implemented) and device will send back only successful configuration notification of the requested VLAN together with the created/used UUID.

Sequence:
Application is PUTting the wished VLAN ID to VlanFdConfiguration::vlanIdOfToBeCreatedVlan.
Device is changing nextVlanFcUuidType::vlanIdOfToBeCreatedVlanFc to this VLAN ID.
Device is changing nextVlanFcUuidType::uuidOfToBeCreatedVlanFc to the proper UUID.
Application is getting nextVlanFcUuidType::vlanIdOfToBeCreatedVlanFc and uuidOfToBeCreatedVlanFc.
Application is comparing got vlanIdOfToBeCreatedVlanFc with wished VLAN,
if equal Application uses uuidOfToBeCreatedVlanFc for creating the VlanFc.

I see a number of issues:

Modeling aspects
The proposal mixes different types of data into one object: (a) data which describes the characteristics of the managed resource in the device (here: VLAN Forwarding Domain); (b) data which controls the behavior of the device.

Non-atomic operation
The procedure for creating a VLAN FC requires several independent steps, that is, it is not atomic (DE: atomar). The resulting behavior may be error-prone and confusing, in particular when simultaneous requests from different clients are processed.

During parallel discussions, the idea of using an RPC has been born.
Issue to continue.

During parallel discussions, the idea of using an RPC has been born.
Issue to continue.

Solved by defining the createVlanFc() operation.


Investigate custom Triton kernels for depthwise-separable convolutions in Conformer

Describe the bug
A decent chunk of time in the Conformer model at training time is spent in the convolution module. Of that, a decent chunk is in the depthwise convolution, which sets groups to the input size. Suspiciously much, if anything.
On ROCm, at least on my 7900XT, it appeared that streaming: True shredded performance and ~doubles training time (which i didn't observe on CUDA), so I tried giving optimizing it a shot.
I didn't observe improvements from using torch.compile, even with max-autotune.
I tried AMD's Composable Kernels and the relevant torch.compile backend, but I will decline elaborating on my experience getting it working lest this become an unhinged rant at the ROCm ecosystem.
So, I wrote up a prototype using Triton (OpenAI's compiler, not the inference server) with no prior experience for a forward pass, reusing realistic shapes:

This prompted an instant massive WTF. I am not 100% sure my benchmark is correct (I reused Triton's tutorials'), but I couldn't find anything wrong and the output tensors matched.
Even more strangely, similar performance benefits could be observed on A100.
So, this issue will track my progress on trying to apply this in practice. Currently only doing this on my free time.
Expected behaviour
speed
To Reproduce
No response
Environment Details
No response
Relevant Log Output
No response
Additional Context
No response

Noting that I wrote this kernel to process the input tensor in a (batch, steps, channels) format.
In comparison, PyTorch kernels use a (batch, channels, steps) format. It remains a fair comparison, since there is no way around this. PyTorch has some support for NWHC, but only for Conv2D.
The performance differential might originate from this (maybe? not sure) and the existing kernels not being specialized enough? Haven't looked into PyTorch/CuDNN to understand why.

I spent a bit more time on this recently in my spare time and implemented the backward pass. It is probably not fully correct yet, especially when Dynamic Chunk Convolutions are involved (getting gradcheck failures and not quite sure how to resolve them yet).
I observed (very) significant performance gains on ROCm, especially with DCC, but a degradation on Nvidia (and an A100 definitely shouldn't be slower than my 7900XT).
I didn't try to inspect performance further, but it might have to do with the way I implemented the for loop over the kernel size that might be way suboptimal. Will have to check if trying to remove away that loop to express it as a single load and dot product would work.
I also hacked a dirty proof of concept to add it to a Conformer RNN-T model. It helped training speed a fair bit, and didn't fully break the model (although I didn't let it run nearly long enough to check if WER was correct).
Another potential candidate would be the downsampling CNN with Fast Conformer (which replaces some Conv2D by a depthwise-separable convolution), which is also super slow on ROCm, but that requires implementing stride.


Added ability to customize pause interval in polling

@miq-bot add_label enhancement
@miq-bot add_label fine/no
@miq-bot add_label global / authentication
@miq-bot add_label test
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1470357

@chalettu looks like the test coverage dropped a smidge.  Could you address (maybe just add a test)?

OH OH OH ok i have a thought related to this @chalettu should we add documentation talking about this feature? how to use it etc?  (have no idea where we might add it... but this seems useful enough to warrant a few words)


[v2] docs: fix bad reStructuredText directive

reStructuredText requires a :: (double-colon) to read something as a valid directive. Otherwise, it assumes that the text is just a comment.
Fixes: 66319cf494d7875a6ffc8653928d31ffbd07187f
Before
Changed in version 2.0.0: long filenames will lead to an error rather than being truncated isn't shown.

After
Changed in version 2.0.0: long filenames will lead to an error rather than being truncated is shown.

Sorry for the delay and thanks, merged.


Use dummy subscriptions for fdroid flavor

Task/Issue URL: https://app.asana.com/0/1205648422731273/1207600736669442/f
Description
This PR adds dummy implementation of subscriptions-api and makes the fdroid flavor of the app depend on it instead of the actual implementation. The goal is to remove dependency on Google Play Billing Library from the F-Droid builds of the app.
Steps to test this PR
Feature 1

[ ]
[ ]

No UI changes

#4683  👈
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @lmac012 and the rest of your teammates on  Graphite


Add Skeleton settings (FKSettings) to config and send/receive to/from protocol.

Based on https://github.com/SlimeVR/SlimeVR-Server/pull/210 (as I needed new GUI to work to develop this)
Needs https://github.com/SlimeVR/SolarXR-Protocol/pull/30

#210 was merged, please rebase, fix conflicts and can mark for review.

#210 was merged, please rebase, fix conflicts and can mark for review.

Still needs SolarXR PR

This was written berfore https://github.com/SlimeVR/SolarXR-Protocol/pull/31 I think, so it may require some revision

@TheButlah Will make the protocol stuff in another PR. This PR is ready to be merged.


Exposing /dev properly to the container by the Engine

Description
Udev in containers is major pain. Should have a balenaEngine feature, that exposes the devices dynamically in a container, with just udev running in the host.
The discussion went something like:
When a container is privileged, expose a copy of /dev to the container in a way that they get dynamic devices (and device names), and exposes it to the container in a way that new devices will show up, but the containers cannot create/destroy nodes (just read/write/open the nodes). This would remove most of the needs of users running udev inside the container.
From 2018/12/18 architecture call
 Front conversations

Something that might be worth looking into for ways to support this natively:
http://marc.merlins.org/perso/linux/post_2018-12-20_Accessing-USB-Devices-In-Docker-_ttyUSB0_-dev-bus-usb-_-for-fastboot_-adb_-without-using-privileged.html

[imrehg] This issue has attached support thread https://jel.ly.fish/#/support-thread~3c767d63-31d6-4a63-8681-b4325c0d62f4

This popped up again in a support thread: https://jel.ly.fish/d5b1d2f5-e166-4023-9378-94d718e5d524

We are going to implement this in the Supervisor. See https://github.com/balena-io/balena-supervisor/issues/1532

We are going to implement this in the Supervisor. See https://github.com/balena-io/balena-supervisor/issues/1532


Error: self signed certificate in certificate chain

I can run the selenium server with fresh rebooting of my Windows 7. After kill the server and start it again, i will get this error. Sometimes if I do webdriver-manager update--ignore_ssl, it may fix the problem, but most of time it doesn't fix the problem.
C:\Users\...>webdriver-manager start --ignore_ssl
events.js:163
      throw er; // Unhandled 'error' event
      ^

Error: self signed certificate in certificate chain
    at TLSSocket.<anonymous> (_tls_wrap.js:1084:38)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:188:7)
    at TLSSocket._finishInit (_tls_wrap.js:606:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:436:38)

Hi there!
Your question is better suited for StackOverflow or Gitter. Please ask a question there with the 'protractor' tag or post in the Gitter Channel to get help.
From the the getting help section of the README:

Please ask usage and debugging questions on StackOverflow (use the "protractor" tag) or in the Angular discussion group. (Please do not ask support questions here on Github.)

Thanks!


Cannot POST JSON object with content-type application/x-www-form-urlencoded

What are you trying to achieve?
The REST module provided by codecepjs uses axios. Due to the following issue :
https://github.com/axios/axios/issues/97
it is not possible to post JSON objects in the body of the request when content-type is
application/x-www-form-urlencoded
The following code should be added to the REST modules POST/PUT/DELETE implementations:
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.transformRequest = [function (data, headers) {
var str = [];
for(var p in data)
if (data.hasOwnProperty(p) && data[p]) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(data[p]));
}
return str.join("&");
}];
Codeceptjs version: 2.1.2

you are more than welcome to make a PR :)


Isort

Codecov Report

Merging #2 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master     #2   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          12     12
  Lines         187    187
=====================================
  Hits          187    187

Impacted Files
Coverage Δ

tests/conftest.py
100% <100%> (ø)
:arrow_up:

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 eddd9ae...fa6f84b. Read the comment docs.


Gradle constraints

Is there an existing issue for this?

[X] I have searched the existing issues

Feature description
I use Gradle constraints to update transitive dependencies when no available version of the direct dependency does so. It would be nice if Dependabot could automatically update transitive dependencies by adding and updating constraints, e.g. if it could have generated https://github.com/Pr0methean/OcHd-KotlinBuild/commit/e0e1d0d4e152b85d71b1f3839f66b4a4ee84b4e7 automatically.

In general, we'd like to provide better support for Java, both Gradle and Maven. It's one of our more popular ecosystems. However, there's a lot of complexity there so probably we'll need to lean more on native helpers rather than continuing to duplicate (poorly) the logic in Ruby. So so any new features in that area will be a larger lift and probably something that it'll take us a bit to get to. Also, transitive would be convenient, but the first step is making sure our support for direct deps is rock solid.


Ospp 2024/004 nuxt support

PR
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our Commit Message Guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[ ] No

Other information

@18003228289 这个PR和 #1761 是不是重复了？


Fix conflict between Tutel and top-2 gate in MoE layer

Previously, using both Tutel optimization and top-2 gating in MoE model training would fail. If we enable both Tutel and top-2, MoELayer would try to unpack top-2 gate's output at here, which would fail because top-2 gate does not produce these number of outputs.
Fix by checking the gate's type when constructing MoELayer.

Thank you for the PR @yetiansh :) It looks good to me. Alex had added tutel support so let me tag him and ask for a quick review.
@alexandremuzio - can you please review this real quick?

@yetiansh - can you please follow the guide here and update your PR? I see its failing in format checks.
https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md

Looks good to me. Thanks!

Thanks @alexandremuzio @awan-10. I've run the pre-commit and it looks like running format checking workflow needs your approval.

Hi, is this PR still active? @awan-10 @alexandremuzio

Sorry for the delay in getting back @yetiansh. I approved this PR so tests can run. Will merge it as soon as tests pass. Thank you!


all: restructure table storage

First stage of: https://github.com/metadb-project/metadb/issues/23

closed by 40a52f5cf5d03d14881cff66cac42265ca14c89b


Fixed starting/ending date

Hi,
this is my very first pull request, so be patient (and let me know if I'm doing something wrong).
I'm using your layout and it is very cool. The only downside in my case was that I need to show events in a specific interval of time but I want to show that interval even if there's no event at all (so it would be a completely empty grid). At the moment the starting and ending time to show is calculated from the starting/ending date for each event. In this way what I want to achieve is not possible.
My solution is to extend the datasource to have to more optional methods. These methods ask for a fixed starting and ending date. When these two methods are implemented, they override the normal behaviour.
I really hope I explained myself well.

Have you tested it, because it is buggy? I see that cell are overlapping, inside layout you have to filter items which should be displayed.

Are you asking if I tested the app against the project in the 'Example' dir? If so, yes I did it, and it seems to work perfectly. I'm using your layout in a project of mine (with my changes), and even there all seems to work fine. If you can explain me a bit better what's going on, I will check it later.

Okay thanks, i fixed issue with cells overlapping using filtering by date.


fix: gbk encoding file reading issus in OOD data

If you set the environment variable PYTHONUTF8=1 on Windows, editing these reads or writes isn't necessary. 🤔 Linux defaults to it out of the box.

I guess it doesn't hurt so I'll just merge it.


Missing values should have lowest priority when sorting.

As per http://docs.mongodb.org/manual/reference/method/cursor.sort/#ascending-descending-sort
sentinels.NOTHING is bigger than everything instead of smaller.

Thanks!!!


namespace toml files for testnet

We dont want to share toml files for testnet vs mainnet, we should have two copies? Or figure out the best way to handle this

#45 resolved this.


Add memory leak/safety checks using valgrind

Discussion started because of #59 and #60.
As for checks using valgrind, I have one in another of my projects: https://github.com/georust/geos/blob/master/.github/workflows/CI.yml#L95-L104

I also have some code for that https://github.com/sdroege/ebur128/blob/master/.github/workflows/ebur128.yml#L83-L85 / https://github.com/sdroege/ebur128/blob/master/capi-test/Makefile#L12-L13

Ah nice. Well whatever, as long as it's checked. :)

All the same anyway :) Just make sure that --track-origins=yes is enabled. That makes debugging things based on CI logs much easier.


Supported versions of Java?

Which versions of Java does HtmlUnit support?
I did not find any mention if it does support Java9+ and no luck building it myself so far, keep getting
java.lang.module.FindException: Unable to derive module descriptor for \xalan-2.7.2.jar

It isn't clear what exactly doesn't work but expected to from this issue.

The Package netscape inside htmlunit package will conflict with jdk.jsobject.
And will getting XXX module reading netscrape.javascrape from both htmlunit and jdk.jsobject error.
The netscape folder inside htmlunit should remove and use the jdk.jsobject version.

Well that would also require an update of the project to java 9.
I guess the easiest way to achieve functionality for java 8 and java9++ is to extract the netscape.javascript into it's own project, release it and reference it in the pom.
By that any Java9++ project with modules can exclude the reference to netscape.javascript and will no longer face issues of duplicated modules.


ReadMe hosting links are not working at the moment

Page URL
readme.md
Describe the issue
Hosting.Rust etc. links are not working. Actual link for Rust is is https://learn.microsoft.com/dotnet/aspire/community-toolkit/hosting-rust
Suggestion
I have no suggestion
Additional context
No response
Help us help you
No, just wanted to report this

@zahirtezcan-bugs thanks for your report.
Docs will be added for these links soon.

Docs have been published, so I'll go ahead and close this now.


occasional failed replication or high (~15s) cold start time

@Thulinma, here's a log where it failed on first try (timeout after ~15s) and then worked on a subsequent attempt. Can you please take a look?

Steps to repro:

ingest into lax using this command:

ffmpeg -re -f lavfi -i testsrc=size=480x320:rate=30 -f lavfi -i sine -vf drawtext="text='%{localtime\:%X}':fontsize=20:fontcolor=white:x=7:y=7" -pix_fmt yuv420p -vcodec libx264 -vb 2000k -preset ultrafast -acodec aac -f flv 'rtmp://lax-canary-catalyst-0.livepeer.fun/live/4ce7-030b-5ty3-lmbb’

Use https://hls-js.netlify.app/demo and attempt streaming from lon url:

https://lon-canary-catalyst-0.livepeer.fun/hls/video+4ce74xm3c29sx2jw/index.m3u8

Initially got a manifestLoadTimeout after a few seconds. It lines up with the following in the attached logs:

2022-08-19 11:38:43	[2022-08-19 18:38:43] MistInDTSC:video+4ce74xm3c29sx2jw (7156) MEDIUM: Track 1 resizing (reason: not enough parts): frags 60->60, keys 60->60, parts 1800->3600, pages 10->10
2022-08-19 11:38:47	[2022-08-19 18:38:47] MistController (8) MEDIUM: Local API access automatically authorized
2022-08-19 11:38:52	[2022-08-19 18:38:52] MistController (8) MEDIUM: Local API access automatically authorized
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Would select tracks: 0, 1, 2, 3, 4, 5 (6)
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Adding 6 tracks
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Would select tracks: 0, 1, 2, 3, 4, 5 (6)
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Adding 6 tracks
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: initialize
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: initialize
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: initialize
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Would select tracks: 0, 1, 2, 3, 4, 5 (6)
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Adding 6 tracks
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Client handler shutting down, exit reason: connection closed
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) INFO: Executing CONN_CLOSE trigger: http://localhost:7933/ (asynchronous)
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: Posting to http://localhost:7933/ (1/5)
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistOutHLS:video+4ce74xm3c29sx2jw (7151) MEDIUM: disconnect
2022-08-19 11:38:53	[2022-08-19 18:38:53] MistController (8) MEDIUM: UDP API: {"trigger_stat":{"ms":1,"name":"CONN_CLOSE","ok":true}}rue}}3dbc3744441af2664d40":"UA:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"}}

Subsequent attempt to playback worked and lines up here in the logs:

2022-08-19 11:39:02	[2022-08-19 18:39:02] MistOutHTTP (7167) INFO: Received request: /hls/video 4ce74xm3c29sx2jw/index.m3u8 => HLS (video+4ce74xm3c29sx2jw)
2022-08-19 11:39:02	[2022-08-19 18:39:02] MistOutHTTP (7167) MEDIUM: Switching from HTTP () to HLS (video+4ce74xm3c29sx2jw)
2022-08-19 11:39:02	[2022-08-19 18:39:02] MistOutHTTP (7167) MEDIUM: disconnect
2022-08-19 11:39:02	[2022-08-19 18:39:02] MistOutHTTP (7167) MEDIUM: Matching: <IP_ADDRESS> to <IP_ADDRESS> with 97 prefix
2022-08-19 11:39:02	[2022-08-19 18:39:02] MistOutHLS:video+4ce74xm3c29sx2jw (7167) MEDIUM: Received request: /hls/video 4ce74xm3c29sx2jw/index.m3u8 => HLS (video+4ce74xm3c29sx2jw)
2022-08-19 11:39:02	[2022-08-19 18:39:02] MistOutHLS:video+4ce74xm3c29sx2jw (7167) MEDIUM: initialize
2022-08-19 11:39:02	[2022-08-19 18:39:02] MistOutHLS:video+4ce74xm3c29sx2jw (7167) MEDIUM: Stream video+4ce74xm3c29sx2jw already active; continuing

A couple of observations after tracing through the code:

In the first attempt, Mist receives the playback request and then spews a lot of this for 5s or so:

MistInDTSC:video+4ce74xm3c29sx2jw (7156) INFO: Unhandled command: ok

Looking at input_dtsc.cpp, this would indicate there's some unknown command in the packet stream for the dtsc input stream - is that expected?

We also see a lot of this after MistOutHLS disconnects after first playback attempt - are we still processing the input dtsc stream here? Also, not quite sure what this is referring to after reviewing the code:

2022-08-19 11:38:56	[2022-08-19 18:38:56] MistInDTSC:video+4ce74xm3c29sx2jw (7156) INFO: Key duration 2000 is quite long - confirming with upstream source
2022-08-19 11:38:56	[2022-08-19 18:38:56] MistInDTSC:video+4ce74xm3c29sx2jw (7156) INFO: Key duration 2000 is quite long - confirming with upstream source
2022-08-19 11:38:56	[2022-08-19 18:38:56] MistInDTSC:video+4ce74xm3c29sx2jw (7156) INFO: Key duration 2000 is quite long - confirming with upstream source
2022-08-19 11:38:56	[2022-08-19 18:38:56] MistInDTSC:video+4ce74xm3c29sx2jw (7156) INFO: Key duration 2000 is quite long - confirming with upstream source

lon-stream-fail-then-pass.log

Looking at input_dtsc.cpp, this would indicate there's some unknown command in the packet stream for the dtsc input stream - is that expected?

Yes. The other side is simply acknowledging with "ok" that the key durations are okay (see below).

We also see a lot of this after MistOutHLS disconnects after first playback attempt - are we still processing the input dtsc stream here?

If by "processing" you mean receiving, then yes. There is no "processing" as such; data is simply added to the media buffers as it arrives. The whole point of DTSC is to remove the need for any kind of fancy processing. ^_^

Also, not quite sure what this is referring to after reviewing the code:

If there are GOPs with a duration more than twice of other GOPs, Mist becomes suspicious of stream integrity and checks with the other end if that's okay or something is wrong. If this is okay, nothing further happens. If it does not match upstream GOP durations, the stream is disconnected to clear up any possibly integrity loss.
My guess is that part of the problem is an unstable keyframe interval. Try adding -g 30 to the ffmpeg command and see if that helps?
It also would appear from the logs that the upstream Mist instance may have a fairly large DVR window ( = buffer size) configured. Try setting it to e.g. 20000 ( = 20s ) and see if that helps any?
I tried to stream using the provided keys and URLs, but was not able to see the feed. Should I do something specific to enable something somewhere?
I can also take a closer look at what's happening if I can get shell access to the two Mist nodes involved; there's tons of commands that allow inspecting stream buffer state etc.

Oh, and on a side note: why are you using a random hls.js instance to test, instead of the built-in player here? https://lon-canary-catalyst-0.livepeer.fun/video+4ce74xm3c29sx2jw.html?dev=1

I tried to stream using the provided keys and URLs, but was not able to see the feed. Should I do something specific to enable something somewhere?

This guide https://www.notion.so/livepeer/Multi-node-Catalyst-Guide-f9d11a291cfa4fdeb3f849c73f969ce0 should have the required information. If there is no playback then something is likely not working properly.

I also just observed a really long replication time to LON when streaming into NYC.
The command for streaming into NYC:
ffmpeg -re -f lavfi -i testsrc=size=480x320:rate=30 -f lavfi -i sine -vf drawtext="text='%{localtime\:%X}':fontsize=20:fontcolor=white:x=7:y=7" -pix_fmt yuv420p -vcodec libx264 -vb 2000k -preset ultrafast -acodec aac -g 30 -f flv rtmp://nyc-canary-catalyst-0.livepeer.fun/live/e54e-fhvp-cgum-rd7a

I curl'd for the playlist in LON:
curl https://lon-canary-catalyst-0.livepeer.fun/hls/video+e54elimr0jpntzm4/index.m3u8

The above command hung for quite awhile (i.e. > 15s).
Then, it failed with with:
#EXTM3U
#EXT-X-ERROR: Stream open failed
#EXT-X-ENDLIST

Then, upon trying again, a valid playlist was returned:
#EXTM3U
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:CODECS="avc1.42c015,mp4a.40.2",RESOLUTION=480x320,FRAME-RATE=30,BANDWIDTH=1251765,AVERAGE-BANDWIDTH=1059186
0_1/index.m3u8?mTrack=0&iMsn=72&sessId=804883114
#EXT-X-STREAM-INF:CODECS="avc1.4d4020,mp4a.40.2",RESOLUTION=1280x854,FRAME-RATE=30,BANDWIDTH=1004702,AVERAGE-BANDWIDTH=850133
2_1/index.m3u8?mTrack=0&iMsn=72&sessId=804883114
#EXT-X-STREAM-INF:CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=854x570,FRAME-RATE=30,BANDWIDTH=1020022,AVERAGE-BANDWIDTH=863095
3_1/index.m3u8?mTrack=0&iMsn=72&sessId=804883114
#EXT-X-STREAM-INF:CODECS="avc1.4d401e,mp4a.40.2",RESOLUTION=640x426,FRAME-RATE=30,BANDWIDTH=531534,AVERAGE-BANDWIDTH=449759
4_1/index.m3u8?mTrack=0&iMsn=72&sessId=804883114
#EXT-X-STREAM-INF:CODECS="avc1.4d4015,mp4a.40.2",RESOLUTION=426x284,FRAME-RATE=30,BANDWIDTH=274435,AVERAGE-BANDWIDTH=232214
5_1/index.m3u8?mTrack=0&iMsn=72&sessId=804883114

Hmm... That sounds like maybe the internal reconnect mechanism isn't working properly for some reason. That ~15s wait time followed by error would indicate it was unable to access the stream buffers, but the successful request right after shows that the buffers are definitely there and filled. 🤔

Doing another round of testing, currently got all successes but
lax     3.82 secs
mdw     3.21 secs
nyc     2.65 secs
sao     6.05 secs
lon   130.76 millis
fra     2.58 secs
prg     9.92 secs
sin     4.40 secs

Logs for the 9.9 second startup in PRG are visible here: https://eu-metrics-monitoring.livepeer.live/grafana/explore?orgId=1&left=["1661781435209","1661781564369","Loki",{"refId":"A","expr":"{region%3D\"prg\", namespace%3D\"canary\", container%3D\"catalyst\"} !%3D \"vmagent\" !%3D \"API access\""}]

Logs for the 9.9 second startup in PRG are visible here: https://eu-metrics-monitoring.livepeer.live/grafana/explore?orgId=1&left=["1661781435209","1661781564369","Loki",{"refId":"A","expr":"{region%3D\"prg\", namespace%3D\"canary\", container%3D\"catalyst\"} !%3D \"vmagent\" !%3D \"API access\""}]

Seeing 15s startup times in distant regions again even with the adjusted DVR setting. I'm putting together a little repeated automated test to give us some harder numbers.


Add msg_id to pylint output

Currently syntastic puts the human readable name only in the output, like this:
path/to/file.py|12 col 10| [no-member] Module 'my.module' has no 'M' member
That's fine and all, but what if I need to ignore that error inline with a pylint: disable=??? message? Right now I have to google the [no-member] thing to look up what ??? should be. I'd love to add the error code back in there somewhere.
I short, I'd like to change (or be able to customize) the msg-template argument to pylint from --msg-template="{path}:{line}:{column}:{C}: [{symbol}] {msg}" to something like --msg-template="{path}:{line}:{column}:{C}: {msg_id}[{symbol}] {msg}"

Then put the format spec in post_args:
let g:syntastic_python_pylint_post_args = '--msg-template="{path}:{line}:{column}:{C}: {msg_id}[{symbol}] {msg}"'

@lcd047 please, please put this into the documentation file. I have wasted a few hours reading the docs of pylint, syntastic and digging syntastic issues on github till I found this one.

@pitchforks Sure, done.


Allow generated proxies to be non-final

Allow generated proxies to be non-final. Sometimes I don't need final modifies for proxy methods. Is is possible ?
I saw something like Enhancer class with transformation for such modifiers.
Where could I change generated proxy methods modifiers to be non-final?
    public void generateClass(ClassVisitor v) throws Exception {
        Class sc = (superclass == null) ? Object.class : superclass;

        if (TypeUtils.isFinal(sc.getModifiers()))
            throw new IllegalArgumentException("Cannot subclass final class " + sc);
        List constructors = new ArrayList(Arrays.asList(sc.getDeclaredConstructors()));
        filterConstructors(sc, constructors);

        // Order is very important: must add superclass, then
        // its superclass chain, then each interface and
        // its superinterfaces.
        List actualMethods = new ArrayList();
        List interfaceMethods = new ArrayList();
        final Set forcePublic = new HashSet();
        getMethods(sc, interfaces, actualMethods, interfaceMethods, forcePublic);

        List methods = CollectionUtils.transform(actualMethods, new Transformer() {
            public Object transform(Object value) {
                Method method = (Method)value;
                int modifiers = Constants.ACC_FINAL
                        | (method.getModifiers()
                        & ~Constants.ACC_ABSTRACT
                        & ~Constants.ACC_NATIVE
                        & ~Constants.ACC_SYNCHRONIZED);
                if (forcePublic.contains(MethodWrapper.create(method))) {
                    modifiers = (modifiers & ~Constants.ACC_PROTECTED) | Constants.ACC_PUBLIC;
                }

                return ReflectUtils.getMethodInfo(method, modifiers);
            }
        });

Changing cglib has become rather difficult as the library was dormant and even alteration of details often causes breakage among many users.
Would you want this to proxy proxies? I am not sure if this is a good enough use case to risk this but please  elaborate so we might consider it. Generally, however, cglib is considered frozen for features.


docs(showcase): add index.app and wiza.co

Overview
Hello there :) It's me again, there is 2 more landings that I've built with Qwik and has such a FABOLOUS speed. Thank you all for giving us the chance to use it :) Good work!
https://index.app/beta

https://wiza.co

Love the work you've done so far, I am really happy using Qwik ❤

u rock @necatikcl 🎉 always a pleasure to have a look at your work! thanks for your submissions 🙏


isMouseOutsideGui should be true when gui is hidden

currently it detects open windows and says true even when the gui is hidden by 'h'

maybe an inverted function should be exposed in the main API like
boolean isMouseOverGui(){
return !isMouseOutsideGui()
}
it could be more intuitive to use


Rounding error while auto scaling dimensions

It appears as though there are rounding errors that occur in certain scenarios when auto scaling the height of images during resizing. In my specific case, calling resize(300, null) on a 165x220 JPG results in an image that's 300x399 rather than 300x400.

Hi Richard, thanks for reporting this problem. It looks like the cause is a (lack of) floating point precision.
The closest double-precision floating point value to the integer value of 400 is<PHONE_NUMBER>99999943156581139191985130310058593750, which is converted to 399 by floor.
For the auto-scaling width and height calculations, I think we may have to instead use round (I need to remember why floor was used here in the first place) or add a very small number e.g. 0.000000001 before floor. Leave it with me.

Commit b8885c1 on the knife branch switches from the use of floor to round, which improves the "safety" of converting from float to integer, but also makes the resultant dimensions more closely match users' expectations.
This will be part of the forthcoming v0.11.0 release, but you can test now using:
npm install lovell/sharp#knife

(I'd prefer to avoid a patch-release for this as it introduces a slight change to existing behaviour.)
Thanks again for reporting this - I'm amazed it has taken this long to come up.

This is now in master awaiting release.


HDR files support

Would be great to have HDR  files support.


Will this be updated further?

Will this be updated further? (pre-4 fixed only changing time of other player´s messages)

It's probably been patched

It's probably been patched

No, gaslight v2 released

yes


torchvision fail to use GPU.

While I am using detectron2, I meet the problem that some function in torchvision can't use GPU.
The details are here: https://github.com/facebookresearch/detectron2/issues/469
It seems an install problem. Directly using conda to install torchvision should be ok for most situations, but I am not sure whether this will lead to cuda usage error.
Could you give some suggestions to fix this problem?  : )

Hi,
I believe the issue is that you might have compiled torchvision on a different machine than the one that is executing the code.
One potential way of fixing it on your side would be to specify the GPU architectures that you want to compile torchvision.
From the torchvision cloned repo:
TORCH_CUDA_ARCH_LIST=6.0;6.1;7.0 python setup.py install

My recommended fix though is to use a conda installation for torchvision. You can install a nightly of pytorch and torchvision for that, which will have everything you need.
Once you re-install pytorch and torchvision, don't forget to clear the build files for detectron2 and install it again.
Let me know if you have further questions

Hi,
Actually I did use conda installation for torchvision, but not work.
Also, I tried following command, but met the same problem.
TORCH_CUDA_ARCH_LIST=6.0;6.1;7.0 python setup.py install

Is there any function to check the building cuda environment and running cuda environment of torchvision ?

I have fixed the problem, by using matching version pytorch and torchvision. Thx !

How can we locate the matching version. I have verified the installation of pytorch and torchvision using conda and still it does not seem to work

@amajee11us latest torchvision stable requires latest PyTorch stable, and latest nightly requires latest nightlies


Rönd (RBAC) integration

We would like to have Rond integrated with micro-lc, in such a way to use RBAC in place of the existing ACL filtering. Is this possible?

Transferred to middleware repository


More basemaps

GBIF process data from OSM and reproject that data into 4 projections: Mercator, Plate Caree, Antarctic and Arctic.
GBIF do not host satellite images, or terrain data. But it is possible to add such data from other vendors.
maptiler is a nice service that provides free maps as long as you use less than 100.000 requests a month (according to https://www.maptiler.com/cloud/pricing/). After that you will be blocked and the maps wont show until next month. You do not need a credit card. I suspect that is enough tiles for most sites, but I cannot say for sure.
Currently the interface look like below and once you register your code will appear at https://cloud.maptiler.com/account/keys/

See also See https://hp-theme.gbif-staging.org/data-exploration-config#map-options

Similarly you can add a mapbox key, but you need to register with mapbox to get one.  They are free up to a certain number of monthly pageviews.


trigger workflow for new version nginx-1.25.0

All tests passed. See https://github.com/chobits/ngx_http_proxy_connect_module/actions/runs/5250701673/jobs/9484921433?pr=268 for more details.


HACS

How can i install HACS?
When i try it says :
ERROR: Could not find the directory for Home Assistant
But im in the virtual enviroment. from where i start hass.
You mentioned problems with packages but how can i solve this?

thats what i tried. in both, the hass enviroment and in termux ~/... itself. both give the same error.
when i try to cd into /.suroot/.homeassistant (the only place where i could find the .homeassistant directory, its starting
but i get the eror:
mkdir: cannot create directory ‘/data/data/com.termux/files/home/.suroot/.homeassistant/custom_components’: Permission denied
im too new to termux and homeassistant to know what to do here. would be happy about additional help

thats what i tried. in both, the hass enviroment and in termux ~/... itself. both give the same error.
when i try to cd into /.suroot/.homeassistant (the only place where i could find the .homeassistant directory, its starting but i get the eror: mkdir: cannot create directory ‘/data/data/com.termux/files/home/.suroot/.homeassistant/custom_components’: Permission denied
im too new to termux and homeassistant to know what to do here. would be happy about additional help

did you start hass with "sudo hass"?
then you need to execute script with root rights
sudo bash
wget -O - https://get.hacs.xyz | bash -

thanks so much. that did the trick. but with a weird behavior. after enter the comand termux was instantly ready to receive next command  ( ~$ ). i wondered and decided to exit out of termux. and after entering "exit" it started installing.
and yeah. the readme says its better to run hass with sudo. so i did. shouldn't i do that?

thanks so much. that did the trick. but with a weird behavior. after enter the comand termux was instantly ready to receive next command ( ~$ ). i wondered and decided to exit out of termux. and after entering "exit" it started installing.
and yeah. the readme says its better to run hass with sudo. so i did. shouldn't i do that?

with root it's better to run HA core in chroot ubuntu


Inconsistent behavior of '+-' arithmetic operator on Boolean type

Describe the bug
Inconsistnecy is showed in the below queries, it's better to keep the behavior consistent (PostgreSQL reject them all during planning)
> select +true, +false;
+---------------+----------------+
| Boolean(true) | Boolean(false) |
+---------------+----------------+
| true          | false          |
+---------------+----------------+
1 row(s) fetched.
Elapsed 0.008 seconds.

> select -true;
Error during planning: Negation only supports numeric, interval and timestamp types
> select -false;
Error during planning: Negation only supports numeric, interval and timestamp types

PostgreSQL behavior:
postgres=# select +true;
ERROR:  operator does not exist: + boolean
LINE 1: select +true;
               ^
HINT:  No operator matches the given name and argument type. You might need to add an explicit type cast.
postgres=# select -true;
ERROR:  operator does not exist: - boolean
LINE 1: select -true;

To Reproduce
No response
Expected behavior
No response
Additional context
No response

I think it would be fine to have negate work for booleans (and basically be a noop as it seems in postgres)
Thank you for the report @2010YOUY01


View API lacks useful methods

ConfigView

#fetch (like Hash#fetch)
#key? (like Hash#key?)

ItemView

#fetch (like Hash#fetch)
#key? (like Hash#key?)
#parent (like Nanoc::Int::Item#parent)

MutableItemView

#update_attributes to bulk update attributes

MutableItemCollectionView

#concat to bulk add items

Other related changes:

items.create must return nil, so that it does not expose the internal entity.

Idea: AttributesView that wraps attributes.

Idea: a mixin that implements the rest of the Hash protocol, when you need objects that are like hashes.

See fix in #572.


[BUG] SpringBoot scanBasePackages does not take effect

Describe the bug
When specifying scanBasePackages, AiServicesAutoConfig cannot correctly scan AiService at the specified path.
Log and Stack trace
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [top.xiaolinz.wechat.bot.plugin.chat.GroupChatBotAiService]: Specified class is an interface
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:83)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1331)
	... 67 common frames omitted

Please complete the following information:

LangChain4j version: 0.33.0
LLM(s) used:  openai
Java version:  21
Spring Boot version (if applicable):  3.3.2

Hi @Saoforest, thanks a lot for reporting! Do you have a fix/solution in your mind already?

Hi @Saoforest, thanks a lot for reporting! Do you have a fix/solution in your mind already?

@langchain4j
Can try using theAutoConfigurationPackages utility class provided by Spring Boot. You can use the method AutoConfigurationPackages.get(BeanFactory beanFactory) to obtain the list of base packages for auto-configuration. This usually includes the package where the @SpringBootApplication annotation is located, as well as the packages specified by the scanBasePackages attribute

@Saoforest great, would you like to open a PR?

Related: https://github.com/langchain4j/langchain4j/issues/1606

Implemented in https://github.com/langchain4j/langchain4j-spring/pull/36


Upgrade dependencies

This package has some very old dependencies and hasn't been upgraded for a long time  (to the point that npm build was failing on master). This makes the following notable upgrades:

Node 8 and 10
React 16
Webpack 4
Babel 7

This is now merged into master via a different PR


Deploying Supabase on a Domain using HTTPS

Feature request
Is your feature request related to a problem? Please describe.
In some cases, it might be useful to deploy your Supabase instance on a custom domain using HTTPS instead of exposing it on a given port.
Describe the solution you'd like
One solution I can think of right now would be to set environment variables for the Nginx proxy e.g. VIRTUAL_HOST=$DOMAIN and LETSENCRYPT_HOST=$DOMAIN. This will probably only affect the supabase/studio container.
Steps to implement

Add environment variables support in Go code
Let the user configure the Docker network the containers are in (It needs to be the same network as the Nginx proxy container).

Any other solutions are also welcome.

I may be misunderstanding the feature request, but this is prob out of the scope of the CLI, which only supports local development workflows. For hosting/deploying your own Supabase instance, you can try the self-hosting guide instead.

@soedirgo, I missed that the CLI is only meant for local development. I thought it was meant as a more automated alternative for the self-hosting guide.
Do you think that an HTTPS implementation is still useful? If not, feel free to close the issue.

Sorry about that, I'll keep that in mind and make it more prominent.
I haven't found a use-case for HTTPS for local dev, but if there is we can reopen this issue.

@soedirgo the Slack OAuth requires a server listening in https, which is problematic for local development with Supabase.

I think Apple OAuth requires a https url too.

Hello. Safari browsers also require this, so without being able to the local supabase server to https, it's not possible to use Ngrok to test the site locally on a phone or tablet

I'm surprised and disappointed to find that there's no way to use HTTPS and our own certificates for local dev. This is essential when you're writing a back end for a mobile application. I can't hit my Supabase project from my iPhone, because iOS (Apple) requires HTTPS.
I also read the self-hosting docs, and so far I haven't found any mention of where to put certificates there either.

For future reference, you can enable TLS in config.toml and set callback URL to https://localhost:54321
https://github.com/supabase/cli/issues/1491#issuecomment-2278362547

Thanks. I have that option set in config.toml, but I'm not using a callback URL. Just doing regular queries under iOS using the Swift library.


Span resource name set with tag is not used

Describe the bug
Using a tag to set the resource name does not work and instead shows up as the operation name in the datadog ui. This comes from a bug in this library and even has a TODO comment to resolve it. In DDSpanContext getResourceName does not read the "resource.name" set in the tags, but it does read it when returning a value for hasResourceName. You can work around this by casting the span to DDSpan and setting the resource name using span.setResourceName() but this seems like a bug in the library.
https://github.com/DataDog/dd-sdk-android/blob/b1d6ebb82d26299faa41195747198850dcef090d/features/dd-sdk-android-trace/src/main/java/com/datadog/trace/core/DDSpanContext.java#L404
Reproduction steps
import io.opentracing.util.GlobalTracer

val spanBuilder = GlobalTracer.get().build("operation_name")
spanBuilder.withTag("resource.name", "custom resource name")
spanBuilder.start().finish()

Logcat logs
No response
Expected behavior
No response
Affected SDK versions
2.14.0
Latest working SDK version
never
Did you confirm if the latest SDK version fixes the bug?
Yes
Kotlin / Java version
No response
Gradle / AGP version
No response
Other dependencies versions
No response
Device Information
No response
Other relevant information
No response

Hi @paco-spr , thank you for taking the time to repot this. This is indeed a bug in our library and indeed you could use the workaround (span as DDSpan).setResourceName to go around this problem. We are going to open a ticket on our end to fix this in the next SDK versions. On the other hand I am wondering if you've noticed our new release of OpenTelemetry support: https://docs.datadoghq.com/tracing/trace_collection/custom_instrumentation/android/otel/?tab=kotlin. I recommend you on the long term to try to switch to this new API as this will be better maintained in the future and this bug is not there in this newer implementation.

Hi @paco-spr , thank you for taking the time to repot this. This is indeed a bug in our library and indeed you could use the workaround (span as DDSpan).setResourceName to go around this problem. We are going to open a ticket on our end to fix this in the next SDK versions. On the other hand I am wondering if you've noticed our new release of OpenTelemetry support: https://docs.datadoghq.com/tracing/trace_collection/custom_instrumentation/android/otel/?tab=kotlin. I recommend you on the long term to try to switch to this new API as this will be better maintained in the future and this bug is not there in this newer implementation.

I had not seen that. Thanks for confirming the bug and suggesting the new API we will update on our end as well.


Paste text at cursor instead of beginning of line

This fixes #11542

Looks good to me. Thanks for helping out @stanfieldr!


bump hedera-local

Description:

Related issue(s):
Fixes #
Notes for reviewer:

Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (e9f15d1) 78.10% compared to head (1865baa) 78.10%.

:exclamation: Current head 1865baa differs from pull request most recent head 940a735. Consider uploading reports for the commit 940a735 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1920   +/-   ##
=======================================
  Coverage   78.10%   78.10%
=======================================
  Files          39       39
  Lines        3060     3060
  Branches      616      616
=======================================
  Hits         2390     2390
  Misses        479      479
  Partials      191      191

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[TimesNet] supported exogenous

What happened + What you expected to happen
[TimesNet] The code below shows that TimesNet(timesnet.py) only support future exogenous.
        if self.stat_input_size > 0:
            raise Exception("TimesNet does not support static variables yet")
        if self.hist_input_size > 0:
            raise Exception("TimesNet does not support historical variables yet")

If my understanding is correct, the code below(timesnet.py) implies future exogenous is actually history exogenous
        # Parse inputs
        insample_y = insample_y.unsqueeze(-1)  # [Ws,L,1]
        if self.futr_input_size > 0:
            x_mark_enc = futr_exog[:, : self.input_size, :]
        else:
            x_mark_enc = None

And the original paper didn't state that the future features is supported.
Versions / Dependencies
None
Reproduction script
None
Issue Severity
None

Hi @WenjuanOlympus! Sorry for the late reply.
The original implementation has future exogenous covariates, is part of their DataEmbedding (https://github.com/thuml/Time-Series-Library/blob/main/layers/Embed.py#L109). They parse the exogenous covariates with a linear layer (TimeFeatureEmbedding). We have the same support in our library.
Regarding the terminology, we call future variables those with known values in the forecast horizon (the most common example is calendar features like holidays).  The future values for the historical features are not known. All models use both the past values and future values of the future variables to add more information :).

@cchallu   sorry for the late reply.
I still believe that in timesnet "future covariates" is actually "historical covariates".
Below are the reason:
Start from line 302 in timesnet.py:
        # embedding
        enc_out = self.enc_embedding(insample_y, x_mark_enc)
        enc_out = self.predict_linear(enc_out.permute(0, 2, 1)).permute(
            0, 2, 1
        )  # align temporal dimension

here
x_mark_enc = futr_exog[:, : self.input_size, :]
and in line 284
    `self.predict_linear = nn.Linear(self.input_size, self.h + self.input_size)`

This means that the 'future covariates' is truncated to input size and the linear layer maps a vector with input_size to input_size + forecast horizon. That is to say that the future of 'future covariates' is not known in this case.

@WenjuanOlympus I think you are right that in our implementation we only use the future_covariates for the input_size. However, I don't think this is necessarily problematic.


Console example failed to set large string in NVS (IDFGH-5296)

Hello,
I am trying to execute a console example that calls nvs_set command on ESP32-S2 WROVER board.
The amount of data that I am trying to store in NVS is around 2048 bytes.
But when I try to write the data, it seems that the complete chunk is not getting stored on the NVS memory.
Here is screen shot of my application logs for the same:

Now while retrieving the same data from NVS I'm able to read even lesser data than what was written.
Here is a screen shot for the receiving cycle:

Request you to suggest a proper way of writing data chunks of such large size.
Thank you..

Hi @k4keval, thanks for posting the issue!
Could you please post the log as text? This makes it much easier to search and reproduce the exact actions leading to the issue.
I strongly suggest to use blob format for large chunks of binary data. Strings have the problem that they must fit into one NVS page which is only around 4000 bytes. Even worse, if the pages are fragmented already, there must be a gap which fits the whole string. If this isn't the case, then the string won't be written. Blobs will be split into smaller chunks if the space is fragmented.
That being said, it looks a bit as if the string gets only half-written. But currently, I'm not sure whether it's an issue with NVS itself of the console component.

I just reproduced this with a simple example using the same commands:
esp32> nvs_set certificate str -v <some long text in base64>
I (818390) cmd_nvs: Value stored under key 'certificate'
esp32> nvs_get certificate str
<some truncated version of that text>

We'll take a look at this.

Hello @0xjakob!
I have a couple more observations when trying to write in blob format in svn:

If I try to write a large chunk of data as value(in single shot) in nvs_set command, some of the non-numeric characters are converted to junk characters and errors as shown below:
tools> nvs_set certificate blob -v<PHONE_NUMBER>ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234767890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234767890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABC▒EF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890▒BCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234767890ABCDEF12345678;0ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890▒BCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234767890ABCDEF1234567890ABCDEF1234567890ABCD▒F1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890▒BCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABC▒EF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234767890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCD▒F1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890▒BCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF12345678;0ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890▒BCDEF
E (7327477) cmd_nvs: Blob data must contain even number of characters
E (7327477) cmd_nvs: error while set_value_in_nvs - ESP_ERR_NVS_TYPE_MISMATCH
Command returned non-zero error code: 0x1 (ERROR)
tools>

If I write a large chunk of data as value(by gradually adding characters) in nvs_set command, some errors are still shown as below:
tools> nvs_set certificate blob -v<PHONE_NUMBER>ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF
E (7452827) cmd_nvs: Blob data must contain even number of characters
E (7452827) cmd_nvs: error while set_value_in_nvs - ESP_ERR_NVS_TYPE_MISMATCH
Command returned non-zero error code: 0x1 (ERROR)
tools>

Please share your insights for the same as well.

Hello,
Is there any other update on this particular issue?
Your support is very much appreciated.
Thank you. :-)

@k4keval Sorry for the long delay!
I had a look at setting strings. There are two issues with setting strings:

The command buffer is way too small. The default in the example is 256 bytes.
Something goes wrong when reading a large blob of characters in the nvs_set command.

The first issue can be easily fixed. Just increase the size. Of course, the ESP32 only has a quite limited amount of memory. But 6 or 8K should still not be a big issue.
We need to further investigate the second issue. We will let you know about progress until the end of this week.

@0xjakob ,
Thank you for you suggestion.
After applying the changes mentioned in point 1, I was able to write bigger chunk of data to NVS.
However the data gets corrupted while writing and the same corrupted is received while nvs_get(already know)
tools> nvs_namespace cloud
I (38228) cmd_nvs: Namespace set to 'cloud'
tools> nvs_set certificate str -v 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF12345678;0ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF12345678;0ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABC▒EF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCD▒F1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDE▒1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABC▒EF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890A▒CDEF1234567890ABCDEF1234567890ABCDEF
I (74468) cmd_nvs: Value stored under key 'certificate'
tools> nvs_get certificate str
I (110688) cmd_nvs:<PHONE_NUMBER>ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF12345678;0ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF12345678;0ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF123456790ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDEF1034567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDEF123456790ABCDEF1234567890ABCDEF1234567890ABCEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890BCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF123567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF124567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCDEF1234567890ABCDE1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ACDEF1234567890ABCDEF1234547890ABCDEF1234567890ABCD1234567890ABCDE1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ACDEF1234567890ABCDEF1234567890ACDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDE1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ACEF1234567890ABCDEF1234567890ABCDEF
tools>

Here, what I'm trying to write is<PHONE_NUMBER>ABCDEF data 128 times, i.e. 2048 characters.
The same problem is observed when I try to write the data as string or blob.
Thank you.

@0xjakob
Is there any API other than nvs_set_str() to write a string to NVS?
In a different approach, I'm trying to write to NVS with a custom program without bringing console into picture.
Since nvs_set_str() is used by the console example, I am looking for a different API that can be used by my application to write to NVS.
Please let me know if there is any other way to do it as well.
Appreciate your support for this specific issue.
Thank you.

@k4keval According to my investigation, the issue is not with the nvs_set_str() function. It rather happens during reading from console. You should still be able to write nvs data via the nvs functions with another app using an alternative approach to read the data from a source.

What is your use case, btw? Do you need to write this data only once or frequently? If you want to store a certificate, writing it to a custom partition instead of NVS might be the better approach.

@k4keval It works, even with string, if you increase the maximum command length of the console and the RX buffer size of the uart driver in the example.
I set both to 8000 and then succeeded. It took a while until the certificate had been read via the console, though. I tested with a certificate from the esp-idf repo. As already mentioned, if you want to just store a certificate, it's probably better to put it into a custom partition.

Have to correct myself: currently, our provisioning/manufacturing tools are made for NVS, not raw partitions. So it's probably better to store the certificate as string or blob.

Thank you @0xjakob for all the information.
Both kinds of used cases are to be implemented at my end. Writing data once as well as repeatedly.
I tried to increase the maximum command length of the console and the RX buffer size of the uart driver in the example.
As a result, over 4k data was written to NVS but it was getting corrupted. (perhaps because of console bug you mentioned above)
So now, I'll proceed with the nvs_set_str() function and test by avoid writing larger data over the console.

@k4keval That's great to hear! Did you have a look at the NVS partition generator utility? This tools can create nvs partition images which you can directly flash onto your device during manufacturing. We will follow up with checking whether there's an issue with the uart driver.

@0xjakob
Yes using the above mentioned utility, I created bin file from the csv and verified the behaviour of nvs_set for sting and blob data types.
Thank you for the information.


storeWithMerge is bad strategy

When we currently store a cache, then we always load the (potentially) existing current cache with the same geocode from the database, merge the old cache into the new one and store the new one.
This is generally fine and gives correct results (so we have the most recent fields and so on). But this approach takes a huge amount of time. For most of our search operations (like "near me"), the storeWithMerge() is responsible for half the runtime. So it would be good if we could implement the merge differently (e.g. by only writing the newer values into the database, avoiding loading the cache details at all).
You should also think about it from this perspective: We typically get new cache information from a (online) search, but that contains only partial cache data (e.g. only the most important fields). We then load the old cache (with all the fields), copy all those fields into the new cache, and save all the fields of the new cache into the database. That way we copy the large information chunk into the small one. And afterwards we store all fields, although only some have changed.

Is that why, on my phone, getting the list of the caches around me takes nearly 10 seconds after the data has been retrieved from gc.com? I don't remember that it was so long a few days ago.

Exactly (but it has always been that slow). I also noticed that the live map is incredibly fast compared to the nearest list (and often displays more caches!). That's why I investigated this issue and came to the above conclusion.

IMHO solved with 4060518ad84125d07ecb2d50526d9ad51a2ccf7c

Yes, verified with trace view.


Add support of HTTP Proxies

Hey! It would be nice to add a http proxy.

It's impossible, QUIC is based on UDP, HTTP proxy can't forward UDP at all.

Duplicate of #3370?

Just less than one day ago, IETF released a new RFC called Proxying UDP in HTTP, so it's possible just now, but I expect poor server support on this new feature due to it's age and complexity.
You can always use your own net.PacketConn in quic.Dial.


can i use my custom ads?

hello,
can i use Plyr ads feature with my own ads?like inject while playing video and turn off after 12s?
thank you

Only through Vi currently.

How about in 2021? How we can use custom ads?

Sarcasm aside, it was possible in what, 2019 I think? Have a search.


Simulator: cleanup in preparation for metadrive

With the goal of adding metadrive as another simulator. Mostly taken from https://github.com/commaai/openpilot/pull/27373

bridge -> run_bridge, with --simulator argument that can switch between multiple possible simulators
bridge/common.py for everything thats generic, and a SimulatorBridge base class
bridge/carla.py for everything specific to carla, and CarlaBridge class
VehicleState -> SimulatorState, which contains everything we need to give OP feedback and prevents passing a bunch of arguments to a bunch of functions
use openpilot's engaged variable and send manual gas/brake values back to OP to disengage
create simulated_car and simulated_sensors for sending all the feedback to OP

@adeebshihadeh this is all the cleanup stuff for carla, which will allow metadrive to be a drop in replacement


Reorganization/cleanup of docs

As a new OpenAPS user I spent a lot of time reading the docs, and found some of the organization confusing - e.g., classification of various reference material under "While You Wait For Gear," information split or duplicated across various setup and troubleshooting sections. Some very helpful information was hard to find on my own initially (e.g., how to actually use a profile after updating the pump) - people very graciously helped me (thanks!) but shouldn't have had to. It seems like the docs were clearly organized at one point, but have grown organically for some time to the point where that wasn't as evident to a newcomer, and were ready for a routine cleanup.
Here is a proposed reorganization; you can see it hosted at https://draft-openaps-reorg.readthedocs.io/ I have tried not to change anything substantive or remove any information in this PR, although I've added some minor clarifications in places. The main changes are:

Consolidating info about hardware (what to get, how to put it together, how to improve battery life of Pi, etc.)
Consolidating flashing instructions for Mac, Windows, & all platforms and separating out the "how to log in over serial" instructions
Separating "While You Wait For Gear" and "Customize-Iterate" headers into preparation, "how it works," "usage/maintenance", and "customization/advanced" sections for clarity in referencing later. The preparation section still includes a reading list of what pieces you should read and understand before installing/using OpenAPS, which I think will be easier to maintain than notes in pages on e.g. monitoring the rig that you don't need to understand everything yet. If there are additional particular sections it's important to read, skim, or be aware of ahead of time they can just go on the reading list.
Organizing the two autotune pages more clearly into "how it works" and "how to make it go"
Making some information about day-to-day usage more prominent ("Tips and Tricks" which was hiding in Resources had some info I'd seen asked about repeatedly; some were moved to appropriate sections and rest were made into a section in usage/maintenance)
Clarifying the overview of steps. As noted in the commit this is more like personal taste, but as a beginner I found the image at https://openaps.readthedocs.io/en/latest/docs/Understanding OpenAPS-Overview/overview-of-build-process.html very confusing and, even though some people strongly prefer pictures over text, I'm concerned this would confuse other people too. (I ran this by other people locally, but admit the people I know skew text-preferring.)

Obviously happy to make (/remove) any changes as requested, and to handle merging in existing PRs if that would be helpful, as I think I touched basically every file and will have caused merge conflicts.

This looks pretty good to me, but unfortunately work has continued and there are now many conflicts. Would you mind squashing all your commits and rebasing on master to get the updates?

Of course, will do!

Sorry for the delay! Closing this and replacing with https://github.com/openaps/docs/pull/1537 which starts from the up-to-date master branch.


athentication-refresh token access with SDK

Trying to access our Bynder instance with the python SDK.  I've tried the "getting started" and running into problems.
I've submitted a ticket 160448 and they redirected me here.

from bynder_sdk import BynderClient

bynder_client = BynderClient(
    domain=DOMAIN,
    redirect_uri='https://localhost/callback',
    client_id=CLIENTID,
    client_secret=CLIENTSECRET
)

print(bynder_client.get_authorization_url())
code = input('Code: ')
bynder_client.fetch_token(code)

asset_bank_client = bynder_client.asset_bank_client
media_list = asset_bank_client.media_list({
    'limit': 2,
    'type': 'image'
})

# ERROR
# TypeError: Missing required arguments: ['scopes']
#
# %%
bynder_client = BynderClient(
    domain=DOMAIN,
    redirect_uri='https://localhost/callback',
    client_id=CLIENTID,
    client_secret=CLIENTSECRET,
    scopes=['offline',
            'asset:read',
            'meta.assetbank:read'],
)

print(bynder_client.get_authorization_url())
code = input('Code: ')
bynder_client.fetch_token(code)

asset_bank_client = bynder_client.asset_bank_client
media_list = asset_bank_client.media_list({
    'limit': 2,
    'type': 'image'
})

# RESPONSE:
#    ('https://https://[MYDOMAIN]/v6/authentication/
#      oauth2/auth?response_type=code&client_id=[MYCLIENTID]&
#      redirect_uri=https%3A%2F%2Flocalhost%2Fcallback.&scope=offline+asset%3Aread+
#      meta.assetbank%3Aread&state=ElNUPvMv', 'ElNUPvMv')
#
# ENTERED CODE from state above...
#    Code: ElNUPvMv
#
# ConnectionError: HTTPSConnectionPool(host='https', port=443): Max retries
# exceeded with url: //[MYDOMAIN]/v6/authentication/oauth2/token
# (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001]
# getaddrinfo failed'))

Hi @tedatkc ,
In your bynder_client you are not passing the scopes parameter, which is why you get the error "Missing required arguments: ['scopes'] error.
Please have a look at our example app, https://github.com/Bynder/bynder-python-sdk/blob/088f585d9b7ff09494e283be38a9a33636e38c48/example/app.py#L40-L47
https://github.com/Bynder/bynder-python-sdk/tree/master/example

Sorry.  I wasn't very clear.  The first example from the "getting started" didn't work -- I think that warrants changes the documentation under "getting started".
A little farther down, I use the scopes argument and it still doesn't work.

# %%
bynder_client = BynderClient(
    domain=DOMAIN,
    redirect_uri='https://localhost/callback',
    client_id=CLIENTID,
    client_secret=CLIENTSECRET,
    scopes=['offline',
            'asset:read',
            'meta.assetbank:read'],
)

print(bynder_client.get_authorization_url())
code = input('Code: ')
bynder_client.fetch_token(code)

asset_bank_client = bynder_client.asset_bank_client
media_list = asset_bank_client.media_list({
    'limit': 2,
    'type': 'image'
})

# RESPONSE:
#    ('https://https://[MYDOMAIN]/v6/authentication/
#      oauth2/auth?response_type=code&client_id=[MYCLIENTID]&
#      redirect_uri=https%3A%2F%2Flocalhost%2Fcallback.&scope=offline+asset%3Aread+
#      meta.assetbank%3Aread&state=ElNUPvMv', 'ElNUPvMv')
#
# ENTERED CODE from state above...
#    Code: ElNUPvMv
#
# ConnectionError: HTTPSConnectionPool(host='https', port=443): Max retries
# exceeded with url: //[MYDOMAIN]/v6/authentication/oauth2/token
# (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001]
# getaddrinfo failed'))

Since issue is closed, I don’t know if this will be seen, but including here, too:
Sorry. I wasn't very clear. The first example from the "getting started" didn't work -- I think that warrants changes the documentation under "getting started".
A little farther down, I use the scopes argument and it still doesn't work.
%%
bynder_client = BynderClient(
domain=DOMAIN,
redirect_uri='https://localhost/callback',
client_id=CLIENTID,
client_secret=CLIENTSECRET,
scopes=['offline',
'asset:read',
'meta.assetbank:read'],
)
print(bynder_client.get_authorization_url())
code = input('Code: ')
bynder_client.fetch_token(code)
asset_bank_client = bynder_client.asset_bank_client
media_list = asset_bank_client.media_list({
'limit': 2,
'type': 'image'
})
RESPONSE:
('https://https://[MYDOMAIN]/v6/authentication/
oauth2/auth?response_type=code&client_id=[MYCLIENTID]&
redirect_uri=https%3A%2F%2Flocalhost%2Fcallback.&scope=offline+asset%3Aread+
meta.assetbank%3Aread&state=ElNUPvMv', 'ElNUPvMv')

ENTERED CODE from state above...
Code: ElNUPvMv

ConnectionError: HTTPSConnectionPool(host='https', port=443): Max retries
exceeded with url: //[MYDOMAIN]/v6/authentication/oauth2/token
(Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001]
getaddrinfo failed'))
From: Tim Bloembergen @.>
Sent: Monday, December 5, 2022 1:59 AM
To: Bynder/bynder-python-sdk @.>
Cc: Tower, Ted @.>; Mention @.>
Subject: Re: [Bynder/bynder-python-sdk] athentication-refresh token access with SDK (Issue #31)
CAUTION: This email originated from outside the organization.
Hi @tedatkchttps://urldefense.com/v3/__https:/github.com/tedatkc__;!!O6qgkg!26_pLlOwp0riloZ8m34rl_JXeHG93jyKtNb2NQwncwgrZDCjg405z2DGBLUNu7COuJLCE87hgLilG0tQQiIFf6I$ ,
In your bynder_client you are not passing the scopes parameter, which is why you get the error "Missing required arguments: ['scopes'] error.
Please have a look at our example app, https://github.com/Bynder/bynder-python-sdk/blob/088f585d9b7ff09494e283be38a9a33636e38c48/example/app.py#L40-L47https://urldefense.com/v3/__https:/github.com/Bynder/bynder-python-sdk/blob/088f585d9b7ff09494e283be38a9a33636e38c48/example/app.py*L40-L47__;Iw!!O6qgkg!26_pLlOwp0riloZ8m34rl_JXeHG93jyKtNb2NQwncwgrZDCjg405z2DGBLUNu7COuJLCE87hgLilG0tQmtPm3JM$
https://github.com/Bynder/bynder-python-sdk/tree/master/examplehttps://urldefense.com/v3/__https:/github.com/Bynder/bynder-python-sdk/tree/master/example__;!!O6qgkg!26_pLlOwp0riloZ8m34rl_JXeHG93jyKtNb2NQwncwgrZDCjg405z2DGBLUNu7COuJLCE87hgLilG0tQB7_tsEw$
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/Bynder/bynder-python-sdk/issues/31*issuecomment-1336908316__;Iw!!O6qgkg!26_pLlOwp0riloZ8m34rl_JXeHG93jyKtNb2NQwncwgrZDCjg405z2DGBLUNu7COuJLCE87hgLilG0tQLHybWlE$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/A4P6KPD4S7YNRVXOXU6HBK3WLWOFVANCNFSM6AAAAAASSLCYB4__;!!O6qgkg!26_pLlOwp0riloZ8m34rl_JXeHG93jyKtNb2NQwncwgrZDCjg405z2DGBLUNu7COuJLCE87hgLilG0tQWKeD2b4$.
You are receiving this because you were mentioned.Message ID: @.***>
K-C Internal Only


Doubts regarding the variables used in the implementation

Hi,

Can you please tell what does dimension represents here ? Is it the number of directions in which each species can wander ?

Also, what does fitness represent ?

Thank you!

I just got to know that this program is an application/use-case of bat algorithm. Closing the issue.


Incorrect reporting of some errors

For each of the following two cases, an error is incorrectly reported as
Parsing error: mismatched input 'sub' expecting <EOF>

sub with non-void return

sub dostuff() as Object
end sub

print followed with elements separated by comma

sub dostuff()
  print "Restarting app", appStoreID
end sub

Looks like these can only be reproduced when they preceded by a valid sub declaration.
sub dummy()
end sub

sub dostuff() as Object
end sub

#107 should be addressing this issue. It looks like the problem was the parser bailed out early whenever it tried to complete parsing the following sub block.


Comet, Comet on the Wall: Fix comets sent down via AJAX from within a comet

This fixes a few issues:

We centralize comet command generation into S.jsToAppend.
We fix when we look up S.jsToAppend during AJAX processing in comet contexts so we don't miss anything that might be added during the actual AJAX function execution.
We make sure not to trigger a second comet request when setting up new comets client-side from within a comet response.

Fixes issue #1645 .

K, fixed the one style thing I wanted to fix before this went in. Going to send it in tomorrow (hopefully heh) if nothing else comes up.

Lighting this green.


Failed to resolve Firebase libraries (perf-ktx, analytics-ktx, crashlytics-ndk)

Hi,
I was trying to use refreshVersions with these firebase libraries:
com.google.firebase:firebase-perf-ktx
com.google.firebase:firebase-crashlytics-ndk
com.google.firebase:firebase-analytics-ktx
I can see that all of those are generated in 0.23.0, but when I try to build my app I got the following error message:
Failed to resolve: com.google.firebase:firebase-perf-ktx:
Failed to resolve: com.google.firebase:firebase-crashlytics-ndk:
Failed to resolve: com.google.firebase:firebase-analytics-ktx:

If I'm using hardcoded strings, it works fine. Can you help with this?

Hello, you need to add a dependency to the BoM:
implementation(platform(Firebase.bom))`

@Endi327 Can you try adding implementation(platform(Firebase.bom)) before all your other firebase SDKs and change the BoM version to one that suits your needs? Note that in this case, you wouldn't need versions for the SDKs that use the BoM.

The (bad) alternative is to suffix .withVersionPlaceholder() to all the Firebase.whatever` usages, this risks having version mismatches, and makes upgrading harder, so using BoM is best.

Hello, you need to add a dependency to the BoM:
implementation(platform(Firebase.bom))

Thanks that solved the issue!