HN user

joshmarlow

870 karma

Developer of backends, lover of types.

Posts3
Comments333
View on HN

I've often wondered how viable it is to use AI to fill out the ecosystem gaps in awesome but niche languages (still looking at you OCaml...).

I've not gone too deep down this train of thought because a standard library/ecosystem should be solid and I don't think LLMs are quite there... but if we can use LLMs+Lean maybe we can get the quality we need to bootstrap more of the Lean ecosystem?

A couple of years ago I listened to a Lex Fridman podcast with a researcher at the MIT Media Lab. I don't know the status of it, but the researcher spoke about how people in developing countries were experimenting with using local resources as 3D printer feedstock - things like ground-up sea shells - as a way of using local supply lines.

One of the most interesting things he said was that the current waste from 3D printing (and other technology) is really a sign of technical immaturity; nature repurposes everything - there is no trash in an ecosystem, only food for something else. Maybe we'll eventually learn to build infrastructure like that.

GPT‑Live 14 days ago

That makes sense and had never occurred to me!

I just asked and Claude says it's Haiku.

GPT‑Live 14 days ago

Absolutely the same. Now that Fable is back, the Claude voice interface is... worth dealing with. The app mostly seems to have trouble recovering from networking issues which is jarring in a deep conversation.

GPT‑Live 14 days ago

I'm so mad that this might make me re-subscribe to ChatGPT. I wouldn't have believed how much I use the voice feature before LLMs and ChatGPT currently has the best voice interface. I think Grok's interface is the next best, then Claude.

One of the more counter-intuitive parts of management that I've found is that your focus shifts from delivering a technical outcome to care-taking a team that delivers technical outcomes. It's a meta-function.

A related physics metaphor - in general as you move from IC to SR to management, your focus shifts from changing the position to changing the velocity and acceleration of those around you.

Stop Using JWTs 1 month ago

It definitely violates DRY but if you keep passing the JWT down the call chain, you can do redundant permission checking in your business layer.

Now the reasonable response to the above is that this should be happening in a dedicated authn/z concern - and that is correct! But when paranoia is called for, it's not unreasonable to have redundant checks in logic where authz is critical.

His Blindsight is one of my all time favorite novels (sequel is good to). His short story Malak - about a military drone given a prototype ethical program - is so good.

Another suggestion for optimizing local inference - the Hermes team talks a lot on X about how much better results are when you use custom parsers tuned to the nuances of each model. Some models might like to use a trailing `,` in JSON output, some don't - so if your parser can handle the quirks of the specific model, then you get higher-performing functionality.

Treat code design and architecture as the thing that lets your slop canons (90% of engineers even pre-ai) move fast without breaking things

I'm currently of the opinion that humans should be laser focused on the data model. If you've got the right data model, the code is simpler. If you've got the relevant logical objects and events in the database with the right expressivity, you have a lot of optionality for pivoting as the architecture evolves.

It's about that solid foundation - and of course lots of tests on the other side.

I've not read Aristotle directly but translating eudaimonia was an example in the book that I mentioned. The argument was that eudaimonia is often translated as happiness but that doesn't make sense in contexts where we talk about a soldier dying experiencing eudaimonia (suggesting a loose translation).

A few years ago I read a claim that the word 'happy' is relatively young - ~500 years old - and that translations of others words into 'happy' are somewhat approximate.

My takeaway is that (presuming the argument is correct) that much of human striving is probably better described with specific words (as you suggested - joy, accomplishment, fulfillment, excitement, etc). For most of human history, most people probably didn't think "I want to be happy" but "I want to have a good partner", "I want a big family", "I want my crop to grow so I don't die."

I wonder how much unhappiness is caused by seeking a poorly-defined ideal of happiness.

The book was called "Power, Pleasure, and Profit: Insatiable Appetites from Machiavelli to Madison".

On a related note, this type of reasoning is what made me flip my opinion on microservices. I've generally been skeptical of a many-microservice architecture for the last decade but LLMs change that - a small microservice is more likely to fit in a context window.

I think this gestures at a more general point - we're still focusing on how to integrate LLMs into existing dev tooling paradigms. We squeeze LLMs into IDEs for human dev ergonomics but we should start thinking about LLM dev ergonomics - what idioms and design patterns make software development easiest for AIs?

Adding to your comment, I've found that frequent squashing of commits on the feature branch makes rebasing considerably easier - you only have to deal with conflicts on one commit.

And of course, making it easier to rebase makes it more likely I will do it frequently.

GPT-5.2 7 months ago

I think Grok's voice chat is almost there - only things missing for me: * it's slower to start-up by a couple of seconds * it's harder to switch between voice and text and back again in the same chat (though ChatGPT isn't perfect at this either)

And of course Grok's unhinged persona is... something else.

We Need to Die 7 months ago

Agreed! In the Lex Fridman podcast from a few years ago that I referenced, he talked quite a bit about his depression - he was near suicidal for 13 years, IIRC.

He sounds like a different person now.

We Need to Die 7 months ago

I suppose I don't see how that's a problem if he's happy in the process - which he certainly appears to be.

We Need to Die 8 months ago

Bryan Johnson is an interesting case here. If you take the longevity project to its logical end, you get someone who's stopped living in order to keep living - for the most part not eating food he enjoys, not drinking, not doing anything spontaneous, all in service of more years.

I never understand this type of critique of Johnson. It's framed like he's suffering daily for his project, but the guy sounds happy as a clam - especially contrasted with his pre-Blueprint podcast with Lex Fridman.

Seems like he's doing something right.

It's been a few years since I've touched OCaml - the ecosystem just wasn't what I wanted - but the core language is still my favorite.

And the best way I can describe why is that my code generally ends up with a few heavy functions that do too much; I can fix it once I notice it, but that's the direction my code tends to go in.

In my OCaml code, I would look for the big function and... just not find it. No single workhorse that does a lot - for some reason it was just easier for me to write good code.

Now I do Rust for side projects because I like the type system - but I would prefer OCaml.

I keep meaning to checkout F# though for all of these reasons.

Claude Opus 4.1 12 months ago

VSCode has a pretty good Gemini integration - it can pull up a chat window from the side. I like to discuss design changes and small refactorings ("I added this new rpc call in my protobuf file, can you go ahead and stub out the parts of code I need to get this working in these 5 different places?") and it usually does a pretty darn good job of looking at surrounding idioms in each place and doing what I want. But gemini can be kind of slow here.

But I would recommend just starting using Claude in the browser, talk through an idea for a project you have and ask it to build it for you. Go ahead and have a brain storming session before you actually ask it to code - it'll help make sure the model has all of the context. Don't be afraid to overload it with requirements - it's generally pretty good at putting together a coherent plan. If the project is small/fits in a single file - say a one page web app or a complicated data schema + sql queries - then it can usually do a pretty good job in one place. Then just copy+paste the code and run it out of the browser.

This workflow works well for exploring and understanding new topics and technologies.

Cursor is nice because it's an AI integrated IDE (smoother than the VSCode experience above) where you can select which models to use. IMO it seems better at tracking project context than Gemini+VSCode.

Hope this helps!