|| Python Programming on
Win32, by Mark
Hammond and Andy
Robinson, 2000, ISBN 1565926218, O'Reilly.
If you are working with Python in a Windows environment and you want to talk to other applications (say by using COM or DCOM) or control or modify the operating system from Python (perhaps using Python as your operating system scripting language), you simply must get a copy of this book. Like the Python Cookbook, each time you use this book it'll save you hours of "interesting" times. I highly recommend this book.
It's also the sort of book where a programming team needs at least one copy. The sample code and errata page is here.
An introductory presentation by Mark Hammond and Greg Stein on COM given at a conference. In Feb'06 an announcement of a website dedicated to this was made: win32com.goermezer.de.
What Google will do for you:
To do this the application stack they provide has:
Their environment does allow you to run a local test server, so you can do your application development on your own private machine.
They provide a basic Django template module.
Seems to follow the Python wsgiref module.
An initial presentation of this is in these videos.
One of the things this does is to get you to build things using Google tools which may result in an implementation that is difficult to move to some other service provider without doing a complete rewrite. Whereas if you were using Amazon's EC2 you are writing for a more standard LAMP style environment so you should be able to take whatever you develop and run it somewhere else. Of course, if you keep this all in mind it might not be a big issue, use the Google tools to develop a prototype and test the waters before investing in a full scale project.
With Google's use of Python as the first application language to be supported by this system it has caused an unprecedented stir in the Python community, see:
I encountered the "busy drive" bug while checking to see if any of my Seagate drives might be affected. Quite ironic, you shutdown the system to check the serial numbers and drive labels; and then, when you power up the system again one of the drives is no longer responding to the BIOS. Seagate now has a few online tools that you can use to find out if you need new firmware - the best is to get the drive's serial number and enter it. If your drive is one that is known to be at risk they will send you to a page from which you can download a small ISO image that you can burn to CD and then boot from to flash the drive.
Seagate's firmware upgrade procedure is described here, if you have an X86 PC which can boot from CD then it is pretty simple to flash the drives (just detach all your other drives first to be on the safe side).
I was able to unbrick my drive that had entered the busy state by following this procedure. If you just unscrew the screw near the drive power connector a few turns, then you can slide some insulating material (say the corner of a business card) between the connector and the controller board quite easily. I used one of these RS-232 to TTL level shifters (here from www.robotcraft.ca) and used a pair of AA batteries to power it at 3 volts. For the connector to the RX/TX pins I used a piece of cable from an old computer case, one of the two pin headers that is used to connect the front panel (lights or switches) to the motherboard. This had the correct pin spacing but was slightly too thick to insert into the drive's socket, so I used sand paper to thin it down a bit. Once I had found a serial cable (which I have not used for many years) I was able to connect the drive to the computer and verify that it did have the "busy error" symptoms (the drive will keep sending, about once a minute, a string like "LED:000000CC FAddr:0025BF67" to the terminal). At this point things worked up to issuing the "Z" command to spin down the drive. For me as soon as I issued that command the drive would enter the busy error state. The command sequence looked like:
F3 T>/2 F3 2>Z LED:000000CC FAddr:0025BF67 LED:000000CC FAddr:0025BF67In the end I reviewed the various drive commands (a list is listed here) and noted that the "Z" command was also available at other "levels", so I gave level 8 a try and this worked. The output from my command session looked like:
F3 T>/8 F3 8>Z Spin Down Complete Elapsed Time 0.161 msecs F3 8> F3 8>U Spin Up Complete Elapsed Time 9.250 secs F3 8>/1 F3 1>N1 F3 1>/T F3 T> F3 T>i4,1,22 F3 T>m0,2,2,,,,,22 Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewr ite Retries = 00C8 User Partition Format 5% complete, Zone 00, Pass 00, LBA 00004339, ErrCode 000 User Partition Format 5% complete, Zone 00, Pass 00, LBA 00008DED, ErrCode 000 00080, Elapsed Time 0 mins 10 secs User Partition Format Successful - Elapsed Time 0 mins 10 secs F3 T>After I had done this I was able to remove the drive, test it and confirm that it was working fine. I then did a firmware update which took it from SD15 to SD1A.
And one more thing, my drives were "made in China" so this problem was not just with the drives from Thailand.