<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: mechanicum</title><link>https://news.ycombinator.com/user?id=mechanicum</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 27 Sep 2026 17:27:25 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mechanicum" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mechanicum in "The Board Game of the Alpha Nerds (2014)"]]></title><description><![CDATA[
<p>I do think though that the long playing time is an important factor in the emotional devastation.<p>Considering other venerable classics with similar dynamics, I’ve seen far more people be far saltier about betrayal at the end of a game of Twilight Imperium (even though there can only be one winner) than they do in something like Cosmic Encounter (where they could have played for an almost guaranteed joint win).<p>Much easier to laugh off a 20-30 minute game and go again, than watching an entire day of scheming and planning go up in smoke at the hands of a supposed ally.</p>
]]></description><pubDate>Fri, 25 Sep 2026 12:30:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49843706</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49843706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49843706</guid></item><item><title><![CDATA[New comment by mechanicum in "Homebrew 7.0.0"]]></title><description><![CDATA[
<p>I don’t think utility or popularity had anything to do with the decision. It’s just that they no longer support casks with unsigned binaries.<p>You could create a third-party tap to install wine via homebrew.</p>
]]></description><pubDate>Sun, 13 Sep 2026 16:16:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49685632</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49685632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49685632</guid></item><item><title><![CDATA[New comment by mechanicum in "Spark: Sparklines in your shell"]]></title><description><![CDATA[
<p>Braille characters would double the horizontal resolution but halve the already limited vertical resolution, which isn’t great for something that’s intended to be displayed inline with text.<p>I think Teletext might be even worse. IIRC, it only has three heights for its triangles.<p>If you’re interested in multiline plotting with braille characters, Ian Henry’s bytemap for Janet (<a href="https://github.com/ianthehenry/bytemap" rel="nofollow">https://github.com/ianthehenry/bytemap</a>) is worth a look (or my Clojure port: <a href="https://github.com/waddie/bytemap.clj" rel="nofollow">https://github.com/waddie/bytemap.clj</a>).</p>
]]></description><pubDate>Sun, 30 Aug 2026 14:48:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49499144</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49499144</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49499144</guid></item><item><title><![CDATA[New comment by mechanicum in "Kakoune Code Editor"]]></title><description><![CDATA[
<p>> I switched back to main after noticing that the plugin branch adds about 1s to startup time<p>Very curious what’s happening there. With empty helix.scm/init.scm, there is essentially zero measurable impact on startup for me.<p>Bytecode caching isn’t yet enabled (it is in progress), so I can see that kind of delay if I’m giving it tens of thousands of lines of code to evaluate on startup, but it took a lot of effort to get there.</p>
]]></description><pubDate>Wed, 19 Aug 2026 16:05:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49363401</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49363401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49363401</guid></item><item><title><![CDATA[New comment by mechanicum in "Kakoune Code Editor"]]></title><description><![CDATA[
<p>Helix is actively developed, they just haven’t cut a release since July last year. Most recent major feature to land in master was workspace trust.<p>The Scheme-based plugin system (<a href="https://github.com/mattwparas/helix/tree/steel-event-system" rel="nofollow">https://github.com/mattwparas/helix/tree/steel-event-system</a>) is almost ready to go. The plan is to merge it to master after the next release, whenever they get round to that.<p>It’s easy to build from source though, I’ve been using it daily for over a year, and there already are several dozen reasonably sophisticated plugins available. You can browse a list of mine here: <a href="https://github.com/stars/waddie/lists/helix-plugins-steel-libraries" rel="nofollow">https://github.com/stars/waddie/lists/helix-plugins-steel-li...</a></p>
]]></description><pubDate>Tue, 18 Aug 2026 23:05:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49354089</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49354089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49354089</guid></item><item><title><![CDATA[New comment by mechanicum in "How Claude marks AI-generated content"]]></title><description><![CDATA[
<p>Talking to the person who gave it to you, in my experience.<p>In my own testing, Pangram is excellent at detecting the default output styles of LLMs.<p>If you tell the LLM to change its output style, so it’s not full of “load-bearing spaced em dashes that aren’t X, they aren’t Y. they’re Z.” constructions (which humans are pretty good at detecting on their own), the false negative rate soars.</p>
]]></description><pubDate>Tue, 11 Aug 2026 12:10:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49256989</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49256989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49256989</guid></item><item><title><![CDATA[New comment by mechanicum in "Mea Culpa – Dark Hours"]]></title><description><![CDATA[
<p>I’ve seen the original repo, I mean Godier’s.<p>A name clash is the <i>least</i> damning evidence in my opinion. Last year my previous employer asked us for suggestions for naming an AI agent. Everyone produced pretty much the same list, because everyone just asked ChatGPT.<p>Except me. I <i>had also</i> asked ChatGPT, but I bothered to google the suggestions and found there were already like half a dozen AI agents for every suggestion.<p>(they ultimately launched what was by then the 7th or 8th AI-related product with essentially the same name)<p>Creativity in naming doesn’t seem to be their strongest suit.</p>
]]></description><pubDate>Sun, 09 Aug 2026 16:00:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=49232619</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49232619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49232619</guid></item><item><title><![CDATA[New comment by mechanicum in "Mea Culpa – Dark Hours"]]></title><description><![CDATA[
<p>I’d love to see the other repo, and the prompts that led to both.<p>Did Godier copy the other guy’s repo, name and all, and try to pass it off as his own work? That seems like the obvious conclusion, albeit brazen to the point of insanity.<p>Did <i>Claude</i> copy the repo, in response to a prompt? If Claude copies a Claude vibe-coded project, can any plagiarism really be said to have taken place?<p>Or is this just what Claude is statistically likely to spit out if you prompt it to build an astronomy app and leave it to it?</p>
]]></description><pubDate>Sun, 09 Aug 2026 14:23:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49231705</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49231705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49231705</guid></item><item><title><![CDATA[New comment by mechanicum in "Steel Bank Common Lisp version 2.6.7"]]></title><description><![CDATA[
<p>Probably this?<p>“Concurrency Oriented Programming in Termite Scheme”: <a href="http://scheme2006.cs.uchicago.edu/09-germain.pdf" rel="nofollow">http://scheme2006.cs.uchicago.edu/09-germain.pdf</a><p>Implemented in Gambit Scheme: <a href="https://github.com/FredericHamel/termite-scheme" rel="nofollow">https://github.com/FredericHamel/termite-scheme</a></p>
]]></description><pubDate>Tue, 28 Jul 2026 23:28:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49091396</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49091396</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49091396</guid></item><item><title><![CDATA[New comment by mechanicum in ""Please just use plain English, I don't understand what you're saying.""]]></title><description><![CDATA[
<p>I was curious so I asked Claude how it would do that: <a href="https://gist.github.com/waddie/b26166eec6cf675c044c09a95a754d7d" rel="nofollow">https://gist.github.com/waddie/b26166eec6cf675c044c09a95a754...</a><p>I thought this bit was interesting:<p>> TE has no register for hedging, ownership of an opinion, or acknowledging that a reasonable person would disagree. Modality is roughly can / must / do not. […] Where a thought can't be said in STE without becoming a lie, I'd mark it and say it plainly rather than mangle it. Confidence and disagreement are the two things I'd insist on smuggling through.</p>
]]></description><pubDate>Mon, 27 Jul 2026 14:54:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49070584</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49070584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49070584</guid></item><item><title><![CDATA[New comment by mechanicum in "JEP 540: Simple JSON API (Now in Incubator)"]]></title><description><![CDATA[
<p>You almost can, with Jackson:<p><pre><code>  jshell> new ObjectMapper().valueToTree(Map.of("providers", List.of("SUN", "SunRsaSign", "SunEC")));
  $4 ==> {"providers":["SUN","SunRsaSign","SunEC"]}
</code></pre>
(or was that the joke?)</p>
]]></description><pubDate>Thu, 23 Jul 2026 17:39:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=49025364</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49025364</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49025364</guid></item><item><title><![CDATA[New comment by mechanicum in "Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot"]]></title><description><![CDATA[
<p>It looks like that was added in Java SE 6, and doesn’t materially change the underlying problem. Have there been more recent developments?</p>
]]></description><pubDate>Thu, 23 Jul 2026 14:22:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=49022108</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49022108</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49022108</guid></item><item><title><![CDATA[New comment by mechanicum in "Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot"]]></title><description><![CDATA[
<p>My understanding was the biggest issue has always been that javac is a poor foundation for any kind of live tooling like LSPs?<p>It’s less “make me a Java LSP” than “rewrite javac around incremental compilation and exposing a semantic DB”. Which sounds like a much harder problem.</p>
]]></description><pubDate>Thu, 23 Jul 2026 13:05:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49020945</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=49020945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49020945</guid></item><item><title><![CDATA[New comment by mechanicum in "A road to Lisp: Why Lisp"]]></title><description><![CDATA[
<p>> I've found LLMs to be bad at balancing parenthesis.<p>I think that was true last year. In my experience, it’s no longer the case with Claude Code or Codex.</p>
]]></description><pubDate>Thu, 09 Jul 2026 21:29:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48852606</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=48852606</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48852606</guid></item><item><title><![CDATA[New comment by mechanicum in "Biff.core: system composition for Clojure web apps"]]></title><description><![CDATA[
<p>Last year, I thought it was awful. Even Opus would reliably unbalance parentheses on practically every edit and then enter a doom spiral of making things worse as it tried to figure out the right place to put a `)`.<p>Recently, I’ve been quite impressed, at least with Claude. At some point they figured out the parens issue, and the code is largely solid and idiomatic. I’ve mostly used it with Polylith apps, so the context for any given change is naturally well-defined. Usual issues with failing to reuse existing functions or make sound decisions about architecture, but no more so than I’ve seen with TypeScript or Rust.<p>I think there are a few points in its favour: it’s a very concise language, the documentation is terse but precise and comprehensive, and while there’s obviously nowhere near as much Clojure out there as there is JavaScript or Python, there is a lot. As the Clojure demographic skews toward experienced, senior programmers, I’d guess the quality of that corpus is probably well above average.<p>Java stack trace errors might even be an advantage now.</p>
]]></description><pubDate>Tue, 09 Jun 2026 17:00:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48463849</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=48463849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48463849</guid></item><item><title><![CDATA[New comment by mechanicum in "Learn PHP in 2026 (Yes, Really)"]]></title><description><![CDATA[
<p>I can believe it’s much improved and I wouldn’t look down on anyone for using it.<p>But it’s still never going to be a language I <i>like</i>, and I’m yet to encounter any of these modern codebases in the wild. It’s invariably a crusty old relic, much closer to the PHP of 2006 than the PHP of 2026.</p>
]]></description><pubDate>Mon, 08 Jun 2026 02:19:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48440683</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=48440683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48440683</guid></item><item><title><![CDATA[New comment by mechanicum in "My thoughts after using Clojure for about a month"]]></title><description><![CDATA[
<p>> Eh? That's completely lifted from CL.<p>Clojure’s abstraction is a bit more far-reaching than Common Lisp’s SEQUENCE, implemented as interfaces rather than types.<p>A Clojure sequence is anything “seqable” (either implements the Seqable interface, or special case handling for host platform collections), not just lists and vectors. Hash maps, sets, Java Iterables, etc. are all seqable and work with the same standard collection functions.<p>e.g. you can `(map (fn [[k v]] …) {:a 1 :b 2})`, rather than needing a separate MAPHASH function.</p>
]]></description><pubDate>Thu, 04 Jun 2026 16:07:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48400651</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=48400651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48400651</guid></item><item><title><![CDATA[New comment by mechanicum in "Elixir v1.20: Now a gradually typed language"]]></title><description><![CDATA[
<p>Short answer: “a type system centered on the use of set-theoretic types (unions, intersections, negations) that satisfy the commutativity and distributivity properties of the corresponding set-theoretic operations”.<p>Long answer, well, there are blog posts[0], the Design Principles of the Elixir Type System paper[1] and related presentations[2, 3, 4] that talk about it at length. Giuseppe Castagna’s site has many more related papers: <a href="https://www.irif.fr/~gc/topics.en.html" rel="nofollow">https://www.irif.fr/~gc/topics.en.html</a><p>[0]: <a href="https://elixir-lang.org/blog/2022/10/05/my-future-with-elixir-set-theoretic-types/" rel="nofollow">https://elixir-lang.org/blog/2022/10/05/my-future-with-elixi...</a><p>[1]: <a href="https://www.irif.fr/~gc/papers/elixir-type-design.pdf" rel="nofollow">https://www.irif.fr/~gc/papers/elixir-type-design.pdf</a><p>[2]: <a href="https://www.youtube.com/watch?v=gJJH7a2J9O8" rel="nofollow">https://www.youtube.com/watch?v=gJJH7a2J9O8</a><p>[3]: <a href="https://www.youtube.com/watch?v=VYmo867YF6g" rel="nofollow">https://www.youtube.com/watch?v=VYmo867YF6g</a><p>[4]: <a href="https://www.youtube.com/watch?v=giYbq4HmfGA" rel="nofollow">https://www.youtube.com/watch?v=giYbq4HmfGA</a></p>
]]></description><pubDate>Thu, 04 Jun 2026 13:19:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48398251</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=48398251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48398251</guid></item><item><title><![CDATA[New comment by mechanicum in "Elixir v1.20: Now a gradually typed language"]]></title><description><![CDATA[
<p>FYI, that’s currently available in a Humble Bundle with 16 other PragProg functional programming books: <a href="https://www.humblebundle.com/books/ultimate-functional-programming-pragmatic-programmers-books" rel="nofollow">https://www.humblebundle.com/books/ultimate-functional-progr...</a></p>
]]></description><pubDate>Wed, 03 Jun 2026 20:33:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48389605</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=48389605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48389605</guid></item><item><title><![CDATA[New comment by mechanicum in "The vi family"]]></title><description><![CDATA[
<p>I think describing Kakoune/Helix as vi-inspired with “slightly different keybindings” is rather missing the point.<p>The most important difference is that they invert the editing model from verb-noun to noun-verb. Meaning you always see exactly what you’re going to be operating on before you do it.<p>The second most important difference is that they were designed from the ground up around multi-selection editing as a primitive, rather than a plugin or late addition.<p>That model is typically less efficient purely in terms of keystrokes, for some operations significantly so, but it’s somewhat mitigated if having the state on-screen rather than in your head means you undo less often.<p>I wouldn’t suggest either approach is superior. I suspect most people (“most people” in the subset of people who jibe with modal editing to begin with, anyway) will find that one just fits their brain better than the other.<p>Personally, even having used Vim almost daily since finding it on a Fish Disk sometime in the mid-90s, I still turned out to be in the kak/hx group. I can still use vi quite comfortably when I need to, but Helix removed a bit of friction I’d barely been aware of.<p>There’s a steady stream of NeoVim exiles to Helix forums, I think who mostly found its Lua-based config too complex/brittle, asking why the devs don’t add settings to make it work like Vim, include a *Vim keymap as standard, etc.<p>It’s kind of wild to me that people would choose their editor based on how minimalist its config/how batteries-included it is, rather than its fundamental editing paradigm.</p>
]]></description><pubDate>Wed, 13 May 2026 07:40:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48118953</link><dc:creator>mechanicum</dc:creator><comments>https://news.ycombinator.com/item?id=48118953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48118953</guid></item></channel></rss>