See the test results for all programmers.
This serial port AVR programmer (DASA) uses the host computer's serial port to create an SPI link to the AVR microcontroller. The programmer may be built in the serial port connector's headshell, or in a box. It can even be encapsulated in epoxy or covered with heatshrink tubing somewhere in the serial cable. There are a few other serial AVR programmers listed on the Programmers page
This is a simple circuit, and it could have been done using discrete wiring, but I chose to use a tiny piece of perfboard that fits inside the headshell. I soldered pins 6 - 9 to the board pads for a little structural integrity. The resistors and diodes all line up to make the backside wiring simple and clean. It makes sense in this application to use a strain relief on the cable, since you will be tugging on it often.