jmoiron plays the blues
@jmoiron.bsky.social replied: A quick description, this project involves creating a parser for a schema format, and then a validator to apply that schema format to json files and determine if they follow it or not.
I'm not a parser expert, but I've written dozens of parsers so I know my way around.
Anyway, ...
@jmoiron.bsky.social I've been using Claude code $20 edition for the past week to build a simple but non-trivial tool.
I might write up something more structured and with some data when/if I finish, but I have a few observations I'm ready to make about it now.
@jmoiron.bsky.social replied: So I guess I disagree that the pattern is "just bad", so congrats on a real unpopular opinion :) But personally I think it's very inconclusive whether it's worth using and I'm sympathetic to the idea that we shouldn't bother.
@jmoiron.bsky.social replied: By exporting the config struct, this gets messier. You will need a Config.Foo and Config.FooT for the deprecation period, and if it's valid for the user to set these to the zero value, detecting deprecated usage is basically impossible.
@jmoiron.bsky.social replied: Funcopts also have some minor advantages for maintenance. Funcopts separate data and interface, so if you have to eg. change the type of an option, it's easy. The name might suck, but you can make what would be a breaking change to your internal config data and keep things consis...
@jmoiron.bsky.social replied: I'm not a massive fan of funcopts, but your example is best case and config struct usage usually looks more like this:
x := f.NewDefaultConfig()
x.Port = 80
...
y := f.New(x)
Which.. frankly it doesn't bother me, but in-lining would be nice. If x is a *Config, that's also trick...
@jmoiron.bsky.social I wrote up some thoughts on Ezra Klein and Derek Thompson's "Abundance". Bit late for the hype train, but I decided it might be a good idea to try reading it first.
jmoiron.net/blog/notes-o...
@jmoiron.bsky.social replied: A last remark, some center left people that I like (eg. Hank Green, Ezra Klein) will say that Americans buy these cars because they like them.
These cars only work in the US because the American suburban lifestyles are heavily subsidized by nearby cities.
@jmoiron.bsky.social replied: So the US car industry is definitely in trouble, but it's been that way for a long time.
It produces stupid and inefficient "light trucks" for a thoroughly car-brained society that looks nothing like the global market, and instead of diversifying, it's doubled down.
@jmoiron.bsky.social replied: The only US car company that has been making anything close to what people want internationally has a CEO everyone hates, and is now producing low-polygon stainless steel monstrosities that are not even street legal outside of North America.
@jmoiron.bsky.social replied: In the US, none of these are true, so US car companies make big SUVs which are more expensive, heavier, and less fuel efficient than small cars.
To price them lower, they use cheap materials and sell a terrible entry trim. The result is still a bit expensive, but feels cheap.
@jmoiron.bsky.social replied: In most of the world, roads are small, gasoline is expensive, and people are concerned about climate change.
They want smaller cars that can be run inexpensively, and they want to take advantage of the rapid greening of their energy grids.
@jmoiron.bsky.social replied: I was just in London for a bit, and while in a taxi a very large pick-up truck pulled up next to me. It was a Ford Ranger, the smaller version of the F-150.
It looked completely ridiculous and impractical.
@jmoiron.bsky.social replied: For ~20 years, Ford made cars that were excellent choices even in the packed EU market, the Focus and its little sibling the Fiesta; probably the best American ICE cars of the 21st century.
They stopped production in 2025 and 2023, respectively. The only car Ford produces now is...
@jmoiron.bsky.social replied: A lot of the takes on this are a form of "US car companies are cooked", which.. yes, but it's not primarily due to Chinese competition.
It's cooked because the domestic industry has totally reoriented around producing large, inefficient, unsafe, poorly made SUVs, and nobody else...
@jmoiron.bsky.social Assuming the Huawei YU7 sells its 200k-in-3-minutes pre-orders, that's about as many cars as Honda Civics sold in the US in 2023, or about how many cars Tesla sells globally every 4 months.
As the saying goes, quantity has a quality all its own.
@jmoiron.bsky.social People are starting to call all sorts of applications of real world computer assistance and interaction "AI" with the intended effect of making fairly harmless technologies like Hawkeye and blind spot sensors seem more controversial.
@jmoiron.bsky.social We played the theme song at our band ensemble in 6th grade.
@jmoiron.bsky.social First time at Wimbledon, first time on Centre Court.. just an amazing match between Anisimova and Sabalenka.
@jmoiron.bsky.social Been in Chelsea about 6 hours and have already thought about how pleasant it would be to spend some time sketching its historic architecture.
@jmoiron.bsky.social Honestly, you need exceptional evidence these days to justify not using 64 bit integers for serials.
@jmoiron.bsky.social As a Portuguese football fan, I've followed Jota's career closely since he spent a year on loan at Porto. His middle name, José, is my father's name, and it's where "Jota" comes from.
Lots of stories today about how he was truly one of the good ones.
Gutted.
@jmoiron.bsky.social replied: I prepared a talk called "The network is the Computer" for an early Gotham Go, but I unfortunately fell ill and couldn't give it. A core part of the talk was calling out the many similarities between CPU architecture & distributed architecture and caching is a big component.
@jmoiron.bsky.social replied: Another peculiarity with the data you work with is that it's incredibly temporal. Writes and reads are heavily correlated along the t axis. This can be good leverage for anticipating & improving cold read scenarios, but if that anticipation fails enough then it's not worth it.