Hi, loyal readers. I’m still here. Last week was busy at work, and getting up at 3:30am tends to make my evenings shorter. Any time I’ve had, I’ve been working on writing a Java utility to help with naming and sorting my pictures. It’s always a battle between finding time to write blog entries and finding time to write code. I like doing both, but writing articles tends to crowd out programming time. It hasn’t been as often that writing software has crowded out blogging time. And since I really want to write free software as well as write about it, I’m going to have to work on that balance.

I’ll be sharing my program here, with some trepidation. It’s not perfect; nothing ever is. I always imagine writing some elegant and beautiful work of art, but the words on the page never match up with that ideal. Even if posting software here won’t result in that much exposure, it’s a risk all the same. There could be condemnation, shame, and catcalls. You name it. But perfectionism is the enemy, so I try to keep plodding along. Trying to ignore the voices that tell me it’s not any good.
I take pride in my work, but I also make tradeoffs. For many utilities that I want to write, I just need something that gets the job done, and crude and quick is better if I can then move on to some other task. Some practices I know aren’t recommended but I don’t care if it’s in the service of keeping things moving. Well, I do care, but I try to quiet the protesting voices. Other things I’m just flat out ignorant of and would love to know better ways. But again, in attempting to get a job done sooner rather than later, I’m willing to go with sub-optimal solutions, and leave it to experience to teach me better.
I always write — whether it’s software or prose — with an invisible someone standing over my shoulder, judging me. Writing software is so much like writing prose. I’ve wanted to be a fiction writer for much of my life, and have read a lot of articles and books about it. It seems to me that writing avoidance and fear of criticism play a big role in each. In both activities, your work is all there, raw on the page to be shredded mercilessly. A lot of prose writing advice can apply just as well to software. For example: it’s often better to publish and move on to the next thing rather than endlessly polishing your pearls. You can learn faster by finishing a project and then moving on to the next. What you didn’t know this time, you’ll pick up eventually.
So then, why publish these kinds of personal applications at all? Why not just write and use them for myself? Well, I think it’s good to publish. If you write with the intention of sharing your work, it may help you write better code. And there’s always the chance that someone else may find your work of interest. I invested many hours in this utility. Thanks to the miracle of electronic bits having zero marginal cost (more or less), that work can now be infinitely replicated. Why not put it out there where it might find an audience?
Above all, I want to help build the free digital commons. This current application may not amount to much, but the next one, or the one after that, might. If I don’t get over my fear of posting code, I’ll miss my chance to participate.
You don’t have to be an alpha geek to enjoy programming and contributing to the free software community. I’m going to try putting my worries aside, and just share what I have, hoping that someone may find it useful. The Internet is big: there’s plenty of space for another page and another program. And every program that is free software, every page that is part of the free culture, is another brick in the future that I want to see built.
