|| Learning Python,
Ascher, 2004, ISBN 0596002815, O'Reilly.
The first edition was published in 1999 and was subsequently updated to
the 2.2 version of Python in 2004. I
highly recommend this book as the first book on Python you should
get. Its a very
readable language reference, with lots of short examples. It
chapters on some of the more advanced topics and some of the
Slashdot has a review of the new version.
Even if you have a copy of the original edition I think you should get a copy of the new edition, it has a lot of new material, as well, some of the general sections have been significantly improved.
Even if you are an experienced C++ programmer you'll benefit from reading this when you start coding Python as Python's object system and language have may built-in capabilities that C++ lacks (so you will be unaware of and probably will not even think to look for).
|| The Python
(second edition) by Alex
Anna Ravenscroft and David
Ascher, 2005, ISBN 0596007973, O'Reilly.
This is a collected set of recipes for doing all sorts of common (and
so common) tasks in Python. The recipes are grouped into task-specific
chapters, so you can often just glance down the list of chapters and
then skim the contents of one or two chapters to find what you are
looking for. The recipes are usually less than a page long, often short
enough to just type into the Python interpreter shell directly to play
with, and come with a write up that will cover what the recipe does and
go into details about any additional background material you might need
If you are a lone programmer who's looking to get productive in Python fast, this is a good book to get. Its the sort of thing where you could find a solution in this book in 5 minutes that will save you a few hours of web searching and experimentation. If you've got a few people at work who use Python, then at least get one copy for the office, it'll pay for itself in one use.
in Action, 2006, by Noel Rappin and Robin Dunn, published by
Manning Publications. ISBN: 1932394621.
Here's an artical
interviewing Robin Dunn. Reviewed
on voidspace. Reviewed
on Slashdot by Ron Stephens.
This is a very good introduction to using wxPython to create GUI applications in Python. Currently I've read about 70% of the book and found it quite easy to follow, the examples are quite concise, but still illustrate some powerful concepts (especially the grid table in Chapter 5 and the simple drawing application in chapter 6). Source code to the examples is available from the publisher's web site, but sometimes one learns more from actually typing in some of these that just downloading and running them. That's one of the beauties of Python, you can actually type in some stuff in the Python shell window and interactively experiment with things.
Incorporating HTML into wxPython. Using PIL (Python Imaging Library) within a wxPython application.
First, the Board has stated, in obiter dicta, on several occasions that the Private Copying regime legalizes copying for the private use of the person making the copy, regardless of whether the source is non-infringing or not. Therefore, according to the Board, downloading an infringing track from the Internet is not infringing, as long as the downloaded copy is made onto an 'audio recording medium'the key here would be that to be legit you need to save a copy of the song to an audio recording medium, i.e. you need to burn it onto a CDR on which you will have paid the levy.  
Speaking with Canon, I found the following:
Of course, every image is different, but in Canon's testing, the company used the ISO Standard #5 image to estimate inktank usage. (This image provides a fair and accurate ratio of colors to approximate the average digital photograph.) Here are the results, according to Canon:
Cyan: 1100 pages
Magenta: 790 pages
Yellow: 540 pages
Photo Cyan: 380 pages
Photo Magenta: 280 pages
Red: 2300 pages
Green: 2300 pages
The new red and green tanks, obviously, are used far less often than the others because they're primarily used for accent work. They're the last tanks you'd have to replace.
I purchased the i9900 about 6 weeks ago to replace my S9000. The S9000 is no slouch and a top rated printer from 2 years ago but i9900 is much better. I now shoot with a Canon 10D and Canon L lenses even though I have thousands of transparencies to scan on a Canon FS4000US film scanner. The 10D was purchased just prior to a trip to Rome where I shot about 1000 images.
I just finished assembling 170 of the best Rome images into an album using Canon PhotoRecord software that comes with most Canon digital products. I printed the album on both Epson dual-sided matte paper and Pictorico dual-sided semi-gloss paper. The results are amazing. Both papers work extremely well with the i9900 although they each have their own subtle tinting difference. This can be corrected easily with color adjustment through the printer driver. Printing the entire album on the dualsided 8.5 x 11 stock (68 pages total) used no more than half of some of the ink cartridges and almost none of the red and green. People who have viewed the album are stunned and amazed with the quality and can't believe it came from an inkjet printer. The color punch and tone is incredible and the level of detail and resolution equals or exceeds wet chemistry printing. If you want to see dots you'll need at least a 4X loupe and there is absolutely no banding.
It is a mistake to not consider this printer because of the limited selection of Canon papers. Epson papers work extremely well on the Canon printers as do Pictorico, Mitsubishi and Konica. These are the only papers I've had the opportunity to try.
Needless to say, I am very happy I bought this printer.
To make this strange material, scientists start with a liquid alcohol like ethanol and mix it with silicon dioxide to form a gel. Then, through a process called supercritical drying, the alcohol is forced out of the gel, typically with high-pressure carbon dioxide. With this drying process, the gel does not collapse or lose its volume. It appears holographic because the silicon dioxide scatters shorter wavelengths of light much like air in the daytime sky.This stuff insulates so well you probably would have to cool you house in winter if you could afford it. So my question is, if the raw materials for making this stuff are so cheap and abundant, and its been known about for over 70 years, why is this not commercially available? Referenced on Slashdot here and here. 
The material was not new. In 1931, Steven S. Kistler was a pioneer in making the substance at the College of the Pacific in Stockton, Calif., now the University of the Pacific. But, Dr. Tsou said, the material was not used much, except in powdered form as a nontoxic anti-caking agent for food.
You take $1000 and use it to purchase a panel capable of 1000W. You take out a loan at 10% to do this, so you are paying $100/yr in interest.
You live in an area where you can get 6hr/day of good light over 200 days of the day, so your 1kW panel produces 6*200*1 = 1200kWh in each year.
The cost of this (to you, is $100) so the cost of this electricity is $100/1200 = $0.083/kWh, which is competitive with grid electricity.
Granted I've oversimplified things a bit (no installation cost, no DC to AC converter and grid adapter) but I'm also quoting a higher interest rate than you would be paying and I'm pretty conservative on the sunlight hours per year, and in a lot of areas you can get a credit from your utility company for the energy that you push back into their grid - and this credit can be at a much higher than normal grid rate. As well, there can be some tax savings for doing this.
The important point is that before Nanosolar came along the cost per watt was at least $5 for solar power - so the drop to $1/W is an industry-changing event and suddenly makes solar attractive to a whole new market place.  
5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
This Slashdot article references some other articles that seem to be similarly concerned with section 6 of the LGPL.
Of course there is just the slight problem that this light must be violating the laws of physics. Consider the claim that it provides about 4W of light via the LEDs for 4 hours per "charge up". This means that the energy used would be 4W * 4 hr * 3600s/hr = 57600J. Now since the formula for potential energy is just mass*gravity*height, and the height of the device is roughly 1m this means 57600 = mass * 9.81 * 1m so the mass required is 5871kg. Of course, the mass will need to be larger than this to overcome conversion efficiencies, friction etc. Looking at the design pictures it appears that the mass they are intending to use is probably in the range of about 25kg (it cannot be much larger for practical health reasons - not to mention the risk of tipping the light over when the mass is near the top), so someone has made a serious error as a mass of that size would only produce 4W of power for about 60 seconds.
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:
VBoxManage setextradata VMNAME "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1I shut down VirtualBox, opened a DOS window, changed directory to "C:\Program Files\Sun\xVM VirtualBox" and then issued the command replacing "VMNAME" with the name of my virtual machine. Then I restarted VirtualBox and continued the installation. This time the install completed properly. 
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. 
(5*365)*(5*365)/(4*(4-1)*7) = 39650 daysor about 108 years before you had 2 drives die within the 1 week replacement window and lost your data. Alternatively you might use each drive as a simple redundant copy of some data, so if you have 3 drives you put the same data on each, then once a month you check each to see if it is still fine (perhaps you put more data on it at that time as well), then using the same conservative 5 year MTBF you would have:
(5*365)**3/(3*(3-1)*(3-2)*(31)**2) = 1,054,178 daysor 2888 years before you had all three drives die within the same 1 month window and lost your data. So it looks like just putting your important data on two or three external hard drives which you periodically test and refresh should be safe enough, and the more copies you have then safer you will be. Of course, with multiple copies you can place some of them in off site storage which will help protect against fire, theft, flood and other catastrophes.