CAMEL-10612: camel-reactive-streams

I publish a preview of the reactive-stream component, asking for a review.
The purpose of the component is to allow Camel to exchange messages with any
asynchronous stream processing system compatible with the reactive-streams specs
(rx-java, akka-streams, vertx, ..., the list will grow).
I've included in the component the reactive-streams TCK to ensure compliance with the specs.
All streams produced by Camel are open streams (otherwise called hot streams).
basic usage
From Camel to an external stream engine:
from("timer:tick")
.setBody().header(Exchange.TIMER_COUNTER)
.to("reactive-streams:integers");

Publisher<Integer> integers = CamelReactiveStreams.get(context).getPublisher("integers", Integer.class)
// use it eg. in rxjava2
Observable.fromPublisher(integers)
	.map(...)
	.flatMap(...)
	.subscribe();

From an external engine to Camel:
from("reactive-streams:numbers")
.to("log:INFO");

Subscriber<Integer> numbers = CamelReactiveStreams.get(context).getSubscriber("numbers", Integer.class);
// use it eg. in rxjava2
Flowable.range(0, 40)
	.subscribe(numbers); // a stream with numbers from 0 to 39

Converting a Consumer into a Subscriber and a Producer into a Publisher has been straightforward.
The difficult part has been managing backpressure correctly. I left the door open for different implementations of the engine, but it may be not so easy to implement them because of the way backpressure should interact with Camel mechanisms.
Backpressure is a fundamental part of the specs and establishes mechanisms by which a Publisher
can deal with slow Subscribers. Whithin a suscription, subscribers give constant feedbacks to the publishers indicating the number of items they are willing to receive (almost like TCP flow control window).
Camel (afaik) has not direct support for this kind of flow control, but has similar concepts, like throttling and route policy.
So here's how implemented backpressure.
backpressure in producer
(from Camel route to an external subscriber)
Backpressure is handled by an internal buffer that caches exchanges before delivering them to the subscribers.
It is important to avoid a buffer overflow. Eg. a route like from("jms:xx").to("reactive-streams:pub") can cause easily a out-of-memory error if the queue contains a lot of messages (eg. after a shutdown).
To avoid this kind of problems, both throttling and ThrottlingInflightRoutePolicy can be used.
Throttling (from("..").throttle()..) just delays messages, so it cannot deal with idle/too-slow subscribers.
A ThrottlingInflightRoutePolicy is the preferred way to deal with slow subscribers. Exchanges are considered completed only when they are received by all subscribers, so users can set a maximum number of inflight exchanges in the policy then route suspension/resume will be controlled by backpressure: a slow subscriber will cause periodic route suspensions.
A snippet from the Junit test:
ThrottlingInflightRoutePolicy policy = new ThrottlingInflightRoutePolicy();
policy.setMaxInflightExchanges(10);
policy.setScope(ThrottlingInflightRoutePolicy.ThrottlingScope.Route);

from("timer:tick?period=50")
.routePolicy(policy)
.to("reactive-streams:pub");

When a subscriber of the pub stream becomes idle, about 10 messages are accumulated in the internal buffer,
then the route is suspended. When the subscriber starts processing the messages again, the route is resumed.
It works also with multiple subscribers (in practice, the slowest one controls the suspension/resume).
The ThrottlingInflightRoutePolicy should (must) be used eg. when consuming from JMS.
In some circumstances (eg. http consumer), suspending the route is not the best approach, so it's better handling backpressure by just buffering (the default approach).
backpressure in consumer
(from an external publisher to a Camel route)
When consuming items from a reactive-streams publisher, the maximum number of inflight exchanges can be set as endpoint option.
The subscriber associated with the consumer interact with the publisher to keep the number of messages in the route lower than the threshold.
The number of concurrent consumers can also be set as endpoint option. By setting 1 consumer (the default) exchanges are processed by a single thread, so
the order of items in the stream is maintained. This value can be increased and the items will be processed concurrently (so not preserving the order).
A snippet from the tests:
from("reactive-streams:numbers?concurrentConsumers=5&maxInflightExchanges=10")
.to("mock:endpoint");

TODOS

write proper documentation
move some global options to the producer endpoint (need to find a way to do it properly)
add the possibility to handle "onError" and "onComplete" events in the Camel route
improve context shutdown by closing correctly all streams
test with other frameworks (currently using rxjava2, reactive-streams TCK and custom pub/sub)
check osgi compliance
add the ReactiveStreamService  to the spring-boot application context in the starter
maybe add direct usage of Camel endpoints directly
improve it after feedbacks

@nicolaferraro great work and good timing.
We are also looking into adding a chapter/section about Camel Reactive Streams and would therefore like to use this new component than the old camel-rx module.

I do not know if it is possible and how complex it would be but would it make sense to have the endpoint searching in the registry for a java.util.function.Consumer (o something similar) to set-up subscribers and publishers ?
So i.e in spring-boot I can do something like:
class MyConfig {

    @Bean(name = "subscriber")
    public Consumer<Subscriber<Integer>> subscriberConsumer() {
        return s -> Flowable.range(0, 40).subscribe(s)
    }

    @Bean(name = "publisher")
    public Consumer<Publisher<Integer>> publisherConsumer() {
        return p -> Observable.fromPublisher(integers).map(...).subscribe();
    }

    @Bean
    public RouteBuilder routeBuilder() {
        return new RouteBuilder() {
            public void configure() {
                from("reactive-streams:subscriber")
                    .to("log:INFO");
                from("timer:tick:")
                    .to("reactive-streams:publisher");
            }
        };
    }
}

And forget about bridging them with:
CamelReactiveStreams.get(context).getSubscriber(...)
CamelReactiveStreams.get(context).getPublisher(...)

Would be nice to have an example too.

Thanks a lot @davsclaus and @lburgazzoli . I'll proceed with the changes.
I like a lot the idea of automatic registration of pub/cons for streams, so we can avoid the manual registration in some environments.
Another big part that is missing now is the possibility to do IN/OUT messaging.
I mean, an asynchronous equivalent of the ProducerTemplate::requestBody that can be used like:
Publisher<String> res = camelReactiveService.request("streamname", "Input to the route", String.class);

This kind of interaction will be very useful in many context, because it allows to pass an input object and receive a response in a completely reactive way. The resulting publisher will be a Mono, containing a single item or an error. It can be "flatmapped" and mixed with other streams.

@nicolaferraro yeah a client api would be great to have as well.
Surely this is great work. And we can get more community feedback when its part of the next release, and then refine it over one or two releases more.
If the backpressure becomes more elaborate then we may think about some nicer fluent builder DSL support for that, to setup that as route policy etc.
Also mind that some of the power of Camel is that users can configure routes in both Java or XML and not be locked in.
And an example would be nice also. And then try to see how much/harder it is to setup the routes in XML.
Yes some hipsters says XML is bad, but it pushes the bar higher to avoid developers having to code alot, or add a gazillion dependencies and remember 100s of class names to use.
eg Spring Boot have great configuration in their application.properties, where as WF-Swarm etc requires users to add JARs - import java packages, remember which class to use, to configure a few things. Okay a side track, back to have a good weekend.

I was playing with S3 today and I didn't notice this PR.
Just would like to say great work @nicolaferraro ! :-)

But for API changes to CamelContext we are in a bit unique position as we can prepare the API for 3.0 and therefore likely look at do some changes and deprecate the old api, so 3.0 has a cleaner and suitable api etc. Okay flight is boarding time. See you guys

Merged first stable version into master to continue working on it with @lburgazzoli.


Remove without_storage_info from pallet transaction-storage

Introduces MaxBlockTransactions and MaxTransactionSize config values
Removes MaxBlockTransactions and MaxTransactionSize from storage
Values remain the same, logic is untouched
Adds migration to remove the unused storage values

bot merge


Update the start time on the correct instance

Right now the tock method updates the start time on the Tick instance.
This fixes the issue by updating the start time on the correct instance (Timer).

Good find!


Core :: Research ZDU

[x] Research:

Do we probe the API too much and we fail due to that?
Do we need to increase the max amount of procs for the go process?

The research is done, results were applied to this PR: https://github.com/keptn/keptn/pull/7860


Fix nil panic

A short explanation of the proposed change: Only call close on the original requests body if it is non-nil, otherwise this will cause a panic.

An explanation of the use cases your change solves: Prevent panics.

Instructions to functionally test the behavior change using operator interfaces (BOSH manifest, logs, curl, and metrics)

Expected result after the change: No panic if we have a client request without a body and the client disconnects early.

Current result before the change: gorouter panics if we have a client request without a body and the client disconnects early.

Links to any other associated PRs: #333

[X] I have viewed signed and have submitted the Contributor License Agreement

[X] I have made this pull request to the main branch

[ ] I have run all the unit tests.

[ ] (Optional) I have run Routing Acceptance Tests and Routing Smoke Tests

[ ] (Optional) I have run CF Acceptance Tests

I'll try to come up with a regression test for this.


Ground Items Customization GUI Keybinding

Currently on runelite pressing ALT shows an in-game gui for customizing what items on the ground are shown, not shown, or highlighted if the Ground Items plugin is enabled. However, I and many other players use ALT to control our cameras. This means that whenever we try to turn our cameras a bunch of clutter pops up onto the screen and I personally often end up highlighting an item that I had hidden by clicking to turn my camera right after pressing alt, and accidentally clicking on an item name that just popped up after I pressed alt. This presents a bit of a nuisance. I know that most people use their middle mouse button to turn the camera, however my mouse does not have a middle mouse button. Furthermore, when playing on a laptop using the trackpad, there is no middle mouse button available.
I would like to request that an addition to the Ground Items plugin's settings menu be added. This would be a line where you can set a custom keybind for toggling the ingame customization GUI. I would like to be able to set this functionality to my `/~ key, to my caps lock, or to specifically my right alt and not my left alt.
If adding the option to customize this keybind is not possible, then I request that a toggle be added to only use the right alt on the keyboard, and ignore the left alt.
Thank you for reading! I know this post might be a bit wordy, but I decided to follow the template instead of quickly summarizing =D.

Duplicate of #7831 (easier to read)


[FancyZones] Windows change position when new layout is applied on different VD

Steps to reproduce

Have flag During zone layout changes, windows assigned to a zone will match new size/positions turned on.

Assign zone layout on primary desktop.
Assign window to certain zone in the layout.
Create new virtual desktop.
Choose different layout on new virtual desktop.
Switch back to primary desktop.

Expected behavior

Window assigned in zone on the primary desktop kept his position.
Actual behavior

Window takes new size/positions which corresponds to zone on the second virtual desktop with same zone index as window held in layout on primary desktop.

The fix is now available in 0.18 https://github.com/microsoft/PowerToys/releases


Application Insights fails with Angular 5 giving 404

Hi All,
One of my team is working on implmenting  Azure App Insights with there Angular 5 developed SPA app and whenever they include the required App Insights library they receive following error:-
Failed to load resource: the server responded with a status of 404 (Not Found)
details:194 Error
(anonymous) @ details:194
node_modules/@angular/core/bundles/core.umd.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
node_modules/@angular/forms/bundles/forms.umd.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
node_modules/@angular/common/bundles/common-http.umd.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
node_modules/@angular/platform-browser/bundles/platform-browser.umd.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
node_modules/@angular/common/bundles/common.umd.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
node_modules/@angular/router/bundles/router.umd.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
Not sure what is going wrong here and why get a 404, This is Angular 5 app.
Any insights on how we can fix it?

can you post a code snippet

hi @markwolff sorry for the delay in responding, I have asked my dev team to let me know where exactly and when we get this issue, is it just when we add the required nugget packages and call some method. I will get back to you on this one.

Closing this for now. Please comment again if you'd like it to be re-opened


Exclude URLs that already overlap with defaults

This shouldn't happen with https://github.com/fregante/webext-domain-permission-toggle (untested) but it can happen if the user manually adds permissions.
If manifest.json includes:
{
	"permissions": [
		"https://*.github.com/*",
	]
}

And then the extension calls browser.permissions.request('*://*/*'), neither the browser nor webext-dynamic-content-scripts will deduplicate this with existing permissions, so the scripts will be inserted twice.

I think this can be solved by adding preexisting origins (of each content_script) in the exclude_matches prop
https://github.com/fregante/webext-dynamic-content-scripts/blob/251bf0ccf83f1ca4b1f5969f5d26c3d4da1bc4d7/index.ts#L23-L29
Would become:
const registeredScript = chrome.contentScripts.register({
	js: (config.js || []).map(convertPath),
	css: (config.css || []).map(convertPath),
	allFrames: config.all_frames,
	matches: [origin],
	exclude_matches: config.matches,
	runAt: config.run_at as browser.extensionTypes.RunAt
});

Additionally this should ignore whole scripts that are already enabled on <all_urls> or *://*/*.
The implementation is different since register doesn't need to be called at all, but the concept is the same.
If every script is enabled everywhere, it could use console.warn because this module is useless in that case. A warning rather than an error would be useful for cross-browser extensions. Example: https://github.com/sindresorhus/refined-github/issues/3766

Additionally this should ignore whole scripts that are already enabled on <all_urls> or *://*/*.
The implementation is different since register doesn't need to be called at all, but the concept is the same.
If every script is enabled everywhere, it could use console.warn because this module is useless in that case. A warning rather than an error would be useful for cross-browser extensions. Example: https://github.com/sindresorhus/refined-github/issues/3766


Implement a build artifact archiving mechanism

This feature relies on the following configuration keys:

archive: takes a single or a list of globs. The matching files are archived regardless of the result of the build
archive_success: takes a single or a list of globs. The matching files are archived in case of a successfull build
archive_failure: takes a single or a list of globs. The matching files are archived in case of a failed build

The archived files are then exposed over http using the following endpoint:
bzk_server:3000/variant/{id}/artifacts/{path}
Where id is the variant id and path the path to an archived artifact.
Fixes #144

An example config for a java project:
language: java
jdk:
  - oraclejdk8
  - openjdk8
  - oraclejdk7
archive:
  - target/classes
archive_success: target/*.jar
archive_failure:
  - target/surefire-reports

Just a note: the approach taken here, i.e. storing and serving the build artifacts from the filesystem, will be a problem for #71: distributed build since this pins a particular build to a particular machine.


Sections without images show their header

Maybe a product of my snowflake workflow with this; but when there is a section that doesn't map to any photos, the header will still be shown on the generated page.
[[section]]
title = "My Empty Section"
folder = "./media/nothing"
slug = "empty"

This will still show "My Empty Section" inlined in the site, in my case it's desirable to not have it show up at all. I pre-populate my foto.toml with a number of sections and essentially generate the output site on a cronjob/trigger whenever new photos get uploaded.
I've worked around it for my own purposes with a rather simple (and probably poorly thought out) patch that's done the job for my purposes:
From 36d1de95ab125beb142ced1a0f9605dacdf7f903 Mon Sep 17 00:00:00 2001
From: fkxr<EMAIL_ADDRESS>Date: Sat, 27 Jul 2024 20:52:19 +0200
Subject: [PATCH] omit empty folders from generating headers

---
 internal/indexer/indexer.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/internal/indexer/indexer.go b/internal/indexer/indexer.go
index 25ce94f..44f067a 100644
--- a/internal/indexer/indexer.go
+++ b/internal/indexer/indexer.go
@@ -55,7 +55,9 @@ func Build(metadata []config.SectionMetadata, option config.ExtractOption) ([]Se
 		}
 		slugs[slug] = true

-		sections = append(sections, s)
+		if (len(s.ImageSets) > 0) {
+			sections = append(sections, s)
+		}
 	}

 	return sections, nil

But perhaps it's something to consider solving more properly.

@fkxr-dev thanks for the feedback! It should be fixed in main branch now.

Yep, confirming this looks fixed on latest. Thanks for the quick fix!


[RFC] GeoIP database auto update to provide the latest IP to geo location mapping in GeoIP processor

The purpose of this RFC (request for comments) is to gather community feedbacks on a proposal to provide a way to update a GeoIP database in GeoIP processor automatically.
Problem Statement
There is a need to add location information like city name, country name, or coordinates of a given IP address during a data ingestion in an OpenSearch cluster. As IP addresses are assigned to organizations, the mapping between an IP address to a location information keeps changing by nature. Therefore, to get a better accuracy on a location information of a given IP address, the mapping data need to be updated periodically. However, the OpenSearch uses a static mapping data which does not get updated.
Current State
OpenSearch has a GeoIP processor with which a user can add location data like city name, country name, latitude/longitude, and more based on an IP address in a document. OpenSearch uses GeoLite2 databases as a mapping data from an IP address to a location information which was provided by MaxMind in 2019/11/19.
OpenSearch gets GeoLite2 Country, GeoLite2 City, and GeoLite2 ASN database file from a maven repository and include them in the build artifact. When a node starts, it prepare the list of available databases by reading the GeoLite2 databases from a local disk. Once GeoIP processor is called for the first time after the node starts, it loads an appropriate database into memory and use it. Users can put their own database in $OS_CONFIG/ingest-geoip folder either to override existing database or to add new database. However, users have to restart every nodes to reload the updated database files from a disk.
MaxMind update the GeoLite2 database twice weekly but the OpenSearch users cannot benefit from the update as there is no easy way to update the database automatically without restarting nodes in a cluster.
Proposal
We want to have a feature in the OpenSearch where the mapping data from IP address to location information is updated regularly without manual intervention so that a user can get better accuracy on a location information of an IP address during a data ingestion with minimum effort.
Approach

We will have free database distribution server which will host the MaxMind database file. The file in the server will get updated regularly. The server will have a manifest file for each database.
A user call an API to create a GeoIP policy with a url of a manifest file.
An OpenSearch cluster will parse the manifest file, download a GeoIP database file, and make it ready to be used in a GeoIP processor.
While the OpenSearch cluster prepare the GeoIP database to be used by GeoIP processors, a request to create a GeoIP processor using the GeoIP policy will fail.
Once the GeoIP database is ready to be used by GeoIP processors, a user can create a GeoIP processor using the GeoIP policy name.
In the background, the OpenSearch cluster update the GeoIP database with given interval.

Data flow diagram

API design
https://github.com/opensearch-project/OpenSearch/issues/5860
Data format
Option1. MaxMind Format
One option is to use MaxMind data format and MaxMind SDK to read the database file as what we have today. A cluster manager node will download GeoIP database from an external endpoint and store it in an index. It will notify to all ingest nodes to download the new database file from the index. Once every ingest node is ready to use the new database file, the manager node will update a flag in an index. Each ingest node check the flag in the index to decide whether to start to use the new database or not.

Pros

Small IP address to location information mapping data size (GeoLite2-City: 70 MB)
Just a few seconds to prepare data to be used by a GeoIP processor
Fast data ingestion time. (0.05ms/doc)

Cons

Dependency on a MaxMind format
Dependency on a MaxMind data

Possible future improvement

We can have our own binary format and SDK for the mapping data. This will remove a dependency on the MaxMind data format in OpenSearch.

Option2. OpenSearch Index(Preferred)
In this option, we will utilize an OpenSearch index. An OpenSearch cluster will download a file in CSV format from an external endpoint. After the download complete, it will put the data into an index in an OpenSearch cluster. ~It will also create an index alias pointing to the newly created index.~ Update: We are not going to use alias but query the index directly as alias can be modified or deleted by a user unlike system index.
The index will be a single shard with auto_expand_replicas value as 0-all so that querying an index can happen within a same node to achieve a fast processing time.
The GeoIP processor will query the index internally to populate location data during the ingest time.

CSV file format

The first line will be a field name for each column.
The first column should be IP range in CIDR format.

//Example
cidr latitude longitude city country
<IP_ADDRESS>/24 -37.8333 145.2375 Seattle "United States"

Pros

No dependency on MaxMind data format.
Can use another GeoIP database provided other than MaxMind. For example, IP2Location database provided by Hexasoft. We can not provide a free database distribution server for IP2Location database due to its license but a user can setup their own server.
Can benefit from future performance improvements on indexing in an OpenSearch out of the box.

Cons

Bigger data size than the option1. (GeoLite2-City: 400MB in a segment file which is 3.5 times larger than option1)
Slower to prepare data to be used in a processor due to indexing time. (GeoLite2-City: 300 seconds)
Slow data ingestion time compared to the option 1. (0.059ms/doc) Even slower data ingestion time if a cluster has separate ingest nodes which are not data node. (0.071ms/doc)
Repeated load on a cluster with indexing process during database update.

Possible future improvement

For the index which was created by geoip policy, we can make them to be stored in ingest nodes. This will prevent an increase in a query latency when a cluster has separate ingest nodes from data nodes.
We can generate index using a lucene library directly to reduce the index time.

Questions to community

Do you want to use your own GeoIP database or any other GeoIP database other than free GeoLite2 database provided by MaxMind?
Which GeoIP database have you used in OpenSearch: GeoLite2-City, GeoLite2-Country, GeoLite2-ASN, or all of them?
How frequently do you want to update the GeoIP database? Once a day or once a week?
Do you have separate ingest nodes from data nodes in the cluster?

Implementations

GeoIP datasource implementation
GeoIP datasource integration in GeoIP processor

The GeoIP processor will query the index internally to populate location data during the ingest time.

If there are separate ingest nodes and data nodes how the search will look like as the data is not present on the node? Who will get the query request for search?
Will there be a separate RFC which will provide details on index mapping, query to get IP to location details?

If there are separate ingest nodes and data nodes how the search will look like as the data is not present on the node? Who will get the query request for search?

It will use internal client to query the index. Therefore, the routing will be decided as same way as other index queries.

Will there be a separate RFC which will provide details on index mapping, query to get IP to location details?
Will share implementation detail later in a separate document.

Hi @heemin32 , if this feature requires documentation, can you please create a documentation issue for it? Thanks!

Hi @heemin32 , if this feature requires documentation, can you please create a documentation issue for it? Thanks!

Thanks @hdhalter. Created an issue.

What is the unified backlog project?

I like the idea to use an OpenSearch index a lot more than introducing an additional store or format. Will comment on https://github.com/opensearch-project/OpenSearch/issues/5860.

If we are using an OpenSearch index, maybe it makes sense to store the data as an index snapshot.

With index snapshot, there is an issue of a chance of incompatibility between versions. Also, generation of index snapshot make a user hard to setup their own server for isolated region.

After implementation we have done a performance test and found a high performance degradation compared to existing GeoIP processor. Following is a summary of the benchmark result.
Tool: https://github.com/opensearch-project/opensearch-benchmark
Machine(OpenSearch cluster): Single docker container in m5.xlarge with 10G heap size.
Machine(Benchmark tool): m5.xlarge
Workload: http_logs
Setting: default (5000 bulk size and 100% of data)

Processor
Throughput

Legacy GeoIP
140,969 docs/s

New GeoIP
16,631 docs/s

The reason of this low performance is in three places. 1. We make search call inside ingest process for each document. This consume search thread and the requests are rejected at certain point because search thread is not released quickly enough to handle all the incoming ingestion requests. This can be a greater problem when there is a search traffic. Both ingest and search request will fight for limited search thread resource and the ingestion throughput will decrease further. 2. As we make search call for each and every document, there are some overhead on request/response serialization and deserialization. 3. The Lucene library to search IP range is not good enough compared to Maxmind library. See the benchmark result on library level below.
Tool: https://github.com/maxmind/MaxMind-DB-Reader-java/blob/main/sample/Benchmark.java
Machine: Mac M1 processor with 32GB memory
Data: GeoLite2-City
For Lucene, we constructed segment file using Lucene library before running the benchmark.

Maxmind
Lucene

220K(850K with cache) search/seconds
26K search/seconds

Therefore, we will look for another way to overcome this performance degradation. Mostly we will use the Maxmind data format and its library for now and give some room to support other format later in the future.

What is the IP distribution in your data set? Would an in-memory size-bound cache suffice to overcome this?

What is the size of the entire IP-Geo mapping file ?

What is the size of the entire IP-Geo mapping file ?
Depends on what format we use. For MaxMind binary format, City data is 70MB, Country data is 6MB, ASN data is 8MB.

What is the IP distribution in your data set? Would an in-memory size-bound cache suffice to overcome this?

With cache size of 100,000 items assuming that single item is 1KB and using 100MB following is a cache hit ratio for the workload.

file
record count
cache hit count
cache hit ratio

documents-181998.json
2708746
47636
1.76%

documents-191998.json
9697882
133047
1.37%

documents-201998.json
13053463
145562
1.12%

documents-211998.json
17647279
167819
0.95%

documents-221998.json
10716760
99268
0.93%

documents-231998.json
11961342
99138
0.83%

documents-241998.json
181463624
1043508
0.58%

What is the size of the entire IP-Geo mapping file?

Depends on what format we use. For MaxMind binary format, City data is 70MB, Country data is 6MB, ASN data is 8MB as of today.

For running the mapping, can we assume the maximum memory requirement is ~100MB worst case? If so, can we evaluate keeping an in-mem for performance?

What is the IP distribution in your data set? Would an in-memory size-bound cache suffice to overcome this?

With cache size of 10,000 items

file
record count
cache miss count
cache hit ratio

documents-181998.json
2708746
47636
98%

documents-191998.json
9697882
133047
98%

documents-201998.json
13053463
145562
98%

documents-211998.json
17647279
167819
99%

documents-221998.json
10716760
99268
99%

documents-231998.json
11961342
99138
99%

documents-241998.json
181463624
1043508
99%

With cache size of 1,000 items

file
record count
cache miss count
cache hit ratio

documents-181998.json
2708746
62591
97.69%

documents-191998.json
9697882
224963
97.68%

documents-201998.json
13053463
264461
97.97%

documents-211998.json
17647279
304869
98.27%

documents-221998.json
10716760
191528
98.21%

documents-231998.json
11961342
223639
98.13%

documents-241998.json
181463624
19161527
89.44%

@heemin32 @vamshin : Is this on track for 2.9 release ? If not, please update the labels accordingly

@heemin32 Should this issue be labelled for 2.11?

It will be released in 2.10. Closing it.


Probe corner and Z too close

Discussed in https://github.com/terjeio/ioSender/discussions/391

Originally posted by rmaltais June 29, 2024
Hi.
I would like to know if there is a way to move the probe a little less close to the edge of part. If I detect the corner of a part at the same time with height of the Z, it's often have less precise corners and I would like the probe to be less close to the edge. I can't find a way to move the probe other than manually after running the script in IoSender

Add an offset here:


Add http linking in test run describtion

For example like this

Here I have tried to have a
8.15.0-SNAPSHOT
Usually each run is a stat of some repo so that might be usefull to be jump right at the broken code of the app

Implemented.


Allow changing server ports

Another (low priority) feature request... I don't mean to overwhelm you with all of it or seem entitled. It just seems you are really motivated to make this a great project and I want to contribute from a user's perspective.
It would be great if we could adjust the web interface port from the config. For example, I had to run the server in network_mode=host where the server binds to the port on the host container instead of the docker container and had something else running on port 8000.
I had to change the port on my other existing service and all dependencies for it. It would be great if we could adjust that from the config.

I don't know if that help, but
You can configure the webserver port in docker-compose.yml.
version: "3.7"
services:
  wg-access-server:
    image: place1/wg-access-server
    container_name: wg-access-server
    cap_add:
      - NET_ADMIN
    volumes:
      - "wg-access-server-data:/data"
    #   - "./config.yaml:/config.yaml" # if you have a custom config file
    ports:
      - "8005:8000/tcp"
      - "51820:51820/udp"
	# network_mode: host # or use network mode
    devices:
      - "/dev/net/tun:/dev/net/tun"

# shared volumes with the host
volumes:
  wg-access-server-data:
    driver: local

then run
docker-compose up -d

I want to contribute from a user's perspective.

thanks, this is something that's easy to overlook when writing your own project.
i'll make a PR and an new RC with this change, should be easy.

@KimchaC this is now available in 0.2.0-rc2


crash after 1.3.5 update for neoforge 1.21.1 .80

https://mclo.gs/AyiF3UL

1.3.4 works fine

Issue found and fixed, 1.3.6 is out now.

ty


Readonly is now considered by exec.jl

Very simple PR to review. Address the issue: https://relationalai.atlassian.net/browse/RAI-11414

If the example runs correctly locally, merge away 👍
(unfortunately we still don't have the example/s in CI


Added sample configs for Service Portal

@iphands Please review

@mkanoor hey sorry I was tired yesterday and a simple detail escaped me.
You dont have to do this.... but if you want you can replace the access.ci*com part of the configs with 'PORTAL_BACKEND_MARKER'.
This behaves the same when you use ci.foo.redhat.com:1337 but different when you use prod.foo.
Basically.... if the proxy sees 'PORTAL_BACKEND_MARKER' it rewrites it to the correct backend.
So on:
ci.foo -> access.ci.*
qa.foo -> access.qa.*
prod.foo -> access.redhat.com
So it might help to have that in the config as you move you are deployed into more than just CI.
Its not critical though, the current patch will do just fine for CI I think.

Oh also @mkanoor please merge these into your repo. Not the proxy repo.
The team specific config overrides do not belong in the proxy repo. Sorry for the confusion


[QUESTION] What's the difference between add_corpus and add_doc?

Hi, this is a wonderful library! Very grateful that you've put in the time to create and maintain this. Thank you 😃
Forgive my ignorance, but besides the transform parameter, what is the difference between add_corpus and add_doc?

Hi @batmanscode
Thank you for your interest to my package!
First, every topic model in tomotopy has its own internal document type. You can create and add a document suitable for each model through each model's add_doc method. So far it's good.
However, trying to add the same list of documents to different models becomes quite inconvenient, because you should add_doc for the same list of documents to each different model.
Thus, tomotopy provides Corpus class that holds a list of documents. You can insert this Corpus into a model using passing it as argument corpus to __init__ or add_corpus method of each model. So, inserting Corpus just has the same effect to inserting documents the Corpus holds.
Last, the argument transform is a bit tricky. Some topic models requires different data for its documents. For example, DMRModel requires argument metadata in str type, but PLDAModel requires argument labels in List[str] type. Since Corpus holds an independent set of documents rather than being tied to a specific topic model, data types required by a topic model may be inconsistent when you add a corpus into that topic model. In this case, you can transform miscellaneous data to be fitted your topic model using argument transform. Following example maybe helps you:
from tomotopy import DMRModel
from tomotopy.utils import Corpus

corpus = Corpus()
corpus.add_doc("a b c d e".split(), a_data=1)
corpus.add_doc("e f g h i".split(), a_data=2)
corpus.add_doc("i j k l m".split(), a_data=3)

model = DMRModel(k=10)
model.add_corpus(corpus)
# You lose `a_data` field in `corpus`,
# and `metadata` that `DMRModel` requires is filled with default value, empty str.

assert model.docs[0].metadata == ''
assert model.docs[1].metadata == ''
assert model.docs[2].metadata == ''

def transform_a_data_to_metadata(misc: dict):
  return {'metadata': str(misc['a_data'])}
# this function transforms `a_data` to `metadata`

model = DMRModel(k=10)
model.add_corpus(corpus, transform=transform_a_data_to_metadata)
# Now docs in `model` has non-default `metadata`, that generated from `a_data` field.

assert model.docs[0].metadata == '1'
assert model.docs[1].metadata == '2'
assert model.docs[2].metadata == '3'

Thank you @bab2min that was a very thorough explanation! Very much appreciated 😊. I think corpus might come in handy as I play around with more models.
Please consider adding your explanation and example to the docs. I think that would be helpful. Maybe you can put it right before "Parallel Sampling Algorithms".

@batmanscode Thank you for the good suggestion.
I'll insert it into documentation at the next update!


Add version: MonkeysAudio.MonkeysAudio version 1.017

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/115180&drop=dogfoodAlpha

@wingetbot run


New multiple thumbnail sample

Q
A

Bug fix?
no

New sample?
yes

Related issues?
no related issues

What's in this Pull Request?
A new column sample to create a multiple thumbnail, through images URLs listed in a multiple choice column.

Direct link here: https://github.com/Fedes365/List-Formatting/tree/master/column-samples/multiple-thumbnail

@tecchan1107
I made some changes to remove any limitation related to the suggested apps.
I tried also to illustrate a use case with a lookup column instead of a multi-choice, when SharePoint images are stored in a document library (of the same site). However, it seems that it's not possible, because a lookup column cannot have a document library file name column as a data source 😱... 😓
Therefore I tried a workaround by using also a calculated column as intermediary data source (basically a "waterfall" of data source), but I realized a calculated column couldn't recognize the OOTB file name column as existing.
Well, this is the maximum I was able to build by playing with URLs arrays. So... ready to review.
Thanks and see you later! 👋

Thank you for the excellent and beautiful sample @Fedes365 🙏✨
I had an opportunity to display logos and used this sample as soon as possible! It is very easy to understand if it is displayed in an image rather than in text!
After using the sample, I had three concerns.

The first thing that concerned me was that the images were cut off unless the column width was widened for both basic and advance.

How about removing "min-width": "730px" and modifying the image to be wrapped to fit the column width?

Regarding advance, sorry I can't really put it into words, but I feel uncomfortable updating the column values to enlarge the image... If the purpose is to display images in a larger size, how about displaying them in a custom card, like image-lightbox? This way, there is no need to update the columns.

Regarding the link to Microsoft Designer in advance, I was confused as to what to do after clicking on the link... If a link to Microsoft Designer was to be displayed, I thought it would be better if there was an note in the screen, or a reason to display the link in the README, etc.

Hello @tecchan1107 and thanks a lot for your feedback! I will touch all the points you reported:
1) Yes, the column has to be widened because its min-width is set to 730px. This could be properly explained in the README, so users would know in advance what to expect and what they would need to do.
I put a min-width of 730px to overcome a "by design" limitation of the OOTB form. I could remove that min-width value, but here is how the user interface would be in the OOTB SharePoint form (same result in Lists app):

I have the suspect that it's by design, because of the REACT container in the OOTB form having a max-width of 256px and therefore it doesnt adapt itself based on the underlying JSON formatting.

I believe this app limitation cannot be removed nor it can be properly explained to users, since the resulting form interface would look pretty weird. However, I could also be wrong and if you find a way to improve or solve it through JSON, we can update the pull request 👍
2) Yes, I tried to create an image lightbox for each image displayed, by taking that solution as a reference. However, from my testing, custom hovercards completely ignore the underlying "forEach": "choiceIterator in @currentField". In other words, each hovercard was reproducing the entire array of images, so behaving like an autonomous div, completely isolated from the surrounding context. Probably this is "by design".
However, if you find a way to solve this limitation, we could update the README and replace with a lightbox 👍
Alternatively, I could also explain why a lightbox is not supported or even remove the advanced sample.
3) Regarding Microsoft Designer, I completely agree with you. I thought it could be useful to edit and reuse any image displayed in a list, but after thinking twice, I realized that the Designer app is still a personal tool and, in my opinion, it doesn't make sense to keep that link in an enterprise environment at the moment. Therefore, I could update the JSON code to remove that icon and its corresponding link 👌
Thanks again to help me improve this sample! 👍💙

Hi, @Fedes365 !

Yes, the column has to be widened because its min-width is set to 730px. This could be properly explained in the README, so users would know in advance what to expect and what they would need to do.
I put a min-width of 730px to overcome a "by design" limitation of the OOTB form. I could remove that min-width value, but here is how the user interface would be in the OOTB SharePoint form (same result in Lists app):

I see! Thank you for the very clear explanation and screenshots!!
I tried to find a solution, but at this point I couldn't figure it out...

Yes, I tried to create an image lightbox for each image displayed, by taking that solution as a reference. However, from my testing, custom hovercards completely ignore the underlying "forEach": "choiceIterator in @currentField". In other words, each hovercard was reproducing the entire array of images, so behaving like an autonomous div, completely isolated from the surrounding context. Probably this is "by design".
However, if you find a way to solve this limitation, we could update the README and replace with a lightbox 👍
Alternatively, I could also explain why a lightbox is not supported or even remove the advanced sample.

I tried it and it is true that I could not get the foreach value from customCard! I didn't know this😱😱
If you include a description of how you were unable to implement the lightbox, someone who sees this sample later and finds a solution may make a pull request. Also, it may prevent the creation of an issue. So, I think it will be a better sample if it is written.

Regarding Microsoft Designer, I completely agree with you. I thought it could be useful to edit and reuse any image displayed in a list, but after thinking twice, I realized that the Designer app is still a personal tool and, in my opinion, it doesn't make sense to keep that link in an enterprise environment at the moment. Therefore, I could update the JSON code to remove that icon and its corresponding link 👌

I, too, thought it would be very useful to have an image editing window open! However, Microsoft Designer does not seem to currently have that feature...let's hope they add it in the future!
I am sorry... but may I ask you to remove the Microsoft Designer link?

Hi @tecchan1107!

Updated the advanced sample JSON to remove the obsolete brush icon
Added a short and visual explanation about column min-width, how to expand it and how to save current settings based on Microsoft official support reference
Added a short explanation about current Microsoft Lists limitation, when it comes to images array and custom hovercards.

Please, let me know if further changes are required.
Thanks for your support!

Merged! Thank you for the beautiful sample and for the fixes🙏✨
And sorry for the delay🙇♂


Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull

Getting this issue when i have used in Fragment - java
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter context
at technolifestyle.com.imageslider.FlipperView.(Unknown Source:2)

Hey @ramya2344
Probably the context you're passing in FlipperView is null, that's why this error is thrown.
Can you please ensure that the context for your FlipperView is non null?

Hi therealshabi ,
I have checked again. It's working.
Thank you.


Support for additional constructs in the domain expert

The pddl parser supports more PDDL constructs than are in the domain expert. To support these additional constructs, I believe some changes are needed to the way in which predicate trees are created. Currently, PDDLPrint() functions in the pddl parser are called to return strings to the domain expert. These strings are then converted to predicate trees by the domain expert. This intermediary string conversion seems unnecessary. In addition, it can be difficult to determine the appropriate construct from a string snippet alone. For example "(vehicle_charge ?r)" could be a predicate or a function.
I propose that the code encapsulated by the Types.hpp/cpp files in the domain expert be moved to the pddl parser in new files called Tree.h/cpp. We could then add PDDLTree() functions to the various pddl construct classes in the pddl parser. These functions would directly compute the predicate trees from the pddl parser objects rather than use the intermediary string conversions.

Hi @jjzapf
I am not very happy with the result either for the reason you indicate. We could have more additional builds without this intermediate step. As I told you in the mail, this has been done to be able to merge several PDDL domains, but possibly there is some other alternative. Maybe merge the domains and then use the PDDL Parser.
Do you think that you could do a PR with your proposed solution?
Thanks!!

Thank you for your reply! Yes, I am currently working on the changes and my organization will need to approve the release. Hopefully I will be able to open a PR sometime in December.

Hello @fmrico
I just wanted to give you a heads up that our internal review process for these changes is nearly complete. Once this is done, I will submit a diff to my organization as part of a request to release this work. I was planning on making a pull request to the master branch. However, I could also make a PR the foxy-devel branch with a small amount of work. What is your preferred integration strategy.
Thanks!

Hi @jjzapf
I prefer a PR to the master branch. Don't forget to add some tests ;)
Thanks!!

Hi @jjzapf , I am closing this, as fixed in #62 . Please, reopen or open a new issue if you find more problems

Hi @jjzapf , I am closing this, as fixed in #62 . Please, reopen or open a new issue if you find more problems


Fix failing test in F33 and Rawhide

Hello, this PR addresses a problem raised in https://github.com/rebase-helper/rebase-helper/issues/819
The test used %{S: ...} macro incorrectly - it's supposed to be used with a source number to get its path. Using it with an absolute path (which was the case in the test) is an undefined behaviour which changed in RPM 4.16 (that is now in beta and used in F33 and rawhide). The handling of the macro changed slightly with a bug fix (see https://github.com/rpm-software-management/rpm/commit/94623389ba61a3a93decc726ed63e52cca7b3d39).

/packit build

packit-stg/testing-farm-fedora-31-x86_64 — Problem with Testing-Farm cluster

Testing-farm does not work now.


Mylstm elichika (WIP)

Implemented and tested individual units. MyLSTM ONNX graph is being generated.
However, on running it, we get the following stack trace.
*** Testing out/elichika_tmp/tmp ***
build/tools/run_onnx --test out/elichika_tmp/tmp
Initializing ChainerX...
Loading model...
Loading data...
Found 1 test cases
Constructing model...
Failed to schedule<EMAIL_ADDRESS>, @F.L.47.range_L.47, batch_size, o_st_unused, in_3_L.-1, gate_unused, in_2_L.-1, f_unused, pmask_unused, input_unused, num_hidden, in_1_L.-1, o_unused, nmask_unused, i_unused, f_st_st_unused, time_unused, in_3_st_unused, inputs_L.46, inputs_st_unused, param_l_W, param_l_b) -> (@F.L.47.range_st_L.47, batch_size_st_L.47, o_st_st_L.47, in_3_st_L.47, gate_st_L.47, in_2_st_L.47, f_st_L.47, pmask_st_L.47, input_st_L.47, num_hidden_st_L.47, h_st_L.47, o_st_L.47, nmask_st_L.47, i_st_L.47, f_st_st_st_L.47, time_st_L.47, in_3_st_st_L.47, inputs_st_L.47, inputs_st_st_L.47, CanonicalizeLoopUnusedOut@param_l_W, CanonicalizeLoopUnusedOut@param_l_b)
o_st_unused cannot be ready
gate_unused cannot be ready
f_unused cannot be ready
pmask_unused cannot be ready
input_unused cannot be ready
o_unused cannot be ready
nmask_unused cannot be ready
i_unused cannot be ready
f_st_st_unused cannot be ready
in_3_st_unused cannot be ready
inputs_st_unused cannot be ready
Failed graph is stored in /tmp/chainer_compiler_failure.onnx
Check `false' failed! in CheckSanity at /home/rchouras/workplace/chainer-compiler/compiler/scheduler.cc:233:

Checked the following via unit testing.

len() function
x.shape, x.size attributes
F.tanh, F.sigmoid chainer functions
F.broadcast_to, F.expand_dims chainer functions

Since the graph is being compiled, I suspect there is a deeper issue that needs a visual comparison between the graph generated by ch2o and the one by elichika.
Some insight as to help visualization would be appreciated. Gonna try this first though.

Copied commit 2e0765 description.
Discovered two bugs -

In the current implementation, all the variables in a for loop must be
initialized before the loop. Added a test to fix this in the future.
Strange behavior when using a lambda function over model construction.
The graph is generated but there is value mismatch between the
outputs. Added a test for understanding the same too.


internal/prepare new customer procedure

We run into slight problem while handling our first customer.. as is expected.
There is need to create unified procedure. It should reside somewhere in private repo, probably kb.
The idea is, that there will be a list, which can be checked and filled with each new customer, so that we have better idea about work that will need to be done.

Moved to appropriate repository.


Revert "[ota] Fix exchange context leak in OTA requestor (#20304)"

Problem
The fix for exchange leak causes crashes.
Change overview
This reverts commit 757682e4a952f5c6772b7154fa4cabd9c4bf91f8.
Testing
N/A

Steps for reproducing the crash due to commit https://github.com/project-chip/connectedhomeip/commit/757682e4a952f5c6772b7154fa4cabd9c4bf91f8:
out/apps/ota-provider/chip-ota-provider-app -f ~/Downloads/test2.ota --passcode 20202021 --discriminator 3840 --KVS /tmp/chip_kvs_provider

out/apps/chip-tool/chip-tool pairing onnetwork 0xABCD 20202021

out/apps/ota-requestor/chip-ota-requestor-app --discriminator 30 --secured-device-port 5560 --KVS /tmp/chip_kvs_requestor

out/apps/chip-tool/chip-tool pairing onnetwork-long 0x1234567890 20202021 30

out/apps/chip-tool/chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": null, "targets": null}]' 0xABCD 0

out/apps/chip-tool/chip-tool otasoftwareupdaterequestor announce-ota-provider 0x00000000ABCD 0 0 0 0x0000001234567890 0


Support for SATS token as currency.

Per PR 1041 of the main BTCPayServer Repo, "SATS" (for satoshis) is now supported as a main currency token.
This causes a breaking issue with this Python client library, as the regex check for a valid currency requires that the currency token be three characters long, no longer or shorter.
This PR adds a single exception for the "SATS" token as a valid, accepted currency in BTCPayServer.

Thanks! This looks very straightforward. Will test and then should be able to merge.

Thanks for bringing this breaking change with SATS to my attention. Since the regex check was totally useless (just checked for 3 characters) and broke SATS compatibility, I just removed the regex check altogether. This was then pushed to PyPi for installation as v1.2.1 of the package.
So I'm closing this PR since the breaking change with SATS no longer exists. But I greatly appreciate you bringing the SATS issue to my attention, otherwise I never would've known to make the change!


[REQUEST] Save Followers with Pandas

Non-tweet objects such as followers don't seem compatible with saving to a pandas dataframe
Example:
Python 3.6.3 (default, Oct  3 2017, 21:45:48)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import twint
>>> c = twint.Config()
>>> c.Username = 'elonmusk'
>>> c.Pandas = True
>>>
>>> # Run
... twint.run.Followers(c)
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/opt/app/vendor/twint/twint/run.py", line 125, in Followers
    run(config)
  File "/opt/app/vendor/twint/twint/run.py", line 117, in run
    get_event_loop().run_until_complete(Twint(config).main())
  File "/usr/lib/python3.6/asyncio/base_events.py", line 467, in run_until_complete
    return future.result()
  File "/opt/app/vendor/twint/twint/run.py", line 100, in main
    await self.follow()
  File "/opt/app/vendor/twint/twint/run.py", line 54, in follow
    await output.Username(username, self.config, self.conn)
  File "/opt/app/vendor/twint/twint/output.py", line 89, in Username
    _output(username, username, config)
  File "/opt/app/vendor/twint/twint/output.py", line 34, in _output
    panda.update(obj, config.Essid)
  File "/opt/app/vendor/twint/twint/storage/panda.py", line 9, in update
    day = weekday(strftime("%A", localtime(Tweet.datetime)))
AttributeError: 'str' object has no attribute 'datetime'

Suggestion:

In panda.py update method add some logic that will determine the type of object being saved (Tweet, User, etc.) and change the dataframe accordingly.

If the dataframe already has a tweet object and you are adding a different object, raise an error and prompt the user to clear the accumulated data.

Thank you so much! I will add this asap

It's still in development, but I'm quite sure that this fits our needs, try with pip install --upgrade -e git+https://github.com/twintproject/twint.git@origin/dev#egg=twint or just clone dev branch and change the name of twint (e.g. mv twint twint_dev, import twint_dev ...)
Returns lists
Give it a try and let me know!

@pielco11 I just tried this with twint.run.Search(c), but with c.Pandas=True it returns:
NameError: name 'Pandas' is not defined
and with c.Pandas=False it returns an empty DataFrame...
Is this intended behavior?

@pielco11 Sorry I was confused - I installed the package in a notebook, then could import it, but it didn't work... only after restarting the kernel it worked as expected.. thanks for your help!

Get followers with their details and get the dataframe containing those details

Get followers without their details and get the corresponding dataframe

Get tweets from a user and get the corresponding dataframe

Closing this since I consider this feature as achieved, in case don't hesitate to comment

Just used the last code to get tweets to a dataframe and the dataframe keeps empty:
`df = twint.storage.panda.Tweets_df

df
Empty DataFrame
Columns: []
Index: []`

Tryed the last code for getting tweets from a user and get the corresponding dataframe. but just got an empty Dataframe. I'm using the dev branch
`

df = twint.storage.panda.Tweets_df
df
Empty DataFrame
Columns: []
Index: []
`

Sorry, my bad
Fixed now in master branch

great! Thanks!


Question:  Validation - Any plans to support FluentValidation?

As part of the potential validation work mentioned in issue #1055 -- I am curious if any thought has been given to supporting the FluentValidation library?

As their docs state: FluentValidation does not provide integration with Blazor out of the box, but there are several third party libraries you can use to do this.
For our library, we do not want to have any external dependencies, but someone could definitely build an extension that adds support for this (based perhaps on one of the links the docs articlepoints to)

@vnbaaij Thanks for the quick reply.  I just found #838 which discusses adding validation errors below input components. I understand that you do not want to have any external dependencies.  My question is more along the lines of providing the appropriate abstraction(s) to allow an external library to provide validation results to the edit form/input components.
It would be nice not to have to provide a separate ValidationMessage for every input component, i.e.
<EditForm Model="@Data" OnValidSubmit="ValidHandlerAsync">
    <DataAnnotationsValidator />
     <FluentTextField Label="Last name:"
                      Placeholder="Enter your last name"
<EMAIL_ADDRESS>Immediate="true" />
     <ValidationMessage For="@(() => Data.LastName)" />
</EditForm>

I don't know FluentValidation enough to say if we have the extension points in place or not. Certainly not opposed to have those in our codebase, if possible. But I think we need to have someone contributing that...any volunteers?
#838 has been implemented for v4.2 btw. We added a FluentValidationMessage component. See https://preview.fluentui-blazor.net/basicform-fluentui-components

I'm willing to help out.  FluentValidation is actually pretty easy to use.  Each validator has a Validate method (returns true or false) which can be invoked to trigger the validation rules set up in the constructor.  The validators can be extended to do field level validation using a base class which looks like this:

I also think it could be very interesting to allow other libraries to be interconnected with FLuentUI Blazor.
As long as two important points are respected:

avoid including Breaking changes in the current developement (the best is to add new functionalities)
not be linked to external libraries (including FluentValidation or others).

I did a small spike last night to test out creating wrapped form components.  I only tested wrapping FluentTextField.  The code looks like this...
FluentValidatingTextField .razor
@inherits Microsoft.FluentUI.AspNetCore.Components.FluentTextField

@{
    base.BuildRenderTree(__builder);
}
<FluentValidationMessage For="@(() => message.Text)"/>

FluentValidatingTextField.razor.cs
  public partial class FluentValidatingTextField : FluentTextField
  {
      /// <summary>
      /// Specifies the field for which validation messages should be displayed.
      /// </summary>
      [Parameter] public Expression<Func<string?>>? For { get; set; }

  }

example usage - with Blazor-FluentValidation:
 <EditForm Model="@message">
     <FluentStack Orientation="Orientation.Vertical">
         <Validate ValidationProperties="@(ValidationProperties.Set.FluentValidator<TestMessageValidator>())" OnTransformModel="OnTransformModel" />
         <FluentValidatingTextField @bind-Value="message.Text" For="@(()=>message.Text)" Label="Text" Appearance="FluentInputAppearance.Filled"/>
         <FluentButton Type="ButtonType.Submit" Appearance="Appearance.Accent">Submit</FluentButton>
     </FluentStack>
</EditForm>

I tried to create a generic component which inherits from EditForm which would obviate the need to explicitly define:
<Validate ValidationProperties="@(ValidationProperties.Set.FluentValidator<TestMessageValidator>())" OnTransformModel="OnTransformModel" />

but ran into some runtime errors that I have not been able to resolve yet.  It maybe best to create a custom edit form implementation much like has been done with MudBlazor.  I will continue to investigate as time permits.
Here is a screenshot (note:  This used <ValidationnMesssage/>  in lieu of FluentValidation form my POC)

I find it very interesting. Good work!
My only comment (for now :-)) concerns the FluentValidatingTextField component.
I suppose the idea is to integrate [Parameter] public Expression<Func<string?>>? For { get; set; } to the FluentTextfield component and not have to duplicate all the components 😀
How will this new attribute be combined with the current features?

I think there are two approaches:

Just add the For property and the <FluentValidationMessage/> to the existing input controls in FluentUI-Blazor.  Then create a new library project with a custom EditForm implementation which integrates with FluentValidation
Create a new library project which references FluentUI-Blazor with a wrapped control per input control and some custom EditForm implementation that allows for integration with FluentValidation

I'd prefer approach #1 but can understand why your team may not prefer that. 😀

I've looked a bit further into wrapping controls.  There is definitely an issue WRT to supporting the Required attribute on input controls and integrating with third-party validation.  As you are well aware, when Required is set to true, the controls show a tooltip with a message that is provided by fluentui-blazor.  This effectively shorts circuits further validation. I'm currently not familiar enough with implementation to know how to override this behavior to inject a message from another source.  At the moment, it appears that all of the code to do that is behind private methods.  I'm wondering if either @vnbaaij or @dvoituron can point me at the code which controls this behavior?  Thanks!

Hi Michael,
We recently had some issues opened by @FritzTheCat9 and he has done some work in wrapping our components to make them work with FluentValidation. See the repo he created through https://github.com/microsoft/fluentui-blazor/issues/1311. Maybe you guys can get in contact? I'm going to close this issue and turn it into a discussion item


Ignore + shortcut if a newline is present

we will finally be able to combine elements whose names start with plus signs with each other without other elements

Seems dead


Is there any LSP implementation available for Prisma ? (Intellij)

Hi, I'm looking into writing a Kotlin plugin to support Prisma on Jetbrains IDEs via the Language Server Protocol (LSP)
Currently, the plugins that support Prisma are quite limited and have only a small amount of updates, which is a real sad and makes it difficult to improve them.
If Prisa offers an LSP implementation, I might consider making a plugin and maintaining it.
Regards.

Yep: https://github.com/prisma/language-tools/


refactor: add twitter card entry point

What title says

Current dependencies on/for this PR:

main

PR #7   👈

This stack of pull requests is managed by Graphite.


Feature Request: Text editor support

Please extend the spell check functionality to the jupyterlab text editors.

Thanks !!

Thanks !!


Use is_applicable method of TextChangeListener

While browsing the doc I noticed that TextChangeListener now supports is_applicable. This should help a bit with performance since previously any change in any buffer would cause the Coq plugin to wake up. As far as I can tell adding the method should be backwards compatible because on older versions it's simply not going to be called?

Nice!
No word on when that feature got added. It's possible I just missed it in the docs the first time around.


add deviation and heartbeat to contracts

Co-authored-by: dmitrydao<EMAIL_ADDRESS>This replaces #144 by fixing OCR feed data and adding a checkbox to optionally show the new information. cc: @dmitrydao

I think the checkbox needs a bit of space from the text on the right.
And also you duplicate the checkbox for each price feed but only the first checkbox on the page actually works, the rest are not responding for hiding/displaying items.

@alexroan just reviewed with Dmitry. This should be good to go. Can you take a look?

I can't seem to get this to work locally, getting these errors in the console:
GET http://localhost:4200/docs/ethereum-addresses/subscribe.js net::ERR_ABORTED 404 (Not Found) VM303:1
GET http://localhost:4200/addresses/addresses.json 404 (Not Found)(anonymous) @ VM303:1 (anonymous) @ (index):680 localhost/:720
GET http://localhost:4200/docs/ethereum-addresses/subscribe.js net::ERR_ABORTED 404 (Not Found) VM315:1
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

@alexroan  The addresses.json error will show up on the feeds pages if you haven't setup for local feed processing. It's an unfortunate necessity until we can make all of this data more easily accessible by everyone.
https://github.com/smartcontractkit/documentation/blob/main/CONTRIBUTING.md#adding-a-new-chain-feed
The subscription.js error is unrelated and fixed in https://github.com/smartcontractkit/documentation/pull/205/files#diff-cfefb795d4966817b16d6265e4da521b48160b463cbed5374de81591e9fb02dfR44

@alexroan ping on this? I just rebased so it's easier to merge.


[Bug Report] "Error loading: null" when passing link from Watch Later playlist

Describe the bug
YouTube URLs with the query parameter "list=WL" (User's Watch Later playlist) result in an "Error loading: null" message.
To Reproduce
Steps to reproduce the behavior:

Try the play command with any YouTube URL that has the query parameter "list=WL" in it

Expected behavior
The query parameter list should be ignored if its value is WL.
For example:
What the user puts in: !p https://youtu.be/uN9tulBHr8Y?list=WL
Should be processed as if he put in: !p https://youtu.be/uN9tulBHr8Y
You could use a regex to remove the query parameter from the URL before it gets processed further
Regex: (?:\?|&)list=WL
Screenshots

Debug Info
System Properties:
  java.version = 11.0.10
  java.vm.name = OpenJDK 64-Bit Server VM
  java.vm.specification.version = 11
  java.runtime.name = OpenJDK Runtime Environment
  java.runtime.version = 11.0.10+9-Ubuntu-0ubuntu1.20.04
  java.specification.version = 11
  os.arch = amd64
  os.name = Linux

JMusicBot Information:
  Version = 0.3.3
  Owner =<PHONE_NUMBER>62246144
  Prefix = !
  AltPrefix = null
  MaxSeconds = 0
  NPImages = false
  SongInStatus = false
  StayInChannel = false
  UseEval = false
  UpdateAlerts = true

Dependency Information:
  JDA Version = 4.2.0_227
  JDA-Utilities Version = 3.0.5
  Lavaplayer Version = 1.3.67

Runtime Information:
  Total Memory = 171
  Used Memory = 55

Discord Information:
  ID =<PHONE_NUMBER>68277298
  Guilds = 2
  Users = 1

This seems more like a bug and/or oversight in lavaplayer


Receive key '<80>^B3' in the filter callback of the create_popup method when unsing Belgium keyboard

Steps to reproduce

Create a popup window using the create_popup method
When hitting 3 on a Belgium keyboard the filter callback receive <80><fc>^B3 instead of 3 with an UK keyboard

Expected behaviour
Expect to receive 3 instead of <80><fc>^B3
In Vim 8.2 we used to receive 3.
Remark: We discovered the problem when debugging problem of the vim-clap plugin
Version of Vim
9.0.0316
Environment
Operating System: Windows 10
Keyboard: Azerty Belgium
Logs and stack traces
No response

Could you bisect, and maybe get some log?
How do you type 3 on a belgium keyboard?  Is it on the keypad?

Steps to reproduce

Create a popup window using the create_popup method
When hitting 3 on a Belgium keyboard the filter callback receive <80><fc>^B3 instead of 3 with an UK keyboard

That looks like you get .  You have the shift key pressed?
For me Shift-3 results in '#', is that different on a Belgian keyboard?
I can't imagine you need to keep shift pressed to get number 3.
When I press Shift-Space then I get something similar.  I can recognize
it with:  a:key == "<S-Space>"
For you this should  work: a:key == "<S-3"

Expected behaviour
Expect to receive 3 instead of <80><fc>^B3
In Vim 8.2 we used to receive 3.

We have made changes to recognize more modifiers, because users wanted
to be able to use them.  Main for things like  and .
--
hundred-and-one symptoms of being an internet addict:
42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Thanks for your comment and questions.
On Azerty keyboard the numbers need the Shift key to be pressed indeed.
I suppose the Clap developer needs a way to interpret the key field of the filter callback.
Where can we find a description of the way the key argument of the filter callback is filled?
Is there a way to convert the key argument into character typed?
Best regards,
Vivian.

Is there a way to convert the key argument into character typed?

You can convert a Vim keycode into its internal byte representation by prefixing the key with *:
         v
:echo "\<*S-3>"
<80><fc>^B3

See :help expr-quote:
\<*xxx> Like \<xxx> but prepends a modifier instead of including it in the
        character.  E.g. "\<C-w>" is one character 0x17 while "\<*C-w>" is four
        bytes: 3 for the CTRL modifier and then character "W".

For the other way around, someone would need to implement a keytrans() function.  Relevant todo item:

Add a "keytrans()" function, which turns the internal byte representation of a
key into a form that can be used for :map.  E.g.
let xx = "<C-Home>"
echo keytrans(xx)

source

Thanks for your fast answer.
I suppose the keytrans() function would be useful indeed.
But to adapt the plugin code we would need a function that translate the internal representation into the character typed
(<80><fc>^B3 into 3).
Is that function already available?
How can we help writing the keytrans() function?
Is the internal key representation documented somewhere?
Best regards,
Vivian.

I've thought about implementing such a function before, but didn't think it would be useful. I just knew that this on the TODO list. I can try implementing this.

I've thought about implementing such a function before, but didn't think it would be useful. I just knew that this on the TODO list. I can try implementing this.

#11114

Thanks let me know when it is merged such that we can test it.

In case you want to test immediately:
$ git clone --depth=1 https://github.com/vim/vim
$ cd vim
$ git remote add upstream https://github.com/vim/vim.git
$ git fetch upstream pull/11114/head:keytrans
$ git checkout keytrans
$ make

Thanks for your fast answer.
I suppose the keytrans() function would be useful indeed.
But to adapt the plugin code we would need a function that translate
the internal representation into the character typed
(<80><fc>^B3 into 3).
Is that function already available?

We do remove the modifier when it is used to produce the key.  I'm not
sure why it doesn't happen in this case, most likely because we don't
expect Shift being used to produce a digit.  It does happen for
something like the question mark.  The function is
may_remove_shift_modifier().  I wonder if there are any negative side
effects if we add digits there.
If you can compile Vim, you could try this change in misc2.c, around
line 1550:
&& ((key >= '!' && key <= '/')
	|| (key >= ':' && key <= 'Z')
	|| (key >= '[' && key <= '`')

  || (key >= '{' && key <= '~')))

  || (key >= '{' && key <= '~')

  || isdigit(key)))

return modifiers & ~MOD_MASK_SHIFT;

How can we help writing the keytrans() function?
Is the internal key representation documented somewhere?

Not in detail.  It's more useful to just try it, by pressing CTRL-K in
Insert mode and then pressing the key.
--
hundred-and-one symptoms of being an internet addict:
44. Your friends no longer send you e-mail...they just log on to your IRC
channel.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

I'll try to compile Vim and test the branch and the modification proposed.
I'll keep you posted.


Need Messages on Bulletin Board not to Jump Around

I think we need 2 time stamps... one for when the group was first seen, another for when the group was updated. If we sort by "first seen" and use that as the time the groups will never jump and the old will be at the top and new at the bottom.
Can we sort on something by default that isn't shown on the list? Rather not add another column, but if we have to to make the groups not jump that's fine.

Yeah let's just do "Created" and "Update" 2 time stamps. Default sort to Created, oldest at the top with newest showing up at the bottom. That'll work.

Also groups should never expire when I have the tab open. They can expire when I move to another tab or close the window, but it's just making this unusable when groups move. I keep messaging the wrong leaders.


status code 504 for export bookmarks

hello,
hello, I'm using the latest version of miniflux export. I am under synology, for exporting RSS feeds I don't have any worries I get a file well but as soon as I want to export the bookmarks, I almost have an error 504.
I tried to split into two scripts, one for RSS and the other for bookmarks. but I did the same thing, like adding a delay.
Miniflux is under docker and I don't care
/volume1/Archive/miniflux-exporter/miniflux-exporter-linux64 -s -user USER -pass PASSWORD -host https://miniflux.MYHOST.com -output-opml "/volume1/homes/name/Drive/Documents/feed/miniflux/miniflux-feeds.xml" -output-bookmarks "/volume1/homes/name/Drive/Documents/feed/miniflux/miniflux-bookmarks.xml"

Miniflux
Version : v2.1.1
Git Commit eaaeb684
Date de la compilation : 2024-03-11T01:23:07+0000
Version de Postgresql : 15.6 (Debian 15.6-1.pgdg120+2)
Version de Go : go1.22.1

Hey, can you try the latest version?
https://github.com/rogierlommers/miniflux-exporter/releases/tag/7
And can you also copy/paste the full error message?

hello, your latest version work, no error.

Ok, so the problem has been solved now?

Ok, so the problem has been solved now?

Yes you’ve solved the problem


Fader Flip (Sends on Fader)

I'd love an action to activate "fader flip". I'd program a button to execute the action "fader flip" and "select bus" so I could so directly into fader flip (e.g. sends on fader) mode with a dedicated bus selected.

won't lie I didn't understand this at all until I watch an M32 video, X32 doesn't have "fader flip" label only "sends on fader".
Will look into this, but will need to test on our X32 at church

Available in the latest beta


ARCHBOM-1036: fix for edx-drf-extensions 3.0.0

In 3.0.0, the switch oauth2.enforce_jwt_scopes was removed, which
starts checking is_restricted in JWTs. This works fine for JWTs created
with the LMS, but uncovered a pre-existing bug that will only show
itself in the Ecommerce Service for certain JWTs which were meant to be
decoded with a custom jwt_decode_handler. In the Ecommerce Service only,
this custom jwt_decode_handler is set using the JWT_DECODE_HANDLER
setting.
This fix updates the JWT code to respect the JWT_DECODE_HANDLER setting
of JWT_AUTH, and uses the configured handler rather than assuming the
edx-drf-extensions version will always be used.
ARCHBOM-1036

Reviewer Note: Is release/3.x a reasonable name for the release branch?  Do we have a naming convention for this?


assist app functionality to toggle it by long pressing home button

IMO, it would be helpful if I could toggle it just by long pressing the home app. For that it should be present as an option in the list of assist apps, since they can be launched by long pressing the home button.

Sure, that's a useful addition.

I don't know whether it's already there, but toggling this way may be complimented by a temporary message display telling whether it has switched on or off. Checking that via notification would require to add more touches if I'm using something fullscreen like commonly with gallery/doc reading apps [and I disable/don't use notification things until necessary personally as lots of apps create a ton of garbage there].

For some reason, it's not available as assisstant app on my Redmi 2 with AOKP rom.

I totally misunderstood your request, I'll have a look at it.

sorry, but it's not working though being shown.

Do you see a toast with "Turned on Coffee"? On my device the assistant is activated differently, but it's working for me.

No toast/notification. Nothing happens. Though that appears happens when I switch it via quick tile and widget.
And I also checked whether it's working without toast, just in case, but it is not.

Can you capture the ADB log?

I'm pasting changes on long pressing home button using adb logcat
12-11 07:07:21.642   807  1018 D AutofillManagerService: Close system dialogs
12-11 07:07:21.646  1713  1736 V AssistManager: Voice closed
12-11 07:07:21.660 31472 31472 V View    : dispatchProvideStructure(): not laid out, ignoring 4 children of 1
12-11 07:07:21.660 31472 31472 V View    : dispatchProvideStructure(): not laid out, ignoring 1 children of 2
12-11 07:07:21.675  1713 24546 V AssistManager: Voice open
12-11 07:07:21.707 12216 12216 I GoogleInputMethodService: GoogleInputMethodService.onFinishInput():3293
12-11 07:07:21.707 12216 12216 I GoogleInputMethodService: GoogleInputMethodService.onStartInput():1981
12-11 07:07:21.710 12216 12216 I DeviceUnlockedTag: DeviceUnlockedTag.notifyDeviceLockStatusChanged():79 Notify device unlocked.
12-11 07:07:21.729 25453 25473 W Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
12-11 07:07:21.754 12216 12216 I GoogleInputMethodService: GoogleInputMethodService.onFinishInput():3293
12-11 07:07:21.754 12216 12216 I GoogleInputMethodService: GoogleInputMethodService.onStartInput():1981
12-11 07:07:21.755 12216 12216 I DeviceUnlockedTag: DeviceUnlockedTag.notifyDeviceLockStatusChanged():79 Notify device unlocked.
12-11 07:07:21.785 31472 31485 I AssistStructure: Flattened final assist data: 9560 bytes, containing 1 windows, 96 views
12-11 07:07:21.790  1713  2062 W Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE

It seems that Coffee isn't called at all 🤔


Settings Sync prompts for login every time VSCode restarts

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version: latest macos ventura 13.1

everytime i open vs code it requires me to sign in to both github and microsoft

Can you follow these steps so that we can get more information on what's going on?

Open the Command Palette
Run the Developer: Set Log Level... command
Choose Trace
Wait for the issue to happen...
Open the Output pane (ctrl+shift+u I think on Windows)
drop in this issue he contents of the following:

Microsoft Authentication Output channel
GitHub Authentication Output channel
Log (Settings Sync) Output channel
Log (Window) Output channel

Microsoft Authentication:
2023-01-26 16:23:00.637 [info] Reading sessions from secret storage...
2023-01-26 16:23:00.637 [error] Error: Unable to parse decrypted password
at y.$getPassword (vscode-file://vscode-app/private/var/folders/g_/d3v7k7590jqd73gxjq3f76sw0000gn/T/AppTranslocation/B8AEBDAE-4574-4494-A710-A372962BCEB3/d/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1683:41966)
2023-01-26 16:23:00.637 [info] Got 0 stored sessions
2023-01-26 16:23:00.637 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-01-26 16:23:00.637 [info] Got 0 sessions for scopes: email offline_access openid profile
2023-01-26 16:23:00.637 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-01-26 16:23:00.637 [info] Got 0 sessions for scopes: email offline_access openid profile
GitHub Authentication:
2023-01-26 16:23:00.959 [info] Reading sessions from keychain...
2023-01-26 16:23:00.959 [info] Getting sessions for user:email...
2023-01-26 16:23:00.960 [info] Getting sessions for user:email...
2023-01-26 16:23:00.960 [info] Getting sessions for all scopes...
2023-01-26 16:23:00.960 [error] Getting token failed: Error: Unable to parse decrypted password
2023-01-26 16:23:00.960 [info] Got 0 sessions for user:email...
2023-01-26 16:23:00.960 [info] Got 0 sessions for user:email...
2023-01-26 16:23:00.960 [info] Got 0 sessions for ...
2023-01-26 16:23:00.960 [info] Reading sessions from keychain...
2023-01-26 16:23:01.076 [info] Getting sessions for read:user...
2023-01-26 16:23:01.076 [info] Getting sessions for read:user...
2023-01-26 16:23:01.076 [info] Got 0 sessions for read:user...
2023-01-26 16:23:01.077 [info] Got 0 sessions for read:user...
Log (Settings Sync):
2023-01-26 16:23:00.122 [info] Using settings sync service https://vscode-sync.trafficmanager.net/
2023-01-26 16:23:00.122 [info] Auto Sync is enabled.
2023-01-26 16:23:00.122 [info] Auto Sync: Suspended until auth token is available.
Log (Window):
2023-01-26 16:23:00.143 [warning] [twxs.cmake]: Cannot register 'cmake.cmakePath'. This property is already registered.
2023-01-26 16:23:00.609 [error] SyntaxError: Unexpected token h in JSON at position 0
at JSON.parse ()
at y.$getPassword (vscode-file://vscode-app/private/var/folders/g_/d3v7k7590jqd73gxjq3f76sw0000gn/T/AppTranslocation/B8AEBDAE-4574-4494-A710-A372962BCEB3/d/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1683:41752)
2023-01-26 16:23:00.708 [error] SyntaxError: Unexpected token h in JSON at position 0
at JSON.parse ()
at y.$getPassword (vscode-file://vscode-app/private/var/folders/g_/d3v7k7590jqd73gxjq3f76sw0000gn/T/AppTranslocation/B8AEBDAE-4574-4494-A710-A372962BCEB3/d/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1683:41752)
2023-01-26 16:23:02.684 [info] [perf] Render performance baseline is 33ms
Here they are I hope you can help Thanks :)

Hi :wave: where are you running you app from? This looks really odd:

private/var/folders/g_/d3v7k7590jqd73gxjq3f76sw0000gn/T/AppTranslocation/B8AEBDAE-4574-4494-A710-A372962BCEB3/d

Im really bot sure should i delete it and reinstall vs? Im on mac btw

Hi 👋 where are you running you app from? This looks really odd:

private/var/folders/g_/d3v7k7590jqd73gxjq3f76sw0000gn/T/AppTranslocation/B8AEBDAE-4574-4494-A710-A372962BCEB3/d

It would be App Translocation:

https://apple.stackexchange.com/questions/389855/why-my-app-is-starting-in-private-var-folders-hl-instead-of-its-real-location
https://lapcatsoftware.com/articles/app-translocation.html

Im really bot sure should i delete it and reinstall vs? Im on mac btw

You should move Visual Studio Code.app to /Applications/ or ~/Applications/.

idk where the app is
also how can I move it?

its already in applications

@AboodeDaBOSS we did a new stable release recently and I'm wondering if you still see this.

Should i update ya ofcourse im seeing this

nothing is in my downloads folder

thanks alot it works now @TylerLeonhardt

I have a similar problem, it didn't fix with the latest release
I forced the issue to happen running workbench.action.restartExtensionHost
Microsoft Authentication
2023-03-05 06:44:09.499 [info] Getting sessions for all scopes...
2023-03-05 06:44:09.499 [info] Got 0 sessions for all scopes...
2023-03-05 06:44:11.639 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-03-05 06:44:11.639 [trace] No session found with idtoken scopes... Using fallback scope list of: email offline_access openid profile
2023-03-05 06:44:11.639 [info] Got 0 sessions for scopes: email offline_access openid profile
2023-03-05 06:44:12.604 [info] Logging in for the following scopes: email offline_access openid profile
2023-03-05 06:44:16.319 [info] Exchanging login code for token for scopes: email offline_access openid profile
2023-03-05 06:44:16.679 [info] Exchanging login code for token (for scopes: email offline_access openid profile) succeeded!
2023-03-05 06:44:16.680 [info] Setting token for scopes: email offline_access openid profile
2023-03-05 06:44:16.680 [info] Login successful for scopes: email offline_access openid profile
2023-03-05 06:44:16.680 [info] Token available from cache (for scopes email offline_access openid profile), expires in 4117000 milliseconds
2023-03-05 06:44:16.682 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Got 1 sessions for scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Token available from cache (for scopes email offline_access openid profile), expires in 4116998 milliseconds
2023-03-05 06:44:16.682 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Got 1 sessions for scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Token available from cache (for scopes email offline_access openid profile), expires in 4116997 milliseconds
2023-03-05 06:44:17.572 [info] Stored token for scopes: email offline_access openid profile
2023-03-05 06:44:17.834 [error] Error: Not enough memory resources are available to process this command.

2023-03-05 06:44:20.604 [info] Reading sessions from secret storage...
2023-03-05 06:44:20.604 [error] Key was not found in SecretStorage.
2023-03-05 06:44:20.604 [info] Got 0 stored sessions
2023-03-05 06:44:20.607 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-03-05 06:44:20.607 [trace] No session found with idtoken scopes... Using fallback scope list of: email offline_access openid profile
2023-03-05 06:44:20.607 [info] Got 0 sessions for scopes: email offline_access openid profile

GitHub Authentication
2023-03-05 06:44:09.498 [info] Getting sessions for all scopes...
2023-03-05 06:44:09.498 [info] Got 0 sessions for ...
2023-03-05 06:44:11.637 [info] Getting sessions for user:email...
2023-03-05 06:44:11.637 [info] Got 0 sessions for user:email...
2023-03-05 06:44:16.680 [info] Getting sessions for user:email...
2023-03-05 06:44:16.680 [info] Got 0 sessions for user:email...
2023-03-05 06:44:16.681 [info] Getting sessions for user:email...
2023-03-05 06:44:16.681 [info] Got 0 sessions for user:email...
2023-03-05 06:44:20.605 [info] Reading sessions from keychain...
2023-03-05 06:44:20.605 [info] Getting sessions for user:email...
2023-03-05 06:44:20.605 [info] Got stored sessions!
2023-03-05 06:44:20.605 [info] Got 0 verified sessions.
2023-03-05 06:44:20.605 [info] Got 0 sessions for user:email...
2023-03-05 06:44:20.605 [info] Getting sessions for all scopes...
2023-03-05 06:44:20.605 [info] Got 0 sessions for ...
2023-03-05 06:44:20.606 [info] Getting sessions for user:email...
2023-03-05 06:44:20.606 [info] Got 0 sessions for user:email...
2023-03-05 06:44:20.612 [info] Getting sessions for all scopes...
2023-03-05 06:44:20.612 [info] Got 0 sessions for ...

Settings Sync
2023-03-05 06:44:16.686 [info] Auto Sync: Triggered by Interval
2023-03-05 06:44:16.686 [info] Sync started.
2023-03-05 06:44:17.064 [trace] Request succeeded {"url":"https://vscode-sync.trafficmanager.net/v1/manifest","status":200,"execution-id":"d5d1b1e3-9291-4477-9c40-952816ce7f9d","operation-id":"47e63acd96a74d65ae88633dc9d3df37"}
2023-03-05 06:44:17.064 [trace] Settings: Started synchronizing settings...
2023-03-05 06:44:17.124 [trace] Settings: Merging remote settings with local settings...
2023-03-05 06:44:17.124 [info] Settings: No changes found during synchronizing settings.
2023-03-05 06:44:17.127 [trace] Settings: Finished synchronizing settings.
2023-03-05 06:44:17.127 [trace] Keybindings: Started synchronizing keybindings...
2023-03-05 06:44:17.131 [info] Keybindings: No changes found during synchronizing keybindings.
2023-03-05 06:44:17.134 [trace] Keybindings: Finished synchronizing keybindings.
2023-03-05 06:44:17.134 [trace] Snippets: Started synchronizing snippets...
2023-03-05 06:44:17.143 [trace] Snippets: Merging remote snippets with local snippets...
2023-03-05 06:44:17.143 [info] Snippets: No changes found during synchronizing snippets.
2023-03-05 06:44:17.149 [trace] Snippets: Finished synchronizing snippets.
2023-03-05 06:44:17.149 [trace] Tasks: Started synchronizing tasks...
2023-03-05 06:44:17.152 [info] Tasks: No changes found during synchronizing tasks.
2023-03-05 06:44:17.153 [trace] Tasks: Finished synchronizing tasks.
2023-03-05 06:44:17.153 [trace] GlobalState: Started synchronizing globalstate...
2023-03-05 06:44:17.156 [debug] GlobalStateSync#getLocalArgvContent {"$mid":1,"fsPath":"c:\\Users\\pedro\\.vscode\\argv.json","_sep":1,"path":"/C:/Users/pedro/.vscode/argv.json","scheme":"file"}
2023-03-05 06:44:17.156 [debug] GlobalStateSync#getLocalArgvContent - Resolved {"$mid":1,"fsPath":"c:\\Users\\pedro\\.vscode\\argv.json","_sep":1,"path":"/C:/Users/pedro/.vscode/argv.json","scheme":"file"}
2023-03-05 06:44:17.157 [trace] GlobalState: Merging remote ui state with local ui state...
2023-03-05 06:44:17.166 [trace] GlobalState: Updating remote ui state...
2023-03-05 06:44:17.572 [trace] Request succeeded {"url":"https://vscode-sync.trafficmanager.net/v1/resource/globalState","status":200,"execution-id":"d5d1b1e3-9291-4477-9c40-952816ce7f9d","operation-id":"3969bd3fdcc9471cb975e11e88be1d43"}
2023-03-05 06:44:17.579 [info] GlobalState: Updated remote ui state. Updated: memento/workbench.editor.keybindings,commandPalette.mru.cache,commandPalette.mru.counter.
2023-03-05 06:44:17.579 [trace] GlobalState: Updating last synchronized ui state...
2023-03-05 06:44:17.598 [info] GlobalState: Updated last synchronized ui state
2023-03-05 06:44:17.604 [trace] GlobalState: Finished synchronizing globalstate.
2023-03-05 06:44:17.604 [trace] Extensions: Started synchronizing extensions...
2023-03-05 06:44:17.832 [trace] Extensions: Merging remote extensions with local extensions...
2023-03-05 06:44:17.832 [info] Extensions: No changes found during synchronizing extensions.
2023-03-05 06:44:17.837 [trace] Extensions: Finished synchronizing extensions.
2023-03-05 06:44:17.840 [trace] Profiles: Started synchronizing profiles...
2023-03-05 06:44:17.843 [info] Profiles: No changes found during synchronizing profiles.
2023-03-05 06:44:17.844 [trace] Profiles: Finished synchronizing profiles.
2023-03-05 06:44:17.847 [info] Sync done. Took 1161ms
2023-03-05 06:44:18.557 [debug] Auto Sync: Skipped.  Using fallback scope list of: email offline_access openid profile
2023-03-05 06:44:11.639 [info] Got 0 sessions for scopes: email offline_access openid profile
2023-03-05 06:44:12.604 [info] Logging in for the following scopes: email offline_access openid profile
2023-03-05 06:44:16.319 [info] Exchanging login code for token for scopes: email offline_access openid profile
2023-03-05 06:44:16.679 [info] Exchanging login code for token (for scopes: email offline_access openid profile) succeeded!
2023-03-05 06:44:16.680 [info] Setting token for scopes: email offline_access openid profile
2023-03-05 06:44:16.680 [info] Login successful for scopes: email offline_access openid profile
2023-03-05 06:44:16.680 [info] Token available from cache (for scopes email offline_access openid profile), expires in 4117000 milliseconds
2023-03-05 06:44:16.682 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Got 1 sessions for scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Token available from cache (for scopes email offline_access openid profile), expires in 4116998 milliseconds
2023-03-05 06:44:16.682 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Got 1 sessions for scopes: email offline_access openid profile
2023-03-05 06:44:16.682 [info] Token available from cache (for scopes email offline_access openid profile), expires in 4116997 milliseconds
2023-03-05 06:44:17.572 [info] Stored token for scopes: email offline_access openid profile
2023-03-05 06:44:17.834 [error] Error: Not enough memory resources are available to process this command.

2023-03-05 06:44:20.604 [info] Reading sessions from secret storage...
2023-03-05 06:44:20.604 [error] Key was not found in SecretStorage.
2023-03-05 06:44:20.604 [info] Got 0 stored sessions
2023-03-05 06:44:20.607 [info] Getting sessions for the following scopes: email offline_access openid profile
2023-03-05 06:44:20.607 [trace] No session found with idtoken scopes... Using fallback scope list of: email offline_access openid profile
2023-03-05 06:44:20.607 [info] Got 0 sessions for scopes: email offline_access openid profile

GitHub Authentication
2023-03-05 06:44:09.498 [info] Getting sessions for all scopes...
2023-03-05 06:44:09.498 [info] Got 0 sessions for ...
2023-03-05 06:44:11.637 [info] Getting sessions for user:email...
2023-03-05 06:44:11.637 [info] Got 0 sessions for user:email...
2023-03-05 06:44:16.680 [info] Getting sessions for user:email...
2023-03-05 06:44:16.680 [info] Got 0 sessions for user:email...
2023-03-05 06:44:16.681 [info] Getting sessions for user:email...
2023-03-05 06:44:16.681 [info] Got 0 sessions for user:email...
2023-03-05 06:44:20.605 [info] Reading sessions from keychain...
2023-03-05 06:44:20.605 [info] Getting sessions for user:email...
2023-03-05 06:44:20.605 [info] Got stored sessions!
2023-03-05 06:44:20.605 [info] Got 0 verified sessions.
2023-03-05 06:44:20.605 [info] Got 0 sessions for user:email...
2023-03-05 06:44:20.605 [info] Getting sessions for all scopes...
2023-03-05 06:44:20.605 [info] Got 0 sessions for ...
2023-03-05 06:44:20.606 [info] Getting sessions for user:email...
2023-03-05 06:44:20.606 [info] Got 0 sessions for user:email...
2023-03-05 06:44:20.612 [info] Getting sessions for all scopes...
2023-03-05 06:44:20.612 [info] Got 0 sessions for ...

Settings Sync
2023-03-05 06:44:16.686 [info] Auto Sync: Triggered by Interval
2023-03-05 06:44:16.686 [info] Sync started.
2023-03-05 06:44:17.064 [trace] Request succeeded {"url":"https://vscode-sync.trafficmanager.net/v1/manifest","status":200,"execution-id":"d5d1b1e3-9291-4477-9c40-952816ce7f9d","operation-id":"47e63acd96a74d65ae88633dc9d3df37"}
2023-03-05 06:44:17.064 [trace] Settings: Started synchronizing settings...
2023-03-05 06:44:17.124 [trace] Settings: Merging remote settings with local settings...
2023-03-05 06:44:17.124 [info] Settings: No changes found during synchronizing settings.
2023-03-05 06:44:17.127 [trace] Settings: Finished synchronizing settings.
2023-03-05 06:44:17.127 [trace] Keybindings: Started synchronizing keybindings...
2023-03-05 06:44:17.131 [info] Keybindings: No changes found during synchronizing keybindings.
2023-03-05 06:44:17.134 [trace] Keybindings: Finished synchronizing keybindings.
2023-03-05 06:44:17.134 [trace] Snippets: Started synchronizing snippets...
2023-03-05 06:44:17.143 [trace] Snippets: Merging remote snippets with local snippets...
2023-03-05 06:44:17.143 [info] Snippets: No changes found during synchronizing snippets.
2023-03-05 06:44:17.149 [trace] Snippets: Finished synchronizing snippets.
2023-03-05 06:44:17.149 [trace] Tasks: Started synchronizing tasks...
2023-03-05 06:44:17.152 [info] Tasks: No changes found during synchronizing tasks.
2023-03-05 06:44:17.153 [trace] Tasks: Finished synchronizing tasks.
2023-03-05 06:44:17.153 [trace] GlobalState: Started synchronizing globalstate...
2023-03-05 06:44:17.156 [debug] GlobalStateSync#getLocalArgvContent {"$mid":1,"fsPath":"c:\\Users\\pedro\\.vscode\\argv.json","_sep":1,"path":"/C:/Users/pedro/.vscode/argv.json","scheme":"file"}
2023-03-05 06:44:17.156 [debug] GlobalStateSync#getLocalArgvContent - Resolved {"$mid":1,"fsPath":"c:\\Users\\pedro\\.vscode\\argv.json","_sep":1,"path":"/C:/Users/pedro/.vscode/argv.json","scheme":"file"}
2023-03-05 06:44:17.157 [trace] GlobalState: Merging remote ui state with local ui state...
2023-03-05 06:44:17.166 [trace] GlobalState: Updating remote ui state...
2023-03-05 06:44:17.572 [trace] Request succeeded {"url":"https://vscode-sync.trafficmanager.net/v1/resource/globalState","status":200,"execution-id":"d5d1b1e3-9291-4477-9c40-952816ce7f9d","operation-id":"3969bd3fdcc9471cb975e11e88be1d43"}
2023-03-05 06:44:17.579 [info] GlobalState: Updated remote ui state. Updated: memento/workbench.editor.keybindings,commandPalette.mru.cache,commandPalette.mru.counter.
2023-03-05 06:44:17.579 [trace] GlobalState: Updating last synchronized ui state...
2023-03-05 06:44:17.598 [info] GlobalState: Updated last synchronized ui state
2023-03-05 06:44:17.604 [trace] GlobalState: Finished synchronizing globalstate.
2023-03-05 06:44:17.604 [trace] Extensions: Started synchronizing extensions...
2023-03-05 06:44:17.832 [trace] Extensions: Merging remote extensions with local extensions...
2023-03-05 06:44:17.832 [info] Extensions: No changes found during synchronizing extensions.
2023-03-05 06:44:17.837 [trace] Extensions: Finished synchronizing extensions.
2023-03-05 06:44:17.840 [trace] Profiles: Started synchronizing profiles...
2023-03-05 06:44:17.843 [info] Profiles: No changes found during synchronizing profiles.
2023-03-05 06:44:17.844 [trace] Profiles: Finished synchronizing profiles.
2023-03-05 06:44:17.847 [info] Sync done. Took 1161ms
2023-03-05 06:44:18.557 [debug] Auto Sync: Skipped.  To temporarily fix the issue in stable, we have a doc here:
https://code.visualstudio.com/docs/editor/settings-sync#_troubleshooting-keychain-issues


Osc fixes

These are the hacky fixes I had to make to get osc working with python3 - it seems that mostly it didn't understand bytes at all. I also have to pass typehint='b' to osc.sendMsg, and make everything bytes explicitly.
This probably shouldn't be merged, but maybe it can help anyone else having python3 problems, and serve as the base for a more robust fix.

@tshirtman, could you guide this to a merge/close?

i did a more robust fix some time ago, in pr #5716

closing since kivy is now using oscpy for tuio, and the osc package will be removed in the future.