$30 off During Our Annual Pro Sale. View Details »

Pony Podcast Programming by Corpulent Brony (#PonyDev @ BronyCon 2018)

Pony Podcast Programming by Corpulent Brony (#PonyDev @ BronyCon 2018)

A 10 minute lightning talk at BronyCon 2018's Pony Programming panel. Find more slides at http://developer.horse

Presented by Corpulent Brony

Inky Collective

July 28, 2018
Tweet

More Decks by Inky Collective

Other Decks in Programming

Transcript

  1. View Slide

  2. •Data Developer for 20 years
    •Pony Podcast Producer for 4 years
    • Formerly: PFC, Pony Tonite, Equestria Now
    • Currently: /mlp/odcast
    • Occasionally makes YouTube videos and writes for an infamous fandom news site

    View Slide

  3. •Hosted on Amazon Web Services (AWS) Elastic
    Compute Cloud (EC2) instance running Amazon Linux
    AMI
    •Episode MP3 files hosted on AWS Simple Cloud
    Storage Service (S3)
    •nginx Web server
    •PHP generated RSS feed
    •MySQL for episode metadata

    View Slide

  4. •Distribute episodes via iTunes, Google Play,
    Google Podcasts, etc.
    •RSS – an XML-based feed format
    •Client applications can subscribe to the feed
    and poll for updates
    • Web browsers, iTunes Podcast Connect, Google
    Play Podcasts, etc.

    View Slide

  5. •Wanted to create podcast Web site: https://mlp.one
    •Create new PHP interface to serve up same data in
    RSS feed?
    •Piggyback on existing RSS feed instead?

    View Slide

  6. • XSLT – XML-based transformations
    • Change any XML document into anything else
    • Turing-complete language
    • Transformed RSS feed into HTML

    View Slide

  7. • XSLT applied at browser or at server
    • Browser implementations vary considerably
    • Opted for nginx-based XSLT using the built-in module

    View Slide

  8. • RSS results from PHP cached on server
    • XSLT transformations cached on server
    • HTML transform included virtually using Server Side Includes (SSI)
    • FAST LOAD TIME

    View Slide

  9. • RSS feed leveraged with XSLT to create a
    schema.org compliant JSON-LD document
    describing podcast episodes
    • Used XSLT to modify RSS feed slightly to make it
    compatible with Google sitemaps

    View Slide

  10. • Donut Steel Public License: https://donutsteel.pl
    • Leveraged XSLT to transform XML document that defines license into:
    • HTML to display the license on the Web site
    • Markdown and Text formats for download

    View Slide

  11. View Slide