(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.
(Update – Cloudsafe is no longer running and I’ve sold the App Engine sub-domain to the fine folks at CloudSafe.com)
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.
In the last two days I’ve thrown together a nifty little Comic Gopher Google gadget that you can put on your Google homepage or your own webpage. I’m hoping it will serve as a marketing tool for Comic Gopher but I wouldn’t be surprised if it becomes much more popular than Comic Gopher because its free and easy to use. It doesn’t have all the features or comics that Comic Gopher has but it actually supports a number of comics that Comic Gopher doesn’t because it works by grabbing comic RSS feeds rather than scraping pages. Anyways, feel free to add it to your Google homepage by clicking the below button and drop me some feedback.
I went west this summer for an amazing internship at Google. I worked on the Google Base development team as a software engineering intern. I did some really interesting work with my host Deepak Lachwani and some other really cool Googlers on a generic image quality classification system for internal use. That is about all I can say about my professional activities there given their ‘loose lips sink ships’ policy of external communication. Overall, it was a really challenging and rewarding environment though, especially since I went in thinking I was working in Java and then I had to learn C++ during my first few weeks.
But being there in the middle of Silicon Valley on Google’s main campus, it really felt like you were at the center of the technological wonderland. In every direction, you see buildings with the logos of the technology giants and at their feet they are surrounded by dozens of startups, familiar and unfamiliar. There is a noticeable energy and excitement exuding from the people working there. At Google, the concentration of intelligent, capable, and driven people was amazing. And at the rate they are hiring, you can and sometimes do meet a few new and interesting people every day at one of the many amazing cafÃ©s. I met a lot of other interesting people from all over the world, interns and full-timers and non-Googlers, whom I hope to keep up with.
Continue reading “Summer at the Googleplex”
Every since I got a laptop I have felt the need for some synchronization tool to manage all my files and settings between my laptop and desktop. Though I have yet to find a good tool for synchronizing my files I did manage to find a near perfect bookmark synchronization tool. Rahul Jonna’s Firefox Google Bookmarks Menu extension is the tool that met almost all my needs. As an extension it is cross-platform and it is built into the browser. It works in a similar way to the default browser bookmarking system but it is always synchronized with a stable back-end server, Google Bookmarks, which provides a web interface for accessing the bookmarks in case you do not have the extension installed.
My only qualm with the extension was that it did not work exactly like the normal Firefox bookmarks whose functions I have come to depend on. So I decided to try my hand at extension writing and modify Jonna’s work to more closely imitate Firefox bookmarks. I ended up implementing additional keyboard shortcuts, Bookmark All Tabs, Open in Tabs and I fixed a bug or two I found with some of the existing functionality. The extension as I changed it works in exactly the same way as the Firefox bookmarks but with different shortcuts, slower execution when bookmarking many tabs and it has a separate menu labeled GBookmarks on the menubar. In using it I have found the separate menu to be useful as I still use the Firefox bookmarks for making temporary bookmarks I don’t want to synchronize.
||Firefox 1.5 – 2.0 ALL
For more details on the original extension by Rahul Jonna see the official Firefox Google Bookmarks Menu page on the Firefox Add-ons site.
My extension no longer works since the Google bookmarking interface has changed and I no longer use Google bookmarks. Please use Rahul Jonna’s updated extension at the link above.
But wait, now comes the funny part, about a week after I finished this little mod, Google, who hosts the back-end for the mod, released their own very comprehensive solution to browser synchronization as a whole called Google Browser Sync. Not only does it synchronize your Firefox bookmarks menu but also your history, cookies and passwords plus it can restore your browsing sessions effectively replacing the SessionSaver extension. Talk about being outdone… but personally I still use my modification as I don’t feel the need to synchronize my history or cookies and as far as I can tell there is no web interface for accessing the bookmarks Google Browser Sync stores so there is no way to access your bookmarks if you don’t have the extension installed.