So I’m looking around in my home directory, and realizing it’s something of an abandoned-project graveyard. Here’s a list of some files/folders and what’s in them.
mipsemu/- A mips emulator
sha1.c- A sha1 implementation in C. I did start one in OCaml, but I’m not sure where it went.
sha1-literate.c- Same thing, but with aspirations of becoming a blog post.
automail/- A web based mail client built on notmuch
c89-yacc/- A lexer/parser for ANSI C 89.
cc/- A C compiler.
ulisp/- A lisp implementation of some kind.
go.pcomb/- Parsec inspired combinator library in go.
go.sexpr/- A parser for some manner of S-expressions, in go.
There’s more, even when considering that I clean it out fairly frequently. All of these are abandoned, incomplete, and not even to the point of being at all functional or even recognizable as the thing they’re supposed to be. Many of them are literally files I created and worked on for about 15 minutes before getting sidetracked. Some of the projects on my github/bitbucket accounts are like this too.
I don’t vegetate in the in the usual sense. The term is most closely associated with television: after a long day, you plop down on the couch, turn on the TV, and more or less disengage. I don’t own a TV. I don’t like to disengage my brain. Even when I’m tired, I don’t really like to just do nothing.
But, sometimes, I will without really thinking about it, sit down at my computer, and just do whatever pops into my head at a given time. The result is what you see above. I do a lot of hacking, and don’t end up with any useful software.
Sometimes I’m okay with this. I learn a few things sometimes. I ended up reading the SHA1/2 spec. It was vaguely interesting, though there are a lot of magic constants that they don’t explain. I still don’t have any idea how you design a real hash function, but it was not without value.
Other times, I come away having exhausted myself, stayed up later than I wanted to, and generally made myself feel lousy physically - all without any feeling of accomplishment whatsoever.
As I said, I don’t really vegetate. This is the closest thing for me. Lately I’ve been doing too much of it; until Friday evening I’d spent most of the past week glued to a computer monitor during my spare time (and it doesn’t help that I’m doing some of that at work too). I want to do less of this. The trouble is, I typically go in with a very energetic, I-can-do-anything, creative feeling. I don’t start doing this because I want to veg, quite the opposite.
I’ve realized that usually when this happens the feeling is fairly non-specific. I turn on my computer without a clear sense of exactly what I want to do with it - I may have an idea going in, but am mostly just interested in playing with something, and before long I’m doing something completely unrelated.
I’m going to try a few things:
- First, just try to resist the urge to hack, unless I have a specific goal that’s realistic for me to get done in a couple hours, or however much time I actually have. “Fix bug X” or “Clean up thing Y” are often good candidates. “Write an entire compiler” is not. This is obvious, but I need to be more concious about it. “Learn how Z works” may be fine, depending on the value of Z, but the intent needs to be concious, which brings me to:
- If I’m not on my computer for a very specific reason, turn it off and go do something else. It’s too easy for me to just invent something to do when it’s right there.
- Treat my non-computer projects as just as important, and make sure I’m spending time on them. I’ve been trying to learn to draw, but haven’t been spending as much time on it as I’d like, partially because I keep getting wrapped into this kind of nonsense.
- Find ways to do as much technical work as possible without using the computer. This sometimes involves printing off pieces of manuals; sometimes you really need to be at an interpreter prompt to figure something out, but sometimes just sitting and reading a document can be what you need. These are good opportunities unplug.
If this doesn’t work I may have to take a page from Paul Tag, and mandate a Tag off for myself as well. We’ll see how it goes.