Programming is one of my favorite pastimes. My main interest area tends to be hardware control and interfacing. However I frequently cross over into other areas when I find interesting problems. Such problems include my mathematics projects and extend as far out as biological physics.


tiny-machine is a virtual machine which executes programs written in the Tiny Machine language, as defined by Kenneth C. Louden in his book Compiler Construction Principles and Practice. It is entirely written in Guile Scheme and utilizes a PEG parser to implement its interpreter in an enjoyably concise way. As an example, the entire implementation of tiny-machine's fetch-execute cycle is shown below. This includes the definition of all seventeen instructions in the Tiny Machine language:

Affinity and AFiNeS

Affinity is a program I wrote for plotting the output of the Active Filament Network Simulation (AFiNeS) program. It allows the evolving cytoskeletal actin networks to be visualized as either a GIF animation or in real time during the simulation. Affinity uses libplot from the plotutils package.

An actin network animation output from Affinity

ATMEGA328P "Arduino" Embedded Programming

This is a bibliography I frequently reference when working with Atmel chips outside of an Arduino. All links have been archived using The Wayback Machine. If the links are broken, simply paste the URL in their search engine to find an old copy.

  1. ATMEGA328P Datasheet (Old, 328/P chip specific)
  2. ATMEGA328P Datasheet (New)
  3. AVR Libc User Manual (avr-gcc/avrdude)
  4. AVR Libc Reference Manual (Microchip, proprietary)
  5. Tutorial w. a similar objective (Quite Good!)
  6. Another tutorial w. a similar objective
  7. ATMEGA168/328 to Arduino Uno Pinout
  8. ArduinoISP and Bootloader explanations
  9. Make a Parallel Programmer
  10. Make an older Parallel Programmer
  11. A simplistic program that displays "Pumpkin Error"

Project Euler

Support Free Software

Support Free Speech & Privacy