contrapunctus, by Christopher League
 

Reboot

With the summer ending and the new semester looming, I felt it is time to rescue this ’blog from its unplanned hiatus. It appears that I haven’t posted anything since early May.

So yesterday I spent some time refreshing my WordPress templates, configuring some new plugins, etc. After years of maintaining my own custom photo gallery scripts, I’m considering switching to flickr. I uploaded a few things to my photo stream already; you can also see updates in the new FriendFeed sidebar and on Facebook. So far I’m impressed with the tools on Flickr, and iPhoto export capability of PictureSync. We’ll see how it goes.

Incidentally, the initial draft of this post was written and uploaded from Emacs, with weblogger.el… fancy! Update: not impressed with its out-of-the-box behavior: had to fix up HTML tags and even line breaks by hand.  More hacking to do, if I think that’s worthwhile…

And the livin’ is easy

Hm, this space has been quiet for a while, but for justifiable reasons: I have two journal manuscripts submitted since the summer break began.

I’m never thrilled about writing for journals, because it often means that the key problem is already solved, and I usually would prefer to work on new problems than to “dot all the i’s” on old ones. On the other hand, it’s liberating to escape the strict space constraints of a conference paper. On the third hand, constraints are sometimes cited as catalysts for creativity. I’m reminded of the proverb “I wrote you a long letter because I didn’t have time to write a short one.”

I have also been ‘sharpening the saw’, also known as… Emacs hacking! Version 22.1 was finally released, and I took it as an opportunity to run through the manual and look for all the great little features and tweaks that have become available since the last time I studied the manual so intently. For example, just one thing that I adore for Java programming is glasses-mode (o^o). On-screen, it inserts some customizable little character in between LongCamelCaseWords so that you see them as Long·Camel·Case·Words. Ha!

Now I’d like to ‘sharpen my shell’ too. Zsh has lots of great stuff that I’m not currently using. I learned shell scripting in the early 90s on straight Bourne shell and tcsh, and only recently learned I could do concise parameter-frobbing things like ${file/foo/bar} rather than `echo $file | sed ’s/foo/bar/’` or whatever. Tab-completion for sub-commands (of svn, darcs, etc.) and host names (for ssh) would be great, and I know there are some directory-hopping features (beyond pushd/popd) that would help me. But one thing I’m grappling with is that I currently use zsh both in regular xterms and inside Emacs shell-mode. In the latter case, a lot of the fancy stuff in zsh won’t work. So do I avoid running shells inside Emacs, or hack shell-mode, or get term-mode working instead? Or, maybe forget zsh and do everything with eshell? Am I prepared to run always in Emacs, even when logged in to remote machines? I’m stuck.

Meanwhile, I cleaned up /usr/local/ on most of my machines. I try to avoid installing anything that’s not managed by apt, even if I have to backport it myself (such as with emacs22 on Debian etch). But sometimes it’s inevitable: either it’s something impossibly obscure, or I need a newer version than what’s available already, or it’s something I have hacked on myself and I need my version installed. So now what I do is keep a branch in /usr/local/src/, install it to /usr/local/stow/, and everything else in /usr/local/ is a symbolic link managed by GNU Stow. This should solve the problem of discovering some problematic file or library in local that I make-installed six years ago, and can’t remember what package it’s from or why it’s there.

Peer pressure

I had to see what all the fuss was about. I have been visiting ‘productivity porn’ sites like 43folders and lifehacker (and their associated flickr groups) off and on for a year. And last weekend I finally swung by a Barnes & Noble and picked up a Moleskine grid-lined notebook.

When I first opened it up, the experience was a bit deflating. I caressed the cover. I sniffed the binding. I investigated the pocket in the back. I don’t know what I was expecting… a shining beacon? A choir of angels? I guess it’s impossible not to be a little underwhelmed after the way these things are hyped on the Internets.

So I tried it for a week, sitting aside my usual cheap black-marbled composition book, half full. I carried the Moleskine notebook to meetings and seminars. I did some course planning and sketched some project ideas. I’m just up to page 12, and I have to admit it has grown on me already.

Having grid-lined pages comes in handy. It allows you to write landscape or portrait equally well. It supports very neatly-drawn ad-hoc tables. (I’m tracking meeting-time preferences for members of my committee on one such table.)

But more important is the size: 13 x 21 cm, which is a lot narrower than my old composition books, and a more extreme aspect ratio than even ISO 216 A-series paper. A narrow page is useful for typographical reasons, of course, but even for note-taking it seems to work out well. It’s hard to use my composition books on my lap or otherwise in the absence of a desk… but I guess that’s also partly because of the soft cover.

Anyway, I’d like to write more on my quest (and misadventures) to find suitable tools for project planning and task tracking. LifeBalance was fun for a while, but it doesn’t run on Linux, and the interface is too ‘widgetized’ for my taste. I set myself up on Backpack a few weeks ago; I like its interface and concept but there are certainly drawbacks for realizing the cross-cutting concerns of GTD (project view vs. context view). This morning I’m checking out org-mode for Emacs, and for now I’m amazed, but I’m still reading the manual. I guess once I manage to settle into something truly workable, I’ll write about it here. I’m sure to David Allen it’s a travesty to spend so long chasing down the perfect system rather than just getting things done. But to me it feels like a legitimate (but, so far, unending) meta-project to sharpen my tools.

Maybe call it Luddwrite

Designer Khoi Vinh posted an idea for a sort of word non-processor application, which he called BlockWriter. Though it doesn’t exist yet, he secured the domain name already… a nice touch. The motivation, as he describes it, is this:

I noticed a few years ago that some serious writers, at least in the early drafting stages of their work, were turning to manual typewriters as a method of sidestepping distractions… There’s no email to check on a typewriter, no beeps and pop-up reminders from other applications, and no access whatsoever to the Internet and its tantalizing abundance of productivity-killing diversions.

What’s more, a manual typewriter is a powerful antidote to authorial dawdling, that propensity to continually re-edit a sentence or a paragraph — thereby imparting the feeling of working without really working — instead of continuing to write new sentences or paragraphs instead. Unlike word processors or even the simplest text editors, manual typewriters don’t allow you to easily re-edit, insert and revise a sentence once it’s been committed to paper. This makes for an entirely different writing experience: the ideas come first, and the act of finessing them, of word-smithing, comes after all the ideas have been set to paper.

The application would have essentially two purposes (which could be served by separate apps). First, it would block out other distractions, perhaps going as far as to block the network. Second, it would pretty much act like a typewriter: the cursor moves forward only. You could use backspace to cross out previous words like this but otherwise you just keep typing and get the ideas out.

I can usually tune out distractions for long enough to come up with a few paragraphs at a time, assuming I’m actually interested in what they say. But I suffer much more from this latter problem: endlessly tweaking the words and the sentences. Writing in the small. Usually it’s more productive to get everything down, and then go back and tweak. The only way my dissertation got written was with me in a coffee shop with pen and paper (and, incidentally, no internet).

One of my favorite toys as a kid—before we had a home computer—was a basic IBM typewriter. It was electric, but didn’t do much more with the power than make the hammers move. I’d use it to write stories and plays, type up recipes, etc. Yes, I’m that much of a nerd. It has been so many years, that I never really thought about how a typewriter forces you to work.

Word processors (even their 1980s incarnations) encouraged endless tweaking of the words, and their WYSIWYG successors similarly encouraged tweaking of the format. It’s great that the software we have now lets us go back to insert, delete, and rearrange our text without retyping everything or sacrificing whole forests. But perhaps that flexibility has costs as well…?

Anyway, it will be interesting to see if anything comes of the idea. A hacker with more Emacs skills than I have could probably whip up a blockwriter-mode in under an hour. The first step would be to delete all keys bound to anything other than self-insert-command. :)

Emacs weather station

A few years ago, I wrote a little perl script that would fetch forecasts from the National Weather Service and format them for inclusion in an Emacs diary, so you can see the weather along with your appointments. I’m not using Emacs diary anymore (I’m a sucker for Apple’s iCal, I guess), but recently a thoughtful fellow named James contacted me with some enhancements to my script:

I had to make a few changes to make it compatible with my emacs setup. First, I had to replace percent signs with the word ‘percent’. Then, I had to stop the script from wrapping words, as my emacs setup takes care of it, and the script was conflicting with the emacs word wrapping.

I turned these two changes into user-configurable options in the perl script. I’ve attached the changes in case you want to distribute an updated version. I’m not the only one who needed to make these changes (a colleague I gave the script to needed it as well).

Here is a link to the updated script, and a screenshot that includes today’s weather. Enjoy!