<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: noelwelsh</title><link>https://news.ycombinator.com/user?id=noelwelsh</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 23 Jun 2026 23:49:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=noelwelsh" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by noelwelsh in "Show HN: Oak – Git alternative designed for agents"]]></title><description><![CDATA[
<p>A few comments:<p>* The core idea sounds interesting. Make it the first paragraph, not paragraph seven.<p>* Spend more words describing what makes Oak different.<p>* "I built a version control system in my free-time called Jam". You probably didn't name your free time. "I built a version control system, called Jam, in my free time."</p>
]]></description><pubDate>Mon, 22 Jun 2026 16:16:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48632216</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48632216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48632216</guid></item><item><title><![CDATA[New comment by noelwelsh in "Ask HN: What are you working on? (June 2026)"]]></title><description><![CDATA[
<p>Still working on my book, which is about how to think about code, and how to turn these models into code:<p><a href="https://functionalprogrammingstrategies.com/" rel="nofollow">https://functionalprogrammingstrategies.com/</a><p>I'm currently writing up what is the last major chapter, which introduces capability-passing as an architecture, and builds a simple TUI framework using it. Fun stuff!<p>I'm a few months away from launching the book, but the early feedback is very positive. I find writing enjoyable but also, damn, do I need to get this book finished. :-)</p>
]]></description><pubDate>Mon, 15 Jun 2026 08:56:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48538500</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48538500</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48538500</guid></item><item><title><![CDATA[New comment by noelwelsh in "Even more batteries included with Emacs"]]></title><description><![CDATA[
<p>The biggest problem Emacs has will not be solved by blog posts like this. For most people the editor is a means to an end. They are invested in their end goal, not in hunting down blog posts telling them how to make better use of their tools. If Emacs wants wider adoption is needs a better out-of-the-box experience, which is something that distros like Doom Emacs and Spacemacs offer. That's the only way to make a dent: when people boot it up it has to have the good stuff right in their face. This also means ditching the "vanilla Emacs only" snobbery.<p>That said, I'm the kind of person to invest time in my editor and I appreciate this post.</p>
]]></description><pubDate>Mon, 15 Jun 2026 07:53:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48537926</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48537926</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48537926</guid></item><item><title><![CDATA[New comment by noelwelsh in "Even more batteries included with Emacs"]]></title><description><![CDATA[
<p>I've used Doom Emacs for years and it rarely breaks. Sometimes things get out of sync, and I delete the git repo and clone it again. That happens once every few years.<p>People holding your attitude is one thing that keeps people away from Emacs. Very few people want to get into the weeds of customizing their editor. They want to do whatever it is they are interested in and the editor is tool to get it done. Doom Emacs, and other approachable "distributions" are the way to make the power of Emacs accessible.</p>
]]></description><pubDate>Mon, 15 Jun 2026 07:50:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48537909</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48537909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48537909</guid></item><item><title><![CDATA[New comment by noelwelsh in "Automating myself out of development"]]></title><description><![CDATA[
<p>I wish people would describe in more detail the tasks they use LLMs to code. My experience is that simple components in an existing architecture are fine, but anything requiring architectural considerations quickly becomes a mess. On my projects (e.g. a ui framework), running multiple agents in parallel would just increase the speed at which it can stuff up the project.</p>
]]></description><pubDate>Sat, 13 Jun 2026 06:37:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48514092</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48514092</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48514092</guid></item><item><title><![CDATA[New comment by noelwelsh in "Ask HN: Degree apprenticeships in engineering, do they exist?"]]></title><description><![CDATA[
<p>I also know of <a href="https://www.aston.ac.uk/degree-apprenticeship-programmes" rel="nofollow">https://www.aston.ac.uk/degree-apprenticeship-programmes</a><p>But really this is something you should search up yourself to follow your particular interests + constraints.<p>I've worked with people from Ada. Some were slackers, but the people I worked with directly were great. They were still studying, so not very experienced but keen to learn and improve. Very applied / practical focus, which has advantages and drawbacks.</p>
]]></description><pubDate>Thu, 11 Jun 2026 17:55:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48493951</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48493951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48493951</guid></item><item><title><![CDATA[New comment by noelwelsh in "Ask HN: Degree apprenticeships in engineering, do they exist?"]]></title><description><![CDATA[
<p>What kind of engineering? For software engineering, in the UK this exists: <a href="https://www.ada.ac.uk/apprentices/" rel="nofollow">https://www.ada.ac.uk/apprentices/</a><p>I think there are others. For other kinds of engineering I don't know, but I'm sure the search engines do.</p>
]]></description><pubDate>Thu, 11 Jun 2026 17:11:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48493168</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48493168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48493168</guid></item><item><title><![CDATA[Completion is a Substrate, not a UI]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.chiply.dev/post-icr-primer">https://www.chiply.dev/post-icr-primer</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48493125">https://news.ycombinator.com/item?id=48493125</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 11 Jun 2026 17:09:05 +0000</pubDate><link>https://www.chiply.dev/post-icr-primer</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48493125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48493125</guid></item><item><title><![CDATA[New comment by noelwelsh in "SVG-Line: Better Status Bars for Emacs – Charlie Holland's Blog"]]></title><description><![CDATA[
<p>I love this. (I probably won't use it as these days I'm a Doom Emacs user and don't want to monkey around with my setup too much, but the concept is great.)<p>The guy's whole website is also worth clicking around. A huge amount of effort.</p>
]]></description><pubDate>Thu, 11 Jun 2026 16:26:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48492505</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48492505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48492505</guid></item><item><title><![CDATA[New comment by noelwelsh in "Who's the smartest corvid?"]]></title><description><![CDATA[
<p>Equipping cats and dogs with talking buttons (see, for example, <a href="https://www.youtube.com/playlist?list=PLBh-BXgsO9IjhN-thTLvmux_EqHTbbg0t" rel="nofollow">https://www.youtube.com/playlist?list=PLBh-BXgsO9IjhN-thTLvm...</a> or <a href="https://www.youtube.com/@floundercat" rel="nofollow">https://www.youtube.com/@floundercat</a>) has shown me there is a lot more going in their little heads than I suspected. There are examples of cats describing their dreams, or worrying about what will happen in the future, or theorizing about the nature of the world (in a very naive way).<p>Birds have higher neural density than mammals (<a href="https://www.pnas.org/doi/10.1073/pnas.1517131113" rel="nofollow">https://www.pnas.org/doi/10.1073/pnas.1517131113</a>) so can pack a lot into their tiny heads. I do wonder what they'd have to say, if given the chance.</p>
]]></description><pubDate>Wed, 10 Jun 2026 19:05:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48481110</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48481110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48481110</guid></item><item><title><![CDATA[New comment by noelwelsh in "Rayforce"]]></title><description><![CDATA[
<p>When I read up, it sounded like the same idea as work-stealing to me. Not surprising that different fields come up with the same idea under different terminology.</p>
]]></description><pubDate>Tue, 09 Jun 2026 20:30:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48467274</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48467274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48467274</guid></item><item><title><![CDATA[New comment by noelwelsh in "Rayforce"]]></title><description><![CDATA[
<p>I thought "morsel-driven" was AI slop, but it turns out to be in common usage in the HPC world. So I learned something from this post!</p>
]]></description><pubDate>Tue, 09 Jun 2026 19:09:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48466057</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48466057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48466057</guid></item><item><title><![CDATA[New comment by noelwelsh in "Zig by Example"]]></title><description><![CDATA[
<p>Very brief. I'm not sure what this adds over reading the language documentation (which itself is not great). As it's entirely organized by language features it doesn't really talk about any larger scale design decisions, which is where I think language proficiency is really found.</p>
]]></description><pubDate>Mon, 08 Jun 2026 13:50:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48445323</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48445323</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48445323</guid></item><item><title><![CDATA[New comment by noelwelsh in "There's no escaping it: an exploration of ANSI codes"]]></title><description><![CDATA[
<p>This would be far better without the slop and just the widget with a little bit of explanatory text.</p>
]]></description><pubDate>Fri, 05 Jun 2026 09:13:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48409972</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48409972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48409972</guid></item><item><title><![CDATA[New comment by noelwelsh in "Gooey: A GPU-accelerated UI framework for Zig"]]></title><description><![CDATA[
<p>I also have one [1]. It's a good name :-)<p>[1]: <a href="https://github.com/creativescala/gooey" rel="nofollow">https://github.com/creativescala/gooey</a></p>
]]></description><pubDate>Wed, 03 Jun 2026 20:41:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48389714</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48389714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48389714</guid></item><item><title><![CDATA[New comment by noelwelsh in "Gooey: A GPU-accelerated UI framework for Zig"]]></title><description><![CDATA[
<p>Interesting project, but needs documentation. In particular, what's the model it uses? I.e. how are events, state, etc. handled? Normally I'd just work it out from the code examples, but the example in the README is over 200 lines which is too long for me.<p>(Don't tell me here. Make your docs better, so everyone benefits!)</p>
]]></description><pubDate>Wed, 03 Jun 2026 18:28:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48387813</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48387813</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48387813</guid></item><item><title><![CDATA[New comment by noelwelsh in "Every Byte Matters"]]></title><description><![CDATA[
<p>The JVM is currently pretty bad for memory allocation. Every object (i.e. not a primitive) has a header that IIRC is 12 bytes. But there is good news in JVM land: this will be reduced to 8 bytes in the next JVM release, and Project Valhalla will give the tools to do away with headers entirely in some cases. Project Valhalla also has tools to manage off-heap memory, which is important in many cases.<p>The JVM is an odd place where it requires too much heap to compete with the AOT compiled languages, but its startup time is too slow compared to interpreted languages. I think these enhancements are essential to keep the platform relevant.</p>
]]></description><pubDate>Wed, 03 Jun 2026 11:46:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48382739</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48382739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48382739</guid></item><item><title><![CDATA[New comment by noelwelsh in "Movwin: My (Unpublished) TUI Framework"]]></title><description><![CDATA[
<p>TUIs in Prolog sounds fun.<p>The great thing about TUIs is that a simple text component is a universal widget. If the user can display text and capture events they can implement any interface components they want in terms of that.<p>That said, whatever the framework provides pushes users in a particular direction. The core of the things I'm thinking of (some links below) is providing easily accessible context for the user right at the point where they are working. This can be completions at the cursor, or a quick key to pop up a command palette. Fuzzy search is standard.<p>Here are some examples:<p>* Corfu: <a href="https://github.com/minad/corfu" rel="nofollow">https://github.com/minad/corfu</a><p>* Vertico: <a href="https://github.com/minad/vertico" rel="nofollow">https://github.com/minad/vertico</a><p>* which-key: <a href="https://github.com/justbur/emacs-which-key" rel="nofollow">https://github.com/justbur/emacs-which-key</a><p>* LazyVim: <a href="https://www.lazyvim.org/" rel="nofollow">https://www.lazyvim.org/</a><p>I've included links that have screenshots showing how they work. The list is biased to Emacs, because I'm an Emacs user (Doom Emacs in particular) and so more familiar with that ecosystem.<p>Hope that helps!</p>
]]></description><pubDate>Tue, 02 Jun 2026 09:11:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48367759</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48367759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48367759</guid></item><item><title><![CDATA[New comment by noelwelsh in "Movwin: My (Unpublished) TUI Framework"]]></title><description><![CDATA[
<p>Coincidentally I'm working on my own TUI framework for my book [1], so it's always interesting to see how other people approach it. I wouldn't, for example, use windows and drop-downs in the terminal; I think there are better approaches. Some of the most interesting text-focused UI experiments are taking place in Emacs and Vim, so that's where I'm taking inspiration from.<p>My framework is demonstrating the capability-passing approach to effects, which is the underlying architecture in most modern JS frameworks, Jetpack Compose, and "immediate mode" toolkits (though the authors are not necessarily aware of capability-passing as a concept). If you've read recent posts on "algebraic effects" or "effect handlers" it's in the same space. It makes for a quite pleasant user experience. I'm enjoying the work uniting theory and practice; one of the benefits of writing the book is I can justify these excursions.<p>[1]: <a href="https://functionalprogrammingstrategies.com/" rel="nofollow">https://functionalprogrammingstrategies.com/</a></p>
]]></description><pubDate>Mon, 01 Jun 2026 14:55:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48357627</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48357627</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48357627</guid></item><item><title><![CDATA[New comment by noelwelsh in "Websites have a new way to spy on visitors: analyzing their SSD activity"]]></title><description><![CDATA[
<p>It's also the technology that will allow software to run without a continuous connection to the server. If you want to break out of a world where companies own your data it's the tech that is needed.</p>
]]></description><pubDate>Mon, 01 Jun 2026 12:44:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48356099</link><dc:creator>noelwelsh</dc:creator><comments>https://news.ycombinator.com/item?id=48356099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48356099</guid></item></channel></rss>