Using In System Programmers (ISP) is probably the most common way of programming microcontrollers. This is convenient because chips don’t have to be removed from original circuit – this is actual when SMT parts are used. AVR and Atmel’s 8051 micros can be programmed using ISP method. There are many various programming cables and adapters you can choose. Some of them are commercial that cost some money. But hobbyists rather like community products with all open software/hardware benefits. Probably you’ve heard and maybe have famous USASP programmer originally made by Thomas Fischl. Umair Mukati decided to add some improvements to it and built ULTI-ISP ISB programmer that supports AVRs and 8051 microcontrollers.
Programmer is built using Atmega8 microcontroller. The PCB is shaped to fit as USB stick – this is convenient to use with laptops. ULTI-ISP can be used with ProgISP software.