December 16th, 2006
Most of the time when I download some new piece of software, it’s mere seconds before I’m frothing at the mouth about some interface or usability problem.
Which makes me sit up and take notice when a piece of software just does something damned elegantly, damned easily, and damned beautifully. Bwana, from Bruji, is one of those pieces of software.
Bwana is a UNIX man page reader. I’ve tried them before, and been underwhelmed. They try to take over hot keys on my system, or leave some UI application running all the time. I’m not that into man pages. What Bwana does is brilliant: it uses your web browser as the interface to beautifully formatted HTML renditions of your system’s man pages. I just type, for instance, “man:diskutil”. Since I’m always running a web browser, it doesn’t hurt anything to have it suddenly able to show me man pages. And the pages look fantastic.
Even better, it’s been recently made open source. So I guess I can fix my only complaint, that a “not found” man page doesn’t automatically bring up a list of substring matches.
Update: I decided to go ahead and implement these changes. Download my modified sources for a version of Bwana that, when it doesn’t find an exact match, presents a filtered index of man pages whose names contain the substring.
Nice work, Bruji.
Posted in Programming, Software Reviews, Usability | 8 Comments »
December 16th, 2006
An ability to export audio to iTunes has been part of my vision for FlexTime since the very beginning. How cool to be able to design a custom pattern of sound cues, send them to iTunes, then take them with you on your iPod?
I’ve been hard at work on this feature, and I’m nearing completion. Just some fine-tuning and bug-fixes. But I’m not going to be able to find the time to finish up until probably sometime next month. I know many FlexTime users have been waiting patiently for this feature, so as a compromise I’m releasing a beta version with the feature as it exists so far.
Download FlexTime 1.2b1
To use the feature, just select “Send Audio to iTunes” from the Routine menu:
The audio from any “Play Sound” or “Speak Text” cues will be arranged into an audio file the length of your routine, and sent to iTunes. The audio file is meant to sound roughly the same as what you’d hear if you pressed play from the beginning in FlexTime, and allowed the routine to run all the way to the end. I don’t incorporate repeats because I figure you can use iTunes or your iPod to repeat the track as necessary.
Among the known bugs is a problem where “Speak Text” cues do not show up in the exported audio on the first try. Just export again and they should be in there.
Let me know if you run into any issues, or have any last-minute suggestions for improving the feature.
Posted in FlexTime | Comments Off on FlexTime 1.2b1
December 15th, 2006
Greg Miller describes in excruciating detail (or glorious detail, depending on your perspective) the steps required to compile, load, and unload a simple OS X Kernel Extension.
It’s this kind of detailed analysis combined with a casual writing style that makes for great technical blog entries. File this one under “understanding what the eff is going on with my custom kernel extension.” You’d have no idea where to look if you just took Xcode’s template as a black box.
Posted in Darwin, Hacking, Web | 2 Comments »
December 12th, 2006
I really love NetNewsWire – it fits the bill for (almost) all of my aggregation needs. It even has a rather sophisticated syncing mechanism, which got even more advanced after the the product was purchased by NewsGator.
But syncing isn’t really for me. Don’t get me wrong, I want to read news from more than one machine – just very irregularly. And sometimes suddenly. I don’t want the overhead of syncing all the time just so my subscriptions will be available when I happen to pop out of town for a few days.
The fact is, 95% of my news reading happens on my main development machine, and maybe 5% happens on my laptop. So my special low-tech version of “syncing” involves two simple steps:
- Make sure my laptop has the same subscriptions as my desktop.
- Make sure the “unread articles” on either machine match my last reading.
I found myself doing some pretty crazy things, like simultaneously “catching up” on one machine and then “marking all as read” on the other. Finally, I realized I didn’t need to be so particular about things. I could do just fine if I knocked out “almost all” of the posts I had already read on the other machine. How to do this? Pretty simple. Just mark everything as read, and then mark everything after a certain date as unread.
I decided to take that certain date from a cue article. That is, an article I’ve selected in NetNewsWire. By running Mark Unread Since Date while I’m looking at any article in NetNewsWire, I instruct the program to mark as unread every article released at that time or later. So I can browse through some recently read feed, select an article, and “go back in time” to the unread articles from that era and later. By identifying a particular post as “something I read,” I’m guaranteed that nothing I haven’t read will be omitted (assuming I finished “catching up” on the other machine).
This really works for me. I’m careful to pick articles from a time that is “roughly a few minutes before I stopped reading on the other machine,” and have the easiest time of staying “in sync” between the machines.
Posted in AppleScript, Hacking, Usability | 5 Comments »