I know that podcasting is supposed to be getting big, but there's something missing, at least from my perspective. Maybe I'm just not subscribing to the right feeds, but I'm not seeing many enclosures (and of the ones I am seeing, a number are just images). Here's the thing - I subscribe to 266 feeds. I maintain a cache of about 80-100 items per feed. Out of all that, I have only 15 Enclosures. Here's the list I found:
- http://www.lessig.org/blog/archives/Wilco on NPR with Matteen.mp3
So I'm curious - is there a lot of Enclosure use that I'm not seeing, or are people just not taking advantage of it? Heck, even Dave Winer, one of the proponents of Enclosures, usually just puts his audio stuff into his feed as a link in the description body. Is it that the blog client tools don't make it easy to define Enclosures? Is it that the common blog servers don't?
I have support in Silt for it, and matching support in the client poster. I note that the MetaWeblog API supports files, but I don't see a way to have that hook into Enclosure definitions - at least not any standard way of doing it.
In any event, this little exercise illustrated one of the cool things about BottomFeeder that I've brought up in my screencasts - the fact that you can write Smalltalk code directly in the runtime (try that in a shipping .NET or Java app). I was too lazy to create all of the links above by hand, so I opened up a workspace (from the System menu) and wrote the following:
|stream | stream := WriteStream on: (String new: 100). stream nextPutAll: '</ul>'; cr. RSS.Enclosure allInstances do: [:each | stream nextPutAll: '<li>'. stream nextPutAll: '<a href="', each url, '">', each url, '</a>'. stream nextPutAll: '</li>'; cr]. stream nextPutAll: '</ul>'; cr. ^stream contents.
I inspected the results, which gave me the list above. I flipped the post tool into tag mode (from XHTML editing), pasted it in, and then went back to the normal edit mode. This is one of the more empowering things about Smalltalk, actually - the fact that there's no artificial line between development and deployment - heck, I had forgotten to add the #printOn: method that I spoke about in the last podcast, so I went ahead and added that to the application while I was fiddling with the script. This is one of the reasons that Smalltalk is back at the house having lunch while Java and C# are still trying to find their underwear...