Did Dreo API block this?

Describe Your Problem:
I manage the HomeAssistant HACS integration and noticed today that logins started to fail. Wonder if you see the same thing and if you're able to get a new trace from the app to see what they may have changed?
Logs:

Ok, something seems up with the US endpoint.  I can login with the EU endpoint, but not US.  Oddly the iOS app still works, so wondering if they changed endpoint recently?

Just checked and I'm getting the same thing with the homebridge plugin. I'll get some newer logs from the app when I'm back in town tomorrow.

Thanks.  I never did take the time to get Android Studio & Frida setup, else I'd have a look.

I think I got Frida working and all.  App looks to be continually banging on the API and getting 403s back.

@zyonse  - Looks like the URL changed to "website-api" and they have some new required headers:
"ua": "dreo/2.5.12 (sdk_gphone64_x86_64;android 14;Scale/2.75)",
It's also not returning the region code like it used it.

You can find me on discord at @JeffStei.
I'm still struggling to get the app working right on the emulator. If you get it working, would love to understand the steps to see what I missed.

Thank you for working on this, @JeffSteinbok... much appreciated.

Hi, just adding that I as well have the same issue now with a Dreo tower fan and I get:
[1/8/2024, 12:34:54 AM] [Dreo Platform] error retrieving token: AxiosError: Request failed with status code 403
at settle (/usr/lib/node_modules/homebridge-dreo/node_modules/axios/lib/core/settle.js:19:12)
at IncomingMessage.handleStreamEnd (/usr/lib/node_modules/homebridge-dreo/node_modules/axios/lib/adapters/http.js:585:11)
at IncomingMessage.emit (node:events:526:35)
at endReadableNT (node:internal/streams/readable:1589:12)
at processTicksAndRejections (node:internal/process/task_queues:82:21) {
code: 'ERR_BAD_REQUEST',
... .... ....
... .... ....
[1/8/2024, 12:34:54 AM] [Dreo Platform] Authentication error: Server returned invalid access_token
[1/8/2024, 12:34:54 AM] [Dreo Platform] Make sure your email/password are correct
Many thanks for all your efforts on this great plugin!

I'm trying to get it all to work on the Android emulator, but so far, just get this loop of requests.  Hopefully @zyonse can get it working so we can get a trace.

Thank you for working on this, @JeffSteinbok... much appreciated. I tried website-api-us.dreo-cloud.com with the new user agent, but no luck - still getting 403.
I can authenticate against the EU endpoint, but then I can't manage / get status of my US device.

Same.

Same problem, except I can't even authenticate against the EU endpoint. I've been trying to use the website login to debug this, but haven't made any progress here either. It looks like there are a number of potential US-base hostnames that can be used - app-api-us.dreo-cloud.com, website-api-us.dreo-cloud.com . None of them seem to have any different behaviors.
Using chrome debugger, the JSON payload has a different client ID, client secret and himei, but otherwise is essentially the same.
Here's an example payload with my credentials redacted
{   "client_id": "6c2bfbdd497f4addbb77449edd3d73ec",   "client_secret": "460df321de794ea08110cb3ed32c7452",   "grant_type": "email-password",   "scope": "all",   "email": "REDACTED",   "password": "REDACTED",   "encrypt": "ciphertext",   "himei": "4fe6a6e9d2968d7220f9708159cc93ba" }

Same problem, except I can't even authenticate against the EU endpoint. I've been trying to use the website login to debug this, but haven't made any progress here either. It looks like there are a number of potential US-base hostnames that can be used - app-api-us.dreo-cloud.com, website-api-us.dreo-cloud.com . None of them seem to have any different behaviors.
Using chrome debugger, the JSON payload has a different client ID, client secret and himei, but otherwise is essentially the same.
Here's an example payload with my credentials redacted
{ "client_id": "", "client_secret": "", "grant_type": "email-password", "scope": "all", "email": "REDACTED", "password": "REDACTED", "encrypt": "ciphertext", "himei": "" }

you're gonna wanna change your password asap now.

There's a web login?  Got a link?

Same problem, except I can't even authenticate against the EU endpoint. I've been trying to use the website login to debug this, but haven't made any progress here either. It looks like there are a number of potential US-base hostnames that can be used - app-api-us.dreo-cloud.com, website-api-us.dreo-cloud.com . None of them seem to have any different behaviors.
Using chrome debugger, the JSON payload has a different client ID, client secret and himei, but otherwise is essentially the same.
Here's an example payload with my credentials redacted
{ "client_id": "", "client_secret": "", "grant_type": "email-password", "scope": "all", "email": "REDACTED", "password": "REDACTED", "encrypt": "ciphertext", "himei": "" }

you're gonna wanna change your password asap now.

I redacted it before posting and replaced it with the word "REDACTED"

There's a web login? Got a link?

Go to https://www.dreo.com and click on the little person icon on the top right, or try click on https://dreo.com/account/home

I tried to poke the iOS app network traffic via Charles SSL proxy - the app-api-us.dreo-cloud.com connection is rejected with SSL handshake with client failed - Remote host terminated the handshake and the app fails to authenticate / retrieve any information.  :(
SSL proxy settings seem correct as it is able to decode other https requests (like www.dreo-cloud.com)

Unfortunately the app uses Cert Pinning so this doesn't work.

Right... just came to that conclusion

Pretty sure I just figured out what was wrong, the 'ua' string in the request header needed to be changed. Will push an update shortly.

Should be fixed in v3.2.3, please test it out and let me know.

I'm not using homebridge, so I can't test.
But I updated the ua in my local environment and it seems to work.

@zyonse I just updated and it's working great here now. Thanks for the quick fix!

@zyonse Wanted to confirm that it is working again and really appreciate your quick fix!

@JeffSteinbok I'll also confirm it's working in HAOS again - thank you!

If you have the time, would you mind sharing some insights about how you managed to troubleshoot this?

@edabe The Dreo app also stopped connecting in the Android Studio emulator, so I figured they must have implemented some sort of server-side block. In the network requests we use, the most obvious difference between Homebridge/Emulator users and a normal app user is that 'ua' (AKA user agent) string.

Thank you @zyonse
Also, thank you for pointing this out in the README: https://github.com/JeffSteinbok/hass-dreo/blob/main/contributing.md
It is helping me understand how to trace the network requests from the app and circumvent the SSL cert pinning


Search changes

Higlight the matching search text in document.
Show version and folder with search result.

Travis failed.


Consider cutting a release that builds with Rust 1.80

Describe your use case
We’re currently bumping the Rust compiler to 1.80 in Nixpkgs and dealing with the fallout of its backwards‐incompatible change. This means that our cargo-semver-checks package is about to break. (Ironic, isn’t it?)
Describe the solution you'd like
The current Git HEAD builds fine, so it would be great to get a new release tag for distributions and cargo install to use.
Alternatives, if applicable
No response
Additional Context
No response

Interesting, thanks for bringing this up. I'm currently on vacation, but
I'll look to cut a new release ASAP.
On Tue, Aug 13, 2024, 3:32 PM Emily @.***> wrote:

Describe your use case
We’re currently bumping the Rust compiler to 1.80 in Nixpkgs and dealing
with the fallout https://github.com/NixOS/nixpkgs/issues/332957 of its
backwards‐incompatible change
https://github.com/rust-lang/rust/issues/127343. This means that our
cargo-semver-checks package is about to break. (Ironic, isn’t it?)
Describe the solution you'd like
The current Git HEAD builds fine, so it would be great to get a new
release tag for distributions and cargo install to use.
Alternatives, if applicable
No response
Additional Context
No response
—
Reply to this email directly, view it on GitHub
https://github.com/obi1kenobi/cargo-semver-checks/issues/851, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAR5MSSA2C5OBSAMI6275Y3ZRJNNNAVCNFSM6AAAAABMO5JQCOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ3DIMBXGA3DMNI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Sorry for interrupting your holiday! If you think the current Git HEAD is in an acceptable state to package now in the interim, that also works for us. (It’ll be a few days before the Rust update hits our rolling release channel, anyway.)

The new release has finished building! https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.34.0


added weeks as shortcut for Int extensions

I added weeks to to the Int extension. Hope you like it.

:+1:


Get value of unselect element

Steps to reproduce the issue
1.get the value of the element which is unselected from the selectbox
I have this Code. But it only return the remaining items value. How can I get value of the unselected item
$('.city_tag').on("select2:unselect", function(e) {            var unselected_value = $('.city_tag').val();           alert(unselected_value); });

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.


[SPARK-27359] [OPTIMIZER] [SQL] Rewrite ArraysOverlap Join

What changes were proposed in this pull request?
An  optimization for joins on a condition of arrays_overlap. I believe this worthwhile to integrate into Spark due to the recent release of several new array functions in Spark 2.4. This optimization will allow
users to make better use of the arrays overlap function. The technique proposed in the patch can also be trivially extended to joins with a condition involving array_contains.
The following code will produce a cartesian product in the physical plans.
import spark.implicits._
import org.apache.spark.sql.functions._

val a = Seq((Seq(1, 2, 3), "one")).toDF("num", "name")
val b = Seq((Seq(1, 5), "two")).toDF("num", "name")
val j = a.join(b, arrays_overlap(b("num"), a("num")))
j.explain(true)

== Parsed Logical Plan ==
Join Inner, arrays_overlap(num#158, num#149)
:- Project [_1#146 AS num#149, _2#147 AS name#150]
:  +- LocalRelation [_1#146, _2#147]
+- Project [_1#155 AS num#158, _2#156 AS name#159]
   +- LocalRelation [_1#155, _2#156]

== Analyzed Logical Plan ==
num: array<int>, name: string, num: array<int>, name: string
Join Inner, arrays_overlap(num#158, num#149)
:- Project [_1#146 AS num#149, _2#147 AS name#150]
:  +- LocalRelation [_1#146, _2#147]
+- Project [_1#155 AS num#158, _2#156 AS name#159]
   +- LocalRelation [_1#155, _2#156]

== Optimized Logical Plan ==
Join Inner, arrays_overlap(num#158, num#149)
:- LocalRelation [num#149, name#150]
+- LocalRelation [num#158, name#159]

== Physical Plan ==
CartesianProduct arrays_overlap(num#158, num#149)
:- LocalTableScan [num#149, name#150]
+- LocalTableScan [num#158, name#159]

This is unacceptable for joins on large datasets.
The query can be written into an equivalent equijoin by:

exploding the arrays
joining on the exploded columns
dropping the exploded columns on the joined data
removing duplicates from the result of 3)

Doing so will bring a query that might otherwise never complete, down to a reasonable time.
== Parsed Logical Plan ==
Join Inner, arrays_overlap(num#158, num#149)
:- Project [_1#146 AS num#149, _2#147 AS name#150]
:  +- LocalRelation [_1#146, _2#147]
+- Project [_1#155 AS num#158, _2#156 AS name#159]
   +- LocalRelation [_1#155, _2#156]

== Analyzed Logical Plan ==
num: array<int>, name: string, num: array<int>, name: string
Join Inner, arrays_overlap(num#158, num#149)
:- Project [_1#146 AS num#149, _2#147 AS name#150]
:  +- LocalRelation [_1#146, _2#147]
+- Project [_1#155 AS num#158, _2#156 AS name#159]
   +- LocalRelation [_1#155, _2#156]

== Optimized Logical Plan ==
Aggregate [1], [first(num#149, false) AS num#149, first(name#150, false) AS name#150, first(num#158, false) AS num#158, first(name#159, false) AS name#159]
+- Project [num#149, name#150, num#158, name#159]
   +- Join Inner, (explode_larr#178 = explode_rarr#180)
      :- Project [num#149, name#150, explode_larr#178]
      :  +- Generate explode(num#149), false, [explode_larr#178]
      :     +- LocalRelation [num#149, name#150]
      +- Project [num#158, name#159, explode_rarr#180]
         +- Generate explode(num#158), false, [explode_rarr#180]
            +- LocalRelation [num#158, name#159]

== Physical Plan ==
SortAggregate(key=[1#185], functions=[finalmerge_first(merge first#188, valueSet#189) AS first(num#149)()#181, finalmerge_first(merge first#192, valueSet#193) AS first(name#150)()#182, finalmerge_first(merge first#196, valueSet#197) AS first(num#158)()#183, finalmerge_first(merge first#200, valueSet#201) AS first(name#159)()#184], output=[num#149, name#150, num#158, name#159])
+- Sort [1#185 ASC NULLS FIRST], false, 0
   +- Exchange hashpartitioning(1#185, 200)
      +- SortAggregate(key=[1 AS 1#185], functions=[partial_first(num#149, false) AS (first#188, valueSet#189), partial_first(name#150, false) AS (first#192, valueSet#193), partial_first(num#158, false) AS (first#196, valueSet#197), partial_first(name#159, false) AS (first#200, valueSet#201)], output=[1#185, first#188, valueSet#189, first#192, valueSet#193, first#196, valueSet#197, first#200, valueSet#201])
         +- *(3) Sort [1 AS 1#185 ASC NULLS FIRST], false, 0
            +- *(3) Project [num#149, name#150, num#158, name#159]
               +- *(3) SortMergeJoin [explode_larr#178], [explode_rarr#180], Inner
                  :- Sort [explode_larr#178 ASC NULLS FIRST], false, 0
                  :  +- Exchange hashpartitioning(explode_larr#178, 200)
                  :     +- *(1) Project [num#149, name#150, explode_larr#178]
                  :        +- *(1) Generate explode(num#149), [num#149, name#150], false, [explode_larr#178]
                  :           +- LocalTableScan [num#149, name#150]
                  +- Sort [explode_rarr#180 ASC NULLS FIRST], false, 0
                     +- Exchange hashpartitioning(explode_rarr#180, 200)
                        +- *(2) Project [num#158, name#159, explode_rarr#180]
                           +- *(2) Generate explode(num#158), [num#158, name#159], false, [explode_rarr#180]
                              +- LocalTableScan [num#158, name#159]

How was this patch tested?
This patch has only been tested via manual tests on a large dataset.
I've used the technique implemented by this patch to perform similar joins with ~300 million records on either side of the join. If you agree that this is a worthwhile optimization, I'll happily contribute some unit tests to ensure the robustness of the optimization.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Btw, the PR title is empty, currently. Could you write a proper title for this work?

@viirya
Oops, thanks for pointing out the missing title! :)
I’ve only used this when the size of the arrays is several orders of magnitude less than the number of records on the largest side of the join. I don’t have any benchmarks to back this up yet (I’ll do some experiments and post the result here).
An assumption is that the number of items in the largest array is several orders of magnitude less than the number of records on either side of the join. This feels similar to how the replication factor used to optimize skew joins is also small.

Re: benchmarks. This is only anecdotal, but I’ve used this technique at work to bring a join that ran for a day without making progress down to only a few hours. As part of the experiments I mentioned above, I’ll try to make some dummy data that was similar to that use case.

Merged build finished. Test PASSed.

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


[FLINK-13553][tests] Fix ByteBuf leak in KvStateServerHandlerTest

What is the purpose of the change
This fixes ByteBuf leaks in KvStateServerHandlerTest.
Brief change log

See commits

Verifying this change
This change is already covered by existing tests, such as KvStateServerHandlerTest.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

I don't see a benefit in doing this. We are not doing it in Flink
https://github.com/apache/flink/blob/067c044cca59f87110f14e021a8fd04d58d0abd6/flink-runtime/src/test/java/org/apache/flink/runtime/io/network/buffer/AbstractByteBufTest.java#L137-L140
and it's also not done in the Netty project:
https://github.com/netty/netty/blob/b5230c7b9c38e4c1e3a611c6ce1e057252b98ed6/codec-http/src/test/java/io/netty/handler/codec/http/websocketx/WebSocket08EncoderDecoderTest.java#L101

But I noticed the description of FLINK-13553 for TimeoutException, so i am curious that the memory leak would cause the timeout issue?

I don't know if this patch will fix all problems of FLINK-13553. However, one of the problems now is that we may not be able to allocate a new buffer to serialize the response:
https://github.com/apache/flink/blob/0619a5b3e000855f00d11e71ae2f1b9deef05c98/flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/AbstractServerHandler.java#L248
If that happens the error is swallowed in AbstractServerHandler, and the test code will wait in vain for the response until a timeout is reached:
https://github.com/apache/flink/blob/0619a5b3e000855f00d11e71ae2f1b9deef05c98/flink-queryable-state/flink-queryable-state-runtime/src/test/java/org/apache/flink/queryablestate/network/KvStateServerHandlerTest.java#L720
I'll create a new ticket and leave FLINK-13553 open for now.

Thanks for the clarification. As I guess correctly, there are no limitations inside netty allocator to request memory unless direct OOM. That means even thought some requested ByteBuf leak, it would block any following allocation requests.
Also the netty stack has some mechanism to check whether the requested ByteBuf is leaked. There is a similar case in https://issues.apache.org/jira/browse/FLINK-16582.
I agree to launch a separate ticket for this leak fix. I have no other concerns now. LGTM!


Time dependent rate

This PR implements:

Time dependent energy spectra for WIMPs.
Dynamically setting new datasets for sources via set_data

Time dependent energy spectra
The class WIMPSource is added which is derived from NRSource. The WIMP source uses the rate_wimp_std from the wimprates package to compute energy spectra for given WIMP settings (including WIMP mass, cross section and also time of detection).
WIMP settings can be set through class attributes or passed to init as wimp_kwargs dict.
The energy spectra are then used in simulation and data. Instead of calling wimprates for each event the energy spectra are interpolated in a given time range (the time range and number of reference values for the interpolation are class attributes).
Additionally the SR0WIMPSource(SR0Source, fd.WIMPSource) class can be used for SR0 settings (although the time range for WIMP interpolation is set larger then SR0 so that we can test on calibration data).
Since the energy spectra are precomputed and interpolated for performance reasons, the energy_spectra method is now a function of i_batch instead of time. In this way the energy spectra for a batch by looking up the relevant precomputed spectra.
When simulating events the energy time correlation is taken into account by drawing randomly from a 2D energy time histogram instead of each observable separately.
Source data via set_data
Instead of constructing a new Source object, the data a Source holds can be set via set_data. batch_size cannot be changed, but event padding is applied and Tensor caches are automatically rebuilt.

I've also added set_data to LogLikelihood. You can pass it the data in the same way as it's passed to the initializer. For likelihoods with multiple datasets you can also pass a subset to set_data to only update those datasets.
I've haven't changed anything to the initializer itself, so constructing LogLikelihood always requires data (contrary to Source which can be initialized without data for annotation and simulation purposes). @JelleAalbers Do you think we should support data=None for LogLikelihood as well?


Send secrets to OCI Vault

Create a new OCI Vault or update an existing with secrets

This is done.


: No such file or directory

On Ubuntu 14.10 and possibly other versions : No such file or directory is thrown when invoking nexe -i whatever.js
Reproduce:
hw.js

console.log("Hello, world!");

Then invoke nexe -i ./hw.js and the error will occur.
This effects version 0.3.6 but doesn't occur in 0.3.4
Bug does NOT affect using NEXE via js

Running nexe like: /usr/bin/env node /usr/local/bin/nexe seems to work for some reason.

Running dos2unix /usr/local/lib/node_modules/bin/nexe fixes the problem


Number of user in user_info much bigger than users in task datasets?

Hello,
We have seen that user_info has 1679011 users (at least it has 1679012 rows), but the users in the dev and test datasets are much less than this, is there any reason for this discrepancy?
Thanks

Hi Stefano,
The obvious reason is that we were not able to annotate the whole collected
dataset (more than 300 k posts). But in order to discover potential
features related to user's properties and properties for linked user, we
have included all the discovered users as well as the whole graph of
connections between users. So, you can ignore users that are not directly
linked to the tweets or use then in more complex graph analysis.
On Thu, 29 Sept 2022 at 14:45, Stefano Bocconi @.***>
wrote:

Hello,
We have seen that user_info has 1679011 users (at least it has 1679012
rows), but the users in the dev and test datasets are much less than this,
is there any reason for this discrepancy?
Thanks
—
Reply to this email directly, view it on GitHub
https://github.com/konstapo/2022-Fake-News-MediaEval-Task/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AD3Q4VVUNJGXFZJKGNXGNPDWAWFPDANCNFSM6AAAAAAQYXRZ6E
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Kind Regards / Mvh,
Konstantin Pogorelov


All bundles are parsed not only the listed ones

I'm getting the following error when trying to dump in production mode.
Twig_Error_Syntax: Unknown "profiler_dump" function in "..../symfony/symfony/src/Symfony/BundleSecurityBundle/Resources/views/Collector/security.html.twig" at line 100

This indicates, that even though I have listed the bundles that are supposed to be parsed all bundles are still processed.

By default, all errors are suppressed in dev environment and in others all "unknowns" are suppressed - this should be the case for your current error.
Furthermore, I've added separate test-case - it seems that bundle configuration is working fine.
Currently I'm unable to reproduce the issue.
What version of this bundle are you using? Have you configured twig.suppress_errors? What's the value of asset_providers?

This is not run in dev environment but in a production one. console maba:webpack:compile is run as a part of a "dist" build.
The version I'm running is 0.5.2.  I haven't configured neither twig.suppress_errors nor  asset_providers, so they have default values.

The issue is that aliases configuration key is only for aliases. If you want to exclude some resources where assets can be found, asset_providers is the configuration you want. So, in your case, you should use this configuration:
maba_webpack:
    config:
        parameters:
            extract_css: true       # css should be in link tags and not loaded by js
    asset_providers:
        -
            type:     twig_bundles
            resource:                         # here comes analysed bundles
                - AppDefaultBundle
                - AccountBundle
        -    # this is needed if you still need app folder - providing `asset_providers` overrides default values
            type:     twig_directory
            resource: %kernel.root_dir%/Resources/views

Can this be made clearer in documentation?
Should aliases.register_bundles be removed, as it's usually just fine providing all aliases?
Of course, configuration could just include enabled bundles (for all use-cases, like asset providers and aliases) - this would be a lot clearer, but would probably need backwards incompatible changes or even more confusion.

Bundle configuration was refactored - now it includes single enabled_bundles node for both aliases and twig templates, this should make things clearer.


[AI Flow] update_dataset should send an event to trigger the job defined by action_on_dataset_event

Describe the feature

update_dataset should send an event to tigger the job defined by action_on_dataset_event

@syntomic , thanks for the bug reportor of the action_on_dataset_event. This interace has temporarily removed in 0.2.2 version. In future, this interface could provide the users when register_dataset and update_dataset supports to send the event about the dataset.


Create test case for backwards compatibility with iMOD 5

In GitLab by @JoerivanEngelen on May 15, 2023, 17:35
Create test case to test developments against. Probably good to use a clipped and converted IBRAHYM model for this.

In GitLab by @JoerivanEngelen on May 25, 2023, 15:56
Frans sent me two models to test against.
These probably have to be cleaned up a bit to get a functional test case. For example, the .prj file contains absolute paths, which need to be replaced.
c01_Model01.zip
c02_Ibrahym_01.zip

In GitLab by @JoerivanEngelen on Jun 29, 2023, 13:10
added #450 as child task

In GitLab by @JoerivanEngelen on Jun 29, 2023, 13:12
added #451 as child task

In GitLab by @JoerivanEngelen on Jul 6, 2023, 09:17
added #454 as child task

In GitLab by @JoerivanEngelen on Jun 30, 2023, 16:08
added #453 as child task


Sharing Sketches

Sharing
Allow users to share sketches by just dumping them to Gist or similar. Allow other users to import these sketches into their own sketch: import gist/123456. The imported sketch could consist of fully fleshed out visuals, or it could just define functions (#211) (like grid) with macros, so the user now has access to these extras.
Other thoughs:

Curation: there could be a list of curated "standard" functions that are included in some dropdown from the LCL menu. This would also be a place to define aliases, e.g. import grid --> import gist/123456.
ifmain: the imported sketches might need a way of knowing whether they are viewed as a standalone sketch or imported. If the sketch is viewed by itself, it could include examples of the function that was defined.

Sharing sketches could just be a simple save and load feature, you could save your own sketches and choose to make them public which we could send to reddit or here to github, as all you need to do is copy and paste the code that you have written as a text file, people could download them as a file that can be opened directly by livecodelab, then open them at any time they want to using the load feature that I was talking about.

I'd say let's keep it simple as first step: click share button - the code is saved in the URL and the URL is minified. That's it. Wanna share it? Share it. Wanna save it? Bookmark it. That's how Mr Doob does it here: http://mrdoob.com/#/146/html_editor

yes, but where do the codes that are shared go? To a server most likely, but we want to do something else, so I'm saying that sharing it would post it to reddit and it would show up in a "shared" tab in livecodelab, what I'm saying basically is that we use an existing share website (with the ability to show symbols and indents) as a place to put the code without having to use a server.

yeah yeah I'm cool with "fully fledged" server-heavy sharing - I made myself already a fully working system here https://github.com/davidedc/sketchPatch , which also saves thumbnails, has comments, manages permissions, "forks" sketches, tags, shows by author, etc.
I'm just saying what the first step is to make the simplest URL-encoded sharing.
Waiting on big releases doesn't make too much sense, I suggest we ship well-made and robust small stuff first, and then we iterate...

How about just overloading the URL?
It would be cumbersome for larger sketches, but it could also mean that “run” links could be added to the screenshots on the site without having to have any server-side code.
Even the safest limit is 2000 characters which is a decent amount of code.


 Hotfixed by replacing with ', but I'm gonna have to write some tests for it or do some validation on submission.

Made a new issue for submission validation: #123

Also the ö character broke joke #199

Turns out, the real issue was setting the response header Content-Length in the httpServer.pipeString() function to the length of characters instead of the number of octets (bytes) of the string.


Create binary_search.cpp

please review it!!

your code has some errors please rectify it @Mayankjha997

sorry @ankitapuri  it was my mistake , but now bug has been resolved. please check and review it.


Update Discord invitation link please.

Currently the join link is, "invalid."

Based on the server settings and the link used in the readme file, the Discord join link is still active:

What error are you seeing?


refactor: project upgrade

:tada: This PR is included in version 0.53.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Provide a way to create and update prompts

Right now only "system" prompts are available. The only way for the user to update or create the prompts is to go into the developer tools and change the JSON of the settings.
Provide a way to have full CRUD of prompts.

Fixed


Surface room name errors and warn users about reserved policy room name error

CC: @jasperhuangg @luacmartins
Details
Warns users not to use reserved names for rooms. Also adds an inline error so that users can see what the error they're seeing is.
Fixed Issues
Follow up to: https://github.com/Expensify/Auth/pull/6291
Tests/ QA Steps

Go to the green plus on the bottom left and click on New Room
Verify like in the screenshot below, if you try to use #admins or #announce for the room name, it won't let you.
Also verify that it shows you the right error message (see screenshot).
Verify that you also see an error if you try to use the same name as an existing policy room in that same workspace.

[ ] Verify that no errors appear in the JS console

Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

@danieldoglas @luacmartins ready for another review!

🚀 Deployed to staging by @TomatoToaster in version: 1.1.29-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@TomatoToaster  @luacmartins @danieldoglas Should we QA this on Web only?

@mvtglobally we should test on all platforms.

🚀 Deployed to production by @roryabraham in version: 1.1.30-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


when I update the apt source,the error appears

"
Err:9 https://apt.repos.intel.com/intelpython binary/ InRelease
The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
Hit:12 https://apt.repos.intel.com/ipp all InRelease
Err:11 https://apt.repos.intel.com/mkl all InRelease
The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
Err:12 https://apt.repos.intel.com/ipp all InRelease
The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
Hit:13 https://apt.repos.intel.com/tbb all InRelease
Err:13 https://apt.repos.intel.com/tbb all InRelease
The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
Hit:14 https://apt.repos.intel.com/daal all InRelease
Err:14 https://apt.repos.intel.com/daal all InRelease
The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
Hit:15 https://apt.repos.intel.com/mpi all InRelease
Err:15 https://apt.repos.intel.com/mpi all InRelease
The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
Err:16 http://archive.ubuntukylin.com:10006/ubuntukylin xenial InRelease
Could not connect to archive.ubuntukylin.com:10006 (<IP_ADDRESS>), connection timed out
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.repos.intel.com/intelpython binary/ InRelease: The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.repos.intel.com/mkl all InRelease: The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.repos.intel.com/ipp all InRelease: The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.repos.intel.com/tbb all InRelease: The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.repos.intel.com/daal all InRelease: The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.repos.intel.com/mpi all InRelease: The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: Failed to fetch https://apt.repos.intel.com/intelpython/binary/InRelease  The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: Failed to fetch https://apt.repos.intel.com/mkl/dists/all/InRelease  The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: Failed to fetch https://apt.repos.intel.com/ipp/dists/all/InRelease  The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: Failed to fetch https://apt.repos.intel.com/tbb/dists/all/InRelease  The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: Failed to fetch https://apt.repos.intel.com/daal/dists/all/InRelease  The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: Failed to fetch https://apt.repos.intel.com/mpi/dists/all/InRelease  The following signatures were invalid: EXPKEYSIG ACFA9FC57E6C5DBE Intel(R) Software Development Products
W: Failed to fetch http://archive.ubuntukylin.com:10006/ubuntukylin/dists/xenial/InRelease  Could not connect to archive.ubuntukylin.com:10006 (<IP_ADDRESS>), connection timed out
W: Some index files failed to download. They have been ignored, or old ones used instead.
"
and I used the newest GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB, the same appears with the command "sudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list"
Does this list "intelproducts.list" contains ACFA9FC57E6C5DBE which results the error?
I firstly install the mkl with the guide "https://www.intel.com/content/www/us/en/developer/articles/guide/installing-free-libraries-and-python-apt-repo.html"

I think this is a duplicate of #390


darwin support ? make mac-build has an error ...

makefile seems to indicate that mac support is wanted.
But when i tried to run it i hit some errors:

make build-mac
rm -f ecal
go mod init || true
go: /Users/apple/workspace/go/src/github.com/gerardwebb/research/blockchain/graphdb/krotik__ecal/ecal/go.mod already exists
go mod tidy
go generate devt.de/krotik/ecal/stdlib/generate
Generating ECAL stdlib from Go functions ...
fork/exec /var/folders/wp/ff6sz9qs6g71jnm12nj2kbyw0000gp/T/go-build757582189/b001/exe/generate: exec format error
stdlib/generate/generate.go:35: running "go": exit status 1
make: *** [generate] Error 1

I have not investigated what's going on yet, but wanted to first make this issue to get feedback..

all the tests for the repo pass on a mac btw.
export GOOS=darwin
make test
go test -p 1 ./...
?       devt.de/krotik/ecal/cli [no test files]
ok      devt.de/krotik/ecal/cli/tool    1.242s
ok      devt.de/krotik/ecal/config      0.119s
ok      devt.de/krotik/ecal/engine      0.148s
ok      devt.de/krotik/ecal/engine/pool 0.166s
ok      devt.de/krotik/ecal/engine/pubsub       0.121s
?       devt.de/krotik/ecal/examples/plugin     [no test files]
ok      devt.de/krotik/ecal/interpreter 0.899s
ok      devt.de/krotik/ecal/parser      0.198s
ok      devt.de/krotik/ecal/scope       0.162s
ok      devt.de/krotik/ecal/stdlib      0.210s
ok      devt.de/krotik/ecal/stdlib/generate     2.085s
ok      devt.de/krotik/ecal/util        0.177s

so the only reason the make file does not work on a mac is just the "export GOOS=darwin" at the top.
Should we change it to detect it at runtime ?

this is really minor, so just close it if its not worth it

Hey, thanks for raising this! Yes, I would love to have proper Mac support. Unfortunately, I do not have a Mac so I can't really test or debug things. If you have an idea on how to fix this let me know (or raise a PR :smile: )

Actually everyone is working perfectly on mac
build, dist, examples. the whole lots.
dont change anything :)

I just had to do a "brew install coreutils" and link it and the sha256sum did its thing.
I like the setup !!

i think we can close this. If it aint broke dont fix it :)

Alright, I'll close it. Thanks for raising and investigating :pray:

Maybe add this to the README if you feel its worth it:
"
For mac users that want to run the make dist
### COREUTILS
#brew install coreutils
# need to add path to make it available
PATH="$(brew --prefix)/opt/coreutils/libexec/gnubin:$PATH"

"


Add Racket lang

I made a few adjustments (refer to the commit message for 238e37a for details), but this looks great! Thank you for your hard work!

@mdssjc Oh, I forgot to ask: is there a reason why racket-smart-open-bracket-enable can't be set directly, rather than in a hook?

@hlissner No, it can be done directly.


Improvement/profile editing

Refactored profile editing view with the required features (delete/edit information) + some minor tweaks non-related to this PR, but included them anyways since we are in a hurry!

this looks good to me. only thing i was wondering is that is it necessary to log out the user after they edit their info? or is difficult to do it without the logout?

Not necessarily as of now, but in the future, it might be necessary depending on if some data is stored in the authentication token. Also, I think most sites I've used usually require you to either refresh or re-login.

yeah i guess im more used to a refresh and was thinking about it from the user experience perspective. but i guess this works too. after all its not that often that a use changes their info


name 'Text' is not defined

I use pip install manimlib and I think that's the latest version

this version does not contains Text_mobject.py

the version on pypi is very low. so you need to clone the newest source code in this repo.

the version on pypi is very low. so you need to clone the newest source code in this repo.

Yeah, I downloaded it and replaced the older one. It works perfectly.


Allow admin users to disable members on their account

I am not a react guy. But I have gone through the whole code and more specifically the elixir code and it looks good to me. But out of curiosity or let me say learning from each other. For me, I would have made disabled_at to be a boolean with default as false, and whenever I disable a user its just a matter of updating it to true.
maybe if you can shed light on me on the decision on why you made disabled_at as utc_datetime?

also couldn't some of those functions be private e.g archive_user, disable_user, enable_user, or are they being used anywhere else outside of that module?

hey @MuhammadMullah! great questions :)

in terms of using disabled_at as a datetime rather than a boolean, this is a common pattern used because it gives you more information with the same functionality -- for example, it's often helpful to know exactly when a user was archived or disabled, and you can infer if the user is disabled based on the presence of that field (i.e. if it's null, then they user is not disabled)
those methods are currently used in the UserController, so they can't be private unfortunately

let me know if you have anymore questions!

those methods are currently used in the UserController, so they can't be private unfortunately
ooh maybe I was not careful to check that. Okay great, thanks


vsock: implement VhostUserBackend instead of VhostUserBackendMut for VhostUserVsockBackend

The VhostUserVsockBackend structure implements the VhostUserBackendMut trait that is supposed to be for structures without interior mutability.
VhostUserVsockBackend already uses Mutex to protect its threads, so it can implement the trait with interior mutability (i.e. VhostUserBackend) and maybe use the RwLock instead of Mutex to allow more concurrency in the future if we will support multiple worker threads or we need to share the VhostUserVsockBackend reference with multiple objects.

An example to follow could be the VhostUserFsBackend in https://gitlab.com/virtio-fs/virtiofsd

Asigned to @techiepriyansh


NPE in test

Build hangs on flinkspector unit test. After some time it shows NullPointerException inside of Flinkspector code. It is not clear what causes it.
17:18:36,808 INFO  org.apache.flink.runtime.minicluster.FlinkMiniCluster         - Starting FlinkMiniCluster.
17:18:36,840 INFO  org.apache.flink.runtime.metrics.MetricRegistryImpl           - No metrics reporter configured, no metrics will be exposed/reported.
17:18:38,718 INFO  akka.event.slf4j.Slf4jLogger                                  - Slf4jLogger started
17:18:38,885 INFO  org.apache.flink.runtime.blob.BlobServer                      - Created BLOB server storage directory /tmp/blobStore-7bcc77e5-111e-4808-8fdd-6cc199bc47c3
17:18:38,928 INFO  org.apache.flink.runtime.blob.BlobServer                      - Started BLOB server at <IP_ADDRESS>:41743 - max concurrent requests: 50 - max backlog: 1000
17:18:39,233 INFO  org.apache.flink.runtime.jobmanager.MemoryArchivist           - Started memory archivist akka://flink/user/archive_1
17:18:39,255 INFO  org.apache.flink.runtime.jobmanager.JobManager                - Starting JobManager at akka://flink/user/jobmanager_1.
17:18:39,258 INFO  org.apache.flink.runtime.highavailability.nonha.embedded.EmbeddedLeaderService  - Proposing leadership to contender org.apache.flink.runtime.jobmanager.JobManager@73c3f03f @ akka://flink/user/jobmanager_1
17:18:39,278 INFO  org.apache.flink.runtime.taskexecutor.TaskManagerConfiguration  - Messages have a max timeout of 1000000 ms
17:18:39,328 INFO  org.apache.flink.runtime.taskexecutor.TaskManagerServices     - Temporary file directory '/tmp': total 9 GB, usable 4 GB (44.44% usable)
17:18:39,332 INFO  org.apache.flink.runtime.jobmanager.JobManager                - JobManager akka://flink/user/jobmanager_1 was granted leadership with leader session ID Some(11ce4b11-eff3-4964-9cb7-99e5a62dfd4e).
17:18:39,393 INFO  org.apache.flink.runtime.highavailability.nonha.embedded.EmbeddedLeaderService  - Received confirmation of leadership for leader akka://flink/user/jobmanager_1 , session=11ce4b11-eff3-4964-9cb7-99e5a62dfd4e
17:18:39,486 INFO  org.apache.flink.runtime.clusterframework.standalone.StandaloneResourceManager  - Trying to associate with JobManager leader akka://flink/user/jobmanager_1
17:18:39,610 INFO  org.apache.flink.runtime.io.network.buffer.NetworkBufferPool  - Allocated 144 MB for network buffer pool (number of memory segments: 4612, bytes per segment: 32768).
17:18:39,639 INFO  org.apache.flink.runtime.clusterframework.standalone.StandaloneResourceManager  - Resource Manager associating with leading JobManager Actor[akka://flink/user/jobmanager_1#-734530174] - leader session 11ce4b11-eff3-4964-9cb7-99e5a62dfd4e
17:18:39,686 WARN  org.apache.flink.runtime.query.QueryableStateUtils            - Could not load Queryable State Client Proxy. Probable reason: flink-queryable-state-runtime is not in the classpath. Please put the corresponding jar from the opt to the lib folder.
17:18:39,686 WARN  org.apache.flink.runtime.query.QueryableStateUtils            - Could not load Queryable State Server. Probable reason: flink-queryable-state-runtime is not in the classpath. Please put the corresponding jar from the opt to the lib folder.
17:18:39,692 INFO  org.apache.flink.runtime.io.network.NetworkEnvironment        - Starting the network environment and its components.
17:18:39,694 INFO  org.apache.flink.runtime.taskexecutor.TaskManagerServices     - Limiting managed memory to 80 MB, memory will be allocated lazily.
17:18:39,713 INFO  org.apache.flink.runtime.io.disk.iomanager.IOManager          - I/O manager uses directory /tmp/flink-io-c0057d8c-e00b-48b4-b8e6-d04e0325babc for spill files.
17:18:39,729 INFO  org.apache.flink.runtime.filecache.FileCache                  - User file cache uses directory /tmp/flink-dist-cache-d6c66807-0c28-450e-b9b1-5ac6c3ffb0aa
17:18:39,784 INFO  org.apache.flink.runtime.filecache.FileCache                  - User file cache uses directory /tmp/flink-dist-cache-bf8a0fe4-1d1a-43fb-857c-9d14010da32e
17:18:39,906 INFO  org.apache.flink.runtime.taskmanager.TaskManager              - Starting TaskManager actor at akka://flink/user/taskmanager_1#954964096.
17:18:39,910 INFO  org.apache.flink.runtime.taskmanager.TaskManager              - TaskManager data connection information: 2a476f7f300008d39542925dbc4e71c0 @ localhost (dataPort=-1)
17:18:39,911 INFO  org.apache.flink.runtime.taskmanager.TaskManager              - TaskManager has 1 task slot(s).
17:18:39,917 INFO  org.apache.flink.runtime.taskmanager.TaskManager              - Memory usage stats: [HEAP: 155/348/1446 MB, NON HEAP: 29/30/-1 MB (used/committed/max)]
17:18:39,940 INFO  org.apache.flink.runtime.taskmanager.TaskManager              - Trying to register at JobManager akka://flink/user/jobmanager_1 (attempt 1, timeout: 500 milliseconds)
17:18:39,960 INFO  org.apache.flink.runtime.instance.InstanceManager             - Registered TaskManager at localhost (akka://flink/user/taskmanager_1) as 91cb3a85518a3daeec6ba199a25b1384. Current number of registered hosts is 1. Current number of alive task slots is 1.
17:18:39,969 INFO  org.apache.flink.runtime.clusterframework.standalone.StandaloneResourceManager  - TaskManager 2a476f7f300008d39542925dbc4e71c0 has started.
17:18:39,971 INFO  org.apache.flink.runtime.taskmanager.TaskManager              - Successful registration at JobManager (akka://flink/user/jobmanager_1), starting network stack and library cache.
17:18:39,990 INFO  org.apache.flink.runtime.taskmanager.TaskManager              - Determined BLOB server address to be localhost/<IP_ADDRESS>:41743. Starting BLOB cache.
17:18:39,996 INFO  org.apache.flink.runtime.blob.PermanentBlobCache              - Created BLOB cache storage directory /tmp/blobStore-594aa983-44f2-4809-b20c-2d1f04654653
17:18:40,002 INFO  org.apache.flink.runtime.blob.TransientBlobCache              - Created BLOB cache storage directory /tmp/blobStore-665c9ef1-bf7e-45b0-a862-b0703d0b753a
17:18:41,893 INFO  org.apache.flink.runtime.client.JobSubmissionClientActor      - Disconnect from JobManager null.
17:18:41,910 INFO  org.apache.flink.runtime.client.JobSubmissionClientActor      - Received SubmitJobAndWait(JobGraph(jobId: 27f30ea34456e47491c489bb258c77b0)) but there is no connection to a JobManager yet.
17:18:41,911 INFO  org.apache.flink.runtime.client.JobSubmissionClientActor      - Received job Flink Streaming Job (27f30ea34456e47491c489bb258c77b0).
17:18:41,923 INFO  org.apache.flink.runtime.client.JobSubmissionClientActor      - Connect to JobManager Actor[akka://flink/user/jobmanager_1#-734530174].
17:18:41,930 INFO  org.apache.flink.runtime.client.JobSubmissionClientActor      - Connected to JobManager at Actor[akka://flink/user/jobmanager_1#-734530174] with leader session id 11ce4b11-eff3-4964-9cb7-99e5a62dfd4e.
17:18:41,930 INFO  org.apache.flink.runtime.client.JobSubmissionClientActor      - Sending message to JobManager akka://flink/user/jobmanager_1 to submit job Flink Streaming Job (27f30ea34456e47491c489bb258c77b0) and wait for progress
17:18:41,943 INFO  org.apache.flink.runtime.client.JobSubmissionClientActor      - Upload jar files to job manager akka://flink/user/jobmanager_1.
java.lang.NullPointerException
at io.flinkspector.core.runtime.OutputHandler.processMessage(OutputHandler.java:156)
at io.flinkspector.core.runtime.OutputHandler.call(OutputHandler.java:100)
at io.flinkspector.core.runtime.OutputHandler.call(OutputHandler.java:39)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

It is just a generic Flinkspector testcase; this happens before any test execution.
And it only occurs on corporate build system's linux box (teamcity). Developer's systems and jenkins CI work ok.

BTW, looking into the code:
`private Action processMessage(byte[] bytes)
throws IOException, FlinkTestFailedException {
    if (bytes.length == 0) {
        //the subscriber has been cancelled from outside quietly finish the process
        return Action.FINISH;
    }

    if (bytes == null) {
        System.out.println("Waited too long for message from sink");
        return Action.FINISH;
    }`

if bytes == null, then first check would raise NPE. And the second check would always be true

I ran into this bug and using a private patch with the first two if blocks switched in processMessage(), the problem is resolved.

Could you open a pull request with the fix?
I'm at vacation for the next 3 weeks and don't have access to a computer. I could at least merge this into the master.
Cheers, Alex

The bug fix has been included into release 0.8.3


awsvpnclient

Project description
AWS VPN Client
Metadata

homepage URL: https://aws.amazon.com/vpn/
source URL: https://aur.archlinux.org/awsvpnclient.git
license: custom
platforms: linux

I need to install ubuntu for this. Please integrate this into nixos soon!


No forecast data after running Demand Sensing pipeline

Hi,
I've gone through the user guide of Google Cloud Cortex Demand Sensing to fill the Demand Forecast, Planning and Promotion Calendar table with test data. I've had no errors during the process, the Cloud build and Vertex AI ran successfully, but none of the tables are populated. The settings used are the default ones.
The demand_sensing_evaluations and preprocess tables have data. Also, the errors_validation tables has entries but all the errors are same, except for the id value:
No rows with null targets were found for the time series with id: C0000038__1000054. Forecasts start on the first row of a time series (ordered by time) with a null value in the target column....
Any advice would be appreciated.
Please note that we have successfully implemented Cortex Foundation with test data.

Hi @m-naude,
Thanks for bringing this to our attention and for providing some details on the steps you took.
Can you please let us know if during your Data Foundation deployment you used client 900 or the default client 100 for the test data? Or did you create and load your own set of test data into the tables?
You mentioned that you have implemented Data Foundation with test data, but when you deploy the Demand Sensing pipeline did you chose to do so with or without test data (Step 3.1 in the Demand Sensing deployment user guide)?
Best regards,
Benjamin

Hi there,
Thanks for the response.
We run the pipelines with test data. Initial run was with client 100 and then another run was with for client 900, just to be on the safe side.
Regards,
Meurant

Hi @m-naude,
I was trying to reproduce the situation in a clean environment internally to clarify where exactly you see your issue.
Here are the steps I took:

Deploy Cortex data foundation with test data for client 900
--> After this step, I can see the different BQ datasets and tables/views, but no tables or views related to demand sensing, which is expected
Deploy Cortex Demand Sensing via Google Cloud marketplace, indicating that I want to use test data here as well
--> Once the deployment is done, I can see additional tables created in the CDC dataset for Demand_Plan, Demand_Forecast and Promotion_Calendar
Vertex AI pipeline executes successfully
--> In BigQuery, in the dataset VERTEX_AI_DATA I can see a table starting with predictions_ which has 65 entries, which is in line with the expected results for 13 weeks of forecast for 5 products that are being processed.
I also checked the errors_validation table and have 5 records in there, all for customer ID ending with 55 and a similar error message to the one that you shared.

Can you confirm that those are the same steps that you took?
If yes, can you specify how many records you see in the errors_validation table? If you have 10 records in there, that could be an indication that some input data is missing in your deployment. In that case, can you please let me know if the tables Demand_Plan, Demand_Forecast and Promotion_Calendar exist in your CDC dataset and how many records they each have?

Hi there,
I thought I'd start fresh as well and followed the same steps as you.
Here are the steps I took:

Deploy Cortex data foundation with test data for client 900 --> After this step, I can see the different BQ datasets and tables/views, but no tables or views related to demand sensing, which is expected. I can see client 900 data
Deploy Cortex Demand Sensing via Google Cloud marketplace, indicating that I want to use test data here as well --> Once the deployment is done, I can see additional tables created in the CDC dataset for Demand_Plan, Demand_Forecast and Promotion_Calendar but they are empty.
Vertex AI pipeline executes successfully --> In BigQuery, in the dataset VERTEX_AI_DATA there is notable starting with predictions_
I also checked the errors_validation table --> 10 records in there, all for customer ID ending with 45 and 55, same error.

Questions:

My assumption then is that because tables Demand_Plan, Demand_Forecast and Promotion_Calendar are empty, I get no data. Correct?
In your Cortex Foundation deployment, did you use one or two projects?
And with Demand Sensing did you just use the default parameters?
Can you please confirm which tables are being used for demand sensing? I could be missing data.
My location is australia-southeast1. Would be a problem?

Thanks for your help thus far. It is very much appreciated.

The steps that you took make sense and are comparable to what I did, but with a different outcome, so let's figure out what might have gone wrong.

My assumption then is that because tables Demand_Plan, Demand_Forecast and Promotion_Calendar are empty, I get no data. Correct?

Yes, the pipeline can only produce results for periods where all data is available. So if there is no record in Demand_Plan and Promotion_Calendar, the results will be empty.

In your Cortex Foundation deployment, did you use one or two projects?

During my testing I only used one project for everything. I will try to replicate this scenario with two different projects, to be sure that this is not causing any issues. Just to confirm your setup in case you had two projects: The demand sensing pipeline would be deployed to the target project, so the one that has the BigQuery reporting views in it. Does that match your setup?

And with Demand Sensing did you just use the default parameters?

Yes, I used all default parameters for the demand sensing deployment.

Can you please confirm which tables are being used for demand sensing? I could be missing data.

The tables that we are using for the pipeline are:

[dataset].[table]

CDC_PROCESSED.Demand_Forecast

CDC_PROCESSED.Demand_Plan

CDC_PROCESSED.holiday_calendar

CDC_PROCESSED.Promotion_Calendar

CDC_PROCESSED.trends

CDC_PROCESSED.weather_weekly

+ a combination of reporting views around SalesOrders, CustomersMD, MaterialsMD etc. to get historical sales numbers

My location is australia-southeast1. Would be a problem?

:mag: I think that this might have been the clue we needed. Let me confirm with the team if my suspicion is correct and if so how we can fix that for this specific location. In the meantime, can you try running through the process once more but with a different location that is suitable for you? If you deploy the demand sensing with sample data in a different location and the tables for Demand_Plan, Promotion_Calendar and Demand_Forecast are populated, you might also be able to copy over the data from these tables into your tables in the australia_southeast1 location and then run the pipeline in the location you originally planned to do.
I'll reply back to this thread once I get confirmation from the team about the location-specific issue and provide some next steps.

Hi there,
Any feedback on this issue yet? Is location the problem?
Thanks

Hi @m-naude,
Yes, it seems like the location needs to be fixed in the deployment script for this specific location. I have asked the team to provide me an update on the progress for this one and will let you know an ETA for the fix once I can share it. In the meantime, have you tried running the deployment in a different location, like australia-southeast2? As far as I can tell, that location should not be affected by this bug, so it might be an option for you to test the deployment with sample data.

Hi @m-naude, I just got confirmation that the updated container for the demand sensing pipeline is available on the marketplace, which means that you can run another deployment in australia-southeast1 and check if the sample data gets created as expected. Please let us know if this latest version has resolved your issue and you were able to succesfully deploy the demand sensing pipeline.

Hi there,
I redeployed the new version.
Happy to let you know that tables  Demand_Plan, Demand_Forecast and Promotion_Calendar now have entries.
Also there was no errors_validation table generated for the new deployment.
Thank you for your assistance.


Save Button In Track Volunteers is Uneeded

The save button in track volunteers is not needed because it should save when you add someone.

@Boorclark Hey, so u just want to remove the html code of this button or something else..

The save button is needed for hours. Closing issue


Error CHAT_ADMIN_REQUIRED in Get all members from a chat

var chats = await client.Messages_GetAllChats();
var channel = (Channel)chats.chats[1234567890]; // the channel we want
for (int offset = 0; ;)
{
    var participants = await client.Channels_GetParticipants(channel, null, offset);
    foreach (var (id, user) in participants.users)
        Console.WriteLine(user);
    offset += participants.participants.Length;
    if (offset >= participants.count) break;
}

The error only appears when getting users from a channel. If you receive from groups, then it works

Duhh... yes of course, you need to be admin to list channel subscribers 🙄🙄
Using Telegram Client API allows you to do everything a normal user can do, not more.
Questions about the behavior of Telegram API should be asked on StackOverflow because this is not an issue with the WTelegramClient library itself.
You can click on the link below to create your question with the adequate tags [wtelegramclient] [telegram-api]:
https://stackoverflow.com/questions/ask?tags=wtelegramclient+telegram-api


Recurrent layer not accepting multiple inputs list despite source code seemingly handling such case

Hello,
Reading the source code for Recurrent.py, it would appear that a layer like LSTM would be able to accept multiple input tensors. In call() of Recurrent, I see an option like ifinstance(inputs, list) then it will pick the first element of that list to be the input data tensor, and the rest as initial_states presumably.
https://github.com/fchollet/keras/blob/ec9c95fdbd60c2d86288858563c57b0007b24430/keras/layers/recurrent.py#L263
 def call(self, inputs, mask=None, initial_state=None, training=None):
        # input shape: `(samples, time (padded with zeros), input_dim)`
        # note that the .build() method of subclasses MUST define
        # self.input_spec and self.state_spec with complete input shapes.
        if initial_state is not None:
            if not isinstance(initial_state, (list, tuple)):
                initial_states = [initial_state]
            else:
                initial_states = list(initial_state)
        if isinstance(inputs, list):
            initial_states = inputs[1:]
            inputs = inputs[0]

However, if I run a simple script like such
import numpy as np
from keras.models import Model
from keras.layers import LSTM, Input

data_input = Input(shape=(10,5))
time_input = Input(shape=(10,1))

asynchronous = LSTM(15)([data_input, time_input])
model = Model(inputs=[data_input, time_input], outputs=asynchronous)

I get the following exception:
Traceback (most recent call last):
  File "ras.py", line 24, in <module>
    main()
  File "ras.py", line 16, in main
    asynchronous = LSTM(15)([data_input, time_input])
  File "/usr/local/lib/python2.7/dist-packages/keras/layers/recurrent.py", line 252, in __call__
    return super(Recurrent, self).__call__(inputs, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 511, in __call__
    self.assert_input_compatibility(inputs)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 401, in assert_input_compatibility
    str(input))
ValueError: Layer lstm_1 expects 1 inputs, but it received 2 input tensors. Input received: <built-in function input>

I am actually trying to write a custom layer which requires two input tensors than inherits from Recurrent, but I am not sure whether I need to change the Recurrent class as well at this point... from the source code it would appear it can accept a list, and it would just use the first element of that list as the main input tensor. Can someone clarify?

This will be fixed by #5795. We're currently waiting for someone to review it.

FYI, for folks reading this -- I was running into some trouble with RNNs not accepting multiple inputs. Turns out the solution was to modify the input_spec, i.e., do: self.input_spec = [InputSpec(ndim=3), InputSpec(ndim=...)]

This still appears to be an issue (I'm using keras 2.0.8). I have implemented my own layer that inherits from recurrent, but get a similar error when I try to pass in multiple inputs as a list.  I did specify the input_spec when I initialize the layer as @jmhessel suggested, but this does not help. The issue first arises in the following lines of code from recurrent.py from call:
    def call(self, inputs, mask=None, training=None, initial_state=None):
        # input shape: `(samples, time (padded with zeros), input_dim)`
        # note that the .build() method of subclasses MUST define
        # self.input_spec and self.state_spec with complete input shapes.
        if isinstance(inputs, list):
            initial_state = inputs[1:]
            inputs = inputs[0]
        elif initial_state is not None:
            pass
        elif self.stateful:
            initial_state = self.states
        else:
            initial_state = self.get_initial_state(inputs)

The assumption in these lines of code is that if the input is a list, then the input is the first element in the list, and the following items are the initial state (even if the initial_state is specified explicitly). I tried modifying this function to remove this assumption (ie. not split up the inputs in this way if the initial_state is specified), but then an error gets raised a few lines later during the call to rnn (tensorflow_backend.py, line 2332, at the beginning of the function:
def rnn(step_function, inputs, initial_states,
        go_backwards=False, mask=None, constants=None,
        unroll=False, input_length=None):
    """Iterates over the time dimension of a tensor.
...
# inputs: tensor of temporal data of shape `(samples, time, ...)`  # <-- confirming the assumption that a single tensor is expected.
#            (at least 3D).
...
ndim = len(inputs.get_shape())    # <-- raises the error: "AttributeError: 'list' object has no attribute 'get_shape'"

which again assumes that inputs is a single tensor, and not a list of inputs, an assumption that I see is present in the rest of that function as well, including the . Can I conclude that the recurrent layer does not support multiple inputs in the form of a list, or am I missing something?


Update to repo README.md to reflect updating RFC lifecycle

Signed-off-by: Stephen Curran<EMAIL_ADDRESS>Should be merged in parallel with the updates to the indexer script that @dhh1128 is working on.
Still need to update the lifecycle image.

In one of my PRs, I changed a couple headers of /README.md, which caused a merge conflict. Rather than putting you through the hassle of resolving the conflict, I cherry-picked your comment and applied it in PR #156 . That PR has now been merged, so this PR is redundant.


Don't try to release 10.0.0 just yet

As per docs/maintainers-guide.rst, CHANGES.md is where the site
looks for the new version number and tries to update itself.
Mentioning "10.0.0" in the header triggered an unsusccesful update.
This reverts this line.
(Sorry for yet another idiosyncrasy!)

Huh, I didn't tag anything???? Why is it trying to update?

I don't know a working hypothesis yet. Looks like a bug somewhere which didn't manifest itself before.

Looks like it's reacting to a draft release 10.0 which I can see on https://github.com/highlightjs/highlight.js/releases. I'll disable this kind of webhook pings for now so it'll only look for tags.

Going to bed now :-)

Well, I can say I wasn't expecting it to act on DRAFT releases. :-)  I'd say your website should ignore those.  So I can add the 10.0 back now, yes?


docker-pm2 for arm64

Hi,
I would like to be able to run docker-pm2 on my rapsberry pi 3 (arm64 with Hypriot OS) but I believe that the available images are not compatible with such a system architecture (no aarch64 || arm64 || arm32 images).
I'm quite new with Docker ^^.
Thanks

After some research, I found the repo arm64v8, which groups together the arm64 versions of hundreds of docker images (node, rust...). Maybe adding a specific pm2 version there could be an interesting compromise as described here?


update src pls

update src pls i want to learn the new features thx

"learn"?
I always put the fixes and features into the description


[Reputation Oracle] Save a value above high threshold on database

Description
For now Reputation Oracle should return high when its reputation score is requested. Saves a value above high threshold on database
Summary of changes

Added a highLevel value to initial value in increaseReputation method for reputation entity.
Added a highLevel value to initial value in decreaseReputation method for reputation entity.
Updated unit tests.

How test the changes
yarn test
Related issues
Reputation Oracle - Return high for its own reputation
#1047

    const reputationOracleAddress =
      await escrowClient.getReputationOracleAddress(escrowAddress);

    await this.increaseReputation(
      chainId,
      reputationOracleAddress,
      ReputationEntityType.REPUTATION_ORACLE,
    );


[FEAT] Provide example of how to dynamically update/replace complete data.

Is your feature request related to a problem? Please describe.
I'm using SwiftUI and Combine.  I'm populating my pager based on the results of a (potentially repeated) network request.  Prior to displaying pages I'm displaying a "Loading..." screen.  I'd like to have updates to the Pager(data:) property cause the pager to reload.  I can manually update the page property if required.  Is this possible, and if so, could it be added to the usage examples?  This is similar to dynamic additions to the data but from a position of starting with no pages.  Would it be possible to have these properties be reactive Combine properties?
Love the control, by the way, thanks.  For static data it's worked great!

Closing as not required.  I tested with empty arrays in the dynamic addition example app and all works as expected.  I think my SwiftUI/Combine binding was awry.


fix(component): fix useScrolling hook for scrollbar issue

Overview
fix useScrolling hook for scrollbar issue

Test Plan

Changelog

Review requests

Risk assessment

Marking as WIP so no one accidentally reviews this until @ncdiehl11 is ready for review.

Merging this in for 7.2 code completion.


Process exits when program exits

I would want to write a program that eventually will start a process and allow this process to continue after the program comes to an end.
I've tried this
{-# LANGUAGE OverloadedStrings #-}

import           Control.Monad
import           Shelly

example :: IO ()
example = let
    cmd' = fromText "nohup"
    args = ["python", "-m", "SimpleHTTPServer", "8000", "&"]
    in
        void $ shelly $ run cmd' args

When I close this program this is also closed. That's not the case if I were to run this nohup python -m SimpleHTTPServer 8000 & in a terminal and then close that terminal.
What's the cause of this? Is it intentional? Is there any way I can get around this?

I think nohup has no effect outside a login shell?
You can try looking at the System.Process.createProcess docs for more clues as to how to launch an independent background process.

Ok, I will have a look there. Thanks for the help!


feat(uat): added userProperties sdk-client

Issue #, if available:
https://klika-tech.atlassian.net/browse/GGMQ-217
added userProperties for sdk-client
Description of changes:

added userProperties for sdk-client Mqtt V5.0

Why is this change necessary:

required step for several test features

How was this change tested:
run command mvn exec:java in paho-agent module
Test results:
Control's log:
INFO ] 2023-06-12 16:08:55.626 [com.aws.greengrass.testing.mqtt.client.control.ExampleControl.main()] EngineControlImpl - MQTT client control gRPC server started, listening on 47619
[INFO ] 2023-06-12 16:09:39.543 [grpc-default-executor-0] GRPCDiscoveryServer - RegisterAgent: agentId best-thing-akezhan
[INFO ] 2023-06-12 16:09:39.632 [grpc-default-executor-0] GRPCDiscoveryServer - DiscoveryClient: agentId best-thing-akezhan address <IP_ADDRESS> port 33337
[INFO ] 2023-06-12 16:09:39.635 [grpc-default-executor-0] EngineControlImpl - Created new agent control for best-thing-akezhan on <IP_ADDRESS>:33337
[INFO ] 2023-06-12 16:09:39.664 [grpc-default-executor-0] ExampleControl - Agent best-thing-akezhan is connected
[INFO ] 2023-06-12 16:09:39.669 [pool-2-thread-1] AgentTestScenario - Playing test scenario for agent id best-thing-akezhan
[INFO ] 2023-06-12 16:09:44.033 [pool-2-thread-1] AgentControlImpl - Created connection with id 1 CONNACK 'sessionPresent: false
reasonCode: 0
receiveMaximum: 100
maximumQoS: 1
retainAvailable: true
maximumPacketSize: 149504
wildcardSubscriptionsAvailable: true
subscriptionIdentifiersAvailable: false
sharedSubscriptionsAvailable: true
serverKeepAlive: 60
'
[INFO ] 2023-06-12 16:09:44.033 [pool-2-thread-1] AgentControlImpl - createMqttConnection: MQTT connectionId 1 created
[INFO ] 2023-06-12 16:09:44.033 [pool-2-thread-1] AgentTestScenario - MQTT connection with id 1 is established
[INFO ] 2023-06-12 16:09:49.041 [pool-2-thread-1] AgentControlImpl - SubscribeMqtt: subscribe on connection 1
[INFO ] 2023-06-12 16:09:49.255 [pool-2-thread-1] AgentTestScenario - Subscribe response: connectionId 1 reason codes [0] reason string ''
[INFO ] 2023-06-12 16:09:54.261 [pool-2-thread-1] AgentControlImpl - PublishMqtt: publishing on connectionId 1 topic test/topic
[INFO ] 2023-06-12 16:09:54.479 [pool-2-thread-1] AgentTestScenario - Published connectionId 1 reason code 0 reason string ''
[INFO ] 2023-06-12 16:09:54.494 [grpc-default-executor-0] GRPCDiscoveryServer - OnReceiveMessage: agentId best-thing-akezhan connectionId 1 topic test/topic QoS 0
[INFO ] 2023-06-12 16:09:54.496 [grpc-default-executor-0] AgentTestScenario - Message received on agentId best-thing-akezhan connectionId 1 topic test/topic QoS 0 content <ByteString@1f3e5fa3 size=12 contents="Hello World!">
[INFO ] 2023-06-12 16:09:59.484 [pool-2-thread-1] AgentControlImpl - UnsubscribeMqtt: unsubscribe on connectionId 1
[INFO ] 2023-06-12 16:09:59.697 [pool-2-thread-1] AgentTestScenario - Unsubscribe response: connectionId 1 reason codes [0] reason string ''
[INFO ] 2023-06-12 16:10:14.732 [grpc-default-executor-0] GRPCDiscoveryServer - OnMqttDisconnect: agentId best-thing-akezhan connectionId 1 disconnect '' error 'Mqtt5 client connection interrupted by user request.'
[INFO ] 2023-06-12 16:10:14.732 [grpc-default-executor-0] AgentTestScenario - MQTT disconnected on agentId best-thing-akezhan connectionId 1 disconnect '' error 'Mqtt5 client connection interrupted by user request.'
[INFO ] 2023-06-12 16:10:14.741 [pool-2-thread-1] AgentControlImpl - closeMqttConnection: MQTT connectionId 1 closed
[INFO ] 2023-06-12 16:10:14.750 [pool-2-thread-1] AgentControlImpl - shutdown request sent successfully
[INFO ] 2023-06-12 16:10:14.761 [grpc-default-executor-0] GRPCDiscoveryServer - UnregisterAgent: agentId best-thing-akezhan reason Agent shutdown by OTF request 'That's it.'
[INFO ] 2023-06-12 16:10:14.763 [grpc-default-executor-0] ExampleControl - Agent best-thing-akezhan is disconnected

Client's log:
[INFO ] 2023-06-12 16:09:39.129 [main] GRPCLinkImpl - Making gPRC client connection with <IP_ADDRESS>:47619 as best-thing-akezhan...
[INFO ] 2023-06-12 16:09:39.581 [main] GRPCLinkImpl - Client connection with Control is established, local address is <IP_ADDRESS>
[INFO ] 2023-06-12 16:09:39.627 [main] GRPCControlServer - GRPCControlServer created and listed on <IP_ADDRESS>:33337
[INFO ] 2023-06-12 16:09:39.673 [main] GRPCLinkImpl - Handle gRPC requests
[INFO ] 2023-06-12 16:09:39.673 [main] GRPCControlServer - Server awaitTermination
[INFO ] 2023-06-12 16:09:42.745 [grpc-default-executor-0] GRPCControlServer - createMqttConnection: clientId best-thing-akezhan broker a2rytmonq5cblh-ats.iot.eu-central-1.amazonaws.com:8883
[INFO ] 2023-06-12 16:09:42.751 [grpc-default-executor-0] MqttConnectionImpl - Creating Mqtt5Client with TLS
[INFO ] 2023-06-12 16:09:42.895 [Thread-2] MqttConnectionImpl - MQTT connectionId 1 connecting...
[INFO ] 2023-06-12 16:09:43.976 [Thread-2] MqttConnectionImpl - MQTT connectionId 1 connected, client id best-thing-akezhan
[INFO ] 2023-06-12 16:09:49.057 [grpc-default-executor-0] GRPCControlServer - Subscription: filter test/topic QoS 0 noLocal false retainAsPublished false retainHandling 2
[INFO ] 2023-06-12 16:09:49.057 [grpc-default-executor-0] GRPCControlServer - Subscribe: connectionId 1 subscriptionId null for 1 filters
[INFO ] 2023-06-12 16:09:49.246 [grpc-default-executor-0] GRPCControlServer - Subscribe response: connectionId 1 reason codes [0] reason string null
[INFO ] 2023-06-12 16:09:54.273 [grpc-default-executor-0] GRPCControlServer - Publish: connectionId 1 topic test/topic QoS 1 retain false
[INFO ] 2023-06-12 16:09:54.472 [grpc-default-executor-0] GRPCControlServer - Publish response: connectionId 1 reason code 0 reason string null
[INFO ] 2023-06-12 16:09:54.472 [Thread-2] MqttConnectionImpl - Received MQTT message: connectionId 1 topic test/topic QoS 0 retain false
[INFO ] 2023-06-12 16:09:59.490 [grpc-default-executor-0] GRPCControlServer - Unsubscribe: connectionId 1 for [test/topic] filters
[INFO ] 2023-06-12 16:09:59.691 [grpc-default-executor-0] GRPCControlServer - Unsubscribe response: connectionId 1 reason codes [0] reason string null
[INFO ] 2023-06-12 16:10:14.710 [grpc-default-executor-0] GRPCControlServer - closeMqttConnection: connectionId 1 reason 4
[INFO ] 2023-06-12 16:10:14.714 [Thread-2] MqttConnectionImpl - MQTT connectionId 1 disconnected error 'Mqtt5 client connection interrupted by user request.' disconnectPacket 'null'
[INFO ] 2023-06-12 16:10:14.714 [Thread-2] MqttConnectionImpl - MQTT connectionId 1 stopped
[INFO ] 2023-06-12 16:10:14.746 [grpc-default-executor-0] GRPCControlServer - shutdownAgent: reason That's it.
[INFO ] 2023-06-12 16:10:14.755 [main] GRPCControlServer - Server awaitTermination done
[INFO ] 2023-06-12 16:10:14.755 [main] GRPCLinkImpl - Shutdown gPRC link
[INFO ] 2023-06-12 16:10:14.767 [main] Main - Execution done successfully

Any additional information or context required to review the change:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

That PR missing handling of User properties on receiving side of MQTT v5.0 client.
For example: PubAck in AWS IoT device SDK for Java v2 has  getUserProperties] method.
I expecting CONNACK, SUBACK and so one also can have.
But we does not handle it.


fix references to various SSIS versions

We were using a "Current Version" include when we should have been referencing specific versions of SSIS which caused a ton of confusion when the "Current Version" include was updated to "2017".

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: csrowell sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thank you @csrowell for the help.  @douglaslMS please review.

I approve these changes to files I own. I suggest one further change:
To the statement that was corrected to read "If you created the project in [!INCLUDEssISversion12]", please add "or later".


Improving Beacon distance estimation

How to improve distance estimation using RSSI. The distance estimated from beacon.getDistance() method '' is varying with different phone orientation.Also, I am facing a huge jumping nature for the estimated position while moving . Any help will be grateful.

This is what you should expect. Distance estimation using RSSI values is not very accurate by nature. Certainly things could still be improved though, check out #127 for instance.


go get failed with invalid version error

$ go get -u github.com/httprunner/hrp/cli/hrp
go: downloading github.com/httprunner/hrp v0.5.3
go get: github.com/httprunner/hrp@none updating to
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>invalid version: unknown revision<PHONE_NUMBER>00

fixed in https://github.com/httprunner/hrp/commit/8d88dc91b4b9e7756173e8d32ab4d2ab867ce79e


[SPARK-50302] Ensure secondary index sizes equal primary index sizes for TransformWithState stateful variables with TTL

What changes were proposed in this pull request?
This PR ensures that the secondary indexes that state variables with TTL use are at most the size of the corresponding state variable's primary index. This change will eliminate unnecessary work done during the cleanup of stateful variables with TTL.
Why are the changes needed?
Context
The TransformWithState operator (hereon out known as "TWS") will allow users write procedural logic over streams of records. To store state between micro-batches, Spark will provide users stateful variables, which persist between micro-batches. For example, you might want to emit an average of the past 5 records, every 5 records. You might only receive 2 records in the first micro-batch, so you have to buffer these 2 records until you get 3 more in a subsequent batch.  TWS supports 3 different types of stateful variables: single values, lists, and maps.
The TWS operator also supports stateful variables with Time To Live; this allows you to say, "keep a certain record in state for d units of time". This TTL is per-record. This means that every record in a list (or map) can expiry at a different point in time, depending on when the element in the list is inserted. A record inserted into a stateful list (or map) at time t1 will expire at t1 + d, and a second that expires at t2 + d will expire at t2 + d. (For value state, there's only one value, so "everything" expires at the same time.)
A very natural question to now ask is, how do we efficiently determine which elements have expired in the list, without having to do a full scan of every record in state? The idea here is to keep a secondary index from expiration timestamp, to the specific record that needs to be evicted. Not so hard, right?
The state cleanup strategy today
Today's cleanup strategy is about as simple as I indicated earlier: for every insert to a value/map/list, you:

Write to the primary index
Using the current timestamp, you write into the secondary index

The issue with this approach is that we do two unconditional writes. This means that if the same state variable is written to with different timestamps, there will exist one element in the primary index, while there exists two elements in the secondary index. Consider the following example for a state variable foo with value v1, and TTL delay of 500:
For batch 0, batchTimestampMs = 100, foo updates to v1:

Primary index: [foo -> (v1, 600)]
Secondary index: [(600, foo) -> EMPTY]

Note that the state variable is included in the secondary index key because we might have several elements with the same expiration timestamp; we want (600, foo) to not overwrite a (600, bar), just because they both expire at 600.
Batch 1: batchTimestampMs = 200, foo updates to v2.
Primary index: [foo -> (v2, 700)]
Secondary index: [(600, foo) -> EMPTY, (700, foo) -> EMPTY]
Now, we have two entries in our secondary index. If the current timestamp advanced to something like 800, we'd take the following steps:

We'd take the first element from the secondary index (600, foo), and lookup foo in the primary index. That would yield (v2, 700). The value of 700 in the primary index is still less than 800, so we would remove foo from the primary index.
Then, we would look at (700, foo). We'd look up foo in the primary index and see nothing, so we'd do nothing.

You'll notice here that step 2 is entirely redundant. We read (700, foo) and did a get to the primary index, for something that was doomed—it would have never returned anything.
While this isn't great, the story is unfortunately significantly worse for lists. The way that we store lists is by having a single key in RocksDB, whose value is the concatenated bytes of all the values in that list. When we do cleanup for a list, we go through all of its records and Thus, it's possible for us to have a list that looks something like:

Primary index: [foo -> [(v1, 600), (v2, 700), (v3, 900)]]
Secondary index: [(600, foo) -> EMPTY, (700, foo) -> EMPTY, (900, foo) -> EMPTY]

Now, suppose that the current timestamp is 800. We need to expire the records in the list. So, we do the following:

We take the first element from the secondary index, (600, foo). This tells us that the list foo needs cleaning up. We clean up everything in foo less than 800. Since we store lists as a single key, we issue a RocksDB clear operation, iterate through all of the existing values, eliminate (v1, 600) and (v2, 700), and write back (v3, 900).
But we still have things left in our secondary index! We now get (700, foo), and we unknowingly do cleanup on foo again. This consists of clearing foo, iterating through its elements, and writing back (v3, 900). But since cleanup already happened, this step is entirely redundant.
We encounter (900, foo) from the secondary index, and since 900 > 800, we can bail out of cleanup.

Step 2 here is extremely wasteful. If we have n elements in our secondary index for the same key, then, in the worst case, we will do the extra cleanup n-1 times; and each time is a linear time operation! Thus, for a list that has n elements, d of which need to be cleaned up, the worst-case time complexity is in O(d*(n-d)), instead of O(n). And it's completely unnecessary work.
How does this PR fix the issue?
It's pretty simple to fix this for value state and map state. This is because every key in value or map state maps to exactly one element in the secondary index. We can maintain a one-to-one correspondence. Any time we modify value/map state, we make sure that we delete the previous entry in the secondary index. This logic is implemented by OneToOneTTLState.
The trickier aspect is handling this for ListState, where the secondary index goes from grouping key to the map that needs to be cleaned up. There's a one to many mapping here; one grouping key maps to multiple records, all of which could expire at a different time. The trick to making sure that secondary indexes don't explode is by making your secondary index store only the minimum expiration timestamp in a list. The rough intuition is that you don't need to store anything larger than that, since when you clean up due to the minimum expiration timestamp, you'll go through the list anyway, and you can find the next minimum timestamp; you can then put that into your secondary index. This logic is implemented by OneToManyTTLState.
How should reviewers review this PR?

Start by reading this long description. If you have questions, please ping me in the comments. I would be more than happy to explain.
Then, understand the class doc comments for OneToOneTTLState and OneToManyTTLState in TTLState.scala.
Then, I'd recommend going through the unit tests, and making sure that the behavior makes sense to you. If it doesn't, please leave a question.
Finally, you can look at the actual stateful variable implementations.

Does this PR introduce any user-facing change?
No, but it is a format difference in the way TWS represents its internal state. However, since TWS is currently private[sql] and not publicly available, this is not an issue.
How was this patch tested?

Existing UTs have been modified to conform with this new behavior.
New UTs added to verify that the new indices we added

Was this patch authored or co-authored using generative AI tooling?
Generated-by: GitHub Copilot

@neilramaswamy - thx for writing up a detailed PR description !

Before reading through the code, I read the PR description and the direction looks great to me. I think the behavior should have been like the proposed one, and somehow we missed this. Thanks for the fix!

Thanks for the detailed review, @HeartSaVioR. I have reacted with 👍 for comments that I have addressed, and I will let you resolve the conversation if you think it's sufficient. To summarize where we are:

I'm not sure whether we want some of the internal-only TTLState members/methods to be protected or private[sql]. I think they should be private[sql] so that we can use in testing, but not available to users.
I think that TTLState might be confusing because it's not acting fully as a mix-in, but rather a bunch of TTL utilities. Maybe I can make it an abstract class, and rename it to TTLUtils?

In my most recent revisions, I have also tried to make the comments less verbose and not provide content better suited for a design doc.

Thanks! Merging to master.


0.6.0

Added WinchLauncher.exe which will detect if the installed version of DREDGE is from Steam or Epic and then launch it via the vendor (previously Epic would just not launch properly from the manager).

dont merge yet because the action is making the launcher just a dll not an exe even though locally it does exe?


Dependant queries: function requires parameter  - ERROR: No overload matches this call

Describe the bug
Using a similar example which is displayed in the docs for Dependant Queries whereby the query options are passed in the first parameter.
https://tanstack.com/query/latest/docs/react/guides/dependent-queries this guide here specifies that it is possible
import ky from "ky";
type ResponseData = {
  activity: string;
};
export const getBoredActivity = async (id?: string): Promise<ResponseData> => {
  return await ky
    .get("http://www.boredapi.com/api/activity?key=" + id)
    .then((res) => res.json<ResponseData>());
};

export const useBoredActivity = (id?: string) => {
  // the ID parameter has to be possible undefined because it could be from an earlier query
  return useQuery({
    queryKey: ["boredActivity", id],  // Typescript error happens here
    queryFn: getBoredActivity,
    enabled: Boolean(id)
  });
};

No overload matches this call.
  The last overload gave the following error.
    Argument of type '{ queryKey: (string | undefined)[]; queryFn: (id?: string | undefined) => Promise<ResponseData>; enabled: boolean; }' is not assignable to parameter of type 'QueryKey'.
      Object literal may only specify known properties, and 'queryKey' does not exist in type 'readonly unknown[]'.ts(2769)

I would expect
Your minimal, reproducible example
https://codesandbox.io/s/react-query-no-overload-matches-this-call-jzc9lu?file=/src/useBoredActivity.ts
Steps to reproduce

Create a query with the options parameter overload
{queryKey, queryFn, enabled}
ensure your queryFn requires a parameter

Notice
Expected behavior
I expect the first parameter to accept the options argument and be okay with the 3 specified options, queryKey, queryFn and enabled.
I expected queryFn to pass the ID parameter to the function I specify
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform
macOS / VSCode
TanStack Query version
^4.12.0
TypeScript version
^4.8.0
Additional context
No response

getBoredActivity is a function that takes id?: string as input. However, if you pass that function directly to react-query via queryFn: getBoredActivity, this interface doesn't match, because react-query passes a QueryFunctionContext to the function, which is an object. It will also not work at runtime.
So you either have to change your getBoredActivity to also accept that QueryFunctionContext, which contains the queryKey so you can extract the id from there, or, just use an inline function:
queryFn: () => getBoredActivity(id)


Undefined rule font-family-no-missing-generic-family-keyword

Started getting error Undefined rule font-family-no-missing-generic-family-keyword  on format after updating stylelint-config-standard, probably outdated stylelint version?

I'm trying to get started with prettier-stylelint, and I'm getting the same error. Was thinking I had a bad config, but maybe there is bug or incompatible versions.
My stylelint.config.js is pretty basic:
module.exports = {
  extends: [
    "stylelint-config-recommended-scss",
    "./node_modules/prettier-stylelint/config.js"
  ]
};

And here's the error it throws for each file:
Error: Undefined rule font-family-no-missing-generic-family-keyword
    at module.exports (/Users/mstanaland/Desktop/account-react/node_modules/stylelint/lib/utils/configurationError.js:8:27)
    at Object.keys.forEach.ruleName (/Users/mstanaland/Desktop/account-react/node_modules/stylelint/lib/augmentConfig.js:278:13)
    at Array.forEach (<anonymous>)
    at normalizeAllRuleSettings (/Users/mstanaland/Desktop/account-react/node_modules/stylelint/lib/augmentConfig.js:274:29)
    at augmentConfigBasic.then.then.then.then.augmentedConfig (/Users/mstanaland/Desktop/account-react/node_modules/stylelint/lib/augmentConfig.js:83:12)
    at <anonymous>

Try npm --depth 1 update.
font-family-no-missing-generic-family-keyword was introduced in<EMAIL_ADDRESS>and this package does have a dependency range that includes that version.
(This probably won't work if use yarn as the lockfile pins stylelint to 8.1.1. I believe a new version of this package will need to be published if it wishes to be compatible with the stylelint version of config-standard and config-recommended.)

I have the same error :Undefined rule font-family-no-missing-generic-family-keyword, when set font-family-no-missing-generic-family-keyword": true, in .stylelintrc file.

Any news about this?

This is a huge pain, we have to manually run npm --depth 1 update each time a parent package updates.

Thanks, but I'm a yarn user: I'm waiting for some update in VScode stylelint extension.


chore: add editor config

Most editors work with .editorconfig files out of the box; though some require a plugin/extension.

Same linting issues are still there on my side ;)


Upgrading to koa 2.2.0 gives unexpected token { in koa/lib/response.js

After making some changes to my development environment, I was having issues getting koa 2.0 to work. It would complain that it can't find the function '_regeneratorRuntime' (related to the generators I suppose), ie:
Users/rw3iss/Sites/testapp_koa/src/server/routes/users/index.js:213
var _marked = [search, saveUser].map(_regeneratorRuntime.mark);
                                     ^
ReferenceError: _regeneratorRuntime is not defined

(I have "syntax-async-functions" and "transform-regenerator" set in my .babelrc plugins entry)
It used to work before. I then upgraded to Koa 2.2.0, and node v7, and now when I run the app, it seems it can't interpret some es6 stuff, ie:
/Users/rw3iss/Sites/testapp_koa/src/node_modules/koa/lib/response.js:47
    const { res } = this;
          ^

My development environment for the main app all works and compiles (with babel-node) using this and other es6 syntax. Not sure why it's complaining for underlying npm libraries.
Anyone know how to get around this?

Woops, had an old function using '*' generator instead of async/await! Sorry about that!


Don't use Ninja for bloaty build

It's not available on the default Ubuntu image...

@ntadej Sure I can also do that.


Phoebemirman/ch14651/add search wait indicator

https://app.clubhouse.io/augur/story/14651/add-search-wait-indicator
rm unused search, search is only in one place so changed those styles to match

Coverage remained the same at 66.637% when pulling 0c889506ee3d9e17c3ec9607e6166787fbc2d451 on phoebemirman/ch14651/add-search-wait-indicator into e251eff2a3ee61a0782c3b5802d4c749a93a40e5 on master.

Coverage remained the same at 66.637% when pulling 0c889506ee3d9e17c3ec9607e6166787fbc2d451 on phoebemirman/ch14651/add-search-wait-indicator into e251eff2a3ee61a0782c3b5802d4c749a93a40e5 on master.


Sending numeric values vs. strings

The specification currently requires numeric values to be send as strings, e.g "3" or "34.4":

Unicode (ISO 10646) and UTF-8 are used for all messages. Please note that the JSon elements are formatted as JSon string elements and not as JSon number elements or as JSon boolean elements, with the exception of the message type "aggregated status" where JSon boolean elements are used.
The reason why JSon string elements are heavily used is to simplify deserialisation of values where the data type in unknown before casting is performed, for instance for the values in "return values". Parsing is recommended to be performed case insensitive.

Apart from being a bit odd, it creates the problem that message values cannot be automatically validated using e.g. JSON Schema.

The reason why JSon string elements are heavily used is to simplify deserialisation of values where the data type in unknown before casting is performed, for instance for the values in "return values". Parsing is recommended to be performed case insensitive.
I don't understand this. Is this still valid? It seems very simply to use a standard json library to parse json. Having to write custom parse code seems error prone to me.


unable to init server: Could not connect: Connection refused

我在训练过程中，总是出现“unable to init server: Could not connect: Connection refused”这个报错。详细报错见下面。
/usr/local/lib/python3.6/dist-packages/pytorch_lightning/metrics/init.py:44: LightningDeprecationWarning: pytorch_lightning.metrics.* module has been renamed to torchmetrics.* and split off to its own package (https://github.com/PyTorchLightning/metrics) since v1.3 and will be removed in v1.5
"pytorch_lightning.metrics.* module has been renamed to torchmetrics.* and split off to its own package"
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
(train.py:34): Gdk-CRITICAL **: 10:35:14.994: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
[root][06-29 10:35:15]INFO:Using Tensorboard, logs will be saved in workspace/nanodet_m_persion/logs
[root][06-29 10:35:15]INFO:Setting up data...
[root][06-29 10:35:15]INFO:loading annotations into memory...
我是在服务器上，通过创建docker容器来运行的。我发现创建docker容器时，如果不增加-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE这几个参数，那么训练nanodet时，就会停在“unable to init server: Could not connect: Connection refused”这个报错几分钟，之后才会继续输出训练打印信息。如果我增加了上述几个参数，虽然训练时，依然会有unable to init server: Could not connect: Connection refused报错，但是很快就会继续输出下面的打印，开始进行训练。
我知道这个几个参数都是和显示图片有关的命令，但是具体不知道为什么无论是否增加参数，都会输出unable to init server: Could not connect: Connection refused，而且，这个报错到底是和谁链接失败导致的。

nanodet 在训练时应该没有和GUI相关的调用

nanodet 在训练时应该没有和GUI相关的调用

这个警告每次都出来，(train.py:34): Gdk-CRITICAL **: 10:35:14.994: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

Would you like to share your Dockerfile? @liuqinglong110