<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: xen0</title><link>https://news.ycombinator.com/user?id=xen0</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 23:55:01 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=xen0" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by xen0 in "Visualizing Ukkonen's Suffix Tree Algorithm"]]></title><description><![CDATA[
<p>I've never grokkeed suffix trees, but isn't possible for them to be O(n) in space (n total length of all strings)? Is there just an unacceptable constant factor overhead? I can imagine the pointer overhead being painful.</p>
]]></description><pubDate>Thu, 12 Mar 2026 11:07:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47349062</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=47349062</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47349062</guid></item><item><title><![CDATA[New comment by xen0 in "How many options fit into a boolean?"]]></title><description><![CDATA[
<p>That is... amazing.<p>I think my favourite part is the fact that '1' isn't even one of the supported values.</p>
]]></description><pubDate>Wed, 11 Mar 2026 09:58:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47333617</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=47333617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47333617</guid></item><item><title><![CDATA[New comment by xen0 in "The Hunt for Dark Breakfast"]]></title><description><![CDATA[
<p>As an Englishman that has been transplanted to another country, I find myself making them more in Germany than I ever made them back home.<p>But that's because my wife requests it.<p>It would never occur to me to up the egg ratio so high to reach into that void though. My wife manages to mess up the proportions every time though, so maybe we'll unwittingly explore that region one day.</p>
]]></description><pubDate>Fri, 27 Feb 2026 13:43:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47180415</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=47180415</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47180415</guid></item><item><title><![CDATA[New comment by xen0 in "Trunk Based Development"]]></title><description><![CDATA[
<p>I am not a fan of Github's interface.<p>But my point is, is that I believe the important thing to preserve in history is whatever your unit of review is. If you could stack PRs and each were subject to the individual review, I would not combine and squash those (just the individual commits within each PR).</p>
]]></description><pubDate>Sat, 21 Feb 2026 13:11:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47100519</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=47100519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47100519</guid></item><item><title><![CDATA[New comment by xen0 in "Trunk Based Development"]]></title><description><![CDATA[
<p>I want every commit to represent a buildable state in which I have confidence automated tests pass. Bisecting is made unnecessarily difficult otherwise, and it's nice to be able checkout any commit and just build something for testing.<p>This constraint is usually enforced  by code review.<p>On Github, the unit of code review is the PR.<p>Therefore, I prefer squashing.</p>
]]></description><pubDate>Sat, 21 Feb 2026 11:06:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47099630</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=47099630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47099630</guid></item><item><title><![CDATA[New comment by xen0 in "The C3 Programming Language"]]></title><description><![CDATA[
<p>Thanks for pointing out what I was missing.<p><i>Please consider a variable `List{int}[3] x`, this is an array of 3 List{int} containing List{int}. If we do `x[1]` we will get an element of List{int}, from the middle element in the array. If we then further index this with [5], like `x[1][5]` we will get the 5th element of that list.</i><p>I get that motivation. In C++ it's an odd case that where `std::vector<int> x[4]` is "reversed" in a sense compared to `int x[4][100]`. And this quirk is shared with other languages (Java, C#).<p>But in my experience, mixing generic datatypes like this with arrays is quite rare, and multi-dimensional array like structures with these types is often specified via nesting (`std::vector<std::vector>>`) which avoids confusion.<p>The argument re. pointers is more convincing though.</p>
]]></description><pubDate>Mon, 05 Jan 2026 20:59:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46504873</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46504873</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46504873</guid></item><item><title><![CDATA[New comment by xen0 in "The C3 Programming Language"]]></title><description><![CDATA[
<p>The closed intervals for slices caught my eye as well, but I simply filed that under 'that's a weird quirk' rather than 'wtf?'.<p>It would require more thinking on my end to change that to either 'this is an acceptable choice' or 'this is a terrible idea'.<p>But the array indices being reversed on declaration? I cannot think of an upside to that at all.</p>
]]></description><pubDate>Sun, 04 Jan 2026 15:28:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46488850</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46488850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46488850</guid></item><item><title><![CDATA[New comment by xen0 in "The C3 Programming Language"]]></title><description><![CDATA[
<p>Reading through, something small caught me by surprise.<p><a href="https://c3-lang.org/language-common/arrays/#fixed-size-multi-dimensional-arrays" rel="nofollow">https://c3-lang.org/language-common/arrays/#fixed-size-multi...</a><p>Multi dimensional arrays are not declared in the same way they are accessed; the order of dimensions is reversed.<p><i>Accessing the multi-dimensional fixed array has inverted array index order to when the array was declared.</i><p>That is, the last element of 'int[3][10] x = {...}' is accessed with 'x[9][2]'.<p>This seems bizarre to me. What am I missing? Are there other languages that do this?</p>
]]></description><pubDate>Sun, 04 Jan 2026 14:56:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46488532</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46488532</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46488532</guid></item><item><title><![CDATA[New comment by xen0 in "Italians celebrate village's first baby in 30 years"]]></title><description><![CDATA[
<p>Looking at those in my extended family that have reached retirement, this does not appear to be a given.<p>End of life care* is highly variable in duration and costs and many people do not adequately prepare for expensive endings.<p>* this is true of more than just care post retirement</p>
]]></description><pubDate>Sun, 28 Dec 2025 15:21:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46411679</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46411679</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46411679</guid></item><item><title><![CDATA[New comment by xen0 in "Italians celebrate village's first baby in 30 years"]]></title><description><![CDATA[
<p>An unfortunate reality is that you're never going to have such services until there are children for them to service.<p>Decline like this is difficult to reverse, but that doesn't mean we shouldn't try.</p>
]]></description><pubDate>Sun, 28 Dec 2025 15:12:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46411621</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46411621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46411621</guid></item><item><title><![CDATA[New comment by xen0 in "Pre-commit hooks are broken"]]></title><description><![CDATA[
<p>Your real commit history is irrelevant. I don't care too much about how you came to a particular state.<p>The overall project history though, the clarity of changes made, and that bisecting reliably works are important to me.<p>Or another way; the important unit is whatever your unit of code review is. If you're not reviewing and checking individual commits, they're just noise in the history; the commit messages are not clear and I cannot reliably bisect on them (since nobody is checking that things build).</p>
]]></description><pubDate>Sat, 27 Dec 2025 12:45:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46401466</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46401466</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46401466</guid></item><item><title><![CDATA[New comment by xen0 in "A “frozen” dictionary for Python"]]></title><description><![CDATA[
<p>I work on a build system (Bazel), so perhaps I care more than most.<p>But maybe it does all just come down to equality comparisons. Just not always within your own code.</p>
]]></description><pubDate>Thu, 11 Dec 2025 19:08:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46235706</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46235706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46235706</guid></item><item><title><![CDATA[New comment by xen0 in "A “frozen” dictionary for Python"]]></title><description><![CDATA[
<p>It's sometimes nice to be deterministic.<p>I don't often care about a specific order, only that I get the same order every time.</p>
]]></description><pubDate>Thu, 11 Dec 2025 18:34:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46235136</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46235136</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46235136</guid></item><item><title><![CDATA[New comment by xen0 in "Migrating to Bazel symbolic macros"]]></title><description><![CDATA[
<p>Open source projects? Maybe less so.<p>But there are definitely companies that use Bazel in a major way.</p>
]]></description><pubDate>Tue, 25 Nov 2025 08:42:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46043711</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=46043711</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46043711</guid></item><item><title><![CDATA[New comment by xen0 in "French ex-president Sarkozy begins jail sentence"]]></title><description><![CDATA[
<p>At least in British English usage, there is no distinction between Jail, Gaol, and Prison other than at least one of these is a dated word.<p>I believe only the US has a strong distinction between Prison and Jail.</p>
]]></description><pubDate>Wed, 22 Oct 2025 17:25:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45672326</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=45672326</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45672326</guid></item><item><title><![CDATA[New comment by xen0 in "Life, Work, Death and the Peasant, Part V: Life in Cycles"]]></title><description><![CDATA[
<p>Part 4c (this is quite a long series) goes into some detail here.
<a href="https://acoup.blog/2025/09/12/collections-life-work-death-and-the-peasant-part-ivc-rent-and-extraction/" rel="nofollow">https://acoup.blog/2025/09/12/collections-life-work-death-an...</a><p>My own interpretation is that it's difficult to precisely compare how peasants were exploited to modern taxation regimes in the developed world. Perhaps more as an unfavorable relationship with the only employer in town?</p>
]]></description><pubDate>Sat, 18 Oct 2025 17:36:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45629030</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=45629030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45629030</guid></item><item><title><![CDATA[New comment by xen0 in "My Deus Ex lipsyncing fix mod"]]></title><description><![CDATA[
<p>This may be because the 'headshot' multiplier is lower than the regular multiplier (1x vs 2x) for the prod and baton. For most weapons the headshot multiplier is 8x (or something).<p>So torso hits from behind are the way to go.</p>
]]></description><pubDate>Fri, 26 Sep 2025 17:55:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45389207</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=45389207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45389207</guid></item><item><title><![CDATA[New comment by xen0 in "Malicious compliance by booking an available meeting room"]]></title><description><![CDATA[
<p>Erm, yes. Yes it is...</p>
]]></description><pubDate>Thu, 15 May 2025 20:49:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43999212</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=43999212</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43999212</guid></item><item><title><![CDATA[New comment by xen0 in "Malicious compliance by booking an available meeting room"]]></title><description><![CDATA[
<p>Those are not the same; one is a bit less than an hour, another is 3 and a half days.<p>A microcentury is 100 nanoyears if you prefer that.</p>
]]></description><pubDate>Thu, 15 May 2025 14:22:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=43995410</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=43995410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43995410</guid></item><item><title><![CDATA[New comment by xen0 in "What makes code hard to read: Visual patterns of complexity (2023)"]]></title><description><![CDATA[
<p>Set comprehensions are normal in mathematics and, barring very long complex ones, I find them the easiest to parse because they are so natural.<p>They're just a tad more verbose in Python than mathematics because it uses words like 'for' and 'in' instead of symbols.</p>
]]></description><pubDate>Tue, 11 Mar 2025 18:18:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43335455</link><dc:creator>xen0</dc:creator><comments>https://news.ycombinator.com/item?id=43335455</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43335455</guid></item></channel></rss>