Book Reviews


[Day Permalink] Sunday, November 24, 2002

[Item Permalink] Writing a book -- Comment()
Matt Croydon::postneo points to an article about How Would You Write a Book? "This is how Graham Glass writes a book.  He makes it sound so easy, tho he's had a bit of experience."


[Item Permalink] The craft of benchmarking -- Comment()
My professional career started in my first real summer job, where I had to organize a course on vectorization. In a couple of weeks I had to learn how to optimize comptationally heavy codes for the vector processor attached to an IBM 3090 mainframe. In those days the RISC phenomenon had not yet really surfaced, Cray vector processors were the measure of supercomputing, and PC processors were considered to be unsuitable for heavy number crunching.

For several years, I had to teach and write about optimizing codes for a variety of platforms: a Cray X-MP (and later C90), a Convex 3800, an IBM SP (POWER3), a Cray T3E, a Compaq Alpha EV6 system, etc.

In a way, the vector processors were straightforward, because usually you had a big interleaved main memory, which you could regard as an large cache memory. With RISC architectures the picture was much more difficult. Of course, the compilers got better all the time, but always when a new architecture came to the market, the first compilers were quite inefficient.

In the final years of my career in code optimization (I moved to other topics about there years ago), I made a simple example in linear algebra to show the benefit of code optimization. I used this example in several user quides, where I wrote or edited the chapter on optimization. The example started with an unoptimized code, which produced about 1-4 megaflop/s (millions of floating-point operations per second). By several steps I finally arrived at the final version, which called machine-specific suproutine libraries. This code typically achieved 150-250 megaflop/s. Thus the final code was about 50-100 times faster than the original.

Nowadays I'm not keen on comparing the performance of systems, because often the speed is more dependent on the style of coding and the quality of the compiler than the actual speed of the processor. Sometimes a code developed originally for processor A performs really poorly on processor B.

In any case, there is not much point in making detailed benchmarks of current personal computers. The speed of the processor should be more that sufficient for most tasks. When the application feels slow, it is more often a matter of bad coding than lack of speed in the processor.


[Item Permalink] Getting feedback on your writing -- Comment()
When I first started to get my texts published, I was eager for feedback. But typically nothing happened. Nobody commented, and nobody gave any indication of reading the text. Later on, I might get indirect feedback, of the following kind: "I heard X saying that she wants to keep subscribing to the magazine because that Haatainen [sic!] writes there."

By the way, it may be a singularly Finnish trait that when giving positive feedback we tend to insult the recipient a bit. This way the recipient feels that you didn't offer you encouragement only because you wanted to be polite.

The weblog community differs in the way feedback is given and received. There is the referrals tracking mechanism. Also, it is customary to link to the original sources which make giving and receiving feedback an easy task.

Having immediate feedback on your writing (and your thoughts) encourages you to keep on writing. The feedback also helps in the creative process. In micropublishing like weblogs you don't have to publish a polished text, you can start with half-ready ideas and get feedback where to go from there. The weblog community is not individual writers fighting for the place on the printed page.

Once in a while I have received feedback which has helped me to improve as a writer. There have been the editors of books, journals and magazines. Sometimes a reader has contacted me for further advice, for example on Fortran programming, code optimization, or numerical methods. Sometimes I even have received corrections or suggestions for additional exercises for a book.

It seems easiest to comment on facts, not opinions. I have received almost no feedback on my opinion pieces, except from close friends. Perhaps this also is a Finnish trait?


[Item Permalink] Reviewing books -- Comment()
Springer has sent me several new books for review. I have brought four of them home for reading:
  • Valiente: Algorithms on Trees and Graphs
  • Calude: Information and Randomness (Second Edition)
  • Toth: Glimpses of Algebra and Geometry (Second Edition)
  • Assayag et al. (Ed.): Mathematics and Music
Of these, the best seems to be Valiente's book, which is a competent introduction to trees and graphs. Trees and graphs are standard topics in computer science, but Valiente's approach is a little more mathematical than the usual way. I have to see more carefully how well the book fits together. A colleague said that the book would make a good handbook for the subject.

The biggest disappoinment was the book on Mathematics and Music, which is a collection of diverse mathematical articles. Perhaps the book would be interesting to mathematicians who are also musicians. But the book lacks a coherence in approaching the topic, and it is not an introduction to the subject matter. I have tried to find a reviewer for this book, but without success so far.

During the last four years I have reviewed about 60 books in the Tietoyhteys magazine, where I have been editing the book review column. Most of the reviews have been written by me, although I have been fortunate to find a couple of colleagues interested in reviewing books. Writing a book review is never a straightforward task, but it can be very rewarding. Writing a review forces you to ask: Did I understand what the writer intended to say? Often you find that you didn't.


[Item Permalink] Blogs are an engine of addiction -- Comment()
John Hiler on Blogging and Media: "Blogs are very addictive; compared bloggers and those who read blogs to smokers and there were way more blog hands than smoker hands (one!). Blogs hold their own against a controlled substance that's addictive! [...] "Flow" is addictive; you lose all sense of time and self-consciousness. It's deeply addictive. Bloggers know this, but this gets lost when we talk to other people. Feedback is incredibly addictive. Everyone that blogs remembers the first time you got an email feedback (or the first comment posted to your site). [...] Gambling industry is built on this same addiction to feedback. It's the unpredictability of the response that is addictive. Blogging is an addiction, but it's a good addiction. Blogging is eating into bloggers other media habits, and bloggers are reading a lot more on the web. [...] Blogs are different from other media because it's the first form of addictive media that closes the loop. Not just consuming content, but you're also creating it as well. First media eco-system. Engine of addiction." [The Shifted Librarian]


[Item Permalink]  -- Comment()
Introduction to Web Services: "Apple has updated their Web Services documentation. It includes docs on sending XML-RPC and SOAP requests via Apple events (10.1) and via the WebServices framework (10.2)." [ranchero.com]


[Item Permalink]  -- Comment()
Second p0st points to Ecosystem ideas: "The ecosystem's been getting a lot of attention, due to Mark Pilgrim's new Recommended Reading application. Seb Paquet writes in today: 'How about making three sections instead of two: links to a weblog, links from a weblog, and reciprocal links (blogs that are both linked by a weblog and link to that weblog)?' That's a good idea. I'll think about doing this. BTW - anyone who thinks they should be on the ecosystem but can't find their blog, drop me a line. The crawler only looks at weblogs.com, so it misses rather a lot of blogs that should really be there."