<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: iainmerrick</title><link>https://news.ycombinator.com/user?id=iainmerrick</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 18 Aug 2026 13:43:37 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=iainmerrick" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by iainmerrick in "The Benchmarkpocalypse"]]></title><description><![CDATA[
<p>Hmm, what specific differences does it make in practice?<p>For me, the huge one is that LLMs are currently bad at learning from experience. I don’t trust any kind of automatic MEMORY.md or whatnot; in fact I greatly prefer starting from a clean slate each time because the LLM’s baseline general knowledge is so good.<p>In terms of accuracy and “lying”, I don’t really see a huge difference. Most LLMs are unfortunately a bit sycophantic and over-confident, but you sometimes see that in people as well.</p>
]]></description><pubDate>Tue, 18 Aug 2026 11:20:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49344055</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49344055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49344055</guid></item><item><title><![CDATA[New comment by iainmerrick in "The Benchmarkpocalypse"]]></title><description><![CDATA[
<p>I had a similar thought -- rather than fixed benchmarks, you want dynamically-generated tests, specifically designed to exercise newly-exposed corner cases. So the way forward might be antagonistic benchmarks generated by another LLM.</p>
]]></description><pubDate>Tue, 18 Aug 2026 10:14:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49343564</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49343564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49343564</guid></item><item><title><![CDATA[New comment by iainmerrick in "The Benchmarkpocalypse"]]></title><description><![CDATA[
<p>I don't see how "it's just token prediction" is relevant to that at all.<p>Sure, the model can go wrong, but sometimes it's able to realise that and correct its course. Stronger models are better at doing this.<p>People do exactly the same thing! Haven't you ever wasted a lot of time chasing down a blind alley?<p>To say the LLM has immutable limits because it only predicts the next token and can't backtrack is like saying <i>we</i> have immutable limits because we can't travel backwards in time. It's a true statement but not particularly relevant or helpful.</p>
]]></description><pubDate>Tue, 18 Aug 2026 10:10:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49343544</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49343544</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49343544</guid></item><item><title><![CDATA[New comment by iainmerrick in "Anthropic's ‘watermark’ text adulteration in Claude is a perversion of writing"]]></title><description><![CDATA[
<p>That's true, but you don't typically explain what you're testing in this sort of (presumably) randomised trial.<p>And the Daring Fireball article <i>does</i> complain that watermarking will reduce quality. If that's what you're trying to check, "which is better?" is the right question.</p>
]]></description><pubDate>Mon, 17 Aug 2026 15:38:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49332784</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49332784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49332784</guid></item><item><title><![CDATA[New comment by iainmerrick in "Anthropic's ‘watermark’ text adulteration in Claude is a perversion of writing"]]></title><description><![CDATA[
<p>They do exactly that "which is the better answer?" test -- I've seen it pop up a few times.</p>
]]></description><pubDate>Mon, 17 Aug 2026 14:14:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49331357</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49331357</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49331357</guid></item><item><title><![CDATA[New comment by iainmerrick in "Anthropic's 'watermark' text adulteration in Claude is a perversion of writing"]]></title><description><![CDATA[
<p>How exactly do you propose they should keep track of quality, then, if not by A/B testing?</p>
]]></description><pubDate>Mon, 17 Aug 2026 09:31:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49328379</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49328379</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49328379</guid></item><item><title><![CDATA[New comment by iainmerrick in "Gemini 3.7 Flash"]]></title><description><![CDATA[
<p>Yep, I use Gemini for this too and it’s great - very fast and high quality.<p>I’d be very willing to try it out as an API, but it’s far too complicated to set up payment, and I don’t want to risk taking a wrong step and being locked out of other Google services. So Anthropic and Mistral get my money instead.</p>
]]></description><pubDate>Fri, 14 Aug 2026 10:13:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49296743</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49296743</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49296743</guid></item><item><title><![CDATA[New comment by iainmerrick in "Parsers don't have to be complicated"]]></title><description><![CDATA[
<p>It actually does touch on this:<p><i>Built-in line and column tracking. Any movement across a newline updates the line number, including a backwards seek. getLine and getColumn are always available and both are one-based, which makes decent error messages nearly free.</i><p>That doesn't sound like much, but having hand-written plenty of recursive descent parsers, it's most of what you need for good error messages. Just being able to pinpoint where the error occurred is usually 80% of the battle; but keeping track of lines and columns in a hand-written parser is a pain.<p>Sure, for something like Rust, you need vastly more than that, but parsing is a tiny fraction of what the Rust compiler is doing -- type-checking and borrow checking is much more complicated and much more important.<p>A tiny library like this is a great fit for something like an INI file parser.</p>
]]></description><pubDate>Fri, 07 Aug 2026 10:29:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49208321</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49208321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49208321</guid></item><item><title><![CDATA[New comment by iainmerrick in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>I really like that categorization, but I think you've missed a step (or several): designing and implementing all the extra stuff needed to make it work, but aren't directly related to the problem.<p>For example, you have an idea for a cool and useful app and you want to put it on a website. You need to figure out hosting, you need to write some copy, you need to do some visual design.<p>Maybe 3a) Yak shaving?<p>There are various ways to take shortcuts. For hosting, you can use something super easy like GitHub Pages or Netlify or Cloudflare, or maybe piggyback off an existing site that's already deployed. For both copy and visual design, you can just ask Claude or Codex to do it -- but only if you don't mind having that standard vibe-coded look and feel, all glowing gradients and punchy, mic-dropping text.<p>Maybe you're including that under 5), ship/deploy/publish, but I read that as being more about scaling, marketing, and making things robust. Even before you reach that stage there's always a bunch of bullshit to work through before you can even reach 4), seeing the solution work for yourself.</p>
]]></description><pubDate>Thu, 06 Aug 2026 09:05:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49194295</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49194295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49194295</guid></item><item><title><![CDATA[New comment by iainmerrick in "SwiftUI After 7 Years"]]></title><description><![CDATA[
<p>Well, you can still have breakpoints, and switch between different structures for e.g. mobile vs desktop, or landscape vs portrait.<p>But I don't think you can cover all requirements with a set of fixed layouts, they do need to be somewhat flexible. Even if all screens were the same size, you'd want to be able to boost the font size for accessibility, and that essentially means scaling the whole UI.<p><i>And the slightly different sizes of iPhones are not really that problematic with something like autolayout.</i><p>I think something like flexbox is a better fit. There are tradeoffs in each approach, but I usually find a local, modular, bottom-up approach easier to work with than global constraint solving, even though it seems in principle like it should be nice to be able to say "keep this button <i>here</i> in relation to this other button". As you add more constraints like that your layout slowly turns to mush and doesn't actually resize nicely. <i>(Edit to add:</i> I'm probably conflating a few different generations of iOS toolkits here, I realise autolayout is somewhat separate from constraint-based layouts.)<p>I don't think it's a coincidence that most other UI toolkits have added something like flexbox (including iOS) -- it's not perfect but it fits how people generally think about UIs. Was HTML/CSS the first major UI framework to use flexboxes? That's how I remember it, but maybe it was copied from somewhere else.</p>
]]></description><pubDate>Mon, 03 Aug 2026 14:36:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=49156389</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49156389</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49156389</guid></item><item><title><![CDATA[New comment by iainmerrick in "SwiftUI After 7 Years"]]></title><description><![CDATA[
<p>Cocoa and Objective-C are both great, but I think there's one huge problem that they never managed to solve well: responsive layouts.<p>Classic iPhone apps have fixed layouts, and classic Mac apps have a big dynamic document in the centre with mostly fixed toolbars around the sides, and dialogs with fixed layouts. Making a really dynamic layout with OS widgets is a huge pain, so most apps sidestepped it.<p>As Apple gradually added more and more slightly different sizes of iPhone and iPad, making good UI layouts got harder. Even handling screen rotations is a huge hassle! If iOS had proper support for resizing from the start, screen rotation would be trivial, just another window resize.<p>Xcode had Interface Builder and autolayout, but I found those to be disastrously fiddly and unusable. Maybe some people like them?<p>HTML has many problems of its own, <i>but</i> it does have good support for responsive layouts. CSS isn't perfect, but it's vastly better than anything you can find in macOS, iOS, Android or Windows.<p>It seems to me that SwiftUI was trying to tackle two problems at once: React-style declarative UI, and responsive layout. Those are both good ideas, but trying to tackle both in a single uber-framework <i>and</i> deprecating the lower layers was too ambitious. As somebody said elsewhere in this thread, SwiftUI could have been decent as just an optional helper on top of the existing UIKit / AppKit.</p>
]]></description><pubDate>Mon, 03 Aug 2026 08:56:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=49153046</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=49153046</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49153046</guid></item><item><title><![CDATA[New comment by iainmerrick in "Cursor 0day: When Full Disclosure Becomes the Only Protection Left"]]></title><description><![CDATA[
<p>If it happens out of the box with fresh installations of both Windows and Cursor, I’d say it’s a serious vulnerability in at least one of those.<p>Sounds like this is a golden oldie bug on Windows/DOS, which I assume is now patched by default. If so it’s Cursor’s problem.</p>
]]></description><pubDate>Wed, 15 Jul 2026 12:38:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48919936</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48919936</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48919936</guid></item><item><title><![CDATA[New comment by iainmerrick in "Cursor 0day: When Full Disclosure Becomes the Only Protection Left"]]></title><description><![CDATA[
<p>What’s due diligence? Reading all the code on GitHub?<p>That’s not a great interface, you probably want to clone it and open in your IDE so you can inspect the code properly...</p>
]]></description><pubDate>Wed, 15 Jul 2026 12:30:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48919825</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48919825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48919825</guid></item><item><title><![CDATA[New comment by iainmerrick in "Cursor 0day: When Full Disclosure Becomes the Only Protection Left"]]></title><description><![CDATA[
<p>Only if you think opening Cursor.app counts as “using an AI tool”. Most reasonable people wouldn’t expect an AI-enabled text editor to hack their machine right away -- it should have the common decency to wait until you type something into the AI agent panel, <i>then</i> hack you!</p>
]]></description><pubDate>Wed, 15 Jul 2026 12:28:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48919797</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48919797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48919797</guid></item><item><title><![CDATA[New comment by iainmerrick in "Cursor 0day: When Full Disclosure Becomes the Only Protection Left"]]></title><description><![CDATA[
<p>If you can’t download anything safely, the web can’t exist.</p>
]]></description><pubDate>Wed, 15 Jul 2026 12:23:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48919732</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48919732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48919732</guid></item><item><title><![CDATA[New comment by iainmerrick in "Cursor 0day: When Full Disclosure Becomes the Only Protection Left"]]></title><description><![CDATA[
<p>Ideally, they’ll be able to look back through the logs and find the original analysis from when the bug was submitted, figure out why it was incorrectly filtered, and use that to improve their automation.<p>The general idea of a few layers of automated triage by increasingly powerful LLMs, before finally escalating to a human engineer, seems like a reasonable way to handle a deluge of submissions. It just has to be implemented well and continuously calibrated.</p>
]]></description><pubDate>Wed, 15 Jul 2026 12:21:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48919713</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48919713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48919713</guid></item><item><title><![CDATA[New comment by iainmerrick in "New era for Gibraltar with removal of border controls with Spain"]]></title><description><![CDATA[
<p>It's really ridiculous how little discussion there was about places like Gibraltar and Northern Ireland before the Brexit vote.<p>Looks like NI voted ~55% remain and Gibraltar ~95% remain, but too bad, England voted ~53% leave, so screw all you little overseas territories with actual land borders who are most directly impacted.</p>
]]></description><pubDate>Wed, 15 Jul 2026 10:38:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48918775</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48918775</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48918775</guid></item><item><title><![CDATA[New comment by iainmerrick in "How to stop Claude from saying load-bearing"]]></title><description><![CDATA[
<p>Honestly? I don't really mind, and I even quite like it!<p>The thing is, <i>"load-bearing" is a useful phrase</i> when discussing architecture. What would you rather have it say, that has all the same nuances in as few words?<p>It's kind of like those sports metaphors that often get used in management-speak, like sending some important email "at close of play". Sure, they can sound a bit weird, but they're often useful -- they capture common concepts in a clear and pithy way.<p>Jargon isn't always just for obfuscation, good jargon exists because we needed a short word for the complicated thing that frequently comes up.<p>Usefulness aside, I quite like that Claude Code and other LLMs have their own weird way of speaking. Back in the day we always imagined robots and computers would talk like HAL or Spock; turns out that they talk more like Troi instead. Is that so bad? It reminds you that you're talking to an LLM, and as long as you're not lazy, it spurs you to rephrase things in your own words.</p>
]]></description><pubDate>Tue, 14 Jul 2026 18:10:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48910862</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48910862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48910862</guid></item><item><title><![CDATA[New comment by iainmerrick in "The real prices of frontier models"]]></title><description><![CDATA[
<p>I’m normally one to complain <i>about people complaining</i> about these LLM-isms, but yeah, this one really grates on you.<p>It’s a shame because it’s making an excellent point! It just takes so long to get to the point that the reader loses the will to live.<p>Yes, I could probably ask an LLM to summarise it for me. No, I’m not going to. I would prefer the author just take care of that for me.</p>
]]></description><pubDate>Mon, 13 Jul 2026 21:33:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48899216</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48899216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48899216</guid></item><item><title><![CDATA[New comment by iainmerrick in "AI Can't Recreate the Thrust Game (But It Can Help You Understand It)"]]></title><description><![CDATA[
<p>Your reconstruction is so close, I'm a little surprised you didn't stick with the original controls! Even though the BBC had a rather weird layout for all the non-alphanumeric keys.<p>It's been a very long time since I played Thrust, and I've played plenty of WASD games in the meantime, but it still felt really strange to control it that way rather than the classic BBC Z/X/*/? for left/right/up/down.<p>Pretty sure it was return to fire, space for shield/tractor; and maybe * for thrust? <i>Edit to add:</i> ah, no, shift to thrust. Works very well on modern keyboards too.</p>
]]></description><pubDate>Sat, 11 Jul 2026 19:42:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48875123</link><dc:creator>iainmerrick</dc:creator><comments>https://news.ycombinator.com/item?id=48875123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48875123</guid></item></channel></rss>