geekery

You are currently browsing the archive for the geekery category.

Todo.awk in action; colors and fonts are my system default.

Todo.awk in action; colors and fonts are my system default.

There are a lot of programs and systems out there to manage a GTD-style todo list, but none of them have really worked for me. I’ve tried everything - web-based solutions like Remember the Milk and Todoist (and many, many others), ThinkingRock, OmniFocus, Things, MonkeyGTD, and Todo.txt. Some were very close to what I wanted, but most just required way too much clicking around to let me do what needed to be done; when a todo list starts asking me to import contacts and GPS-tag my todos, things have gone very wrong. I need a computer-based system that does a few simple things:

  • Keeps all my todos in plain text files (the kind that often end in .txt and open in Windows Notepad), because plain text is the most portable, future-proof format around;
  • Updates my todo list, makes backups, and keeps records of completed tasks without ever requiring me to edit the raw data by hand;
  • Runs instantaneously, even on my underpowered EeePC;
  • Facilitates my weekly review process; and
  • Incorporates itself well into my workflow, which generally revolves around the command line and Firefox.

Todo.txt came the closest to this ideal (Shawkle was pretty good, too), but todo.txt didn’t facilitate my weekly review process well enough. Most frustratingly, it wasn’t able to print a list of my active projects so I knew what to review. In short, managing my todos had turned into a simple problem that demanded a customized solution.

To remedy these problems, I wrote todo.awk, a short program for managing todo lists at the command line. Todo.awk is (surprise!) written in GNU awk, a scripting language that’s usually preinstalled on Linux systems (and can be installed gratis on any computer in ten minutes). [Edit: Properly speaking, it's a Bourne shell script wrapped around little pieces of awk.] It runs instantaneously, even on my underpowered netbook, and supports displaying todos by context or project. It manages lists of deferred projects and supports an easy-to-use tiered priority system. Most importantly, the program is very short and easy to extend.

To install todo.awk, right click and save the file as “todo.awk”. Put todo.awk in your $PATH and make it executable, define $TODOFILE, $TODOBACKUPFILE, and $TODOARCHIVEFILE as environment variables, and you’re ready to go! If that was confusing, leave a comment and I’ll happily guide you through installation in more detail. And if you find any bugs, please leave a comment so I can squash them!

After two years of running Mac OS X exclusively, I’m giving up and moving back to Linux. For the most part, I’m surprised at how generally not-awful OS X was; everyday things were pretty easy, and a lot of fairly complicated things worked exceptionally well. Especially when I confined myself to the stock Apple applications (Address Book, Mail, Safari, iCal, etc.), I was amazed at how easy it was to integrate data from a variety of sources. And the iPhone’s seamless integration into this environment was just the icing on the cake. But I really, really missed some features I’d grown accustomed to in Unix-like operating systems.

  1. I missed having scads of good free (as in $0) software available for every imaginable purpose. I’m at least theoretically willing to pay for quality applications that I use often, like browsers, mail readers, text editors, and presentation software. But I’m also a person who enjoys dabbling in a wide variety of computer and art-related fields. I’m reluctant to pay $100 for well-designed but very limited software (like the most basic versions of Photoshop), and I flatly refuse to pay hundreds or thousands of dollars for the most advanced software on the market (Final Cut Pro or Adobe Creative Suite). Linux makes things easy by offering a variety of feature-rich but zero-cost applications for every task. Now I can be an amateur director, DJ, and graphic artist without spending a dime.
  2. I missed being able to do all my everyday tasks in a good text editor. Since most of my computer time involves reading, writing, and pushing around text, it’s a pain to use ten different programs which all have different keyboard shortcuts and options and lack the power of emacs or vim. Plus, plain text is universally readable, easy to back up and share, and completely future-proof. As an extra-special bonus, it works well with version control systems (which are unbelievably useful for often-edited documents like resumes and todo lists, but that’s another story). Of course, I could have installed a batch of Unix applications and text editors - but then why use OS X at all?
  3. And most of all, I missed central software repositories. It’s just…well, it’s just painful to do things any other way. In most popular Linux distributions, more than ten thousand programs are available to browse, search, install, and uninstall with less than five words at the command line or a few clicks of the mouse. No Google. No spyware. No manual hunts through your hard drive for configuration files left behind after uninstalling something. Compared to that, even something as simple as finding and installing a decent, mid-range audio editing program for the Mac was long and frustrating.
  4. I would have been able to tolerate all this, except that my computer was also running more and more slowly. The spinning beach ball of doom was a constant companion, even though my laptop is only two years old. I’d have loved to disable all the widgets and graphical effects that were bogging things down, but that isn’t possible in OS X. On Linux, I have the option to run a bare-bones environment that doesn’t do much automatically, but also runs lightning-fast. I’m an impatient person, so I’m much happier now.

To my amazement, Linux (or at least the particular flavor of Linux I’m using at the moment) has made enormous strides in usability. Nearly everything worked immediately, without the endless configuration struggles I’d had in the past. If you spend most of your day using vanilla office applications and enjoy dabbling in other areas, you owe it to yourself to try Linux.

Awesomely Geeky TV?

I can’t say that I really know that much about it, but the theme song for CBS’s The Big Bang Theory is the most amazingly geeky thing I’ve seen in a long time. I love it.

Update: after poking through the clips available online, I’ve concluded that the show itself is mediocre at best. Nevertheless, someone deserves a prize for that animated intro bit.

Today is the beginning of the rest of your life - a life without antiquated paperback pharmacopeias. A life of ease and convenience. Yes, you guessed it - Epocrates Rx is finally available for the iPhone and iPod Touch. All the usual information is included (dosing, cost, interactions, pharmacology, etc.), and because Apple worked directly with Epocrates during development the interface is excellent and the layout is stunning. Yes, I just said that a drug reference has a stunning layout.

But all that is old hat - I mean, Palm-based devices are still mired in technology from the 1990s and they’ve had these capabilities for years. The really cool part of Epocrates for the iPhone is the integration of pill pictures (which have been available from Epocrates online for quite some time). This finally solves one of my most vexing problems on the wards: despite all the pharmacology I’ve learned, I have absolutely no idea what most medications actually look like. Is glipizide a small blue tablet or a big pink gelcap? No clue. Now, when the pleasantly demented, morbidly obese woman admitted with altered mental status mumbles, “I’m on them sugar pills - you know, the little blue ones,” I’ll have some clue what she’s talking about. The Epocrates interface is intuitive - input any pill characteristics your patient can remember and Epocrates will display up to 25 matching pills. So if my diabetic lady can tell me that her pill is round, blue, and coated, I can look at the list of matches and guess that she’s on low-dose glipizide. And I can even show her a big picture of the pills to make sure that we’re on the same page. Pretty great, if you ask me.

Unfortunately, Epocrates is definitely hampered by the iPhone’s touch keyboard. The phone’s auto-correct feature does a good job with standard English, but it’s hopeless with medical jargon and drug names. When you’re in a hurry (and your hands are all greased up with emollient-laden hand sanitizer), the last thing you need is to keep typing “glioizide” instead of “glipizide.” Epocrates would be noticeably more user-friendly if it added all the drug names in its formulary to the phone’s dictionary, at least while Epocrates is the active application. Nevertheless, this is a minor criticism; Epocrates for the iPhone not only brings a classic application to Apple fans, it adds a slick user interface and a few genuinely useful new features. Pretty sweet for a free download.

I’m supposed to be giving a 10-minute talk on the surgical management of ulcerative colitis this Thursday at teaching conference, so (as always) I’m posting my presentation online in case anyone else can use it. For all statistics, I’ve included references in the primary literature when possible and references to Sabiston otherwise (the footnotes are clickable hyperlinks). You can navigate through the presentation using the arrow keys, or you can mouse over the lower right-hand corner of the slides and some controls should pop up. If you’re so inclined, pressing “t” will toggle between presentation mode and my scanty speaking notes.

This is also my first attempt at using Eric Meyer’s S5 presentation format with John Manoogian’s Glossdeck theme, and they’ve been really great so far! S5 uses a nice mix of JavaScript, XHTML, and CSS to make simple, standards-compliant presentations that can play in any modern browser. Though I haven’t experienced this yet, I’m told that the images won’t scale well at resolutions other than 1024×768. I have to say that it’s really nice to be able to write a presentation in a text editor rather than something intensely visual like PowerPoint or Keynote. Like writing LaTeX markup instead of word processing, it lets me focus on content rather than style. It’s also nice to use when I’m trying to work in little snippets throughout the day, using whatever workstation I happen to be near. As a side note, I’d originally planned to test out Google Presentations, but the site was down for a while this afternoon and the thought of a server failure during the conference almost made me pee my pants.

Update, 10 Jul 2008: This talk was well-received by a group of surgeons renowned for their merciless pimping, so you may get some mileage out of it. The meta-analysis referenced on the DALM slide was particularly good fodder for discussion.

« Older entries