which method of wireless Arduino programming is better?

I am trying to wirelessly program Arduino Fio using XBee-PRO® 802.15.4 with embedded antenna.
I searched the following methods:
http://www.faludi.com/itp_coursework/meshnetworking/XBee/XBee_program_Arduino_wireless.html
http://www.ladyada.net/make/xbee/arduino.html
http://www.sparkfun.com/tutorials/122#Step1

It seems the 1st method is the simplest one. I tried it but couldn't make it work. My questions are:

Is the first method the right method to try?

In the Step 4 of the first method, I should click on the button for Upload right after the print output "Arduino will reset in 5 seconds" and before the print output "Resetting NOW", is it right?

Also, I used a 2N3904 transistor instead of the required 2N2222A transistor in the first method. The result is the 2N3904 transistor could not pull the Arduino reset pin to ground.

Anyone with the 1st method or experience in wireless arduino programming can help? Thank you!

Remember that the Arduino IDE will re-compile the code between the time you click the Upload button and the time the upload starts. The five second delay is supposed to allow for that lag.

"4. You should receive a reply, "Arduino will reset in 5 seconds". Disconnect immediately from the terminal program to free the serial port, change to the Arduino program, and click on the button for Upload to I/O Board. The timing will probably take a little practice at first."

Since you have to upload a "reset in 5 seconds when you receive '*reset'" sketch this wireless upload method will only work once unless every sketch you upload also has the "reset in 5 seconds" code.

The ladyada method works more like a wired serial or USB connection so it should work almost without regard to what sketch is loaded.