Latest HTML edition of Big Ball of Mud
Seventeen Secrets of the Great Legacy Makeover Masters from QCon New York 2012
The Laputan Press: First in meme arbitrageTM SM since 1997
Brian's research interests include object-oriented programming, design, reuse, languages, frameworks, software architecture, patterns, reflection, metalevel architecture, and software evolution, for starters.
I've managed to come up with electronic copies of all my publications and workshop position papers (and several talks as well) going back to 1985. These can be accessed via the links below. These are organized into the following categories. Some probably belong in more than one category. Direct hypertext links are given for papers for which HTML versions exist (such as Designing Reusable Classes). Links to versions in other formats are given after each paper's pseudo-bibliographic entry.
PUBLISHED OR WORKSHOPPED PATTERNS
DRAFT PATTERNS
[Foote & Opdyke 1994] Brian Foote and William F. Opdyke Lifecycle and Refactoring Patterns that Support Evolution and Reuse First Conference on Patterns Languages of Programs (PLoP '94) Monticello, Illinois, August 1994 Pattern Languages of Program Design edited by James O. Coplien and Douglas C. Schmidt Addison-Wesley, 1995[HTML] [PDF] [PostScript]This volume is part of the Addison-Wesley Software Patterns Series.
Patterns: PROTOTYPE PHASE || EXPANSIONARY PHASE || CONSOLIDATION PHASE || EVOLVE AGGREGATIONS || CREATE ABSTRACT SUPERCLASS
[Foote & Yoder 1996] Brian Foote and Joseph W. Yoder Evolution, Architecture, and Metamorphosis Second Conference on Patterns Languages of Programs (PLoP '95) Monticello, Illinois, September 1995 Pattern Languages of Program Design 2 edited by John M. Vlissides, James O. Coplien, and Norman L. Kerth Addison-Wesley, 1996[HTML] [PDF] [Word] [RTF] [PostScript]This volume is part of the Addison-Wesley Software Patterns Series.
Patterns: SOFTWARE TECTONICS || FLEXIBLE FOUNDATIONS || METAMORPHOSIS
[Foote & Yoder 1998] Brian Foote and Joseph W. Yoder The Selfish Class Third Conference on Patterns Languages of Programs (PLoP '96) Monticello, Illinois, September 1996 Technical Report #WUCS-97-07, September 1996 Department of Computer Science, Washington University Pattern Languages of Program Design 3 edited by Robert Martin, Dirk Riehle, and Frank Buschmann Addison-Wesley, 1998[HTML] [PDF] [Word] [RTF] [PostScript]This volume is part of the Addison-Wesley Software Patterns Series. Brian also wrote an introduction for this volume.
Patterns: THE SELFISH CLASS || WORKS OUT-OF-THE-BOX || LOW SURFACE-TO-VOLUME-RATIO || GENTLE LEARNING CURVE || PROGRAMMING-BY-DIFFERENCE || FIRST ONE'S FREE || WINNING TEAM
[Foote & Yoder 1997b] Brian Foote and Joseph W. Yoder Big Ball of Mud Fourth Conference on Patterns Languages of Programs (PLoP '97/EuroPLoP '97) Monticello, Illinois, September 1997 Technical Report #WUCS-97-34 (PLoP '97/EuroPLoP '97), September 1997 Department of Computer Science, Washington University[HTML] [PDF] [Word] [RTF] [PostScript]
Patterns: BIG BALL OF MUD || THROWAWAY CODE || PIECEMEAL GROWTH || KEEP IT WORKING || SHEARING LAYERS || SWEEPING IT UNDER THE RUG || RECONSTRUCTION
[Foote & Roberts 1998] Brian Foote and Don Roberts Lingua Franca Fifth Conference on Patterns Languages of Programs (PLoP '98) Monticello, Illinois, August 1998 Technical Report #WUCS-98-25 (PLoP '98/EuroPLoP '98), September 1998 Department of Computer Science, Washington University[HTML] [PDF]
Patterns: ENGLISH ONLY || CONVERTIBLE CURRENCIES || LINGUA FRANCA
[Foote & Yoder 1998b] Brian Foote and Joseph W. Yoder Metadata Fifth Conference on Patterns Languages of Programs (PLoP '98) Monticello, Illinois, August 1998 Technical Report #WUCS-98-25 (PLoP '98/EuroPLoP '98), September 1998 Department of Computer Science, Washington University[HTML] [Word]
Also see the UIUC Metadata Pattern Mining '98 Workshop page.
[Foote 1999] Brian Foote A Smalltalk Patterns Safari Smalltalk Solutions 99 New York, New York Monday, 15 March 1999 John Pugh, program chair[HTML Presentation] [PowerPoint]
[Noble & Foote 2002] James Noble & Brian Foote Attack of the Clones (Chinese) Koala PLoP 2002, Melbourne, Australia
[Foote 1988a] Brian Foote (Advisor: Ralph Johnson) Designing to Facilitate Change with Object-Oriented Frameworks Masters Thesis, 1988 Dept. of Computer Science, University of Illinois at Urbana-Champaign[Abridged, Illustrated HTML] [HTML] [PDF] [Word] [RTF] [PostScript] [Macintosh PostScript] [StuffIt] [Squeak Source]
This may be the world's best documented piece of Squeak code. -- Ralph Johnson, 2/98
[Johnson & Foote 1988] Ralph Johnson and Brian Foote Designing Reusable Classes Journal of Object-Oriented Programming Volume 1, Number 2, June/July 1988[HTML] [PostScript] [Figure-1 PostScript] [PDF] [Figure-1 PDF]
Click here for a table of the Design Rules from this paper.
[Foote 1988b] Brian Foote Domain Specific Frameworks Emerge as a System Evolves Workshop on Methodologies and Object-Oriented Programming OOPSLA '88, San Diego, CA Norman L. Kerth, organizer[HTML]
[Foote 1988c] Brian Foote Designing Realtime Frameworks Workshop on Realtime Systems OOPSLA '88, San Diego, CA John Gilbert, organizer[HTML]
[Foote 1989b] Brian Foote The Craftsmen vs. the Scavengers: Ruminations of a Foot Soldier on the Reuse Revolution Workshop on the Reusable Component Marketplace OOPSLA '89, New Orleans, LA John T. Mason, organizer[HTML]
[Foote 1991b] Brian Foote The Fractal Model of the Lifecycles of Reusable Objects Workshop on Reuse OOPSLA '91, Phoenix, AZ Rebecca Joos and John D. McGregor, organizers[HTML]
[Foote 1993b] Brian Foote The Fractal Model of the Lifecycles of Reusable Objects Workshop on Process Standards and Iteration OOPSLA '93, Washington, DC Monday, 27 September 1993 James O. Coplien, Russell Winder, and Susan Hutz, organizers[HTML] [HTML Presentation]
[Foote 1995a] Brian Foote Where Do Reusable Objects Come From? Invited Talk, Software Engineering Summer School Illinois State University, Normal, IL Friday, 16 June 1995 Billy Lim, instructor/organizer[HTML Presentation]
[Foote 1995b] Brian Foote The Fractal Model of the Lifecycles of Reusable Objects Workshop on OO Process and Metric for Effort Estimation 15 October, 1995 Dennis de Champeaux, Simon Horner, and Granville Miller, organizers OOPSLA '95, Austin, TX[HTML]
[Foote 1997] Brian Foote Confessions of a Framework Zealot Workshop on Developing Successful Object-Oriented Frameworks OOPSLA 97, Atlanta, GA Sunday, 5 October 1997 Todd Hansen, Steven Fraser, Craig Hilsenrath, Bill Opdyke, and Arthur Riel, organizers[HTML] [HTML Presentation]
[Foote 1998] Brian Foote Escape From the Spaghetti Code Jungle Keynote Address, Sprint Object-Oriented User's Group (SOOUG) 1998 Winter Meeting, Kansas City, MO Tuesday, 17 February 1998 Dave Wiltz, organizer[HTML Presentation] [PowerPoint]
For more information on refactoring, see our Lifecycle and Refactoring Patterns paper and John Brant's Refactory page.
[Heffley et al. 1985] Earle Heffley, Brian Foote, Tony Mui & Emanuel Donchin Pearl II: Portable Laboratory Computer System for Psychophysiological Assessment using Event Realted Brain Potentails Neurobehavioral Toxicology and Teratology, Vol. 7, pp 399-407, 1985[PDF]
[Foote et al.] Brian Foote Kent Beck, Martin Fowler, John Vlissides, Ralph Johnson, Erich Gamma, Neil Harrison, et al. The Show Trial of the Gang of Four For Crimes Against Computer Science OOPSLA '99, Denver, Colorado, Wednesday, 3 November 1999
Click here to read the in absentia confession entered by the court for Richard Helm.
[Foote & Hill 2000] Brian Foote & Laura Hill Programming at the Edge of Chaos: The Emergence of eXtreme Programming XP 2000, Caligari, Sardinia, 21-23 June 2000 (Extended Abstract, Accepted but Undelivered)[Word]
[Overbey et al. 2005] Jeffrey Overbey, Spiros Xanthos, Ralph Johnson, and Brian Foote Refactorings for Fortran and High-Performance Computing Second International Workshop on Software Engineering for High-Performance Computing System Applications ICSE 2005, St. Louis, MO, 15 May 2005[PDF]
[Foote 2005] Brian Foote Total Code Makeover: Changing the Face of High-Performance CodeTM SM Talk on HPC and Refactoring, CCT Vistor's Program Center for Computation & Technology, Louisiana State University, Baton Rouge, LA[HTML] [PPT]
[Foote & Johnson 1989] Brian Foote and Ralph E. Johnson Reflective Facilities in Smalltalk-80 OOPSLA '89, New Orleans, LA October 1-6 1989, pages 327-335[HTML] [Word] [RTF] [PostScript]
[Foote 1989a] Brian Foote Class Warfare: Classes vs. Prototypes Workshop on Objects without Classes OOPSLA '89, New Orleans, LA David Ungar, organizer[HTML] [Word]
[Foote 1990] Brian Foote Object-Oriented Reflective Metalevel Architectures: Pyrite or Panacea? Workshop on Reflection and Metalevel Architectures OOPSLA/ECOOP '90, Ottawa, Ontario, Canada Mamdouh Ibrahim, Brian Foote, Jean-Pierre Briot, Gregor Kiczales, Satoshi Matsuoka, and Takuo Watanabe, organizers[HTML][Word][RTF] [HTML Presentation]
[Foote 1991b] Brian Foote Flexible Foundations and Movable Walls Workshop on Reflection and Metalevel Architectures OOPSLA '91, Phoenix, AZ Mamdouh Ibrahim, Brian Foote, Pierre Cointe, Gregor Kiczales, Satoshi Matsuoka, and Takuo Watanabe, organizers[HTML][Word][RTF]
[Foote 1992a] Brian Foote Objects, Reflection, and Open Languages Workshop on Object-Oriented Reflection and Metalevel Architectures ECOOP '92 Utrecht, The Netherlands Brian Foote, chair Satoshi Matsuoka, Pierre Cointe, organizers Mamdouh Ibrahim, Gregor Kiczales, advisors[HTML][Word][RTF]
The electronic proceedings of the workshop are also available via ftp.
[Foote 1992b] Brian Foote Living Languages Workshop on Progamming Languages: The Next Generation OOPSLA '92, Vancouver, British Columbia, Canada Mamdouh Ibrahim, chair[HTML][Word][RTF]
[Foote 1992c] Brian Foote Objects, Reflection, and Open Languages (abstract) IMSA 1992 Workshop on Reflection and Metalevel Architectures Tokyo, Japan Akinori Yonezawa and Brian C. Smith, editors[HTML][Word][RTF] [HTML Presentation]
[Foote 1993b] Brian Foote Architectural Balkanization in the Post-Linguistic Era Workshop on Object-Oriented Reflection and Metalevel Architectures OOPSLA '93, Washington, DC Friday, 1 October 1993 Brian Foote, chair Pierre Cointe, Dan Friedman, Jacques Malenfant, Dave Thomas, and Yasuhiko Yokote, organizers[HTML][Word][RTF]
[Foote 1994a] Object-Oriented Reflection and Metalevel Architectures Workshop Report, OOPSLA '93, Washington, DC Addendum to the Proceedings OOPS Messinger, Volume 5, Number 2, April 1994 Jerry L. Archibald and Mark C. Wilkes, editors[HTML]
The electronic samizdat proceedings of the workshop are available via ftp.
[Foote 1994b] Brian Foote Reflection as a Basis for Subjectivity Workshop on Subjectivity in Object-Oriented Programming William Harrison, Harold Ossher, Randall B. Smith, and David Ungar, organizers OOPSLA '94, Portland, OR[HTML] [Word] [RTF]
[Foote 1994c] Brian Foote An Object-Oriented Framework for Reflective Metalevel Architectures Thesis Proposal, Department of Computer Science University of Illinois at Urbana-Champaign Thursday, 17 November 1994[Word] [Slides, Word] [Slides, HTML]
[Foote 1995b] Brian Foote An Objective Look at Subjectivity Workshop on Subjectivity in Object-Oriented Programming William Harrison, Harold Ossher, and Hafedh Mili, organizers OOPSLA '95, Austin, TX[HTML] [Word] [RTF]
[Brant et al. 1998] John Brant, Brian Foote, Ralph E. Johnson, and Donald Roberts Wrappers to the Rescue Proceedings of the 12th European Conferences on Object-Oriented Programming (ECOOP '98) Brussels, Belgium, 20-24 July 1998 To appear as part of the Springer-Verlag Lecture Notes in Computer Science series[Word] [RTF] [PostScript]
[Foote 1998] Brian Foote Reflective Programming in Smalltalk Smalltalk Solutions 98 New York, New York Thursday, 7 May 1998 John Pugh, program chair[HTML Presentation] [PowerPoint]
[Foote & Yoder 1998b] Brian Foote and Joseph W. Yoder Metadata Workshop on Metadata and Active Object-Models OOPSLA '98, Vancouver, Canada Sunday, 18 October 1998 Joseph Yoder, Brian Foote, Dirk Riehle, and Michel Tilman, organizers[HTML] [Word]
[Foote, Johnson, & Noble 2005] Brian Foote, Ralph E. Johnson, and James Noble Efficient Multimethods in a Single Dispatch Language ECOOP 2005, Glasgow, Scotland 25-29 July 2005, Andrew Black, Programme Chair Copyright © 2005 by Springer-Verlag[HTML] [Word] [PDF] [Talk PDF] [Talk PPT] [Talk HTML] [Double Dispatch Example Code (JAR)] [Double Dispatch Example Code (CVS)]
I have been working with Smalltalk-80 for over ten years, beginning with Dave Ungar's BS, and the Apple Smalltalk that appeared on the Lisa and Macintosh during the mid-80s. From there, I've worked my way though the succession of ParcPlace Smalltalk-80 incarnations. I was exposed early on to Smalltalk-V as well. Smalltalk has been at the foundation of much of my work, including Designing to Facilitate Change with Object-Oriented Frameworks and Reflective Facilities in Smalltalk-80.
I am a member (a charter member, in fact) of Ralph Johnson's Smalltalk Group at the Dept. of Computer Science at the University of Illinois at Urbana-Champaign. The Smalltalk Group curates the UIUC's Smalltalk Archive.
Urbana, IL 61801 USA (217) 390-7946 (Mobile) Email: foote@laputan.org Curriculum Vitae [HTML][Word] Catfish in the Memepool