A minimal homepage designed for contact purposes. I'm a consultant working with software tools such as version control (CVS, Subversion), build systems (make, SCons) and bug trackers (Bugzilla, JIRA).
Most of my clients are smaller startups in Silicon Valley. I'm also the author of O'Reilly's "Practical Development Environments".
NEW! Using Python and SOAP to create a CLI for JIRA, Python Magazine, February 2008
Practical Development Environments
The O'Reilly book reached bookshops in early October 2005. There is a page of links to reviews, and a page of errata. It's in Safari, and it's even been added to Google Books.
The press release is titled A Guide for Toolsmiths - The Unsung Heroes of Software Development. My current favorite quote from it is:
"building an effective development environment is not only not sexy; it's not easy either."
So toolsmiths are not only unsung heroes, but also not sexy! Here's a more technical description, taken from the O'Reilly website for the book:
"This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project.
Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further.
Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often. Whether as a full-time position or just because they are helpful, all projects have toolsmiths: making choices about tools, installing them, and then maintaining the tools that everyone else depends upon. This book is especially for everyone who ends up being a toolsmith for his or her group. "
JDiff (www.jdiff.org) is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared. This is very useful for describing exactly what has changed between two releases of a product. Only the API (Application Programming Interface) of each version is compared. It does not compare what the source code does when executed.
Tiers (tiers1.2.tgz) is a random network topology generator, for creating networks which resemble real-life computer networks. Thanks to DongWoo Lee for adding the automake support. Note: Tiers is no longer supported, but feel free to use the C++ code for ideas.
A photograph from just after my US citizenship ceremony in 2002.