build: publish coverage reports to S3

TODO:

[x] add creds to Travis
[x] fill in placeholder script with upload logic

Try looking for the report at /build/envoy/bazel-envoy/generated/coverage/coverage.html.

@htuch ls: cannot access /build/envoy/bazel-envoy/generated/coverage/coverage.html: No such file or directory

@htuch think this is ready to go. thanks for fixing the symlink.


Update logo alt text for accessibility

Trello card
Trello-3343
Context
It was picked up in the DAC report that the logo alt text is "Go to home page" even though the image has the text "Teaching
Every Lesson Shapes a Life". The user using voice assist expected "Click teaching every lesson shapes a life" to take
them to the homepage. The recommendation was to add alt text that covers both scenarios.
Update the alt text to include "Teaching every lesson shapes a life" and "Go to the Get Into Teaching homeage" (the former
being what DAC expect and the latter being what other GOV.UK services appear to use).
Changes proposed in this pull request

Update logo alt text for accessibility

Guidance to review
I couldn't replicate the DAC report for this; using 'Tap teaching every lesson shapes a life' on mobile safari doesn't work (but 'tap ' does). I also couldn't replicate it in Chrome with various voice assist extensions, so we're just going by the suggested solution in the DAC report (that having both separated by a pipe will work).

Agree that 'Go to the Get into teaching homepage' appears sensible and in keeping with GOV.UK @ethax-ross
I have tested this on my iPhone using Voice Control and can't get it to work for Tap teaching every lesson shapes a life or Tap Go to home page. However, I can get Tap Home to work as it picks up the breadcrumb link (which is more prominent now at the top of the page).
In terms of the alt text, VoiceOver on iPhone is already trying to read the text on the logo so it now says `Teaching every lesson shapes a life' twice!
https://user-images.githubusercontent.com/87642394/172449893-c89ebf6c-02e2-45fd-af2f-07a4005b3e72.MP4
The pipe in the alt text is read out as vertical line
My thoughts are:

Keep the 'Go to the Get into Teaching home page' as this is in line with GOV.UK and improves what we have at the moment
If we add the 'Teaching every lesson shapes a life logo` in the alt text, I'd suggest replacing the pipe with a comma (or full-stop? does that work?) as @peteryates suggests

I think that we are probably not going to come up with a perfect solution for all voice assistants but this feels like a small improvement?

@gemmadallmandfe updated to replace pipe with a comma


[WIP] Add CodeFund

DO NOT MERGE YET
Fixes #1221

We are going to replace this ad as well. Eric will be of assistance

@XhmikosR I will update the PR with the fix.

What fix? The async issue is know and I will work around it latwr but I'd
rather have the ads code work out of the box with async...
On Mon, Oct 8, 2018, 20:33 Eric Berry<EMAIL_ADDRESS>wrote:

@XhmikosR https://github.com/XhmikosR I will update the PR with the fix.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MaxCDN/bootstrapcdn/pull/1222#issuecomment-427918000,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAVVtQXioO1Rc3by-CbJGJ1TqYpGsKg1ks5ui4xTgaJpZM4XNW4j
.

@coderberry: here's what I see so far:

the ads code needs to be async
we need a clear list of origins (scripts, images, etc) we then can whitelist in our CSP. So far I've only whitelisted a few things
the pixel image seems to load on http when the page is on http. Personally I'd only use https everywhere.

After the above, we can look into nuking CarbonAds.

A few more:

the tracking pixel (.gif) has the wrong MIME type
the JS code has both ES5 and ES6+ code; it should be one thing consistently, IMO ES5 so that it works everywhere
Again, no protocol-relative pixel should be loaded

@XhmikosR I made the changes to this PR: https://github.com/MaxCDN/bootstrapcdn/pull/1223

@XhmikosR

[x] the ads code needs to be async
[x] we need a clear list of origins (scripts, images, etc) we then can whitelist in our CSP. So far I've only whitelisted a few things
[ ] the pixel image seems to load on http when the page is on http. Personally I'd only use https everywhere. This is built to support other publishers
[ ] the tracking pixel (.gif) has the wrong MIME type Agreed. This was to solve a conflict we had. This will be replaced with an actual 1x1 gif, but not immediately. Is it a show-stopper?
[ ] the JS code has both ES5 and ES6+ code; it should be one thing consistently, IMO ES5 so that it works everywhere Agreed. We will fix this as well
[ ] Again, no protocol-relative pixel should be loaded

doesn't work for me for the first visit when the JS isn't cached.
I commented on the PR but IMO this should be a subdomain, not a random generated CloudFront subdomain.

@XhmikosR Thank you for your feedback. This is awesome.
@hopsoft ^

Minify the JS code with careful settings for the browsers you want to support

Great work @XhmikosR.
@coderberry look forward to seeing the changes =)

You should also enable gzip compression and http/2 @coderberry .

Maybe also add https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options and https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection

I added a few notes above
I managed to save another 15% from the uncompressed JS when minified, but it's untested ofc. IMO, doing 12, 11 and 6 will ensure the JS file is correct and as small as possible. So that along with gzip/brotli and http/2 will make sure the ads have the minimal impact on page load times.

@coderberry: I moved my suggestions to the first post of the PR. Blocking for me are the first 6 items, but you should really fix most if not all of these.

@coderberry the .png's also have incorrect mime types
> icurl https://cdn.codefund.io/21400d24-a68b-4619-9046-51190e723bde_consensys-academy-3-260x200.png
HTTP/2 200
date: Tue, 09 Oct 2018 16:33:25 GMT
content-type: application/octet-stream

Must be an misconfiguration on the origin that Cloudflare is just passing on.

The lint JS part shouldn't be taken lightly BTW. There are global variables leaks.
window.url_with_height_width
"https://codefund.io/t/s/c6a10903-6a7f-435b-92b2-99c9c9ce3379/details.json?width=2176&height=767"

We are going to merge this sooner due to some other reasons.
@coderberry: please keep the TODO somewhere on your short-term TODO list :)


CircleCI's artman smoke tests are failing

There's a bit of churn going on in the artman repo; this is resulting in several artman targets failling.
These shouldn't affect us hopefully; we can continue merging so long as the artman smoke test errors aren't egregious.

@andreamlin Is this still happening?

Nope! thanks


Animation API doc improvments

Description
Cross-link animation-related classes and provide more context.
Related Issues
https://github.com/flutter/flutter/issues/34340
Tests
I added the following tests:
Doc-only change
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read Handling breaking changes). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

Fixed whitespace issues. Looks like my "remove trailing spaces" setting in IntelliJ isn't working anymore... :(

LGTM also


Test recursively collecting artifacts

Follow-up for #238, cc @zaro.

Ignore the failure, that's #237 which is fixed in master.


Use half hours

Wow, this is a very useful feature Juan! I'll be sure to review when I have time (this is a very busy week).

thanks @pranasziaukas there is absolutely no rush, I just wanted it to be out there for feedback...

This PR is stale. Closing since the crucial parts has already been included elsewhere.


Traits not autofilled when browsing archetype feats from character sheet

Enable free archetype
Click Browse or the magnifying glass next to an empty slot

Note how the resulting list isn't pre-filtered.

Fixed at some point

I just tested this, and it does not appear to be fixed.

Class feats are prefiltered.


Developer messages

Developer messages will also include change log for the latest update. This will be a new method of communicating with the users of CodeHub.

It would be nice to have access to all developer messages. Maybe in the About page.

Yup, will start working on this soon,


DatePickerInput ~ setModalVisible exposition in ref

Is your feature request related to a problem? Please describe.
No bug, but very usefull feature.
Describe the solution you'd like
Could you guys expose the modal visibily in the inputs ref ?
  function setModalVisible(value:boolean = false) {
    setVisible(value);
    return value;
  }

  React.useImperativeHandle(ref, () => ({
    setModalVisible
  }));

PRs are welcome!


Set all threads to be daemon

Instead of doing os._exit() a more gracious approach would be setting all threads to be daemon.

Turns out it would not work with pythoncom.


New release?

Any plans for a new release in the upcoming weeks? I'm developing a project in tandem and would like to depend on the current HEAD.

Expect it to be straightforward to package it up. Will try and work on it
sometime this weekend.
On Dec 1, 2015 7:40 AM, "deech"<EMAIL_ADDRESS>wrote:

Any plans for a new release in the upcoming weeks? I'm developing a
project in tandem and would like to depend on the current HEAD.
—
Reply to this email directly or view it on GitHub
https://github.com/chetant/LibClang/issues/58.

Same action needed as #39


Admins aren't explicitly granted login privileges

As it stands, when using the AD membership service, users (or group members) who are designated as administrators but not delegated user permissions are unable to log in.
For example, if two AD groups - GitUsers and GitAdmins - had users UserA and UserB / UserA and UserC, respectively (with role mapping as hinted by the group names), UserA would be able to log in but UserC would not.

I'm assuming you're reporting this against 5.1.1?  This may have been fixed in master, because there's been an enormous amount of work on permissions and fixing problems in the AD code.
I don't think we intend that there is any right available to an 'user' which is not also available to an 'admin'.

This was after upgrading to a build from master commit d012d5279f48f12b7b45f33e9ad6ac3eee7d50ee. I didn't keep track of what master commit build I upgraded from (whoops!), but I believe it was from around 2/19.
What I did notice was that after I upgraded, I iterated through all of the ADBackend\Users*.json files - none of the users in the admins groups actually had JSONs for their accounts.

OK, I've had a look at it, and the AD importer is pretty clearly designed to work like this:

Everyone who is visible to Bonobo should be in the 'Members' group (including all the admins)
People in the admins group are given the role of Administrator

Given that's how it's intended to work, how much of a problem is it for you to live with that?

I'll need to talk with our the people who actually manage our OU (sadly, I'm not important enough for that) but I would imagine it won't be an issue.

OK, I'll close this for now, let us know if it turns out to be a show-stopper.


optional bool should not throw exception if empty

I have a boolean field marked as optional:
type Repo struct {
    Private bool `envconfig:"optional"
}

Even thought it is optional I still receive a parse error:
strconv.ParseBool: parsing "": invalid syntax

This pull request attempts to ignore and use default values for optional fields with empty strings.

Good catch, thanks. It affected booleans, numbers, and durations too I believe, I'll have to write a more complete test.

thanks for merging. And also thanks for this great library. I've wanted something like this for a while now!


Move generation using reverse bitboards.

Speed up attack and move generation by calculating everything but rank attacks with reverse bitboards, Hyperbola Quintessence variation.
ELO   | 23.63 +- 10.71 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=64MB
LLR   | 2.96 (-2.94, 2.94) [0.00, 5.00]
GAMES | N: 2312 W: 738 L: 581 D: 993

~24 Elo for 85 bytes

Down to ~55 bytes. Can be merged with some extra size optimizations.

53 bytes
http://chess.grantnet.us/test/30505/

+53 bytes
http://chess.grantnet.us/test/30506/

+54 bytes (compared to the master that can generate legal moves)
Fixed 10000 game test:
http://chess.grantnet.us/test/30507/

ELO   | 23.14 +- 5.19 (95%)
CONF  | 8.0+0.08s Threads=1 Hash=64MB
GAMES | N: 10000 W: 3238 L: 2573 D: 4189

My concern with this PR is that it leaves only 5 bytes of wiggle room and that's not enough to test a lot of things. Since @kz04px already has a version of a minifier that saves ~40 bytes, if that gets merged, this can then go in as well.

I also just thought of this, since diag_mask is global, what are the chances this hurts thread scaling more than it helps, on thread counts as high as 54?

Since @kz04px already has a version of a minifier that saves ~40 bytes, if that gets merged, this can then go in as well.

Yeah I'm not really worried there. If we have other patches that make good use of the room they can go in instead, or at worst this gets reverted. I wanted this because right now using any kind of attacks in the eval for mobility or kingsafety is so slow it's hard to get Elo there.
PS. Because the size optimization patch was squashed instead of just merged, GitHub is now unable to automatically merge this as it has no clue that the patches in here were also in the other pull request.

Or is this not an issue because it doesn't get updated?

Like with stop, read-only or read-mostly data is never an issue because it gets on the local CPU cache and then never needs cache coherency traffic (as long as there's no changed data in the same cacheline).
If this were a problem, I have bad news regarding evaluation constants ;-)

FWIW I'm rebasing this regularly as it's for example a 10% speedup on evaluation tuning too.

It took a long time to decide on if or when we should merge this one. Thanks to @gcp for writing and rebasing it, and to others for their input.
Updated test results as follows:
Elo   | 25.02 +- 5.12 (95%)
Conf  | 8.0+0.08s Threads=1 Hash=64MB
Games | N: 10000 W: 3189 L: 2470 D: 4341

http://chess.grantnet.us/test/34008/


The example does not work when there is a raise exception statement

Hey!,
I was trying to replicate the example but using post.md.
That markdown file includes a "raise exception" statement.
When the line below was executing, the script was stoped because the exception was raised.
In order to complete the example, I added 3 params to the execution function.
Acording to the documentation, the function accepts a fourth parameter for traitlets. So I added allow_errors=True and the exception was included to the generated file.
I'm using PyCharm over a Windows 10 O.S.
https://github.com/ploomber/jupyblog/blob/7cbe58fe69cff0163323fb92366c90c9aac82340/docs/build.py#L13

thanks for your feedback; please clarify a few things.
Is this failing? python build.py
I tried it, and it runs without issues. Perhaps the behavior of nbclient is different on windows? can you share the full error message?

Sure!
No, I don't tested the build.py but I used as reference to built my own proof of concept.
In that proof of concept I use the post.md file this project examples.
When the execution reach this line without the allow_errors parameter, the execution stops and then a  "raise exception" appears, as the attached log file is showing.
The error message is raise ValueError('some error'), the same of the post.md file.
log.txt
I don't know if os or ide affect in the error.

Ah ok, I understand. Yeah, so if you disable the allow_erros, nbclient will behave differently. I'm closing this since this is a configuration thing and not a problem with jupyblog. thanks for the feedback!


change flow definition to Nat

Flows on edges are now natural numbers with the constraint that the flow in one direction has to equal zero. This pr fixes all previously working proofs and it seems to be way easier. Just look at how much the diff deleted.

I wonder if we could maybe even get rid of the condition entirely. After all, it really just says that there cant be any cycles of length 2, but for all purposes where we would need that assumption we would also have to get rid of longer cycles, right?
I think this came up in general because of undirected edges and how flow in both directions would share the capacity, but since we are now viewing undirected networks as a subtype of directed ones, this might even be out of place. What do you think? Is there ever a case were we would want this to hold for an arbitrary flow we get as an input parameter? (We can always turn a flow with such cycles into one without, we would just have to prove some properties about the construction)

I agree that this could be useful.
We could then easily transform the flow into a flow where one direction is 0 on every edge by repeatedly removing the subflow on cycles on length 2, which would give us a subflow of the same value for which the condition holds. When we get there, leaving out the condition from the definition should have only advantages.


SAK-22252 Allows login text and site urls in site member notification email

Allows login text and site urls in site member notification email
templates. This doesn't change the actual templates, just injects the
values if the placeholders are there.

I'm leaving this for two days to allow comments/revisions, then I'll merge. This mod is in production at Oxford.


[Icon request] Support for include folder

I don't have an example of icon, but an icon for include folder would be great in c++.
Checklist:

[x] I'm sure this issue is not a duplicate?
[x] I want to create an icon request:
- Type: folder
- Icon Name: include
- Folders: include, includes, incl

Please see #650


async/await and AsyncSequence Prototype

Just noticed that SwiftNIO has basic support for async/await 🎉
The PR is not meant to be merged. Just a quick outlook into the future.
The internal implementation is really ugly but it works and the call site looks really nice:
let bootstrap = ClientBootstrap(
    config: ClientSetupConfig(
        timeBetweenKeepaliveFrames: 0,
        maxLifetime: 30_000,
        metadataEncodingMimeType: "message/x.rsocket.routing.v0",
        dataEncodingMimeType: "application/json"
    ),
    transport: WSTransport(),
    timeout: .seconds(30)
)
let client = try await bootstrap.connect(host: host, port: port, uri: uri)

let stream = client.requester.requestStream(payload: Payload(
    metadata: route("searchTweets"),
    data: Data(searchString.utf8)
))

for try await payload in stream.prefix(limit) {
    let json = try JSONSerialization.jsonObject(with: payload.data, options: [])
    let data = try JSONSerialization.data(withJSONObject: json, options: [.prettyPrinted])
    let string = String(decoding: data, as: UTF8.self)
    print(string)
}

Take a look at Sources/Examples/AsyncTwitterClient/main.swift if you want to see how async/await could look like for RSocket. The complete implementation is in Sources/RSocketAsync/AsyncAwait.swift.
If you want to play around with it, you need a download a snapshot from https://swift.org/download/#snapshots with the lates changes from the main branch. async/await is available since Swift 5.4 and AsyncSequence only in Swift 5.5.
As even Swift 5.4 is not yet release, this is highly experimental.

The API looks very nice!


Optional file extension

It seems impossible to create a route with optional file extension.
Eg:
/report/1
/report/1.csv
I've tried all kinds of combinations supposedly based on the docs something like report.$report([.csv]).tsx or report.$report[.]$format.tsx should work. I've also tried other combinations without success.
What am I missing?

Optional applies to the entire segment, not just a partial.
You technically need to define 2 routes. I should be able to add support for this and have it generate the 2 routes automatically.

I thought about this more and I don't believe this is possible with the current version of Remix. There are 2 main issues.

Remix/RR deals with complete segments, not partial, for URL params. So you would need to parse the $report param and see if it included a file extension.

Assuming that for the /report/1, you want to render the HTML report, and /reposrt/1.csv route, you want to actually just return a CSV file, that too is not possible. The reason is that a route can either be a UI route (with default export) or a Resource route (no default export). So even if your loader could determine if the route contained a file extension, Remix would still render the default component.

I think the only solution would be to create a separate route for your .csv endpoint.
Something like /report/file/1.csv


Fix for iOS 8 to return vcard without calendar wrapper

Moved headers to their own method for easy inclusion with framework response methods
Added check to determine ios version

This should be 100% backwards compatible, this pull request adds 3 methods:

getHeaders
isIOS7
shouldAttachmentBeCal

On ios7 or less the calendar wrapper around the vcard will be return for ios 8 and other clients a standard vcard will be returned
Where functions were previously checking for isIOS, they now check for isIOS7 (or less)

Hi @Lidbetter
Thanks for your PR, I will take a better look at your code.
Can you do a php-cs-fixer fix src --level=psr2 on your code. So your PHP code styling is PSR-2

Any changes? @jeroendesloovere

Hi @Lidbetter,
I've added some comments. Can you look at them please?

I have left feedback inline, let me know your thoughts

Hi @Lidbetter,
We're almost there.
I commented my preferred solution, so we can get rid of duplicate code, but still have support for frameworks like Laravel.

@Lidbetter
Can you fix it?

I started with something like that but then opted against it.
When there are only a few headers - why bother with a loop, it's slightly less obvious what the function arg does and doesn't save any lines of code.
I will do it if you want - but it seems unnecessary, let me know

No duplicate code should be allowed.
So it would be great if you could fix it.

Ping @jeroendesloovere
I removed the duplicated header string construction, but left the returns as they were, looks cleaner and is easy to see at a glance what the function param does.

Hi @Lidbetter, I just released version 1.1.9.
Thanks for your help.


Performance test and improvement of 3.2.6

I checked about the performance test report:
https://skywalkingtest.github.io/Agent-Benchmarks/README_zh.html
And I noticed that there was only provide the skywalking-agent machine configuration.
How about machine configuration about collector node or cluster and es machine or cluster? In my idea, this is very important in the performance test.
Is there some test report about collector and es in the performance test?

And I noticed that there was only provide the skywalking-agent machine configuration.
How about machine configuration about collector node or cluster and es machine or cluster? In my idea, this is very important in the performance test.

No, it is not important for this case. Because this is about agent test, the backend is mock, because we don't have such Infra env to do so.

Is there some test report about collector and es in the performance test?

We haven't done yet.

Oh, I got what you said.
But before used in the product env, we have to assess the performance about the collector cluster.
ES itself is ok, because it is used a lot as the factual standards, we could only care about how to adjust its config.
Does the data transfer between agent and collect use the tcp long connection? (It seems used long connection based on jetty).
Then how about the efficiency between collector and es? What's about its mechanism? I mean, if the input   request rate from collector gt the process rate to es, what will happen? Is there exist disk cache or similar way to process? It seems not appropriate  to use memory to do this, data is too much.
In the product env of internet, this is very common: there will be 100+ micro-service instance, and the qps will be 20K total around, 1K qps at least in the high load instance, and it will increase of course in the future.
According to the performance report, the 1K qps per instance, then we need assess the collector scale.
If these conditions are satisfied as below:
a.Trace data transport is based on tcp long connection.
b.The package about trace is not large.
c.Collector have mechanism to write trace data to es in the high efficiency.
Then 10K qps per collector is very ok, I think.
Is that mean, we need at least three collector nodes in the env that based on giving consideration to usability of collector cluster and request qps scale?
At last, I mean, is there some advice or default config about collector cluster scale based on the request scale above?

You are right, the performance test report is just for agent, so use mock to imitate collector is appropriate。
But I think, it seems that we couldn't make the mock collector and actual collector equivalent, it seems will hide the potential risk.

Does the data transfer between agent and collect use the tcp long connection? (It seems used long connection based on jetty).

I think should be gRPC HTTP/2. But long connection, yes. 3.x doesn't focus on performance so much, SkyWalking 5 and 6 focus on these fields.
In SkyWalking 5 beta2, we run a test, look like 10k~20k per collector if ElasticSearch is big enough.

Oh, I got it, using gRPC based on protobuf protocol through long connection to transfer, is this true?
Could you please have a assessment about collector performance between 3.2.6 and 5&6?
I mean, how reliability about10K~20K per collector in the version 3.2.6?
In my opinion, the gap of the basic performance of the collector between 3.2.6 and 5&6 should not be much, because its similar mechanism? Could I consider like this?

Oh, I got it, using gRPC based on protobuf protocol through long connection to transfer, is this true?

Yes.

Could you please have a assessment about collector performance between 3.2.6 and 5&6?
I mean, how reliability about10K~20K per collector in the version 3.2.6?

Haven't run that before. Have to do by yourself :)

In my opinion, the gap of the basic performance of the collector between 3.2.6 and 5&6 should not be much, because its similar mechanism? Could I consider like this?

5.0.0-beta2 did a big performance upgrade by optimization from alpha. From different version, especially old version(3.2.6), really don't know.

I hope you could share the test result in public, here or post a blog. This will be another case our project did a good work.

This is the part of the test performance report, here is the result, but just chinese description.
My english is poor, its hard work to translate to english using accurate special terms.Of course, if time enough after, I will translate to english.

This is a very high-value test report from the community. Appreciate!!

Actually, We must know, this test is not standard, for example ,message size should designed as 100B, 1K, 10K, 100K, etc. But limited by time and resources, I can't afford it.
And Why I still to do this work? Because it is necessary, we all use rpc, and qps will be enlarged several times for skywalking-collector. I must assess the affect to biz if qps up to magnanimity.
Later if I have time, I think I will have a test that what biz happens when skywalking-collectors all crash.

Actually, We must know, this test is not standard, for example ,message size should designed as 100B, 1K, 10K, 100K, etc. But limited by time and resources, I can't afford it.

You have done much more than others. Provide a very formal report.

Later if I have time, I think I will have a test that what biz happens when skywalking-collectors all crash.

Let's see what is happening in there. https://github.com/apache/incubator-skywalking/pull/1637 A new patch for connection.

The whole test that contains the test about what biz happens when skywalking-collectors all crash.

Do you have any documentation on the performance after adding GRPC log reporting
@wu-sheng


MTU Optimization

Marc reported issues with MTU that we should tweak to improve performance. Do you agree/can we do that?

According to a @dkusidlo this would require the Gardener to use different parameters for different infrastructures. According to @rfranzke this would have to be added or we could use the lowest possible value (which is GCP given the currently supported 4 infrastructures) for the CNI interface as well.

As far as I remember from the performance tests MTUs beyond ~1400 don't really have a big impact. That said, there may be - under certain circumstances - big improvements for some scenarios. That said, increasing the MTU to something like 9000 on AWS is possible (don't know about OpenStack) but I would not recommend it without thourough testing. I doubt that it is really worth the effort.

My point was more that our default may be too large/not fit the MTU of the network below and we create too many packets (let's say, ours is 1500 and let's say the networking underlay has 1460, then every packet is broken into two, one of 1460 and one of 40 bytes - ideally they should match and having more packets than necessary on the underlay is waste). Take these numbers with a grain of salt - I don't know the exact MTUs and repackaging overhead.
Picking larger MTUs may or may not bring an advantage. I am not an expert. The packets on the underlay will be basically the same, but maybe the overlay wins from a larger MTU, right? Again, shouldn't then again the overlay MTU match/be a multiple of the underlay MTU to avoid unnecessary fragmentation? That's why 9000 is a multiple of 1500. You don't want unnecessary fragmentation and sending more packets than you need to on the underlay, because that's the more expensive operation (usually).
So this ticket is primarily about "matching" the MTUs per cloud provider, not having jumbo frames support.

What are your thoughts @mkoderer, @dkusidlo?

OK, fragmentation is a big problem - caused this myself :-( But why have an "optimized" setting for all the cloud providers? What we have seen from the performance tests is that it does not really matter whether the MTU is something in between ~1360 and ~1450. So why not agree on something the works in the range of 1400 ?

Well, also in the light of the extensibility we should strive to keep infrastructure specific stuff where it belongs to, but we can of course first go with a sane default value.

We could test using ping to find the ideal MTU sizes (preferred). From what I can find online:
AWS: 1500, source: https://docs.aws.amazon.com/de_de/AWSEC2/latest/UserGuide/network_mtu.html
Azure: 1500 from the looks, source, no direct one: https://blogs.msdn.microsoft.com/igorpag/2017/04/06/my-personal-azure-faq-on-azure-networking-v3
GCP: 1460, source: https://cloud.google.com/vpn/docs/concepts/mtu-considerations
OpenStack: let's ask our colleagues, e.g. @gonzolino

Do we have to reserve 20 bytes for repackaging?
Anyway, locations are https://github.com/gardener/gardener/blob/master/charts/shoot-core/charts/calico/templates/config.yaml and https://github.com/gardener/gardener/blob/master/charts/shoot-core/charts/calico/templates/calico.yaml, I guess. Not sure though.

@marwinski

As far as I remember from the performance tests MTUs beyond ~1400 don't really have a big impact.

Sure, having 1400 or 1440 doesn't help a lot. Deciding on an MTU really depends on the kind of workload you have, which is something I don't know and therefor cannot decide upon.
What can be seen is a better throughput when using ~9000 byte internally. The (synthetic) performance gain we measured for Jumbo Frames was ~35%.
External connectivity is a different thing as we have seen with the GCP issue. The internet "standard" usually is 1500.
@vlerenc

The packets on the underlay will be basically the same, but maybe the overlay wins from a larger MTU, right?

Less packets with larger payload means the overhead to size ratio caused by the headers will be less and the devices have to "touch" less packets.
Fragmentation is only caused when you send a packet larger than the devices on the underlay route support. It must not be a multiple of the underlay!

but we can of course first go with a sane default value

Calico provides some information for the cluster MTU there.
| Network MTU                 | MTU  | MTU with IP-in-IP |
|-----------------------------|------|-------------------|
| 1460 (GCE)                  | 1460 | 1440 |
| 9001 (AWS Jumbo)            | 9001 | 8981 |
| 1450 (OpenStack VXLAN)      | 1450 | 1430 |

Our OpenStack supports 1500, so 1480 would be our "MTU with IP-in-IP" value.
So with < 1440 you should be on the safe side. (but not the best one performancewise). Using ping -s <byte> -M do <IP> helps to find working values.
Btw. I think the GCP issue is on your kubify cluster, not the Calico-based shoots.

I guess you mean "doesn't have to" and not "must not" (darf nicht).

I intentionally used "must not" as in RFC2119 because I assumed you want your packets to get delivered ;) As the DF bit is set it would not get fragmented but dropped.

So are we done here, 1440 is the way to go and we do that now for Kubify and the shoots?

That is addressed to @marwinski I guess?

I intentionally used "must not" as in RFC2119 because I assumed you want your packets to get delivered ;) As the DF bit is set it would not get fragmented but dropped.

Wow, thanks for that clarification. ;-)
It seems a need a lesson in this. Jumbo frames with their 9000 bytes looked like a multiple of the usual 1500 bytes, using one for what normally required 6 packets.

That is addressed to @marwinski I guess?

Well, yes, and to all else, so 1440 it is then?
@afritzler Can you please change that in Kubify?
@rfranzke And can you do that please for the shoots?
To both: What happens with the existing clusters (all gardens + shoots we have right now)?


Rewrite the combiner stage in large cohort to be able to combine both GVCF and VDS files

Rewrite the combiner stage to allow for combining both GVCF and existing VDS files.
New:

New combiner stage
New runner for the large cohort pipeline (rather than main.py
Apparently also reformat a ton of single quotes to double quotes.

Additional things to do:

Write docstring for combiner stage
Better logging (currently none for the combiner)
Fix tests probably

Discussion points:

Do we want to allow for custom interval lists?
Do we want to allow for custom GVCF and VDS batch sizes in the combiner (just using default at the moment)
Any other suggestions?

Codecov Report
Attention: Patch coverage is 84.84848% with 10 lines in your changes missing coverage. Please review.

Project coverage is 78.66%. Comparing base (9afcb6e) to head (417b310).

Files with missing lines
Patch %
Lines

cpg_workflows/metamist.py
84.84%
10 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #939      +/-   ##
==========================================
+ Coverage   78.65%   78.66%   +0.01%
==========================================
  Files          10       10
  Lines        1785     1786       +1
==========================================
+ Hits         1404     1405       +1
  Misses        381      381

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

I see this adds a new entry point, large_cohort_runner.py, alongside main.py.
It largely duplicates main.py. What is the reason for adding it? This duplication would seem to add a maintenance burden.

Sorry @jmarshall! I Ok'd this. As part of the refactor each pipeline will get it's own entry-point anyhow, and I believe it simplified things from a development perspective.

I see, it's just getting ahead of the refactoring, in what might well be its eventual final form. Fair enough, thanks.
@Alexander-Stuckey et al: It would be good to mention this sort of thing in the commit messages and/or PR comments so that this sort of context is captured for reviewers and posterity.

Fair point @jmarshall , I only passingly mentioned it in the initial PR message and didn't include the rationale. But yes, it is indeed just getting a tiny headstart on the refactoring into a separate repo eventually.


shorten-links hides https protocol in URLs

For instance https://abc.com will be rendered as abc.com, if you have shorten-links enabled right now you will see it.
Whereas http://abc.com is rendered correctly as http://abc.com
I noticed this problem while communicating on a github issue, which caused some confusion.
With shorten-links enabled:

With shorten-links disabled:

Yeah shorten-links makes links more readable at the expense of "exactness". I know it's not a real fix, but since SELF_URL_PATH is code/configuration, it should have been written as code: SELF_URL_PATH=https://mydomin.com, which isn't shortened.

Thanks for the reply. I guess this can be used as a feature for shaming “who is still using http”.


setup.py bugs

Hi ffcv project,
I just wanted to note that the setup.py isn't noting the Apache-2.0 license, and that the url is old.

Will put this on the TODO list---PRs welcome!

Thank you for pointing that out @hyandell !

Should be integrated in 0.0.3. Thanks @hyandell


i18n(fr): Update tutorial/3-components/1.mdx from #10476

Description (required)
Update tutorial/3-components/1.mdx from #10476

[!NOTE]
Nothing changed, but removing Blanks component and add a little space

Related issues & labels (optional)

Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note

fr/tutorial/3-components/1.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

Thanks again @ArmandPhilippot 🎉


Links/references with encoded spaces are not working

Hi,
if I reference a file using the long/default markdown syntax (eg. [My Link Text](./FileName.md) to reference FileName.md), the file will be discovered and shown correctly in the graph.
However, if I reference a file with a space in the filename, it's common practice to encode the space with %20, like [My Link Text](./File%20Name.md) for for File Name.md. However, those links are not discovered by markdown-links and are therefore not shown in the graph.
Any possibility to fix this?
PS: Thanks for the nice extension! :-)

Absolutely. Decoding the url sounds like a very reasonable things to do. I will try to add it soon.

Have encountered same issue today.
I think we can simple fix it after #35 will be merged.

Hi! Need any help with this?

@tchayen could you take a look at this PR https://github.com/tchayen/markdown-links/pull/70? I think it solves the issue

@Cabeda sure, I will check it today.

Fixed in #70


Issue: https://github.com/thephpleague/flysystem/issues/957

RFC: https://tools.ietf.org/html/rfc4918#section-9.3

@ivdudarev can you update the tests for this too?


There is not exist delete friend option

I tried to add to user by the search.
But i can't remove one from the contract.
If possible, please kindly let me know.
Thanks

Right here


Simplify ProjectPropertySettingBuildLoader#CachingPropertyApplicator

Remove (unused) support for projects of different types

@bot-gradle test RFN

OK, I've already triggered ReadyForNightly build for you.

@adammurdoch any objections to this change?

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.


Add use of eslint to web-page

What does this do?
This PR updates the package.json to add eslint to check the syntaxis and good practices in the code.
How can this change be undone in case of failure?

Notify the administrators
Request a revert of the PR

ping @Xotl

@metalvegetarianoprogresivo, it now has conflicts 😞


New ray masking and backface culling implementation

Hi,
these commits contain a new ray masking implementation (for all OpenCL intersection kernels) as well as a backface culling implementation (also for all OpenCL intersection kernels).
These new features are optional and are off by default. If either feature is disabled in CMake all code related to them is disabled at compile time to make sure that there is no performance impact.
For a more detailed description of the new features' implementation, please have a look at the commit messages.
I'd love to hear what you think, and if you have any feedback or would like something changed, please let me know.
Cheers,
Sebastian

@scschaefer thanks a lot for your contribution! I will review and merge PR early next week

@yozhijk Great! Looking forward to your feedback 😃


setValue is not a function, however ...

In the example in the documentation:
var n = new bigDecimal('123'); n.setvalue('567');
setvalue is not a function.  However this works:
var n = new bigDecimal('123'); n.value = 567;
This is possibly just out of date documentation.

@FireMuse there's a type in the documentation. I'll fix soon.

Thanks @Jsoto22. I have updated in the master branch. Not creating a release for this. This change will go as part of the next release.


Override route

For instance:
@route("/foo")
interface OpGroup {
  @get op1();
  // many operations
  @routeOverride("/bar")
  @get op12():
}

IOW, I have many operations that shares the same route, but I want the last one to replace the interface route. There are situation out there, where operation groups are based on several blocks of CRUD together, that it may be interesting to avoid duplication of route, which I have to do if most are shared, but at least one is not.
Current workaround to at least avoid duplication:
alias commonPath = "/foo";

interface OpGroup {
  @route(commonPath)
  @get op1();
  // many operations that uses commonPath
  @route("/bar")
  @get op12():
}

Playground Link

Radius's scenario was to able to replace /subscription/id/resourcegroup/name/... to a more morephable /{rootScope}/... that can be either the normal ARM one /subscription/id/resourcegroup/name/... or /provider/....  This has not been approved by ARM review anyway. Thinking about it, nor do I want them to do that even if we have a @routeOverride for ARM.
Thankfully I was able to provide Radius with a customArm cadl file to affect the route prefix segment. They just need to run cadl twice to get the correct swaggers respectively. I am gonna keep this out of the route conversation at this point.

David to investigate allowing route composition from multiple interfaces to avoid using @routeOverride.

Was this meant to be closed?


[BUG] Spelling issue at ConvLab-3\convlab\base_models\t5\nlu\nlu.py line 1

Describe the bug
in file: ConvLab-3\convlab\base_models\t5\nlu\nlu.py, there is a spelling issue in line 1
there is:

gimport logging

should be:

import logging

To Reproduce

Go to Google Colab
Run:  ! git clone --depth 1 https://github.com/ConvLab/ConvLab-3.git && cd ConvLab-3 && pip install -e .
Run: ! python -m spacy download en_core_web_sm
Run: from convlab.base_models.t5.nlu import T5NLU

Expected behavior
T5NLU imported
Actual behavior
Error:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py", line 3326, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 1, in
from convlab.base_models.t5.nlu import T5NLU
File "/content/ConvLab-3/convlab/base_models/t5/nlu/init.py", line 1, in
from convlab.base_models.t5.nlu.nlu import T5NLU
File "/content/ConvLab-3/convlab/base_models/t5/nlu/nlu.py", line 1
gimport logging
^
SyntaxError: invalid syntax

Additional context

Thanks!


[Question] Class Component problem, Not Fix

I guess it's a new tradition to close requests without seeing if the problem is solved.

Originally posted by @tuncaybahadir in https://github.com/ammarahm-ed/react-native-mmkv-storage/issues/190#issuecomment-989138078

Try initialising MMKV in the component constructor.
You might find the render function is being called before MMKV has finished initialising and as such it will be undefined for a little while.

Thanks a lot for your reply,
I will try and write the answer. I hope the ticket doesn't close before it's done...

Right now I think it has written the data. But I am having trouble accessing the data.
I also tried this.prop.MMKV but I always get an error.
As I wrote before, I'm new to react native, thanks for your help.
One :

Two :

Hey, have you followed the installation steps properly? Please check the docs. I think you have missed linking the library after installing.

Try initialising MMKV in the component constructor.
You might find the render function is being called before MMKV has finished initialising.
Which would result in things being undefined for a little while.

Mmkv inits instantly. Its synchronous.

@ammarahm-ed thanks for your answer. I will re-install from scratch and I will write the answer here.

From what it seems you have created the variable inside the constructor function and thus it will also only be accessible within that function.
But from that point you didn't appear to experience any errors setting the variables.
What you should do is create a var outside the component, not a const, then set the var as the MMKV Initialise function inside the constructor or a componentDidMount function.
Then after that in the render function which gets called pretty quickly you should prevent rendering entirely if the var isn't defined or use conditional rendering for that purpose.
You could also use the async functions to get a better result.
Or convert the component into a functional component and use the hooks here.

Sorry for replying so late.
Unfortunately, I haven't been able to make any progress. I rebuilt the project. I also did the link process, but the result is still the same.
@8BallBomBom I would be very happy if you could send a sample.

Sometimes a solution can be found with stubbornness. I'm adding the code below so that no one messes with it like me.
Thank you all.
`import React, { Component } from "react";
import { Text} from 'react-native';
import MMKVStorage from "react-native-mmkv-storage";
const MMKV = new MMKVStorage.Loader().initialize();
const setData = () => {
MMKV.setString("testKey", "test value");
}
const getData = () => {
let data = MMKV.getString('testKey');
console.log('Data : ',data);
return data;
}
class test extends Component {
constructor(props) {
super(props);
setData();

}
render() {
let finalData = getData();
return (

    <Text>Get Data : {finalData}</Text>

)

}
};
export default test;`


radiopacket.decode does not work in current version on npm

There's this error when decoding 80211 probe packets (wlan type mgt subtype probe-req filter):
/home/as/git/umdtc/node_modules/pcap/decode/pcap_packet.js:45
        this.payload = new RadioPacket.decode(buf, 0);
                       ^
TypeError: undefined is not a function

When using the current version on GitHub it works, so I assume the npm package would just need to be updated.

This is fixed in master. Next time the npm package is reved the fix will be available.


A Biomedically oriented automatically annotated Twitter COVID-19 Dataset

A biomedically oriented automatically annotated Twitter COVID-19 Dataset

Authors: Luis Alberto Robles Hernandez, Tiffany Callahan and Juan M. Banda
The use of social media data, like Twitter, for biomedical research has been gradually increasing over the years. With the COVID-19 pandemic, researchers have turned to more non-traditional sources of clinical data to characterize the disease in near-real time, study the societal implications of interventions, as well as the sequelae that recovered COVID-19 cases present (Long-). However, manually curated social media datasets are difficult to come by due to the expensive costs of manual annotation and the efforts needed to identify the correct texts. When datasets are available, they are usually very small and their annotations don’t generalize well over time or to larger sets of documents. As part of the 2021 Biomedical Linked Annotation Hackathon, we release our dataset of over 120 million automatically annotated tweets for biomedical research purposes. Incorporating best-practices, we identify tweets with potentially high clinical relevance. We evaluated our work by comparing several SpaCy-based annotation frameworks against a manually annotated gold-standard dataset. Selecting the best method to use for automatic annotation, we then annotated 120 million tweets and released them publicly for future downstream usage within the biomedical domain.
Some of the components of this project have been worked on during the COVID-19 Biohackathon and published at the EMNLP NLP COVID-19 Workshop - Part 2.
Dataset details:
The file columns are: Tweet_id, annotation_concept_id, annotationStart, annotationEnd
In order to use this resource, the annotation_concept_id column needs to be joined with the The Observational Health Data Sciences and Informatics Vocabulary.
We used a subset of all available vocabularies which included (version next to the name):

ICD9CM - ICD9CM v32 master descriptions
ICD10PCS - ICD10PCS 2021
CPT4 - 2020 Release
NDFRT - RXNORM 2018-08-12
HCPCS - 2020 Alpha Numeric HCPCS File
MeSH - 2020 Release
ICD10 - 2020 Release
ICD9Proc - ICD9CM v32 master descriptions
ICD10CM - ICD10CM FY2021 code descriptions
RxNorm - RxNorm 20210104
RxNorm Extension - RxNorm Extension 2021-02-12
SNOMED - 2020-07-31 SNOMED CT International Edition; 2020-09-01 SNOMED CT US Edition; 2020-10-28 SNOMED CT UK Edition

NOTE: The full text of the tweet cannot be shared, but each individual tweet can be hydrated back to get all data elements.
Dataset available at: https://doi.org/10.5281/zenodo.4606733
Dataset publication available at:

https://github.com/thepanacealab/annotated_twitter_covid19_dataset
http://www.jmbanda.com/
https://github.com/thepanacealab/covid19_twitter/issues
http://www.panacealab.org/
https://healthlanguageprocessing.org/software-and-downloads/
https://github.com/jmbanda/jmbanda/blob/master/README.md


[v2] Page Exchange

@nolimits4web,
There are way to disable the animation when the page exchanged?

@lailton
CSS?

Yes. I need to disable the frame animation.

Use animate:false (in v2) or animatePages: false (in v1) router parameter when navigation to required page

Thanks!!

Sorry for re-open this, but I was trying to disable the animation ( frame transition but it does not to work).
animate: false,
I am using the last version framework7.
Any suggestion?

And how do you use it?

I have tried differents way with the same result, for example:
var app = new Framework7({
root: '#app',
theme: 'md',
animate: false
});
and I have added for all my load pages:
	var page_html = {
		path: page_name,
		content: page,
                     animate: false
	};

app.router.navigate(page_name);
all works fine. but I have a problem with delay to show page for PC/Desktop.
so for this reason for me this frame animation is better to be off.
Thanks

Solved.
Now it is:
options: {
animate: false
}
Thank you.


S3 bucket in wrong region error

Hi AWS team, cloned the repo into our private org and ran Amplify build which completed successfully.
Audio gets successfully uploaded to US-East-2 bucket but then Healthscribe App gives an error that S3 bucket is not in correct region.
Amplify config docs do not specify region when creating bucket. Can you help me understand why it's building S3 buckets in East-2 when application is in East-1?
Thanks!

Hi @ambihealth - the S3 bucket where audio is uploaded is in the same region where the Amplify application is deployed. Unfortunately the documentation and the Amplify deployment button does not specify us-east-1. We'll be updating this today.
To resolve this issue you can delete the current demo Amplify application in us-east-2, and re-deploy it in the us-east-1 region. The updated link will look like this:
https://us-east-1.console.aws.amazon.com/amplify/home?region=us-east-1#/deploy?repo=https://github.com/aws-samples/aws-healthscribe-demo

Thank you. That worked perfectly.
On Fri, Oct 25th, 2024 at 10:27 AM, Yuan Yao @.***> wrote:

Hi @ambihealth ( https://github.com/ambihealth ) - the S3 bucket where
audio is uploaded is in the same region where the Amplify application is
deployed. Unfortunately the documentation and the Amplify deployment
button does not specify us-east-1. We'll be updating this today.
To resolve this issue you can delete the current demo Amplify application
in us-east-2 , and re-deploy it in the us-east-1 region. The updated link
will look like this:
https://us-east-1.console.aws.amazon.com/amplify/home?region=us-east-1#/deploy?repo=https://github.com/aws-samples/aws-healthscribe-demo
—
Reply to this email directly, view it on GitHub (
https://github.com/aws-samples/aws-healthscribe-demo/issues/32#issuecomment-2438121481
) , or unsubscribe (
https://github.com/notifications/unsubscribe-auth/APD75QWUSMZ4ABPMCAVWB3DZ5JPN3AVCNFSM6AAAAABQR3OHHWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZYGEZDCNBYGE
).
You are receiving this because you were mentioned. Message ID: <aws-samples/aws-healthscribe-demo/issues/32/2438121481
@ github. com>


Persistent cache to use SQLite

Description
SQLite is meant to replace fopen()! Why would PickleLoader still use file-per-cell then?
Additionally, this shall reduce file I/O calls and some unnecessary overhead that should become more relevant when cell results are stored and invalidated all the time, as per https://github.com/marimo-team/marimo/issues/3054
Suggested solution
Use one SQlite db for persistent cache per directory, e.g., at <work-dir>/.marimo/persistent_cache.sqlite by default, or the location configured in <work-dir>/.marimo/config (or global ~/.marimo/config, a la Git).
Alternative
Since the results of cells are often dataframes, maybe better to use DuckDB by default, or at least provide an option to choose. DuckDB will still handle non-dataframe results fine, but SQLite might quickly become inefficient at storing dataframe results. There may be a custom Pickler that handles dataframe-shaped fields within result object(s) customly, at arbitrary depth.
Additional context
No response

See the discussion in: https://github.com/marimo-team/marimo/discussions/2653
Pickle cache is just the first iteration of a "cache type". The are other formats, loading methods and optimizations that are likely improvements.

I'm not sure if a SQLite format is the exact approach we'll take- so is it alright if we close this out? Or we can rename this to a more general "expand cache types" issue. It's a good idea though

I think this is orthogonal to cache types, at least if we are talking to persistent cache formats like pickle, npy, etc.
In this issue, I suggest instead of having a file per cell, have a single SQLite db with a single table e.g. of approximately the following scheme:
create table cell_results (
  file_path text,
  cell_hash text,
  format text,
  values blob
);

Thus, this database can handle all formats mixed with each other: just having different format column value. Also, if the user changed the setting to a new format, marimo can still lead the old format (as it knows it from the table) if needed, before saving in the new format next time.
For in-memory, remote, and mixed cache configurations, this is of no concern to this db -- it's simply oblivious of those. It only knows about the values that are going to end up saved locally on disk.

So, also on reflection, I think DuckDB is superfluous -- should be sufficient to store Apache Arrow blobs in SQLite.

Can you elaborate what do you mean by "files are easy for invalidation"?
How I see it:

For the user to clear all cache for all notebooks in a directory: remove __marimo__/cache dir vs. remove a single file cache.sqlite. It's equally easy.
For the marimo environment or command line to clear cache for specific cell or for all cells in a notebook: well, on the code level, we are talking about the difference between path = build_path(hash); os.remove(path) and conn.execute("delete from cache where hash = ?;", (hash,)) (assuming autocommit was set up for the conn in class constructor). It's equally easy.
For the user to clear cache for the specific cell, bypassing the marimo command itself: equally hard/impossible, as they don't know what to do with these hashes and how to find the "right" one.
For the user to clear cache for the specific notebook, bypassing the marimo command itself: with SQLite, in virtue of having file_path column, and then the user can do sqlite3 -line ./__marimo__/cache.sqlite "delete from cache where file_path like '%<my_notebook_file_name>.py';". Note that this is robust to notebook file renames, as only hash column is primary key in the table, and file_path is more like "best effort", updated transparently whenever marimo update the cache for the cell. However, with file-per-cell cache, this is hard to achieve: if notebook name or path is included in the file name, this cripples/complicates "load cache by hash" core function.

[files] can be used across the wire-

Well, here you actually inviting subtle problems and transient bugs with silent corruption of cache contents. This is exactly the reason why generally ad hoc file storage is not the best idea. Even the current PickleLoader.save_cache() in local mode is not atomic, as per https://stackoverflow.com/questions/50461868/trying-to-use-atomic-write-on-pickle-object. Let alone in network FS situations, it's a tar pit of possible bugs. But instead of reinventing the wheel, why not just use SQLite?
And for remote, instead of network FS + file IO, it would be better to use rqlite. See rqlite FAQ:

Can I run a single node?
Sure. Many people do so, as they like accessing a SQLite database over HTTP. Of course, you won’t have any redundancy or fault tolerance if you only run a single node. If the single node fails you will need to restart it.

so we would still want to keep them, esp. for backwards compat

Keeping PickleLoader in the codebase of marimo is easy and I guess not a high cost. Just for it not to be the default back-end for persistent_cache when people use it going forward.

I don't think there's a disagreement here, these are all good points- but like you said, I don't think incorporating this removes PickleLoader.
I think you have convinced me that it should replace the default though! Sqlite being builtin is a plus

@dmadisetti unless you want to own this because it interferes/intertwines with some other development you are already doing, I can draft a PR on the weekend. You can give extra requirements/ideas how you think it should be done.

Re spec:
I think it's simple as inheriting from Loader, and overloading for write, load, etc.
For a persistent connection, I'd use the State Manager similar to how @cache does.
Feel free to push up what you have

I don't think you should make this the default yet- there's a few hash breaking changes yet to come. I think rolling this out with those changes would be ideal. There's an "experimental" mechanism, that this should live under to be default.
I'm happy to put this in if it's not immediately clear
Also, I might do a bit of benchmarking. While I think this is a nice solution- I'm not sold that the gains from this will be noticeable, but may come at a marked memory penalty.
It would be nice to have this option regardless. I think the benchmark should really dictate default status

The current progress is here: https://gist.github.com/leventov/00d94e82028fd3c6884950e454ce1a4c. Unfortunately this export format doesn't have anchor links, so you should search in page for e.g. "create table", or scroll through the page.
Thread local SQLite connection management
This gist currently uses threading.local() and the standard @contextmanager for thread-local SQLite connection. Apparently marimo._runtime.context would be direct equivalent to this. The marimo._runtime.state.state and marimo._runtime.state.State documentation appears cryptic to me, as well as its usage in @cache. I don't understand what does it provide to me over and in addition to get_context()? Must I use state for some internal Marimo's runtime bookkeeping or management reasons, or not necessarily? Also, state doc appears to be targeted at the "user-level API", not internal API.
cell_id (and non-existent yet app_id) considerations
In the discussions through the gist above and the table schema, you will find history_index idea which is an optimisation for modules that coincide with entire code cells (as, I assume, will become very widespread if persisting all cells becomes a local-dev default: https://github.com/marimo-team/marimo/issues/3054). The idea is that we don't remove a few "historic" versions of cell contents so that un-doing latest changes avoids re-computations. This hinges on the stability of cell_id (e.g., across marimo runtime restarts), which I didn't dig into yet. Are cell_ids stable?
This would also require changing Loader API (pass in cell_id, and cell_coincides_with_module=True|False, to both cache_hit and load_cache).
Yet another optimisation that stable cell_ids and for cell_coinciding-with-cached-module use case is that storing again the unchanged cell results (even though inputs, and hence module hash, have changed) is unnecessary.
Also, notions of app_id would also be useful, for example for clearning all cache for app (which would result in delete from cache_entries where app_id = ?). But it would also require app_id stability.
In general, documenting the semantics of cell_id as some kind of "developer docs" would be helpful. And app_id, if that will be added. Stability across marimo app restarts implies that different marimo app instances also share the cell_id. In turn, this implies an internal database for them, such as another sqlite. Stability across code movements and changes (What if the notebook file is renamed? What if cell is renamed? What if cell code is moved to another file, but explicitly connected to the app from another file?) is also unclear (It would be nice if all of this would be true. This would be unlock interesting stuff when correlating cell_ids across git commits or branches. A topic for another issue.)
Migration path
I currently think of the following:

Cache location by default is __marimo__/cache/cache.db (not as in gist above, in the gist above it's one level higher, i.e., __marimo__/cache.db, I will change that.)
SQLite is not suitable for storing extremely large blobs (nor this is nice from observability perspective, such as when the user wants to clean up the largest space-consuming clutter but doesn't want to or doesn't know how to open sqlite, but may use programs that scout the file system for largest files). Current default threshold is 100MB. So, "old-style" file-per-module cache will still be used.
The metadata for these large file-per-module pickles is still stored in the sqlite table, along with content_hash to ensure non-corrupted results (see details in the gist, the are already largely there).
Upgrade path: cache db stores an extra flag in a separate table with a single entry, a la create table legacy_cache_uplift (done INTEGER) (this table is not created yet in the gist). Upon first usage, if not done yet, we scan the directory and "uplift" the files to create entries for them in the table. From then on, The only hit/discovery path goes through the table (and if table points to a file, the file is read then). To consider: when this uplift is done, we can remove all small files in an atomic way, too. This will not lead to read amplification because we need to scan through all files anyway during uplift to calculate their content_hash. However, some care is needed to handle this atomically.

Module hash pending changes
I actually think this breaking change is a good case for table-driven persistent cache, not the reason to delay it. We can store module_hash_version column and proactively delete all rows older versions than the current instance of marimo app creates. This also aligns as well with the overall design of this cache: we should clean up the outdated versions of module contents (through the history mechanism described above), deleted cells (via cell_ids), deleted apps (via app_ids), entries with file_path column set but file actually missing or corrupted, etc.
Cleaning up non-cell-coinciding module hashes (but still within a cell)
Possible design:

Register any cache hits for module hashes in a separate column accessed_at.
Periodically check if there are cells (via cell_id) for which there are recent hits for some modules within it, but some other other modules haven't been accessed in a long time. I don't see how this may happen if that sub-cell-module with @persistent_cache or persistent_cache context has been deleted from the cell code. Then these rows can be deleted, too.

This leads to some write amplification for such cells. But note that for vast majority of cells, those where the cached module coincides with the cell itself, this accessed_at writing can be avoided (instead another history_index mechanism is used, as described above, but that leads to writes only upon actual cache writes, not hits).
But for those (rare) cells that are not persisted themselves but have persisted modules within, this write amplification seems like a fine tradeoff (which earns automatically-clean cache).
The alternative is to let user periodically clean the cache for cell or app altogether, but this is mental burden and I think should be avoided.
Note that this still hinges on the stability of cell_ids.
Performance and footprint

Also, I might do a bit of benchmarking. While I think this is a nice solution- I'm not sold that the gains from this will be noticeable, but may come at a marked memory penalty.
It would be nice to have this option regardless. I think the benchmark should really dictate default status

As evident from above, table-driven cache enables many paths to clean up the cache automatically and semi-automatically, at the same time not requiring the user to purge ALL cache (including for still used cells), which is bad developer experience IMO. Just from this, if these auto-cleanup routines are enabled, the table-driven cache should in practice result in much smaller __marimo__/cache dirs for the users.
The extra benefits are saner migration paths (enabled by things like module_hash_version and metadata column, see more details in gist) and manageability.
But even the above note about automatic clean-ups was not true and we would actually never delete anything from the cache_entries table (as currently files in cache dirs are never deleted), why do you think the table "may come at a marked memory penalty"? My intuition is the opposite: SQLite's footprint/overhead per row is smaller than operating system's overhead per file (separate file descriptor, probably mandatory alignment to 4KB page size per file internally, etc.).
If your "may come at a marked memory penalty" refers to double-storage of content_blobs in WAL and "main database", then SQLite automatically recycles the WAL approximately every 4MB of WAL. This should not be a concern.
Indexes are in memory (see gist), however they are expected to be dwarfed by the content_blobs sizes, anyway. When they are not, it means that the entire cached content is itself minuscule in size, and hence the cache size is not an issue.
Moreover, the entire point of whether file descriptors vs rows in sqlite are larger footprint is moot (and hence, the few paragraphs above are just of technical curiosity, and to make sure I understand you). This is because we overall don't expect to have millions of active modules-to-be-cached. The real enemy will always be piling up outdated module_hashes and versions. That, again, table-driven cache puts under control, directory + file-per-module cache does not.

Cleaning up non-cell-coinciding module hashes (but still within a cell)

Ok, I think these accessed_at don't have to be stored in the table. Just marimo app runtime can manage those and compare with created_at of the module_hashes for given cell_id. So, no excessive write amplification on each cache access. But cell_id stability is still vital.

Using the internal state manager will do default cleanup, and be tied to the calling cell. But I think that might have been a bit of a brain fart for me, since the connection should be on a per notebook- and not per cell basis (but the correct solution if it was cell based).

The connection should be one per thread - and only because SQLite connection is not a thread-safe construct. If the marimo runtime's concurrency architecture is thread-per-notebook (== App, right?), those would be the same things, but I was not sure about this because I didn't dig into Marimo's threading/concurrency architecture.
"But the correct solution if it was cell based" -- why is this? I don't understand.

Current default threshold is 100MB

I think this makes it a deal breaker for the default implementation- and with a file reference seems like many of the benefits of a persistent connection are lost at this point? marimo "just working" is a good design philosophy and shouldn't need configuration
Memory might be less of an issue than I thought if the entries are so limited- my usecase of persistent cache has been for 1gb+ blobs- which would make every call with the sqlite cache just unneeded overhead/ complexity

I somewhat struggle to parse your reply here.
I will assume that by "persistent connection" you meant "using SQLite for cache content blob management" [rather than the native file system, as it is done now].
In summary, the benefits of using SQLite for cache content blob management:

Faster per-cell/app content blob query with abilities to automatically clean up histories: with SQLite this will be a simple query against an in-memory index. In the current management, although it's not implemented yet, the most portable way to do this would be to storer blobs in files with names of the following format: "{prefix}{module_hash}{cell_id}_{app_id}.pickle", but this makes cache_hit() slower because now it requires listing all file names in the cache directory and finding the match in the name.
For cached-module-coinciding-the-cell case (which is the most important, in my view), history_index permits fast management of short histories for the cell so that unfortunate code changes, when reverted, don't require re-computations. With file-system-based content blob management, I don't really see how to do it without major hacks.
Faster content blob checksum storage: with SQLite, that's ~zero extra overhead, as it's just a single (small) extra column in the table. With native file systems, you would either need to reserve a few bytes for checksum storage at the beginning of the file (like, you first write four zero bytes, then do the entire pickle with streaming checksum calculation, and at the end you overwrite the first bytes, or append the checksum as trailing bytes, after the pickle. Or, store checksums separately from the blob files themselves (in SQLite, hehe). Leading/trailing bytes checksum storage will mean extra page reads/writes either on cache read or cache write paths.

To me, all these points scream about the need to do this management in a dedicated small table in SQLite. That "{prefix}{module_hash}{cell_id}_{app_id}.pickle" (plus content checksum in the leading/trailing file bytes) is basically turning file system's directory object into such table, basically, but, obviously, a very poor man's one. I don't see how it's simpler or more elegant -- to me, it seems like very much the opposite.

with a file reference seems like many of the benefits of a persistent connection are lost at this point?

The fact that really large content blobs (larger than 100mb) are still stored outside of SQLite doesn't interact with any of the benefits above. Storing blobs large blobs in files adds the overhead of an extra pair of file IO calls (writes on the write path, reads on the read path) relative to the situation, and reading/writing the file descriptor, compared to the situation when such a blob would have been stored right in the table, but these overheads are going to be completely dwarfed by the time it will take to actually pickle/unpickle and read/write these large files. In fact, storing smaller blobs inside the table is just an optimisation for smaller blobs.
The additional benefit of this optimsation is that it would make the cache directory more "observable" when the user decides to eyeball it: here're my large files (which I may decide to delete selectively to unclutter my disk), and "cache.db" with the rest. Complete purge of the cache is just removing everything from the dir, as before.

marimo "just working" is a good design philosophy and shouldn't need configuration

I don't see how my proposal requires configuration in any real practice. There are probably no people out there going after files smaller than 100mb on their disk to free space. I'm working on a 9-year old laptop with 256Gb which is chronically starved of disk space and I do it regularly (i.e., I go through various cache dirs by various apps, often outdated, such as prev. year's IntelliJ's IDEs which leave entirely separate unused directories of caches after themselves, using Disk Inventory X or similar apps), but even I don't remember I was ever desperate enough to sort through files smaller than 100mb.

Memory might be less of an issue than I thought if the entries are so limited- my usecase of persistent cache has been for 1gb+ blobs- which would make every call with the sqlite cache just unneeded overhead/ complexity

My view is that always-on persistent cache for all cells (as per https://github.com/marimo-team/marimo/issues/3054) recreates the Jupyter experience and expectations.
From computational perspective, when doing Bayesian inference with e.g. PyMC, computations may be very heavy, especially on CPU, but results are small. The same for most types of ML training, I guess.
Another important case is writing LLM-calling workflows in the cells - LLM calls to providers sometimes take long time, and also they cost money. If I have a long, multi-cell workflow that takes dozens of cents to complete, if my laptop loses power, I really don't want to re-pay these dozens of cents to recreate the working state of the program.
Personal anecdote: I'm currently writing these workflows and the "cost anxiety" makes me to store everything that LLMs and embedding models have every returned to me on the disk. Results are too small to bother with the space or disk I/O, but the price of obtaining them is non-negligible. But doing this, as you can imagine, adds a lot of accidental complexity to my code: instead of worrying about the logic, I worry about serde and caching.

I agree with this, but I think this is a UI not implementation issue. I think a user prompt for "clean cache" in the file hamburger might be the best option here (maybe on a per cell basis if "cached execution"). In which case it doesn't matter if sqlite (filter on access_at entry), or the file modified tag if using files.

File modified tag will break in many ways across a plethora of setups that users may invent to store and share them, including Git, rsync, Dropbox, network FS, and others.

Implicit cache purging might be a little dangerous, but settings for this could be fine

Dangerous in what sense? Fundamentally, everything that we are talking here about is still a cache, not an ironklad storage. Losing it in 1% of situations should be fine. Cf. my anecdotal examples above. If I don't have any persistence of cells at all, I start to worry about computation time and costs in case of laptop power outages/crashes (which happens with my old laptop regularly), or if I share the notebook with a colleague, and hence I add accidentally-complex persistance myself. But if I knew I had a relatively reliable, always-on cache, I would essentially be back to "Jupyter guarantees" (which are also not ironklad in practice - even in more than 1% of cases, cells need to be re-computed for various reasons), and I would stop worrying about persistence. A 1% chance of incurring an extra $1 dollar cost or spending 5 minutes waiting for some computations is not worth worrying at all. In leiu of persistence, even though rationally I should probably also not worry about these (the cost of adding caching complexity myself is higher than moderate risk of incurring extra $1 of costs), somehow it's hard to give up these worries.

I don't think I mentioned this before, but one of the strongest points in advocating for file based cache artifacts is because they can be distributed by any static file server.

Not sure what difference does it make wrt. SQLite-managed cache content blobs and FS-managed -- "cache.db" is synced and shared on that "static file server" as well as the adjacent blob files, if any.

I realised that SQLite will fail badly when people check in the cache into Git (they will!) and have merge conflicts. Hence I re-assembled the proposal with a new solution here: https://github.com/marimo-team/marimo/issues/3176


[6.0] FieldSensitivePrunedLiveness: Handle conditionality of try_apply defs.

A try_apply with indirect out arguments is only a def for those arguments on the success path. Model this by sinking the def-ness of the instruction into the success branch of the try_apply, and introducing a new DeadToLiveEdge mode for block liveness which stops propagation of use-before-def conditions into the block that introduced the def. Fixes rdar://118567869.

@swift-ci Please test


Do not send activation email if manual confirm is set

If the mailer is configured then even if Manual confirm is set an activation email
is still being sent because handleUserCreated is not checking for this case.
Fix #17263
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Backport will be slightly difficult as we can't use the new string.
Instead I suggest we just use the email confirmation is disabled string.

Shouldn't Gitea send an email to the administrator when new user registered?
Probably it's out of kind/bug scope, but would be nice to have too.

We need to clarify whether RegisterManualConfirm means a register will only be confirmed manually or RegisterManualConfirm means a register could be activated by email and also could be confirmed manually.

Currently it's already indirectly documented in the config cheat sheet.
But it'll only be better if it'd be written in a more clear way.

Please send back port.


Comand to mute sound from the device.

[x] I have checked that a similar feature request does not already exist.

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
I would like a command that can start scrcpy and mute audio on the smartphone, because i use sndcpy to listen to the audio on my pc.
Describe alternatives you've considered
A command that i could use when i start scrcpy would be very usefull
Additional context
No aditional text

Hmmm, yes, why not.
The key event is VOLUME_MUTE:
adb shell input keyevent VOLUME_MUTE

There is MOD+↑ for VOLUME_UP and MOD+↓ for VOLUME_DOWN.
What do you suggest for VOLUME_MUTE? (which also unmutes if it's muted)
https://github.com/Genymobile/scrcpy#shortcuts

Thank you for the reply!
I want to say thank you for making such a cool app!
Regarding the issue, i am asking for a command to add to the "scrcpy-noconsole.vbs" file, so when i run it, it automatically mutes the sound from the device.
Right now i managed to add the sndcpy files to the same folder where the scrcpy files are, and i added the following text to the scrcpy-noconsole.vbs file:
CreateObject("Wscript.Shell").Run "cmd /c scrcpy.exe --turn-screen-off --stay-awake --max-size 1024 --window-width 350 --window-height 600 --push-target=/sdcard/Download/", 0, false
CreateObject("Wscript.Shell").Run "cmd /c sndcpy", 1, false

This way i cant run both scrcpy and sndcpy at the same time and i get the sndcpy window to press "Enter".
It works great, but if i could also add a command to mute the sound from the device i wouldn't need to use the shortcut "VOLUME_DOWN" you mentioned to mute the device each time i run the app.
Sorry if i said something stupid i am not a programmer.


RabbitMQ chart Reachability/Liveness probes create zombies

Is this a request for help?: No

Is this a BUG REPORT or FEATURE REQUEST?: BUG REPORT

Version of Helm and Kubernetes:
helm v2.6.2, kubernetes v1.7.9, kubectl v1.8.2
Which chart:
stable/rabbitmq, master branch, both bitnami rabbitmq images and official rabbitmq images
What happened:
The chart deploys the application successfully, but Readiness/Liveness probes cause zombie processes.  After several hours, the zombie processes take up so many pid's that the node becomes starved for resources and begins to fail launching new images.  Previously running containers typically run ok as long as they don't spawn new processes, but any new scheduled pods fail.  Sometimes it takes 5 or 6 attempts to ssh to the node with errors complaining it can't fork.  Various system services also start crashing.
What you expected to happen:
Readiness/Liveness probes not to cause zombie processes.
How to reproduce it (as minimally and precisely as possible):
kubectl create namespace foo
helm install --name foo-rabbitmq --namespace foo charts/stable/rabbitmq --set persistence.enabled=false
kubectl -n foo exec -it $(kubectl get pods -n foo | grep Running | grep foo-rabbitmq | head -n 1 | awk '{print $1}') -- /bin/bash -c "ps aux | grep ' [Z]' | wc -l"

Watch for number of zombie processes to increase at a rate of about 120 processes per minute

Anything else we need to know:
I tried both the bitnami images (from 3.6.10-r2, 3.6.11-r7, etc all the way up to 3.6.14-r2) and the official rabbitmq images.  Both do the same thing.
Ultimately it appears to be an issue where the rabbitmq-server process spawns children with PPID 0, so when they exit they don't get reaped.  I suspect this will probably be an issue for any container which runs Readiness/Liveness probes which cause a daemonized process to spawn children.
It also creates the zombie processes when I kubectl exec to the pod and run the status command manually.
The bitnami images use tini as the init manager, and it sounds very similar to this issue:  https://github.com/rook/rook/issues/724
I did try to add -s to the tini commandline in the entry shell script in the docker image from bitnami, but it did not change the behavior.
The official rabbitmq image does not use tini.  Instead the entry shell script exec's rabbitmq-server directly, but it still has the behavior of zombies from the probes.
BUT in both cases, PID 1 is /pause instead of tini or rabbitmq-server that get exec'd by the relevant entry shell script.
Here is output from connecting directly to the kube nodes and seeing the growing zombie processes:
admin@ip-10-92-72-35:~$ for J in ip-10-92-73-20.ec2.internal ; do echo -n "$J: "; ssh core@$J 'ps aux | grep defunct | wc -l'; done
ip-10-92-73-20.ec2.internal: 251
admin@ip-10-92-72-35:~$ for J in ip-10-92-73-20.ec2.internal ; do echo -n "$J: "; ssh core@$J 'ps aux | grep defunct | wc -l'; done
ip-10-92-73-20.ec2.internal: 260
admin@ip-10-92-72-35:~$ for J in ip-10-92-73-20.ec2.internal ; do echo -n "$J: "; ssh core@$J 'ps aux | grep defunct | wc -l'; done
ip-10-92-73-20.ec2.internal: 499

After reading about the pause container at https://www.ianlewis.org/en/almighty-pause-container, it's clear that the pause container should be reaping those zombies.  We noticed this behavior about 1.5 weeks ago, approximately Dec 1, though I strongly believe it was happening prior to that and we just didn't realize it.  Kube was running version 1.7.2 until Fri Dec 7, then a co-worker upgraded Kube from 1.7.2 to 1.7.9 on Fri evening.  We are still seeing the same zombie not being reaped behavior in 1.7.9 as we saw in 1.7.2 last week.
I have verified that we are not disabling pid namespacing.  This is the kubelet args:
# cat /etc/sysconfig/kubelet
DAEMON_ARGS="--allow-privileged=true --cgroup-root=/ --cloud-provider=aws --cluster-dns=<IP_ADDRESS> --cluster-domain=cluster.local --enable-debugging-handlers=true --eviction-hard=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5% --feature-gates=ExperimentalCriticalPodAnnotation=true --hostname-override=ip-10-92-73-174.ec2.internal --kubeconfig=/var/lib/kubelet/kubeconfig --network-plugin=cni --node-labels=kubernetes.io/role=node,node-role.kubernetes.io/node= --non-masquerade-cidr=<IP_ADDRESS>/10 --pod-infra-container-image=gcr.io/google_containers/pause-amd64:3.0 --pod-manifest-path=/etc/kubernetes/manifests --register-schedulable=true --require-kubeconfig=true --v=2 --cni-bin-dir=/opt/cni/bin/ --cni-conf-dir=/etc/cni/net.d/"
We are becoming aware that maybe it's a cluster configuration that's causing this.  We are pursuing a method of disabling pause as pid 1 to get the docker shell entry script to be pid 1 by exec'ing the appropriate process.  Another coworker has a Kube 1.7.6 cluster that pid 1 is never the pause container but is instead the app being executed (in a php pod), so we are trying to figure out what the differences are.

I have now resolved this.  I built a new pause container from the master branch of kubernetes (kubernetes/build/pause), uploaded it to public docker repo, and configured a few of my nodes to use it with the  --pod-infra-container-image argument.  I deleted the pod a few times until the new one came up on a node using the new pod.  All zombie processes are now being reaped properly.
Once this new pause-amd64 release issue is taken care of at https://github.com/kubernetes/kubernetes/issues/50865, this will no longer be a problem.

@mrballcb Thanks for taking the time to document this issue. I would suggest if possible that the relevant issues be marked as critical, as this bug causes cluster instability.
There is now a updated pause container available in the public repo:
gcr.io/google_containers/pause-amd64:3.1. Unfortunately it does not appear to be possible to override podInfraContainerImage with kops.

The issue has not reared itself again through Kube 1.8.10.  Closing.


create channel ipc to move processing out of draw queue

done with giant generator making all the things including net/rpc bridge


🐞 Dagger cli messes up with mouse in windows terminal

What is the issue?

This is annoying especially because you can't scroll and copy the output or any information in terminal after that.
Dagger version
dagger v0.9.6 (registry.dagger.io/engine) windows/amd64
Steps to reproduce
Use any terminal in windows terminal. Tested with Powershell but other shells affected
Log output
https://github.com/dagger/dagger/assets/915892/0d192092-0234-4301-995a-b653ee34a56c

cc @vito this looks like a potential progrock issue?

Huh, yeah weird, sorry about that. It takes over mouse input so you can scroll the TUI, but it's obviously supposed to reset back to normal when you exit. Will see if I can repro this soon. I usually use Linux on Windows via WSL so that could explain the gap in testing here.

I've got the same issue. Is there a workaround? this is a really annoying one.

We'll likely retire the TUI that dagger run uses soon, and it's the only one that steals mouse input. This shouldn't affect dagger call or any other commands that are using the new TUI. If you're in a good position to start transitioning to the newly launched Dagger Functions that would be a good way to escape this behavior along the way.

Should be fixed with the new TUI which is now across all commands with v0.11 :+1:


How to set Interval between  values in Discrete SeekBar ?

Hi, i am using your library in my project and how do i set interval while moving means
I have a seekbar, while moving it I want to change values from 0 to 200 on Marker(bubble). I have a TextView, where I display those values while moving the seekbar. But I don't want to have every value from that interval(0,1,2,3,4,5...), but to have 10, 20, 30...so on. So when I move the seekbar, I want to display 10,20,30,40....to 200. Can somebody give me a hint or how to do this?

You can use the setNumericTransformer method:
myDiscreteSeekBar.setNumericTransformer(new DiscreteSeekBar.NumericTransformer() {
@Override
public int transform(int value) {
return value * 10;
}
});

what if i want 0.25 intervals between values.?


Ref not working

Hello. How can i get value of the MaskedFormControl?
 <MaskedFormControl                                     type="text"                                     placeholder="Input phone"                                     mask='(111)-111-11-11'                                     ref={(ref) => this.txtPhone = ref}                                 />
this.txtPhone.value always return undefined

Hi -- this is because of the FormControl abstraction used by react-bootstrap. In your example, you would need to do ReactDOM.findDOMNode(this.txtPhone).value. See here for further reading.


Add “Mastodon – Simplified Federation!” to awesome list

Disclosure: I am the dev.
I tried to keep the description as short as possible, but it is hard enough to explain that feature in such a short way. If you think there are information missing (e.g. that it is a Firefox add-on; or that it is used in the browser, i.e. no client) then we could obviously adjust that description.

Looks good, thanks!

Thank you. :smiley:


Clean up zeroheight test versions

There are too many styleguide versions within zeroheight that look the same, and it can be confusing to know if you are in the correct version.
Suggest, keep one backup/test copy since there is not way to go back or undo changes from the newest version. This can be used for testing out how to do things in zeroheight without being afraid of ruining what is already there.
Should make it very obvious that this is the "test" version somehow. Maybe turn on the sitewide footer option? Other ideas?

Deleted old copies. Made new backup and labeled it so obvious it is a backup.


fix(alerts): ensure artist series in previews/pills when managing alerts

This PR resolves ONYX-532
Description
Same idea as https://github.com/artsy/force/pull/13150 — needs an explicit request for artistSeriesIDs because of stitching.

Before
After

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

Warnings

:warning:

❌ An error occurred while validating your changelog, please make sure you provided a valid changelog.

  Generated by :no_entry_sign: dangerJS against 4f8e977b7214593e2e218f3b11e2be1ce1aeaa47


Indiana Jones and the Emperor's Tomb (Steam version): cinematics not scaled

Hello Elisha,
when you use dxwrapper with "Indiana Jones and the Emperor's Tomb" (Steam version), the cinematics are not scaled.
I enabled D3D8to9 but videos are still to small and not screen centered.
A screen capture of how intro videos played:

Do you know if it is fixable with dxwrapper?
Thank you for your help.

A screen capture of how intro videos played:

Another more important issue: Alt Tab makes this game crash...

The videos in this game are done with GDI not with Direct3D.  GDI is not easy to scale.

Another more important issue: Alt Tab could crash the game...

Are you sure this is related to d3d8to9?  It seems like you are using some tool to scale the game. Maybe remove that and just use d3d8to9.  It is probably whatever tool your using to scale the game causing this crash.

Are you sure this is related to d3d8to9?
I didn't say that, I just wanted to share my experience with this game and dxwrapper on my computer.
The main object here is playing cinematics scaled and centered in fullscreen.

What dxwrapper settings are you using when you see the Alt+Tab crash?  Are you using other wrappers or plug-ins besides dxwrapper?

What dxwrapper settings are you using

I tested again with game + dxwrapper fresh install , I only activated D3D8to9 option.
Now the cinematics played centered:

On the previous screen capture, it was not centered, I used
[d3d9]
EnableWindowMode           = 1
FullscreenWindowMode       = 1

Are you using other wrappers or plug-ins besides dxwrapper?

I'm using Wine, but no other wrappers pr plugins.
new: alt-tab crash happened only if you alt+tab during cinematics, not during playing.

Since the game uses GDI for the videos I don't plan to do anything there.

Ok Elisha, thanks anyway.


Implement cool-down feature

This might be the last functional feature this contract will have.
Cool-down time limited how fast (or the frequency) a creator can finished milestones. The milestone feature is designed to protect buyers against creator who just do a fake finish and take all tokens away. Milestones make a project more finer grade, but the creator can still finish 15s per milestones (the default block generation time of Neo N3), so a 5 milestones project can be easily finished in 2 minutes, and buyers would unlikely to notice that before creator take all tokens.
So the cool-down time is set by creator, and will show to buyers that how fast this creator can finish a milestone. And buyers can decide for themselves if they want to support (make that purchase) the project.
The details: cool-down time is in ms, the same unit returned by Runtime.getTime(), this will prevent any additional calculation, thus save some gas. A last update timestamp will be added in the BasicInfo, when doing a milestone update (finish), WCABasicInfo#finishMilestone(int, String) will check the time, if cool-down time is not met, then an exception will be thrown. Otherwise, update/finish this milestone and update the last update time. The initial last update time is set to -1, although is not likely to be 0 (it will be go back to 1970), but -1 is a semantically invalid value, so it's very safe to use. (Another idea is set it as the created time minus cool-down time, thus creator can start their first milestone anytime after they created, but this will introduce additional calculation).
Also the WCAPojo will add lastUpdateTimestamp and coolDownInterval to indicate when the last milestone is finished and how fast can creator does that again.

Finished in #13


Add docai inference server capability

Adds query of docai server for available models and adds ability to pass model name to endpoint to tell endpoint which prompt embedding to use.

Makes it possible to do inference with https://github.com/h2oai/noria/blob/71f9bb998df90c527475a47fefeb945e322b63e1/src/inference_engine.py


Request support for codeXRScript (Liar soft)

Example script:
script.zip
References:
Link
Sample code.zip
I really need the sjistunnel encode to properly display the unsupported characters. Also line breaker is ^n

Another reference:
link


Update to Better Trade Screen v3.0

Gonna check this out in just a minute, I don't anticipate any breaking issues that'll stop this from getting merged though


Placemark to get current location address from longitude& latitute

🐛 Bug Report

The name 'Placemark' isn't a type so it can't be used as a type argument.
Try correcting the name to an existing type, or defining a type named 'Placemark'.
The type 'List' is declared with 0 type parameters, but 1 type arguments were given.
is there an explanation for this

Hi @kitoga, thank you for reaching out.
It is unclear to me what issue you are encountering. Could you provide us with some additional information?


Git Repo Not Showing

VSCode Version: Code 1.18.1 (929bacba01ef658b873545e26034d1a8067445e9, 2017-11-16T18:23:26.125Z)
OS Version: Darwin x64 17.2.0
Extensions:

Extension
Author (truncated)
Version

vscode-eslint
dba
1.4.3

tslint
eg2
1.0.24

vim
vsc
0.10.5

Steps to Reproduce:

Reproduces without extensions: Yes/No

Please provide reproducable steps and please follow our issue filing steps
https://github.com/Microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions