Agile Partners logo
HomeAboutOur WorkTechnologyWeblog
Agile Partners Weblog
Hooked on Podcasts
October 15th, 2005 by jivers

When I bought an iPod mini several months ago, I had in mind listening to technology sessions like those on IT Conversations. At the time, I didn’t fully grasp the concept of podcasting; and for that matter Apple’s iTunes 4 didn’t directly support podcasts. So I started out by downloading MP3s manually from the IT Conversations site, and importing them into iTunes.

Then Apple released iTunes 5, which allowed me to subscribe directly to any podcast RSS feed. A podcast feed is very similar to a standard RSS news feed, the difference being a new <enclosure> element that identifies MP3 audio enclosures for each feed item. iTunes periodically checks my subscribed feeds for new audio content, downloads whatever it finds, and then automatically pushes the new content to my iPod whenever I synch. Apple also extended the iTunes Music Store to track an extensive, categorized list of available podcasts (virtually all are free); subscribing from the Music Store is a single click process. So starting with iTunes 5, getting exactly the audio content I want onto my iPod became completely automatic and painless.

So what’s the big deal? As one of the leaders at Agile, it is critical that I stay current on trends in web technology. Before podcasting, I would use precious “on-computer, on-line” time to skim RSS feeds, blogs, the del.icio.us popular page, slashdot, and so on. Given the scarcity of my on-computer, on-line time, I managed maybe 10 minutes a day staying current.

When iTunes 5 arrived and the effort involved in acquiring podcast content dropped essentially to zero, my approach to staying current changed radically, thanks to “time-shifting.” To receive the knowledge contained in a podcast, all I need is my mind and my iPod—no hands, no eyes, no computer, no internet connection. Drive time, lunchtime, workout time, all of those slices of in-between time can now be part of my staying-current time. These days, I find an average of 30 to 60 minutes a day to listen to podcasts, without consuming any of my precious on-computer, on-line time. This represents a 300% to 600% increase in getting-current time versus the old routine.

This quantity benefit, as huge as it is, is overshadowed by the quality factor. The knowledge I absorb by listening to a podcast is an order of magnitude deeper than what I got from web skimming. I find that even a careful read of a Paul Graham article can’t compare with hearing a Paul Graham podcast. Having listened to Paul, I feel like I know him, that I understand where he’s coming from and how he thinks.

A recent example: I have been fascinated by the Open Laszlo open source project. I’ve read a lot about it, played with the demos, and talked about it with others at Agile. But still my knowledge was shallow—I really didn’t fully “get it.” Then I listened to a podcast interview with David Temkin, and I knew—what Open Laszlo is, how it came about, how it relates to Flash, why we might want to use it to create rich internet applications (RIAs), how the RIA space compares with AJAX, what Laszlo Systems’ business model is, and so on.

Steve Wozniak. Brewster Kahle. John Seely Brown. Larry Lessig. Bill Joy. Guido van Rossum. Tim O’Reilly. All delivered daily to my iPod, up-close and personal, with a richness far surpassing the written word.

Here’s what I subscribe to at the moment:

  • IT Conversations: Simply the best, Doug Kaye and company have been around the longest (pre-dating podcasting with web audio content) and for me, their content hits the absolute center of my staying-current target
  • This Week In Technology: Well produced and fun, though a little light on useful content at times
  • PBS’s Nerd TV with Robert X. Cringley: Very new, some great in-depth interviews
Cocoon GetTogether 2005 Podcast
October 10th, 2005 by jivers

The Podcast for GT2005 is now available. The feed comprises each of the Friday sessions as well as three individual interviews conducted during the Hackathon.

Here’s how you subscribe to the feed in Apple iTunes:

  • Upgrade to iTunes 5 or 6
  • In iTunes, on the top menu, click Advanced / Subscribe to Podcast
  • Paste the feed URL http://agilepartners.com/gt2005.xml into the URL field and click OK

iTunes will then download the newest entry in the feed (which happens to be Nico’s presentation), and display the remaining entries with a “Get” button next to them; just push Get next to any of the presentations you want audio for, and iTunes will grab it for you. This content will then automatically show up on your iPod the next time you update.

Presentation PDFs and individual audio files can be found on the GT 2005 slides and recordings page.

Photos from the event are on Flickr at http://www.flickr.com/groups/cocoongt2005/

You can learn more about GT2005 at http://www.cocoongt.org/GT2005-Home.html

A Series of Unfortunate Events
October 1st, 2005 by jb

We’re working on a fairly high-profile application that relies on Ajax for input filtering, and came away with some pretty hard lessons learned.

The core problem is this: Javascript keystroke events can often be unreliable for alphabets in which a single keystroke does not equal a single character. Reliance upon onkeyup, onkeypress or onkeydown events can cause problems in these languages.

In alphabets such as Hiragana (Japanese) or Hangul (Korean), characters are typically created by multiple keystrokes. Thus a single keystroke may generate a temporary character, which is converted into a complete character with additional keystrokes. This conversion is typically handled at the OS level.

For example, in Korean the last name “Kim” is a single character that is composed of three keystrokes.

Korean language example image

The problem with this is that Javascript keystroke event processing is spotty in this scenario. In Firefox for Windows, when typing in Japanese’s Hiragana only the first key press triggers an event. After the first keystroke, the character conversion software takes over and Windows essentially doesn’t trigger onkeyup, onkeypress or onkeydown events. It’s as if the user didn’t type anything.

Internet Explorer on Windows often triggered onkeydown and onkeyup events, but not in all cases. For both browsers, the key code for events was often altered.

Since our application relies on user input to capture field values (for result set filtering purposes), and absolutely must support languages that use character conversion (such as Japanese, Korean and Chinese), this is a major problem.

After much testing and confirmation, the solution we ended up with is to not rely on keystroke events at all. The approach we’re using is a watcher loop that looks for changes in the text entry fields on a periodic basis. This brings with it a number of other challenges, but at least we have something working.

© 2005 Agile Partners Corporation