Category Archives: projects

apps I’ve written

Serverless Podcast Feed Maintainer and Hosting on AWS

I just finished building a serverless system on AWS that hosts a podcast’s media files and rss feed, and provides a web interface for managing the rss feed.

This is a cost-effective way to host a podcast, and a fun way to learn a bunch of AWS technologies.

Overview

Here are the elements of the system:

  • The media files and rss feed file are stored in an S3 bucket that is configured for static site hosting. The bucket also contains the html, css, and javascript for the feed maintainer app.
  • Podcast and episode info is stored in a DynamoDB table.
  • Lambda functions insert episode info into DynamoDB, create presigned URLs for uploading media files, and create the rss feed file whenever episode info is updated.
  • API Gateway allows the javascript to PUT episode info to a Lambda function.
  • CloudFront allows the static S3 site to be served via https, and redirects http requests to https (not pictured)
  • Route53 connects a custom domain name to S3 and CloudFront

Operation

  1. The system admin loads podcast info (title, author, etc) into an “Episode 0” item in the DynamoDB table.
  2. The podcast maintainer submits episode information via the html form.
  3. The podcast-poster Lambda function adds the episode info to the DynamoDB table and returns a presigned URL that allows uploading the media file to S3.
  4. The S3 upload triggers a Lambda function that updates the rss feed.

More Info…

If there’s interest, I’ll outline the steps for setting up the system. If you want to look at the html, javascript, and lambda functions, refer to these github repositories:

Desktop Slideshow widget updated

Version 1.4 of my Desktop Slideshow widget is here. The issue where it won’t load should be fixed. I’ll try to get it posted to the widget gallery as soon as possible, but it usually takes them weeks.

For those who don’t know, “widgets” are free little applications that do all kinds of useful things like display the weather or (like mine) change your desktop background. This widget works with the Yahoo Widget Engine (formerly Konfabulator). Widgets can be cross-platform, but this one is Windows only.

To use it, install the widget engine, then download the widget and double-click on it. It will bring up a little “slide projector” icon. Right-click on the slide projector to set options (what folder to look in for images and how quickly to cycle through them).

Enjoy!