I think a lot of people might question why I'd replace something that pretty much works with something that only kinda does and that's far more prone to breaking. It's something I do more frequently than I should admit.
If you've tried to hit my website between when you're reading this and labor day chances are you've witnessed one of the following events:
The accidental publishing of all my drafts (caused because my deploy binary deployed to the project repo rather than the deploy repo and thus overwriting itself)
Forgetting to publish the most recent article thus slapping every new visitor for 24 hours in the face with a cold slimy 404.
Believe it or not, I'm not doing this to alienate the eight or so people per month who stumble upon my writing. I'm doing it because I like to invent my way into understanding. nuclearsandwich.com has stood as my representation on the internet since 1999 (I was eleven and in fifth grade). Rarely has it looked good or worked completely in the past thirteen years. It looks like it does because I insist on writing it myself. I do this because I don't know much about web design and what little I do know, I have no where to practice it because let's face it. Who would put me in charge of design?
So instead of using a system with batteries included, generally pleasing colorshemes, and fonts I've never even heard of (or just Helvetica), I spent hours of my weekend trying out different fonts, deciding which ones were readable, pleasing, and accented how I felt about what I was writing. I'm not sure if fonts can do all that, but I'm quite pleased with the ones that I found.
One thing I lost (that if you care about, speak up!) was an rss feed of my posts. I will be flat out pleased as punch if anyone actually subscribed to the rss feed that Octopress generated. Now if I want one, I have to actually sit down and read how to generate an Atom feed.
Out of nothing more than curiousity (and maybe a little vanity) I opened up nuclearsandwich.com on my phone yesterday to see what it looked like there.
Honestly, it looked better than I expected. Some folks might tell me I need a "responsive design" or something in order to be mobile friendly. But if that becomes something I want to do, I'll need to sit down and figure out what a responsive design is and how to do it.
There's a pattern here. By forcing myself to do everything, I learn a little more about what my needs are versus wants which I thought were needs.
I maintain my own mail server for a very similar reason. There's a lot of shit that goes on in a gmail account. I'm not even sure I trust all of it. But when something breaks in my email I know precisely who to blame and where to look.
Just because I can do something doesn't mean I like to. Never trust me to run your mail servers for you, or write you a POSIX shell, or design your web site, or write you a web framework, or a test harness. Someday I may get good enough at one of those things that I change my answer but in the meantime, I'm going to keep doing things that are beyond me because even if they don't come out perfectly, they won't be beyond me when I'm done.
So the next time you don't know how to do something, figure out how and do it. Even if it works like ass you'll still learn a ton.