<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: rgoulter</title><link>https://news.ycombinator.com/user?id=rgoulter</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 14 Nov 2026 14:09:36 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rgoulter" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rgoulter in "Emacs in the Age of Magic"]]></title><description><![CDATA[
<p>Yeah, I think framing in terms of 'effort' or 'flow' might make more sense than 'speed' here.<p>If you expect that you can complete some task just from the keyboard, then the idea of having to use the mouse interrupts what you're doing.<p>The original post gives "stage and commit in git" as an example. Magit is much nicer than CLI, since you can quickly invoke the actions you want; it's less effort than typing out the full command on the CLI. -- With LLM coding agents, getting an LLM agent to make a commit is slower than doing it yourself in magit (if all you're going to do is stage and commit), but it's much less effort.</p>
]]></description><pubDate>Thu, 12 Nov 2026 02:10:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=50462168</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50462168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50462168</guid></item><item><title><![CDATA[New comment by rgoulter in "Clj.rs – a Clojure dialect implemented in Rust"]]></title><description><![CDATA[
<p>> If DSLs are the best way to make a code base readable, you can now have your agent create one with whatever syntax you like!<p>I think these things are going to be true:<p>- For a specific well-defined coding task, an LLM coding agent will be able to execute it quicker than humans, regardless of how it does it.<p>- Codebases which are well organised will be easier for an LLM to manipulate than codebases which are obscure and surprising.<p>I mean.. I think it's plausible that something like "lisp makes DSLs easy, DSLs are a great way to arrange code" is especially true with LLMs; but I'd also think you'd need to know when to use (& when to not use) DSLs to get effective results from this.<p>Whereas, say, you could have the LLM come up with a DSL in a way which is high friction for the LLM to do it ... but, you'd get the result a bit slower, & maybe worse.</p>
]]></description><pubDate>Sun, 08 Nov 2026 14:00:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=50413454</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50413454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50413454</guid></item><item><title><![CDATA[New comment by rgoulter in "JetBrains Thinkrail"]]></title><description><![CDATA[
<p>> overly verbose and flowery AI slop prose<p>This is a useful criticism.<p>Left to themselves, LLMs prefer writing that's really atrocious. e.g. The writing will try and make everything sound profound.<p>The other problem I've noticed is e.g. LLMs will write in stuff that's inappropriate for the content of the text. e.g. Writing out stuff that looks like a chat reply, in commentary or descriptions or whatever.<p>I'd distinguish, though, between "sloppy writing" & "LLM generated writing". I'd agree if you didn't put in the effort to check the writing is of high quality, then perhaps the other parts are also not high quality.<p>I don't think <i>just</i> because "AI" wrote it it's bad. I wouldn't prefer e.g. sloppy human writing over well-crafted LLM-written text.<p>This readme the main thing which sticks out is the "what you get" bullet points are rather dense/verbose for bullet points. But aside from that it seems fine.</p>
]]></description><pubDate>Mon, 26 Oct 2026 01:15:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=50237830</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50237830</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50237830</guid></item><item><title><![CDATA[New comment by rgoulter in "NixOS is making me less afraid"]]></title><description><![CDATA[
<p>It's a similar trade-off to using Terraform to manage a resource, compared to just modifying some cloud resource directly.<p>You pay a higher upfront cost, but you end up with declarative code which has advantages for maintenance.<p>With NixOS, rollbacks from changes to system state are trivial; and the whole system is configured from a single starting point, which makes it easy to track down why things are a certain way.<p>For a personal workstation, it's not necessarily a practical trade-off.</p>
]]></description><pubDate>Wed, 21 Oct 2026 01:16:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=50174892</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50174892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50174892</guid></item><item><title><![CDATA[New comment by rgoulter in "NixOS is making me less afraid"]]></title><description><![CDATA[
<p>> Just remember that NixOS is only for personal and hobby use cases, as it is maintained by a large community of people that can ship any code they want without review, anchored on the honor system.<p>This is somewhat inaccurate, and loosely written.<p>It would be more meaningful to talk about the nixpkgs repository. If you wanted to, you could use Nix with your own vetted nixpkgs codebase.<p>Whether there are any contributors who can merge without review I'm not sure, but the typical path for contributions is to go through review.</p>
]]></description><pubDate>Wed, 21 Oct 2026 01:13:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=50174876</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50174876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50174876</guid></item><item><title><![CDATA[New comment by rgoulter in "Ask HN: How to deal with shipping AI-written code you don't understand?"]]></title><description><![CDATA[
<p>Depends on the scale and confidence you want.<p>In systems where I've taken complex inputs and transformed it into complex outputs, I'd make it as easy to bring each particular pass under test, have snapshots that the same transformations resulted in the same outputs (insofar as I did want that consistency).<p>I'd think with a compiler, though, it can still be practical to describe the input you depend on as a value.<p>In distributed systems, your service might rely on another service which might be broken, might return different values than you expect, might return slower than you expect, etc. and so testing the parts of your system which depend on other services can be tricky.<p>Point is, you can arrange a lot of your code into "it's easy for me to ensure this part works", and you can see wins from that, even if as a whole the full system can be difficult to bring under test.</p>
]]></description><pubDate>Tue, 20 Oct 2026 13:30:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=50166123</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50166123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50166123</guid></item><item><title><![CDATA[New comment by rgoulter in "I no longer care to work on any Ruby gems so I've archived all my repositories"]]></title><description><![CDATA[
<p>> The point isn't some people not understanding whatever stuff with limited effects, it's no people understanding anything important.<p>Using an LLM doesn't mean "I must write this code in a way that I cannot understand it". I'd encourage using the LLM to write code in a way that you can understand.<p>> When corporations own it exclusively, they can do whatever they want with it.<p>This is an argument in favour of open-weight models.</p>
]]></description><pubDate>Tue, 20 Oct 2026 01:48:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=50160384</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50160384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50160384</guid></item><item><title><![CDATA[New comment by rgoulter in "I no longer care to work on any Ruby gems so I've archived all my repositories"]]></title><description><![CDATA[
<p>> Well, no, for a lot of us, there really is no other side. Slop farming is not software engineering and it never will be; scribbling some Markdown that begs agents to omit bugs is not equivalent to using high-level languages with thoughtful abstractions to directly define program behavior.<p>Would you look at a piece of code elegantly using high-level abstractions to model some problem written by a human and go "see, look, code is beautiful"... and then look at the exact same code written by an LLM and say "this is slop"?<p>> Moreover, it's downright offensive for a purported expert to defer their expertise to a SAAS black box.<p>With programming, it's just the opposite, though.<p>Programmers work with abstractions. Understanding the full system down to how atoms work is too much to think of when e.g. writing an API handler. So instead you work with modules and their interfaces.<p>Pre-LLM, if you need some task done, you wouldn't write it all out yourself if there was some external package which did the work for you.<p>Of course, when using an LLM, you don't need to surrender your ability to think about the problem and solution.</p>
]]></description><pubDate>Tue, 20 Oct 2026 01:40:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=50160325</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50160325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50160325</guid></item><item><title><![CDATA[New comment by rgoulter in "Ask HN: How to deal with shipping AI-written code you don't understand?"]]></title><description><![CDATA[
<p>You want tests to be obvious "at a glance". And then some of the tests should at least indicate it's covering (for the most coverage of the system it reasonably can) the cases we care about.<p>The name of the test should indicate what it's doing.<p>For unit tests, these should check only one thing, and the test can be structured into "assemble, act, assert" style tests.<p>On the implementation side: code which touches state is tricky. -- So, minimize the amount of code which touches state (or rather, shift as much code as you can to stateless code, which is easier to bring under test).</p>
]]></description><pubDate>Tue, 20 Oct 2026 01:16:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=50160160</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50160160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50160160</guid></item><item><title><![CDATA[New comment by rgoulter in "A skeptic's first contact with Kubernetes (2024)"]]></title><description><![CDATA[
<p>I think this is worth elaborating on a bit.<p>I think any of the "JSON + functions" configuration languages mentioned in this thread (there are many) would be just as good.<p>Writing configurations in a modular way is really neat to be able to do. Rather than having to manage a single YAML file with the resource manifest, you can construct the resource by combining different parts of it.<p>e.g. rather than { image = "backend", tags = ["backend"] }, { image = "cache", tags = ["backend"] }, you could factor out the `tags`. -- Doing this from a "JSON + functions" language makes more sense than Helm's approach, from my experience.<p>The module system that NixOS uses builds an abstraction over this: each module declares like { options, config, output }. So the module author defines the option & output, and the module users declare the config, then the system knows how to render the configuration.</p>
]]></description><pubDate>Sun, 18 Oct 2026 03:57:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=50137793</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50137793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50137793</guid></item><item><title><![CDATA[New comment by rgoulter in "Food processing influences metabolism and brain activity"]]></title><description><![CDATA[
<p>Zero-calorie drinks like coke zero provide a no-calorie alternative to the full sugar drinks.<p>If you habitually drink 3 cans of coke a day, and want to lose weight, then switching to coke zero is practically the same benefit, but consumes 430kcal less. Since coke zero is like a zero sugar replacement for typical coke, it makes sense to use "compared to coke" as the baseline.<p>That's what I meant by "clearly .. nutritionally beneficial". If you'd prefer a different term, then sure.<p>(I think the proposed alternative of "just eat whole foods and water" is surely going to be even more beneficial, but also requires a change in habits. If "change habits" was easy, I don't think there'd be any discussion around "Ultra Processed Food")</p>
]]></description><pubDate>Wed, 14 Oct 2026 02:00:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=50081476</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50081476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50081476</guid></item><item><title><![CDATA[New comment by rgoulter in "Nix wrote half of my debugger"]]></title><description><![CDATA[
<p>Some parts could be smoother.<p>Here's a rough sketch: the Nix expression language is really configuration oriented; it's a "JSON + functions" kind of language. You write Nix to describe how a package is built; the ideal case being "./configure && make && make install" as such. The resulting packages are put in a Nix store. (Almost) every dependency is put in the Nix store; so your program links against libraries in the Nix store, or runs other sources from the Nix store.<p>- Nix is "just" declarations of those instructions which output into directories and everything gets symlinked. But, it can take time to build an intuition for how to do things.<p>- There's some fundamental friction where most Linux systems assume shared libraries are available globally in a typical place on Linux. -- e.g. Python's "wheels" come with precompiled dependencies which assume shared libraries are available in a global place. Nix doesn't provide that.<p>- "Why not just provide globals?" For one, by having everything not be global, you can have multiple versions available at the same time.<p>- Since Nix is quite 'strict' by default about everything coming from the Nix store, it practically means 'paying' for all the difficulties up front. (There's a trade-off where you could write packages in a less strict manner; this is great for iterating, but bad for maintainability).<p>- Since Nix is strict about symlinking all dependencies, often if upstream software does things in a "quick and dirty manner" (e.g. hardcodes "/bin/bash", hardcodes paths for binaries to run, etc.) then it can be difficult to describe how to package that software with Nix. -- Fundamentally, you're taking something which works loosely, and bringing it into a stricter system.<p>- Upthread the comment mentions "flakes". Flakes provide both dependency management (i.e. being able to declare other Nix codebases you'll use), as well as a standard entrypoint into a Nix codebase. -- Without flakes, the UX is a bit cumbersome..<p>- The majority of packages which people use come from "Nixpkgs" package repository. This has a lot of organic complexity to it, coming from multiple contributors, with competing ideas for achieving results.<p>- With Nix being a "json + functions" language.. not sure I'm articulating this right, but it means that practically a large codebase is built as a single 'expression' (i.e. <i>soft</i> boundaries between bits of code).. and the tooling for  troubleshooting problems is ... not very good.<p>- The Nix expression language is functional and lazy. This can be rough for people who don't have this background.<p>- Since Nix <i>adds</i> a layer of abstraction, it means you might need to have both a broad and a deep understanding to get something working (e.g. understanding how to drive Python or Linux in non-conventional ways). -- A kind of "do everything properly" which more conventional systems don't require.<p>So ... some aspects could be easier. But I think there's a fundamental friction to it.</p>
]]></description><pubDate>Tue, 13 Oct 2026 01:59:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=50065639</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50065639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50065639</guid></item><item><title><![CDATA[New comment by rgoulter in "Passkeys are a trap"]]></title><description><![CDATA[
<p>A major concern raised in the article is along the lines of "passkeys have technical mechanisms that may disallow use in future".<p>That ... doesn't seem like a concern unique to passkeys, though?<p>It seems more like a policy rather than a technical aspect.<p>e.g. A website might decide they will only provide services if you upload a photo of government ID, or pass a verification where you show your face.<p>If it's software running on someone else's computer, you don't get full control regardless.</p>
]]></description><pubDate>Mon, 12 Oct 2026 01:42:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=50050280</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50050280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50050280</guid></item><item><title><![CDATA[New comment by rgoulter in "Food processing influences metabolism and brain activity"]]></title><description><![CDATA[
<p>It's kinda a question of scope.<p>If your concern is about your own health as an individual? I want to lose weight now? I think it's useful to say "I have agency, I can lose weight". If you have the agency to lose weight, it makes sense you can take on the responsibility for having gained weight.<p>"Why did society in general get fatter?" is a different question. And if your main concern is "how can I lose fat?" it's not directly interesting.</p>
]]></description><pubDate>Mon, 12 Oct 2026 01:16:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=50050088</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50050088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50050088</guid></item><item><title><![CDATA[New comment by rgoulter in "Nix wrote half of my debugger"]]></title><description><![CDATA[
<p>Some tools are good even though they have a high barrier to entry.<p>That people use resources to help them use tools they don't understand too well is hardly new. e.g. Classically you might copy-paste from StackOverflow after finding an error, or some people watch YouTube videos about it.<p>I'd say LLMs make it easier to get to the point where you can understand it, though. So it's an accessibility increase.<p>> It remains so, only now you want people to blindly trust LLM output for this system.<p>This isn't related to Nix, though. You could ask an LLM to create the most mainstream Python code ever and blindly trusting it would make as much sense.<p>For system management, Nix has the advantage of being declarative. e.g. For NixOS you get to read the code and review what it's doing.</p>
]]></description><pubDate>Mon, 12 Oct 2026 01:11:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=50050056</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50050056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50050056</guid></item><item><title><![CDATA[New comment by rgoulter in "Nix wrote half of my debugger"]]></title><description><![CDATA[
<p>It's not so strange.<p>Pre-LLM: Nix is "high effort, moderate reward". The cost is: you have to learn a tool which does things apparently completely different to how other tools do things.. you have to put up with a lot of friction, pay all the pain upfront, and the benefit is that may be later it's easier to get the package again.<p>It's just not a practical trade-off for most developers.<p>With LLMs, the cost-benefit trade-off changes.<p>You can use this cloud provider's LLM to get you a good result. You get the benefits, and the cost is 'just' "ask the LLM to do it".<p>Similarly: it's easier to assess whether produced code does the right thing, than to come up with that code from scratch.<p>Without LLMs? The inaccessibility also comes from being a niche tool. Not many use it, so not many software projects accommodate it or consider it, and you might have to come up with workarounds yourself.</p>
]]></description><pubDate>Sun, 11 Oct 2026 11:45:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=50042204</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50042204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50042204</guid></item><item><title><![CDATA[New comment by rgoulter in "Food processing influences metabolism and brain activity"]]></title><description><![CDATA[
<p>I'd say "calorie dense food that's highly palatable makes it easy to consume more calories than you expend, and that makes you fat". -- I mean, that's a mechanical model explaining how you get fat.<p>e.g. obviously not practical for everyone but Taub's "Twinkie Study" showed fat 27 lbs of fat loss even from a diet of decidedly calorie-dense food like twinkies and doritos. <a href="https://www.psychologytoday.com/us/blog/comfort-cravings/201011/the-twinkie-diet" rel="nofollow">https://www.psychologytoday.com/us/blog/comfort-cravings/201...</a><p>I think that UPF <i>mostly</i> aligns with that in that the food that's "UPF" is generally calorie dense, highly palatable, low satiation.<p>But...<p>> He would probably also say that there's nothing inherently bad about diet coke, but there is something bad about getting all your food from people trying to make money instead of from people who love you.<p>At this point, it seems more a discussion of morals and social values rather than a scientific "how to lose fat".</p>
]]></description><pubDate>Sun, 11 Oct 2026 09:38:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=50041363</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50041363</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50041363</guid></item><item><title><![CDATA[New comment by rgoulter in "Food processing influences metabolism and brain activity"]]></title><description><![CDATA[
<p>> and are also associated with cancer.<p>Last time I looked into this, the strongest research showed "we looked and couldn't find any evidence it's not associated with cancer".<p>That is, to hear "artificial sweeteners = cancer, I'm better off with the sugary drinks" was the wrong conclusion to take.</p>
]]></description><pubDate>Sun, 11 Oct 2026 09:28:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=50041299</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50041299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50041299</guid></item><item><title><![CDATA[New comment by rgoulter in "Food processing influences metabolism and brain activity"]]></title><description><![CDATA[
<p>> Something is making us fat, and it sure looks like its the UPFs.<p>A couple of years ago I lost 20kg (~40lb) of body weight.<p>I find this phrasing odd. -- Should I say "something made me lose 20kg of body weight", or should I say "I was able to improve the food I ate, and I lost 20kg of weight".<p>I tend to think that even without scientific literature, people know that e.g. lettuce is "healthier" than chocolate cake and fried chicken.<p>The term "UPF" seems like a weird term that puts the moral responsibility on the food manufacturers, rather than on "us" who are fat and want to lose weight.</p>
]]></description><pubDate>Sun, 11 Oct 2026 06:24:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=50040294</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50040294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50040294</guid></item><item><title><![CDATA[New comment by rgoulter in "Food processing influences metabolism and brain activity"]]></title><description><![CDATA[
<p>"UPF" is such a weird term to me.<p>For one, for achieving fat loss, it's surely simpler to focus on factors like calories & how full the food makes you. -- With that perspective, yeah it's obvious that fried chicken and sugary chocolate aren't great for your health when eaten frequently.<p>For another, e.g. it seems that nutritionally, something like "diet coke" is strictly better than the sugar drinks it replaces: you get the same taste, but zero calories. -- I mean, zero-calorie drink is clearly UPF but also nutritionally beneficial. I don't see "UPF" as a practical way to look at it.</p>
]]></description><pubDate>Sun, 11 Oct 2026 06:17:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=50040265</link><dc:creator>rgoulter</dc:creator><comments>https://news.ycombinator.com/item?id=50040265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50040265</guid></item></channel></rss>