I (Ward Cunningham) worked for two separate labs, Systems and Cybernetics first, and then Computer Research where I filled two different postions.
System Prototypes
I worked on various prototype instruments where I felt my purpose was to realize the fullest potential of a concept while not going overboard on the code, much of which was written in Tesla.
Min/Max Envelope Acquisition and Display modeled in Cyber APL and displayed with 4k x 4k resolution on a 4015 terminal.
Teach on 8741 demanded the best of my and Wayne Downer's code squeezing skill.
Robot Platform ran on a 6800 reading hand-made shaft encoders then plotting the computed position on Tek 4012 storage tube display.
Character Graphic NSD Editor written in character mode on non-graphic Tek 4023 terminal.
Generic Digital Instrument anticipated web browsers and multi-touch interfaces.
Multi-Processor Debugging wherein hardware design and software design met at the oscilloscope probe and source level stepping.
Projection Kanji Keyboard driven by a table based vector character generator. I computed the tables in APL and tested them with the engineer before burning them into the startup roms.
Data Wrangling Font Files for the Kanji glyphs with a state machines written in lex.
Expense Calculator written to settle up a ski trip. Later inspiring calculation methods in wiki.
VLSI Design
I transfered to computer research where I would explore VLSI design tools and methods on much nicer computers than those little ones.
Discipline of Programming where Dijkstra, his students and their fans in Teklabs have their influence on me.
Design Procedure Language programs to make circuits within the industrial affiliate summer school program at the MIT AI Lab and EE/CS department.
Picture Model graphic rendering systolic array realized through custom macro libraries by Tom Almy.
Switch Level Simulation of the Picture Model chip under the control of stimulus and sequence libraries written in a C version of Lisp.
Circuit Structure Inverter using lex, yacc and cons-cells to transform a node-centric hierarchical circuit to a cad-ready net-centric model.
Linear Shuffle coded in icon using sequential and random generators to feed the exchange operator.
Circuit Geometry Rendering with a physiologically appropriate transparency model realized in Franz Lisp driving a Tek 4027 raster graphic display.
Application Accelerators silicon compiler which generated standard cell layout and register transfer simulations with incremental updates during design.
Software Productivity
I'd already invested some time exploring Smalltalk-80 before undertaking the Application Accelerator project. I devoted myself more specifically towards objects when I found my company more interested in how I'd built my silicon compiler than what it actually did.
FFT in Smalltalk collapsing the few remaining if statements of a lisp version into a class hierarchy.
Leftist Trees provide log behavior for a priority queue. I collapsed the conditional logic of the Knuth algorithm into a class hierarchy.
Traveling Salesman solved by simulated annealing where the temperature was set with the mouse while watching the solution jiggle on the display.
Toothpaste Graphics simplification of a Ken Knowlton rendering algorithm based on continuously increasing z-value. I learned to sketch humanoid figures using a paragraph of code executed from a workspace.
Greed in HyperCard prepared for an object-oriented programming contest at OOPSLA'89. I was quoted as saying HyperCard is object-oriented but you don't get to choose the objects.
Demo Robots were a personification of record/playback at the sensor/cursor level in the Smalltalk system.
Bit Video provided a cursor's eye view of the live screen using a purpose built system that recorded mouse motion and then rendered frames in non-realtime.
Diffusion-Limited Aggregation wherein a seed grows into an intricate lace from a weak concentration of sticky dust particles traveling randomly.
Animation with Captured Gestures that can be seen and named to provide a graphical language for animating process simulations.
Rotation in Three Skews and its realization for bitmaps with Smalltalk-80's rectangular BitBlt operation.
Morse Code Sweep using Magnolia's sound chip.
Collaborations
I asked Kent Beck to review my work on Plumbin' expecting him to be effusive with praise. Not so. However I took his suggestions to heart. This began a fifteen month collaboration that yielded as many prototypes built and delivered to others in our company.
Plumbin' take off of PARC's Truckin' expert system demo. Dynamically rearrange tiles to complete fluid flows which were render via a concurrent simulation.
Diagramming Debugger created an object-oriented version of a call graph while single stepping Smalltalk code.
Diagramming Inspector accumulated figures in a drawing as one explored a easily-circular web of objects.
Hot Draw simplified and generalized the structured drawing application with model manipulation as its primary goal.