Interview with Sean Corfield
I thought it would be fun, and informative to conduct some interviews with web developers on my blog. I'm starting off with someone that most of my blog readers probably already know, and many have probably even had a beer with - Sean Corfield.
If you don't know Sean, he was the Director of IT Architecture at Macromedia. Sean has had a diverse career including eight years involved with the ISO C++ standardization committee.
More recently Sean has been deeply involved in the ColdFusion community as a speaker at conferences, contributor to mailing lists, and more. Sean lead the team that built macromedia.com using ColdFusion and Flash, it is one of the most trafficked web sites in the world.
You can read more about Sean on his website.
Let's get on to the interview
What does your development environment consist of?
First off, let me say that I think it's very important that developers have a full technology stack locally so they can build and test applications independently (i.e., if they have a laptop, they should be able to build and test applications while they are offline).
Accordingly I have multiple J2EE server installs (two JRun installs, one Tomcat install), each running multiple instances of different versions of ColdFusion MX. This allows me to test code against CFMX 6.1, CFMX 6.1.1, CFMX 7.0, CFMX 7.0.1 as well as various hot fixes etc. And, yeah, I have some of those "other" engines installed too. I don't have them all running at the same time - I usually have just one or two instances active.
I also have Apache set up with multiple virtual hosts, one for each web site I work on (most are ColdFusion but one or two are PHP).
MySQL databases provide the back end although I have also run Oracle 9iR2 locally for some sites - at one point I had almost a complete replica of macromedia.com running on my laptop!
For code editing I use Dreamweaver 8 for all visual design and CFEclipse for all back end coding (CFCs). The primary plugins I use with CFEclipse are XML Buddy (for all those yummy framework config files), Subclipse (for SVN) and DBEdit for messing with databases from inside CFEclipse.
Other useful tools that I commonly use for development: CocoaMySQL (database browser / editor), Transmit (the best FTP / SFTP app ever). And the good old command line too with cvs, svn and, yes, vi for quick and dirty file editing.
I run everything locally on a G4 PowerBook - which has been my sole development machine since late 2002 when ColdFusion first ran on OS X.
Name a blog, web site, or book that every developer should read.
Mine of course! :)
In terms of books, my current top recommendation is Refactoring to Patterns by Joshua Kerievsky which has a lot of good advice about recognizing code smells and how to fix them. It's a good, pragmatic book about design patterns.
I think it's important to challenge ourselves and read above our own level so that we can raise our game. We should look to take advantage of other developers' expertise and experience to accelerate our own learning.
Is there one thing that you see developers doing (or not doing) all the time that drives you crazy?
To be honest, most developers are out there trying to get their job done and trying to improve their skills at the same time and that's a good thing. I do get frustrated with developers who insist they can't afford training and conferences. That's a lack of investment in themselves and a false economy. In my opinion, developers can't afford to miss out on training and conferences - the learning and networking opportunities are incredibly valuable.
What do you think about "Web 2.0"?
Like most buzzwords, it's large part hype and small part common sense. Yes, there's an evolution going on but it's not like everyone is just going to make a new release of their web site and we'll suddenly be 2.0. People have been building websites (and applications) with aggregated functionality for a long time, based on screen scraping or simple HTTP queries. As more business moves to the web, there will naturally be more services available - because there is good business sense behind providing services: you add value for your customers and enable other businesses to rely on you. It's an evolution, not a revolution.
Are there any areas you would like to see the coldfusion community get more involved in? For example open source apps, frameworks, etc.
I'd like to see ColdFusion developers get more involved with their local user groups - or even get together and form a user group if there isn't a local one! That would create more of a sense of community and allow developers to help each and learn from each other.
Open source is a tricky area. I've been doing open source development on and off for about fifteen years and, whilst you can create a community around an open source project, it really isn't something that "everyone" can contribute to at the code level - and that seems to be where most people expect to work. Nearly all successful open source projects are driven by a few expert developers with very tightly controlled input to the source code. What open source projects need most, in terms of "warm bodies", are testers (to find and submit bugs) and writers (of documentation). Those are very important contributions and have a lot to do with the quality and success of the project. The expectation around open source should not be that you will submit code - but that is a common misconception, unfortunately.
What do you like to do when your away from your computer?
My wife & I breed and show pedigree cats so we travel all over the country with our "fur kids"... Seen "Best in Show"? Well, that's us and our friends...
Stay tuned for more interviews with web developers. I will be talking to folks you've heard of, and folks you haven't.
Are you an interesting web developer, and would like to be interviewed? Contact Me.
You might also like:
- Interview with Christopher Schmitt author of the CSS Cookbook - December 4, 2006
- Interview with Mark Drew - February 16, 2006
- DOJ taking a closer look at Adobe Macromedia Merger - July 18, 2005
- Open Source at Adobe - June 8, 2005
- Identity Theft - April 19, 2005
- The Day After the Storm - April 19, 2005