About Me
Programming is a craft – one of the so-called “useful
arts” – and I have been practicing
that craft for about half a century – I learned to program when I was in high
school, at a time when a room-full of mainframe had less computing power than
a smart watch does today. During my career I have seen the beginnings of the
Internet, personal computers, graphical user interfaces, structured
programming, object-oriented programming, the Free Software and Open Source
movements, the World Wide Web, web browsers, Linux, and git
.
My perspective on the history of computers and programming often makes it easier to get ideas across, because I can explain why things are the way they are – how they got that way, what the alternatives were, and why they didn’t work.
I’ve written macro assemblers, debuggers, web servers, and text editors; I may
be one of the few people to have written object-oriented code with a macro
assembler, designed a Turing-complete functional programming language with XML
syntax (PIA), or built a static
site generator based on make
.
I am listed as a co-inventor on 40-odd patents (search here), and have written a book on Real-Time Microprocessor Systems (1985). I have also recorded and self-published a CD called Coffee, Computers, and Song!.
I have given presentations and workshops on git, object-oriented application
frameworks, XML, sound recording, CD production, and songwriting, among other
things; recent work-for-hire writing has been about git
and make
, but I’m
open to suggestions.
No matter what my job title may be, I have always been primarily a toolmaker, and enjoy putting together the kind of small, useful things that people will take for granted because they “just work”. You can find many of them in my “Swiss Army” build system, MakeStuff.