HNHacker News
TopNewBestAskShowJobs

iainmerrick

6,735 karma · joined March 11, 2014

https://github.com/iainmerrick https://mastodon.scot/@iainmerrick meet.hn/city/55.8611550,-4.2501687/Glasgow
submissionscomments
iainmerrick··on Building a CLI for All of Cloudflare
Tell us your hopes and dreams for a Cloudflare-wide CLI

This is only partly about the CLI and mostly about the API itself, but a straightforward and consistent way to manage environments would be nice.

I have a project using CF workers and Astro, with an ugly but working wrangler.toml defining multiple environments. When Cloudflare acquired Astro, I assumed that would be a good thing, but the latest version of the Cloudflare plugin (mandatory if you want to use the latest Astro) seems to manage environments in its own special incompatible way.

iainmerrick··on Dropping Cloudflare for Bunny.net
Yes, Magic Containers is excellent. I don't know if it scales up to huge loads well -- that might be expensive -- but it scales down really well. For a very lightly loaded hobby project it's almost free.

A few people here are complaining about the lack of a free tier, but Magic Containers can cover a lot of the same ground as Cloudflare's Durable Objects, which IIRC cost a minimum of $5/month.

iainmerrick··on Does coding with LLMs mean more microservices?
That's a very good point. Although I think maybe there are some crucial differences with LLMs here.

First, the extra speed makes a qualitative difference. There is some communication overhead when you're instructing an LLM rather than just doing the work directly, but the LLM is usually so fast that it doesn't necessarily slow you down.

Second, the lack of ego is a big deal. When reviewing LLM code, I have remind myself that it's okay to ask for sweeping changes, or even completely change the design because I'm not happy with how it turned out. The only cost is extra tokens -- it doesn't take much time, nobody's ego gets bruised, team morale doesn't suffer.

This might be an area where LLMs are able to follow human best practices better than humans themselves can. It's good to explore the design space with throwaway prototypes, but I think people are often too reluctant to throw code away and are tempted to try to reuse it.

iainmerrick··on Does coding with LLMs mean more microservices?
Right. The equivalent in handwritten code would be formatting your code by hand. That used to be the normal way to do it!

For handwritten code, the evolution of best practices has tended to be:

- just make your code look neat and tidy;

- follow the style and conventions of existing code;

- follow a strict formatting style guide;

- format automatically using a tool.

I don’t see why it should be any different with LLMs. Why format with an LLM each time, when you can use the LLM once to write the formatter?

Maybe there’s a point at which neural nets replace conventional programming languages for low-level tasks. But I’m skeptical that natural language models will replace programming languages for low-level tasks any time soon.

iainmerrick··on Does coding with LLMs mean more microservices?
Like almost all of these articles, there's really nothing AI- or LLM-specific here at all. Modularization, microservices, monorepos etc have all been used in the past to help scale up software development for huge teams and complex systems.

The only new thing is that small teams using these new tools will run into problems that previously only affected much larger teams. The cadence is faster, sometimes a lot faster, but the architectural problems and solutions are the same.

It seems to me that existing good practices continue to work well. I haven't seen any radically new approaches to software design and development that only work with LLMs and wouldn't work without them. Are there any?

I've seen a few suggestions of using LLMs directly as the app logic, rather than using LLMs to write the code, but that doesn't seem scalable, at least not at current LLM prices, so I'd say it's unproven at best. And it's not really a new idea either; it's always been a classic startup trick to do some stuff manually until you have both the time and the necessity to automate it.

iainmerrick··on Does coding with LLMs mean more microservices?
No, I think you’re not reading it literally enough. “Microservices” generally does mean separate HTTP (or at least RPC) servers. Near the beginning, the article says:

A microservice has a very well-defined surface area. Everything that flows into the service (requests) and out (responses, webhooks)

iainmerrick··on Why are we still using Markdown?
I enjoyed how it complained about how unclear and ambiguous Markdown’s syntax for bold and italic text supposedly is, then showed an HTML translation with <strong> and <em>.
iainmerrick··on Show HN: European alternatives to Google, Apple, Dropbox and 120 US apps
They’re pointing out the hypocrisy in this website. The comment itself isn’t hypocritical as they haven’t taken a stance on US versus EU services.
iainmerrick··on Good CTE, Bad CTE
Yeah - Muhammad Ali is the most famous victim (or at least likely victim, I don’t think he was officially diagnosed with CTE as it wasn’t well understood back then). In the UK, it’s gradually becoming recognised as a serious problem in rugby.

I assumed the C stood for Concussion. Wrong but also partly right!

iainmerrick··on Good CTE, Bad CTE
From the headline, I thought it might be about sports-related concussions!

I was morbidly curious what a "good CTE" could possibly be...

iainmerrick··on Hypothesis, Antithesis, synthesis
One thing I'm curious about, which I couldn't figure out from a skim of your post, is whether the generated test inputs are random, sequential, or adversarial.

IIRC there are fuzz testers that will analyze the branches of the code to look for edge cases that might break it -- that seems like something that would be wonderful to have in a property tester, but it also seems very difficult to do, especially in a language agnostic way.

How long does it take to find breaking cases like "0/0" or "ß"? Do they pop up immediately, or does it only happen after hundreds or thousands of runs?

iainmerrick··on Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller
It's not quite as simple as that because the chunks should be self-contained; they need to start with an IDR keyframe, which fully resets the decoder. That allows the player to seek to the start of any chunk.

That means when you're encoding the downscaled variants, the encoder wants to know the size of the file segments so it can insert those IDR frames. Therefore it's common to do the encoding and segmentation in a single step (e.g. with ffmpeg's "dash" formatter).

You can have variable-duration or fixed-duration segments. Supposedly some decoders are happier with fixed-duration segments, but it can be fiddly to get the ffmpeg settings just right, especially if you want the audio and video to have exactly the same segment size (here's a useful little calculator for that: https://anton.lindstrom.io/gop-size-calculator/)

For hosting, a typical setup would be to start with a single high-quality video file, have an encoder/segmenter pipeline that generates a bunch of video and audio chunks and DASH (.mpd) and/or HLS (.m3u8) manifests, and put all the chunks and manifests on S3 or similar. As long as all the internal links are relative they can be placed anywhere. The video player will start with the top-level manifest URL and locate everything else it needs from there.

iainmerrick··on We rewrote our Rust WASM parser in TypeScript and it got faster
Hmm, there's an in-progress rewrite of the TypeScript compiler in Go; is that what you mean?

I don't think that's actually out yet, and more importantly, it doesn't change anything at runtime -- your code still runs in a JS engine (V8, JSC etc).

iainmerrick··on Node.js needs a virtual file system
Why would you want a language enhancement for that, rather than just writing it in JS code? (or perhaps WASM)
iainmerrick··on It's time to move your docs in the repo
There are two main options, put your docs in the repo, or throw them all over the floor. Many companies opt for the floor.
iainmerrick··on Vite 8.0 Is Out
Sorry if this comes across as overly facetious — I’m sure you have a reason for doing it that way! — but would it not be easier just to bow to convention and rename your .js files to .jsx?
iainmerrick··on macOS Tahoe windows have different corner radiuses
Thanks for the thoughtful and detailed response!

You're right, what I had in mind was 2, although a bit more general; I think there have been similar kinds of inconsistency in the Mac UI since the beginning, in various forms, almost always intentional.

So I think it would be wrong simply to say "the UI has gone a cliff, they've just thrown away their own HMI guidelines." You can certainly dislike what they've done (and I do dislike it!) but they at least have a somewhat logical goal in mind -- in this case, making the corners neatly fit various different kinds of window content.

Having said all that, there are also some real bugs and unintentional glitches, like scroll bars and other widgets not fitting correctly. I'd agree that seems to be happening more often in recent years, so their quality control has gone downhill.

iainmerrick··on macOS Tahoe windows have different corner radiuses
I'm seeing a lot of comments here about macOS/iOS unification, but I think people are getting worked up about nothing.

What do macOS window styles have to do with iOS? iOS (mostly) doesn't have windows!

What does the MacBook Neo have to do with iOS, other than coincidentally using some of the same components? Maybe Apple decided to make a cheaper Mac because they thought people might want to buy a cheaper Mac.

They are trying to use a common design language across all their devices, sure. But you would hardly expect them to do the opposite! They might try to make a hybrid tablet/laptop or something at some point, sure, but none of their current moves point inevitably in that direction. Except maybe for software notarization, but that has nothing to do with window corners or cheaper laptops.

iainmerrick··on macOS Tahoe windows have different corner radiuses
That led me to https://www.folklore.org/Desk_Ornaments.html which is a very fun read. Interesting to note that the UI style of the DAs is actually not consistent at all, some have round corners and some don't.

I particularly like this Bill Atkinson tidbit at the end:

Bill Atkinson complained to me that it was a mistake to allow users to specify their own desktop patterns, because it was harder to make a nice one than it looked, and led directly to ugly desktops. [...] So he made MacPaint allocate a window that was the size of the screen when it started up, and filled it with the standard 50% gray pattern, making his own desktop covering up the real one, thus protecting the poor users from their rash esthetic blunders, at least within the friendly confines of MacPaint.

(He was totally right, making your own desktop patterns was fun but the standard checkerbard was far and away the best choice.)

iainmerrick··on macOS Tahoe windows have different corner radiuses
Yep, I'm aware. Just like Tahoe, it's intentional and there's a rationale behind it. It may or may not be immediately obvious depending on the user, and people may or may not like the way it looks.
iainmerrick··on macOS Tahoe windows have different corner radiuses
I dislike Tahoe too, but this particular thing is not new.

I just did an image search for "classic macos" and one of the first hits was from https://www.versionmuseum.com/history-of/classic-mac-os. Look at those System 1 screenshots, from 42(!) years ago -- round corners on Puzzle and Calculator, square corners on Note Pad and Control Panel! No consistency at all, isn't it infuriating?

iainmerrick··on Rendezvous with Rama
Clarke’s book The Lost Worlds of 2001 goes into a lot of detail about the process (and is a great read in its own right). His take was that the book should say “a novel by Arthur C Clarke, based on the screenplay by Stanley Kubrick” and the movie should say “screenplay by Stanley Kubrick, based on the novel by Arthur C Clarke”.

I think Kubrick was very much the dominant force in the partnership, but they did work quite closely together.

iainmerrick··on Owner of ICE detention facility sees big opportunity in AI man camps
I'm confused about how we can be interpreting the same short article so differently. It says: "This style of camp was popularized as housing for men working in remote oil fields." So the living conditions in Canadian oil fields seem perfectly relevant.
iainmerrick··on Owner of ICE detention facility sees big opportunity in AI man camps
Well, hang on, the brief TechCrunch article we're discussing here links to two different Bloomberg articles. The first is from 2018 about "housing for men working in remote oil fields", the second from 2026 about a data center in Dickens Country, Texas.

I think you're getting overly fixated on "remote Canadian" here. West Texas is plenty remote. Those temporary workers in Dickens County must far outnumber the local population. If people wanted to commute, where are they going to commute from? The closest big city is Dallas, four hours away. (Edit: I tell a lie, Lubbock is closer if that counts.)

It sounds like you're maybe envisaging a Googleplex, a cool campus where young college hires will want to come and hang out with like-minded peers (and work for long hours as a convenient side-effect). I definitely think it's going to be much more like an oil rig -- people will be paid well, and a decent amount of money will be thrown at entertainment and benefits, but fundamentally it's a place to house hundreds of men who have no reason to be there except that the work has to happen at that specific site.

This article and the linked ones specifically talk about "man camps", not even something like "company towns" where they're maybe trying to establish an actual long-term community.

iainmerrick··on Owner of ICE detention facility sees big opportunity in AI man camps
What makes it very different? It sounds quite similar to me. Each is a lucrative business that requires lots of physical infrastructure to be built out, and therefore needs a large but temporary influx of construction workers and engineers.
iainmerrick··on Owner of ICE detention facility sees big opportunity in AI man camps
I’d like to recommend Kate Beaton’s book Ducks to get a vivid feel for what these “man camps” are like. That book is about camps attached to oil fields in Alberta, but the “AI camps” described here sound very similar.
iainmerrick··on The new Apple begins to emerge
Especially not in an era where people have ChatGPT open all the time

People aren’t generally running ChatGPT locally.

iainmerrick··on Why Objective-C
Obj-C does have a "nonnull" annotation now (apparently added to assist Swift interop). One of the final jigsaw pieces turning it into a really pleasant language.
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.

← PreviousPage 4 of 34Next →