I'd like to just make a quick mention of my humble little AVR programmer that I sell on Tindie. I call it the USB µISP. It's a USBTiny clone, and its design came largely out of the AdaFruit USBTiny and the SparkFun Pocket AVR programmer. Like the SparkFun version, it's SMD, so it's small, and it has a PolyFuse on the USB power input. Like both programmers, it has a 74HC125 bus buffer chip. But when SparkFun added a pull-up resistor to the BUFFEN line, they created a target power "leak" path, which makes theirs unsafe for 3.3 volt targets (that could be damaged by 5 volt power). My design has blocking diodes to prevent this. I also added a 3.3 volt LDO, and a target power jumper block so that the target can either be supplied with 3.3 volt power, 5 volt power, or no power (meaning the target it self-powered during programming). The USB connector is the more commonplace micro-USB one instead of the mini-USB used by SparkFun. I also use the most recent v1.7 firmware from the original designer.
The next version - available next week - will add a current-limiting switch to the target power supply line, making it safe to "hot plug" targets (this is particularly helpful when using pogo pin programming jigs). I've still got a few boards left in inventory that don't have this feature (they work well, but sometimes the USB cable must be un- and re-plugged if hot-plugging the target), and am selling them at a 15% discount off the normal $16 price.