Last week I wrote a post about trying to be more conscious of how and why I end up spending time on my computer. The main rule I decided to institute was that I must be using the machine for a specific reason.
This has gone really well actually - I feel a bit more engaged with the world around me, and like I made more out of the past week than I usually do.
I’m also hitting a bit of hacking-withdrawal. Except at work, I didn’t really do much in the way of programming at all. I’ve realized that it isn’t just that I sometimes am unfocused and just hack without thinking about it. It’s that the vast majority of the hacking I do is during these periods. It’s a lot of blue-sky/grand-vision style thinking that gets me trying to take on way too much for an evening. In some ways, these can be my most creative moments, but I can’t seem to actually implement things during them. I’m also increasingly aware of the fact that I’m crap at getting things done in general. I’m easily distractible, and just generally don’t tend to stick with things.
So, I’m giving myself an assignment. I am not allowed to do random side hacking until it’s done, and in the meantime it will provide a nice concrete reason for using my computer. It’s something I basically know how to do, having done similar things before, using technologies I know in my sleep. The point is to practice finishing things. I would appreciate it if people would scold me if they find patches of mine that aren’t going into other people’s projects, or this one.
The project is just an interpreter for my own home-grown dialect of lisp. I’ve started this half a dozen times, and I’ve basically just gotten sidetracked, or done a huge amount of work in one day, only to come back to it and find it to be unmaintainable. The term project for my intro programming languages class in college was something similar.
It’s something I know how to do. It’s about time I did it. Once I’ve pushed the first commit, I’ll be working on it here, though at the time of writing I haven’t published anything.
We’ll see how it goes.