Programming sketches via ICSP is possible, I've just never done it without a bootload programmer.
For example,
https://github.com/WestfW/OptiLoaderhttp://arduino.cc/forum/index.php/topic,68183.0.html see the vidoe in the thread
could likely be used, if it was modified to know where to get the file from.
"Whats the IDE data rate?" 115,200 from boards.txt.
What you need to know is the data rate the bootload code is using.
Re: diode:
From AVR042, see first & last paragraph:
2. To enter programming mode (for some parts also the PEN line is used to enter
programming mode). Furthermore it is possible to enter high-voltage/parallel
programming mode by drawing the RESET pin “very” high, where very high means
11.5 – 12.5V (refer to the datasheet of the device for more information).
The reset line has an internal pull-up resistor, but if the environment is noisy it can be
insufficient and reset can therefore occur sporadically. Refer to datasheet for value of
pull-up resistor on specific devices.
Connecting the RESET so that it is possible to enter both high-voltage programming
and ordinary low level reset can be achieved by applying a pull-up resistor to the
RESET line. This pull-up resistor makes sure that reset does not go low unintended.
The pull-up resistor can in theory be of any size, but if the Atmel®AVR® should be
programmed from e.g. STK500/AVRISP the pull-up should not be so strong that the
programmer cannot activate RESET by draw the RESET line low. The recommended
pull-up resistor is 4.7kΩ or larger when using STK500 for programming. For
debugWIRE to function properly, the pull-up must not be smaller than 10kΩ.
To protect the RESET line further from noise, it is an advantage to connect a
capacitor from the RESET pin to ground. This is not directly required since the AVR
internally have a low-pass filter to eliminate spikes and noise that could cause reset.
Applying an extra capacitor is thus an additional protection. However, note that this
capacitor cannot be present if debugWIRE or PDI is used.
If not using High Voltage Programming it is recommended to add an ESD protecting
diode from RESET to Vcc, since this is not internally provided due to High Voltage
Programming. Alternatively, or in addition, a zener diode can be used to limit the
RESET voltage relative to GND. The zener diode is highly recommended in noisy
environments. The components should be located physically close to the RESET pin
of the AVR. Figure 3-1 shows the recommended circuit on the RESET line.