Friday, December 4, 2009

Barry Lyndon: yet another Kubrick masterpiece

After several recent mentions of Barry Lyndon on Daring Fireball, I thought I should re-watch this Kubrick film I recall the least. It's available for "Watch Instantly" on Netflix, so I put it at the top of my queue, and watched it over the last couple nights.

The cinematography in Barry Lyndon is beautifully painterly. Several scenes reminded me of the Rembrandt and other paintings I've seen at the Metropolitan Museum of Art.

Of course I cried during the one emotional scene. It's much more effective for some reason because you know it's coming. (And much more effective on me now that I have children.)

Are there any other filmmakers who have made so many masterpieces as Stanley Kubrick?

A little bit of trivia that stood out on Kubrick's excellent Wikipedia page: "…the only Academy Award Kubrick ever received was for supervising the special effects of 2001: A Space Odyssey."

A couple months ago, a Daring Fireball post led me to Jeremy Bernstein's 1966 interview with Kubrick. The video has been removed from blip.tv, but I don't recall it being difficult to find. I believe I downloaded a ZIP of MP3s, which I listened to instead of podcasts for a couple days. It truly is "75 minutes of audio gold".

Update: A friend on Facebook (thanks Aaron) pointed out that Barry Lyndon (as Wikipedia puts it) 'saw a considerable number of sequences shot "without recourse to electric light."' That make this masterpiece an even more impressive achievement.


Friday, September 11, 2009

Today

(I posted this on Facebook, but all the line-endings were removed. So I thought I'd copy it here where I have a little more control over the formatting.)

Some things I'm going to try not to think about today:

  • I'm now closer to 50 than 40
  • When my father was my age, I was 21
  • When my grandmother was my age, I was born
  • When Henry (our youngest) is a senior in high school, I'll be 59

Instead, I'm going to concentrate on the feeling that my best is still ahead of me.


Friday, July 10, 2009

Two pitchers won this week without throwing a pitch

Two MLB pitchers won games this week without throwing a single pitch.

Alan Embree won Wednesday for the Rockies when he came into the game in the top of the eighth inning with two out and a man on base. He picked off the runner for the third out, without throwing a pitch. The Rockies scored a single run in the bottom of the eighth (giving Embree the win) and Huston Street came in for the Rockies in the ninth and got a save.

Pirates right-hander Joel Hanrahan won without even being at the game. In fact, he won without even playing for the winning team. He was the pitcher of record on May 5 when the game between the Nationals (who Hanrahan played for back then) and Astros at Nationals Park was halted because of rain in the bottom of the 11th inning. Hanrahan was traded to the Pirates on June 30th. The game finally resumed Thursday with Washington winning, 11-10, in 11 innings.

I love this kind of baseball trivia. (Though that's not why I love baseball.)

(Note the Hanrahan article doesn't say if a pitcher has ever won a resumed game without being there before. But the Embree article says the last time a pitcher earned a win was surprisingly as recent as 2003. But that's the only other time this feat has been recorded.)


Friday, July 3, 2009

Children of the Mind

The feature in iPhone 3.0 that resulted in the biggest change in my life is the little "1X" button when playing podcasts (and audiobooks) that switches to "2X" when pressed, enabling the audio to play back at "double speed". (The pitch is adjusted so there is no "Alvin and the Chipmunks" effect.)

I've found I enjoy listening to most of the long list of podcasts I download in iTunes just as much at 2X. (I've heard Leo Laporte say that some study has shown that retention is higher when listening to audiobooks in this fast mode. Perhaps he was referring to this.) That has resulted in quite a bit more time to listen to audiobooks. So the conclusion of this long-winded introduction is that after only getting through about a quarter of Children of the Mind in five weeks, I got through the rest of it in less than a single week.

I blogged about finishing Xenocide and starting Children of the Mind in "Xenocide". I wrote then that my expectations for Children of the Mind were raised after enjoying Xenocide more than I expected. Unfortunately Children of the Mind continued the streak of Orson Scott Card novels "proving" my thesis in "The tyranny of high expectations".

Unlike Xenocide, there wasn't much interesting science in Children of the Mind (and that's probably what I look for the most in an SF novel). Again, there wasn't much action. [SPOILER WARNING] I was more interested than I might have predicted in the fate of Peter and Wang-Mu (and Jane and Ender), but I found the characters agonizing over each other's fate tiring. And the mystery of the nature of the creators of the Descolada virus is never revealed.

In an afterward to the audiobook written and narrated by Orson Scott Card himself—I believe each of the audiobooks in the Ender's Game series have such an afterward—states that he intends to someday write one more book in this series. Children of the Mind was not so disappointing that I won't want to read that when it comes out. But if the future me reads this blog post first, I advise me not to re-read Children of the Mind before that.

Friday, June 12, 2009

Recommended Canadian Content of the Week: Barenaked Ladies

I remember first becoming aware of Barenaked Ladies when CBC Radio began playing If I Had $1,000,000 and Be My Yoko Ono and interviewing the band before the album Gordon was released. I was struck by their humour (Canadian spelling intentional) and their musical skill was evident.

I bought Gordon as soon as it was available, and it's still one of my favorite albums (by any group or artist). It was very popular in Canada, especially with my circle of friends. I've seen them live twice, and enjoyed their improvisation and sense of humor—they seemed to really enjoy performing, playing music and each other's company.

The Wikipedia article on them is very interesting reading. Don't miss the first two paragraphs under "Indie Origins". I searched YouTube and found this short excerpt of their Speaker's Corner performance of Be My Yoko Ono. (See the last paragraph under "Indie Origins".)

I admire the group for the unabashed Canadian references in their music, even after their success in the U.S. They seem proud of their origins, but are not humorlessly patriotic. Growing up in Canada I was always aware of Canadian artists, and it irked me when (it seemed to me) they forced American references into their music as if they were ashamed of where they were from. (I should collect examples of this. I don't think it would be hard to find several.) Now, of course, I realize this wasn't out of shame but was probably a desperate attempt to increase their chances of commercial success south of the 49th.

My father mentioned during my parents' recent visit that the band had broken up. Actually (at least according to Wikipedia), Steven Page has left the group. I'm sorry to hear that—the band of course won't be the same without him—but I wish him and the remaining BNL members good luck in their continued careers. I'll follow them all with anticipation of more good music.

A couple more of my favorite songs of theirs:

I also recommend their childrens' album Snack Time. I'm always happy to listen to that with the kids. The song The Canadian Snacktime Trilogy i) Snacktime is a lovely tribute to Gordon Lightfoot. And Crazy ABC's is hilarious.


Tuesday, June 2, 2009

Recommended Canadian Content of the Week: Leonard Cohen

The choice for my second RCCotW blog post was easy. Leonard Cohen is one of my favorite singer/songwriters, Canadian or not.

I was introduced to Leonard Cohen fairly early, but I guess I wasn't ready for him. A grade 7 a teacher whose name I can't recall (and who I didn't appreciate at the time) split us into groups and had us do a presentation comparing two artists. I wasn't assertive enough at the time to choose two artists I liked (and at 12, if I was aware of the creators of the music, books, movies and TV I enjoyed, I'm sure I didn't think of them as artists), so my partner (who I also don't recall) and I asked (or more likely whined) that we couldn't think of anyone. The teacher suggested two artists that I would enjoy comparing now, but back then I had never heard of: Leonard Cohen and Margaret Atwood. I'm sure our analysis didn't go very deep—we may not have done much more than describe their biographies and that in addition to them both being Canadian, that they are both poets. I think I recall showing an 8 mm movie about each (that the teacher found).

Unfortunately I missed that opportunity to discover the music of Leonard Cohen. I'm sure I heard it occasionally on CBC Radio, but neither of my parents listened to him so I didn't hear his music around the house.

I finally didn't come to enjoy his music until I heard an interview on CBC with Jennifer Warnes, who was promoting her album Famous Blue Raincoat, which is "a tribute to Leonard Cohen, with whom Warnes had toured as a backup singer in the 1970s." (That must have been late 1986 or early 1987.) I bought the CD (one of the first I bought as I began to replace my vinyl collection) and it became one of my favorites. As so often happens, I over-listened to it until I was tired of it, and I haven't listened to it much since then. (It would be interesting to come back to it and see if I enjoy it.)

I remember raving about it online, and someone else responded that I should really listen to Leonard Cohen himself. Later I remember enjoying the song "Everybody Knows" in the movie Pump Up the Volume (in 1990). But it wasn't until 1993 (or maybe late 1992) that I bought my first Leonard Cohen album The Future. Wikipedia tells me it is one of his most popular, so I guess that makes sense.

Not long after that I bought The Best of Leonard Cohen (and noticed how much his voice has changed since he was young) and later More Best of Leonard Cohen. A couple years ago I bought the soundtrack to the Leonard Cohen: I'm Your Man movie, which I haven't seen.

I recommend all of these albums, but I recommend you start with The Best of Leonard Cohen or maybe The Essential Leonard Cohen.

The songs I've marked 5 stars in iTunes are:
Famous Blue Raincoat
Take This Waltz
Hallelujah

And these two tributes from Leonard Cohen: I'm Your Man:
Antony's If It Be Your Will
Rufus Wainwright's Chelsea Hotel No. 2

What did I leave out?

Update: I remembered a very good interview of Leonard Cohen with Terry Gross on Fresh Air.

Friday, May 29, 2009

Geeky things to do on a first-time visit to the Bay Area

A friend of mine is making plans to visit the Bay Area for the first time, and asked me to recommend some things to do here. I explained that now that I have (young) kids, all I could recommend are toddler-friendly places not too far from home in Scotts Valley. (My memory of life pre-kids in San Francisco and San Jose is pretty cloudy.) But I had what turned out to be the good idea to ask for suggestions on the "fun-list" mailing list at work.

I don't think my friend would mind if I described him as a geek. (I'm one too, and I believe we both wear the label with honor.) And he doesn't have a driver's license. Not having a car limits one's choices in the Bay Area. But my co-workers (many of them also geeks, and not into cars) responded with many good ideas:

First a list of places to go or things to see...

In San Francisco:

Recommended San Francisco walks:

  • Hippie Hill (or DeYoung Museum) <-> Haight/Ashbury
    • hippies! druggies!
    • Giant Robot
    • Kid Robot
    • Amoeba Records
    • Thrift stores
    • If he wants a *long* walk, go all the way to Lower Haight for the urban / hip hop scene and Indian Oven
  • Castro <-> Dolores Park
    • gays! lesbians!
    • upper class shopping
    • The Castro Theater, as seen in Milk
    • dogs & sunshine in the park
  • Valencia St
    • hipsters! indie kids! moustaches!
    • The Pirate Supply Store (826 Valencia) (this is a must)
    • Four Barrel Coffee
    • Ritual Roasters
    • Spork, Dosa, Herbivore are good dinner places
    • Burrito joints

Napa Valley:

On the Peninsula:

In San Jose:

Web sites with ideas:

Some recommended books:

Did I leave anything out?

Update: added The Cartoon Art Museum

Update #2: added Segway Napa


Monday, May 25, 2009

Recommended Canadian Content of the Week: Blue Rodeo

Several weeks ago I took Gabe to San Francisco to participate with his t-ball team in a "Little League Day" at AT&T Park. Claire had the great idea of Gabe and I driving up Saturday and staying at a hotel so we could get to AT&T Park early Sunday morning for the Q&A with Giants coaches and players. (And then return in the early afternoon to sit in the bleachers with his team for the game.) It was a weekend of firsts for Gabe: riding in a "subway" (the Muni Metro), riding on a cable car, going to the top of a skyscaper, walking through Chinatown, going across the Golden Gate Bridge. Hopefully some of it made some lasting memories.

Driving home after the game Sunday, Gabe fell asleep (and slept all the way home—he was exhausted after a couple long, busy days). I didn't want to listen to my usual podcasts and risk waking him up (as I did on the way up Saturday), so I set my 5-star music playlist to shuffle. I enjoyed listening to a subset of my favorite music, something I don't make time to do very often.

I was struck by how much of it is Canadian. So I came up with an idea for a series of blog posts, each describing a favorite Canadian band or artist. My idea was to do this weekly, but since it has taken me weeks to finish writing up this first post, don't expect them that often. I'll do what I can.

Several of the tracks that played during my drive were by Blue Rodeo, and I've since noticed that there are more songs by them in my 5-star music playlist (13) than any other group or artist. (Runners-up are The Beatles and Louis Armstrong with 9, and R.E.M. with 8.)

I remember first noticing Blue Rodeo when Much Music took a liking to them after they released their first album Outskirts over 20 years ago. Their album with the most songs I've rated 5-stars (5) is Five Days in July, but I've over-listened to that album and need to leave it alone for a few years before I can enjoy it again.

If you buy only one song of theirs, I (currently) recommend Bulletproof from Palace of Gold. But I also recommend...

From Tremolo:
From The Days In Between:
(I'm a sucker for ballads.)

Sunday, May 24, 2009

Xenocide

Last week I finished listening to Xenocide, over 6 weeks after I started. I blogged about "reading" (listening to) Ender's Game and Ender in Exile in "Pleasures of a poor memory" and about reading Speaker for the Dead in "The tyranny of high expectations". To continue the expectations theme, I'll remind you that I went into this with low expectations. And again, the book exceeded them.

I found this book had the most interesting science of any of the series (so far). And while there wasn't a lot of action, I found certain sections moving, especially [SPOILER WARNING] the description of the riot that burns down the Pequeninos' forest. I found the "creation" and reintroduction of a new Valentine and Peter Wiggin contrived, but towards the end Peter at least began to get interesting.

Now I'm on to the last (audio)book in the series, Children of the Mind. (But a fairly large list of podcasts continue to take priority.) I guess my expectations are higher now. We'll see if they're exceeded.

Friday, April 3, 2009

The tyranny of high expectations

Have you ever suspected that expectations can shape your opinion?

I think I remember first running across this idea while reading a book on skiing about 20 years ago. (I thought it was something like “The Chi of Skiing”—I remember noting that it did not use the more common eastern religion words like “Tao” or “Zen”. But I can’t find it online. Maybe it’s long out of print.) The book talked about avoiding expectations, and instead trying to anticipate. I’ve learned in the 20 years since first encountering that idea that like so many prescriptions for living, this is much easier said than done.

It’s impossible to definitively test the influence of expectations on experience, of course, since we can’t rewind time and re-experience something with different expectations. But it could be statistically measured. It would be interesting to expose one group of people to negative reviews of a movie, for example, and another to positive reviews (and have a control group that knows nothing about the movie) and then analyze their ratings afterward. I suspect that (if most people are like me), negative expectations can often lead to my enjoying something more. (Provided it’s not completely horrid or absolutely great. I think this effect is strongest on shaping one’s opinion of a mediocre experience.)

But enough philosophizing. The reason I bring this up is that I’ve noticed this expectation effect twice lately. Last Thursday, while I was in Chicago for PyCon, I took the afternoon off and walked around the city. As it got late (and as I tired from all the walking) I decided I was in the mood for a movie. (I hadn’t seen one in a couple months.) I chose Watchmen. I enjoyed the graphic novel, which I read last year after I read a glowing recommendation of a friend. (He wrote something like “best graphic novel ever”, or maybe even “best novel ever”.) My expectations were high, especially after I saw that it is the only graphic novel to appear on Time’s “All-TIME 100 Greatest Novels” list. I enjoyed it, but I didn’t love it. (I suspect I would have enjoyed it more without such high expectations.) But I went into the movie with low expectations. I had seen some middling reviews, and heard some of a very negative review on the Slate Culture Gabfest (no. 29) before I skipped it to avoid spoilers. I enjoyed the movie immensely. It wasn’t great. But I had a very good time, and didn’t notice that it was long. I suspect I may not have enjoyed it as much if I had high expectations.

Yesterday I finished listening to Speaker for the Dead. I wrote about listening to the audiobooks Ender’s Game and Ender in Exile a little over a month ago in my Pleasures of a poor memory post. I had completely forgotten it. It was like reading (or hearing) it for the first time. But I had high expectations. I remember noting it as perhaps my favorite SF novel. Sadly, I wouldn’t rank it so highly anymore. Perhaps Orson Scott Card’s observations of human nature aren’t as impressive to me after I’ve acquired 25 more years of experience (and perhaps a tiny bit of wisdom). But I suspect the damping effect of my high expectations had a lot to do with it.

I guess my lesson is that to maximize my enjoyment, I should always expect the worst.

Speaker for the Dead did finish well though. Well enough that I just downloaded Xenocide (the next in the Ender series). I’m going to try not to expect much. (My expectations are lower actually, since I recall the series goes downhill after Speaker for the Dead.)

Friday, March 6, 2009

A tr.im TextExpander snippet that works for me

At the end of A TextExpander snippet to paste quoted text I gave myself a to-do to create (or find) a TextExpander snippet to create a tr.im shortened URL. tr.im is currently my favorite URL shortening service. Not only is the domain short and easy to remember, but (if you sign up for an account) they provide stats for each “tr.immed” URL.

A Google search found this post on the SmileOnMyMac Blog (from the makers of TextExpander), where you can download a snippet that works. But it’s unnecessarily complicated. After reading the tr.im API documentation I simplified it to this shell script:
#! /bin/bash
curl -u yacitus:xxxxx http://api.tr.im/api/trim_simple?url=`pbpaste`
Note that Blogger refuses to make this column any wider or use a scrollbar to show all of this code. But the text is there; just copy it and paste into your favorite text editor. (You'll need to use the same trick to see all of the code for the other bash one-liner and the Python code below.)

(You’ll of course want to replace “yacitus” with your tr.im username and replace “xxxxx” with your password.)

The problem with this is that it doesn’t work for me at work, where I use the Authoxy proxy server. I can make it work with:
#! /bin/bash
curl -u yacitus:xxxxx -x localhost:8080 http://api.tr.im/api/trim_simple?url=`pbpaste`
…but then it doesn’t work when I’m at home (and not using Authoxy). curl, unfortunately, doesn’t auto-detect proxy settings.

Once again, Python comes to the rescue. I read in “Fuzzyman’s” urllib2 - The Missing Manual that the Python urllib2 module will auto-detect proxy settings, so I wrote this script:
#!/usr/bin/env python
"""
This script writes to stdout a tr.im version of the indicated URL.

"""

import urllib2
import sys


TRIM_API_URL = 'http://api.tr.im/api'
USERNAME = 'yacitus'
PASSWORD = 'xxxxx'


def main():
"""The entry function."""
url_to_trim = sys.argv[1]
if not url_to_trim:
print "ERROR: one (and only one) argument accepted--the URL to GET"
return -1

response = urllib2.urlopen('%s/trim_simple?url=%s&username=%s&password=%s'
% (TRIM_API_URL,
url_to_trim,
USERNAME,
PASSWORD))
print response.read().strip()

print response.code

return 0



if __name__ == '__main__':
sys.exit(main())
Like in A TextExpander snippet to paste quoted text, I put this in a file called trim_url, did a chmod +x on it, created a symbolic link to it in /usr/local/bin/, and created my TextExpander snippet:










I could have saved myself a lot of time if I had stopped there. But I read on http://tr.im/api that basic HTTP authentication is preferred over the query string parameters I used above. So I figured it would be a learning opportunity to implement basic HTTP authentication in Python. The problem is, I’m not done learning yet! I have yet to get it to work. I posted my question on the BayPIGgies mailing list where I got some good advice on how to debug it (but no one saw the problem), and I also posted a question on stackoverflow.com where I got one answer that may be an improvement on the query string parameters, but again no one saw the problem. I guess I’ll have to take jj’s suggestion and look at what is being sent over the wire. When I figure it out I’ll post the answer on my PyPap blog (and of course on the BayPIGgies mailing list and stackoverflow.com).

Tuesday, March 3, 2009

A TextExpander snippet to paste quoted text

I prefer the inline replying posting style. So a frequent workflow for me is copying text, pasting it into BBEdit, applying "Increase Quote Level", "Rewrap quoted text...", "Select All", "Copy" and then pasting the text into (typically) Mailplane, where I finish composing my email. (Or if I'm running Outlook in Fusion, I may compose the email entirely in BBEdit and paste it as a whole back into Outlook.) Each time I do this, I get that "there's got to be a better way" itch. (But then I get back to what I'm working on and forget about it until next time.)

Yesterday I was reading Dan Frakes' "Plain Clip revisited" MacGem post, which explains how to use the free (donations excepted) Plain Clip utility with TextExpander to automatically paste whatever is in the clipboard with any formatting information removed when you type "ptp" (which is the abbreviation he chose to assign to this "snippet" in TextExpander). I need to do that occasionally (and again, I've been doing it by pasting into BBEdit and then copying back to the clipboard), so I downloaded Plain Clip and a free trial of TextExpander and began setting it up. Dan Frakes uses an AppleScript to run Plain Clip through the command-line. But I noticed I can define a shell script in TextExpander so I don't need to bother with an AppleScript "do shell script" wrapper. But I couldn't get it to work. I quickly found a link in the comments to Gordon Meyer's "A tip for using Plain Clip with TextExpander" blog post, which solved the problem for me.

And that's when a light bulb finally went off in (over?) my head. If I created a simple command-line utility to do word wrapping, I could create a TextExpander snippet to paste quoted text. And about 30 minutes later that's just what I had.

When I need to create a command-line utility, I almost always turn to Python. And as is so often the case with Python's "batteries included" nature, I found a textwrap module that provided almost everything I needed.
#!/usr/bin/env python
"""
This script wraps the textwrap module with a command-line interface.

"""

import optparse
import sys
from textwrap import TextWrapper


DEFAULT_WIDTH = 70
DEFAULT_QUOTE_STRING = '> '


def main():
"""The entry function."""
parser = optparse.OptionParser(description='Text wrapper', prog='wwrap')
parser.add_option('-w', '--width',
action='store',
metavar='NUM',
default='%d' % DEFAULT_WIDTH,
help='maximum length of wrapped lines; defaults to 70')
parser.add_option('-q', '--quote',
action='store_true',
default=False,
help="add '%s' to start of each wrapped line"
% DEFAULT_QUOTE_STRING)
parser.add_option('-r', '--remove',
action='store',
metavar='TXT',
help='remove TXT from start of each line prior to'
' wrapping')
parser.add_option('--removequotes',
action='store_true',
default=False,
help="remove '%s' from the start of each line prior"
" to wrapping" % DEFAULT_QUOTE_STRING)

options, arguments = parser.parse_args()

if not options.width:
print "I don't know how the width wasn't specified, since it's"
print "supposed to default to %d. Aborting." % DEFAULT_WIDTH
return -1

try:
width = int(options.width)
except ValueError:
print "ERROR: the width specified ('%s') is not a number" % (
options.width)
return -1

if options.remove and options.removequotes:
print "ERROR: cannot use both --remove and --removequotes options"
return -1

if options.removequotes:
options.remove = DEFAULT_QUOTE_STRING

wrapper = TextWrapper()
if options.quote:
wrapper.initial_indent = DEFAULT_QUOTE_STRING
wrapper.subsequent_indent = DEFAULT_QUOTE_STRING
wrapper.width = width

lines = sys.stdin.read().split('\n')
if options.remove:
for i, line in enumerate(lines):
if line.startswith(options.remove):
lines[i] = line[len(options.remove):]

print wrapper.fill('\n'.join(lines))

return 0




if __name__ == '__main__':
sys.exit(main())
Note that even though you can't see the code at the end of long lines, it's there. Just copy it all and paste it into your favorite text editor to read it all.

This code should be quite self-explanatory. As is (also) so often the case with Python, the "meat" of these 81 lines are the 7 lines starting with line 67 where I read in the text to be wrapped from stdin. All the preceeding lines are for handling the command-line options.

I put this in a file called "wwrap" and did a `chmod +x` on it. I then created a symbolic link to it in /usr/local/bin/, and I was ready to create my TextExpander snippet.

















Now I can just type 'qtp' and the quoted, wrapped form of whatever text is in the clipboard is pasted in.

I'm inspired to look for more workflows I can simplify with TextExpander and possibly Python. (I'm going to start by trying to figure out how to re-create the "Create tr.im shortened URL" in Dan Frakes' TextExpander screenshot.)

Wednesday, February 25, 2009

Pleasures of a poor memory

One of the benefits of having a good memory is getting to enjoy good novels all over again, years (sometimes not so many) after reading them.

I believe I first read Ender's Game soon after it was first published in paperback, sometime in 1985 or `86. (Almost 25 years ago!) I remember enjoying it, enough to then seek out other books by Orson Scott Card. (I enjoy "binging" on a writer after I discover a good novel. Maybe someday I'll re-enjoy many of my favorite Kurt Vonnegut novels.) I don't remember much of Speaker for the Dead, but I do remember telling my sister that it was great, perhaps my "favorite", and that Card's understanding of human nature and psychology rivals the great Russian novelists. (Not that I had read any of them. And I still haven't.)

Now that I have a longer commute to work (40 minutes going in early, often over an hour coming home), I have time to enjoy my favorite podcasts and listen to audiobooks. I started getting audiobooks from the library, including Ender's Game. Which I enjoyed again. I look forward to when my kids are old enough to enjoy it--it's a "juvenile" novel after all--but I think they should be at least 12 or so.

I wanted to move on to Speaker for the Dead, but I did a little research on the Ender series [spoiler warning] first, and decided this time to "read" Ender in Exile first. I was published only late last year, but takes place chronologically between Ender's Game and Speaker for the Dead. But the library didn't have it.

So I signed up for an Audible.com membership--I chose the "twit749" deal I'd been hearing about on TWiT and MacBreak Weekly--and downloaded it. I just finished it. I'm not going to turn this into a review. But I recommend it. (One line was worth quoting: "Pacifism only works with an enemy that can't bear to do murder against the innocent. How many times are you lucky enough to get an enemy like that?")

I just downloaded Speaker for the Dead. I'm looking forward to it. (Though I'll listen to my favorite podcasts first.)

Friday, January 23, 2009

Too many long, rambling podcasts

I started listening to the This Week in Photography (TWiP) podcast (episode 65) on my way in to work this morning. Over seven minutes into a one hour and 20 minute episode, and they hadn't really started talking about photography. So I skipped ahead to the next podcast in my playlist.

I much prefer the Tack Sharp podcast. The average length of the episodes is about 20 minutes, and each episode focuses on one subject only. I've learned something from every one of the six episodes so far.

Alex Lindsay and Scott Bourne, the founders and two of the regulars on TWiP are also regulars on MacBreak Weekly (MBW). So it's understandable that the style and format of their podcast is very similar. (They even have "picks of the week".) But what makes MBW (and TWiT) worth listening to (even when they rat-hole or ramble--although I'm often tempted to skip them when they're particularly long--the last MBW was just sort of two hours) is that I feel like I've gotten to know the personalities so each week feels like listening to old friends. (And Leo Laporte does a great job of keeping both podcasts interesting.) Perhaps if I kept listening to TWiP I'd get that same comfortable familiarity with it, but I only have so much time.

The TWIPPHOTO.COM blog has excellent show notes for the episodes, and there's plenty of other material there worth reading. So I'll probably favor their blog over their podcast. (But I find it harder to make time for blog reading than podcasts.)

Sunday, January 18, 2009

I use two iPhone Twitter apps

Twitter has plenty of meta-discussion. (TODO: It would be interesting to approximate the percentage of tweets that are about Twitter.) Very frequently (at least among the people I follow) the discussion is about iPhone apps for Twitter. More often than any other, I see people recommend Tweetie. Though Twitterrific is mentioned frequently, and I see TwitterFon come up increasingly often.

I use Tweetie and Twitterrific Premium. The contrast between the two is interesting. They're both excellent, well-polished apps that illustrate two different approaches to designing a quality iPhone application.

I use Tweetie often enough that it gets a spot on my main launcher screen (reserved for the apps I use more frequently). It's full-featured. In fact, it seems like I can do just about anything in Tweetie that I can do from twitter.com.

But I use Twitterrific more often than any other iPhone app, so it gets the privileged spot on the bottom left (on the strip on the bottom that appears on all launcher screens). Twitterrfic is a good example of the "do one thing only and do it well" school. Twitterrific's one thing is reading tweets. It does that so well that I prefer it to twitter.com on my MacBook Pro (though I haven't tried any desktop Twitter apps).

Twitterrific Premium's killer feature (which I haven't seen or heard of in any other iPhone Twitter app) is how it "maintain[s] a reading position between launches of the application". (I think this feature is not in the free version of Twitterrific.) This is why Twitterrific is my most used iPhone app. I can very quickly launch is and scan through all the new tweets since the last time I checked.

As I'm reading in Twitterrific, if I see a tweet with a URL that looks interesting that I want to take the time to look at later (especially if I don't want to take the time to wait on EDGE), I'll mark it as a favorite.

Then later (when I'm on WiFi on my iPhone or my MBP), I'll use Tweetie (or twitter.com) to scan through my favorites and un-mark them after I read them.

I also use Tweetie occasionally to check for replies.

And Tweetie is better for writing tweets, especially if I want to include someone's name or a URL. And the new version 1.2 has an optional landscape keyboard.

Loren Brichter updates Tweetie much more frequently than Craig Hockenberry updates Twitterrific. But that is expected when you think about it, since there is always plenty of opportunities for new features and improvements to a full-featured app like Tweetie, whereas Twitterrific is so specialized and so polished that @chockenberry should be very careful not to fix something that isn't broken. But if @atebits adds a "maintain reading position" feature to Tweetie that works reasonable well, I may give up using Twitterrific and give Tweetie the place of honor on my iPhone.

But when/if that happens, I won't regret the $10 I spent on Twitterrific Premium. I use both often enough and both are so pleasant to use that the $10 and the $3 for Tweetie was money well spent. I recommend both.

Update: I remembered one more situation where Tweetie comes in handy. Twitterrific has a limit on the number of tweets it will hold, so if I can't make time to check it for a while, or if the number of tweets is much greater than usual for some reason (such as the inauguration), then when I come back to Twitterrific I'll notice that the "last read" tweet is at the bottom of the list and I won't remember reading it. In Tweetie's advanced settings I've changed the "Initial Load" to 100 (from the default of 20), so I can catch up on missed tweets often by just opening Tweetie and scrolling down (or maybe touching "Load more..." a single time). Yes, I know that Twitter isn't email, and I don't feel the need to read every single tweet that goes by, but if I've just missed an hour or two's worth, Tweetie makes it easy to read them.

Wednesday, January 7, 2009

Can I wait to upgrade iLife & iWork?

I'm quite eager to try the new iLife '09, especially the Faces feature of iPhoto.  I think I'll also enjoy using the Places feature, and the Facebook & Flickr integration.  If I ever get time to use it, iMovie '09 also sounds like a big improvement.  And I'd like to play with the "learn to play piano" feature of GarageBand.  I don't use iWork often, but I've paid for the previous version and I expect it's worth upgrading.

But ironically the "Mac Box Set" may keep me from upgrading.  Or I suppose more accurately, the lack of an iLife/iWork bundle may keep me from upgrading.  iLife '09 costs $79, as does iWork '09.  (There's no discount for people who have previously purchased iLife '08 or iWork '08.)  The "Mac Box Set" is a bundle of iLife '09, iWork '09, and Mac OS X 10.5.6  Leopard, for $169.  But the new MacBook Pro I got in August came with Leopard, and I've already bought Leopard for my old PowerBook G4.  So that bundle doesn't save me any money.  But knowing the bundle exists makes me think I should wait for when Snow Leopard (Mac OS X 10.6) is released (probably this summer) and buy the inevitable update of the "Mac Box Set" then.