Paul’s Technical Portfolio

Links are to HTML files unless otherwise noted.


2020-2029

Most of these articles started as content from my e-mail newsletter “The Coffee Underachiever” and my online newsletter “The Restless Mind.”

October 2023: My Home Library Database Round 1[PDF]

Most C programmers who learned the language informally do not have a rigorous understanding of the C memory model. This started as a presentation I wrote to apply for a technical training position. I continued to revise it over the years, and recently presented it to members of my team at Boeing.

May 2023: Memory Management in C: An Introduction (PDF)

March 2023: Thinking of an Animal (HTML)[PDF]

December 2022: Stable Diffusion Doesn’t “Know” Anything[PDF]

December 2021: How I Use GNU Make[PDF]

August 2020: Python 2020: Lots of Movement, Little Improvement[PDF]

January 2020: My Programming Process By Example: Implementing Base64[PDF]


2010-2019

These articles started as blog posts from two of my Blogger blogs, now defunct, called “Praise, Curse, and Recurse” and “Geek Like Me Too,” or as content from my e-mail newsletter “The Coffee Underachiever.”

October 2019: Asynchronous Programming with Qt[PDF ]

August 2017: Creating a Shared Memory Block with Keil µVision and the Atmel SAM4E16E[PDF]

October 2016: Fixed-point Math with avr-gcc[PDF]

February 2016: SPI Communication with the Arduino Uno and M93C46 EEPPROM: Easy, Fun, Relaxing[PDF]

March 2015: On Degeneration of Array Types in C[PDF]

June-July 2013: The Polar Game in Haskell: An Accidental Online Chautauqua[PDF]

June 2013: The Polar Game in Dylan: A Case Study in Object-oriented Design[PDF]


2000-2009

These articles started as posts in my now-defunct Blogger blog called “Praise, Curse, and Recurse.”

December 2006: From Bits to Cells: Simple Cellular Automata in Haskell[PDF]

December 2006: The Dot Matrix Printhead: A Toy to Learn a Little Haskell[PDF]

December 2006: The Division Bell Tolls for Thee: an Inquiry into Integer Division in Haskell and C[PDF]

August 2006: Generic Functions and Pointers to Member Functions[PDF]

June 2006: Paying the Sin Tax on Semantics: The Lowly Struct[PDF]

January-February 2006: Thinking About Sudoku and Scheme: First Steps Towards a Solver[PDF]

The following two PDF files were originally PowerPoint presentations I developed while working as a Systems Research Programmer at the Health Media Research Lab, part of the University of Michigan Comprehensive Cancer Center. This content is protected under Copyright by the Regents of the University of Michigan.

June 2000: HMRL Tailoring Technology (PDF)

June 2000: Emergency Department Brief Intervention (PDF)


1990-1999

I wrote this article, along with several others, for PIE Developer magazine, later renamed to PDA Developer magazine, while working at Pharos Technologies.

July 1994: A (NewtonScript) Inheritance Primer (PDF) (July 1994)

The following file contains preserved notes about one of the instructional multimedia projects I developed while working for the Office of Instructional Technology at the University of Michigan: a simulation of an audiometer. The content below is protected under Copyright by the Regents of the University of Michigan.

1993: The Audiometer Simulation Project Summary[PDF]

I wrote this article for MacTutor magazine while an intern at the College of Wooster.

April 1990: C Workshop: Extending Modal Dialogs[PDF][PDF (scanned pages)]


1980-1989

This is my second article on writing HyperCard plug-ins. Note that it was published without the source code I submitted. I have included the source code in the updated HTML and PDF versions of the article.

April 1989: Understanding Lightspeed C: Talking Back to HyperCard[PDF][PDF (scanned pages, without source code as published)]

In March 2025, I revisited the simplified graphPack plug-in that I wrote for Understanding Lightspeed C: Talking Back to HyperCard. Using a Macintosh emulator, I updated the code, rebuilt it with THINK C 5, and made it available for anyone interested.

March 2025: Talking Back to HyperCard Revisited[PDF]

At the College of Wooster, I developed a HyperCard stack for Dr. Donald Beane, who taught in the Mathematics department of the College of Wooster. Here is a retrospective article about that HyperCard stack and how it worked with the full version of the graphPack XCMD to draw mathematical functions.

April 2025: Retrospective: The LimCon HyperCard Stack[PDF]

Also in April 2025, I revised the full graphPack XCMD, improving the way it renders graphs.

April 2025: The LimCon HyperCard Stack Revisited Part 1: Drawing Prettier Graphs

This was my first published technical article, about how to write a simple HyperCard XCMD.

December 1988: Writing XCMDs in Lightspeed C: About the Aboutbox[PDF][PDF (scanned pages)]

The following are programming assignments I wrote for Computer Science classes at The College of Wooster.

I implemented a very simple operating system for the Motorola 68000 microprocessor complete with I/O and a simple scheduler. For this project, I developed the code using a cross-assembler that ran on the DEC VAX, and tested and debugged the code using a Motorola development board.

1987: A Teeny-tiny Operating System[PDF]

I implemented a simplified assembler for the DEC VAX, in VAX assembly language.

December 1986: A VAX Assembler[PDF]

Portfolio IndexWriting Archive