If you write software for a living (or just for fun), you're probably using a bunch of other pieces of software to help you get your job done.
At that moment, the developer was enlightened.
I'm going to rant a bit about how this realization should change your life. What realization? That the thing you are working on and the thing you are working with are of the same substance. You can, and you should, use the same tools to improve both.
Suppose you're hosting a coding dojo and want to do continuous integration; that is, you want to always show the state of the tests while editing code. Here's a pretty stable solution I came up with after a few tries.
Note that there's no "... and why you should too". This post is decidedly not doing a bunch of things:
- It's not arguing for or against going to / finishing university
- It's not calling for arguments on either side to help me make a decision (it's all done and in the past)
- It's also not a general statement about anything at all.
This post is instead the story of my very specific case. These are true for me, they may not be true for you. I share all details openly, recognizing that some of you don't agree with my decision. My goal is also not to convince you about anything; I'm explaining my thinking and feelings so you may better understand, and if needed, more easily accept my decision.
Warning: it's a really, really, really long post. It gives all the exposition needed to understand me (in this regard). I don't mind if you don't read it, but if you want to understand, then please do. These are the arguments I considered, how I weighed them, and how I came to the final conclusion.
A tragedy in one act.
Sub-title: the case-insensitive file system strikes again.
Location: an OSX development machine.
There's a whole lot of material on the 'net about why you should keep a diary, so I'm not writing about it. I'm writing about how I'm planning to do it, starting today. There are a few conditions the medium needs to satisfy:
- Be software, obviously :)
- Be plain-text
- Have a nice-looking version I can read later
- Be synchronized online
- I want to have a lot of control over the data (no submitting entries in a web form)
- Be encrypted