About

James Duncan Davidson is a photographer, author, and software developer based in Portland, Oregon. Long a fan of the Renaissance Man approach to life, he has pursued, and excelled in, a variety of endeavors. Throwing himself head-first into whatever he's doing, he relishes tackling new challenges with the full toolkit of what his experience has given him. Duncan is also sick of writing about himself in the third person, so I'm going to break with About page tradition and switch gears to first person.

damon_quote.png

Photography

Since 2005, I have been working as a professional photographer. It all started with an opportunity to photograph conferences for O'Reilly Media. Since then, I've executed work for Apple, Salesforce.com, Pragmatic Studio, and many other clients.

Until 2007, I balanced my photography with my work as a software developer. However, over the course of the last year or so, I've switched the majority of my work efforts to photography. 

Before shooting professionally, I was an avid travel and landscape photographer and I continue to shoot the world as I travel, including a recent 5 week road trip through the American Southwest. One of the things I aims to do in my travel and landscape photography is document at least a small part of the world as it exists right now in the face of monumental changes of technology, climate, and politics.

Software Development

In the mid-90's, after spending eight or so years in school studying architecture, I turned my hobby of playing with Mosaic and the beta versions of Netscape Navigator into a full time job working the web. At first, I worked with HTML and JavaScript, but then quickly started to work with server-side software technologies to make websites do what I wanted them to do. During this period, I was part of the team that brought up the first versions of the Hilton Hotels website in 1995 and 1996. This site was one of the first that allowed you to book a room using a credit card and check your loyalty status completely online.

j2ee_cover_150h.png

In 1997, I went to work at JavaSoft, part of Sun Microsystems. I started out working on the Java Web Server and then later took on the task of formalizing the Java Servlet specification, including writing a reference implementation he named Tomcat, but which was released as the Java Servlet Web Development Kit.

To aid the process of building Java-based software, I wrote a build tool he called Ant. Yes, the story is true. I coded the essential bits of Ant on two international flights between the US and Europe. I also helped create the Java API for XML Processing. In 2000, my work on the Servlet API was incorporated into the J2EE Platform and Component Specifications book.

Before leaving Sun in 2001, I successfully argued for and managed the donation of Tomat and Ant to the Apache Software Foundation in the form of Apache Tomcat and Apache Ant. Although I'm not involved in the development of Tomcat or Ant anymore, I am incredibly proud that these two pieces of software are in active use by Java software developers all around the world.

Shortly after leaving Sun, I ventured out as an independent software development consultant. I have worked on a number of projects building software for Mac OS X as well as numerous web applications, most recently with the Ruby on Rails framework. 

Software Books

learn_cocoacover_150h.png runningpanther_cover_150h.png

Working with O'Reilly Media and Apple, I authored Learning Cocoa with Objective-C in 2002 and Running Mac OS X Panther in 2003. Both books are now showing their age as Apple has shipped two versions of Mac OS X since their publication. 

In particular, Learning Cocoa uses Project Builder in its examples instead of Xcode. However, the basics remain the same and Learning Cocoa provides a solid introduction to the fundamental principles of developing for Cocoa.

In addition to writing Learning Cocoa and Running Mac OS X Panther, I have collaborated with several different authors on multiple books. In 2003, I collaborated with Mike Beam on Cocoa in a Nutshell In 2004, I co-authored Mac OS X Panther Hacks with Rael Dornfest. In 2005, Jason Deraleau revised the content for Running Mac OS X Panther as Running Mac OS X Tiger. And most recently, in 2006, I contributed a chapter on deploying Rails applications to Agile Web Development with Rails, authored by Dave Thomas.

Currently, I don't have plans to write or contribute to any other software books. However, you never know what the future might hold. Never say never and all that.




Recent Entries

Why Auto White Balance Isn't Perfect
Every digital camera made comes with a promise of making perfect pictures with the click of a button. The algorithms used to deliver on this promise, however, are by no means perfect, including the auto white balance algorithm.
Print Store Update
On April 2nd, I was pretty optimistic that I was just a couple of weeks away from launching an online store with the first of my prints for sale. As you know, I asked for a bit of help from all of you to help out. That process turned out to be a fantastic experience and resulted in a lot of feedback.
Ignite SF April 2008
As part of Web 2.0 Expo SF 2008, Brady Forrest and company hosted an Ignite SF at the DNA Lounge last night. Ignite nights are always a good time. What's Ignite? Take 14 or so speakers, give them 5 minutes each to talk, and see what happens. The result is almost universally fun. And, thanks to the format, if somebody's talk is a dud, well, you only have to wait 5 minutes for the next one.