# Wednesday, June 29, 2005

Marcus Vorwaller, who maintains the “Best Tool for the Job” blog (a great blog, btw) wrote a post earlier today in which he describes why he feels independent podcasting will die. While I do think there’s a ton of (overblown) hype surrounding podcasting lately, I respectfully disagree that it’s going to go away any time soon. He feels that podcasting will ultimately dwindle down to 20 or 30 podcasts that “anyone cares about or will listen to”. I think that’s awfully low and, once the “me too” hype of podcasting goes away, I expect that number to still be measured in the hundreds.

I also think it’s worth noting that his post (and this one) relate to independent podcasting. Not the well-funded, corporate-driven, marketing podcasts that are pushing a product, nor the podcasts that are published from radio stations that already have an investment in equipment and talent.

Here are the reasons he gives for podcasting to die off, along with my disagreements.

1. Pocasts are time-consuming to create. This is certainly true… but you could argue that many of the better (re: interesting and readable) blogs also require an investment in time on the part of the author/content provider — I’m sure Marcus spends a great deal of his personal time on “Best Tool for the Job”. If someone is passionate about what they want to say and getting their message out, they’ll find the time. For most people, blogging is a hobby that they spend some of that precious spare time on… I don’t see any reason that podcasting doesn’t fall into the same category.

2. Podcasts don’t make money. Also true in most cases. While there are some examples of independent shows that are bringing in some money (via donations), they’re certainly not the provider’s sole source of income. But if we agree that podcasts are often put together by hobbyists who are passionate about a topic, then the fact that they’re not generating income isn’t usually a factor.

3. Podcasts are expensive to produce. I suppose this depends on the definition of expensive. $100? $500? I listen to some great podcasts that are recorded on iRiver MP3 players. Another that’s recorded with a USB microphone on a laptop. There are open source audio editors that make cleanup and editing a snap and don’t cost a dime. Nearly anyone who wants to put out a podcast will have a computer and a vast majority of those will have some sort of audio input capability. Is it ideal? No… but it can work quite well and stepping up to the next level of sound quality doesn’t have to be much more expensive than a nice DVD burner or a new monitor.

4. Podcasts are boring. There’s plenty of evidence to support this, given some of the bad stuff out there. On the other hand, there are a lot of shows that are interesting — using my personal definition of “interesting”, which is the point here. One of the podcasts I listen to centers on the world of poker. If you’re not into poker, you’d be bored stiff to listen to it. If you are into poker, you might enjoy it. I also listen to a couple of .NET development-related shows that would bore to tears anyone who’s not spending their days building software with .NET. Based on Marcus’s blog, I’m sure there are a few podcasts that align with his interests. Whether or not those also have decent quality and content he finds compelling is another matter.

5. Podcasts sound bad. I lump this in with the “expensive to produce” argument. Typically, a podcast sounds bad because the provider recorded it with the built-in mic on their laptop, while they sat next to the microwave in their kitchen and and ate potato chips out of a plastic bag. Any halfway decent studio microphone (not anywhere near as expensive as you’d think) does a fine job, as do plenty of USB-based microphones. One nice thing about the explosion around Skype and other VoIP services is that mic manufacturers are flooding the market with inexpensive, USB-based mics. I also don’t think it’s important to have a “radio voice”… like most blogs, independent podcasts are put out there by regular people. They should sound like regular people when we listen and I don’t think one needs the booming monster-truck-rally-announcer style of voice (which are usually treated with audio effects anyway) to be interesting. If your content is interesting, I’ll tolerate a bit of a nasal voice.

6. Podcasts are too long. Are there some that are too long? Probably, but it’s like any other content or form of entertainment. If you’re interested in it, you don’t want it to end. If you’re not interested in it, then you’ve got another option that’s missing from radio broadcasts — the fast-forward. There are times that some of the podcasts I listen to lose me. The topic for a given show might not appeal to me or maybe they’re doing a segment that I find boring. I fast-forward until I’m past it… and if that occurs too often with that particular podcast, I unsubscribe.

7. Podcasts are light on content. It’s the same argument as with “boring”, “sounds bad”, and “too long”. If it doesn’t hold your interest, move on. The upside to this hype is that there’s plenty to choose from. I’ve downloaded some that I thought were just horrible. I really don’t need to hear about your day, what you’re having for dinner, how your dog’s vet appointment went, or that you and your wife are vacationing in the Poconos. If your content isn’t relevant to me, I’m gone.

In any case, I’m curious what others think. Will we eventually see podcasting just plain “go away”, or as Marcus suggests, will it become the exclusive domain of existing broadcasters like NPR and radio stations?

posted on Wednesday, June 29, 2005 12:06 PM Mountain Daylight Time  #    Comments [0]

I blogged about Podcasts last year and came to the conclusion then that there was a lot of hype around podcasting, much of it overblown, but that we’d eventually see it settle down and some real value emerge.

Since then, I think I’ve been both right and wrong.

I’ve been right in that I’ve seen some real value emerge from podcasting. I now regularly listen to a number of podcasts while I commute. There is some very compelling audio content out there.

I’ve been wrong in that the hype has yet to settle down… and yesterday’s release of iTunes 4.9 with podcasting support won’t do anything to help quell the noise.

With this release, you can now browse through various podcasts in the iTunes Music Store (all free, for now) and subscribe to those that interest you. You can tell iTunes to automatically download the subscribed podcasts into the iTunes library, where they will be synced with your iPod. The iPod also has an available software update, which provides bookmarking support for the podcasts you download (meaning you can switch to something else and later pick up where you left off).

I’ve downloaded both the 4.9 iTunes update, as well as the iPod update and here are a few thoughts. First, the good:

  • First, the interface for browsing podcasts in the iTunes store is very nice. Subscribing is easy and it wasn’t difficult at all to set things up to automatically fetch podcast files.
  • Second, I really like that downloaded podcasts will be bookmarkable in the iPod.
  • I also think that this will be a great way to get those who are new to podcasting introduced to all the great content. Since it’s so easy to browse, subscribe, download, and sync, (oh and it’s free), the barrier to entry is much lower than in the past.
  • By having podcast support in iTunes, I may not have to explain “podcast” to friends and family as much.
  • The installs for both the iTunes update and the iPod software update both went without a hitch.

Now the not so good… and to be fair, my main gripe with iTunes as a podcasting client is the same as with every other client I’ve tried — an incomplete set of features.

My ideal podcast client would le me subscribe to feeds and configure them on an individual basis. I want to configure the genre, artist, and album tags in the downloaded files — per feed. I want to specify exactly where downloaded audio goes and the naming convention used for those files — per feed. I want BitTorrent support built in for feeds that provide that option. I want to be able to specify the update/download schedule the client uses to check for new files and download them when they’re available — per feed. I want to be able to specify the iTunes playlist(s) that downloaded files appear in — per feed.

So while I think iTunes is a decent client, especially for those new to podcasting, it’s far from perfect. The biggest one is being able to specify the genre, artist, and album tags. Podcast providers are all over the map with how they fill out metadata tags in the audio files… if they fill it out at all, it often varies from one show to thenext. And because the iPod’s navigation centers around this metadata, I have to update things myself if I want them to be organized correctly.

The other issue I’ve run into is that there doesn’t seem to be a way to take podcast files that are already in your library and tell iTunes to treat them as podcasts. I’ve got a bunch of old episodes from some of my subscribed feeds and I work my way through them when I’m doing yard work, errands around town, etc. And while I’m OK with subscribing to all of my podcasts in iTunes going forward, I’d really like to NOT have to re-download all of those files just so that iTunes/iPod recognize them as podcasts.

In typical fashion when a major announcement is made around an RSS-enabled product, there’s some drama and much discussion. This time, it’s centered around the tweaks they’re using inside of RSS to support the appearance of a podcast in iTunes, the “chapters” feature in enhanced podcasts, etc. But that’s to be expected and hopefully Apple does the right thing and evolves those extensions to something more straightforward down the road. In the meantime, it sounds like podcasters may have to jump through some hoops to get their content to appear correctly in the iTunes directory.

So overall, it’s not a bad release. If you have an iPod and have never checked out podcasts before, you’re set. If you’re already using a podcast client and have your own process for fetching/syncing, you may want to keep doing what you’re doing.

posted on Wednesday, June 29, 2005 10:14 AM Mountain Daylight Time  #    Comments [0]

Currently, I listen to a number of podcasts (to be listed at some later point) and getting them on to my iPod isn’t as straightforward as I’d like. I figured I’d mention the steps I use here on the chance that someone else finds them useful or has some suggestions for improving the process.

My steps are…

1. Throughout the week, I use FeedDemon to fetch the podcast audio files from my subscribed feeds.

2. On the weekend, I copy all of those to the correct folders on our “media server” — essentially the photos/music box we use with the Tivo Home Media Option and with which I sync the iPod.

3. I run MP3Gain on all of the .MP3 format files so that their volume metadata is consistent with the rest of our audio.

4. I drag and drop all of the new files into iTunes.

5. I use a “new files” Smart Playlist in iTunes to view only the files I just added. With them displayed, I clean up the tags:

  • Set genre to Podcast and year to 2005.
  • Make Artist and Album consistent across each feed’s files, both new files and files previously downloaded from the feed.
  • Verify the Track Number tag so that the files are listed chronologically on the iPod.

6. I sort them based on the file type column and select those that are MP3 files. I then right-click those and choose “Convert to AAC”. This can take quite a while for lots of files (or longer programs).

7. When it’s done, I remove all the MP3/new-AAC files from iTunes’ Library.

8. I then go the folder that has all those files and do two things:

  • Delete the MP3 files (don’t need ‘em any longer).
  • Change the .M4A extension on the newly-converted files to .M4B. This lets iTunes treat them as audiobook files — so that they’re bookmarkable and can be sped up. The iPod lets you set the playback speed to “Faster” so that files play about 25% faster, but without the higher pitch that would make the speaker sound like a chipmunk.

9. Delete older shows that I’ve already listened to, both from the iTunes library and from the drive.

10. Plug in the iPod and sync it all up.

So there you have it… all podcast files are bookmarkable, can be sped up for quicker listening, and are easily found by Genre and Artist on the iPod. Any suggestions?

posted on Wednesday, June 29, 2005 10:00 AM Mountain Daylight Time  #    Comments [0]
# Tuesday, June 28, 2005

With the purchase of Keyhole (URL is now redirected) a year or so ago, Google picked up an application that lets you literally “fly” from one place to the next. You can zoom and pan, like with most mapping applications, but you could then enter a “destination” address and the software would zoom back, slide over, and then zoom in to your destination — giving the sense of flying.

Today, they released Google Earth, which raises the bar even further. For starters, the base version is free (Keyhole used to be about $30 for the personal version). They have a “Plus” version, which adds GPS support, basic importing, and some drawing tools, all for $20. For $400 (and up), they have Pro and Enterprise options aimed at business uses.

This version has the ability to view layers, such as restaurants, ATM machines, lodging, and so on. They even give you layers for crime statistics, census data, and congressional districts. You can turn on off roads, political boundaries, and terrain. As you’re viewing the imagery, roads and highways are overlayed on top of the images, which makes it easy to get your bearings (much easier than Google Maps’ satellite view).

Streets are displayed above the image No overlay makes it hard to get oriented
Street names overlayed on the aerial imagery make it easier to navigate Where the hell am I?

The interface is very polished (more so than Keyhole was) and all navigation is smoothly animated (via DirectX). You can rotate, zoom, place pushpins (like bookmarks), print, email, and so on. Perhaps most impressive is that you can tilt the perspective so that the view appears to spread out in front of you (and you see the horizon). I also like how the UI tells you the current altitude of the “eye” — that is, the zoom level you’re currently at is translated into ft about the earth’s surface (see below).

Well, well worth a download. Just plan on a productivity hit while you explore.

Google Earth's Navigation UI

 

 

 

 

 

posted on Tuesday, June 28, 2005 5:36 AM Mountain Daylight Time  #    Comments [0]
# Monday, June 20, 2005

There’s a trend I’ve noticed recently in the world of tech blogs that has turned into a pet peeve. This trend is the “I have a secret and you don’t know it” blog posting.

My RSS subscriptions are fairly focused into a few categories, but I see it occuring pretty much with just the .NET development world. Maybe other software/platform ecosystems are the same, but the tech-gadget, poker-fan, photography-hobbyist groups don’t seem to feel the need.

In any case, employees of Microsoft, regional director/author types, and other people who have access to pre-release and pre-CTP efforts are the most guilty. Yeah, http://blogs.msdn.com, I’m looking your direction. Here’s the theme, typified by breathless anticipation and a complete lack of interesting detail or value:

  • Boy, I’m tired. I was up all night writing code on a new feature. I can’t talk about it yet, but you guys will love it.
  • So I was just talking to [some person] over in the [some product] group and he/she showed me some amazing stuff coming down the pipe. I wish I could talk about it, but it’s too early in the cycle.
  • Holy crap. I just got access to an early look at a new product some people I know are building and it’s unreal! I really wish I could tell you more.

So if you’re a blogger who finds yourself in this sort of position and you’re sitting down to write a blog post, here’s my advice… don’t. It’s annoying and you’re really not impressing anyone. Really.

In fact, you’re doing just the opposite as each of the above blog posts amounts to this: I’m an insider/important person and you’re not.

I’ve unsubscribed from a number of blogs lately because of this pet peeve… when you have FeedDemon loaded up with hundreds of subscriptions, you can’t spend time with blog posts that talk about not being able to talk about something.

Thank you for your support.

posted on Monday, June 20, 2005 9:50 AM Mountain Daylight Time  #    Comments [0]
# Friday, June 17, 2005

The “Baby Name Wizard’s NameVoyager” is a Java-based, web UI for looking at the popularity of baby names over time. When we were deciding on names for our newborn daughter, I would occasionally pull this up to see how common/rare a name was.

On its surface, it’s simply an area chart. For a given name or set of names, you see a names popularity expressed as “usage per million babies” over time (with decades on the X axis). From a visualization perspective, it’s interesting because it’s constantly updating as you type in a name. You can choose to view names for boys, girls, or both, and the area chart updates as you type — type in “Alex” and you’ll see Alex, Alexa, Alexis, Alexander, Alexandra, Alexandria, and so on. I like how, in addition to updating constantly as you type, it also animates the updates leaving the whole interface feeling very smooth.

Not that you’ll need to have the Java runtime on your machine in order for the applet to work.

posted on Friday, June 17, 2005 10:39 AM Mountain Daylight Time  #    Comments [0]

I created a new category for the blog… InfoPorn. It’s a name I got from Wired Magazine, but is a great way to refer to a longtime passion of mine: data visualization. Most of my development experience has been with applications that take high-volume data and aim to bring the interesting bits to the surface. Charts and graphs are great, but the visualization world has exploded lately with lots of online examples, Flash applications, entirely new visualization styles, and discussion groups all cropping up all over.

With the similar explosion in weblogs and RSS, it makes it very easy to find others who are interested in data visualization, as well as pointers to cool examples online. This category will be used to link to examples, mention ideas I’m tossing around, and so on.

posted on Friday, June 17, 2005 10:20 AM Mountain Daylight Time  #    Comments [0]

Whew.

Elizabeth Rosslie Donnici was born on Tuesday, June 14 at 3:27pm. She was born via c-section and came out screaming. She weighed in at 6 lbs 11 oz, and is just over 19” long. She looks a lot like her older sister did as a newborn. All is well with her and Michelle and both are now home and getting lots of rest (in 2–3 hour blocks, that is).

posted on Friday, June 17, 2005 10:07 AM Mountain Daylight Time  #    Comments [0]
# Saturday, June 11, 2005

There’s an interesting discussion going on in the comments of Eric Wise’s blog about interface implementations versus type inheritance. I respectfully disagree with rlewallen’s post that an interface implementation serves as a "has a" relationship -- and most OO literature would disagree with that notion as well. "Has a" implies a composite relationship where a whole is made up of parts -- An Order object "has a" OrderDetails object. An Invoice object "has a" Customer object. That an interface "has" properties and methods" isn't the same thing, as any type "has" members -- class, interface, struct, and so on.

An interface defines an "is a" relationship... SqlConnection "is a" disposable object (e.g. implements IDisposable). A collection "is a" enumerable object (e.g. implements IEnumerable). Your Customer "is a" comparable object if it implements IComparable.

In terms of when to use one or the other, there are a couple of thoughts that come to mind for me.

First… My feeling is that inheritance is widely overused and that it often paints developers into a corner. Deep hierarchies tend to propagate themselves in that specialization rules out wide reuse… so when the developer needs something that’s “close to, but not quite” an existing class, they’re typically going to have to subclass again. This isn’t a .NET specific thing at all, as I saw it a lot in my Java days and in other OO languages (Delphi, VFP, and even PHP where OO isn’t enforced). Note that I’ve worked with C++ as well, but am not a fan of multiple inheritance environments. In general, I think developers are better served with composite (“has a”) relationships over inheritance. Make small building blocks and then “compose” them to get big components.

The key question is “when do I use an interface versus a implement base class?”. Years ago, someone (and I’ve long since forgotten who the author was) explained somewhere that an interface makes sense when a type “is also something else”. That is, a type that implements IComparable might also be a Customer, a string, an Invoice, and so on — but the manner of comparing them is very different. So while I know I want to compare two Customer types or two Invoice types, I really don’t want to assume anything about how they’re compared.

A type that implements IDisposable might be a SQL connection, a file handle, a graphics object, and so on. If all of these things had to inherit from either a “disposable” implementation, you’d have some unwieldy class hierarchies — and ugly code as the implementation for disposing of these things is very different. So if there’s no shared functionality (which would imply using a base class that provides it), then an interface lets you talk to widely different objects using the interface contract. The example I often use is:

A Car, Truck, and Boat might all be subclasses of the MotorizedVehicle base class. You have shared implementations here, dealing with starting an engine, basic navigation, and other functions related to a mototized vehicle. However, the MotorizedVehicle base class might implement the IDriveable interface – providing Steer, Accelerate, Decelerate, etc. While you could avoid the interface and declare those members on the base class, using IDriveable lets you implement behavior for your Bicycle, Scooter, and other non-motorized types that can be driven.

posted on Saturday, June 11, 2005 4:57 AM Mountain Daylight Time  #    Comments [0]

Sheesh, months have gone by since the last post. In the meantime, I’ve got a Firefox bookmarks folder full of things I wanted to post, comment on, ideas to toss out, etc.

It has, however, been a very busy few months.

  • I hadn’t mentioned it on the blog before, but my wife is pregnant. She’s due July 1, but we learned yesterday that the baby is in a breach position (feet down) and shows no signs of turning… so we’re scheduling a c-section this week rather than risk breach delivery. We know we’re having a girl (the ultrasound tech guarantees it) and Allie, our 5–year old, couldn’t be more excited about being a big sister.
  • Got through the spring youth soccer season, coaching two teams — Allie’s U-5 team (“herding” more than “coaching”) and the U-14 boys team I’ve coached for years. They’re now aged out of our local soccer program, but many will be playing in high school.
  • Got a spare bedroom cleared out, painted, decorated, and mostly furnished as a nursery.
  • Busy as can be at work, which is a great thing. I also moved up to a new role (VP, Engineering) to add to my duties as the lead architect.
  • The MLS soccer season is underway, though this is more a source of frustration than anything else these days.
  • Got a couple of side development projects underway (call ‘em personal R&D), stuff around the house, etc.

Anyway, there ya have it… I’m hoping to get through some of those “blog this” bookmarks this weekend before the fun starts next week.

posted on Saturday, June 11, 2005 3:34 AM Mountain Daylight Time  #    Comments [0]