Robin’s post about how an app could be a home cooked meal has made its internet rounds again. I remember reading it a while back and it’s just as refreshing of a read as it was when it was written. There’s a lot of (web/app) software products that get shared and subsequently criticized because of it’s lack of scalability. Or lack of not using the new hot programming language or framework. It lacks support for some preferred device or it requires too new of a device. It’s exhausting. But being surrounding with those sort of thoughts sink in. It gets hard to make something for the sake of creating. You get in the way of yourself because you “know too much”.
Every now and then a video game source code gets released. Or the developers talk in-retrospect about the code. It’s fantastic. Because you play this lovely game and you find out under the hood it’s this ducked tape ball of yarn that barely holds together, but still manages to create an experience that makes you cry at 2am. How it’s made and put together rarely matters. But for some reason this arbitrary value of “how things are put together” has bled into the software development culture. And it’s hard to escape mentally. As I am working I make split second decisions that are influenced by it. It affects how I feel about the things I make. It’s the like when an artist is focusing on all the things wrong with their painting, but not being happy about the experience and expression of their painting.
I’m trying to find ways to work around this. The biggest bit is trying to develop for myself. I have had this learn-to-write-kanji project in progress for 5+ years1. I am working on ways for making it for myself. Make it deployable and usable for me. This has a lot of benefits. Lots of concerns go away. Users forgetting their passwords? not a problem. Security concerns? Not usually relevant or possible. Content? I make it as I need it for my own studies. I don’t need to make it overly pretty for everyone. I don’t need to spend hours building features when the problem is resolved by a two minute tweak to a database file.
I am deploying to a Raspberry Pi that I have on my desk. All my devices (Pi included) have Tailscale which lets me connect to services on the Pi. Even if I’m not at home I can access the service. Sure, it’ll be slower than deploying to fancy cloud. But I don’t need super speeds for this. It’s only accessible if you’re on the Tailscale network. My deployment process is ssh-ing into my Pi and then pulling the latest code and running it. Deployment downtime? Doesn’t matter.
All the expectations and cruft to make things have been piling up. Some is my own burden of “knowledge”. When I want to open this up for other people I can work through those problems, but for now it’s refreshing to find things you can just say: “you know what? I don’t care.”
Also related: I have the attention span of a ↩︎