<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: Matthias247</title><link>https://news.ycombinator.com/user?id=Matthias247</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 14 Apr 2026 20:30:34 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Matthias247" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Matthias247 in "Cloudflare outage on November 18, 2025 post mortem"]]></title><description><![CDATA[
<p>When I first read about it I assumed it would have been a "poison pill" - a bad config where the ingestion of the config leads the process to crash/restart. And due to that crash on startup, there is no automated possibility to revert to a good config. These things are the worst issues that all global control planes have to deal with.<p>The report actually seems to confirm this - it was indeed a crash on ingesting the bad config.
However I'm actually surprised that the long duration didn't come from "it takes a long time to restart the fleet manually" or "tooling to restart the fleet was bad".<p>The problem mostly seems to have been "we didn't knew whats going on". Some look into the proxy logs would hopefully have shown the stacktrace/unwrap, and metrics about the incoming requests would hopefully have shown that there's no abnormal amount of requests coming in.</p>
]]></description><pubDate>Wed, 19 Nov 2025 17:26:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45982200</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=45982200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45982200</guid></item><item><title><![CDATA[New comment by Matthias247 in "Futurelock: A subtle risk in async Rust"]]></title><description><![CDATA[
<p>As far as I remember from building these things with others within the async rust ecosystem (hey Eliza!) was that there was a certain tradeoff: if you wouldn’t be able to select on references, you couldn’t run into this issue. However you also wouldn’t be able run use select! in a while loop and try to acquire the same lock (or read from the same channel) without losing your position in the queue.<p>I fully agree that this and the cancellation issues discussed before can lead to surprising issues even to seasoned Rust experts. But I’m not sure what really can be improved under the main operating model of async rust (every future can be dropped).<p>But compared to working with callbacks the amount of surprising things is still rather low :)</p>
]]></description><pubDate>Fri, 31 Oct 2025 22:03:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45777191</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=45777191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45777191</guid></item><item><title><![CDATA[New comment by Matthias247 in "Cancellations in async Rust"]]></title><description><![CDATA[
<p>Some other material that has been written by me on that topic:<p>- Proposal from 2020 about async functions which are forced to run to completion (and thereby would use graceful cancellation if necessary). Quite old, but I still feel that no better idea has come up so far. <a href="https://github.com/Matthias247/rfcs/pull/1" rel="nofollow">https://github.com/Matthias247/rfcs/pull/1</a><p>- Proposal for unified cancellation between sync and async Rust ("A case for CancellationTokens" - <a href="https://gist.github.com/Matthias247/354941ebcc4d2270d07ff0c6bf066c64" rel="nofollow">https://gist.github.com/Matthias247/354941ebcc4d2270d07ff0c6...</a>)<p>- Exploration of an implementation of the above: <a href="https://github.com/Matthias247/min_cancel_token" rel="nofollow">https://github.com/Matthias247/min_cancel_token</a></p>
]]></description><pubDate>Fri, 03 Oct 2025 19:07:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45466583</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=45466583</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45466583</guid></item><item><title><![CDATA[New comment by Matthias247 in "Making Explainable Minesweeper"]]></title><description><![CDATA[
<p>I've played that one a lot (hundreds of games on Evil difficulty). So far there's no guessing required after the initial click. Everything can be deducted. Even though some deductions are really hard (you have to go through mine blocks from multiple starting points and multiple hops in order to determine the next safe block).</p>
]]></description><pubDate>Fri, 11 Jul 2025 17:06:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=44534598</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=44534598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44534598</guid></item><item><title><![CDATA[New comment by Matthias247 in "Postgres LISTEN/NOTIFY does not scale"]]></title><description><![CDATA[
<p>Clarification question:<p>> When a NOTIFY query is issued during a transaction, it acquires a global lock on the entire database (ref) during the commit phase of the transaction, effectively serializing all commits.<p>It only serializes commits where NOTIFY was issued as part of the transaction, right? Transactions which did not call NOTIFY should not be affected?</p>
]]></description><pubDate>Fri, 11 Jul 2025 16:48:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44534331</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=44534331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44534331</guid></item><item><title><![CDATA[New comment by Matthias247 in "Making Explainable Minesweeper"]]></title><description><![CDATA[
<p>I think the only guessing situation in the game is the starting point (first click). after that, everything can be solved by deduction.</p>
]]></description><pubDate>Thu, 10 Jul 2025 18:26:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44524009</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=44524009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44524009</guid></item><item><title><![CDATA[New comment by Matthias247 in "Google can now read your WhatsApp messages"]]></title><description><![CDATA[
<p>How does it work technically?<p>Does Whatsapp expose these messages via an API? If yes, then it seems like this is not only on Google.<p>If no: Are they reading data from raw UI widgets? Are they intercepting input controls? Are they intercepting network traffic? That seems unlikely, given its probably end to end encrypted and the decryption happens within the scope of the Whatsapp process.</p>
]]></description><pubDate>Tue, 08 Jul 2025 18:43:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=44502802</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=44502802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44502802</guid></item><item><title><![CDATA[New comment by Matthias247 in "Turso SQLite Offline Sync Public Beta"]]></title><description><![CDATA[
<p>I'm wondering too.<p>In general this seems to work only if there's a single offline client that accepts the writes.<p>With limitations to the data scheme (e.g. have distinct tables per client), it might work with multiple clients. However those would need to be documented and I couldn't see anything in this blog post.</p>
]]></description><pubDate>Mon, 31 Mar 2025 21:48:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=43540353</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=43540353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43540353</guid></item><item><title><![CDATA[New comment by Matthias247 in "Show HN: I made a live multiplayer Minesweeper game"]]></title><description><![CDATA[
<p>Besides whats called out by others: It would be nice to have the usual action of "press both mouse buttons" on a number to open all non flagged fields around it. That reduces the amount of required clicks a bit.<p>But maybe its intentional to avoid one player scoring too many points at once?</p>
]]></description><pubDate>Tue, 18 Mar 2025 19:12:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=43403639</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=43403639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43403639</guid></item><item><title><![CDATA[New comment by Matthias247 in "There isn't much point to HTTP/2 past the load balancer"]]></title><description><![CDATA[
<p>If you want to stream data inside a HTTP body (of any protocol), then the ReadableStream/WritableStream APIs would be the appropriate APIs (<a href="https://developer.mozilla.org/en-US/docs/Web/API/Streams_API" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/API/Streams_API</a>) - however at least in the past they have not been fully standardized and implemented by browsers. Not sure what the latest state is.<p>WebTransport is a bit different - it offers raw QUIC streams that are running concurrently with the requests/streams that carry the HTTP/3 requests on shared underlying HTTP/3 connections and it also offers a datagram API.</p>
]]></description><pubDate>Thu, 27 Feb 2025 23:30:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43199769</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=43199769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43199769</guid></item><item><title><![CDATA[New comment by Matthias247 in "There isn't much point to HTTP/2 past the load balancer"]]></title><description><![CDATA[
<p>Duplex streams are not really a HTTP/2-only feature. You can do the same bidirectional streaming with HTTP/1.1 too. The flow is always: 1. The client sends a header set. 2. It can then start to stream data in the form of an unlimited-length byte-stream to the server. 3. The server starts to send a header set back to the client. 4. The server can then start to stream data in the form of an unlimited-length byte-stream to the client.<p>There is not even a fixed order between 2) and 3). The server can start sending headers or body data before the client sent any body byte.<p>What is correct is that a lot of servers and clients (including javascript in browsers) don't support this and make stricter assumptions regarding how HTTP requests are used - e.g. that the request bytes are fully sent before the response happens. I think ReadableStream/WritableStream APIs on browsers were supposed to change that, but I haven't followed the progress in the last few years.<p>NGINX falls into the same category. It's HTTP/2 support (and gRPC support) had been built with a very limited use-case in mind. That's also why various CDNs and service meshes use different kinds of HTTP proxies - so that various streaming workloads don't break in case way the protocol is used is not strictly request->response.</p>
]]></description><pubDate>Thu, 27 Feb 2025 23:22:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43199713</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=43199713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43199713</guid></item><item><title><![CDATA[New comment by Matthias247 in "Rust’s worst feature"]]></title><description><![CDATA[
<p>If this is mainly useful for working with plain/uninterpreted byte arrays, then I wonder why we can't just do `[u8; N]::with_noinit()` method instead of doing the multi-line plus unsafe things listed in the article.<p>Is the main point that things like `slice_freeze_mut` could also be used for slices of e.g. `struct Coordinate { x: u32, y: u32, z: u32 }`?<p>It would obviously not work for f64 things, since there also not all bit-patterns are valid.</p>
]]></description><pubDate>Thu, 30 Jan 2025 16:33:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=42879381</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=42879381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42879381</guid></item><item><title><![CDATA[New comment by Matthias247 in "'Passive house' survives fire in California"]]></title><description><![CDATA[
<p>They still have windows that you can open</p>
]]></description><pubDate>Thu, 16 Jan 2025 18:28:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=42728968</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=42728968</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42728968</guid></item><item><title><![CDATA[New comment by Matthias247 in "Justin Trudeau promises to resign as PM"]]></title><description><![CDATA[
<p>Are there any numbers/data for the quality of healthcare in the provinces over time?<p>At least for housing I see the average home prices in each category (condos, townhomes, detached) still higher in Vancouver than Toronto (when googling a bit, I found <a href="https://wowa.ca/reports/canada-housing-market" rel="nofollow">https://wowa.ca/reports/canada-housing-market</a> with some data. But there's probably lots of real estate related sites with more).</p>
]]></description><pubDate>Mon, 06 Jan 2025 19:47:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42614754</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=42614754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42614754</guid></item><item><title><![CDATA[New comment by Matthias247 in "The Case for a High-Level Kernel-Bypass I/O Abstraction (2019)"]]></title><description><![CDATA[
<p>io_uring reduces the overhead of system calls - but it doesn't do anything to reduce the overhead of the actual networking stack.<p>If your send/receive calls spend most CPU time in going through routing/fragmentation/filter/BPF/etc path in the networking stack, then uring (or other APIs which just reduce the system call overhead, like SendMmsg/Recvmmsg for UDP) might only make a small difference. Source: Lots of profiling while implementing QUIC libraries.<p>An alternative to DPDK that allows to bypass the kernel networking stack would be AF_XDP.</p>
]]></description><pubDate>Mon, 25 Nov 2024 17:46:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=42238309</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=42238309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42238309</guid></item><item><title><![CDATA[New comment by Matthias247 in "Using BenQ's latest 32" 4k monitor (RD320U) which is aimed at programming"]]></title><description><![CDATA[
<p>I agree that its a very subpar solution for programming, unless you value a lot of screen estate and can deal with tiny text.<p>4k/5k 27" screens with appropriate font scaling make text so much easier to read and are thereby much easier on the eyes. And they still have plenty screen estate (having 2-3 files open next to each other is no problem).</p>
]]></description><pubDate>Wed, 13 Nov 2024 19:08:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=42128900</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=42128900</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42128900</guid></item><item><title><![CDATA[New comment by Matthias247 in "Preview of Explore Logs, a new way to browse your logs without writing LogQL"]]></title><description><![CDATA[
<p>I actually didn't understand it being phrased as a limitation. It could also be a feature - maybe one would prefer to look at logs for multiple services within a single query?<p>Anyhow, the nice thing about the system is that one can get anything that is preferable as long as the logs are annotated correctly (with pod and container id).</p>
]]></description><pubDate>Tue, 09 Apr 2024 21:40:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=39984579</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=39984579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39984579</guid></item><item><title><![CDATA[New comment by Matthias247 in "Writing scalable backends in UDP"]]></title><description><![CDATA[
<p>I've been working in that domain for a long time - including being one of the main architects for HTTP/3+QUIC in a public CDN offering. And I'll agree with everyone that this is very niche question, and a great answer seems out of reach for most "senior engineers".<p>Translating a UDP packet into a HTTP request and back is reasonably easy. Yes, maybe one can do that in a coding interview with some pseudo code. But scaling it and making it reliable is yet another dimension.<p>Any candidate would need to understand that a single UDP socket itself would probably already a bottleneck for just running this on single machine, and figure out how to increase concurrency there. That's not easy - the amount of engineers knowing how SO_REUSEPORT works and when it doesn't work is low.<p>After that you start to dig into how you can actually spread load between hosts. Would an answer like I "I hope my cloud provider solves this for me" be good enough? Probably not.
If it actually is, do candidates have to both understand the cloud providers native APIs and Terraform (mentioned in the blog post). Seems pretty unnecessary, terraform is just one tool out of the myriad of tools which can be used to configure cloud services. Not everyone will have used it before. Or would it even expect candidates to do a long writeup about the pro's and con's of client-side load balancing?<p>Are applicants required to talk about upstream connection pooling? Describe and implement a CDN like multi-tier architecture?<p>Last but far from least is that the requested architecture is very easy to misuse for denial of service and amplification attacks. Just being able to describe how to monitor and mitigate that is already a very very hard task, that very few specialists have worked on so far.<p>It's very fuzzy what would be good enough if this is a "homework task". At least in a synchronous interview the interviewer could give feedback that they are satisfied. So I think in a synchronous interview the question might be ok - but there will probably just be time to either talk about coding or about system architecture.</p>
]]></description><pubDate>Tue, 09 Apr 2024 20:00:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=39983603</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=39983603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39983603</guid></item><item><title><![CDATA[New comment by Matthias247 in "Preview of Explore Logs, a new way to browse your logs without writing LogQL"]]></title><description><![CDATA[
<p>Why? If the pod is defined to spawn multiple containers, and each container runs the same application, then this seems true to me? Unless you would add an additional filter on the container name.</p>
]]></description><pubDate>Tue, 09 Apr 2024 18:03:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=39982239</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=39982239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39982239</guid></item><item><title><![CDATA[New comment by Matthias247 in "Preview of Explore Logs, a new way to browse your logs without writing LogQL"]]></title><description><![CDATA[
<p>yes it can, if you tag your log stream correctly - either by having the stream externally tagged via attributes, or internally by following certain conventions in the log line.<p>You can also do something like<p>select client_ip from requests where elapsed_ms > 10000<p>which is incredibly powerful</p>
]]></description><pubDate>Tue, 09 Apr 2024 16:16:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=39980989</link><dc:creator>Matthias247</dc:creator><comments>https://news.ycombinator.com/item?id=39980989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39980989</guid></item></channel></rss>