I’ve been spending this week getting my development environment setup. I’ve always hacked around on stuff at home but now that I’m doing some independent development, it’s time to get serious about it. After spending a few days trying out various Linux distributions and some different software packages, I think I have my plan.
Server OS
I love OS X. I’m probably a bit of a zealot. But OS X is not always the best tool for the job. Linux and FreeBSD often are better on the server especially if you have x86 hardware in the mix. Ideally, I would run an Xserve with OS X Server to manage the domain and authentication. I’d use Linux or FreeBSD for the rest.
In evaluating the distributions, I looked at Fedora Core 5, Debian 3.1, Ubuntu 5.10, and FreeBSD 6.0. I’ve used older versions of all of these previously. For a solo/small developer, efficiency is the primary goal. Performance and scalability are secondary. All of these distributions can easily do the job. It came down to which one “felt” right.
In the end, I picked Ubuntu 5.10 server. I could create a working server install with Apache in about 30 minutes. The other platforms took much more time to get up-to-date and setup. Fedora was hard to get setup in PPC. FreeBSD only has experimental PPC support. So both of those are out. Between Debian and Ubuntu, it is close to a toss up. I liked having a slightly more up-to-date install from Ubuntu. In addition, the Ubuntu community is very active and helpful. I think people unfairly think of Ubuntu as a newbie distro. I think it appeals to veterans just as much. I would use Gentoo if I wanted infinite tweakability. To get something up and running fast, Ubuntu fits the bill. With the 6.06 release, it makes even more sense to consider it as a small business server.
Repository
This decision was easy. Subversion is clearly the best choice. CVS would work but SVN is CVS++. Perforce is too limited and costs too much. I’ll be spending just as much time coding in coffee shops and libraries as at home. Subversion has the best offline SCM behavior by far. That makes it the hands down winner.
Issue Tracking
At my last job, we went from a home grown Win32 bug tracking app to Bugzilla. Bugzilla was better but it still left much to be desired. It is extremely hard to use and a pain to setup. I looked at two other solutions - Eventum and Trac. Eventum is MySQL’s bug tracker. It is better than Bugzilla but far too heavy for a small/solo developer. Trac was something I had looked at in the past. It makes the most sense for what I’m doing. Easy to setup, integrates very well with subversion, and is a great place for me to collect all my project information.
Wiki
Trac includes a simple wiki. Although I don’t necessarily need this, it will be good when/if I add other personnel to the project. Plus it fits the way I’ve been working professionally. No need to throw out specs just because I’m doing my own project. I’ll do less work on them but use it as a way of working out ideas.
Configuration
In the end, I setup a PowerMac G5 2.0GHz running Ubuntu 5.10 server to be my developer server. It is running Apache 2.0.54 with Subversion 1.2.0 and Trac 0.9. I would like to have a more up-to-date subversion + trac but I’ll wait for Ubuntu 6.06 to be finished. I put everything under a self-signed SSL cert and forwarded 443 to the server. I can now get to my developer server securely anywhere I have internet connectivity. Throw in SSH connections and you can do almost anything.
Next up - getting down to cocoa dev. I’ll be going through some of the mountains of cocoa docs I’ve accumulated and pulling out the frameworks to build upon. There are some great new tutorials on Apple’s developer site. This should be fun.
Post a Comment