How we built a Web 2.0 Podcast Publishing Platform

Ram Krishnan

CastMetrix

Founder and Chief Hacker at CastMetrix, a Web ASP company, providing Podcast publishing services for emergent New Media companies.

What the #$*! is Web 2.0?

Some representative attributes are:
How Do We Know What We Know? -- anonymous quote about the film "What the #$*! do we know?"

The CastMetrix Application

  • CastMetrix offers a Podcast Publishing Platform as an ASP solution to emergent New Media companies
  • We enable our clients to provide comprehensive podcasting services to their customers
  • Using this technology we've built Podbazaar, a podcasting network for South Asians

Our Requirements

  • Build a technology platform with comprehensive features for listeners, publishers, and advertisers
  • Support real-time, dynamic "stitching" of content and advertisements
  • Enable our partners and customers to customize and integrate our application
  • Our application itself had to be mashable

Our Technology

Why Common Lisp?

  • CastMetrix was built by two people who were proficient in it; in ~ 8,000 SLOC*
  • We were able to leverage existing infrastructure
  • It's mature: invented in 1958; ANSI standard in 1994
  • Late bound and interactive
  • Object-oriented including multiple-inheritance
  • S-expressions: what XML ought to be
  • Powerful macro capability - ideal for domain specific languages
  • The SBCL implementation includes:
    • Optimizing compiler
    • Native threads
    • Sophisticated garbage-collector

An Example

An XML micro-language within Lisp:
(xml
 (:title (html-encode (title object)))
 (:link (make-uri object :read))
 ((:description :content-type "text/html")
  (html-encode (description object)))

 (awhen (tags object)
   (xml
    (:keywords
     (mapconcat (lambda (x) (name (tag x)))
		it
		",")))))
      
results in XML:
<title>Podbazaar News</title>
<link>http://www.podbazaar.com/permalink/126100789566373890</link>
<description content-type="text/html">
  Podbazaar co-founder Suja presents the latest updates &amp; featured
  podcasts at podbazaar.com.
</description>
<keywords>podbazaar, news, updates,  podcasting, featured podcasts</keywords>
      

Some Technology Lessons

  • Javascript for client-side scripting
    • Browser support is improving
    • Mobile browser support is still poor
    • Limited multimedia capabilites
    • Libraries like Prototype and Yahoo UIL are nice
    • Murky object semantics and multithreading model
  • Flash for client-side scripting
    • Proprietary, but has better sound and video integration
    • OpenLaszlo is another option to consider
  • Java applets - too heavyweight
  • SVG may also be a viable option in the future

More Technology Lessons

  • The server side technology must be flexible to support more than one kind of client side technology and RPC strategy
  • Late bound languages are more suitable for this kind of development
  • Languages like Lisp, Python, Perl, and Ruby offer features like live code updates and in-request debugging

Even More Technology Lessons

  • Don't get suckered into the language du-juor
  • Don't fall for the purported performance gains of any technology
    • Make it work correctly, first
    • ... then try to make it work faster
    • ... then rewrite it
  • At the end of the day, pick a technology you enjoy working in, not one that looks good in a data-sheet

Point of view is worth 50 IQ points. -- Alan Kay

Web Services & Mashups

Google Maps Mashup in Podbazaar

  • XML-RPC, SOAP and the REST of the alphabet soup
  • REST transport with S-expr, XML, or JSON payload
  • Keep the XML generation lightweight
    • CastMetrix generates 4 flavors of XML data (so far)

The Reality of Web 2.0

For the budding entrepreneurs in the room.

Final Thoughts

  • Great time to do a technology startup
  • The barrier to entry is low
  • New service and revenue models
  • The World is truly flat!
  • Seek out real problems faced by your users
  • Build core solutions, but leave lots of interfaces for integration
  • Learn from the innovations and innovators from the past

If I have seen further it is by standing on ye shoulders of Giants -- Sir Isaac Newton
In computer science, we stand on each other's feet. -- Brian K. Reid

Thanks

Thanks to Kiruba, Adel and all the other guys at BarCamp Chennai.

Contact: rkris@castmetrix.com

A special nod to Eric Meyer for the very slick S5 presentation software.

This presentation is available online at: http://www.castmetrix.com/presentation/barCampChennai

References