Published Works by Allen Holub

This page is a list of allen's printed works. Here is a list of Allen's online works, which includes active links to the articles when possible.

Video Classes


Swift In Depth (Pluralsight: http://www.pluralsight.com/courses/swift-in-depth, 2015).
Picturing Architecture: UML (the good bits) and more. (Pluralsight: https://www.pluralsight.com/courses/picturing-architecture-uml, 2016).
Java Fundamentals: Object Oriented Design. (Pluralsight: https://www.pluralsight.com/courses/java-fundamentals-object-oriented-design, 2016).


Design Patterns in the Real World (O'Reilly, http://shop.oreilly.com/product/0636920043942.do, 2015).

Books

The Swift Compact Reference (2015) (ebook)

Holub on Patterns: Learning Design Patterns by Looking at Code (Apress, 2004)

Taming Java Threads. (Apress, 2000)

Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming (McGraw-Hill, 1995)

C+C++: Programming With Objects in C and C++. (McGraw-Hill, 1992)

Compiler Design in C. (Prentice Hall, 1990) (download ebook)

The C Companion. (Prentice Hall, 1987)

The C Chest and other C Treasures. (M&T Books, 1987)

On Command: Writing a UNIX-like Shell for MS-DOS. (M&T Books, 1986)

Dr. Dobb's Toolbook of C. (M&T Books, 1986)

Many of these books have been translated into other languages.

Online publications

Find hot links to these articles, along with the accompanying source code /publications/articles/.

Dr. Dobbs Agile Blog (list of articles here)

Dr. Dobbs May 23, 2011: Getting Started With the Cloud: Logging On With Google OAuth

Dr. Dobbs April 19, 2011: Getting Started With the Cloud: Getting Started with Google Apps and OAuth

Dr. Dobbs March 16, 2011: Geting Started With the Cloud: The Ecosystem

SD Times: You've Gotta Have Faith (2004-05-15)

SD Times: When Hiring, Smarts Beat Skill Lists (2004-06-01)

SD Times: Good Tech Support Yields Better Software (2004-06-15)

SD Times: More Thoughts on Tiger (2004-07-01)

SD Times: Java Still Struggles with Persistence (2004-07-15)

SD Times: JavaOne, Community and Dumb Ideas (2004-08-01)

SD Times: From JavaOne to JavaOne-Half (2004-08-15)

SD Times: The Dark Underbelly of Community (2004-09-01)

SD Times: First, or Best, to Market? (2004-09-15)

SD Times: Schizophrenic Development (2004-10-15)

SD Times: The Protection Racket Shakedown (2004-11-01)

SD Times: Reading About Design Patterns (2004-11-15)

SD Times: Do we really need the JCP? (2004-12-15)

SD Times: Open-Source Context (2005-01-01)

SD Times: Teach Your Programmers Well (2005-01-15)

SD Times: The Prince of Purity (2005-02-01)

SD Times: Tools that work Against You (2005-02-15)

SD Times: Is Software Engineering and Oxymoron (2005-03-15)

SD Times: Java Annotation (2005-04-01)

SD Times: What's not Coming in Mustang (2005-04-15)

SD Times: The Terror of Code in the Wrong hands (2005-05-01)

SD Times: XML Digital Signatures in Mustang (2005-05-15)

SD Times: Finding PathFinder (2005-06-01)

SD Times: JavaOne and Stalinist management (2005-06-15)

SD Times: A Cautionary Tale (2005-07-01)

SD Times: Visual Java (2005-07-15)

SD Times: The Law of Lines (2005-08-01)

SD Times: Java Studio Creator (2005-08-15)

SD Times: Learning UML 2 (2005-09-01)

SD Times: Requirements Gathering (2005-09-15)

SD Times: A UI Designer's Reading List (2005-10-01)

SD Times: A Conversation with Creator's Creator (2005-10-15)

SD Times: Jumping Off the Bandwagon (2005-11-01)

SD Times: Coordinating the Evolution of Java (2005-11-15)

SD Times: Culture Clash (2005-12-01)

SD Times: JasperReports Disappoints (2005-12-15)

SD Times: A Bolshevik Take on Computer Security (2006-01-01)

SD Times: I Text, You Text, We All Text for iText (2006-01-15)

SD Times: The Next Big Thing (2006-02-01)

SD Times: Scripting and Java (2006-02-15)

SD Times: AJAX is No Panacea (2006-03-01)

SD Times: Two Sides to AJAX Toolkits (2006-03-15)

SD Times: The End of the World as We Know It (2006-04-01)

SD Times: A Culture of Fear (2006-04-15)

SD Times: Stomping the Bugs (2006-05-01)

SD Times: The Clearinghouse Model (2006-05-15)

SD Times: A Taxonomy of Coding Errors (2006-06-01)

SD Times: Rent Before You Buy Into Offshoring (2006-06-01)

SD Times: A Sleepy JavaOne (2006-06-15)

SD Times: The Google Web Toolkit (2006-07-01)

SD Times: TestNG is A-OK (2006-07-15)

SD Times: There's No Avoiding Politics (2006-08-01)

SD Times: The Next Big Thing (2006-08-15)

SD Times: just Say No to XML (2006-09-01)

SD Times: The Finesse of FitNesse (2006-09-15)

JavaWorld Sep 2003: Why getter and setter methods are evil

JavaWorld Aug 2003: Why extends is evil

JavaWorld Jul 2003: Solve the date-selection problem once and for all

JavaWorld Jan 2002: When it comes to good OO design, keep it simple

JavaWorld Feb 2001: Warning! Threading in a multiprocessor world

JavaWorld Mar 2000: User interfaces for object-oriented systems, Part 6: The RPN calculator.

JavaWorld Oct 2000: Modify Archives Part 2

JavaWorld Jul 2000: Modify Archives Part 1

JavaWorld Jan 2000: Misc. Useful Stuff (Assert, Tester, bit_bucket, Std, Log, Align ...)

JavaWorld Jul 1999: What is an object?

JavaWorld Aug 1999: XMLOutputStream

JavaWorld Sep 1999: Implementing the Visual-Proxy Architecture

JavaWorld Oct 1999: The Incredible Transmogrifying Widget

JavaWorld Nov 1999: Menu Negotiation

JavaWorld Jun 1999: Reactors, Active Objects, and Consoles

JavaWorld May 1999: Blocking Queues, Thread Pools, An OO Look at Threads

JavaWorld Apr 1999: Reader/Writer locks, Singletons, JDK 1.1 Class-Unloading Bug

JavaWorld Mar 1999: Observer and the Mysteries of the AWTEventMulticaster

JavaWorld Feb 1999: Timers

JavaWorld Dec 1998: Condition Variables and Counting Semaphores

JavaWorld Nov 1998: Semaphore, Lock_manager, and Mutex

JavaWorld Oct 1998: Common multithreading Pitfalls (Deadlock, etc.)

JavaWorld Sep 1998: Threading Architectures

IBM DeveloperWorks Jul 2000: The OO-Design Process: Getting started: How to prioritize

IBM DeveloperWorks Aug 2000: The OO-Design Process: Beginning to design software.

IBM DeveloperWorks Sep 2000: The OO-Design Process: Refining the problem definition

IBM DeveloperWorks Oct 2000: If I were king: A proposal for fixing the Java programming language's threading problems.

IBM DeveloperWorks Dec 2000: The OO-Design Process: Verifying the analysis

IBM DeveloperWorks Jan 2001: The OO-Design Process: Use cases, an introduction

IBM DeveloperWorks Mar 2001: The OO-Design Process: Use-case planning

IBM DeveloperWorks Apr 2001: The OO-Design Process: Use-cases applied, Part 1

IBM DeveloperWorks May 2001: The OO-Design Process: Use-cases applied, Part 2

Print Publications

The UML Reference Card C/C++ Users Journal Oct 2003

Is It Time for Java++? (Editor's Forum). (Column) Allen Holub.
C/C++ Users Journal Oct 2002 v20 i10 pS2(1)

Know Thy Machine. (Editor's Forum). (Editorial) Allen Holub.
C/C++ Users Journal August 2002 v20 i8 pS2(1)

Web services: just say no (for now). (Editor's Forum). Allen Holub.
C/C++ Users Journal June 2002 v20 i6 pS2(1)

Adopting OO. (Editor's Forum). (object-oriented)(Editorial) Allen Holub.
C/C++ Users Journal Feb 2002 v20 i2 pS2(1)

Is There Anything to JavaBeans but Gas? (Editor's Forum). Allen Holub.
C/C++ Users Journal Dec 2001 v19 i12 pS2(1)

Editor's Forum. (Editorial) Allen Holub.
C/C++ Users Journal Oct 2001 v19 i10 pS2

Hide your data and make objects responsible for their own user interfaces, part III. (Technology Tutorial)(Cover Story) Allen Holub.
Microsoft Systems Journal Jan 1997 v12 n1 p67(12)

Hide your data and make objects responsible for their own user interfaces, part II. (Technology Tutorial) Allen Holub.
Microsoft Systems Journal Dec 1996 v11 n12 p35(8) (5285 words)

Hide your data and make objects responsible for their own user interfaces. (includes related article on Booch notation)(part 1) (Technology Tutorial)(Tutorial) Allen Holub.
Microsoft Systems Journal August 1996 v11 n8 p53(17) (8685 words)

Roll your own persistence implementations to go beyond the MFC frontier. (developing a persistence implementation that is not integrated with MFC, but that can coexist with MFC) (Technology Tutorial)(Tutorial) Allen Holub.
Microsoft Systems Journal June 1996 v11 n6 p31(16) (7106 words)

Rewriting the MFC Scribble program using an object-oriented design approach. (Microsoft Foundation Classes)(Tutorial) Allen Holub.
Microsoft Systems Journal August 1995 v10 n8 p17(19) (8069 words)

C+C++: Programming with Objects in C and C++. (book reviews) Rob Eiben.
C/C++ Users Journal Dec 1994 v12 n12 p57(3)

Using C++ for directory management: use operator overloading to build C++ tools for managing your directories. (Tutorial)

Allen I. Holub.
Byte Dec 1993 v18 n13 p213(6)

Visual C++: its compiler, language implementation, and code quality. (summary of feature article) (Brief Article) Allen Holub.
Microsoft Systems Journal June 1993 v8 n6 pCOV(1) (40 words)

Visual C++: its compiler, language implementation and code quality. (Microsoft Visual C++ application development environment) Allen Holub.
Microsoft Systems Journal June 1993 v8 n6 p65(11) (7268 words)

The power of inheritance. (avoiding multiple inheritance problems in C++) (Some Assembly Required) (Column) Allen Holub.
Byte May 1993 v18 n6 p221(4)

The C majors. (eleven DOS-based compilers perform in a virtuoso test) Scott Lewis, Kenji Hino, Allen Holub, Scott Ladd, G. Michael Vose, Robert Ward.
Computer Language Feb 1989 v6 n2 p31(25) (8082 words)

C Chest: Shell archives. (C language programming technique) (technical) Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer July 1988 v13 n7 p116(9) (1855 words)

C Chest: Stalking the wild memory allocator. (problem-solving) (C Chest) (column) Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer June 1988 v13 n6 p80(9) (2450 words)

C Chest: Postfix notation and common-subexpression elimination. (C Chest) (column) Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer May 1988 v13 n5 p72(8)

C Chest: Formatted print functions: the innards. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer April 1988 v13 n4 p98(4) (1521 words)

C Chest: Hiding configuration information. Allen Holub.
Dr. Dobb's Journal of Software Tools Feb 1988 v13 n2 p92(6)

C Chest: A preemptive multitasking kernel continued, Lattice dBC, and compiler controversies. Allen Holub.
Dr. Dobb's Journal of Software Tools Jan 1988 v13 n1 p72(9)

C Chest: A preemptive multitasking kernel and more mean subroutines. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer Dec 1987 v12 n12 p126(9)

C Chest: Using the Unix-ANSI time functions. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer Nov 1987 v12 n11 p116(2)

C Chest: Language wars over C's. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer Oct 1987 v12 n10 p124(4)

C Chest: The ultimate metronome: writing interrupt service routines in C. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer Sept 1987 v12 n9 p106(9)

C Chest: Subroutines with a variable number of arguments. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer August 1987 v12 n8 p100(6)

C Chest: Curses: Unix-Compatible windowing output functions. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer July 1987 v12 n7 p94(19)

C Chest: Priority Queues. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer June 1987 v12 n6 p102(13)

C Chest: Statistical application of digital low-pass filters, exec bug in Microsoft C. Allen. Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer May 1987 v12 n5 p102(31)

C Chest: Nr: a C implementation of Nroff, part 3. (continuation of user manual for Nr) Holub Allen.
Dr. Dobbs Journal of Software Tools for the Professional Programmer April 1987 v12 n4 p130(8)
Abstract

C Chest: Nr: a C implementation of Nroff, part 2. Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer March 1987 v12 n3 p96(28)

C Chest: Nroff: hashing, expressions, and roman numerals. (column) Allen Holub.
Dr. Dobbs Journal of Software Tools for the Professional Programmer Feb 1987 v12 n2 p90(23)

C Chest: Shrinking .EXE file images. (column) Allen Holub.
Dr. Dobb's Journal Jan 1987 v12 n1 p104(7)

C Chest: Sets in Microsoft C, version 4. Allen Holub.
Dr. Dobb's Journal Nov 1986 v11 n11 p14(7)

C Chest: more, a file-browsing utility. Allen Holub.
Dr. Dobb's Journal Oct 1986 v11 n10 p22(3)

C Chest: directory traversal, trailing Zs, and horrifying experiences. Allen Holub.
Dr. Dobb's Journal Sept 1986 v11 n9 p14(7)

C Chest: An AVL tree database package. (Adelson-Velski and Landis) (column) Allen Holub.
Dr. Dobb's Journal August 1986 v11 n8 p20(7)

C Chest: trees and more on Microsoft and Lattice compilers. Allen Holub.
Dr. Dobb's Journal July 1986 v11 n7 p18(6)

C Chest: sort - a general purpose sorting program. Allen Holub.
Dr. Dobb's Journal June 1986 v11 n6 p22(6)

C Chest: Assessing IBM video display memory and a Microsoft bug. Allen Holub.
Dr. Dobb's Journal May 1986 v11 n5 p18(5)

C chest: redirection - the -dev Directory, SWITCHAR, and Touch. Allen Holub.
Dr. Dobb's Journal April 1986 v11 n4 p18

C Chest: the last of the shell support routines. (column) Allen Holub.
Dr. Dobb's Journal March 1986 v11 n3 p14(8)

C Chest: A New Shell for MS DOS (continued). Allen Holub.
Dr. Dobb's Journal Feb 1986 v11 n2 p16

C Chest: A Unix-Like Shell for MS DOS. Allen Holub.
Dr. Dobb's Journal Jan 1986 v11 n1 p18-20

C Chest: A New Shell for MS DOS, Part 1
Dr. Dobb's Journal Dec 1986 v10 n12

C Chest: How Compilers Work -- A Simple Desk Calculator
Dr. Dobb's Journal Aug 1986 v10 n9

C Chest: Make
Dr. Dobb's Journal Aug 1985 v10 n8

C Chest: An implemention of the UNIX ls utility for MSDOS
Dr. Dobb's Journal Jul 1985 v10 n7

C Chest: Queues and Bit Maps
Dr. Dobb's Journal Jun 1985 v10 n6

C Chest: Command Line Processing
Dr. Dobb's Journal May 1985 v10 n5

C Chest: Sorting Routines: Shell Sort and Quicksort
Dr. Dobb's Journal Apr 1985 v10 n4

C Chest: Pipes, Wild-Card Expansion, and Quoted Arguments
Dr. Dobb's Journal Mar 1985 v10 n3

Grep.c--A Unix-like Generalized regular Expression Parser. Allen Holub.
Dr. Dobb's Journal Oct 1984 v9 n10

Mr. Holub has also written articles for:
  Programmer's Journal.
  Mac Tech Journal.
  The C Gazette.