Readable Feeds

(Update – Readable Feeds has become a victim of it’s success and the new App Engine quota limitations and is no longer running – but there are many alternatives)

Another weekend, another Google App Engine project.  This time it’s called Readable Feeds and thankfully, I actually finished it in a weekend unlike Cloudsafe.  Readable Feeds is an extension of the Arc 90 Readability Experiment and Nirmal Patel’s Hacker News Readability script.  It is actually a very simple application, you give it a feed and it generates a new feed that hopefully has more content and less clutter than the original feed.

For example, with the Hacker News feed which consists primarily of just links to interesting web pages, the feed is transformed to contain the content of the pages linked to so that you don’t have to leave your feed reader to access the full content (Nirmal’s page has some good screenshots showing this).  It can also repair those crippled feeds that only show excerpts and replace the excerpts with the full content.  I said hopefully before because this process doesn’t always work and in fact fails spectacularly on some feeds like those from the New York Times which link to registration protected pages which Readable Feeds can’t bypass.

I’m also happy to report this is my first project (but hopefully not last) to be featured on Hacker News.  Some of you might also notice a striking visual similarity to Pubfeed which is of course purely coincidence.

Cloudsafe Online Backups

(Update – Cloudsafe is no longer running and I’ve sold the App Engine sub-domain to the fine folks at

I just put the finishing touches on my first substantial Google App Engine project called Cloudsafe. Cloudsafe is a safe and easy way to backup the data you’ve accumulated with all the web applications you use. By giving it your account details for various web applications like Delicious, Google Reader, and LibraryThing, Cloudsafe will create a single downloadable archive of all the data you have on those sites, whether it’s your bookmarks, blog feeds or your book collection.

I started working on it a week ago as a weekend project but it evolved into a week-long battle to get App Engine to conform to my needs. Google has built an impressive service with App Engine but it takes some getting used to because it lacks the standard cron interface and they’ve also removed some of the default python libraries and there are lots of rules about space and time quotas you have to adhere to. But even with those hurdles I found it to be a perfect fit for Cloudsafe because in the end I get a very responsive application with free SSL and built-in pycrypto support which are integral features in a security concious application like Cloudsafe.

Lest I be continually berated by my peers and security afficionados, I must admit that Cloudsafe is far from optimal as a secure backup solution. Even though I’ve built the site with SSL, AES encryption, XSS, SQL injection, cookie hijacking, and other security concerns in mind, the fact remains that it is a web application being developed by someone you likely don’t know or trust (me) and it is running on someone elses computers (Google’s).

I’ve tried to add features to make the site more palatable for wary users such as the default behavior which runs one backup and then instantly forgets user account details but if you’re like me (ironically) you will never trusty a 3rd party site with your passwords. Though I do trust it because I wrote it and because I’m not using it to backup anything I consider confidential. My online data (bookmarks, book collection, etc) is already public (you can find some of it showing up in my lifestream on the right side of this page) but the sites storing the data require account verification to access the backup functionality.

If people find Cloudsafe useful, I’d love to add backup support for additional sites that people use and build a desktop version that the more security concious users could use. So give Cloudsafe a try and drop me some feedback here or on the Cloudsafe Uservoice page on how I could improve it.