As I mentioned in my last post, after attending the cf.Objective() conference earlier this year, I decided that I needed to completely tear down and rebuild my local development environment. My old setup worked well enough, but there were some gotchas in the setup. So, after talking to some of the presenters and other attendees at the conference, I had a pretty good idea of what I wanted to accomplish and how I wanted things set up.
Before I get into the nitty-gritty technical details of how I now have things set up, let's look at the list of major development tools in my environment. I say major tools because there are other things that I use that make my life easier but that aren't really core parts of the development environment.
Just over a year ago, I made the switch from Windows to the Mac. I blogged about the reasons at the time so I won't go into them all again here. Suffice it to say that I'm really glad that I made the switch.
I use Apache 2.2.x at the moment. It's only the most popular web server in the world, easily supports multiple web sites configurations, and is configured using plain text files.
ColdFusion 8 (as if you really hadn't figured that one out). ColdFusion is installed in the “multi-server” configuration which gives me the ability to create a new “instance” for each individual client. Although there are other ColdFusion engines out there, none of the clients that I've worked for so far have used anything other than Adobe ColdFusion.
This one isn't as standard as the others as it really depends on what the client is using. I have MySQL 5 loaded on my machine and any apps that I build on my own or for clients that are using MySQL, that obviously works. For clients with other database systems, there are a few ways to approach that situation. I'll discuss that more in a later post.
Code Editor / IDE
I made the switch to (CF)Eclipse almost 2 years ago while working on a project for a client outside Washington, DC. There are several reasons why I use Eclipse (including being able to develop Flex and ColdFusion applications in the same editor) and there are some things that I don't like about it, but overall I think it's the best all-around editor out there today. I know this is a very contentious issue at the moment, but this is my opinion of what works best for me at the moment.
Version Control System
I currently use Subversion for my version control needs. I've used CVS in the past, and while it works, I like how Subversion handles several things better than CVS (which was the whole point behind the folks creating Subversion in the first place). I like the way that it integrates with Trac for ticketing and project roadmap functions. Lately there has been some buzz around Git but until I can interact with it from within Eclipse, I'll stick with Subversion.
I know this post hasn't really given any specific information on how I've set these tools up, but I felt that it was important to give an overview of what I'll be reviewing in the next several posts. In the coming entries, I'll go more in-depth into each of these (except for operating system) and talk specifically about how I've set things up and why.