Looking at a new Podcast Receiver / Catcher?

[Update (4/19/05@1350): If iPodderX is better, than of course I'll stick with it... ;) Incidentally, the iPodderX main developer (Ray Slakinski) has already contacted me to discuss my concerns (Fast huh?). This review post had barely been online for 12hrs when I got the email! Anyway, I look forward to our chat and will post as much as I can (with his consent) as soon as I can. In addition, I will post my reivew of iPodderX v3.0 when it is released.]

A few weeks back, it seemed as if everyone stopped podcasting. I knew that couldn't be true. So what happened? Well, I use iPodderX v2.2.9 for OS X, and have routinely updated to the occasional point release (and yes, I'm a registered user). Version, after version after version I seemed to have problems crop up; and when I complained (though I haven't recently), the developer actually put me in the beta testers group (where apparently the fixes were being tested). In any case, recently the iPodderX kept asking me to register every time I ran it. Since I already had, it seemed to be just another bug. After a while the software wouldn't even load. I was then forced to re-enter my registration code just to get it to run. However, it still didn't seem to be downloading the latest podcasts... and when it did, it left them in its download directory without adding them to iTunes. The log files that I looked at appeared to be devoid of any substantive errors that I could gather. Unacceptable to say the least.

iPodderX was my first podcast receiver, and I chose it because it worked, and had a brushed-metal UI. My recent problems (compounded by continuing delays for v3.0) have forced me to see what's out there.

Surprisingly there are three podcast receivers out there of note. I've downloaded all the most recent available betas, and will attempt to give my brief take. Each podcatcher is followed with a conclusion and rating. 1= Horrendous, 2=Barely Functioning, 3=Works, 4=Good, 5=Outstanding. As a baseline score I used iPodderX v2.2.9 which in my estimation scores a 2 (barely functioning).


iPodder - Podcast receiver v2.0 is an open source (GPL; donationware) brushed-metal receiver. It is commonly referred to as "Lemon", which is incidentally the apps icon. I found this UI the most confusing of the three - at least initially. Along the top are the tabs for: downloads, subscriptions, podcast directory, cleanup and logs. It definitely took a while to figure it out, but once you do it's not bad. Though, over the course of a week, switching between subscriptions and downloads got old real fast.

Each section does what you expect. Downloads shows you what's currently being downloaded (along with a progress indicator), as well as what's been downloaded. Oddly, it even has a play button on each line to allow you to play the podcast directly in iTunes - which seems cool, until you realize that you can't pause or stop it from here. Subscriptions is just plain weird. The icons barely make sense, and it took me a while just to figure out why all of my subscriptions had a red bar icon in front of them (red bar = podcast, redbar with X = delete selected podcast, etc). I really do think it's cool that you can click on a subscription and selectively download indiviual podcasts within a subscription though. Other standard functions include scheduling, catchup, and download all. The podcast directory seemed rather slow (requiring a round trip to some OPML directory somewhere), and appears to be rather short on content right now. The Cleanup section is a new feature for me, but it appears to allow you to selectively delete podcasts completely from your Mac (including iTunes). Finally, logs. iPodderX has logs, but good luck finding them - they are buried in a library folder deep in the guts of OS X. At least here they are exposed (though it shouldn't have it's own tab, but rather have it in the menu).

Conclusion [3, Works]: Functional and informative about what's going on with your downloads, and it even adds on the podcatcher idea with a tidy cleanup area. Though switching between tabs constantly was a pain. I wish most of this was on one screen.


PlayPod v1.07b by IGG Software, LLC. (the makers of iBank) is a commercial podcast receiver, also with a brushed-metal UI, that costs $17. This app appears to be the most aggressive of the three - going so far as to integrate a blog aggregator and a podcast receiver. It looks very much like an iLife app - but with folders. In the left pane you can see your podcasts & your blog subscriptions - with an at a glance number for unread/unheard items. I addition to the left pane update numbers, you also see the total number of unread/unheard items in the tray with a number superimposed over the icon (sweet).

There is also a Directory and a download item in the left pane. The directory item links to an OPML directory. Unlike iPodder this directory appears to work and is pretty snappy with it's finder-like list view (the one with the columns where you select a folder/category and it loads the next column). The downloads section gives you an at a glance view of what's being downloaded as well as their current status in bytes/percent.

Once you click on a podcast (or blog subscription) you will see the current list of podcasts that were returned by the rss feed - and you can selectively start the downloads of the ones you are interested in. Just like iPodder, PlayPod also shows your download stat (%). When you select an individual podcast in the upper right pane you see the text and/or a mini Quicktime app bar that automatically kicks off the download (whether you've hit download or not) allowing you to immidiately begin listening. This was rather erratic, but worked most of the time (yeah, it's beta).

Conclusion [4, good]: The UI gives me the feeling that they were going for an iApp experience that kept (locked) you in with the blog aggregator bit. It's a powerful idea, but I'm not sure I'm ready for it... especially since I'm currently a NewsGator user (though NewsGator has no plans to build an Entourage edition I may just switch soon - if I don't write my own NewsGator sync script for Entourage).


PoddumFeeder v1.1 by If Then Soft is a commercial podcast receiver, also with a brushed-metal UI, that cost $5. This app has the cleanest interface of the bunch. Pretty much everything can be done from here with little work to find it. Along the top you'll get an update on exactly what it's doing. No guesswork. In the left pane you have access to a podcast directory which again is not searchable and quite slow to return your selection lists. At the bottom of the directory you have buttons that allow you to load a remote subscription manager (I have no idea what this is), get info on the selected podcast, and add a new podcast to your subscription list... which is shown in the right pane. This list on the right is where you manage your subscriptions. Several buttons below the subscription manager list allow you to: enable/disable all subscriptions, save out your OPML file (a list of all your podcasts), email a link to the selected podcast feed, get more info on the selected feed, download updates from the selected feed, and download updates from all feeds. There is even a nifty little slide rule that allows you to control how many podcasts are downloaded from each feed (from only the most recent to all of them). You also have access to the activity logs through a menu (instead of in you face like with iPodder lemon). Finally, it's even ready to support iPodderX switchers with an "Convert iPodderX OPML" item under the tools menu.

Conclusion [4, good]: This one was borderline outstanding. If it wasn't for the annoyingly slow podcast directory and the lack of the nifty selectable download options (like both iPodder lemon and PodPlayer) this would be the perfect podcast receiver.


I haven't completely decided yet, and the picture below was just uploaded to the iPodderX developer blog. We should see the new version soon. However, if it isn't better than PoddumFeeder, I'll probably switch.

B2 is here... but I just learned something about .NET 1.1

Of course, this could have been in .NET 1.0 but the article in MSDN library is from February 2003. But I'm jumping ahead of myself.

Check, a coworker (and VB.NET lover - I've tried converting him to C# :) whose application has seen more users than all of mine by an order of magnitude... brought an issue to my attention about 6+ mos ago. Apparently, the aspnet worker process was eating memory for lunch and never giving it up. Once it reached about 750MB's it would peg the CPU and refuse all requests. The quick-fix of course was to kill the worker process, and it would restart with only 3MB of memory. Definitely inelegant especially since all session variables are blown away.

When he brought this to my attention, my knee-jerk reaction was to point out something I had learned about IIS6 - namely that IIS6 offers the capability of restarting the worker process on a defined schedule. However, the bigger question was why was this happening in the first place? Some sort of memory leak? Did the garbage collector suddenly give up?

Well here it is 6mos later. Check wrote a VB.NET console app a few days ago to kill the worker process. However, his concern for support of IIS6 led him to find that the aspnet_wp.exe process name has changed. Which led to further research... which led to some highly interesting <processModel> configuration attributes (C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config). According to the machine.config:

    processModel Attributes:
  • enable="[true|false]" - Enable processModel
  • timeout="[Infinite | HH:MM:SS] - Total life of process, once expired process is shutdown and a new process is created
  • idleTimeout="[Infinite | HH:MM:SS]" - Total idle life of process, once expired process is automatically shutdown
  • shutdownTimeout="[Infinite | HH:MM:SS]" - Time process is given to shutdown gracefully before being killed
  • requestLimit="[Infinite | number]" - Total number of requests to serve before process is shutdown
  • requestQueueLimit="[Infinite | number]" - Number of queued requests allowed before process is shutdown
  • restartQueueLimit="[Infinite | number]" - Number of requests kept in queue while process is restarting
  • memoryLimit="[number]" - Represents percentage of physical memory process is allowed to use before process is recycled
  • responseDeadlockInterval="[Infinite | HH:MM:SS]" - For deadlock detection, timeout for responses when there are executing requests.
When ASP.NET is running under IIS 6 in native mode, the IIS 6 process model is used and settings in this section are ignored. Please use the IIS administrative UI to configure things like process identity and cycling for the IIS worker process for the desired application.

Of course the important ones to note are: idleTimeout (which allows you to shutdown the worker process when no one has hit your app in a while), memoryLimit (which lets you determine how far the worker process will get before thrashing like mad) and responseDeadlockInterval (which allows you to monitor the worker process and kill it if it starts thrashing; his was set to 30minutes - a big contributor). I probably saw this on my cert test, but I forget. Either way useful info. Now the questions are: Why does the worker process start thrashing once it reaches it's memory limit? Is the garbage collector coded that badly?

«April»
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567