Viewer app: Review pseudoColor

Summary
With the changes in #2177, we ensure the values of pseudoColor and ChannelConfig.hue are in sync in the viewer app. You can find more information on why we decided to do these changes, but the main reason is that users can change the pseudoColor on the recordedit page. So we need to ensure what users see throughout Chaise is consistent and updated based on user input.
But with this change now, the ChannelConfig.hue is more or less useless. And if users change the pseudoColor in the recordedit page, these two values will stay out of sync until the user navigates to the viewer page and saves all the settings.
Therefore we need to review pseudoColor and make another round of changes.
Details
The pseudoColor is generated as part of the image processing for greyscale images. It captures the actual color of that greyscale image. Since we didn't know how this value would be used, we stored it as a color_rgb_hex type.
This is how the pseudoColor is used and modified in the viewer app:

On load, we convert the pseudoColor value to HSB format and use the H value for the "Hue filter".
When users save the channel settings, we convert the selected hue to full RGB color by setting the saturation and brightness to 1.

Compared to the recordedit app, where users can pick a full RGB color, and in record/recordset apps, they are presented with the RGB color value.
This inconsistency between Chaise apps can easily lead to confusing behaviors. For instance, consider the case that the user changes just the saturation of a color in recordedit. While the value of pseudoColor will change and they will see a different color in record/recordset apps, the "Hue filter" stays the same in the viewer app. And then, saving the channel settings without any modification will change the pseudoColor back to have full saturation and brightness.
Proposed solution
The following are the changes that we're proposing:

Given that pseudoColor was intended as a hint for the initial display of the channels, we should not allow users to modify it. It should also be completely hidden from the users.

In the viewer app, we should not modify the pseudoColor. And pseudoColor should only be used if the ChannelConfig.hue is not defined.

With these two changes, the consistency issue between Chaise apps will resolve, and pseudoColor will be only used as the initial value. But as a result, we will lose the helpful color hint for channels. To solve this, we would need to write a markdown_pattern that displays the color that is displayed in the viewer app based on both pseudoColor and ChannelConfig columns. This would require adding some handlebars helper function so we can convert the pseudoColor RGB format into HSB. We also need to discuss what showing the color means? Should it only be based on Hue? or should it also take saturation into effect? what about other controls?
I tried to contain all the required changes in Chaise and don't affect the imaging pipeline. But if we can make changes to the pipeline, we might want to think about why do we need to capture the pseudoColor as color. Is a full RGB color model even accurate? As far as I know, we only want the hue value. So maybe it should just be the integer value of hue?

While this issue is mainly about ChannelConfig.hue, other channel config properties can also cause problems.
For example, if users open an image with a proper Pseudo_Color value, they can see its color reflected in the viewer app. But if they select the "greyscale" and save the configuration, the Pseudo_Color will be ignored as we're going to honor the ChannelConfig.display_greyscale first.


Demo not working!

When using the demo, even its supplied examples, it raises errors.

Hi @dudifrid , thanks for your interests in our project! As for the demo, which one are your referring to? If it is the huggingface demo, it could be because the huggingface endpoint fails. We have restarted it to make sure it's working.


bump fuchsia_ctl

This will pick up flutter/packages#41 - so tests will correctly set the exit code when they fail.

Going to land this TBR to get CI properly failing ASAP.


DisplayBuffer::decorateMarker leak subscriptions

decoration listener is not destroyed.
Active Packages

bracket-matcher

Nice work. Thanks so much for fixing this!

:smiley:


[Issue] LiteDB V5: System.IO.IOException: The process cannot access the file because it is being used by another process

I have a C# console application which runs as window service under NT Service account (NT Service\MyService) and my litedb file kept within NT Service account profile.
`C:\Users\MyService\AppData\Local\TimeSeries.db'

The window service running successful and read/write to database is working as expected, also I am NOT using shared option means only user MyService can read/write to database which is my requirement.
In one of the production server I am randomly seeing db file lock issue. Couple of hours it's works perfectly and sudden file lock appears with below stack, please suggest the reason for it and solution?
Application: service1.exe
CoreCLR Version: 4.700.20.56602
.NET Core Version: 3.1.11
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.IOException: The process cannot access the file 'C:\Users\MyService\AppData\Local\TimeSeries.db' because it is being used by another process.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at LiteDB.Engine.FileStreamFactory.GetStream(Boolean canWrite, Boolean sequencial)
at LiteDB.Engine.StreamPool.<>c__DisplayClass3_0.<.ctor>b__0()
at System.Lazy1.ViaFactory(LazyThreadSafetyMode mode)    at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy1.CreateValue()    at System.Lazy1.get_Value()
at LiteDB.Engine.StreamPool.get_Writer()
at LiteDB.Engine.DiskService..ctor(EngineSettings settings, Int32[] memorySegmentSizes)
at LiteDB.Engine.LiteEngine..ctor(EngineSettings settings)
at LiteDB.ConnectionString.CreateEngine()
at LiteDB.LiteDatabase..ctor(ConnectionString connectionString, BsonMapper mapper)
at LiteDB.LiteDatabase..ctor(String connectionString, BsonMapper mapper)
at Core.Repositories.Data.LiteDbContext..ctor()
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.b__0(ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
at service1.Program.Main(String[] args)

the most probable reason: your application has 2 active instances at some moment.

you most using _liteDb.Dispose(); or using (var _liteDb= new LiteDatabase(@"TimeSeries.db")){ //CRUD Operation }
best solution is using Singleton class for create instance

but also got same error.
my reason maybe is im not close the database.


Slug not created on create

For some reason the slug isn't being created on a new item. I check the query logs and it's not running any slug queries. So when i add an item i've had to do $item->resluggify(); $item->save(); to create it.
Running Laravel 5.2.
Thanks

Well, version 4.0 of the package doesn't have a resluggify() method anymore, so I'm assuming you are using the 3.* version?
Can you upgrade with composer require cviebrock/eloquent-sluggable:~4.0@dev and re-open if the problem persists?

what is the alternative of resluggify() then?

You shouldn't need resluggify to create a slug on a new item, so I suspect there is something else going on.
But, doing $model->slug = null; $model->save(); is the equivalent

yes you are right I was using resluggify() in migration to make slug of existing records but now I am doing following:
foreach ($rates as $rate) {
//$rate->resluggify();//depricated in eloquent-sluggable 4.1
$rate->slug($rate);
$rateRepository->save($rate);
}


Adding prompt to serial-response-time-mouse destroys event listeners

see https://github.com/jspsych/jsPsych/discussions/837

@jodeleeuw just fixed this. Does it require a test?

I don't think so. While it can't hurt to have more tests, we have lots of other plugins where even listeners could be destroyed in similar ways but don't have tests set up for them. Probably not a high enough priority to fix that.

Ok thanks!


[HW]

Name: Email<EMAIL_ADDRESS>Linkedin Profile: <linkedin.com/in/anmolvaid >
Attach the homework screenshots below for both step II and step III:

You may need to attach "Congratulations!" screenshots from https://www.datastax.com/node/3272 and https://www.datastax.com/dev/scenario/try-it-out-cassandra-query-language-cql as well, @AnmolVaid-95 .

Hello, Anmol, well done! You did the CQL Console part of the homework.
But to complete it, please head to the two short courses as in the 'homework' section of the README, finish them, and post their "congratulations" screenshot. Then we will be able to award you the badge!
Thank you!


Looks like an oversight. It should have been cleaned up. The code is here, if you have cycles:
go-controller/pkg/util/remove-node.go
if not, I will add to my list.

@shettyg  I just found the issue too. I am going to submit the fix for the same.


[Wait for #1406] [Dataset] Implement data getter

[Pending commit: #1406]

[Dataset] Implement data getter

This patch implements data getter.
There are two types of data getter.

1. queue multiple iterations and get one by one
(`DataBuffer::startFetchWorker()`, `DataBuffer::fetch()`)

2. generate one iteration on the fly (`DataBuffer::batcher()`)

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1407. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.


Add best-effort check for Orion version during startup

Description
From Besu 1.5, to use private transactions it will be required to use Orion 1.6+ version. With the introduction of the /version endpoint in Orion (https://github.com/PegaSysEng/orion/issues/349), we can add an extra check during Besu startup to check if Orion has got the minimum version.
However, because it isn't a requirement that Orion is up and running at Besu startup, this should be a best-effort check. If we can't communicate with Orion during startup we shouldn't in any matter impact Besu startup.
Acceptance Criteria

When starting Besu 1.5+, if Orion is online and available, but it doesn't have the /version endpoint (pre-1.6 version) we will print a WARN log message about it.
When starting Besu 1.5+, if Orion is offline, Besu will print a WARN log msg about not being able to communicate with Orion.
When starting Besu 1.5+, if Orion is online and available and it has the /version endpoint (post-1.6 version) we will print an INFO log message about successfully talking to Orion and what version we are talking to.

This work is related to #357


ORM

Add an ORM API that follows the builder pattern and how the project works.

Still have to figure out if this can be affected by sql injections.

ORM Implemented in this commit 992da1bb5a7526479505ec095eb7c9b219b5de50


Replace cglib with Byte Buddy for Java 16 compatibility

Fork and re-implement proxies in config-magic
Re-implement proxies in jdbi

For jdbi, we can just get rid of CGLIBDispatchBuilder, no need to adapt it, as it seems unused. The bulk of the work is to rewrite SqlObect#buildSqlObject to use byte-buddy instead of cglib and remove the dependency on MethodProxy in the Handler interface.

See https://github.com/killbill/killbill-commons/pull/99.


Using AI to improve Community Notes

In order to improve the speed at which important community notes get added and to help community noters write better notes, I'm curious if people have put some effort into using a mic of AI (language models) and more simple methods. I'd like to help with this if we can make it work economically.
For example, you could have a scaffolding approach that looks for specific words, which then feeds into an embedding for semantic similarity to contentious issues, and then finally into an LLM that ranks how important the tweet is to have a community and some additional context (through a web search and internal knowledge within the LLM) to help the community noter. I think there's a way to make this economically viable for companies.
Yes, companies, I want Community Notes to expand beyond X. Let's figure out how to connect it to YouTube. Why haven't other social media websites picked it up yet? If they care about truth, this would be a considerable step forward beyond. Notes like “this video is funded by x nation” or “this video talks about health info; go here to learn more” messages are simply not good enough. We need to improve the state of truth-seeking on the internet.
Not just that, as an AI Safety researcher, this is particularly important to me. Don't forget that we train language models on the internet! The more truthful your dataset is, the more truthful the models will be! Let's revamp the internet for truthfulness, and we'll subsequently improve truthfulness in our AI systems!!

I used GPT-4 to come up with a little estimate of the cost:

To estimate the cost of using GPT-3.5-turbo to verify whether a tweet contains misinformation, we need to consider both input and output token costs and the average token count per tweet analysis.
Average Token Count per Tweet Analysis:
A tweet can be up to 280 characters long. Considering that an average English word is around 4.5 characters plus a space, this translates to about 280 / 5.5 ≈ 51 words per tweet.
Tokens are not equivalent to words; a token can be a word, a part of a word, or punctuation. On average, we can estimate around 1.5 tokens per word, considering that longer words might be split into multiple tokens and punctuation also counts as tokens.
Therefore, each tweet can be estimated to involve about 51 * 1.5 ≈ 77 tokens.
Input Cost Calculation:
If you analyze 10,000 tweets per day, and each tweet is approximately 77 tokens, the total daily input tokens are 10,000 * 77 = 770,000 tokens.
The cost for input usage is $0.0030 per 1,000 tokens. So, the daily input cost is 770,000 / 1,000 * $0.0030 = $2.31.
Output Token Estimation:
The output for each tweet verification might vary, but let's assume an average of around 50 tokens per response (this is a rough estimate, as the model might provide a brief or detailed analysis depending on the complexity of the tweet).
For 10,000 tweets, the total output tokens would be 10,000 * 50 = 500,000 tokens.
Output Cost Calculation:
The cost for output usage is $0.0060 per 1,000 tokens. So, the daily output cost is 500,000 / 1,000 * $0.0060 = $3.00.
Total Daily Cost:
Adding both input and output costs, the total daily cost would be $2.31 (input) + $3.00 (output) = $5.31.
Monthly Cost Estimation:
If this operation runs every day for a month (30 days), the monthly cost would be $5.31 * 30 = $159.30 (per month).
This is a rough estimate based on average values for token length and response size. The actual cost may vary depending on the exact length of each tweet and the verbosity of the model's responses.

This seems like a reasonable cost to aim for. For big social media companies, this is nothing (even if we increase it to $1000/month).

Ok, some additional things to try:

MuMiN: it has a dataset and leaderboard for identifying misinformation tweets (it even has a multimodal part). We could train a model on this. It has a tutorial on how to use it. The MuMiN dataset is a challenging misinformation benchmark for automatic misinformation detection models. The dataset is structured as a heterogeneous graph and features 21,565,018 tweets and 1,986,354 users, belonging to 26,048 Twitter threads, discussing 12,914 fact-checked claims from 115 fact-checking organisations in 41 different languages, spanning a decade.
Could probably find more relevant stuff here: Papers with Code - Misinformation
Misinfo Baselines and related paper
Repository for fake news detection datasets

Alright, so I started working a repo for this.

@luckybear97

I don't think an AI is needed with Community Notes. Priority notes already implemented on X/Twitter backend and adding another layer of AI verification would slow it down dramatically.

I'm not familiar with the codebase so don't really know how the algorithm works. My guess is that AI could improve the ranking if it is used in addition to it? I'd be surprised if the algorithm's efficiency can't be improved? If not, there's also the community notes assistant that could help note writers.

Furthermore, LLMs are hardly free from biases, in which the data was selectively "handpicked" from their "AI Safety" guidelines which is against of what X/Twitter goals are.

You can use custom LLMs (like one of the fine-tuned open source models) or optimize your system prompt / instructions accordingly to fit your use-case. I don't think this is really an issue.

In addition, using GPT (OpenAI) while Grok is part of X, would totally does not make sense.

Grok has no API. They could use an internal Grok model if they like, I wouldn't care. But OpenAI/Anthropic have APIs so I started with them.
But honestly, Grok's personality is not very well-suited to help with this IMO.

I don't think an AI is needed with Community Notes.

Yes. It's a form of mission creep and it would add complexity and cost without adding any value, especially considering that AI is heavily regulated and each jurisdiction may have its own official or approved AI that's biased to promote the official lies.

IMO, Community Notes remaining as a source of genuine human feedback, and minimizing generated feedback is ideal.
At least until fully cognizant & sentient AI people show up in the community, I suppose.
These are the notes of the community, and also an especially valuable public discourse aspect that many AIs will undoubtedly look at. I think getting AI involved here would lend to creating nonsense artifacts. Similar to toying with control samples in an experiment, making results less useful.

I don't think an AI is needed with Community Notes. Priority notes already implemented on X/Twitter backend and adding another layer of AI verification would slow it down dramatically.
Furthermore, LLMs are hardly free from biases, in which the data was selectively "handpicked" from their "AI Safety" guidelines which is against of what X/Twitter goals are. In addition, using GPT (OpenAI) while Grok is part of X, would totally does not make sense.

Do you claim that RLHF or other alignment  data with their "AI Safety" guidelines to remove bias increase the bias  and X/Twitter goals are  reflecting "raw data's biases" to community note?.

Do you claim that RLHF or other alignment data with their "AI Safety" guidelines to remove bias increase the bias and X/Twitter goals are reflecting "raw data's biases" to community note?.

Yes, I do.
You completely ignore the self-evident fact that governments are often the biggest and most systematic spreaders of dis- and mis-information and AI "laws" that X would have to follow would be different in every jurisdiction, on top of "safe" AI models being wrong i.e. rigged by the state.
In your view North Korea's state-approved AI should be able to apply their "AI Safety guidelines" to my Community Note exposing their lies.
In addition to being impractical and impossible to implement, it is preposterous to think that Community Notes should be subject to various types of state-mandated AI censorship.
Why even bother having humans in the loop?

lol

@armchairancap @luckybear97
Please don't argue with "straw man."
I never talk about governments at the previous comment.

You completely ignore the self-evident fact that governments are often the biggest and most systematic spreaders of dis- and mis-information and AI "laws" that X would have to follow would be different in every jurisdiction, on top of "safe" AI models being wrong i.e. rigged by the state.

In your view North Korea's state-approved AI should be able to apply their "AI Safety guidelines" to my Community Note exposing their lies.

In addition to being impractical and impossible to implement, it is preposterous to think that Community Notes should be subject to various types of state-mandated AI censorship.

At least to say, free speech cause of first amendment to US constitution protects corporations like X, Meta, Google etc  against government law enforcements.
Thus, LLMs created by X in U.S. would be interpreted as X's corporation speech.

Why even bother having humans in the loop?

Which subset of humans are in the loop?
Because X could select community note contributor in arbitrary and closed manners, X could induce "selection biases". However, this is still considered as "X's free speech rights to be biased."
If X's goal is to create truly bias-free contributors, then it just needed to use identification numbers like phone numbers or bio-metrics, but X uses "violation history in X's moderation rules".

Furthermore, LLMs are hardly free from biases, in which the data was selectively "handpicked" from their "AI Safety" guidelines which is against of what X/Twitter goals are

I don't think that current contributor selection mechanism is free from the selection biases mentioned as above.

@armchairancap @luckybear97
Please don't argue with "straw man."
I never talk about governments at the previous comment.

You completely ignore the self-evident fact that governments are often the biggest and most systematic spreaders of dis- and mis-information and AI "laws" that X would have to follow would be different in every jurisdiction, on top of "safe" AI models being wrong i.e. rigged by the state.

In your view North Korea's state-approved AI should be able to apply their "AI Safety guidelines" to my Community Note exposing their lies.

In addition to being impractical and impossible to implement, it is preposterous to think that Community Notes should be subject to various types of state-mandated AI censorship.

At least to say, free speech cause of first amendment to US constitution protects corporations like X, Meta, Google etc  against government law enforcements.
Thus, LLMs created by X in U.S. would be interpreted as X's corporation speech.

Why even bother having humans in the loop?

Which set of humans are in the loop?
Because X could select community note contributor in arbitrary and closed manners, X could induce "selection biases". However, this is still considered as "X's free speech rights to be biased."
If X's goal is to create truly bias-free contributors, then it just needed to use identification numbers like phone numbers or bio-metrics, but X uses "violation history in X's moderation rules".

Furthermore, LLMs are hardly free from biases, in which the data was selectively "handpicked" from their "AI Safety" guidelines which is against of what X/Twitter goals are

I don't think that current contributor selection mechanism is free from biases mentioned as above.

@armchairancap
BTW, if you are an anarcho-capitalist,  you have NO free speech rights against Microsoft at this GitHub platform because of MS's absolute private ownership of the computing clusters.

Perhaps you're confused,I never claimed "X" is free from bias it's just that "free speech" is their goals and using LLM to selectively rate or process notes would terribly destroy it.

I never address about what your claim is, but @armchairancap said that "You completely ignore the self-evident fact..." which I never said about.


add query input to allow data customization

adds "query" input to github action
python script also has optional query parameter
fetch_osm_pumps() uses additional query_string parameter
default data are Berlin pumps
added/modified README.md

Resolves https://github.com/technologiestiftung/giessdenkiez-de-osm-pumpen-harvester/issues/43


Dark background when showing multiple ContentDialogs

In the rare case where multiple ContentDialogs would get shown simultaneously on top of each other (let's say a background task runs and 3 different prompts show up while it's working), then the window background gets darker 3 times.
It's really not a big deal and happens in edge cases, but still, is there a way to prevent that from happening? If the background is already grayed out, it shouldn't gray it even more.

You should have some mechanism that prevents more than one dialog from showing at one time. Technically, WinUI enforces this as you can only have 1 ContentDialog active per thread at one time. Additional dialogs are queued and shown as the previous one closes. I originally tried to do something like this, but it made the code complex and weird so I opted not to enforce this.
So as I said, either you should implement something to restrict or queue dialogs, or if you know a dialog is already open, attach a Class to it like:
contentDialog.Classes.Add("noDarkArea");

and then use a Style Selector to take the background out:
<Style Selector="ContentDialog.noDarkArea /template/ Panel#LayoutRoot">
    <Setter Property="Background" Value="..." />
</Style>

Makes sense. It could be a "nice" feature of MvvmDialogs if I decide to enforce this.


Add simple Timeline view

It'd be nice to be able to see your post after it's sent, rather than just a success message. Later on I'd like to add a simple Timeline view so you can browse and see posts, including your own.

This was added in 0.0.3


[ISSUE] Camunda 8.5 Install Issues with webModelerPostgresql set to true

Describe the issue:
Installing a fresh Camunda 8.5 with updated values.yml and camunda-web-modeler-restapi is failing to come up as it cannot connect to Postgres DB.
Actual behavior:
camunda-web-modeler-restapi pod fails to come up
Expected behavior:
All pods come up healthy with valid values in values.yml for helm install
How to reproduce:
Define the following in helm values.yml and postgres doesn't install:
webModelerPostgresql:   enabled: true

Logs:

Environment:
Production Proof of Concept to move away from C7
Please note: Without the following info, it's hard to resolve the issue and probably it will be closed.

Platform: AWS
Helm CLI version: Latest
Chart version: 10.0.0
Values file: I cannot share specifics as it has enterprise values in it. Will also engage account rep Beth through official channels as we continue to run into issues with installs or upgrades.

This seems like it could be related to #1586

This seems like it could be related to #1586

Yes, but i think RC would be that its not creating that separate postgres db. I manually created that secret and change the hostname in the camunda-web-modeler-restapi-configuration configmap to matchup with the postgres db that did get deployed, but it still didnt work. The postgres thats getting installed is for keycloak.
I know best practices is to factor out some of these dependencies into a more correct way on a design, but we are doing a comparison on how much effort it would take to fork all of our c7 to c8 which is about 1000 microservices.
I tried to helm template to see if the stateful set gets defined during the helm install but I didnt see it there either.

@fragglehunter thanks for reporting this issue, it's has been fixed in v10.0.1.
Also please note we rolled back the key to postgresql, so webModelerPostgresql will not work anymore (it will be added with Camunda 8.6, October 2024).


[vera] Binary Sensors add extra switch entities

Home Assistant release (hass --version): 0.40
Component/platform: Vera
Description of problem: After upgrading to 0,40, binary sensors such as motion sensors and door/window sensors also add a switch entity in Home Assistant, which don't update when the status changes. A binary_sensor entity is added for the same device, which updates as expected.
Expected: Motion and door/window sensors linked to vera should only create a binary_sensor entity.
Problem-relevant configuration.yaml entries and steps to reproduce:
0.39 version of door sensor
binary_sensor.entry_door

0.40 versions of door sensor
binary_sensor.entry_door_25
switch.entry_door_25

Additional info: Pinging @arjenfvellinga and @pavoni who made changes to Vera in 0.40

Armable devices (like motion sensors) have always added 2 devices to HA. You should have had a switch.entry_door entity in 0.39
The sensor itself is pretty straightforward.
The switch controls the arming - and is not related to the sensor state.
HA doesn't use the arming - but if the sensor is armed then Vera will send an alert/notification via whatever means you have set up when the sensor is tripped. You can use this in vera to send txts etc.
Perhaps only useful for a door if you are using it as an intruder alarm. I have used it to arm my flood alarm which sends txts if there is a flood.
Of course if you don't use them -you can just hide them in HA.
0.40 doesn't change the way vera devices were added - just their entity ids.

Thanks again @pavoni!
That makes sense. I guess with the change to entity_ids I didn't really notice the extra switches until I was looking for the new entity IDs. I only use Home Assistant for all the logic, so I'll just ignore those switches ;)
Cheers


[New chain]: Bitrock Mainnet

Summary
I would like to add Bitrock Mainnet chain.
Chain ID
7171
Chain detail URL
https://chainlist.org/chain/7171
RPC URL
https://brockrpc.io
Blockscout Client URL
https://explorer.bit-rock.io/graphiql
Etherscan Client URL
No response
Etherscan Client API URL
No response
Version
1.4.1+L2
Address (Master copy)
0x29fcB43b46531BcA003ddC8FCB67FFE91900C762
Deployment Tx hash (Master copy)
0x66faafb0b681af6165759018df2bd6916010bb01663c1f3a030c44921cbd96f5
Block explorer URL (Master copy)
https://explorer.bit-rock.io/tx/0x66faafb0b681af6165759018df2bd6916010bb01663c1f3a030c44921cbd96f5
Address (Proxy factory)
0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
Deployment Tx hash (Proxy factory)
0xfabbd11b600aac83203b0800617033b32208a16645bdb81c6a11486c780e665f
Block explorer URL (Proxy factory)
https://explorer.bit-rock.io/tx/0xfabbd11b600aac83203b0800617033b32208a16645bdb81c6a11486c780e665f

Validation has failed with the following errors:

Blockscout Client URL (https://explorer.bit-rock.io/graphiql) not valid.

Validation failed!❌

The correct url should be: https://explorer.bit-rock.io/api/v1/graphql

/execute


Feature/download members with correct EOL format based on OS

Changes
This PR addresses an issue with line endings in the code repository. Currently, when the member is downloaded from the object browser to the local repository on a Windows machine, files are downloaded with LF (Line Feed) endings instead of the expected CRLF (Carriage Return Line Feed) format. As a result, when code is pushed to the remote repository, Git detects changes across all lines due to inconsistent line endings, leading to unnecessary diff outputs and complicating code reviews. As a fix CPYTOSTMF is changed based on the type of Operating System.
How to test this PR
Download the member from object browser on Windows machine it should be downloaded with CRLF (Carriage Return Line Feed) and on Linux/Mac OS it should be downloaded with LF (Line Feed). It can be verified by checking the format on the bottom right of the VS Code.

Examples:

Run the test cases
Expand view A and right click on the node
Run 'Execute Thing' from the command palette

Checklist

[x] have tested my change
[x] have created one or more test cases
[x] updated relevant documentation
[x] Remove any/all console.logs I added
[x] have added myself to the contributors' list in CONTRIBUTING.md

@preetpalsinghmehra Thank you for your contribution to this project - very much appreciated. 👍
However, it seems like your change is made to fix some line ending issues you have with git on Windows - and that you're now changing Code for IBM i in order to remove the issue with git.
Git has always recognized that it could be used on different platforms with different line endings in files and have provided a mechanism to avoid this issue. It involves telling git how to handle line endings by changing some settings in git (globally or in the repository) and have git handling the line endings when reading from and writing to the repository.
I found this page to have the best description of how this works and how to set it up:
https://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line
Especially this paragraph is important:

Git’s primary solution to all this is to specify that LF is the best way to store line endings for text files in a Git repository’s object database. It doesn’t force this on you but most developers using Git and GitHub have adopted this as a convention and even our own help recommends setting up your config to do this.

Other useful links for git and line endings could be these:
https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes
https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
Code for IBM i is built and used on both Windows, Mac and Linux, and we prefer to avoid platform-specific code in the code base, since this would make it harder to do testing, which would require access to multiple platforms.
Also note that you can easily have VS Code change the line endings in the source files, if you click in the status bar on the line ending symbol (or press F1 and search for Change End of Line Sequence). And that you can configure VS Code to use the LF line ending for new files globally or per project (open the settings (Ctrl-,) and search for files.eol).

Thanks @chrjorgensen  for you valuable comments and sharing the information.

@preetpalsinghmehra I just checked my git configuration on Windows, and I have core.autocrlf = input - meaning, git will change any CRLF to LF during commit and keep the LF during checkout, clone etc. I work solely with LF as line endings, and should I by mistake commit a file using CRLF, it will be converted to LF by git.
Hope you fix your issues. Line endings and git is tricky, and no matter how you configure git, you always risk to get in to this situation, if the original committer or repository creator did not think about this.
Should we close this PR - or do you have other reasons for this change of member download behavior?

Not that I am in a position to make the decision, but in my opinion, it can be closed, for all the reasons @chrjorgensen stated.
It has been getting easier and easier over the years to do things "the Unix way" on Windows, and if you use VS Code, you can easily configure it so that you work entirely with LF-only line endings, even for files destined to spend their entire existence on Windows. For example, the Python interpreter works equally well on source with LF or CRLF line endings, regardless of platform, so it's common to simply use LF for all Python source, no matter where it lives.

@chrjorgensen Yes we can close the pull request thanks.


Where is the schematic for this board

I haven't found the schematic anywhere.

it's highly appreciated if you add the schematic

it's highly appreciated if you add the schematic

I agree, because when we're trying to get extra low power standby current its important to see the schematic.

thanks for adding the schematic to the project

ok, I'm looking at the schematic, I'll need a moment to get my head around what that is showing.  In particular, I'm looking to see what parasitic loads there is on the battery when we're in deep sleep.
So there's 200k load on BAT bus to ground thats 20uA to start with with 4V battery.
Then I can't quite work out the connection between VBAT and BAT buses.  But looks like VBAT is loaded with another 100K R12 which is another 40uA.  So thats 60uA.
Then there's RED LED8 dangling off the 3V3 bus.  My actual board has a bright green LED next to the USB C. is that this one?  I thought it may not be active but I just tried with a battery and yes its on, burning away a whopping 5mA all the time.
So, you can make some nice things with a standby current of <100uA, single button power etc.  But not with that LED knocking about.

The T-Display-S3 without touch when entering deep sleep is about 200uA.

Drive GPIO15 (PWR_EN) low and it will shut off the green LED.
`
#define PIN_POWER_ON           15
#define PIN_LCD_BL             38
#define PIN_WAKEUP_FROM_SLEEP  10
void deepSleep()
{
digitalWrite(PIN_POWER_ON, LOW);
digitalWrite(PIN_LCD_BL, LOW);
gpio_num_t wakeUp = gpio_num_t(PIN_WAKEUP_FROM_SLEEP);
esp_sleep_enable_ext0_wakeup(wakeUp, 0); // 1 = High, 0 = Low
rtc_gpio_pullup_en(wakeUp);
rtc_gpio_pulldown_dis(wakeUp);
esp_deep_sleep_start();

}
`

Problem has been resolved.


Snappy frames delimiter wanted

Currently it is a bit tricky from the implementation point of view to uncompress snappy frames in the response stream. For example we get a response with several chunks:
| result-1 | sszLength-1 | snappyFrame-1-1 | snappyFrame-1-2 | result-2 | sszLength-2 | snappyFrame-2-1 | ...

Without hacking into the Snappy frame format (Snappy frames has length prefix) we can't figure out how many bytes we should take from the stream to feed to the Snappy decompressor.
May be it makes sense to length-prefix every Snappy frame explicitly to avoid error-prone implementation tricks?

Your approach to consume the snappy frames can be changed to make it work. Other clients do this, even in javascript, and it can work fine, without API changes to a proper snappy library.
You read the SSZ length, then read that many bytes from the Snappy reader (assuming you've snappy framed format exposed as with a streaming API). And snappy should only read more frames when more SSZ bytes are requested than available from the currently buffered frame. More frames could be buffered before returning the decompressed bytes in a stream-read call, if the requested ssz byte length is big enough to warrant that. Then just loop the read call until you get the full N ssz bytes, and at the same time you can decode them into the SSZ datastructures. SSZ isn't technically a streaming format, but since the SSZ length is already known, a decoder can build the datastructure without buffering the full bytes first!
Similarly, for encoding you can compute the size efficiently first, then write to the (snappy compressed) stream, without buffering the full ssz bytes. And snappy writes the completed frames to the network output, while maintaining a single frame. And after encoding the ssz object to the stream, you should then flush it to complete the last frame (snappy compressor could still be waiting for more bytes to put in the last frame, hence the need to flush before closing it), and you have a full streaming (as good as possible here) compressed SSZ protocol!

Your approach to consume the snappy frames can be changed to make it work. Other clients do this, even in javascript, and it can work fine, without API changes to a proper snappy library.

I didn't mean it's impossible but it requires some extra efforts from the client implementation and  requires some specific capabilities from Snappy library. This seems to me like unnecessary over-complexity and can be implementation error-prone
Let me dive a bit deeper with the assumption that the whole response can be fragmented in any arbitrary fashion.
Let's for example suppose the following response (2 single frame chunks)
| result-1 | sszLength-1 | snappyFrame-1 | result-2 | sszLength-2 | snappyFrame-2 |

and it is fragmented and delivered with 2 packets (ByteFuffers or whatever) :
( result-1 | sszLength-1 | snappyFr)  // packet #1
(ame-1 | result-2 | sszLength-2 | snappyFrame-2 )  // packet #2

(note: you can't reconstruct Eth2 response chunks from these fragments without hacking into Snappy frames format)

You read the SSZ length, then read that many bytes from the Snappy reader (assuming you've snappy framed format exposed as with a streaming API)

Assuming you are feeding the packet #1 to an abstract Snappy decompressor and call read(ssLength_1)
There are different possible options which decompressor may or may not support:

call would block until the rest of the frame (packet #2) is fed (blocking API)
returns maximum it can while keeping some rest state internally
returns 0 bytes while caching incomplete frame data
throws error

Also when feeding the packet #2 to the decompressor we need to make sure it doesn't pre-fetch any bytes internally and would read the compressed stream (ByteBuffer or whatever ) exactly until | result-2
Another strong argument is that we would like to process Eth2 chunks (either with Snappy compression or not) at a higher level without dealing with packet fragmentation issues.
Just checked the Lighthouse code https://github.com/sigp/lighthouse/blob/master/beacon_node/eth2-libp2p/src/rpc/codec/ssz_snappy.rs#L260-L262 and I'm not sure if it would work in case of fragmentation described above.
I'm suspecting other libraries may potentially have issues in case of fragmentation and just work fine cause it's not happening with the current Libp2p muxer implementation
Again I'm not saying it's impossible to implement the current protocol but why do we need to impose those complexities when we are able to simplify the things?

(note: you can't reconstruct Eth2 response chunks from these fragments without hacking into Snappy frames format

If it's split like that, and you can't read the second part, then you can't reconstruct a response chunk regardless. Not a problem specific to snappy.

Also when feeding the packet #2 to the decompressor we need to make sure it doesn't pre-fetch any bytes internally and would read the compressed stream (ByteBuffer or whatever ) exactly until | result-2

I think that is just a design problem of the implementation. It should not be "feeding", the decompression should ask for the data from the feeder. Otherwise you have to understand the contents (expected ssz byte length) on the producer side, instead of the consumer side. The "feeding" is prone to pre-fetching indeed if you have no length information, and just a bad idea, since reading bytes from a stream that is not supposed to return them is unexpected bad behavior. I would keep it simple and memory efficient: have the snappy library do the work, and ask for the bytes it needs, not the bytes you guess it could need.
Also, if we start encoding the full compressed length we can't do streaming-encoding anymore, as we have to compute it ahead of time. That would mean compressing everything first, and if an RPC chunk is very large that can be a problem.

Just checked the Lighthouse code

It should work fine, was tested with rumor first, then plenty of use in production (schlesi). And soon network tests will help too, but I think this part of lighthouse RPC is good. However, what lighthouse does not yet do is to decode the bytes directly into a data structure. Instead, it buffers the full ssz-length worth of bytes, and only then encodes it. No problem, that can be improved later on their side. The idea really is that if we had bigger RPC chunks (E.g. beacon states, or later phase 1 things), we can support them with the current RPC without problems.

Again I'm not saying it's impossible to implement the current protocol but why do we need to impose those complexities when we are able to simplify the things?

Yes, I understand it's not easy, but I do think it has its benefits. We reduce memory (so far a bigger problem in clients than CPU or network io), support large chunks, enable better compression within a chunk (can have multiple frame types), and streaming in both encoding and decoding (except for length computation, but that can be very cheap).

I think that is just a design problem of the implementation. It should not be "feeding", the decompression should ask for the data from the feeder. Otherwise you have to understand the contents (expected ssz byte length) on the producer side, instead of the consumer side. The "feeding" is prone to pre-fetching indeed if you have no length information, and just a bad idea, since reading bytes from a stream that is not supposed to return them is unexpected bad behavior. I would keep it simple and memory efficient: have the snappy library do the work, and ask for the bytes it needs, not the bytes you guess it could need.

Ok there was probably terms misunderstanding...
Let's see to the lighthouse code in more details to demonstrate my concerns:
Suppose we have two packets (as described above) where Snappy frame is fragmented
When the packet #1 arrives I suppose it is immediately passed to this method:
fn decode(&mut self, src: &mut BytesMut)
I'm not sure this code would process it correctly cause the Snappy frame is incomplete:
reader.read_exact(&mut decoded_buffer)
I think it might be good idea to invite someone from Lighthouse team for comments.

Also, if we start encoding the full compressed length we can't do streaming-encoding anymore, as we have to compute it ahead of time. That would mean compressing everything first, and if an RPC chunk is very large that can be a problem.

That's why I would suggest to length-prefix every Snappy frame with the length of compressed frame. This should not affect Snappy streaming ability but should allow handling wire packets more explicitly

So the way it works in Lighthouse for your example is that the read_exact function will read exactly the number of bytes from the underlying snappy reader to fill the decoded_buffer with sszLength-1 bytes. If there aren't enough bytes like in your example, we return None which buffers the received bytes in expectation of more bytes to come.
After we receive packet #2, we now have enough bytes to fill the decoded_buffer, so read_exact returns the decompressed bytes which we ssz decode to return the decoded chunk. The second frame would be straightforward now since we have all the bytes needed to decode it.

Well I completed non-blocking implementation in Teku, and I can say that was somewhat challenging. I needed to carefully handle  possible packets fragmentations and sticking through the whole application level protocol decoders pipeline. That was kind of building an application protocol right on top of IP protocol.
Probably blocking streams and coroutines would make the life much easier but we are lacking this in Java world at the moment.
Just thought that protocol compression ideally should be somewhat transparent to the upper levels. I.e. why not compress the whole stream of RPC chunks, so the lower network lower level handler may decompress it without knowledge of higher level message structure.
Anyways everyone I believe has already implemented this with more or less pain and revising this protocol has no much sense now. But for future changes and future protocols I would suggest to consider this implementation side issue

@Nashatyrev Sorry to hear it was a pain, that was not the intention. With the right abstractions to read/write to streams it was doable from a Golang perspective at least, and I tried to get feedback from Lighthouse, Nimbus and Prysm. Other clients seemed too busy with other things at the time. The change to support snappy was discussed and generally accepted on the network call and in PR #1606 (which was open for at least a month), and so it went through. If you like to suggest things for easier implementation in Java you're welcome to, but I think we'll keep this as-is for now, and then check future changes more closely against the Java way of doing things.


testing

hey @ssenan, when you have a moment it would be great to have you spin up a ddp run on your hardware. the readme has directions for getting setup.
thanks, let me know what you run into and I can help out.

hey, I'll give it a try either tomorrow or Wednesday and let you know if I encounter any issues.

Here is the current error I get when trying the main branch.

I have some clarifying questions regarding some of the sequence insertion strategy / code structure and wouldn't mind sitting it on your next meeting with Aaron to discuss if possible.
A side note sklearn is not installed via requirements, but is utilized during the data split process.

file names of preprocessed data should be corrected now @ssenan

Just putting this here for later reference:

I will spend some time exploring what is causing the need for the find_used_parameters, while simultaneously exploring some methods for decreasing the memory requirements for finetuning.

PR6 runs with batch size 4 for a couple of epochs. I am yet to complete a full (20 epochs) run because of long queue of the cluster scheduler I am using.
The logs contain version_00 and version_0. Version_00 was trained with batch size 2 and version 0 with batch size 4. Both run successfully. Also, still encountering NaNs on epoch end for version_0, not for version_00. I did play around with the tensor types and precision between different runs (I believe the batch size 2 was able to run with 32 bit precision whereas batch size 4 needed to be scaled down to 16-mixed).

nice – yeah this is reproducing the issue I had with nans in the loss at 16-bit precision!
in conclusion, I think we need to run at 32 bit. it would be great to get an 80 gb machine...I'm onboarding to Stability cluster but I'm not sure what resources are available yet
I will review the PR and close this issue with it. thanks @aaronwtr !


No UTM file to copy

trying to do this on linux, and i have been over the page a bunch of times. there is no .utm file to copy. cant make it work without it. Should probably link it down in the instructions where it says to copy it. then its right there, and you dont have to go looking for it.

Hello
Looks like you've forget to do the step 2: https://github.com/Olsro/ipodclickwheelgamespreservationproject?tab=readme-ov-file#2-download-the-virtual-machine-and-all-of-the-games-files

I improved the documentation a bit to precise that downloading the virtual machine means downloading the utm file


Create image for Foundations page for spacing

Now that we have the new Spacing page, we need to represent it on the main Foundations page. To do so, we need and image and text to link from.

@dcaryll
I created a new image for the Spacing page and I updated the images of the other sections to be a bit taller.
https://xd.adobe.com/view/ae261677-7a75-49b6-a7cb-b7410e8668a9-fb75/

@dcaryll
I created a new image for the Spacing page and I updated the images of the other sections to be a bit taller.
https://xd.adobe.com/view/ae261677-7a75-49b6-a7cb-b7410e8668a9-fb75/

Images added


toggle too small for some reason

if you are talking about the switches... they where adding a big white space on mobile. I mean, they were overflowing the viewport....


Current user avatar never updates

I changed my GitHub avatar some days ago, but GitPoint keeps on showing me the old one (bearded me).
I even tried to sign out & sign in again, but the old avatar stays.

This is bug RN.
URL is the same, so it is not updated. As a solution (not very good), append a random number (or timestamp) into a URL, i.e. there will be something like avatars2.githubusercontent.com/u/4408379?v=4&c=666 instead of avatars2.githubusercontent.com/u/4408379?v=4
Although in the documentation for Image, there is a mention of the cache property, maybe this will help us?

We could also append the profile update time which is provided by GitHub ;)
On Aug 16, 2017 20:34, "Alexey Pyltsyn"<EMAIL_ADDRESS>wrote:

This is bug RN https://github.com/facebook/react-native/issues/12606.
URL is the same, so it is not updated. As a solution (not very good),
append a random number (or timestamp) into a URL, i.e. there will be
something like avatars2.githubusercontent.com/u/4408379?v=4&c=666
instead of avatars2.githubusercontent.com/u/4408379?v=4
Although in the documentation for Image
https://facebook.github.io/react-native/docs/image.html, there is a
mention of the cache property, maybe this will help us?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gitpoint/git-point/issues/265#issuecomment-322876060,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASlQoPfg2djaLNReO2LUkWmKz0KdBs2ks5sY0RdgaJpZM4O5J4l
.

@machour That's a good idea - would prevent unnecessary refetches of the same image.

I think that's a great idea @machour if GH provides us that in the response :)

It does. I'll handle the PR tomorrow !
On Aug 16, 2017 22:11, "Houssein Djirdeh"<EMAIL_ADDRESS>wrote:

I think that's a great idea @machour https://github.com/machour if GH
provides us that in the response :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gitpoint/git-point/issues/265#issuecomment-322900679,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASlQlZgBvwzS5K_m-Ff0Th4SCpbhmmlks5sY1sMgaJpZM4O5J4l
.

@machour did not know this, then I'm fine. Although still changing the URL itself is not a good decision for me, but considering that there are no other solutions, it's better that way. Although try to use the property cache of the Image component, okay?

Sadly, the updated_at property isn't affected if the user only changes his profile image.
However, the headers in the image response (especially Last-Modified) are correctly updated.
@lex111  : The cache property seems to be iOS only, and to be doing everything except what is needed for our case: https://facebook.github.io/react-native/docs/images.html#cache-control-ios-only
So, unfortunately, RN doesn't seem to handle this header properly for now, and I fail to find any library out there that would do. (or maybe my understanding is wrong)
This is the proposed fix for now, that would at least bind the image url to the profile last udpate time .. or we can mark this as wonfix and wait for RN to provide a better support for server-side cache directives.
diff --git a/src/components/user-profile.component.js b/src/components/user-profile.component.js
index 8545af6..0a4e057 100644
--- a/src/components/user-profile.component.js
+++ b/src/components/user-profile.component.js
@@ -86,8 +86,8 @@ export const UserProfile = ({
       <ImageZoom
         uri={{
           uri: initialUser.avatar_url
-            ? initialUser.avatar_url
-            : user.avatar_url,
+            ? initialUser.avatar_url + '&cache=' + initialUser.updated_at
+            : user.avatar_url + '&cache=' + user.updated_at,
         }}
         style={[
           styles.avatar,

Maybe we could also suggest that GitHub update the updated_at value when a user changes their profile image. Would make sense to me.

Also, I think your change is better than nothing. At the very least we can tell people to update their profile for their image change to take effect.

Good idea to ask GH. Do you know on what repository the issue must be filled ?
Ok for the PR, does the provided diff looks ok to you or should I not rely on the current URL format and check for the "?" in url and act accordingly ?

Best place to ask would probably be here: https://platform.github.community/
For the PR, I'd say it looks fine as-is. Might want to use template tags though so ESLint doesn't get mad:
diff --git a/src/components/user-profile.component.js b/src/components/user-profile.component.js
index 8545af6..0a4e057 100644
--- a/src/components/user-profile.component.js
+++ b/src/components/user-profile.component.js
@@ -86,8 +86,8 @@ export const UserProfile = ({
       <ImageZoom
         uri={{
           uri: initialUser.avatar_url
-            ? initialUser.avatar_url
-            : user.avatar_url,
+            ? `${initialUser.avatar_url}&cache=${initialUser.updated_at}`
+            : `${user.avatar_url}&cache=${user.updated_at}`,
         }}
         style={[
           styles.avatar,

There you go @andrewda
I also got in touch with GitHub support which opened an internal issue for the API and will keep me posted 🤞

This should be completely fixed now 😃
"Hey Mehdi,
Just wanted to let you know that the team deployed some changes so that the updated_at for a user is updated after a new avatar is uploaded.
Hope this helps.
Cheers,
Ivan"


Cannot find module unstorage/drivers/localstorage

Using nuxt3-rc3, pnpm (shamefully hoist), I'm getting this typescript error when trying to import the driver. The import works fine in dev, but in the built .output, it errors out.
I worked around the issue by manually pasting the source in my source files and calling defineDriver myself, but I don't know why it's happening.

It's a new feature in TypeScript 4.7
Confirm you are using<EMAIL_ADDRESS>In your tsconfig.json, change moduleResolution to Node16 or NodeNext to make it work.
But this will breaks modules not support it yet (many packages need update microsoft/TypeScript#48845).
I advise you change nothing from your original code, just
import localStorageDriver from "unstorage/dist/drivers/localstorage";

at the moment.

Please ping to reopen if issue still not solved in latest version.


❓ Stream camera video to RTSP server in H.265

Question
We are going to develop an app to:

Capture built-in camera stream.
Encoding the stream in H.265 with hardware acceleration.
Push the stream to a RTSP server.

Shall we use react-native-vision-camera to implement it?
What I tried
No response
VisionCamera Version
2.0.1
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

Did you end up getting this to work @jim-king-2000 ?

Did you end up getting this to work @jim-king-2000 ?

No.

Are you using frame processors for this? How are you getting access to the video stream at all?

Are you using frame processors for this? How are you getting access to the video stream at all?

What is "frame processors"?
We use react-native-webrtc to access the video stream.

Thanks for letting me know, I was considering using frame processors to do this - check them out in the docs if you haven't heard of them, they seem to allow you access to each frame from the video feed

Thanks for letting me know, I was considering using frame processors to do this - check them out in the docs if you haven't heard of them, they seem to allow you access to each frame from the video feed

I'm not the expert of video. But I was heard that frame processor is used to process video frames such as adding rectangles to human faces. For H.265 hardware encoding on Android, MediaCodec is widely used.
And there is still another issue for using this great library. We write a RTSP client by RN and it would be killed by Android system soon. We don't have any idea to keep the RN process alive.

Thanks for letting me know, I was considering using frame processors to do this - check them out in the docs if you haven't heard of them, they seem to allow you access to each frame from the video feed

I'm not the expert of computer video. But I was heard that frame processor is used to process video frames such as adding rectangles to human faces. For H.265 hardware encoding on Android, MediaCodec is widely used.
And there is still another issue for using this great library. We write a RTSP client by RN and it would be killed by Android system soon (on a device, not a smartphone). We don't have any idea to keep the RN process alive.

The docs and a few issues do say they can be used for sending video e.g. https://github.com/mrousavy/react-native-vision-camera/issues/965.
How are you using react-native-rtc to access the stream?
Also your second issue sounds a lot like my issue... I outlined it here: https://github.com/mrousavy/react-native-vision-camera/issues/1011#issuecomment-1439611038. Right now i'm just handling the situations where the app is closed, its not ideal but I don't think its preventable.


[Feature] SQL Task should also support Cancel operation

Is your feature request related to a problem? Please describe.

But, for JDBC (SQL) Tasks,  some SQL can be very timeconsuming, we can also implement the Cancel support to cancel mis-written SQL to reduce warehouse database workload), we can call Statement:Cancel to cancel running statement for most DBMS, we can also stop fetch more if it already comes to Fetch ResultSet stage.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@Baoqi ，could you implement this feature？

can we use the method to cancel Statement like this
`
public static void cancel(String id) throws SQLException {
Statement statement = ID_STATEMENT.get(id);
// 若查询正在执行，调用 cancel() 方法进行取消
if (statement != null) {
statement.cancel();
}
}
public static void add(String id, Statement statement) {
    ID_STATEMENT.put(id, statement);
}

public static void remove(String id) {
    ID_STATEMENT.remove(id);
}

`

Hello，我在使用2.x版本的dolphinscheduler，我发现了SQL task不支持cancel没有实现，我想请问一下，是否可以通过缓存Statement对象，然后在cancel的时候通过调用Statement的cancel方法来取消SQL？类似于下面这种
private static final Map<String, Statement> ID_STATEMENT = new HashMap<>();

    public static void cancel(String id) throws SQLException {
        Statement statement = ID_STATEMENT.get(id);
        // 若查询正在执行，调用 cancel() 方法进行取消
        if (statement != null&&!statement.isCloseOnCompletion()) {
            statement.cancel();
        }
    }

    public static void add(String id, Statement statement) {
        ID_STATEMENT.put(id, statement);
    }

    public static void remove(String id) {
        ID_STATEMENT.remove(id);
    }


Failed to sync tags

What I did

Made the changes
Pushed
Tagged HEAD
Pushed the new tag

Setup
name: GitLab Sync

on: [push, create, delete]

jobs:
  sync:
    name: Synchronise to GitLab
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: action-pack/gitlab-sync@v3
        with:
          username: Frederick888
          url: "https://git.tsundere.moe/Frederick888/git-credential-keepassxc.git"
          token: ${{ secrets.GITLAB_ACCESS_TOKEN }}

Results
https://github.com/Frederick888/git-credential-keepassxc/actions/runs/6626126547/job/17998425927
Logs in case the link expiresRun action-pack/gitlab-sync@v3
  with:
    username: Frederick888
    url: https://git.tsundere.moe/Frederick888/git-credential-keepassxc.git
    token: ***
Run /home/runner/work/_actions/action-pack/gitlab-sync/v3/entrypoint.sh
  /home/runner/work/_actions/action-pack/gitlab-sync/v3/entrypoint.sh
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    INPUT_TARGET_URL: https://git.tsundere.moe/Frederick888/git-credential-keepassxc.git
    INPUT_TARGET_TOKEN: ***
    INPUT_TARGET_USERNAME: Frederick888
    GITHUB_EVENT_REF: refs/tags/v0.14.0
push
git remote add target ***git.tsundere.moe/Frederick888/git-credential-keepassxc.git
+ git fetch --all
Fetching origin
Fetching target
From https://git.tsundere.moe/Frederick888/git-credential-keepassxc
 * [new branch]      actions-just  -> target/actions-just
 * [new branch]      build-musl    -> target/build-musl
 * [new branch]      clap4         -> target/clap4
 * [new branch]      fix-win-build -> target/fix-win-build
 * [new branch]      group-detect  -> target/group-detect
 * [new branch]      master        -> target/master
 * [new branch]      shell-comp    -> target/shell-comp
 * [new branch]      yubikey-old   -> target/yubikey-old
+ git push -f --all target
Everything up-to-date
+ git push -f --prune target
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
git push target HEAD:<name-of-remote-branch>

Error: Process completed with exit code 128.

@kroese The key is to push the tag by itself to trigger a create event, so that actions/checkout checks out the tag.
In fact, this can be easily reproduced locally:
$ mkdir test && cd $_
$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint:   git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint:   git branch -m <name>
Initialized empty Git repository in /home/frederick/Downloads/test/.git/
$ git remote add origin https://github.com/Frederick888/git-credential-keepassxc
$ git -c protocol.version=2 fetch --prune --progress --no-recurse-submodules origin '+refs/heads/*:refs/remotes/origin/*' '+refs/tags/*:refs/tags/*'
remote: Enumerating objects: 1828, done.
remote: Counting objects: 100% (179/179), done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 1828 (delta 150), reused 150 (delta 141), pack-reused 1649
Receiving objects: 100% (1828/1828), 751.65 KiB | 6.90 MiB/s, done.
Resolving deltas: 100% (1180/1180), done.
From https://github.com/Frederick888/git-credential-keepassxc
 * [new branch]      clap4          -> origin/clap4
 * [new branch]      master         -> origin/master
 * [new branch]      shell-comp     -> origin/shell-comp
 * [new branch]      yubikey-old    -> origin/yubikey-old
 * [new tag]         v0.1.0         -> v0.1.0
 * [new tag]         v0.1.1         -> v0.1.1
 * [new tag]         v0.1.2         -> v0.1.2
 * [new tag]         v0.1.3         -> v0.1.3
 * [new tag]         v0.10.0        -> v0.10.0
 * [new tag]         v0.10.1        -> v0.10.1
 * [new tag]         v0.10.1-beta.1 -> v0.10.1-beta.1
 * [new tag]         v0.10.1-beta.2 -> v0.10.1-beta.2
 * [new tag]         v0.10.1-beta.3 -> v0.10.1-beta.3
 * [new tag]         v0.10.1-beta.4 -> v0.10.1-beta.4
 * [new tag]         v0.10.2-beta.1 -> v0.10.2-beta.1
 * [new tag]         v0.10.2-beta.2 -> v0.10.2-beta.2
 * [new tag]         v0.10.2-beta.3 -> v0.10.2-beta.3
 * [new tag]         v0.11.0        -> v0.11.0
 * [new tag]         v0.12.0        -> v0.12.0
 * [new tag]         v0.13.0        -> v0.13.0
 * [new tag]         v0.14.0        -> v0.14.0
 * [new tag]         v0.2.0         -> v0.2.0
 * [new tag]         v0.3.0         -> v0.3.0
 * [new tag]         v0.3.1         -> v0.3.1
 * [new tag]         v0.3.2         -> v0.3.2
 * [new tag]         v0.3.3         -> v0.3.3
 * [new tag]         v0.4.0         -> v0.4.0
 * [new tag]         v0.4.1         -> v0.4.1
 * [new tag]         v0.4.2         -> v0.4.2
 * [new tag]         v0.4.3         -> v0.4.3
 * [new tag]         v0.5.0         -> v0.5.0
 * [new tag]         v0.5.1         -> v0.5.1
 * [new tag]         v0.6.0         -> v0.6.0
 * [new tag]         v0.6.1         -> v0.6.1
 * [new tag]         v0.7.0         -> v0.7.0
 * [new tag]         v0.8.0         -> v0.8.0
 * [new tag]         v0.8.1         -> v0.8.1
 * [new tag]         v0.8.2         -> v0.8.2
 * [new tag]         v0.9.0         -> v0.9.0
 * [new tag]         v0.9.1         -> v0.9.1
$ git checkout --progress --force refs/tags/v0.14.0
Note: switching to 'refs/tags/v0.14.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 1de3f2d chore: Bump version to 0.14.0
$ git push -f --prune origin
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

    git push origin HEAD:<name-of-remote-branch>

Hello! 👋
I had a similar problem using a different GitHub Action to mirror some SourceForge repos to GitHub. While doing some research on GitHub mirroring actions I came across this repo & issue. I know that I'm chiming in here with no context or anything, but here's some info that might help...
Would something like this work? This is kinda how the GitHub docs recommend doing things: https://docs.github.com/en/repositories/creating-and-managing-repositories/duplicating-a-repository
git clone --bare https://github.com/octocat/project.git .
git push --mirror "https://x:$TOKENgit.tsundere.moe/Frederick888/git-credential-keepassxc.git"

You could make it into a workflow like this maybe:
name: Sync to GitLab
on: [push, create, delete]
jobs:
  sync-to-gitlab:
    runs-on: ubuntu-latest
    steps:
      - run: git clone --bare "https://github.com/$GITHUB_REPOSITORY.git" .
      - run: git push --mirror "https://x:$TOKENgit.tsundere.moe/Frederick888/git-credential-keepassxc.git"
        env:
          TOKEN: ${{ secrets.GITLAB_ACCESS_TOKEN }}

I know this strategy works great for syncing things from places like SourceForge or GitLab to GitHub, but I haven't had the chance yet to try the reverse.


Made fix to reader.py for reader schemas with default values of None.…

… Added corresponding unit tests

Nice catch.

Thanks! Will have a look soon-ish.

awesome! thank you guys :)
On Mon, Aug 1, 2016 at 10:51 AM, Miki Tebeka<EMAIL_ADDRESS>wrote:

Merged #59 https://github.com/tebeka/fastavro/pull/59.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tebeka/fastavro/pull/59#event-741175320, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AHOTgBEd8T4wvWIRBjoEVR_5oE0kRYT_ks5qbhXtgaJpZM4JTJsY
.


Issue with snowflake_unsafe_execute

Terraform CLI and Provider Versions
terraform 1.3.6
Terraform Configuration
terraform {
  required_version = ">= 1.3.6"
  required_providers {
    snowflake = {
      source  = "snowflake-labs/snowflake"
      version = ">=0.82.0"
    }
  }
}

resource "snowflake_unsafe_execute" "test" {
  depends_on = [snowflake_schema.schema]
  execute = "SELECT 18"
  revert  = "SELECT 36"
  query  = "SELECT 108"
}

output "unsafe" {
  depends_on = [snowflake_unsafe_execute.test]
  value = snowflake_unsafe_execute.test.query_results
}
It is returning the previous value (96) instead of 108

Expected Behavior
It is returning the previous value (96) instead of 108
Actual Behavior
It is returning the previous value (96) instead of 108
Steps to Reproduce

terraform apply

How much impact is this issue causing?
Medium
Logs
No response
Additional Information
No response

added tfe plan output

Hey @ramprasads108. Thanks for reporting the issue.
I have merged the fix, it will land with the next release.

Hey @ramprasads108. We have released the fix as part of v0.87.0 release. Please follow the migration guide during the update. Please confirm that the issue is resolved in the newest version. Thanks!


Add validations to 5.1 csv pipeline

After a 5.1 CSV feed is loaded and transformed into xml_tree_values, use the 5.1 validations functions to validate the data!
v5_1_ballot_styles had yet to be transformed, so that is done, and one of its columns needed updating.
A "full good" CSV set is loaded and affirmed to be without errors. The data in that CSV set doesn't make a whole lot of sense, but it is self-consistent and adheres to the relationships and value formats the spec demands.
Pivotal story: 120707911

OK, I think my questions and concerns are addressed. LGTM.


Update index.js

this is a HUGE missed opportunity for a pun, and I think the pun fits better with the tone of the site generally

Haha true! To make this not look like a typo, could we do:
      'en_US': '"Git" comfortable with modifying the source tree :P',

Great idea! I updated it :D

Perfect! 🎉


Fail interactors when an updater hasn't changed

This will ensure additional actions, such as creating a timeline entry, don't
happen if an edition hasn't actually changed.

Closed in favour of https://github.com/alphagov/content-publisher/pull/1227


Unable to work properly with local conda environment

Issue Type: Bug
When creating a global conda environment, everything works fine. But when creating a local conda environment within the project directory with
conda create --copy -y -p ./venv

this cannot be selected as Python interpreter properly. I observed the following issues:

When opening the "select interpreter" command palette and press the small reload button in the top right corner of the palette, I can select the newly created interpreter, but if it is selected, VSCode does not determine the conda environment. As a result, it is not automatically activated, when opening a terminal in vsc.
The same holds, when the interpreter path is put manually as ./venv/bin/python via Enter interpreter path...
BUT: When I do it via Enter interpreter path... and select the interpreter then via Find in the file browser dialog, then the conda environment is recognized.
When I open a terminal now, vsc tries to activate the environment, but instead of activating a local env it tries to activate conda activate venv, which obviously does not work. Instead, the correct command would be conda activate ./venv.

VS Code version: Code 1.61.2 (Universal) (6cba118ac49a1b88332f312a8f67186f7f3c1643, 2021-10-19T15:49:28.381Z)
OS version: Darwin x64 21.1.0
Restricted Mode: No
Remote OS version: Linux x64 3.10.0-862.14.4.el7.x86_64
Extensions (12)

Extension
Author (truncated)
Version

Bookmarks
ale
13.2.2

git-graph
mhu
1.30.0

vscode-docker
ms-
1.17.0

vscode-language-pack-de
MS-
1.61.5

python
ms-
2021.10.1365161279

vscode-pylance
ms-
2021.11.0

jupyter
ms-
2021.9.1101343141

jupyter-keymap
ms-
1.0.0

jupyter-renderers
ms-
1.0.3

remote-ssh
ms-
0.66.0

remote-ssh-edit
ms-
0.66.0

markdown-all-in-one
yzh
3.4.0

We have bunch of issues with conda activations. We are currently looking into this. Here is a workaround for this:

Turn off auto activation. To do this, disable these two settings, ideally only for the project you are working on:

Exit VS Code.
Open Anaconda Prompt, navigate to your project.
Activate the environment that you want.
Run code . or code project.code-workspace to launch VS Code.

This will give you an activated environment, and the extension will not have to try and activate every time a terminal is created.

I am using miniconda, so if I see correctly, there is no Anaconda prompt available (on macOS). Just activating the environment from zsh and running code . doen't activate the environment automatically in the vscode internal terminal.
When setting python.defaultInterpreterPath="./venv/bin/python", the internal terminal should automatically recognize and activate ./venv instead of trying to activate venv. Currently it is absolutely frustrating and hard to work with vscode in our company, where almost all project environments are managed as local conda environments.

Unfortunately I'm not able to reproduce this bug on Windows. I assume you have the project directory opened as the workspace. I have a few questions:

What is command you used to create the conda env? Simply using conda create --copy -y -p ./venv in the workspace directory does not create the python binary, I had to use conda create --copy -y -p ./venv python.
Note we cache the result of any conda commands we use for 30 seconds. So if you attempt to create the env immediately after startup, we may not be able to detect it.
Have you tried using conda init zsh to initialize the zsh shell?

Most importantly, please provide the logs as mentioned in the issue template after you perform all these actions.

Set python.logging.level to debug in User settings, and check Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

XXX

Because we have not heard back with the information we requested, we are closing this issue for now. If you are able to provide the info later on then we will be happy to re-open this issue to pick up where we left off.


Mention snap instructions in the API docs

I noticed that the README.md had snap install instructions, but these were missing from readthedocs.org.

Thanks @evandandrea , yea the docs a bit messy with the main README.md and the website .rst docs.


WIP test(ipv6): Enable ipv6 smoke test

WIP I just created draft PR as I am refreshing my machine.
Relates #12201
Signed-off-by: Tam Mach<EMAIL_ADDRESS><!-- Enter the release note text here if needed or remove this section! -->

Coverage decreased (-0.07%) to 36.958% when pulling f26fbe99ca519ace5d72e858332615554d629742 on sayboras:feature/play-ipv6 into f55ec9066e3a23461a0d14e20b3be8ab49a04c97 on cilium:master.

Closed in favour of https://github.com/cilium/cilium/pull/12671


allows integration with openapispex

some tools like https://github.com/open-api-spex/open_api_spex convert Conn.params into a custom struct, this change allows to integrate with this type of tools by converting the struct back into a map

Thanks @juantascon! It'll be awesome if we can include a simple test for this as well, just so that we don't break it in the future

@navinpeiris done, please review again

Thanks @juantascon!


increased/decreased oxidative stress

If this is a request for a new term, please provide us with the following information.

Preferred term label (e.g., asplenia)

increased oxidative stress
decreased oxidative stress

Synonyms (e.g., absent spleen)

elevated oxidative stress
reduced oxidative stress

Textual definition (the definition should be understandable even for non-specialists. Include a PubMed ID or URL(s) to refer to any relevant article(s) that provides information about the suggested term).

A condition characterized by an increase in the accumulation of free radical groups in the body, which creates a potentially unstable and damaging cellular environment linked to tissue damage, accelerated aging, and degenerative disease.
A condition characterized by an decrease in the accumulation of free radical groups in the body, which relieves a potentially unstable and damaging cellular environment linked to tissue damage, accelerated aging, and degenerative disease.

Any additional notes to clarify the meaning or use of the term. Please provide a PubMed ID or URL(s) for the source of this information.

PMID: 32048631

Suggested parent term (Please look in the hierarchy of the MP using the MP Browser or other browsers such as OLS and find the place in the MP where the new term best fits)

oxidative stress (MP:0003674)

If you would like a nanoattribution, please indicate your ORCID id or provide a label such as MGI:sbello (organization, first initial-last name)

ORCID:0000-0003-3645-6803

We currently have the term "oxidative stress" (MP:0003674). It seems unclear to me how the new terms would relate to this. Possibly it would be better to use the susceptibility pattern? So increased/decreased susceptibility to oxidative stress with the definition related to some inducing agent that is expected to produce oxidative stress.
It may also be useful to add and abnormal reactive oxygen species level parent to group these with the existing term.


Add core dask config file to MANIFEST.in

Noticed CI failures in distributed (ref https://travis-ci.org/dask/distributed/jobs/529018634) that I think is related to the new dask/dask.yaml config file (added in #4774).
I suspect dask/dask.yaml should be included in MANIFEST.in and we should have include_package_data=True in setup.py. This way dask/dask.yaml will be included as a data file when dask is installed.
cc @mrocklin

Ah indeed.  Thanks for catching and resolving this @jrbourbeau


larger bundle size after upgrading to Angular 5.0.0 and uglify/minify not working.

Bug Report or Feature Request (mark with an x)
- [x ] bug report -> please search issues before submitting
- [ ] feature request

Versions.
ngular CLI: 1.5.0
Node: 8.6.0
OS: darwin x64
Angular: 5.0.0
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, platform-server, router
@angular/cli: 1.5.0
@angular-devkit/build-optimizer: 0.0.32
@angular-devkit/core: 0.0.20
@angular-devkit/schematics: 0.0.35
@ngtools/json-schema: 1.1.0
typescript: 2.4.2
webpack: 3.8.1
Repro steps.
ng build prod / ng build prod --aot
The log given by the failure.

Desired functionality.
I read the release note and it was "promised" smaller bundle size. Before upgrading from Angular 4.2.4 to 5.0.0 I created two different prod build one with --aot and another without.
After upgrading to 5.0.0 and angular cli 1.5  I changed to HttpClientModule and HttpClient to get my application to working again. This was the only change I did. I run again ng build prod and ng build prod --aot and I see a larger vendor bundle size. I'm doing something wrong?
This is the the repo I used to test build size.
Also how do I get minfy/ungly working on Angular 5? I thought this was done automatic on ng build prod.
Mention any other details that might be useful.

Screenshots.

Adding one thing...

Hi @isaklafleur,
It seems you're confusing ng build --prod with ng build prod. Your log uses ng build prod, which is not correct. --prod is a flag and not a name.
Try ng build --prod for the best size possible. --aot is on by default in production builds, so you don't need to specify it.
I'm going to close this issue. If this is not resolved by the above, please file a new issue or ping me directly here.
Cheers!

Hi @hansl ,
Ah, typo. :-)
Thank you! It solved it!
Wow 446kb and 112kb gzipped!

The following solution assumes you are serving your dist/ folder using nodejs. Please use the following app.js in root level
const express = require('express'),http = require('http'),path = require('path'),compression = require('compression');

const app = express();

app.use(express.static(path.join(__dirname, 'dist')));
app.use(compression()) //compressing dist folder
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/index.html'));
})

const port = process.env.PORT || '4201';
app.set('port', port);

const server = http.createServer(app);
server.listen(port, () => console.log('Running at port ' + port))

Make sure you install dependencies;
npm install compression --save
npm install express --save;

Now build the app
ng build --prod --build-optimizer

If you want to further compress the build say reduce 300kb(approx)
from , then follow the below process;

Create a folder called vendor inside the src folder and inside vendor folder create a file rxjs.ts  and paste the below code in it;
export {Subject} from 'rxjs/Subject';
export {Observable} from 'rxjs/Observable';
export {Subscription} from 'rxjs/Subscription';

And then add the follwing in the tsconfig.json file in your angular-cli application;
"paths": {
      "rxjs": [
        "./vendor/rxjs.ts"
      ]
    }

This will make your build size way too smaller. In my project I reduced the size from 11mb to 1mb.
Hope it helps


fix: initial query running twice causing duplicates

PR Type

[x] Bugfix
[ ] Feature
[ ] Refactoring

Context
Issue was caused by

together with

Upon navigating to explore items, the query runs already to fetch page 1 but at the same time, breadCrumbsFilter onMounted event sets listed=true
Thus making the watcher to run the query again for page 1 which causes the duplicates.
The fix is simple, if you want to set a default filter which is listed=true
It should be done before the watcher gets executed.
On a separate issue, BreadCrumbsFilter onMounted should also be refactored and all related components that relies on that.
It may cause unnecessary fetching tricking the page that the user set a listed=true filter

[x] Closes #6677
[ ] Requires deployment <snek/rubick/worker>

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality

Optional

[ ] I've tested it at </ksm/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Did your issue had any of the "$" label on it?

[x] Fill up your DOT address: Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot 📸

[ ] My fix has changed something on UI; a screenshot is best to understand changes for others.

Copilot Summary

🤖 Generated by Copilot at 769abca
Refactored the code for opening the shopping cart modal from the navbar. Moved the logic and configuration from ShoppingCartModalConfig.ts and ShoppingCartButton.vue to Navbar.vue to improve code organization and performance.

🤖 Generated by Copilot at 769abca

ShoppingCartButton
Simpler, no more emit -
Autumn leaves falling

Hey,
I am really happy that you managed to find a bug, it was a really tricky one! (good job)
However, I do not like the implementation fix.
What I would personally do is:

make separated watcher for listed
check if oldVal (watch has args (val, oldVal)) is undefined, if yes do nothing
if not resetFilter()

Thank you @vikiival, I agree that the fix can be improved.
I was just thinking of 2 scenarios that this watcher might not work.
1st if by any chance, we wouldn't want any default values set. Then if the user tried to set listed=true then it will fail. Since value is from undefined and watcher only runs when oldValue is not undefined.
Second, if next time we want to set more default filters not just listed=true, then this issue will arise again.
This fix only catches the listed=true

make separated watcher for listed
check if oldVal (watch has args (val, oldVal)) is undefined, if yes do nothing
if not resetFilter()
but ofcourse we can also do the skiping of resetFilter when oldValue = undefined on collection & owned

because after you manually unset the filter the value changes to

'false' instead of undefined for 'listed' and 'owned'
an empty string '' for collection
and an empty array for sort

thus making the condition correct to not run resetFilter if oldValue is undefined.
But for other filters like min, max, search. If by any chance, we want to have it set as a default value next time, then this issue may arise again.
This gets trickier when you try to set multiple default filters. We'll have to check if all of the default filters set came from an undefined value and if one of them is not then it means the filter was set by a person. Assuming we always set a default filter which may not be the case.
Please advice want you want me to change.
Thank you so much @vikiival

cc @vikiival

cc @vikiival

Cc @yangwao
https://github.com/kodadot/nft-gallery/pull/6730#issuecomment-1680280431
TL;DR i wont merge it like this. Solution is not good and in short term it could create more bugs.

cc @vikiival

Cc @yangwao
#6730 (comment)
TL;DR i wont merge it like this. Solution is not good and in short term it could create more bugs.

@vikiival please check my comment, would love to revise it but need feedback on how you'd want me to implement it.
https://github.com/kodadot/nft-gallery/pull/6730#issuecomment-1680374742

Current OP is a quick & valid fix.

https://github.com/kodadot/nft-gallery/pull/6730#discussion_r1299184618

Since value is from undefined and watcher only runs when oldValue is not undefined.

So when you swap from undefined to true, watch callback is never turned on?

Since value is from undefined and watcher only runs when oldValue is not undefined.

So when you swap from undefined to true, watch callback is never turned on?

Yes, if we implement this

check if oldVal (watch has args (val, oldVal)) is undefined, if yes do nothing

Current OP is a quick & valid fix.

https://github.com/kodadot/nft-gallery/pull/6730#discussion_r1299184618

We can address address this with an if(route.query.listed == undefined) but would love to solve this with something much better that would work with everything mentioned here https://github.com/kodadot/nft-gallery/pull/6730#issuecomment-1680374742
Thank you for looking into this issue. Looking forward to hearing from you 😄

@vikiival @yangwao , hello.
What I end up doing is adding a setDefaultUrl in useReplaceUrl composable.
This handles setting all the default filters
so we can just add this to the component that should have a default filter

You can also add more defaults if needed and it will handle it.

Since this is specific for explore/items i also added in the function

Though we can remove this, and it's up to the developer who'll use the composable to check what they need.
Only downside is that i'm adding a default=true param in the url.
This is to check if we have initially set default filters. Thus skipping double execution of query.

I suggest closing this PR until we find a better solution that doesn't rely heavily on hard coding.

how about we implement the initial fix?
it can be just a 2 liner quick fix for the meantime to avoid double execution of query resulting to duplicates
const route=useRoute()
if(route.query.listed == undefined) route.query.listed = 'true'

it can be just a 2 liner quick fix for the meantime to avoid double execution of query resulting to duplicates

Yes, but the javascript leart me not to mutate values directly as it can cause weird behaviour

@vikiival I understand.
@roiLeo @Jarsen136
Please help me come up with a possible solution guys.
Let's discuss further

Do we want only listed as a default filter? Or do we want to set other filters as default as well?
Do we want it shared across

CollectionList.vue
Activity.vue
ItemsGrid.vue
Like the current implementation? It is set by the BreadCrumbsFilter and used on those components. Or should they have
different set of default filters?

Thank you so much guys for looking in to my PR

Please fix deepscan

@vikiival Thanks done.
I just don't know how deep scan relates those issue to this PR
I'm confused, PulseChart is completely unrelated.

Please fix deepscan

@vikiival Thanks done. I just don't know how deep scan relates those issue to this PR
I'm confused, PulseChart is completely unrelated.

Update the branch to the lastest could help.

Please fix deepscan

@vikiival Thanks done. I just don't know how deep scan relates those issue to this PR
I'm confused, PulseChart is completely unrelated.

Update the branch to the lastest could help.

Thank you @Jarsen136 😃

@Jarsen136 do you want me to revert changes to PulseChart & create separate issue and PR?
But deepscan is right PulseChart was wrong because variables weren't initialized. However, based on the notes, i believe that originally the developer want line 11 outside of the function

I tested it again, but the bug has still not yet been solved.
https://deploy-preview-6730--koda-canary.netlify.app/ksm/explore/items

TBH, the new solution could not solve the problem. It would also introduce more complexity in the meantime.

I suggest closing this PR until we find a better solution that doesn't rely heavily on hard coding.

@stephenjason89 can you please open a new pr?

yes @vikiival I will.
Thanks @Jarsen136 for pointing that out.


New ENS fails with Cannot read property 'sendPayload' of undefined

I am trying to run a sample code to create ENS instance in my console and then to resolve some name. But it fails just on ENS creation.
Versions:

Truffle v5.0.9 (core: 5.0.9)
Node v11.12.0
web3.version '1.0.0-beta.37'

I am using Geth with Rinkeby network.
truffle(rinkeby)> var ENS = require('ethereum-ens');
undefined
truffle(rinkeby)> var Web3 = require('web3');
undefined
truffle(rinkeby)> var provider = new Web3.providers.HttpProvider();
undefined
truffle(rinkeby)> var ens = new ENS(provider);
Thrown:
/Users/aa/dev/git/blockchain/isaqb-eth-solidity/node_modules/web3-providers/dist/web3-providers.cjs.js:49
      if (provider.sendPayload && provider.subscribe) {
                   ^

TypeError: Cannot read property 'sendPayload' of undefined

Hi, can you upgrade to the latest ethereum-ens (ver 0.7.6) and try again?

@novakov-alexey sorry for taking ages to respond. Can you try with 0.7.7?
I think what was happening was  it was picking up whatever the web3 version you have locally and ENS is not compatible with the later version of Web3.
So my fix is to fix web3 version to the known working version.
https://github.com/ensdomains/ensjs/compare/fix-web3js-version?expand=1
I created the following truffle script and run on the project where later version of web3 (1.0.0-beta.52) is installed and looks working fine.
ENS = require('makoto-ethereum-ens');
name = 'alexeyn.test'
module.exports = async function(callback) {
// Connect to infura using HDWalletProvider
// https://medium.com/coinmonks/deploy-your-smart-contract-directly-from-truffle-with-infura-ba1e1f1d40c2
    let provider = web3.currentProvider
    let ens = new ENS(provider)
    console.log('owner', await ens.owner(name))
    console.log('address', await ens.resolver(name).addr())
    callback()
}

Hi @makoto, sorry for even longer delay in response. I have tried my script with new ENS version. However, it still fails somewhere between Node and my local Geth client:
╰─ node                                                                                 17.29   ✔   09:44    13.05.19 
> var Web3 = require('web3');
undefined
> var ENS = require('ethereum-ens');

undefined
> name = 'alexeyn.test'
'alexeyn.test'
>
> async function test(callback) {
...     let provider = new Web3.providers.HttpProvider("http://localhost:8545")
...     let ens = new ENS(provider)
...     console.log('owner', await ens.owner(name))
...     console.log('address', await ens.resolver(name).addr())
...     callback()
... }
undefined
>
> test();
Promise { <pending> }
> (node:72086) UnhandledPromiseRejectionWarning: Error: Node error: {"code":-32700,"message":"json: cannot unmarshal object into Go struct field jsonRequest.method of type string"}

Perhaps, I need to update Geth or so.

This looks like the same issue with web3 issuing broken RPC requests.