Finished reading “10 Days to Faster Reading”

When the Personal MBA manifesto came out back in 2005 (see The Personal MBA: Mastering Business Without Spending a Fortune for the original), I read through the list, jotted down a couple book ideas, but mostly just left it at that. Lately, however, I’ve been reading more business books, and I thought I’d give the list another look.

The idea of a Personal MBA has grown momentum, and the list of books has been kept fresh. This time around, I pulled out maybe half-a-dozen that sounded interesting; But before diving in, I took the recommendation to brush up on my reading techniques using “10 Days to Faster Reading.”

Before starting the book (and perhaps still now), I would have described my reading style as slow, steady, and thorough. I read to comprehend, debate, understand, and work the material into my world view. That’s also a fancy way of saying that I’m not the quickest reader, but that I pay attention. That said, I’m always interested in learning something new and boosting my productivity.

My mindset going into “10 Days to Faster Reading” was open, interested, willing to learn, but somewhat skeptical that it would work for me. My assumption about speed reading was that it focused more on skimming then on deep engagement. Fortunately, the book changed my view a bit.

One of the biggest takeaways for me, was the idea that when we’re young, and learning how to read, we’re taught to slowly go through each word at a time because we’re still building our vocabularies and teaching our eyes how to parse written text. Unfortunately, as we get older, our education systems tend not to re-visit reading skills in a manner more suited to our growing ability to process words. This is why adults can boost their reading speed — they have the ability to process text at a rate faster then we normally use, if you can teach your eyes how to do it.

Each chapter in the book contains lessons and timed reading exercises. With stopwatch in hand, I tracked my progress. Here’s my results: (Note that each chapter often had you applying a different technique, so progress wasn’t meant to be linear)

Words per Minute Comprehension Notes
265 100% The first test, meant to be a baseline measurement before learning new reading techniques.
345 90%  
300 70%  
459 n/a  
1096 70%  
448 60%  
400 90%  
600 100% Familiar subject matter
400 70%  
400 70%  

My times definitely improved, though comprehension suffered as the pace increased. Interestingly though, two things came out of this:

  1. If 70% comprehension is good enough (ie., if all I need is to get the gist of something), it’s possible to really crank the speed up.
  2. Familiarity with the subject matter makes a huge difference. (Which is why previewing and skimming before reading can make a big difference.)

I still need more practice, but at least now I know what to work on, and I have a handful of techniques to experiment with. So far, I’ve found the best application to be with Newspaper and magazine articles, along with online news where I just need the general story.

Overall, I’d say that the potential boost in reading productivity was worth the $9 book price and the time it took to read it.

For more:

A simple shell script for grabbing the current temperature from the command line

In case someone else needs it, here’s a simple shell script I use for grabbing the current weather conditions by U.S. zipcode using the Yahoo APIs:

function weather {
  zipcode=$1
  if [ -n "$zipcode" ]; then
    lynx -dump "http://weather.yahooapis.com/forecastrss?p=$zipcode" | grep -i condition | awk -F' ' '{print $4 $5 $6}' | awk -F'< ' '{print $1}' | sed 's/,/ /'
  else
    echo 'USAGE: weather <zipcode>'
  fi
}

The script uses lynx to grab the Yahoo RSS feed, piping the output to grep, which extracts the line containing the word ‘condition’. awk then pulls out some specific fields (delimited by spaces, then later by ‘<‘), and sed converts the commas to spaces for prettier output. Obviously, the whole thing is fairly fragile, and changes to the RSS format (which happened maybe a month back) break the code. Checking the weather in Austin with the command: `weather 78701`, currently outputs: “Fair 67F”.

Admittedly, this is perhaps more of an i…

Admittedly, this is perhaps more of an interesting trick rather than a needed feature; However, if you’ve ever wanted to print man pages or simply read them in a nice, anti-aliased document view instead of within the Terminal, here’s a tip you might like. The following bash script (and credit goes 100% to my friend Victor, who is sans-blog) will format and open man pages in Preview:


#!/bin/bash

cmd=$1
if [ -z $cmd ]; then
    me=`basename $0`;
    echo "Usage: $me command_name";
    exit;
fi

man $1 > /dev/null 2>&1
if [ $? -ne 0 ]; then
    echo "No man page for $cmd";
    exit;
fi

man -t $cmd|open -f -a /Applications/Preview.app

On my box, I called the script ‘manpreview’ and dropped it in ~/bin/ for easy access. Once you `chmod u+x` it (and have ~/bin/ in your path), you’ll be able to do fun things like `manpreview tcpdump` for some extended reading.

Organizing Series 60 application menus

I’ve been using Series 60 phones for several years now, and during that time I’ve developed a few tricks to help work with the phone UI. One of the most important is in organizing my applications so that I know how to find them and can get to them efficiently. To do this, it’s important to know a few key concepts:

  1. You can create and rename folders. (One level deep only.)
  2. You can move applications around and into folders.
  3. The numerical keypad can be used for fast navigation.

Let’s start from the beginning.

The organization and folders in the Series 60 application menu are completely configurable. The default setup is likely to be different across the various phone models and operators, so I like to move things around to better match my needs. I currently have five folders at the root level:

  • Media
  • Net
  • Tools
  • Extras
  • Games

The layout looks like this:

menu_screen

In the “Media” folder, I keep applications related to imaging and video. In the “Net” folder, I keep web browsers and anything that uses Over The Air (OTA) networking, including Bluetooth. “Tools” contains phone management applications, like “Settings”, “Manager”, and my various file explorers. “Extras” has miscellaneous applications like “Converter” and “Clock”. I also keep a few applications “below the fold” that are important, but rarely used.

When you’re ready to create new folders, make sure you’re at the root level (ie., main menu), then look in the “Options” menu for the “New folder” command:

options_new

After selecting “New folder”, you will be prompted to name it:

new_name

Once you have your folders named so that they make sense to you, move your applications into the appropriate folder by highlighting them and selecting “Move to folder” from the “Options” menu:

options_move_fldr

With your applications in the right folders, you can rearrange them using the “Move” command under the “Options” menu. To do this, highlight the item you wish to move, select the “Move” command, then navigate to the location you’d like your item to be and click the d-pad center button to make the move.

options_move

Arranging your applications properly becomes even more important once you learn how to use the numerical keypad to navigate the menu. (This is the most important part of the lesson, so grab some coffee if you’re losing focus.)

When you first open a menu screen, selections can be made using the 1-9 keys. The keys map to the application icons like this:

screen_key_map

For my setup, that means I can open the Calendar just by pressing the ‘7’ key, or drop into the Games folder just by pressing the ‘9’.

Because of the potential for fast navigation, you should ensure that the items “above the fold” are the most important ones, and you should arrange your applications so that the frequently used ones will be accessible using the number pad. Once you get the hang of it, you’ll find numerical navigation to be much faster.

In addition to simply organizing, I also take things a step further. For each of my folders there is generally one application that I use most often. Therefore, I arrange the items within the folder so that the most important application is in the same numerical key position as the folder itself. For example, I have my “Media” folder in position ‘3’:

menu_media

Once that folder opens, I have the “Gallery” application also sitting in position ‘3’:

media_gallery

Since the “Gallery” is the application I’m most likely to be opening, that means all I do is press ‘3’ twice to launch it from the main menu. The full key command becomes: ‘menu’-‘3’-‘3’.

I have my other folders setup this way as well: ‘menu’-‘4’-‘4’ launches Opera; ‘menu’-‘5’-‘5’ launches FExplorer; and ‘menu’-‘6’-‘6’ launches “Converter”. I also have a few that weren’t designed for optimization but have been become a learned pattern. For example, I have the “Clock” application at ‘menu’-‘6’-‘5’, and my thumb has learned that the Clock is “65”. (During a recent conversation someone complained at how long it took to open the Clock application on Series 60. I said, “It’s only three clicks”, and opened the application on my phone mid-sentence. Yeah, I know… I’m a rock star geek.)

The point of all this is that if you’re using Series 60 and find it cumbersome to navigate between applications, you might find it helpful to take control and adapt the phone to your way of thinking, rather then the other way around. (I’ve also heard that it’s helpful to read the manual, but I haven’t done that either ;-)

tracking software releases

I use Versiontracker, MacUpdate, freshmeat, etc. to watch for software updates. Freshmeat and Versiontracker offer RSS feeds to make things a little easier, but other sites require daily, manual visiting to check for updates and new releases. That sucks. In fact, keeping up with patches and new releases is such a hassle that Versiontracker and MacUpdate have even developed business models around this annoyance by offering paid services utilizing desktop tools to monitor your currently installed software for updates.

While I like the idea of using a background application to monitor this stuff (meaning, I like the idea of automating the task), I don’t like the service being bound to one particular tracker. For example, even if I did pay for the Versiontracker service, it still wouldn’t monitor all the unix and open-source stuff I run. What I need instead, is a generic way to monitor software projects for updates — and I want it to come to me via RSS/Atom; So naturally, I built a simple proof-of-concept tool that pulls RSS feeds from software trackers, compares the contents to the list of software I’m interested in, then generates a different RSS feed containing ONLY the updates I’m interested in. Making it work turned out to be rather easy.

To start with, I focused on the Versiontracker RSS feed. The folks at Versiontracker were nice enough to use a URL scheme that gives each software product a unique ID, making it very easy to parse. The feed is updated rather frequently though (and missing a post would be bad), so I needed a way to continuously poll their feed and cache the results without being a bad netizen. The solution? Bloglines, of course. Adding the feed to Bloglines let’s me catch all the content updates without worry. And since Bloglines offers an API for pulling content, it was simple enough to write a script that checks the feed. The meat of it looks like this:

1: # Connect to Bloglines.
2: bws = BloglinesWebServices("***@***.***", "****")
3: 
4: # Fetch the Versiontracker feed and mark it as being read.
5: data = bws.getitems(*****, True)
6: 
7: # If we got something...
8: if len(data.entries):
9:    # Compare the VT feed to my saved list of software
10:   for i in data.entries:
11:       for key in self.listing.entries():
12:           if i.link.endswith(unicode(key)):
13:               # Save a list of dictionary entries that describe the software.
14:               self.updated.append({'title':i.title, 'link':i.link, 'description':i.description})

The BloglinesWebServices class is defined by pybloglines, which is built on-top of the universal feed parser.

In line 11 you’ll see that I’m pulling from a data structure called listing.entries. This is just a list of ID’s that are pulled from a text file. Building the text file is fun though — all it took was a simple CGI and a Bookmarklet. Using the Versiontracker site, I navigate to a piece of software that I’m interested in and simply click my Bookmarketlet to pass the URL to a CGI. The CGI extracts the Versiontracker ID from the URL and stores it in the text file!

The rest of the code takes the data structure `updated.append` (from line 14) and generates an RSS feed from it. Then, in a nice piece of circular processing, this new RSS feed was also added to my Bloglines roll. With both feeds in Bloglines, the content monitoring is automatic from my perspective, with the whole system flowing like this:

  1. Bloglines polls Versiontracker for updates and caches the results.
  2. Bloglines polls my content filtering CGI for updates.
  3. The CGI authenticates with Bloglines.
  4. The CGI then pulls the cached contents from the Versiontracker feed (marking it all as read.)
  5. The CGI returns an RSS feed containing only the items that I’m interested.
  6. Bloglines caches the results of my CGI processing for the next time I log in.

Beautiful.

GTD

I finally finished reading “Getting Things Done: The Art of Stress-Free Productivity” by David Allen, and I wanted to post it here as a recommendation for anyone who’s interested in techniques for optimizing your workflow, your inbox, and your overall productivity.

The book was a little slow at first, and a little redundant at the end, but the middle was wonderful. There are plenty of people blogging about the book and the techniques it presents, so I won’t go overboard here, but for those resisting the kool-aid, Allen does present a very workable model for getting ideas out of your head, processed, and completed.

The majority of my tasks are done using my computer, so my GTD system takes place on my PowerBook. For email, I’ve simplified my archive folder structure (thanks to GMail I’d rather search then spend time filing) and introduced folders for: “_1_Action”, “_2_Hold”, “_3_Respond”, “_4_Wait”, and “_5_Someday”. To make processing my inbox even easier, I’m using the Mail Act-On plugin for Mail.app to bind custom key events to mail rules for the actual sorting.

For collecting ideas, notes, etc., I’m using VoodooPad with pages for my projects and things like “@home”, “@office”, “@errands”, etc. I’ve also started using Quicksilver much more heavily for system interaction. (Ironically though, I almost never use Spotlight, because I can’t stand the general experience I have with it, which usually goes something like this: I hit Apple-Space to open the search field; type in the search string; see the file I’m looking for, but since it’s physically moving in the UI, I click the wrong file, and before I can chase down the one I meant to click, it’s pushed off the screen as the search results list grows. I hate it. I feel like it’s taunting me because it knows where the file I want is, but it won’t let me actually select it.)

On a related note, I also read “Execution: The Discipline of Getting Things Done”, by Larry Bossidy, et al. Avoid that book — it had nothing to do with getting things done, and instead, is full of generic business stories and quotes that I hope no real manager ever uses.

For those interested in learning more productivity tricks, you might also try 43folders.com and lifehacker.com.