Here are some of my failures
I'm writing this post for two reasons: to organize my thoughts, and to convince myself that my failures are actually failures.
I want to cultivate my failures, and I want to have more of them. Most of my failures are pretty bland and uninteresting. I want them to be grand and spectacular.
Here we go!
Becoming a classical pianist
Admitting this failure is actually what sparked this blog post.
My only education is a half finished bachelor's degree in classical piano. I won't get into the boring details of why I stopped or why I dropped out. But this idea of maybe some day becoming some kind of pianist hasn't truly left my mind - until now.
I would have to practice consistently for probably at least an hour a day, every day, for many years, in order to be able to achieve that goal. Totally not worth it. I've become more of a "talent stack" person than a "best in the world" person. I don't want to be best at anything, I want to have a combination of skills that makes me unique in some interesting way. And "classical pianist" is pretty much the ultimate "best in the world" type of thing.
While it's painful to let the deadwood burn, I've decided it's time to fully admit it, in my soul, that it will never happen, and let it go.
Operating system project
Halt was as an operating system research project. Ish. I didn't do much research, and I didn't make an operating system.
The idea came as a continuation of concui, an idea for an OpenGL renderer, optimized for 2D user interfaces, but being more immutable in its style. With React, you declare your GUI, and under the hood it figures out what to actually change in the DOM. With concui, you just skipped the entire DOM step. And I actually came up with concui a few months before React was released. These days, Flutter is a GUI framework with an implementation similar to what I intended for concui.
I blogged about Halt and it actually got a lot of attention on Hacker News. So I think the idea was sound. I just didn't execute it. At all.
The project itself failed, but I did learn a lot about how computers boot, what a CPU actually does, how memory allocation works, etc. Even though I didn't actually write much usable code, other than a "Hello, world!" x86 boot loader, I absolutely loved reading all the amazing documentation at the osdev wiki and just learning about how this stuff works.
I also got to know sortie, a pillar in the osdev community. All-round great guy
Becoming a martial arts black belt
I haven't trained martial arts for a couple of years now. If you ask me, I'll say that I'm on a break. I haven't quit!
But I do know that I'll never work hard enough to try to become a black belt. At one point I trained 2-3 times a week and sort of kind of planned to work on it all the way to black belt. But this was driven by motivation and passion, which is temporary, and not a real deep desire to actually do it.
I do plan to get back into martial arts though. Maybe train 1-2 times a month. With zero goal of progression, I just want to grind and have fun.
Buster.JS was made when pretty much the only options available for test frameworks was JsTestDriver. JsTestDriver was pretty bad, so it was a sensible project to start at the time.
A lot of good came out of Buster.JS. I got to work a lot with Christian Johansen, my "co-founder". Christian made some modules that live on today, that sort of came out of Buster.JS. referee and formatio are two worthy mentions.
I also got to know some awesome people that started contributing to Buster before its demise, and got to see first hand that if you build it, they will come.
My contributions to Buster were mainly yak shaving and bike shedding, as well as spending way too long on a combination of playing GTA IV instead of coding, as well as rewriting stuff a gazillion times.
My biggest takeway from this failure was a lot of experience in writing async code. One of the things I made was the server + browser code that allowed you to remote control browsers and run your tests in them. This one had to be made right so it didn't lock up if you closed or refreshed the browser at any point of a test run. Fun times!
A bunch of smaller open source projects
These are failures, in that I had big ambitions for all of them, but didn't follow through and finish them or market them in any reasonable way. So they are all dead now.
path-travel-agent is a low level path matcher, made to be a useful low-level companion for any routing libraries. It uses a tree structure to make it O(log n), instead of a list of paths that most other routing libraries use that ends up being O(n). It's mostly just a premature optimization, because for most sites, N is no larger than a few hundred at most. So nobody ended up using it, and I didn't really work hard on promoting it either.
live-validations is a plug-and-play validation framework to validate forms in Ruby on Rails as you type. It got some traction, but mostly because I was super active in the Ruby on Rails IRC channel and convinced a bunch of inexperienced Rails developers to use it.
dbs-are-fn.com, a blog
I started a blog, which is now dead. The git repo with all the old content is here.
It's not a complete failure - all of the posts now live on augustl.com instead. But I failed to meet my ambitions for making it into an active and alive blog.
A bunch of business/startup ideas
I've never even gotten to the phase of actually starting on any of them, so I'm not sure I can consider any of them failures in particular. But it's worth mentioning. My goal is, as I said, to start on stuff and fail with as much bravado and fanfare as I can, because that means that I tried. And I want to fail spectacularly at building a businesses or twelve.
More failures to come, stay tuned!
This is a proper 1990s style "weblog" blog post. It's completely and utterly uninteresting, unless you're somehow interested in me specifically, which you shouldn't be.
I hope that in 5 or 10 years, I can write another one of these blog posts, and hopefully I'll have failed at almost everything. But end up winning big, somehow. At least I'll have played.
Questions or comments?