<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: toomim</title><link>https://news.ycombinator.com/user?id=toomim</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 20 May 2026 17:59:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=toomim" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by toomim in "Mercurial, 20 years and counting: how are we still alive and kicking? [video]"]]></title><description><![CDATA[
<p>If you like darcs, try Pijul. It's darcs' spiritual successor, and quite performant and capable.</p>
]]></description><pubDate>Mon, 18 May 2026 01:21:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48174699</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=48174699</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48174699</guid></item><item><title><![CDATA[New comment by toomim in "Claude Design"]]></title><description><![CDATA[
<p>"An AI model is incapable of that."<p>"Good designers will reject this."<p>^ Famous last words.</p>
]]></description><pubDate>Fri, 17 Apr 2026 15:45:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47807186</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47807186</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47807186</guid></item><item><title><![CDATA[New comment by toomim in "Claude Opus 4.7"]]></title><description><![CDATA[
<p>It released in February 2026.</p>
]]></description><pubDate>Thu, 16 Apr 2026 15:00:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47794126</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47794126</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47794126</guid></item><item><title><![CDATA[New comment by toomim in "The paper computer"]]></title><description><![CDATA[
<p>How about hacking a remarkable e-ink tablet as an easy prototype? The remarkable is basically a "better paper" already.</p>
]]></description><pubDate>Thu, 16 Apr 2026 04:22:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47788632</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47788632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47788632</guid></item><item><title><![CDATA[New comment by toomim in "More on Version Control"]]></title><description><![CDATA[
<p>The git porcelain is functional, like a toilet.</p>
]]></description><pubDate>Mon, 30 Mar 2026 10:27:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47572560</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47572560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47572560</guid></item><item><title><![CDATA[New comment by toomim in "More on Version Control"]]></title><description><![CDATA[
<p>You can generically represent copies and renamed (aka "moves") in a CRDT, OT or CTM using a Portal: <a href="https://braid.org/meeting-62/portals" rel="nofollow">https://braid.org/meeting-62/portals</a></p>
]]></description><pubDate>Mon, 30 Mar 2026 03:30:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47570106</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47570106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47570106</guid></item><item><title><![CDATA[New comment by toomim in "The future of version control"]]></title><description><![CDATA[
<p>Pijul does both.  It's a VCS, that is a CRDT, that preserves conflicts until a human resolves them.<p>Look it up: <a href="https://pijul.org" rel="nofollow">https://pijul.org</a><p>It also makes cherrypicking and rebasing wayyyy easier.  You can actually add or remove any set of patches, at any time, on any peer.  It's a dramatic model shift -- and is awesome.</p>
]]></description><pubDate>Mon, 23 Mar 2026 03:49:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47485314</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47485314</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47485314</guid></item><item><title><![CDATA[New comment by toomim in "The future of version control"]]></title><description><![CDATA[
<p>CRDTs actually have a long history in version control.<p><pre><code>  - The original 1977 version control system, SCCS, was a CRDT: https://braid.org/meeting-60/sccs-is-a-time-collapse

  - It called its data structure a 'weave"

  - Brahm's old project "Codeville" used a weave for version control

  - But then git blew up in popularity.

  - The project "DARCS" tried to make a robust "theory of patches," and eventually led to the development of Pijul

  - Pijul is a VCS that is a CRDT: https://pijul.org</code></pre></p>
]]></description><pubDate>Mon, 23 Mar 2026 03:44:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47485283</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47485283</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47485283</guid></item><item><title><![CDATA[New comment by toomim in "How to talk to anyone and why you should"]]></title><description><![CDATA[
<p>It depends strongly on the city, and became more pronounced since covid.<p>Seattle is the worst. They call it the "seattle freeze." The San Francisco Bay Area became almost as bad in covid.<p>The south is still friendly. Austin is incredibly friendly with strangers. Miami has strong stranger vibe. NYC is still alive, too.</p>
]]></description><pubDate>Mon, 02 Mar 2026 16:21:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47220037</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=47220037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47220037</guid></item><item><title><![CDATA[New comment by toomim in "Willow – Protocols for an uncertain future [video]"]]></title><description><![CDATA[
<p>You can do this by (1) extending your CRDT into a CTM (see <a href="https://braid.org/time-machines" rel="nofollow">https://braid.org/time-machines</a>) and then (2) use the antimatter algorithm (braid.org/antimatter), or something similar, for acknowledgements.<p>The antimatter algorithm allows peers to learn where the rest of the network has caught up to, without a central actor, or relying on consensus, across arbitrary P2P connection & disconnection events in the network.  It even allows subnetworks, after a partition, to prune the history that they generate while partitioned, while still holding onto the necessary older history to reconnect with the other half of the partition.</p>
]]></description><pubDate>Wed, 11 Feb 2026 17:05:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46977561</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46977561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46977561</guid></item><item><title><![CDATA[New comment by toomim in "Vouch"]]></title><description><![CDATA[
<p>From just 14 hours ago!?</p>
]]></description><pubDate>Sun, 08 Feb 2026 17:46:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46936658</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46936658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46936658</guid></item><item><title><![CDATA[New comment by toomim in "Y Combinator will let founders receive funds in stablecoins"]]></title><description><![CDATA[
<p>Faster and cheaper transactions that don't get locked up by the whims of a bureaucracy. They continue to operate on non-business days.</p>
]]></description><pubDate>Wed, 04 Feb 2026 03:32:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46881125</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46881125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46881125</guid></item><item><title><![CDATA[New comment by toomim in "Claude's new constitution"]]></title><description><![CDATA[
<p>You're fixed on just <i>one</i> of the 3 definitions for the word "constitution"—the one about government.<p>The more general definition of "constitution" is "that which constitutes" a thing.  The composition of it.<p>If Claude has an ego, with values, ethics, and beliefs of an etymological origin, then it makes sense to write those all down as the the "constitution" of the ego — the stuff that it constitutes.</p>
]]></description><pubDate>Thu, 22 Jan 2026 05:30:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46715654</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46715654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46715654</guid></item><item><title><![CDATA[New comment by toomim in "Eat Real Food"]]></title><description><![CDATA[
<p>South Park predicted it AGAIN</p>
]]></description><pubDate>Thu, 08 Jan 2026 07:55:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46538477</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46538477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46538477</guid></item><item><title><![CDATA[New comment by toomim in "Practical Intro to Operational Transformation"]]></title><description><![CDATA[
<p>Lovely analysis!<p>But one issue: it's <i>not</i> actually the case that "all CRDTs are OTs".<p>OT is the feature of <i>Transforming</i> and <i>Operation</i>. This requires two things: (1) Operations, and (2) Transforming them so that they do the same thing when applied from one place in distributed time vs. another place in distributed time.<p>However, there are plenty of CRDTs that (a) do not have operations, and also plenty of CRDTs that (b) do not transform operations.<p>Consider a typical state-based CRDT like LWW register. It does not have operations; it just has a current state: the value of the register.  And it does not transform operations.  It just always computes the current value of the register.<p>(For more on the relationship between OT and CRDT, see my notes at braid.org/meeting-111.)</p>
]]></description><pubDate>Tue, 09 Dec 2025 05:03:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46201426</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46201426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46201426</guid></item><item><title><![CDATA[New comment by toomim in "Duplication Isn't Always an Anti-Pattern"]]></title><description><![CDATA[
<p>Duplication isn't always bad.  It's often rational.  I wrote an academic paper explaining why, and offering a solution:<p><a href="https://invisible.college/toomim/toomim-linked-editing.pdf" rel="nofollow">https://invisible.college/toomim/toomim-linked-editing.pdf</a><p>> Abstractions can be costly, and it is often in a programmer’s best interest to leave code duplicated instead. Specifically, we have identified the following general <i>costs of abstraction</i> that lead programmers to duplicate code (supported by a literature survey, programmer interviews, and our own analysis). These costs apply to any abstraction mechanism based on named, parameterized definitions and uses, regardless of the language.<p>> 1. *<i>Too much work to create.*</i> In order to create a new programming abstraction from duplicated code, the programmer has to analyze the clones’ similarities and differences, research their uses in the context of the program, and design a name and sequence of named parameters that account for present and future instantiations and represent a meaningful “design concept” in the system. This research and reasoning is thought-intensive and time-consuming.<p>> 2. *<i>Too much overhead after creation.*</i> Each new programming abstraction adds textual and cognitive overhead: the abstraction’s interface must be declared, maintained, and kept consistent, and the program logic (now decoupled) must be traced through additional interfaces and locations to be understood and managed. In a case study, Balazinska et. al reported that the removal of clones from the JDK source code actually increased its overall size [4].<p>> 3. *<i>Too hard to change.*</i> It is hard to modify the structure of highly-abstracted code. Doing so requires changing abstraction definitions and all of their uses, and often necessitates re-ordering inheritance hierarchies and other restructuring, requiring a new round of testing to ensure correctness. Programmers may duplicate code instead of restructuring existing abstractions, or in order to reduce the risk of restructuring in the future.<p>> 4. *<i>Too hard to understand.*</i> Some instances of duplicated code are particularly difficult to abstract cleanly, e.g. because they have a complex set of differences to parameterize or do not represent a clear design concept in the system. Furthermore, abstractions themselves are cognitively difficult. To quote Green & Blackwell: “Thinking in abstract terms is difficult: it comes late in children, it comes late to adults as they learn a new domain of knowledge, and it comes late within any given discipline.” [20]<p>> 5. *<i>Impossible to express.*</i> A language might not support direct abstraction of some types of clones: for instance those differing only by types (float vs. double) or keywords (if vs. while) in Java. Or, organizational issues may prevent refactoring: the code may be fragile, “frozen”, private, performance-critical, affect a standardized interface, or introduce illegal binary couplings between modules [41].<p>> Programmers are stuck between a rock and hard place. Traditional abstractions can be too costly, causing rational programmers to duplicate code instead—but such code is viscous and prone to inconsistencies. Programmers need a flexible, lightweight tool to complement their other options.</p>
]]></description><pubDate>Sun, 07 Dec 2025 15:10:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46182220</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46182220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46182220</guid></item><item><title><![CDATA[New comment by toomim in "Micron Announces Exit from Crucial Consumer Business"]]></title><description><![CDATA[
<p>It's like the loss of Radio Shack, all over again.</p>
]]></description><pubDate>Thu, 04 Dec 2025 03:49:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46143612</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46143612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46143612</guid></item><item><title><![CDATA[New comment by toomim in "Practical Intro to Operational Transformation"]]></title><description><![CDATA[
<p>This paper does a good job relating OT and CRDT as the two major approaches to collaborative editing.<p>For anyone interested in this topic, I'm publishing a new theory on this called Collapsing Time Machines: <a href="https://braid.org/meeting-111" rel="nofollow">https://braid.org/meeting-111</a>.</p>
]]></description><pubDate>Wed, 03 Dec 2025 04:38:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46130365</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46130365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46130365</guid></item><item><title><![CDATA[New comment by toomim in "Mozilla's latest quagmire"]]></title><description><![CDATA[
<p>This.<p>Brendan Eich was the Director of Mozilla.  This is the guy who invented Javascript in 10 days, at Netscape, and then co-founded Mozilla, and became the technical lead.  He was Chief Architect of Mozilla, then CTO of Mozilla Corporation, then CEO.  He made Firefox great.  This was when Mozilla was in its heyday, and passed IE in marketshare.<p>Then he was fired in 2014 because a bunch of people went crazy that he made a $1,000 political donation for a California ballot proposition that had nothing to do with computers.<p>This sent a signal that Mozilla doesn't reward technical improvements to its software — it rewards following political trends.<p>All of the bad stuff in Firefox started then.</p>
]]></description><pubDate>Tue, 02 Dec 2025 06:26:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46118243</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=46118243</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46118243</guid></item><item><title><![CDATA[New comment by toomim in "I may have found a way to spot U.S. at-sea strikes before they're announced"]]></title><description><![CDATA[
<p>I've spotted a partisan perspective.</p>
]]></description><pubDate>Thu, 06 Nov 2025 17:28:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45837717</link><dc:creator>toomim</dc:creator><comments>https://news.ycombinator.com/item?id=45837717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45837717</guid></item></channel></rss>