I just want to follow up on a previous post. I built a DAPA cable to program AVRs, and - astonishingly - it works! The downsides are:
1) You need to supply your own voltage to the chip. USB programmers can generally supply +5 volts from the USB power but DAPA won't do that.
2) Parallel port is kind of old-school.
3) If you choose to flip fuses so that the chip goes at, say, 10 or 20 megahertz, it will run so fast that the parallel port can't keep up with it. So it's only for AVRs running on the internal oscillator in slow mode at about 1 megahertz.
4) install_giveio.bat won't work with Windows 7. So use Linux or Windows XP.
But it works! The cable can be built with a handful of parts from an electronics store. If you're giving it a go and can't get it working, shoot me an email.