HNHacker News
TopNewBestAskShowJobs

iainmerrick

6,737 karma · joined March 11, 2014

https://github.com/iainmerrick https://mastodon.scot/@iainmerrick meet.hn/city/55.8611550,-4.2501687/Glasgow
submissionscomments
iainmerrick··on Why Objective-C
Yeah, Objective-C++ is surprisingly great. It sounds like a terrible idea, but the bridging works pretty much seamlessly, and Obj-C and C++ don't actually overlap all that much so they don't step on each other's toes. Each language has strengths that shore up the weak spots in the other.
iainmerrick··on Artist who “paints” portraits on glass by hitting it with a hammer
For better or worse, he’s mostly know in the “street/urban art” world (which is much bigger than graffiti). And one of the features of a lot of the art in that scene is high technical mastery paired with “low” / populist motifs and composition.

That's an interesting distinction. I hadn't really noticed that but it makes a lot of sense.

I suppose Banksy would be close to the crossover point between those two worlds? The ideas and the chutzpah are the main attraction, but generally 'low' populist motifs, without high technical mastery. Someone you could either look up to or sneer down on from either side.

iainmerrick··on Artist who “paints” portraits on glass by hitting it with a hammer
They said "shallow and uninspired" but that's separate from "requires immense skill and patience". The point is, whether or not the process is cool and impressive, is the end product really very interesting?

It can be valid to criticize something as uninspired even if you're not capable of doing it yourself. Movie critics would have a hard time otherwise.

In this case I wouldn't be quite as dismissive, personally. But if you've seen one, have you seen them all? Probably yes.

iainmerrick··on LLM=True
I like this idea a lot, and pushed for json5 at a previous job, but I think there are a few snags:

- it's weird and unfamiliar, most people prefer plain JSON

- there are too many competing standards to choose from

- most existing tools just use plain JSON (sometimes with support for non-standard features, like tsconfig allowing trailing commas, but usually poorly documented and unreliable)

Much easier just to make the leap to .ts files, which are ergonomically better in almost every way anyway.

iainmerrick··on LLM=True
That's a good call. It's a big problem for JSON configs given pure JSON's strict no-comments policy. I like tools that let you use .js or better yet .ts files for config.
iainmerrick··on LLM=True
Yes! After seeing a lot of discussions like this, I came up with a rule of thumb:

Any special accommodations you make for LLMs are either a) also good for humans, or b) more trouble than they're worth.

It would be nice for both LLMs and humans to have a tool that hides verbose tool output, but still lets you go back and inspect it if there's a problem. Although in practice as a human I just minimise the terminal and ignore the spam until it finishes. Maybe LLMs just need their own equivalent of that, rather than always being hooked up directly to the stdout firehose.

iainmerrick··on LLM=True
Right, and then when you don't work on it for 6 or 12 months, you come back and find that now you don't understand it either.
iainmerrick··on “Car Wash” test with 53 models
Ha, sorry, I was a bit brusque there.

Open benchmarks do help, but they mostly help the vendors, not we the users!

iainmerrick··on “Car Wash” test with 53 models
Why would you ask that? The whole point of making it private is to avoid it leaking into the training data.
iainmerrick··on “Car Wash” test with 53 models
Why would you ask that? The whole point of making it private is to avoid it leaking into the training data.
iainmerrick··on 15 years later, Microsoft morged my diagram
You’re right. I think what you’re describing is “trunk based development” and it’s much better.

Maybe I’m overly cynical but I think git-flow was popular largely because of the catchy name and catchy diagram. When you point out that it has some redundant or counter-productive parts, people push back: “it’s a successful model! It’s standard! What makes you think you can do better?”

There’s a nice write-up of the trunk-based style at https://trunkbaseddevelopment.com/ that you can point to as something better.

iainmerrick··on Gwtar: A static efficient single-file HTML format
I agree with the motivation and I really like the idea of a transparent format, but the first example link doesn’t work at all for me in Safari.
iainmerrick··on I fixed Windows native development
It’s a perfectly fine sentence structure. It’s been around for years and years. That’s why LLMs use it!

In the UK, Marks and Spencer have a long-running ad campaign built around it (“it’s not just food, it’s...”)

Em dashes are fine too.

iainmerrick··on Resizing windows on macOS Tahoe – the saga continues
As a long-time Mac user, I'm comfortable with this UI style, but I do recognise that it's weirdly inefficient. It's very strange that this is the UI that won out in the 80s (to the extent that Windows became a massive hit in the 90s, anyway).

A tiling UI would have been much easier to implement! But the original Mac had overlapping windows with pixel-perfect drop shadows. It's a bit nuts when you think about it.

iainmerrick··on Resizing windows on macOS Tahoe – the saga continues
Yeah, that's something that was unambiguously better back in the "Classic MacOS" days (probably starting with the Mac II). Windows could overlap multiple screens and they were always drawn correctly.

At some point in OS X in the switch to hardware acceleration, they started rendering windows on one screen only.

I get that you hardly ever really want a window spanning two screens, but when you accidentally misplace a window it would be handy to be able to see it on each overlapping screen so you can track it down. Right now you can put a few pixels of the title bar on the wrong screen, and the rest of the window just vanishes.

These regressions are weird given that modern hardware is vastly more powerful than a Mac II.

iainmerrick··on A Broken Heart
"git bisect" usually does the trick.
iainmerrick··on Agent Skills
Hmm, that’s a good question! I think a bit of both.

In terms of experience, I’ve noticed that agents don’t always use skills the way you want; and I’ve noticed that they’re pretty good at browsing existing code and docs and figuring things out for themselves.

Is this an example of “the bitter lesson”? That’s conjecture, but I think pretty well-founded.

It could well be that specific formats for skills work better because the agents are trained on those specific formats. But if so, I think it’s just a local maximum.

iainmerrick··on Bunny Database
Depending on your precise requirements, I think it might have changed.

I've been trying out Bunny recently and it looks like a very viable replacement for most things I currently do with Cloudflare. This new database fills one of the major gaps.

Their edge scripting is based on Deno, and I think is pretty comparable to e.g. Vercel. They also have "magic containers", comparable to AWS ECS but (I think) much more convenient. It sounds from the docs like they run containers close to the edge, but I don't know if it's comparable to e.g. Lambda@Edge.

iainmerrick··on Agent Skills
To clarify, the bit where I think the bitter lesson applies is trying to standardize the directory names, the permitted headings and paragraph lengths, etc. It's pointless bikeshedding.

Making your docs nice and modular, and having a high-level overview that tells you where to find more detailed info on specific topics, is definitely a good idea. We already know that when we're writing docs for human readers. The LLMs are already trained on a big corpus written by and for humans. There's no compelling reason why we need to do anything radically different to help them out. To the contrary, it's better not to do anything radically different, so that new LLM-assisted code and docs can be accessible to humans too.

Well-written docs already play nicely with LLM context.

iainmerrick··on Agent Skills
Everybody wants that, though, no? At least some of the time?

For example, if you've just joined a new team or a new project, wouldn't you like to have extensive, well-organised documentation to help get you started?

This reminds me of the "curb-cut effect", where accommodations for disabilities can be beneficial for everybody: https://front-end.social/@stephaniewalter/115841555015911839

iainmerrick··on Agent Skills
To clarify, when I mentioned the bitter lesson I meant putting effort into organising the "skills" documentation in a very specific way (headlines, descriptions, etc).

Splitting the docs into neat modules is a good idea (for both human readers and current AIs) and will continue to be a good idea for a while at least. Getting pedantic about filenames, documentation schemas and so on is just bikeshedding.

iainmerrick··on Agent Skills
I guess what I mean is that standardizing this bit of the problem right now feels sort of like XHTML. Many people thought that was a big deal back in the day, but it turned out to be a pointless digression.

Long term you're right though, agents will fetch this all themselves

It's not "long term", it's right now. If your docs are well-written and well-organised, agents can already use them. The most you might need to do is copy your README.md into CLAUDE.md.

iainmerrick··on Agent Skills
Humans use indexes too - but not in this way.

What's different?

iainmerrick··on Agent Skills
I can't quite tell what's being compared there -- just looks like several different LLMs?

To be clear, I'm suggesting that any specific format for "skills.md" is a red herring, and all you need to do is provide the LLM with good clear documentation.

A useful comparison would be between: a) make a carefully organised .skills/ folder, b) put the same info anywhere and just link to it from your top-level doc, c) just dump everything directly in the top-level doc.

My guess is that it's probably a good idea to break stuff out into separate sections, to avoid polluting the context with stuff you don't need; but the specific way you do that very likely isn't important at all. So (a) and (b) would perform about the same.

iainmerrick··on Agent Skills
Standards for plugins makes sense, because you're establishing a protocol that both sides need to follow to be able to work together.

But I don't see why you need a strict standard for "an informal description of how to do a particular task". I say "informal" because it's necessarily written in prose -- if it were formal, it'd be a shell script.

iainmerrick··on Agent Skills
This stuff smells like maybe the bitter lesson isn't fully appreciated.

You might as well just write instructions in English in any old format, as long as it's comprehensible. Exactly as you'd do for human readers! Nothing has really changed about what constitutes good documentation. (Edit to add: my parochialism is showing there, it doesn't have to be English)

Is any of this standardization really needed? Who does it benefit, except the people who enjoy writing specs and establishing standards like this? If it really is a productivity win, it ought to be possible to run a comparison study and prove it. Even then, it might not be worthwhile in the longer run.

iainmerrick··on What came first: the CNAME or the A record?
No, because they're not really broken. I think this is fairly clear:

Based on what we have learned during this incident, we have reverted the CNAME re-ordering and do not intend to change the order in the future.

To prevent any future incidents or confusion, we have written a proposal in the form of an Internet-Draft to be discussed at the IETF.

That is, explicitly documenting the "broken" behaviour as permitted.

iainmerrick··on The chess bot on Delta Air Lines will destroy you (2024) [video]
Do you have a link for that? It sounds interesting but a bit unlikely. It's hard to see how charging for pilot training, even at 40K a pop, would be a sustainable business.

The thing about buying planes is also interesting, but sounds like a sneaky business move rather than the actual foundation of the business.

I've always heard that nobody really makes money from passengers, which is why airlines are always going bankrupt, and I'm sure Ryanair's margins are super skinny. But even so, it does seem like moving passengers around is the core of their business, rather than it just being a front for something else.

iainmerrick··on The chess bot on Delta Air Lines will destroy you (2024) [video]
I think the secret of Ryanair is that their goal is actually to make their turnarounds as fast and efficient as possible, not explicitly to make money by adding a fee for every little aspect of the service.

If anything can possibly slow down flight boarding, disembarking or cleanup, they'll first try to remove it completely, and only if people object too much will they reluctantly offer it with a fee.

Pocket on the seat back -> most people don't use on short flights -> get rid of them.

Luggage -> most people need this, but not everyone -> charge a fee.

Reclining seat -> most people don't use on short flights -> get rid of them.

They do sell drinks and duty free; that's an interesting one. I guess once the flight is airborne, the flight attendants aren't really doing anything else (from management's perspective) so they might as well sell stuff. Plus the trolley blocking the aisle stops passengers from moving around, which they probably see as a big advantage.

I think this even applies to the ridiculous penalty fees they charge for e.g. trying to check in at the airport rather than doing it beforehand on the app. It feels like they're just trying to rip you off, but I suspect they see it more as a "nudge" to make people check in online, because that streamlines their airport process.

I got a little bit less annoyed by them when I realised this. Sure, it's still uncomfortable and sometimes infuriating, but it's all with the aim of an efficient and reliable service, and they're way better than average at that.

iainmerrick··on It's hard to justify Tahoe icons
That's interesting, I hadn't heard that point of view before.

Empirical validiton did not really take off until the late 00s.

https://hci.stanford.edu/publications/bds/4p-guidelines.html

Hmmm, I don't quite see where that supports "Apple didn't do empirical validation"? Is it just that it doesn't mention empirical validation at all, instead focusing on designer-imposed UI consistency?

ISTR hearing a lot about how the Mac team did user research back in the 1980s, though I don't have a citation handy. Specific aspects like the one-button mouse and the menu bar at the top of the screen were derived by watching users try out different variations.

I take that to be "empirical validation", but maybe you have a different / stricter meaning in mind?

Admittedly the Apple designers tried to extract general principles from the user studies (like "UI elements should look and behave consistently across different contexts") and then imposed those as top-down design rules. But it's hard to see how you could realistically test those principles. What's the optimal level of consistency vs inconsistency across an entire OS? And is anyone actually testing that sort of thing today?

I cannot shake the feeling that they simply feel like the were used to just brand Apple as user friendly in the 90s and that Apple never actually adopted their principles and just used it as it fit the company's marketing.

I personally think Apple did follow their own guidelines pretty closely in the 90s, but in the OS X era they've been gradually eroded. iOS 7 in particular was probably a big inflexion point -- I think that's when many formerly-crucial principles like borders around buttons were dropped.

← PreviousPage 5 of 34Next →