<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: nullnix</title><link>https://news.ycombinator.com/user?id=nullnix</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 14 Apr 2026 13:40:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nullnix" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nullnix in "Long-term exposure to outdoor air pollution linked to increased risk of dementia"]]></title><description><![CDATA[
<p>Yes. Marine environment: the wind blows largely off the Atlantic, across the whole UK.</p>
]]></description><pubDate>Sun, 10 Aug 2025 09:04:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=44853852</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=44853852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44853852</guid></item><item><title><![CDATA[New comment by nullnix in "EU NGI TALER will bring private and secure online payments to the Eurozone"]]></title><description><![CDATA[
<p>It's certainly not anachronistic in England in place names, nor as a name for a type of (water- or glacier-carved) landform.</p>
]]></description><pubDate>Thu, 18 Jan 2024 10:34:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=39040172</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=39040172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39040172</guid></item><item><title><![CDATA[New comment by nullnix in "Changes at YC"]]></title><description><![CDATA[
<p>Fifteen years ago I remember my last employer saying in a division meeting that they had "reallocated a number of roles to the mobility pool". A round of confused "what's that then" from more or less all present forced them to be less euphemistic.</p>
]]></description><pubDate>Tue, 14 Mar 2023 05:21:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=35147721</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=35147721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35147721</guid></item><item><title><![CDATA[New comment by nullnix in "A suspiciously criminal portfolio website"]]></title><description><![CDATA[
<p>Works fine on my Fairphone 4, and they are definitely only midrange...</p>
]]></description><pubDate>Sun, 12 Mar 2023 01:29:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=35115270</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=35115270</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35115270</guid></item><item><title><![CDATA[New comment by nullnix in "Flux Keyboard"]]></title><description><![CDATA[
<p>I remain obsessed with / utterly dependent on my Maltron (contoured, two-hand, trackball). I have a Glove80 coming: let's see if it wins me over.</p>
]]></description><pubDate>Thu, 09 Mar 2023 22:17:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=35087597</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=35087597</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35087597</guid></item><item><title><![CDATA[New comment by nullnix in "The SCO lawsuit, 20 years later"]]></title><description><![CDATA[
<p>This would be a more convincing argument if your facts weren't over half a decade out of date. DTrace for Linux was relicensed under the UPL (with kernel components under GPLv2, just like the kernel) way back in 2017.<p>(speaking as the guy who wrote the scripts to change all the license text, though the actual relicensing was due to a lot of work on my boss's part.)</p>
]]></description><pubDate>Sat, 04 Mar 2023 13:07:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=35020504</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=35020504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35020504</guid></item><item><title><![CDATA[New comment by nullnix in "In-kernel WireGuard is on its way to FreeBSD and the pfSense router"]]></title><description><![CDATA[
<p>The actions of... pouring ammonia in his tenants' beds, throwing their stuff onto the street in trash bags, cutting holes in their apartments' floors while they were inside, cutting through floor joists under their apartments and physically attacking the building supervisor when he complained, fleeing the country to avoid arrest and sticking his own mother with a half-million-dollar bail forfeit as a result...<p>... no, no, there's no reason to hold actions like that over someone's head. It's entirely praiseworthy and I'm sure it's really easy to cooperate with such an upstanding character.</p>
]]></description><pubDate>Thu, 25 Mar 2021 19:38:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=26584469</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=26584469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26584469</guid></item><item><title><![CDATA[New comment by nullnix in "Rejuvenating Autoconf"]]></title><description><![CDATA[
<p>Folding that into Automake is under, well, fairly active or at least repeated discussion. :)</p>
]]></description><pubDate>Sun, 25 Oct 2020 10:23:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=24885215</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=24885215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24885215</guid></item><item><title><![CDATA[New comment by nullnix in "DTrace on Windows"]]></title><description><![CDATA[
<p>DTrace for Linux CTF hacker here.<p>The BPF people cannot be blamed for not using CTF. Even if it had been relicensed to the GPLv2 way back in 2005, until recently (<a href="https://github.com/oracle/libdtrace-ctf" rel="nofollow">https://github.com/oracle/libdtrace-ctf</a> release 1.0 or 1.1) it was impractical to use CTF on larger projects because the file format could only encode a strictly limited number of types (2^15 in each of a parent and child container): it had a lot of related limitations as well, but that was the big one. This is not enough for a largeish enterprise kernel, even assuming that you share types used by multiple modules to reduce the overall type count. Also, BTF and CTF serve rather different purposes: CTF specifically encodes knowledge about C types, while BTF is specialized for encoding information about BPF maps. You can't use CTF for that: C doesn't even <i>have</i> a map type, nor anything like one, and the bits CTF spends on things like the details of floating-point formats are wasted on BPF.<p>As for the other part... obviously, as someone working on DTrace and using it ever more, I think it does hold value in its own right. It operates at a different level of the stack from BPF, in any case: it's a user-facing tool like a kernel-level awk, which is nothing like BPF.<p>In my opinion, saying that DTrace doesn't hold value because of BPF is like saying that C doesn't hold value because ARM assembly language exists as well as x86 (in this metaphor, C == DTrace, ARM assembly language == BPF, x86 assembly language == DIF, the DTrace intermediate format). It certainly seems possible to replace the DIF portion of DTrace with BPF, but this will not obsolete BPF nor DTrace: instead, DTrace will drop DIF and the DIF interpreter and <i>build</i> on BPF, generating BPF instruction streams the way it now generates DIF instruction streams. We get to improve BPF if needed and drop a redundant interpreter and BPF tracing gets a hopefully-nicer user interface in the shape of DTrace, and wider usage. Win-win!<p>(I'm not doing most of the work on this, so my opinion is far from authoritative, but I did do a preliminary experimental conversion of the hand-rolled DTrace code generator to emit BPF instructions instead, and it seemed perfectly practical: the two encodings are remarkably similar, and BPF is pleasant to generate, as such things go. That's only a small part of what needs doing, of course...)</p>
]]></description><pubDate>Tue, 12 Mar 2019 15:27:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=19369047</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=19369047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19369047</guid></item><item><title><![CDATA[New comment by nullnix in "An in-depth security review of the Intel Management Engine"]]></title><description><![CDATA[
<p>Nah. Intel are still selling new systems with SPS 3.0 on them, and those systems are still receiving updates, including security updates (I bought one in March, and it's had two firmware updates since, both with ME changes involved). I can believe that they aren't vulnerable to this one.</p>
]]></description><pubDate>Thu, 23 Nov 2017 16:31:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=15766088</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=15766088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15766088</guid></item><item><title><![CDATA[New comment by nullnix in "Show HN: BitKeeper – Enterprise-ready version control, now open-source"]]></title><description><![CDATA[
<p>I'd do that if I was still working there. I can probably still get hold of a horror case but it'll take negotiation :)<p>(And yes, optimizing merge matters too, indeed it was a huge part of git's raison d'etre -- but, again, one usually merges with the stuff at the tip of tree: merging against something you did five years ago is rare, even if it's at a branch tip, and even rarer otherwise. Having to rewrite all the unmodified ancient stuff in the weave merely because of a merge at the tip seems wrong.)<p>(Now I'm tempted to go and import the Linux kernel or all of the GCC SVN repo into SCCS just to see how big the largest weave is. I have clearly gone insane from the summer heat. Stop me before I ci again!)</p>
]]></description><pubDate>Thu, 12 May 2016 12:00:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=11682744</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=11682744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11682744</guid></item><item><title><![CDATA[New comment by nullnix in "Show HN: BitKeeper – Enterprise-ready version control, now open-source"]]></title><description><![CDATA[
<p>Yeah, that's the problem; it's optimizing for the wrong thing. It speeds up blame at the expense of absolutely every other operation you ever need to carry out; the only thing which avoids reading (or, for checkins, writing) the whole file is a simple log. Blame is a relatively rare operation: its needs should not dominate the representation.<p>The fact that the largest file you mention is frankly tiny shows why your performance was good: we had ~50,000 line text files (yeah, I know, damn copy-and-paste coders) with a thousand-odd revisions and a resulting SCCS filesize exceeding three million lines, and <i>every one of those lines had to be read on every checkout</i>: dozens to hundreds of megabytes, and of course the cache would hardly ever be hot where that much data was concerned, so it all had to come off the disk and/or across NFS, taking tens of seconds or more in many cases. RCS could have avoided reading all but 50,000 of them in the common case of checkouts of most recent changes. (git would have reduced read volume even more because although it is deltified the chains are of finite length, unlike the weave, and all the data is compressed.)</p>
]]></description><pubDate>Wed, 11 May 2016 18:14:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=11677771</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=11677771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11677771</guid></item><item><title><![CDATA[New comment by nullnix in "Show HN: BitKeeper – Enterprise-ready version control, now open-source"]]></title><description><![CDATA[
<p>Yeah. I suspect the answer is 'store all binary data in BAM', which then uses some different encoding for the binary stuff -- but that then makes my gittish soul wonder why not just use that encoding for <i>everything</i>. (It works for git packfiles... though 'git gc' on large repos is a total memory and CPU hog, one presumes that whatever delta encoding BAM uses is not.)</p>
]]></description><pubDate>Wed, 11 May 2016 12:47:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=11674736</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=11674736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11674736</guid></item><item><title><![CDATA[New comment by nullnix in "Show HN: BitKeeper – Enterprise-ready version control, now open-source"]]></title><description><![CDATA[
<p>That metaphor... needs work. Cars need a considerable amount of training to learn to use safely, let alone correctly. I can hack C enough that I dream in it routinely, and due to the resulting brain damage found git intuitive from the start, but there is no way I'll ever learn to drive: it's just too hard.</p>
]]></description><pubDate>Wed, 11 May 2016 12:34:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=11674658</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=11674658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11674658</guid></item><item><title><![CDATA[New comment by nullnix in "Show HN: BitKeeper – Enterprise-ready version control, now open-source"]]></title><description><![CDATA[
<p>I had... much too extensive experience both with SCCS weaves and with hacking them way back in the day; I even wrote something which sounds very like your smoosh, only I called it 'fuse'. However, I wrote 'fuse' as a side-effect of something else, 'fission', which split a shorter history out of an SCCS file by wholesale discarding of irrelevant, er, strands and of the history relating to them. I did this because the weave is utterly terrible as soon as you start recording anything which isn't plain text or which has many changes in each version, and we were recording multimegabyte binary files in it by uuencoding them first (yes, I know, the decision was made way above my pay grade by people who had no idea how terrible an idea it was).<p>Where RCS or indeed git would have handled this reasonably well (indeed the xdelta used for git packfiles would have eaten it for lunch with no trouble), in SCCS, or anything weave-based, it was an utter disaster. Every checkin doubled the number of weaves in the file, an exponential growth without end which soon led to multigigabyte files which xdelta could have represented as megabytes at most. Every one-byte addition or removal doubled up everything from that point on.<p>And here's where the terribleness of the 'every version takes the same time' decision becomes clear. In a version control system, you want the history of later versions (or of tips of branches) overwhelmingly often: anything that optimizes access time for things elsewhere in the history at the expense of this is the wrong decision.<p>When I left, <i>years</i> before someone more courageous than me transitioned the whole appalling mess to git, our largest file was 14GiB and took more than half an hour to check out.<p>The SCCS weave is terrible. (It's exactly as good a format as you'd expect for the time, since it is essentially an ed script with different characters. It was a sensible decision for back then, but we really should put the bloody thing out of its misery, and ours.)</p>
]]></description><pubDate>Wed, 11 May 2016 10:43:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=11674106</link><dc:creator>nullnix</dc:creator><comments>https://news.ycombinator.com/item?id=11674106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11674106</guid></item></channel></rss>