← Back to home

Status update - September 2021

Here's a little of what I've been up to in September.

Last month I tried doing a This-Month-I-Learned list, so I’m going to keep doing that, but I’m also going two write about some other things I’ve been thinking about and doing.

It’s been a month of trial and error. Working on the next version of Protobase, and it’s going slowly but well. When I’m building something new there’s always the temptation to think that it’s too complex, or there’s a shortcut. But in the end, the mountain always looks bigger than it is, and I just need to keep walking. A lot of my feelings match https://scattered-thoughts.net/writing/things-unlearned/ where the author says it better.

Finding the idea that actually works amidst the sea of very similar ideas that don’t work requires staying curious long enough to encounter the fine-grained detail of reality and humble enough to recognize and learn from each failure.

It’s ok to think that things have flaws or could be improved. But it’s a trap to believe that it’s ever the case that a simple solution exists and everyone else is just too enfeebled of character to push the miracle button. All the miracle buttons that we know about have already been pressed.

The mountain isn’t as big as it looks, and there’s no easy way around it.

Building things

As I was debugging a GitHub action the other day I realized that we’re not too far away from just straight-up sending binaries for services to run instead of requests. Who needs an HTTP API when you can just tell another service that you want to run company/my-image:v1.2.3 with some of their data. Hard to tell whether this is good or bad, or makes programming more or less fun. There’s never been a shortage of things to build, that’s for sure.

Similarly, is the future of computing emulation? When you can run anything anywhere, does it matter what OS an app is written for? You can run a Game Boy in a browser with WASM. You can do the same with Windows 95. You can run basically anything inside a docker container, or using Virtual Box. You can run x86 instructions on Apple Silicon in real time using Rosetta. So if we’re just mapping memory blocks, are we done with software? Does end-user consumer software sort of end, but we keep selling different interfaces? Could be.

Tools I’d like to have

I really want something like Git for running software. Think of this as the intersection of docker, and image registry, and a storage mechanism for secrets, DNS, and domain configuration. Still thinking this one through, but stitching together all of these through separate services leaves something to be desired in terms of completeness.

iTerm2 has been a part of my toolkit for a long time now, and I love it. But I’d love some sort of fusion terminal-IDE-browser app. iTerm’s tiling, an embeddable browser, and simple ways to render project files and open tabs. Something like that. You can get there with Emacs or VS Code, but it doesn’t sound pleasant.

Other things I’ve learned

Here are some other things I’ve been thinking about lately.