527 karma · joined August 18, 2020
Find me at markus@maragu.dk
I'm curious, when do you want to treat your Postgres like SQLite? :-) That's basically the opposite of what I was thinking of in the article.
I wonder whether packaging everything in Docker (including a specific Postgres container identified by hash or whatever) and deploying on the same architecture would solve this?
In the cloud, as you probably know, the usual way now is to spin up Postgres separately (RDS, Supabase, Planetscale, Crunchy Bridge, you name it). We've gotten so used to it that a different way of doing it is often not even considered.
But I think tooling has come a long way, and there have been a lot of learnings from the cloud, so it's time to swing the pendulum back and reconsider assumptions!
I was happy to see that FTS5 was always enabled as a compile-time option.
I've been using TablePlus a lot, but there are some SQLite-specific features I'd really like to have in an app:
- Foreign keys enabled by default, so I don't have to remember to enable that in every session.
- Support for loading extensions automatically. I'm using sqlite-vec for example. Right now, browsing virtual tables for that just doesn't show that much, and executing a query just results in "no such module: vec0"
I'll keep an eye on the project. :-)
I'm glad the approach works for you as well! :D It's fascinating to watch a statistical document completion model be able to do so much.
In the article, I mostly mean working with LLMs inside the applications I'm building, as opposed to as a tool as part of development. But I do both.
Right now, I'm trying out Zed, which supports multiple LLMs natively. Just today, I tried Zed + Ollama + Qwen 2.5 Coder 32B running locally, and it worked! Blows my mind that I can have GPT-4o-level assistance running on my laptop. :D
But if that's what you're productive in, I'd say, absolutely!
But Go wasn't really the point of the article, so maybe we shouldn't be here doing language flamewars? :D
I would suggest trying a different ecosystem entirely. I chose Go's, but there are many alternatives not nearly as broken, and in some cases working quite nicely.
But even if you disagree, S3 is conceptually super simple: put binary blobs, get binary blobs, delete binary blobs. I trust the blobs to be there when I need them. I don't have to think about storage size at all, maybe not even backups (depending on use case).
I still have to worry about network, but that isn't really that much different from disk access that can fail.
So yeah, I think S3 counts as boring. :)