Andrew Birkett's nobugs.org
This is my PIC programmer. The original circuit is from noppp, and I laid it out onto stripboard myself. At the time, I used some noppp-compatible software which ran under DOS. I used the PIC 16F84 chip which has a few k of code space and 36 bytes of RAM. It has several forgiving inputs and outputs, and built-in clock circuitry. The programmer can be very simple because all the hard work (flipping bits at the right time) is done by a PC via the parallel port.
I will try and digitize the stripboard layout, because it might save someone a few hours.