February 2005

Kurlansky, Mark. Salt: A World History. New York: Penguin Books, 2002. ISBN 0-14-200161-9.
You may think this a dry topic, but the history of salt is a microcosm of the history of human civilisation. Carnivorous animals and human tribes of hunters get all the salt they need from the meat they eat. But as soon as humans adopted a sedentary agricultural lifestyle and domesticated animals, they and their livestock had an urgent need for salt—a cow requires ten times as much salt as a human. The collection and production of salt was a prerequisite for human settlements and, as an essential commodity required by every individual, the first to be taxed and regulated by that chronic affliction of civilisation, government. Salt taxes supported the Chinese empire for almost two millennia, the Viennese and Genoan trading empires and the Hanseatic League, precipitated the French Revolution and India's struggle for independence from the British empire. Salt was a strategic commodity in the Roman Empire: most Roman cities were built near saltworks, and the words “salary” and “soldier” are both derived from the Latin word for salt. This and much more is covered in this fascinating look at human civilisation through the crystals of a tasty and essential inorganic compound composed of two poisonous elements. Recipes for salty specialities of cultures around the world and across the centuries are included, along with recommendations for surviving that “surprisingly pleasant” Swedish speciality surströmming (p. 139): “The only remaining problem is how to get the smell out of the house…”.


Kopparapu, Chandra. Load Balancing Servers, Firewalls, and Caches. New York: John Wiley & Sons, 2002. ISBN 0-471-41550-2.
Don't even think about deploying a server farm or geographically dispersed mirror sites without reading this authoritative book. The Internet has become such a mountain of interconnected kludges that something as conceptually simple as spreading Web and other Internet traffic across a collection of independent servers or sites in the interest of increased performance and fault tolerance becomes a matter of enormous subtlety and hideous complexity. Most of the problems come from the need for “session persistence”: when a new user arrives at your site, you can direct them to any available server based on whatever load balancing algorithm you choose, but if the user's interaction with the server involves dynamically generated content produced by the server (for example, images generated by Earth and Moon Viewer, or items the user places in their shopping cart at a commerce site), subsequent requests by the user must be directed to the same server, as only it contains the state of the user's session.

(Some load balancer vendors will try to persuade you that session persistence is a design flaw in your Web applications which you should eliminate by making them stateless or by using a common storage pool shared by all the servers. Don't believe this. I defy you to figure out how an application as simple as Earth and Moon Viewer, which does nothing more complicated than returning a custom Web page which contains a dynamically generated embedded image, can be made stateless. And shared backing store [for example, Network Attached Storage servers] has its own scalability and fault tolerance challenges.)

Almost any simple scheme you can come up with to get around the session persistence problem will be torpedoed by one or more of the kludges and hacks through which a user's packet traverses between client and server: NAT, firewalls, proxy servers, content caches, etc. Consider what at first appears to be a foolproof scheme (albeit sub-optimal for load distribution): simply hash the client's IP address into a set of bins, one for each server, and direct the packets accordingly. Certainly, that would work, right? Wrong: huge ISPs such as AOL and EarthLink have farms of proxy servers between their customers and the sites they contact, and these proxy servers are themselves load balanced in a non-persistent manner. So even two TCP connections from the same browser retrieving, say, the text and an image from a single Web page, may arrive at your site apparently originating from different IP addresses!

This and dozens of other gotchas and ways to work around them are described in detail in this valuable book, which is entirely vendor-neutral, except for occasionally mentioning products to illustrate different kinds of architectures. It's a lot better to slap your forehead every few pages as you discover something else you didn't think of which will sabotage your best-laid plans than pull your hair out later after putting a clever and costly scheme into production and discovering that it doesn't work. When I started reading this book, I had no idea how I was going to solve the load balancing problem for the Fourmilab site, and now I know precisely how I'm going to proceed. This isn't a book you read for entertainment, but if you need to know this stuff, it's a great place to learn it.


Smith, Edward E. First Lensman. Baltimore: Old Earth Books, [1950] 1997. ISBN 1-882968-10-7.
There's no better way to escape for a brief respite from the world of session persistence, subnet masks, stateful fallover, gratuitous ARP packets, and the like than some coruscating, actinic space opera, and nobody does it better than the guy who invented it, Doc Smith. About every decade I re-read the Lensman series, of which this is the second of six volumes (seven if you count Masters of the Vortex) and never cease to be amazed at Smith's talent for thinking big—really big. I began this fourth expedition through the Lensman saga with the first installment, Triplanetary, in June 2004. Old Earth Books are to be commended for this reprint, which is a facsimile of the original 1950 Fantasy Press edition including all the illustrations.


Roosevelt, Theodore. The Rough Riders. Philadelphia: Pavilion Press, [1899] 2004. ISBN 1-4145-0492-6.
This is probably, by present-day standards, the most politically incorrect book ever written by a United States President. The fact that it was published and became a best-seller before his election as Vice President in 1900 and President in 1904 indicates how different the world was in the age in which Theodore Roosevelt lived and helped define. T.R. was no chicken-hawk. After advocating war with Spain as assistant secretary of the Navy in the McKinley administration, as war approached, he left his desk job in Washington to raise a volunteer regiment from the rough and ready horse- and riflemen of his beloved Wild West, along with number of his fellow Ivy Leaguers hungry for a piece of the action. This book chronicles his adventures in raising, equipping, and training the regiment, and its combat exploits in Cuba in 1898. The prose is pure T.R. passionate purple; it was rumoured that when the book was originally typeset the publisher had to send out for more copies of the upper-case letter “I”. Almost every page contains some remark or other which would end the career of what passes for politicians in today's pale, emasculated world. What an age. What a man! The bloodthirsty warrior who wrote this book would go on to win the Nobel Peace Prize in 1906 for brokering an end to the war between Russia and Japan.

This paperback edition from Pavilion Press is a sorry thing physically. The text reads like something that's been OCR scanned and never spelling checked or proofread—on p. 171, for example, “antagonists” is printed as “antagon1sts”, and this is one of many such errors. There's no excuse for this at all, since there's an electronic text edition of The Rough Riders freely available from Project Gutenberg which is free of these errors, and an on-line edition which lacks these flaws. The cover photo of T.R. on his horse is a blow-up of a low-resolution JPEG image with obvious pixels and compression artefacts.

Roosevelt's report to his commanding general (pp. 163–170) detailing the logistical and administrative screwups in the campaign is an excellent illustration of the maxim that the one area in which government far surpasses the capabilities of free enterprise is in the making of messes.


Sullivan, Scott P. Virtual LM. Burlington, Canada: Apogee Books, 2004. ISBN 1-894959-14-0.
I closed my comments about the author's earlier Virtual Apollo (July 2004) expressing my hope he would extend the project to the Lunar Module (LM). Well, here it is! These books are based on intricate computer solid models created by Sullivan from extensive research, then rendered to show how subsystems fit into the tightly-packed and weight-constrained spacecraft. The differences between the initial “H mission” modules (Apollo 9–14) and the extended stay “J mission” landers of Apollo 15–17 are shown in comparison renderings. In addition, the Lunar Roving Vehicle (moon buggy) used on the J missions is dissected in the same manner as the LM, along with the life support backpack worn by astronauts on the lunar surface. Nothing about the Lunar Module was simple, and no gory detail is overlooked in this book—there are eight pages (40–47) devoted to the door of the scientific equipment bay and the Rube Goldberg-like mechanism used to open it.

Sadly, like Virtual Apollo, this modeling and rendering labour of love is marred by numerous typographical errors in text and captions. From the point where I started counting, I noted 25, which is an unenviable accomplishment in a 250 page book which is mostly pictures. A companion CD-ROM includes the Apollo Operations Handbook, Lunar Module flight documents from Apollo 14–16, and photographs of the LM simulator and test article.


Kuhns, Elizabeth. The Habit. New York: Doubleday, 2003. ISBN 0-385-50588-4.
For decades I've been interested in and worried about how well-intentioned “modernisations” might interrupt the chain of transmission of information and experience between generations and damage, potentially mortally, the very institutions modernisers were attempting to adapt to changing circumstances. Perhaps my concern with this somewhat gloomy topic stems from having endured both “new math” in high school and “new chemistry” in college, in both cases having to later re-learn the subject matter in the traditional way which enables one to, you know, actually solve problems.

Now that the radicals left over from the boomer generation are teachers and professors, we're into the second or third generation of a feedback cycle in which students either never learn the history of their own cultures or are taught contempt and hatred for it. The dearth of young people in the United States and U.K. who know how to think and have the factual framework from which to reason (or are aware what they don't know and how to find it out) is such that I worry about a runaway collapse of Western civilisation there. The very fact that it's impolitic to even raise such an issue in most of academia today only highlights how dire the situation is. (In continental Europe the cultural and educational situation is nowhere near as bad, but given that the population is aging and dying out it hardly matters. I read a prediction a couple of weeks ago that, absent immigration or change in fertility, the population of Switzerland, now more than seven million, could fall to about one million before the end of this century, and much the same situation obtains elsewhere in Europe. There is no precedent in human history for this kind of population collapse unprovoked by disaster, disease, or war.)

When pondering “macro, macro” issues like this, it's often useful to identify a micro-model to serve as a canary in the mineshaft for large-scale problems ahead. In 1965, the Second Vatican Council promulgated a top to bottom modernisation of the Roman Catholic Church. In that same year, there were around 180,000 Catholic nuns in the U.S.—an all time historical high—whose lifestyle, strongly steeped in tradition, began to immediately change in many ways far beyond the clothes they wore. Increasingly, orders opted for increasing invisibility—blending into the secular community. The result: an almost immediate collapse in their numbers, which has continued to the present day (graph). Today, there are only about 70,000 left, and with a mean age of 69, their numbers are sure to erode further in the future. Now, it's impossible to separate the consequences of modernisation of tradition from those of social changes in society at large, but it gives one pause to see an institution which, as this book vividly describes, has tenaciously survived two millennia of rising and falling empires, war, plague, persecution, inquisition, famine, migration, reformation and counter-reformation, disappearing like a puff of smoke within the space of one human lifetime. It makes you wonder about how resilient other, far more recent, components of our culture may be in the face of changes which discard the experience and wisdom of the past.

A paperback edition is scheduled for publication in April 2005.


Purdy, Gregor N. Linux iptables Pocket Reference. Sebastopol, CA: O'Reilly, 2004. ISBN 0-596-00569-5.
Sure, you could just read the manual pages, but when your site is under attack and you're the “first responder”, this little book is just what you want in your sweaty fingers. It's also a handy reference to the fields in IP, TCP, UDP, and ICMP packets, which can be useful in interpreting packet dumps. Although intended as a reference, it's well worth taking the time (less than an hour) to read cover to cover. There are a number of very nice facilities in iptables/Netfilter which permit responding to common attacks. For example, the iplimit match allows blocking traffic from the bozone layer (yes, you—I know who you are and I know where you live) which ties up all of your HTTP server processes by connecting to them and then letting them time out or, slightly more sophisticated, feeding characters of a request every 20 seconds or so to keep it alive. The solution is:
    /sbin/iptables -A INPUT -p tcp --syn --dport 80 -m iplimit \
    	--iplimit-above 20 --iplimit-mask 32 -j REJECT
Anybody who tries to open more than 20 connections will get whacked on each additional SYN packet. You can see whether this rule is affecting too many legitimate connections with the status query:
    /sbin/iptables -L -v
Geekly reading, to be sure, but just the thing if you're responsible for defending an Internet server or site from malefactors in the Internet Slum.


Satrapi, Marjane. Persepolis 2: The Story of a Return. New York: Pantheon Books, [2002, 2003] 2004. ISBN 0-375-42288-9.
Having escaped from Iran in the middle of Iran/Iraq war to secular, decadent Austria, Marjane Satrapi picks up her comic book autobiography with the culture shock of encountering the amoral West. It ends badly. She returns to Tehran in search of her culture, and finds she doesn't fit there either, eventually abandoning a failed marriage to escape to the West, where she has since prospered as an author and illustrator. This intensely personal narrative brings home both why the West is hated in much of the world, and why, at the same time, so many people dream of escaping the tyranny of dull conformity for the light of liberty and reason in the West. Like Persepolis: The Story of a Childhood (November 2004), this is a re-lettered English translation of the original French edition published in two volumes: (3, 4).


Bragg, Melvyn. The Adventure of English. London: Sceptre, 2003. ISBN 0-340-82993-1.
How did a language spoken by 150,000 or so Germanic warriors who invaded the British Isles in the fifth century A.D. become the closest thing so far to a global language, dominating the worlds of science and commerce which so define the modern age? Melvyn Bragg, who earlier produced a television series (which I haven't seen) with the same name for the British ITV network follows the same outline in this history of English. The tremendous contingency in the evolution of a language is much to be seen here: had Shakespeare, Dr. Johnson, or William Tyndale (who first translated the Bible into English and paid with his life for having done so) died in infancy, how would we speak today, and in what culture would we live? The assembly of the enormous vocabulary of English by devouring words from dozens of other languages is well documented, as well as the differentiation of British English into distinct American, Caribbean, Australian, South African, Indian, and other variants which enrich the mother tongue with both vocabulary and grammar. Fair dinkum, innit man?

As English has grown by accretion, it has also cast out a multitude of words into the “Obs.” bin of the OED, many in the “Inkhorn Controversy” in the 16th century. What a loss! The more words, the richer the language, and I hereby urge we reinstate “abstergify”, last cited in the OED in 1612, defined as the verb “To cleanse”. I propose this word to mean “to clean up, æsthetically, without any change in function”. For example, “I spent all day abstergifying the configuration files for the Web server”.

The mystery of why such an ill-structured language with an almost anti-phonetic spelling should have become so widespread is discussed here only on the margin, often in apologetic terms invoking the guilt of slavery and colonialism. (But speakers of other languages pioneered these institutions, so why didn't they triumph?) Bragg suggests, almost in passing, what I think is very significant. The very irregularity of English permits it to assimilate the vocabulary of every language it encounters. In Greek, Latin, Spanish, or French, there are rules about the form of verbs and the endings of nouns and agreement of adjectives which cannot accommodate words from fundamentally different languages. But in English, there are no rules whatsoever—bring your own vocabulary—there's room for everybody and every word. Come on in, it's great—the more the better!

A U.S edition is now available, but as of this date only in hardcover.