<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: noctune</title><link>https://news.ycombinator.com/user?id=noctune</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 22 Oct 2026 07:57:57 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=noctune" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by noctune in "Learning a few things about running SQLite"]]></title><description><![CDATA[
<p>Or cloudformation, if it is just for AWS anyhow.</p>
]]></description><pubDate>Sat, 18 Jul 2026 19:57:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48961709</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=48961709</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48961709</guid></item><item><title><![CDATA[New comment by noctune in "Static search trees: 40x faster than binary search (2024)"]]></title><description><![CDATA[
<p>Locality is a property of how data is arranged, so it's a property of the data structure, no?</p>
]]></description><pubDate>Sat, 18 Jul 2026 07:29:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48955969</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=48955969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48955969</guid></item><item><title><![CDATA[New comment by noctune in "An interactive intro to quadtrees"]]></title><description><![CDATA[
<p>KD-trees select their splits according to the contained points. That tends to make them better for static sets of points, but updates become expensive. Quadtrees are often used in e.g. physics engines.</p>
]]></description><pubDate>Fri, 27 Feb 2026 17:39:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47183168</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=47183168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47183168</guid></item><item><title><![CDATA[New comment by noctune in "Fabrice Bellard's TS Zip (2024)"]]></title><description><![CDATA[
<p>Some patterns must happen to repeat, so I would assume the offset to be larger, no?</p>
]]></description><pubDate>Tue, 13 Jan 2026 10:28:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46599247</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=46599247</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46599247</guid></item><item><title><![CDATA[New comment by noctune in "Why I stopped using JSON for my APIs"]]></title><description><![CDATA[
<p>You might be interested in <a href="https://connectrpc.com/" rel="nofollow">https://connectrpc.com/</a>. It's basically what you describe, though it's not clear to me how well supported it is.</p>
]]></description><pubDate>Mon, 01 Dec 2025 20:44:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46112955</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=46112955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46112955</guid></item><item><title><![CDATA[New comment by noctune in "URLs are state containers"]]></title><description><![CDATA[
<p>It doesn't help that URLs are badly designed. It's a mix of left- and rightmost significant notation, so the most significant part is in the middle of the URL and hard to spot for someone non-technical.<p>Really we should be going to com.ycombinator.news/item?id=45789474 instead.</p>
]]></description><pubDate>Mon, 03 Nov 2025 07:19:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45796609</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=45796609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45796609</guid></item><item><title><![CDATA[New comment by noctune in "An overengineered solution to `sort | uniq -c` with 25x throughput (hist)"]]></title><description><![CDATA[
<p>I built something similarly a few years ago for `sort | uniq -d` using sketches. The downside is you need two passes, but still it's overall faster than sorting: <a href="https://github.com/mpdn/sketch-duplicates" rel="nofollow">https://github.com/mpdn/sketch-duplicates</a></p>
]]></description><pubDate>Mon, 27 Oct 2025 07:29:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45718257</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=45718257</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45718257</guid></item><item><title><![CDATA[New comment by noctune in "GitOps Considered Harmful for MVP"]]></title><description><![CDATA[
<p>I overall agree with the article; GitOps is great for managing long-lived, shared, stable systems you need a good audit trail for (like production), but testing isn't one of these. Test environments should ideally just be something non-shared you can just spin up and make changes to without asking for permission.</p>
]]></description><pubDate>Fri, 26 Sep 2025 08:53:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45384318</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=45384318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45384318</guid></item><item><title><![CDATA[New comment by noctune in "Download responsibly"]]></title><description><![CDATA[
<p>I don't understand why features like S3's "downloader pays" isn't more widely used (and available outside AWS). Let the inefficient consumer bear their own cost.<p>Major downside is that this would exclude people without access to payment networks, but maybe you could still have a rate-limited free option.</p>
]]></description><pubDate>Mon, 22 Sep 2025 11:44:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45332059</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=45332059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45332059</guid></item><item><title><![CDATA[New comment by noctune in "One Token to rule them all – Obtaining Global Admin in every Entra ID tenant"]]></title><description><![CDATA[
<p>You can condition IAM on Nitro attestation, so that's doable (if a lot more work than usual).</p>
]]></description><pubDate>Thu, 18 Sep 2025 10:36:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45287974</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=45287974</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45287974</guid></item><item><title><![CDATA[New comment by noctune in "Fish 4.0: The Fish of Theseus"]]></title><description><![CDATA[
<p>The XZ utils supply chain attack also used this to sneakily disable Linux Landlock: <a href="https://news.ycombinator.com/item?id=39874404">https://news.ycombinator.com/item?id=39874404</a></p>
]]></description><pubDate>Sun, 29 Dec 2024 12:04:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=42539431</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=42539431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42539431</guid></item><item><title><![CDATA[New comment by noctune in "Universal optimality of Dijkstra via beyond-worst-case heaps"]]></title><description><![CDATA[
<p>You can use a radix heap rather than a binary heap. I have an implementation here, with benchmarks using pathfinding: <a href="https://github.com/mpdn/radix-heap">https://github.com/mpdn/radix-heap</a><p>It has the nice property that the amortized cost of pushing/popping an element is independent of the number of other elements in the heap.</p>
]]></description><pubDate>Sat, 26 Oct 2024 12:07:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=41954250</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=41954250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41954250</guid></item><item><title><![CDATA[New comment by noctune in "S3 as a Git remote and LFS server"]]></title><description><![CDATA[
<p>S3 recently got conditional writes and you can use do locking entirely in S3 - I don't think they are using this though. Must be too recent an addition.</p>
]]></description><pubDate>Sat, 19 Oct 2024 21:28:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=41890916</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=41890916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41890916</guid></item><item><title><![CDATA[New comment by noctune in "Async hazard: MMAP is blocking IO"]]></title><description><![CDATA[
<p>I think you could make by with some kind of async memory-touch system call, i.e. "page in this range of memory, notify me when finished". The application would have to call this on blocks of the mmap prior to actually reading it.<p>This of course means you lose some of the benefits of mmap (few system calls, automatic paging), but would maybe still be beneficial from a performance perspective.</p>
]]></description><pubDate>Sun, 25 Aug 2024 07:54:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41345360</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=41345360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41345360</guid></item><item><title><![CDATA[New comment by noctune in "How to organize large Rust codebases"]]></title><description><![CDATA[
<p>It is very common to have dependencies outside of Cargo. Take cc, the most popular crate for calling the system C/C++ compiler. It currently has 1983 other crates that depend on it [1].<p>[1]: <a href="https://crates.io/crates/cc/reverse_dependencies" rel="nofollow">https://crates.io/crates/cc/reverse_dependencies</a></p>
]]></description><pubDate>Sun, 14 Jul 2024 10:28:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=40960051</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=40960051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40960051</guid></item><item><title><![CDATA[New comment by noctune in "Timeline of the xz open source attack"]]></title><description><![CDATA[
<p>The xz backdoor did hide the payload in test data though. Proper sandboxing could have meant that eg. building the binary wouldn't have access to test data.</p>
]]></description><pubDate>Wed, 03 Apr 2024 14:12:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=39917763</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=39917763</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39917763</guid></item><item><title><![CDATA[New comment by noctune in "Xz/liblzma: Bash-stage Obfuscation Explained"]]></title><description><![CDATA[
<p>I don't really agree - I think its more the case that the build system should be able to prove that tests and test files cannot influence the built artifact. Any test code (or test binary files) going into the produced library is a big red flag.<p>Bazel is huge and complicated, but it allows making those kinds of assertions.</p>
]]></description><pubDate>Mon, 01 Apr 2024 19:16:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=39897980</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=39897980</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39897980</guid></item><item><title><![CDATA[New comment by noctune in "Promises Training: Practical Exercises on Promises in JavaScript"]]></title><description><![CDATA[
<p>In Scala there's Future.delegate for turning sync failures into failed futures. Seems like something equivalent should be possible in Javascript.</p>
]]></description><pubDate>Thu, 23 Nov 2023 15:50:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=38394062</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=38394062</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38394062</guid></item><item><title><![CDATA[New comment by noctune in "The SHA256 for this sentence begins with: one, eight, two, a, seven, c and nine."]]></title><description><![CDATA[
<p>7 digits of the hash makes for 16*7 possible hashes. I spot 4 potential "filler" lines in that tweet, so if you find log4(16*7)=14 candidates for each of those filler lines, then one combination would be expected to yield that hash.</p>
]]></description><pubDate>Mon, 11 Sep 2023 15:02:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=37468299</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=37468299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37468299</guid></item><item><title><![CDATA[New comment by noctune in "Applying SRE Principles to CI/CD"]]></title><description><![CDATA[
<p>In my experience, the problem usually is that severity is context sensitive. For example, a external service temporarily returning a few HTTP 500 might not be a significant problem (you should basically expect all webservices to do so occasionally), whereas it consistently returning it over a longer duration can definitely be a problem.</p>
]]></description><pubDate>Wed, 30 Aug 2023 15:51:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=37323982</link><dc:creator>noctune</dc:creator><comments>https://news.ycombinator.com/item?id=37323982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37323982</guid></item></channel></rss>