Contributors

Jon bentley is a computer scientist at avaya labs research. His research interests include programming techniques, algorithm design, and the design of software tools and interfaces. He has written books on programming, and articles on a variety of topics, ranging from the theory of algorithms to software engineering. He received a B.S. from Stanford in 1974, and an M.S. and Ph.D. from the University of North Carolina in 1976, then taught Computer Science at Carnegie Mellon University for six years. He joined Bell Labs Research in 1982, and retired in 2001 to join Avaya. He has been a visiting faculty member at West Point and Princeton, and he has been a member of teams that have shipped software tools, telephone switches, telephones, and web services.

Tim Bray managed the Oxford English Dictionary project at the University of Waterloo in Ontario, Canada in 1987–1989, co-founded Open Text Corporation in 1989, launched one of the first public web search engines in 1995, co-invented XML 1.0 and co-edited "Namespaces in XML" between 1996 and 1999, founded Antarctica Systems in 1999, and served as a Tim Berners-Lee appointee on the W3C Technical Architecture Group in 2002–2004. Currently, he serves as Director of Web Technologies at Sun Microsystems, publishes a popular weblog, and co-chairs the IETF AtomPub Working Group.

Bryan Cantrill is a Distinguished Engineer at Sun Microsystems, where he has spent most of his career working on the Solaris kernel. Most recently he, along with colleagues Mike Shapiro and Adam Leventhal, designed and implemented DTrace, a facility for dynamic instrumentation of production systems that won the Wall Street Journal's top award for innovation in 2006.

Douglas Crockford is a product of our public school system. A registered voter, he owns his own car. He has developed office automation systems. He did research in games and music at Atari. He was Director of Technology at Lucasfilm Ltd. He was Director of New Media at Paramount. He was the founder and CEO of Electric Communities. He was founder and CTO of State Software, where he discovered JSON. He is now an architect at Yahoo! Inc.

Rogerio Atem de Carvalho is a teacher and researcher at the Federal Center for Technological Education of Campos (CEFET Campos), Brazil. He was awarded with the 2006 IFIP Distinguished Academic Leadership Award in Vienna, Austria, for his research on Free/ Open Source Enterprise Resources Planning (ERP). His research and consulting interests also include Decision Support Systems and Software Engineering.

Jeff Dean joined Google in 1999 and is currently a Google Fellow in Google's Systems Infrastructure Group. While at Google, he has worked on Google's crawling, indexing, query serving, and advertising systems, implemented several search quality improvements, and built various pieces of Google's distributed computing infrastructure. Prior to joining Google, he was at DEC/Compaq's Western Research Laboratory, where he worked on profiling tools, microprocessor architecture, and information retrieval. He received a Ph.D. from the University of Washington in 1996, working with Craig Chambers on compiler optimization techniques for object-oriented languages. Prior to graduate school, he worked at the World Health Organization's Global Programme on AIDS.

Jack Dongarra received a B.S. in Mathematics from Chicago State University in 1972, and an M.S. in Computer Science from the Illinois Institute of Technology in 1973. He received his Ph.D. in Applied Mathematics from the University of New Mexico in 1980. He worked at the Argonne National Laboratory until 1989, becoming a senior scientist. He now holds an appointment as University Distinguished Professor of Computer Science in the Computer Science Department at the University of Tennessee. He has the position of a Distinguished Research Staff member in the Computer Science and Mathematics Division at Oak Ridge National Laboratory (ORNL), Turing Fellow in the Computer Science and Mathematics Schools at the University of Manchester, and an Adjunct Professor in the Computer Science Department at Rice University. He specializes in numerical algorithms in linear algebra, parallel computing, the use of advanced-computer architectures, programming methodology, and tools for parallel computers. His research includes the development, testing, and documentation of high-quality mathematical software. He has contributed to the design and implementation of the following open source software packages and systems: EISPACK, LINPACK, the BLAS, LAPACK, ScaLAPACK, Netlib, PVM, MPI, NetSolve, Top500, ATLAS, and PAPI. He has published approximately 200 articles, papers, reports, and technical memoranda, and he is co-author of several books. He was awarded the IEEE Sid Fernbach Award in 2004 for his contributions in the application of high-performance computers using innovative approaches. He is a Fellow of the AAAS, ACM, and the IEEE, and a member of the National Academy of Engineering.

R. Kent Dybvig is a professor of Computer Science at Indiana University. He received his Ph.D. in Computer Science from the University of North Carolina in 1987, two years after joining the faculty at Indiana. His research in the design and implementation of programming languages has led to significant contributions involving control operators, syntactic abstraction, program analysis, compiler optimization, register allocation, multithreading, and automatic storage management. In 1984, he created Chez Scheme and remains its principal developer. Known for fast compile times and reliability as well as for its ability to run even complex programs with large memory footprints efficiently, Chez Scheme has been used to build commercial systems for enterprise integration, web serving, virtual reality, robotic drug testing, circuit layout, and more. It is also used for computer science education at all levels, as well as research in a variety of areas. Dybvig is author of The Scheme Programming Language, Third Edition (MIT Press), and is an editor of the forthcoming Revised6 Report on Scheme.

Michael Feathers is a consultant with Object Mentor. He has been active in the Agile community for the past seven years, balancing his time between working with, training, and coaching various teams around the world. Prior to joining Object Mentor, Michael designed a proprietary programming language and wrote a compiler for it. He also designed a large multiplatform class library and a framework for instrumentation control. Publicly, Michael developed CppUnit, the initial port of JUnit to C++; and FitCpp, a port of FIT for C++. In 2005, Michael wrote the book Working Effectively with Legacy Code (Prentice Hall). When he isn't engaged with a team, he spends most of his time investigating ways of altering design over time in large code bases.

Karl Fogel, in 1995, together with Jim Blandy, co-founded Cyclic Software, the first company offering commercial CVS support. In 1997, Karl added support for CVS anonymous read-only repository access, thus allowing easy access to development code in open source projects. In 1999, he wrote Open Source Development with CVS (Coriolis). From 2000–2006, he worked for CollabNet, Inc., managing the creation and development of Subversion, an open source version control system written from scratch by CollabNet and a team of open source volunteers. In 2005, he wrote Producing Open Source Software: How to Run a Successful Free Software Project (O'Reilly; also online at http://producingoss.com). After a brief stint as an Open Source Specialist at Google in 2006, he left to become full-time editor of Question-Copyright.org. He continues to participate in various open source projects, including Sub-version and GNU Emacs.

Sanjay Ghemawat is a Google Fellow who works in the Systems Infrastructure Group at Google. He has designed and implemented distributed storage systems, text-indexing systems, performance tools, a data representation language, an RPC system, a malloc implementation, and many other libraries. Prior to joining Google, he was a member of the research staff at DEC Systems Research Center, where he worked on a profiling system and an optimizing compiler for Java, and implemented a Java virtual machine. He received a Ph.D. from MIT in 1995 concerning the implementation of object-oriented databases.

Ashish Gulhati is Chief Developer of Neomailbox, an Internet privacy service, and the developer of Cryptonite, an OpenPGP-compatible secure webmail system. A commercial software developer for more than 15 years, and one of India's first digital rights activists and F/OSS hackers, he has written numerous open source Perl modules, which are available from CPAN. His 1993–1994 articles in PC Quest and DataQuest magazines were the first in the mainstream Indian computing press to introduce readers to Free Software, GNU/ Linux, the Web, and the Internet, many years before the availability of commercial Internet access in India, and formed an important part of the PC Quest Linux Initiative, which resulted in a million Linux CDs being distributed in India since 1995. He is rapidly evolving into a cyborg thanks to an eclectic collection of wearable computers.

Elliotte Rusty Harold is originally from New Orleans, to which he returns periodically in search of a decent bowl of gumbo. However, he currently resides in the Prospect Heights neighborhood of Brooklyn with his wife Beth, dog Shayna, and cats Charm (named after the quark) and Marjorie (named after his mother-in-law). He's an adjunct professor of computer science at Polytechnic University, where he teaches Java, XML, and object-oriented programming. His Cafe au Lait web site (http://www.cafeaulait.org) has become one of the most popular independent Java sites on the Internet; his spin-off site, Cafe con Leche (http://www.cafeconleche.org), has become one of the most popular XML sites. His books include Java I/O, Java Network Programming, XML in a Nutshell (all O'Reilly), and XML Bible (Wiley). He's currently working on the XOM Library for processing XML with Java, the Jaxen XPath engine, and the Amateur media player.

Brian Hayes writes the Computing Science column in American Scientist magazine and also has a weblog at http://bit-player.org. In the past, he wrote similar columns on mathematics and computer science for Scientific American, Computer Language, and The Sciences. His book Infrastructure: A Field Guide to the Industrial Landscape (Norton) was published in 2005.

Simon Peyton Jones, M.A., MBCS, C.Eng., graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research in 1998. His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused on the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.

Jim Kent is a research scientist at the Genome Bioinformatics Group at the University of California Santa Cruz. Jim has been programming professionally since 1983. During the first half of his career, he focused on paint and animation software, authoring among other works the award-winning programs Aegis Animator, Cyber Paint, and Autodesk Animator. In 1996, tired of keeping up with the Windows API treadmill, he decided to pursue his interest in biology, earning a Ph.D. in 2002. As a graduate student, he wrote GigAssembler—a program that produced the first assembly of the human genome—one day ahead of Celera's first genome assembly, helping assure that the bulk of the genome would remain free of patents and other legal entanglements. Jim is an author of 40 scientific papers. His work today is primarily in creating programs, databases, and web sites that help scientists analyze and understand the genome.

Brian Kernighan received his B.Sc. from the University of Toronto in 1964, and a Ph.D. in electrical engineering from Princeton in 1969. He was in the Computing Science Research center at Bell Labs until 2000, and is now in the Computer Science Department at Princeton. He is the author of eight books and a number of technical papers, and holds four patents. His research areas include programming languages, tools, and interfaces that make computers easier to use, often for nonspecialist users. He is also interested in technology education for nontechnical audiences.

Adam Kolawa is the co-founder and CEO of Parasoft, a leading provider of Automated Error Prevention (AEP) software solutions. Kolawa's years of experience with various software development processes has resulted in his unique insight into the high-tech industry and the uncanny ability to successfully identify technology trends. As a result, he has orchestrated the development of several successful commercial software products to meet growing industry needs to improve software quality—often before the trends have been widely accepted. Kolawa, co-author of Bulletproofing Web Applications (Hungry Minds), has contributed to and written more than 100 commentary pieces and technical articles for publications such as The Wall Street Journal, CIO, Computerworld, Dr. Dobb's Journal, and IEEE Computer; he has also authored numerous scientific papers on physics and parallel processing. His recent media engagements include CNN, CNBC, BBC, and NPR. Kolawa holds a Ph.D. in theoretical physics from the California Institute of Technology, and has been granted 10 patents for his recent inventions. In 2001, Kolawa was awarded the Los Angeles Ernst & Young's Entrepreneur of the Year Award in the software category.

Greg Kroah-Hartman is the current Linux kernel maintainer for more driver subsystems than he wants to admit, along with the driver core, sysfs, kobject, kref, and debugfs code. He also helped start the linux-hotplug and udev projects, and is one half of the kernel stable maintainer team. He works for SuSE Labs/Novell and does various kernel-related things for them. He is the author of the book Linux Kernel in a Nutshell (O'Reilly) and the co-author of Linux Device Drivers, Third Edition (O'Reilly).

Andrew Kuchling has 11 years of experience as a software developer and is a longtime member of the Python development community. Some of his Python-related work includes writing and maintaining several standard library modules, writing a series of "What's new in Python 2.x" articles and other documentation, planning the 2006 and 2007 PyCon conferences, and acting as a director of the Python Software Foundation. Andrew graduated with a B.Sc. in Computer Science from McGill University in 1995. His web page is at http://www.amk.ca.

Piotr Luszczek received his M.Sc. degree from the University of Mining and Metallurgy in Krakow, Poland for work on parallel out-of-core libraries. He earned his doctorate degree for the innovative use of dense matrix computational kernels in sparse direct and iterative numerical linear algebra algorithms. He applied this experience to develop fault-tolerant libraries that used out-of-core techniques. Currently, he is a Research Professor at the University of Tennessee, Knoxville. His work involves standardization of benchmarking of large supercomputer installations. He is an author of self-adapting software libraries that automatically choose the best algorithm to efficiently utilize available hardware and can optimally process the input data. He is also involved in high-performance programming language design and implementation.

Ronald Mak was a senior scientist at the Research Institute for Advanced Computer Science when he was on contract to NASA Ames as the architect and lead developer of the middleware for the Collaborative Information Portal. After the rovers landed on Mars, he provided mission support at JPL and at Ames. He then received an academic appointment with the University of California Santa Cruz, and he was again on contract to NASA, this time to design and develop enterprise software to help return astronauts to the moon. Ron is co-founder and CTO of Willard & Lowe Systems, Inc. (http://www.willardlowe.com), a consulting company that specializes in enterprise information management systems. He has written several books on computer software, and he has degrees in the mathematical sciences and computer science from Stanford University.

Yukihiro "Matz" Matsumoto is a programmer, a Japanese open source evangelist, and the creator of the recently popular Ruby language. He started development of Ruby in 1993, so it's actually as old as Java. Now he works for Network Applied Communication Laboratory, Inc. (NaCl, also known as netlab.jp), which has sponsored Ruby development since 1997. Because his real name is too long to remember and is difficult for non-Japanese speakers to pronounce right, on the Net he uses the nickname Matz.

Arun Mehta is an electrical engineer and computer scientist who has studied and taught in India, the U.S., and Germany. He is one of India's early telecom and cyber-activists, trying to obtain consumer-friendly policies that will help the spread of modern communications in rural areas and among the poor. His current passions include village radio and technology for the disabled. He is a professor and chairman of the Computer Engineering Department of JMIT, Radaur, Haryana, India. His web sites include http://india-gii.org, http://radiophony.com, and http://holisticit.com.

Rafael Manhaes Monnerat is an IT Analyst at CEFET CAMPOS, and an offshore consultant for Nexedi SARL. His interests include Free/Open Source Systems, ERP, and cool programming languages.

Travis E. Oliphant received a B.S. in Electrical and Computer Engineering and Mathematics from Brigham Young University in 1995, and an M.S. in Electrical and Computer Engineering from the same institution in 1996. In 2001, he received a Ph.D. in Biomedical Engineering from the Mayo Graduate School in Rochester, Minnesota. He is a principal author for SciPy and NumPy, which are scientific computing libraries for the Python language. His research interests include micro-scale impedance imaging, MRI reconstruction in inhomogeneous fields, and general biomedical inverse problems. He is currently an Assistant Professor in the Electrical and Computer Engineering Department at Brigham Young University.

Andy Oram is an editor at O'Reilly Media. An employee of the company since 1992, Andy currently specializes in free software and open source technologies. His work for O'Reilly includes the first books ever released by a U.S. publisher on Linux, and the 2001 title Peer-to-Peer. His modest programming and system administration skills are mostly self-taught. Andy is also a member of Computer Professionals for Social Responsibility and writes often for the O'Reilly Network (http://oreillynet.com) and other publications on policy issues related to the Internet, and on trends affecting technical innovation and its effects on society. His web site is http://www.praxagora.com/andyo.

William R. Otte is a Ph.D. student in the Department of Electrical Engineering and Computer Science (EECS) at Vanderbilt University in Tennessee. His research focuses on middleware for distributed real-time and embedded (DRE) systems. He is currently involved in several aspects of developing a Deployment and Configuration Engine (DAnCE) for CORBA Components. This work involves investigation of techniques for runtime planning, and adaptation for component-based applications, as well as specification and enforcement of application quality-of-service and fault-tolerance requirements. Before joining as a graduate student, William worked for a year as a staff engineer at the Institute for Software Integrated Systems after graduating in 2005 with a B.S. in Computer Science from Vanderbilt University.

Andrew Patzer is the Director of the Bioinformatics Program at the Medical College of Wisconsin. Andrew has been a software developer for the past 15 years and has written several articles and books, including Professional Java Server Programming (Peer Information, Inc.) and JSP Examples and Best Practices (Apress). Andrew's current interest lies in the field of Bioinformatics, using dynamic languages such as Groovy to mine the enormous amounts of available biological data and help perform analysis for scientific researchers.

Charles Petzold is a freelance writer who specializes in Windows application programming. He is the author of Programming Windows (Microsoft Press), which in its five editions between 1988 and 1999 taught a generation of programmers about the Windows API. His most recent book is Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation (Microsoft Press), and he is also author of a unique exploration into digital technologies entitled Code: The Hidden Language of Computer Hardware and Software (Microsoft Press). His web site is http://www.charlespetzold.com.

T. V. Raman specializes in web technologies and auditory user interfaces. In the early 1990s, he introduced the notion of audio formatting in his Ph.D. thesis entitled AsTeR: Audio System For Technical Readings, concerning a system that produced high-quality aural renderings of technical documents. Emacspeak is the result of applying these ideas to the broader domain of computer user interfaces. Raman is now a Research Scientist at Google, where he focuses on web applications.

Alberto Savoia is co-founder and CTO of Agitar Software. Before Agitar, he was Senior Director of Engineering at Google; prior to that he was the Director of Software Research at Sun Microsystems Laboratories. Alberto's passion and main body of work and research is in the area of software development technology—in particular, tools and technology to help programmers test and verify their own code during the design and development phase.

Douglas C. Schmidt is a Full Professor in the Electrical Engineering and Computer Science (EECS) Department, Associate Chair of the Computer Science and Engineering program, and a Senior Research Scientist at the Institute for Software Integrated Systems (ISIS) at Vanderbilt University in Tennessee. He is an expert on distributed computing patterns and middleware frameworks and has published more than 350 technical papers and 9 books that cover a range of topics including high-performance communication software systems, parallel processing for high-speed networking protocols, real-time distributed object computing, object-oriented patterns for concurrent and distributed systems, and model-driven development tools. In addition to his academic research, Dr. Schmidt is CTO for PrismTechnologies, and he has over 15 years of experience leading the development of widely used, open source middleware platforms that contain a rich set of components and domain-specific languages that implement key patterns for high-performance distributed systems. Dr. Schmidt received his Ph.D. in Computer Science from the University of California Irvine in 1994.

Christopher Seiwald is the author of Perforce (a software configuration management system), Jam (a build tool), and "The Seven Pillars of Pretty Code" (a paper from which Chapter 32, Code in Motion, draws ideas). Prior to founding Perforce, he managed the network development group at Ingres Corporation, where he toiled for years to make asynchronous networking code look palatable. He is currently the CEO of Perforce Software, and still has his hand in coding.

Diomidis Spinellis is an Associate Professor at the Department of Management Science and Technology at the Athens University of Economics and Business, Greece. His research interests include software engineering tools, programming languages, and computer security. He holds an M.Eng. in Software Engineering and a Ph.D. in Computer Science, both from Imperial College London. He has published more than 100 technical papers in the areas of software engineering, information security, and ubiquitous computing. He has also written the two Open Source Perspective books: Code Reading (Software Development Productivity Award 2004), and Code Quality (both Addison-Wesley). He is a member of the IEEE Software editorial board, authoring the regular "Tools of the Trade" column. Diomidis is a FreeBSD committer and the author of a number of open source software packages, libraries, and tools.

Lincoln Stein is an M.D./Ph.D. who works on biological data integration and visualization. After his training at Harvard Medical School, he worked at the Whitehead Institute/ MIT Center for Genome Research, where he developed the databases used for the mouse and human genome maps. At Cold Spring Harbor he works on a variety of genome-scale databases including WormBase, the database of the C. elegans genome; Gramene, a comparative genome-mapping database for rice and other monocots; the International Hap-Map Project Database; and a human biological pathways database called Reactome. Lincoln is also author of the books How to Set Up and Maintain a Web Site (Addison-Wesley), Network Programming in Perl (Addison-Wesley), Official Guide to Programming with CGI.pm (Wiley), and Writing Apache Modules with Perl and C (O'Reilly).

Nevin Thompson translated Yukihiro Matsumoto's Chapter 29, Treating Code As an Essay, from the Japanese. His clients include Japan's largest television network, as well as Technorati Japan and Creative Commons.

Henry S. Warren, Jr. has had a 45-year career with IBM, spanning from the IBM 704 to the PowerPC. He has worked on various military command and control systems, and on the SETL project under Jack Schwartz at New York University. Since 1973, he has been with IBM's Research Division, focusing on compilers and computer architectures. Hank currently works on the Blue Gene petaflop computer project. He received his Ph.D. in computer science from the Courant Institute at New York University. He is the author of Hacker's Delight (Addison-Wesley).

Laura Wingerd formed her early opinions of software configuration management during a decade of wrangling builds and source code for the Sybase and Ingres database products. She joined Perforce Software in its first year and has since acquired quite a bit of SCM expertise from the very Perforce customers she purports to advise. She is the author of Practical Perforce (O'Reilly) and a number of SCM-related whitepapers; The Flow of Change, a Google Tech Talk, marks her video debut. Laura is currently Vice President of Product Technology at Perforce Software, dividing her time between promoting sound SCM practices and investigating new and better ways to put Perforce to use.

Greg Wilson holds a Ph.D. in Computer Science from the University of Edinburgh and has worked on high-performance scientific computing, data visualization, and computer security. He is now an adjunct professor in Computer Science at the University of Toronto, and a contributing editor with Dr. Dobb's Journal.

Andreas Zeller graduated from TU Darmstadt in 1991 and received a Ph.D. in Computer Science in 1997 from TU Braunschweig in Germany. Since 2001, he has been a Computer Science professor at Saarland University in Germany. Zeller researches large programs and their history, and he has developed a number of methods to determine the causes of program failures in open source programs, as well as in industrial contexts at IBM, Microsoft, SAP, and others. His book Why Programs Fail: A Guide to Systematic Debugging (Morgan Kaufmann) received the Software Development Magazine productivity award in 2006.