Chris Baus

1stthing: An IronPython on Mono on S3 application

This weekend I kicked off a new side project called 1stthing. It is a simple todo list application which I am building primarily for myself. Interestingly, when I discuss 1stthing, everybody has an idea about what a todo list application should and shouldn't do. Folks care a lot about their todo lists. 1stthing is based on the theory that the 1stthing on your todo list is most the important. The UI will be built around around the 1stthing.

This project has a couple goals. I really do want to build something useful. Secondly it is a pilot test for some new technology. My development platform is IronPython on Mono. I'm using OpenID for authentication. And I'm hosting it on Amazon's EC2. And maybe the oddest thing I want to do is use Amazon's S3 for my entire persistence layer. That's right no SQL databases.

Both S3 and EC2 solve many problems we ran into with FeedFlow. When you are hacking away with virtually no resources, still unsure where the application is headed, the last thing you want to do is dump a bunch of time and money in to colo infrastructure.

I've spent some time racking servers in the data center which I think is a rite of passage for working in this biz. The data center is like a casino. There is no concept of time. 12 hours passes like 10 minutes, until you walk outside and realize, holy shit, the sun's coming up. I've done it, and now I'll gladly have someone do it for me. Patching the firmware in switches at 2:00AM ain't how I pay the bills (oh wait, never mind about that).

But with S3 and EC2 there isn't a lot of there, there. You have to build it yourself. So that's the plan. I'm collecting Open Source Python and .NET code, adding some of my own, splicing it together, and then re-releasing it.

But every great plan starts with the 1stthing, so I created a new repo with anonymous access on CVSDude. I put some code for handling WSGI in IronPython up there last night. It builds on Seo Sanghyeon's initial implementation, and I'm hoping to merge back with fepy.

The repo is here: