Yearly Archives: 2005

To-do lists and embracing the network

There is something about Ta-da List that works really well. Simple things like hitting return to save one to-do item and start a new one, tidying up of completed lists, and automatic ordering of recent lists. And above all else, speed. It is without question the fastest web app I use. Because the application is so focused, even full page reloads are faster in Ta-da than AJAX requests in some other web apps.

These are seemingly simple things, but they add up to an app that rivals any native (Mac or Windows) to-do list software. It makes me wonder how great a native app could be if someone put the same thought into user interface and simple workflow that Ta-da has. The advantage so-called Web 2.0 apps have over native apps is that they are inherently client/server based, but a native application could embrace the network in the same way and (maybe) provide a superior user experience. I’ve yet to see any apps that do this effectively, but it will have to happen if the desktop hopes to stay relevant for anything except tasks that benefit from large local storage (e.g. Photoshop and Final Cut Pro).

I use Ta-da List for everything now. Here’s a sample of recent lists:

NaNoWriMo Capital 10k staple_tada_small.gif

Bring me the head of Charlie Brown

Tonight ABC aired the original Charlie Brown Christmas special yet again. That thing never gets old. The animation is limited and the characters always off model from one scene to the next, but it has great voices and characters and heart.

This seems a perfect opportunity to link to Bring Me the Head of Charlie Brown, a hilarious CalArts student film that I first saw linked from Jim Hull’s excellent blog, Steward Street. Every person who has hosted the movie has been shutdown by their web host due to bandwidth usage. Luckily it’s now up on The short is made even more amusing if you contrast it with the animation style of the original Charlie Brown specials: the CalArts film has much fuller animation and better lip-sync. Even so, I wouldn’t want anything about Charlie Brown Christmas changed.

Randal and Rebecca

Okay, I admit it. I’ve been watching The Apprentice this year. I hate being addicted to it. It’s not even entertaining for me because it’s so stressful just to watch. I’m probably more nervous sitting on my couch then they are in the boardroom.

(Spoiler warning for those of you who do not watch live television.)

Traci predicted he would hire both of them, and I was leaning toward a Rebecca pick, but either choice would be fine. Then Trump totally sets it up to hire both of them with the two potential jobs, until Randal slaps Rebecca in the face with the “There can only be one Apprentice” line. Unbelievable. I’m still obsessing over how wrong that was.

Hopefully writing this blog post will allow me to move on and think about something else.

CGContextSelectFont is slow

We’ve heard it countless times: Before you spend any time optimizing, profile your code. And yet we always think we know where the performance problems are without testing.

Earlier this year I started some extra work to help a company port their Windows software to the Mac. It turned into a large project, and when the app ships I will write more about it here. But for now let’s just say that it involves a lot of Windows bitmaps.

Performance had been a problem almost from the start. It is a very drawing-intensive application, and I spent time optimizing the path to Quartz. Eventually everything goes through a CGImage, but there is some overhead getting there. I knew more could be done.

Eventually I bothered to run Shark on it. Within 30 seconds it revealed that almost 50% of the application time was being spent inside CGContextSelectFont, which was called very frequently for the very basic text drawing that was needed. I had not even suspected that code. I rewrote it to use ATSUI and all the performance problems immediately melted away. And it wasn’t even optimized ATSUI — just brain-dead create a text layout, font size, and draw.

It was not obvious to me that CGContextSelectFont would be so slow, so I’m posting this one for Google to pick up. Happy coding!

Set unreasonable deadlines

Damon and I have been discussing how time constraints can encourage creativity. I hinted at this in my first NaNoWriMo post, and it’s something I’ve been trying on other projects at work. Of course the concept is all through what 37signals is doing.

A few weeks ago there was a web application I wanted to write. I estimated it would take a couple of weeks to knock in the basic functionality. A small project, but big enough that it would have to be juggled with other priorities. And the requirements would need to be discussed with other members of the team, which might mean a quick death at the hands of committee-led design.

Encouraged by Willie over that weekend, we said let’s just do it and see what happens. Monday morning I asked myself: could I implement most of the application… before lunch? Because if I couldn’t, the project would still probably be sitting at zero lines of code. Luckily the app was a simple discussion system, and Rails was a particularly good fit for it.

In the latest The Writing Show podcast, J Wynia talks about why NaNoWriMo works. He said the biggest problem writers are faced with is the blank page. NaNoWriMo forces you to start writing immediately, because otherwise you won’t have a chance of finishing 50,000 words in a month. And something magic happens when you’ve written the first sentence: before you know it stories and characters are flowing and you’ve got a half dozen pages or more. If you waited until the first page of the novel had been fully thought out in your mind, you’d still be looking at a blank page.

Kathy Sierra wrote about creativity on speed, but I take issue with part of her post. I see speed in development work (C++, Ruby, whatever) as a good thing when it forces you to do something you would not otherwise be able to do because the task was too daunting. But speed in art is something else entirely. The latter is the whole subject of Betty Edwards’ classic book Drawing on the Right Side of the Brain. The idea is that by working quickly (gesture drawing, for example), you draw on instinct and what you are seeing, and less on what you think you know about how something looks.

I was first introduced to this concept in animation through the books of Shamus Culhane. It resonated with me immediately not just because I knew it was true — it matched my own experience with life drawing — but because he first discovered this while working on an old 1930s Mickey and Pluto short (Hawaiian Holiday) that I remember fondly as a kid (I still have the VHS copy). In some ways the high-speed drawing technique works even better in animation because you are already talking about time. The faster you work the closer the process itself resembles the final product on screen.

While building software is definitely an art — especially the process of crafting the user interface, or just bootstrapping an idea from nothing through brainstorming — I don’t think programming benefits from speed in the same way that art does. With software development the main benefit you get from working fast is breaking through roadblocks, simplifying, and getting things done. The creativity is a result of forcing yourself to think of things in a new way.

I found my cell phone

So a couple of months ago a 1-year-old who shall remain nameless tossed my cell phone into the toilet. I thought surely I would have to buy a new phone, but after taking it all apart, cleaning it, and letting it dry in the sun — good as new. (Except for the screen. Wow, that thing has seen better days.)

Then, a few weeks later, the phone disappeared altogether. Again, I’d probably have to drop some $$$ and buy a new one. But you know what? I stopped looking for it. I could borrow Traci’s if I really needed one, I haven’t been traveling recently, and there is something strangely liberating about going to the store or whatnot and being impossible to contact. (Except for pigeons. They will always work in a pinch.)

The phone turned up yesterday. I’m not sure how I feel about that yet.

My podcast process, take one

Ryan described his hardware setup for podcasting a while back. With at least a few dozen podcasts under his belt, he’s got his system down.

I wanted to write a little about the process I used to create the Trains podcast. Not because I think it will be particularly helpful to newcomers, but just because I think it’s interesting. (Actually, I’m just now getting around to posting this. Months have past since I wrote it, and now Ryan spends his time writing about why none of this matters, and he’s right: tools should be accessible to non-technical beginners.)

I started by borrowing a good mic from a friend. Eventually he will want it back, but luckily for me he’s a great musician and has a bunch of microphones that he uses regularly. It’s from audio-technica.

I had a few choices for recording audio. I own a Griffin iMic, but decided not to record directly into the computer this time, so it went unused. Some of the recordings I planned to do would be away from a computer, so I needed something mobile.

A great choice for this might have been a Rio, or a MiniDisc. I was a MiniDisc fan back during the first-generation of the devices, but sold it years ago. And I’m a happy iPod owner, so buying yet another MP3 player didn’t make sense. My concern is that the moment I do that, Apple will release a software update to uncripple the voice recording in the iPod.

For the train conductor recording near the beginning of the podcast, I used a Griffin iTalk connected to an iPod. This is all the electronics I took with me on the train to Chicago. I ended up recording a lot with it, without an external mic at all, but not much of the audio was really usable.

The opening train sounds I recorded just a short distance from my house. I biked down to the crossing with my nice microphone and recorded directly into a digital video camera, on to MiniDV tape. This turned out to work so well that I recorded all my voice this way.

Since it was DV, I used iMovie to import clips of all the voice work. I could have exported to AIFF from there (and did try to), but because I was sampling lots of other material, I decided to be consistent and use Audio Hijack to grab the audio directly as it played from iMovie. I also used Audio Hijack to rip from a RealAudio source, iTunes music, and from DVD Player.

Once I had all the AIFF files, I simply dragged them onto the timeline in GarageBand to create new tracks. I had planned to use Audacity, but it turns out GarageBand does everything I needed. I was raised on SoundEdit Pro, and the clunkiness of Audacity by comparison is hard to deal with. Controlling the fade in and out of audio for different clips was super easy in Garage Band.


And then I exported to iTunes, converted to MP3, and posted to the site. Power to the people!

Music to drive back to

The U2 concert in Houston a few weeks ago was great. I drove back late at night, with The Killers album on repeat to keep me awake. In the era of single-click pop song purchases on iTunes, it’s not often that I buy a full album. Then again, it’s not often that a band releases an album that has 10 good songs on it.

The other day I found an old Converse shoe box taped closed, hidden behind some old VHS tapes. Opening it revealed a bunch of CDs I hadn’t listened to in many, many (many) years. Arrested Development, Pearl Jam, Gals Panic, Rollins Band, The Nixons, Temple of the Dog, Van Halen, Primus, New Order. It’s fun to think back on what I was doing, how a given song might have effected my mood or my life so long ago. It’s a lot like video game music: usually catchy, and maybe more importantly, listened to over and over again. I’m still trying to get a podcast out about that, hopefully before the end of the year.

50,136 words

Winner As I posted about a few weeks ago, I decided to write a novel this month (National Novel Writing Month, or NaNoWriMo). I posted some of my progress on 43 Things, and I’m going to repost those entries here.

Actually using 43 Things more fully, I am even more impressed. They have done an amazing job of allowing communities to form around goals. The site looks simple on the surface but there is depth to it. There is something about random encouragement from total strangers that works.

Another useful resource was the NaNoWriMo forums. I never posted there but people were always quick to help others and offer advice. They also organized many local gatherings at coffee shops or bookstores, so I went one night and met a couple other Austin writers. NaNoWriMo works not just because of the intense deadline, but because of the shared goal as thousands of people are doing the same thing. That’s why 43 Things was such a good fit.

Here are the entries.

12,002 words (Nov 9th):

I’m still behind, but I feel good about my progress because I started a few days late. The last chapter I just finished was one of the first to really work, which seems to be a good sign that I’ve found some kind of rhythm to get through the next few weeks. Either that or the plot is building up to something too soon and I’m about to run out of ideas. :-)

25,043 words (Nov 20th):

I only just now crossed the halfway point. I thought I was on my way to catching up, but there were several days last week where I didn’t write at all.

I’m still determined to finish, but it’s going to take some serious writing over the Thanksgiving weekend.

34,797 words (Nov 28th):

I didn’t write enough over Thanksgiving. I left the PowerBook at home and filled up spiral notebooks instead. Even without an accurate word count I knew I had fallen short of my goal. Last night I typed it all up until my wrists burned.

I will finish but it is going to take a lot: 5000 words a day for the next three days. Until now my top daily word count has been about 3000, and the average somewhat less than that.

Congratulations to everyone else who passed 50,000 over the weekend!

44,054 words (Nov 29th):

Looks like I will finish. I made a big push last night and wrote about 6000 words. Less tonight, but I still think I am on track to finish tomorrow. The story should wrap up right at 50,000.

50,136 words (Nov 30th):

Yay! I finished.

I spontaneously started this endeavor a few days into the month and I’m still a little amazed that I stuck with it. It’s a great feeling though, especially as I was nearing the end and the plot was wrapping up. Sure, the story has some problems, and it could have benefited from some research. But actually I’m quite happy with the overall flow of the story and some of the characters. There are some good scenes in there that I’m proud of.

Harry Potter book 4

So I finished rereading Harry Potter and The Goblet of Fire in anticipation of the 4th film, which we just saw last night. (Thanks Damon for remembering to buy tickets a month early.) The film did a great job of capturing the important points of the book, while pushing the plot along at a very quick pace. The first half dozen chapters seemed to slip by in only five minutes of screen time. I was wondering how they were going to squeeze 800 pages into two and a half hours, but they did it.

Overhead while Traci was reading the book: “It’s weird… Hermione seems so much more like a Hufflepuff.”

Mario Kart DS

It’s all about the games. I picked up Mario Kart DS yesterday and it doesn’t disappoint. The Nintendo WiFi network was a little flaky last night, but things are running smoothly today. And it’s been fun to watch friend codes start showing up in my news reader, from blog sites that would otherwise restrict their postings to non-game topics.

Here’s mine: 180448 143525. If you add it, ping me yours via email or AIM.

10,302 words

A few weeks ago I heard about NaNoWriMo, a month-long “contest” to write a novel. You start November 1st, end at midnight November 30th, and if you’ve amassed 50,000 words, you win. Of course there are a lot of winners, and no prizes, but it’s a great idea and I think really helps push people in ways they didn’t think possible.

I wasn’t planning on entering, even though I’ve tinkered with trying to write a novel before now. It’s hard work, and it’s easy to get stuck up on plot problems or run out of ideas and abandon the whole thing. That’s the last thing I have time for. I brought up NaNoWriMo in discussion a few days ago and I talked about it as something that other people were doing, not something I was crazy enough to try.

But three days into the month, I added it to my 43things and started writing. I’m way behind the recommended quota already, but I’ve just crossed the 10,000 word mark so I wanted to mark the milestone.

Most of the novels, especially mine, won’t be very good. They have plot problems, weak characters, and half of them are made up as they go along. I’m 8 chapters into it and only have a vague idea of what will happen from one chapter to the next. I did absolutely no planning upfront.

But that’s fine. It’s like a marathon. It doesn’t matter if you look good when you cross the finish line.

It’s about setting unreasonable deadlines. They force you to stop procrastinating and work your heart out to finish something.

iPods, videos, and U2

Steve Jobs in yesterday’s special event, discussing the white iPods:

“It’s been a huge success for us, and therefore it’s time to replace it.”

The new iPods look great. At first I was disappointed by the $1.99 price for music videos and TV shows, but when you do the math it is only a little more than buying DVDs. And what about the small quality, only 320×240? In the name of science I dropped $2 to test it.

Last week, thanks to eBay, I became the proud owner of 2 tickets to see U2 in Houston at the end of the month. I’ve seen every U2 tour since ZooTV over a decade ago, so I wasn’t about to let little things like “too busy” and “money” stand in the way this time. Our seats are fairly horrible, but the price was right and all that matters is that we are there.

So buying a U2 music video was a natural choice. The download time was reasonable. I clicked it to full-screen on my Cinema Display and sat down 6 feet away. It actually looked good. 30 frames per second doesn’t hurt either. I could definitely watch TV shows this way.

Another interesting tidbit from the Apple event. Disney’s new CEO Bob Iger was introduced quite warmly by Steve Jobs, and Iger even joked that he still hoped an agreement could be reached between Disney and Pixar for continuing distribution of their films. Sounds like that could happen after all.

Wallace and Gromit

Art blogs screenshot What a great film. To prepare I dusted off my old Laserdisc with the three original Wallace and Gromit short films, but the feature equals and surpasses those films in every way. Thoroughly enjoyable.

Aardman Animations fans should also seek out Creating 3d Animation, a combination behind-the-scenes and how-to book out a few years ago with great stuff on model construction and movement. In the age of computer animation it takes some passion to break the mold and work hand-drawn, but even more rare is the artist who wants to follow in Nick Park’s footsteps. It’s great to see the art-form of stop-motion come alive again to hopefully inspire a new set of filmmakers.

Speaking of old school, just today I saw that Hans Bacher has a weblog. I’ll never forget seeing his art from the Mulan book years ago. The man is a master at composition and effortless landscapes.

And like a lot of animators new to blogging, he uses Blogger. If you look at my NetNewsWire subscriptions (right), you’ll see an interesting trend of Blogger and LiveJournal icons. I’m not sure what that means, if anything.

Corpse Bride

Finally I had a chance to see Corpse Bride last night. Caught it at the Alamo Drafthouse, which is the only theater smart enough to show short films and other theme-appropriate clips before shows. Last night they played Vincent (Tim Burton’s stop-motion film before he left Disney), and Devil Went Down to Georgia, among others we probably missed.

Corpse Bride is thoroughly Tim Burton. And while it may not become a classic like The Nightmare Before Christmas, it is still an enjoyable film and contains some really great moments. Interestingly the Corpse Bride herself probably has the most depth of any of the characters.

Next up to see is Wallace and Gromit, which was number one at the box office this weekend. I bet the execs in Hollywood are wondering how there could be two back-to-back stop-motion successes when everyone else “knows” computer animation is the future. (Yawn.) In related news, the Aardman Animations studio appears to have burned down! Tragic. Not sure what the extent of damage really was yet, but it doesn’t sound good. Update: BBC has the story now.

Hurricane Rita

Blue sky clouds They warned of 70mph winds, massive flooding, and loss of power, but in the last days before landfall Hurricane Rita shifted north and Austin didn’t receive even a drop of rain. The organizers of Austin City Limits Music Festival were so proud of themselves for waiting to cancel the weekend concert series, but the evacuees were less pleased — stuck in Austin at shelters because the hotels were booked for an ACL in limbo.

Meanwhile, people panic and grocery store shelves are almost out of canned food and bottled water. The less than 3-hour trip from Houston becomes a long full day of gas shortages and frustrated evacuees.

Cars are not an efficient way to transport large numbers of people, but the rail and public transportation infrastructure in this oil state is pathetic. Nightline’s Ted Koppel asked the obvious question to someone from Homeland Security, but they acted as if they didn’t even understand there was a problem. If you can’t get out of a major city with a week’s notice, how can you get out in a real emergency?

Hurricane Katrina

Last Wednesday I wrote a rant destined for this space, I was so saddened and then upset by what was happening in Louisiana. But I let the post sit unpublished, and by the end of the week others were voicing my frustrating much better than I could have. Randy Lander used profanity, Michael Moore raised the National Guard question, and the New York Times criticized the lack of leadership from our President.

It was particularly refreshing to read some of my everyday weblogs and see personal stories. Keith Lango, an animator from Dallas, broke from his usual animation topics to describe what his church was doing to help evacuees.

Last week you could feel the frustration as people wanted to reach out but didn’t know how. Some of Traci’s family in southwestern Louisiana took their boats to New Orleans to help in the rescue effort, but were turned away, despite the call going out earlier for exactly that kind of help.

While leaders were still making promises of troops or doctors or buses two days into the aftermath, had built a brand new web application for helping shelters and people now homeless to connect with others who are offering spare bedrooms: It’s working.

We sent baby stuff to family in Louisiana, gave to the Red Cross, and then yesterday loaded up a bunch of clothes and bedding to take to the central drop-off location here in Austin. Driving down the highway today my eyes searched for the location. We needn’t have worried about missing it. There was a huge line of cars entering to donate, with several police cars and many volunteers directing traffic. Just about every level of the several-story parking garage was loaded with items — bags of clothing, beds, and baby toys stacked high and stretching across the whole area of the garage. It was being sorted pretty well, and it was heart-warming to see that it wasn’t just going to sit there for weeks — some of the most important items, like diapers, bottled water, and suitcases, were already piled up on slats and wrapped up, ready to be picked up by trucks and taken to shelters. A daunting task was slowly being whittled away and you could feel that efforts were paying off.

This disaster will likely rival the World Trade Center in terms of lives lost and damage done. And yet television stations didn’t suspend normal coverage as they did on September 11, nor did advertisers pull ads (unbelievably, we saw several for cruise ships and gas generators). I don’t think it’s a conspiracy, just that the shock took a couple of days to build up rather than the immediacy of an airplane crash. And I’m glad photographers and television crews got in, since this was very hard to visualize otherwise.

There’s going to be a lot of blame thrown around in the coming weeks and months. Some of it justified and some just politics. Personally, I see this as a national security failure. Just a week after the storm hit, protests are already being organized. People are angry.

I’d like to end on an uplifting note, with some message of hope and perseverance, but really, that seems a little naive. Still, great work is being done, and it’s inspiring to see it.

Trains podcast

This is my first podcast, called Trains. If you subscribe to the main RSS feed using a podcast-aware newsreader like NetNewsWire 2.0, you may already have the MP3 in your copy of iTunes. If not, here it is for download:

» Trains (MP3, 10MB)

There is not a separate podcast feed, but you should be able to drag the main RSS feed URL onto the Podcasts icon in iTunes 4.9 or later to subscribe as well.

Related links for topics in this podcast:

Frank and Ollie DVD

The Iron Giant Special Edition DVD

Dumbo DVD

The Incredibles DVD secret menu (Jim Hull)

Animators and Railroads (Jan-Eric Nystrom)

The Caboose Who Got Loose (Bill Peet)

South Side (Moby and Gwen Stefani)

Trainfare (Toni Price)

City of Blinding Lights (U2)

Podcast coming

There is a place for text, and a place for sound. If you are like me, you read and write text all day. Whether it’s email, chat, html, code. For those times, music is all the sound you can take — it fits your mood and fades into the background. You don’t want to necessarily listen to someone speaking — it’s hard to concentrate on reading text and listening to someone else read text at the same time, and most people can read faster than they can listen anyway.

But for the times when we are away from our desk, sound can play a different role. Taking a walk or in the car your mind is free to either wander, or pay attention. I believe podcasts are for those times.

Tomorrow I will post my first podcast. If it is well received (or even if it’s not — this is blogging after all) I hope to create a podcast every few months. Because it will be so infrequent, there probably won’t be a separate RSS feed for podcasts. The MP3 files will be included directly in the main feed for this weblog. Feedback of course is welcome at Thanks!