<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: kennethallen</title><link>https://news.ycombinator.com/user?id=kennethallen</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 04 May 2026 16:08:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=kennethallen" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by kennethallen in "Denuvo has been cracked in all single-player games it previously protected"]]></title><description><![CDATA[
<p>These games all released with Denuvo on Steam and DRM-free on GOG. (Some of them have subsequently removed Denuvo on Steam.)<p>Mad Max
Middle-earth: Shadow of War
Deus Ex: Mankind Divided
Yakuza: Like a Dragon</p>
]]></description><pubDate>Mon, 04 May 2026 01:01:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48003398</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=48003398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48003398</guid></item><item><title><![CDATA[New comment by kennethallen in "Rethinking Syntax: Binding by Adjacency"]]></title><description><![CDATA[
<p>> This isn’t parser-style backtracking<p>How is this different from backtracking? You're doing a depth-first search over possible interpretations. The grammar is just expressed in the type system instead of usual spec formats.<p>Critiques in other comments are accurate. This is a tooling nightmare, but also probably a nightmare to read. Consider an expression like<p><pre><code>  2026 March 10 to 13
</code></pre>
What's the binding precedence? Does this mean March 10 through March 13, or midnight to 1 PM on March 10th? I think this breaks down outside of trivial examples that are better achieved in other ways.</p>
]]></description><pubDate>Mon, 09 Mar 2026 23:16:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47317095</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=47317095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47317095</guid></item><item><title><![CDATA[New comment by kennethallen in "Show HN: Explain Curl Commands"]]></title><description><![CDATA[
<p>What does this offer over feeding `-v` output into an LLM?</p>
]]></description><pubDate>Wed, 04 Mar 2026 02:08:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47242095</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=47242095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47242095</guid></item><item><title><![CDATA[New comment by kennethallen in "Frankensqlite a Rust reimplementation of SQLite with concurrent writers"]]></title><description><![CDATA[
<p>Extremely. Repo is littered with one-off Python scripts, among many other indicators.</p>
]]></description><pubDate>Mon, 02 Mar 2026 05:41:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47214266</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=47214266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47214266</guid></item><item><title><![CDATA[New comment by kennethallen in "Frankensqlite a Rust reimplementation of SQLite with concurrent writers"]]></title><description><![CDATA[
<p>And in every training corpus many times over.</p>
]]></description><pubDate>Mon, 02 Mar 2026 05:36:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47214231</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=47214231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47214231</guid></item><item><title><![CDATA[New comment by kennethallen in "Communities are not fungible"]]></title><description><![CDATA[
<p>Yeah, instantly switched to reader mode.</p>
]]></description><pubDate>Thu, 12 Feb 2026 20:00:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46994266</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=46994266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46994266</guid></item><item><title><![CDATA[New comment by kennethallen in "The lost art of XML"]]></title><description><![CDATA[
<p>The fundamental reason JSON won over XML is that JSON maps exactly to universal data structures (lists and string-keyed maps) and XML does not.</p>
]]></description><pubDate>Fri, 23 Jan 2026 04:59:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46728616</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=46728616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46728616</guid></item><item><title><![CDATA[New comment by kennethallen in "ASCII characters are not pixels: a deep dive into ASCII rendering"]]></title><description><![CDATA[
<p>There are many different supersampling patterns you can use: <a href="https://en.wikipedia.org/wiki/Supersampling#Supersampling_patterns" rel="nofollow">https://en.wikipedia.org/wiki/Supersampling#Supersampling_pa...</a><p>A grid can have unwanted aliasing effects. It all depends on the kinds of images you're working with.</p>
]]></description><pubDate>Mon, 19 Jan 2026 00:14:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46673573</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=46673573</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46673573</guid></item><item><title><![CDATA[New comment by kennethallen in "Zpdf: PDF text extraction in Zig"]]></title><description><![CDATA[
<p>mmap is better when:<p><pre><code>  * You want your program to crash on any I/O error because you wouldn't handle them anyway
  * You value the programming convenience of being able to treat a file on disk as if the entire thing exists in memory
  * The performance is good enough for your use. As the article showed, sequential scan performance is as good as direct I/O until the page cache fills up *from a single SSD*, and random access performance is as good as direct I/O until the page cache fills up *if you use MADV_RANDOM*. If your data doesn't fit in memory, or is across multiple storage devices, or you don't correctly advise the OS about your access patterns, mmap will probably be much slower
</code></pre>
To be clear, normal I/O still benefits from the OS's shared page cache, where files that other processes have loaded will probably still be in memory, avoiding waiting on the storage device. But each normal I/O process incurs the space and time cost of a copy into its private memory, unlike mmap.</p>
]]></description><pubDate>Fri, 02 Jan 2026 00:54:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46460105</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=46460105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46460105</guid></item><item><title><![CDATA[New comment by kennethallen in "Zpdf: PDF text extraction in Zig"]]></title><description><![CDATA[
<p>If you fail to load an mmapped page because of an I/O error, Unix-like OSes interrupt your program with SIGBUS/SIGSEGV. It might be technically possible to write a program that would handle those signals and recover, but it seems like a lot more work and complexity than just checking errno after a read system call.</p>
]]></description><pubDate>Fri, 02 Jan 2026 00:34:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46459934</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=46459934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46459934</guid></item><item><title><![CDATA[New comment by kennethallen in "Zpdf: PDF text extraction in Zig"]]></title><description><![CDATA[
<p>Two big advantages:<p>You avoid an unnecessary copy. Normal read system call gets the data from disk hardware into the kernel page cache and then copies it into the buffer you provide in your process memory. With mmap, the page cache is mapped directly into your process memory, no copy.<p>All running processes share the mapped copy of the file.<p>There are a lot of downsides to mmap: you lose explicit error handling and fine-grained control of when exactly I/O happens. Consult the classic article on why sophisticated systems like DBMSs do not use mmap: <a href="https://db.cs.cmu.edu/mmap-cidr2022/" rel="nofollow">https://db.cs.cmu.edu/mmap-cidr2022/</a></p>
]]></description><pubDate>Wed, 31 Dec 2025 04:25:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46441246</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=46441246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46441246</guid></item><item><title><![CDATA[New comment by kennethallen in "FWS – pip-installable embedded process supervisor with PTY/pipe/dtach back ends"]]></title><description><![CDATA[
<p>It's 2025 and you're telling people to `pip install` into system packages instead of running via `uvx`.</p>
]]></description><pubDate>Mon, 29 Dec 2025 05:59:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46417897</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=46417897</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46417897</guid></item><item><title><![CDATA[New comment by kennethallen in "I finally understand Cloudflare Zero Trust tunnels"]]></title><description><![CDATA[
<p>I don't understand the use case here. Is this supposed to be for enterprise to control access to internal applications via network access policies?</p>
]]></description><pubDate>Sun, 16 Nov 2025 23:42:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45949536</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=45949536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45949536</guid></item><item><title><![CDATA[New comment by kennethallen in "Asus Ascent GX10"]]></title><description><![CDATA[
<p>The use case for these boxes is a local NVIDIA development platform before you do your <i>actual</i> training run on your A100 cluster.</p>
]]></description><pubDate>Wed, 12 Nov 2025 23:40:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45908496</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=45908496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45908496</guid></item><item><title><![CDATA[New comment by kennethallen in "Asus Ascent GX10"]]></title><description><![CDATA[
<p>Running LLMs will be slow and training them is basically out of the question. You can get a Framework Desktop with similar bandwidth for less than a third of the price of this thing (though that isn't NVIDIA).</p>
]]></description><pubDate>Tue, 11 Nov 2025 00:40:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=45882771</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=45882771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45882771</guid></item><item><title><![CDATA[New comment by kennethallen in "You should write an agent"]]></title><description><![CDATA[
<p>Author on Twitter a few years ago: <a href="https://x.com/tqbf/status/851466178535055362" rel="nofollow">https://x.com/tqbf/status/851466178535055362</a></p>
]]></description><pubDate>Thu, 06 Nov 2025 22:51:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45841473</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=45841473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45841473</guid></item><item><title><![CDATA[New comment by kennethallen in "MAML – A new configuration language"]]></title><description><![CDATA[
<p>Oh, joy</p>
]]></description><pubDate>Sun, 12 Oct 2025 22:42:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45562720</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=45562720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45562720</guid></item><item><title><![CDATA[New comment by kennethallen in "Show HN: Ariadne – A Rust implementation of aperiodic cryptography"]]></title><description><![CDATA[
<p>I have a few questions after reading the README.<p>First, if it uses PRNG with a fixed-size state, it isn't accurate to say it <i>never</i> repeats, correct? It will be periodic <i>eventually</i>, even if that takes 2^256 operations or more.<p>Second, can you go more into the potential practical or theoretical advantages? Your scheme is certainly more <i>complicated</i>, but I don't see how it offers better tamper protection or secrecy than a block cipher operating in an authenticated mode (AES+GCM, for instance). Those have a number of practical advantages, like parallel encryption/decryption and ubiquitous hardware support.</p>
]]></description><pubDate>Mon, 23 Jun 2025 07:20:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44353274</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=44353274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44353274</guid></item><item><title><![CDATA[New comment by kennethallen in "Open WebUI changed license from BSD-3 to Open WebUI license with CLA"]]></title><description><![CDATA[
<p>They cannot just relicense the work of all of their public contributors without them agreeing in writing. This is completely illegitimate. (They don't seem to require signing any contributor agreement.)</p>
]]></description><pubDate>Tue, 06 May 2025 04:23:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=43901786</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=43901786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43901786</guid></item><item><title><![CDATA[New comment by kennethallen in "Nix Derivations, Without Guessing"]]></title><description><![CDATA[
<p>I walk away from every article on or attempt to use Nix more mystified</p>
]]></description><pubDate>Thu, 10 Apr 2025 01:15:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43639692</link><dc:creator>kennethallen</dc:creator><comments>https://news.ycombinator.com/item?id=43639692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43639692</guid></item></channel></rss>