High Performance Python

Errata for High Performance Python

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.


Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted
PDF Page 97
2nd para

"Another nicety about organizing analysis this way is it allows us to do more expansive calculations easily, without having to rework large parts of the code." Here, "expansive calculations" sounds a bit weird to me. Maybe you actually meant "expensive"? If so, then I'm not sure that's really the point. In the case that, in fact, you meant something else, then I think that "expansive" is not a good term, because you contrast the calculation of something in chunks of 5 days versus a moving average of 1 day, and I can't really see how one is more *expansive* (but also *expensive*) of a calculation than another. Maybe put it like "it allows us to plug in different types of calculations easily", or something along these lines?

  Aug 11, 2014 
PDF Page 101
Figure 6-1

Vertical axis labels look crowded. Consider putting concentration tick marks at intervals of 0.25, rather than 0.2. It is nice, though, to be able to read the axes without having to squint.

dml  Jul 03, 2014 
PDF Page 106
last para before Example 6-4

",The global variable grid_shape designates" ... sentence starts with a comma.

Yury V. Zaytsev  Aug 12, 2014 
PDF Page 112
2nd para

"context-switches and CPU-migrations tell us about how the program was moved around on the motherboard." I'm not sure that this statement is fair, if by "motherboard" you actually mean a piece of computer hardware to which the components of the computer are attached. As you explain later in the text, "context-switch" happens when your application is pre-empted by the process scheduler, which might happen because it's no longer runnable, such as waiting for I/O or a sync operation to complete, or maybe (very often) just in order to ensure a fair distribution of CPU time among the processes with the same level of niceness. In any case, the program doesn't physically move around on the motherboard, and especially if it's being pre-empted due to exceeding its timeslice. In the case that a CPU-migration occurs, nothing really physically moves either, especially if it's a migration between logical CPUs, which might be different cores on one die, or even different hardware threads in one core. I would suggest to replace "motherboard" with something like "process scheduler queue", or otherwise reformulate this sentence to make it less inducing of unfair criticism :-)

  Aug 11, 2014 
PDF Page 139
1st para after "Using a C Compiler"

"Cython uses gcc; Shed Skin uses g++." This is technically not fully correct; Cython can output both C or C++ depending on your needs. You can select the right mode using a pragma, keyword argument or a command line option "language". Shed Skin, conversely, is only capable of generating C++ code (by design). Suggest to change this to something like "Cython will generate C code by default (with optional support for C++); Shed Skin is only able to produce C++ code." instead of focusing on compilers.

Yury V. Zaytsev  Aug 11, 2014