I’ve always thought it would be cool for someone to put a cool site together that listed peoples’ development environments along with all the cool tools they used throughout their development process.
Not having found that, I thought people might find it useful to see what and how I develop web apps. So, without further ado…
What do I build?
I develop web applications using django. Django is an awesome Python framework for building dynamic websites. I’ve worked on all sorts of platforms over the years from LAMP to ASP on IIS, and I’ve even hacked around with CMS’s like Joomla, but nothing comes close to the power I get with django. The fact that you can build a site that is essentially an object oriented program gives you so much power to build whatever you can imagine. Coming from a CompSci background, this is perfect for me.
I should point out here, that I’m a big proponent of Open Standards and therefore try to use open source tools wherever possible and conform to W3C.
What do I use?
My primary machine runs Ubuntu Desktop Edition. My servers are on Slicehost as well as a few monster Dell 2950’s at work and run the Server Edition of Ubuntu on them all. I love Ubuntu because it is so easy to update software using the apt-get utility. I monitor their web traffic with Google Analytics and keep track of stats live with gkrellmd. This is awesome because I can keep up with activity live.When it comes to my development environment, I used to use Kate to edit my code and then an xterm or two to run and debug. Kate is really an awesome editor for all sorts of file types. However, I have just discovered that Eclipse has an amazing development environment for Python and particularly for Django. That’s because it not only has all the cool debugging abilities of a real IDE it has awesome plugins for editing python and html as well as a cool SVN plugin that allows me to sync up with my repository without having to exit my environment. I’m still fresh in this environment and loving it more each day.
So, obviously I use subversion to version my code. It has proven very useful, even in the web industry, to be able to edit my code and go back to look at changes I made. It’s also easy to sync up with bugs and stuff. Which brings me to Trac. I use trac to keep ‘trac’ of my development process. It’s super handy to have a wiki, bug tracking, and version control views all in one place.
I mentioned that I run my own servers. They are just slices on Slicehost and handle everything I need very well. I do not run my own mail server though. That’s a nightmare. I host my mail with Google Apps, using all TEN of their redundant mail servers. They’re nuts, but I’m so glad they give this away for free! I’ve even used a few of their “sites” for quick intranet sites.
So, now for my server configuration: Ubuntu, MySQL, Nginx, Apache, Django, and a little PHP. I set that up really easily following this awesome post on setting up a Django server. Obviously, I only use ssh to get in there.
I’m sure there’s more, but I’m done for today.