« January 2007 | Main | March 2007 »

Wednesday, February 28, 2007

Reading List: Investigations

Kauffman, Stuart A. Investigations. New York: Oxford University Press, 2000. ISBN 0-19-512105-8.
Few people have thought as long and as hard about the origin of life and the emergence of complexity in a biosphere as Stuart Kauffman. Medical doctor, geneticist, professor of biochemistry and biophysics, MacArthur Fellow, and member of the faculty of the Santa Fe Institute for a decade, he has sought to discover the principles which might underlie a “general biology”—the laws which would govern any biosphere, whether terrestrial, extraterrestrial, or simulated within a computer, regardless of its physical substrate.

This book, which he describes on occasion as “protoscience”, provides an overview of the principles he suspects, but cannot prove, may underlie all forms of life, and beyond that systems in general which are far from equilibrium such as a modern technological economy and the universe itself. Most of science before the middle of the twentieth century studied complex systems at or near equilibrium; only at such states could the simplifying assumptions of statistical mechanics be applied to render the problem tractable. With computers, however, we can now begin to explore open systems (albeit far smaller than those in nature) which are far from equilibrium, have dynamic flows of energy and material, and do not necessarily evolve toward a state of maximum entropy.

Kauffman believes there may be what amounts to a fourth law of thermodynamics which applies to such systems and, although we don't know enough to state it precisely, he suspects it may be that these open, extremely nonergodic, systems evolve as rapidly as possible to expand and fill their state space and that unlike, say, a gas in a closed volume or the stars in a galaxy, where the complete state space can be specified in advance (that is, the dimensionality of the space, not the precise position and momentum values of every object within it), the state space of a non-equilibrium system cannot be prestated because its very evolution expands the state space. The presence of autonomous agents introduces another level of complexity and creativity, as evolution drives the agents to greater and greater diversity and complexity to better adapt to the ever-shifting fitness landscape.

These are complicated and deep issues, and this is a very difficult book, although appearing, at first glance, to be written for a popular audience. I seriously doubt whether somebody who was not previously acquainted with these topics and thought about them at some length will make it to the end and, even if they do, take much away from the book. Those who are comfortable with the laws of thermodynamics, the genetic code, protein chemistry, catalysis, autocatalytic networks, Carnot cycles, fitness landscapes, hill-climbing strategies, the no-go theorem, error catastrophes, self-organisation, percolation phase transitions in graphs, and other technical issues raised in the arguments must still confront the author's prose style. It seems like Kauffman aspires to be a prose stylist conveying a sense of wonder to his readers along the lines of Carl Sagan and Stephen Jay Gould. Unfortunately, he doesn't pull it off as well, and the reader must wade through numerous paragraphs like the following from pp. 97–98:

Does it always take work to construct constraints? No, as we will soon see. Does it often take work to construct constraints? Yes. In those cases, the work done to construct constraints is, in fact, another coupling of spontaneous and nonspontaneous processes. But this is just what we are suggesting must occur in autonomous agents. In the universe as a whole, exploding from the big bang into this vast diversity, are many of the constraints on the release of energy that have formed due to a linking of spontaneous and nonspontaneous processes? Yes. What might this be about? I'll say it again. The universe is full of sources of energy. Nonequilibrium processes and structures of increasing diversity and complexity arise that constitute sources of energy that measure, detect, and capture those sources of energy, build new structures that constitute constraints on the release of energy, and hence drive nonspontaneous processes to create more such diversifying and novel processes, structures, and energy sources.
I have not cherry-picked this passage; there are hundreds of others like it. Given the complexity of the technical material and the difficulty of the concepts being explained, it seems to me that the straightforward, unaffected Point A to Point B style of explanation which Isaac Asimov employed would work much better. Pardon my audacity, but allow me to rewrite the above paragraph.
Autonomous agents require energy, and the universe is full of sources of energy. But in order to do work, they require energy to be released under constraints. Some constraints are natural, but others are constructed by autonomous agents which must do work to build novel constraints. A new constraint, once built, provides access to new sources of energy, which can be exploited by new agents, contributing to an ever growing diversity and complexity of agents, constraints, and sources of energy.
Which is better? I rewrite; you decide. The tone of the prose is all over the place. In one paragraph he's talking about Tomasina the trilobite (p. 129) and Gertrude the ugly squirrel (p. 131), then the next thing you know it's “Here, the hexamer is simplified to 3'CCCGGG5', and the two complementary trimers are 5'GGG3' + 5'CCC3'. Left to its own devices, this reaction is exergonic and, in the presence of excess trimers compared to the equilibrium ratio of hexamer to trimers, will flow exergonically toward equilibrium by synthesizing the hexamer.” (p. 64). This flipping back and forth between colloquial and scholarly voices leads to a kind of comprehensional kinetosis. There are a few typographical errors, none serious, but I have to share this delightful one-sentence paragraph from p. 254 (ellipsis in the original):
By iteration, we can construct a graph connecting the founder spin network with its 1-Pachner move “descendants,” 2-Pachner move descendints…N-Pachner move descendents.
Good grief—is Oxford University Press outsourcing their copy editing to Slashdot?

For the reasons given above, I found this a difficult read. But it is an important book, bristling with ideas which will get you looking at the big questions in a different way, and speculating, along with the author, that there may be some profound scientific insights which science has overlooked to date sitting right before our eyes—in the biosphere, the economy, and this fantastically complicated universe which seems to have emerged somehow from a near-thermalised big bang. While Kauffman is the first to admit that these are hypotheses and speculations, not science, they are eminently testable by straightforward scientific investigation, and there is every reason to believe that if there are, indeed, general laws that govern these phenomena, we will begin to glimpse them in the next few decades. If you're interested in these matters, this is a book you shouldn't miss, but be aware what you're getting into when you undertake to read it.

Posted at 00:14 Permalink

Tuesday, February 27, 2007

Lignières and the Alps Posted

For about ten years, I've wanted to make a panoramic photograph of Fourmilab's home village of Lignières on one of those exceptional days when you can see all the way across the Swiss plateau to the Alps, and the Alps are not shrouded in clouds, then annotate the image to identify the principal mountain peaks visible on the horizon. The afternoon of February 16th, 2007 wasn't a perfect day for such a photo, but it's the best I recall in a long time, and on this occasion I had all of the photo gear and software tools readily at hand to shoot a set of overlapping images and assemble them into a seamless panorama. Lignières and the Alps presents the resulting 24 megapixel panorama, which can be viewed with and without legends, and as a one-third scale reduction which doesn't take so long to download. The process used to produce the panorama is described in detail, complete with links to the free software tools used to assemble and process it for those interesting in experimenting with digitally assembled panoramas of their own.

Posted at 20:19 Permalink

Tuesday, February 20, 2007

Nova Scorpii 2007 Spotted

Nova Scorpii 2007

Just before dawn I managed to observe and photograph the nova in Scorpius (V1280 Scorpii), the brightest since Nova Cygni in 1975. At its brightest, on Friday the 16th, it was about magnitude 3.9, but it has since faded to around magnitude 4.5. Given that it's low on the horizon at Fourmilab's latitude (here's a horizon view at the moment the above picture was taken, courtesy of Your Sky) where haze and light pollution interfere with observation, I was unable to spot the nova with the unaided eye but it was an easy binocular object and I managed to capture it in the photo above which, while far from great, at least unambiguously shows the nova. Click the photo to show a 1600 pixel wide crop from the original frame without the legends.

The photo was taken at 05:02 UTC on 2007-02-20 with a Nikon D200 camera and 28–200 mm zoom lens at 28 mm (equivalent to 42 mm on a 24×36 mm film camera). Exposure was 10 seconds at f/3.5 with ISO 1600 sensitivity. The image has been contrast stretched but not otherwise modified apart from the addition of the annotations.

Posted at 15:30 Permalink

Monday, February 19, 2007

Running UBS Pay Banking Software on Linux

(This is one of those highly-specific postings I make here from time to time which few regular readers may find of interest. Consider it a “memo to file” for my own reference the next time the issue comes up, and notes for those rare people interested in the topic who may find it with a search engine.)

Ever since 1999, I have used my bank's UBS Pay software to enter and transmit payment orders to their e-banking service. Orders can be accumulated and transmitted in batches, and scheduled either for immediate execution or at a specified date up to three months in the future. In addition to payments within Switzerland, international bank wires through the SWIFT and ABA systems can be entered, as well as transfers between accounts in different currencies. A database of previously entered payments provides a complete archive as well as serving as a template for further payments to the same recipient. Dual factor authentication using a password calculator and a one-time challenge-response login process provides additional security.

The only irritation is that the the UBS Pay client program runs only under Microsoft Windows. Now my main development machine is configured to dual-boot into Windows XP as well as Fedora Linux (I upgraded the machine to Fedora Core 6 over the holidays), but it's annoying to have to reboot into Windows just to pay a few bills, so for the last few years I've been using a copy of UBS Pay installed on a legacy Windows 98 machine which I use to run various hardware (for example, the Nikon film scanner) for which Linux drivers are unavailable. That's workable, but it still means I have to use a different machine whenever I want to pay bills, and that I can't easily consult payment records when working on my development system and don't have access to them at all when on the road.

I had last tried “Wine” (an implementation of the Windows API which runs on x86-based Unix-like systems) a few years ago and found it, while basically functional, unable to run most of the applications I was actually interesting in using. Over the last year I'd heard from a variety of sources that it had gotten much better in its ability to support nontrivial applications (although much of the focus appeared to be on games), so I decided to see whether it would allow me to run UBS Pay on Linux. I installed the following packages from the Fedora Extras repository:

    wine-0.9.30-1.fc6
    wine-capi-0.9.30-1.fc6
    wine-cms-0.9.30-1.fc6
    wine-core-0.9.30-1.fc6
    wine-docs-0.9.31-1.fc6
    wine-esd-0.9.30-1.fc6
    wine-jack-0.9.30-1.fc6
    wine-ldap-0.9.30-1.fc6
    wine-nas-0.9.30-1.fc6
    wine-tools-0.9.30-1.fc6
    wine-twain-0.9.30-1.fc6
After some preliminary testing (yes, most of my Windows screen savers worked), I then downloaded a current copy of the UBS Pay Installer (which I verified was the same version I was currently using on the Windows 98 machine) and ran the installer with:
    wine ubspay32.exe
which went through the installation process, placing the files in the
    '.wine/drive_c/Program Files/UBS e-banking'
directory tree under my home directory. Upon launching the program with:
    cd $HOME'/.wine/drive_c/Program Files/UBS e-banking/UBSPay'
    wine UBSPay.exe
(of course, I made a shell script to do this), it came up with an empty database and default settings. I entered the settings for my account (I probably could have copied them, but it was easier to simply re-specify them than figure out how to transfer them from the other machine) and quit the application.

Now, I wanted to transfer all of the database entries from the previous installation to the Wine virtual C drive. Fortunately, I had previously migrated UBS Pay from a machine I'd retired and had noted where it kept the database, which turns out to be in a directory named “MANDANT” within the program installation directory (note that Windows file names are not case sensitive, so this may be “mandant”, “Mandant”, or some even more obscure variant when you scrutinise it on an adult operating system). Anyway, I zipped up a copy of this directory on the old machine, extracted it into a new directory on the development machine, and renamed that directory as “MANDANT”, after deleting the directory tree with that name created by the installer.

All that was left was to test it and, hey, it worked! I was able to access the database, enter payment orders, transmit them to the bank, and receive confirmations right from my Linux desktop without ever blotting my notebook (computer) with a Microsoft product. I've used it for a variety of transactions over the last week, and haven't had any serious problems, so as long as this happy circumstance obtains, I plan to go on running UBS Pay under Wine on Linux. There are a few little things which seem amiss—for example, if you're in the “amount” field and hit the Tab key, nothing happens; in the Windows version you're taken to the Communications box for a pink form or to the Reference number field on an orange form. But these are minor quibbles; the ability to use this handy application on a competently implemented operating system is an indication of the growing maturity of Wine. And, after all, as Jacques Perrin sagely observed, wine is one of the rare things in our entropic environment which improves with age. So, I suppose it's only fittin'.

Posted at 22:25 Permalink

Monday, February 12, 2007

Reading List: King of Infinite Space

Roberts, Siobhan. King of Infinite Space. New York: Walker and Company, 2006. ISBN 0-8027-1499-4.
Mathematics is often said to be a game for the young. The Fields Medal, the most prestigious prize in mathematics, is restricted to candidates 40 years or younger. While many older mathematicians continue to make important contributions in writing books, teaching, administration, and organising and systematising topics, most work on the cutting edge is done by those in their twenties and thirties. The life and career of Donald Coxeter (1907–2003), the subject of this superb biography, is a stunning and inspiring counter-example. Coxeter's publications (all of which are listed in an appendix to this book) span a period of eighty years, with the last, a novel proof of Beecroft's theorem, completed just a few days before his death.

Coxeter was one of the last generation to be trained in classical geometry, and he continued to do original work and make striking discoveries in that field for decades after most other mathematicians had abandoned it as mined out or insufficiently rigorous, and it had disappeared from the curriculum not only at the university level but, to a great extent, in secondary schools as well. Coxeter worked in an intuitive, visual style, frequently making models, kaleidoscopes, and enriching his publications with numerous diagrams. Over the many decades his career spanned, mathematical research (at least in the West) seemed to be climbing an endless stairway toward ever greater abstraction and formalism, epitomised in the work of the Bourbaki group. (When the unthinkable happened and a diagram was included in a Bourbaki book, fittingly it was a Coxeter diagram.) Coxeter inspired an increasingly fervent group of followers who preferred to discover new structures and symmetry using the mind's powers of visualisation. Some, including Douglas Hofstadter (who contributed the foreword to this work) and John Horton Conway (who figures prominently in the text) were inspired by Coxeter to carry on his legacy. Coxeter's interactions with M. C. Escher and Buckminster Fuller are explored in two chapters, and illustrate how the purest of mathematics can both inspire and be enriched by art and architecture (or whatever it was that Fuller did, which Coxeter himself wasn't too sure about—on one occasion he walked out of a new-agey Fuller lecture, noting in his diary “Out, disgusted, after ¾ hour” [p. 178]).

When the “new math” craze took hold in the 1960s, Coxeter immediately saw it for the disaster it was to be become and involved himself in efforts to preserve the intuitive and visual in mathematics education. Unfortunately, the power of a fad promoted by purists is difficult to counter, and a generation and more paid the price of which Coxeter warned. There is an excellent discussion at the end of chapter 9 of the interplay between the intuitive and formalist approaches to mathematics. Many modern mathematicians seem to have forgotten that one proves theorems in order to demonstrate that the insights obtained by intuition are correct. Intuition without rigour can lead to error, but rigour without intuition can blind one to beautiful discoveries in the mathematical objects which stand behind the austere symbols on paper.

The main text of this 400 page book is only 257 pages. Eight appendices expand upon technical topics ranging from phyllotaxis to the quilting of toilet paper and include a complete bibliography of Coxeter's publications. (If you're intrigued by “Morley's Miracle”, a novel discovery in the plane geometry of triangles made as late as 1899, check out this page and Java applet which lets you play with it interactively. Curiously, a diagram of Morley's theorem appears on the cover of Coxeter's and Greitzer's Geometry Revisited, but is misdrawn—the trisectors are inexact and the inner triangle is therefore not equilateral.) Almost 90 pages of endnotes provide both source citations (including Web links to MathWorld for technical terms and the University of St. Andrews biographical archive for mathematicians named in the text) and detailed amplification of numerous details. There are a few typos and factual errors (for example, on p. 101 the planets Uranus and Pluto are said to have been discovered in the nineteenth century when, in fact, neither was: Herschel discovered Uranus in 1781 and Tombaugh Pluto in 1930), but none are central to the topic nor detract from this rewarding biography of an admirable and important mathematician.

Posted at 22:57 Permalink

Wednesday, February 7, 2007

Fouined Again!

When last I wrote of an encounter with a fouine (Martes foina), I mentioned their proclivity for chowing down on the ignition wires and rubber hoses of automobile engines, and that Fourmilab vehicles had been “fouined” three times.

Well, make that four.

On my last mission in shuttle craft Bernoulli, it just didn't seem to have the usual pep and really struggled when climbing out of a gravity well. After shutdown, I noticed the distinct odor of unreacted propellant around the stern. Inspection of the engine room revealed the obvious and usual cause for these symptoms: firing on three cylinders courtesy of a fouine! Note that the circled ignition wire in the picture to the right (which you can click to enlarge) ends several centimetres short of the spark plug, the missing part having served as a gourmet snack for some mustelid malefactor. I will hook up the severed end of the cable to the spark plug with Barney clips and proceed to Shuttlebay トヨタ for a new distributor cap and ignition wire set (since they are cleverly engineered as a single piece which must be replaced as a unit). And I'll probably pick up another can of fouine repellent (for all the good it does), as the one on the shelf is nearly empty.

Update: In the original posting of this item I erroneously stated that the distributor cap and ignition wires were a single unit which had to be replaced in its entirety. In fact, the ignition wires can be detached. The gotcha is that you can't buy original equipment replacement wires individually—only as a harness of four wires. When you get “fouined” it's wise to save any intact wires for subsequent repairs, and I had done so. Naturally, the darling furry gnaw-monster invariably severs the longest wire of the harness, so none of the ones you have on the shelf are long enough. (2007-02-15 17:10 UTC).

Posted at 00:45 Permalink

Tuesday, February 6, 2007

Bulk Validator Posted

For some time, I have been using a Perl program of my own devising to automate the process of submitting collections of Web pages (for example, all the documents which comprise this chronicle, or the growing collection of Lignières Then and Now photographs) for validation by the World Wide Web Consortium's Markup Validation Service. The program was a crude hack I threw together to get the job done, and relied on having the documents it validated accessible both from the local file system and externally over the Web, which prevented it from being used on projects under development that you don't want to make visible to the public.

I have just posted the initial release of BulkValidator, a domesticated version which remedies the shortcomings of the in-house edition and should work for any Perl installation on a Unix-like system with the required modules installed. Files are validated from the local file system, and recursive validation of all HTML/XHTML files in a directory tree is possible. Error reports for files which fail validation are saved in a “discrepancies” directory whence they can be examined in order to fix the problems found by the validator. I am not aware of any reason this program should not work on a Cygwin installation with the find utility installed, but I have not tested it and am not interested in doing so, although patches to remedy any compatibility problems on Cygwin or other systems are, of course, welcome.

Posted at 17:32 Permalink

Monday, February 5, 2007

Big Frigo, Small Car

Car with refrigerator through the sunroof Today, when I visited the centre commercial to attend to various errands I espied, whilst walking through the parking garage to the entrance, a couple who had obviously just purchased a new refrigerator and had now realised it was much too big to fit in the back of their hatchback automobile. They seemed to be discussing the matter, looking back and forth between the fridge and the car. I gave it no more thought until I was heading back to my car and discovered that while I was busy inside, somebody had had one of those geometrical eureka moments and solved the problem, as illustrated to the right.

About half of the fridge is sticking out of the sunroof. It's leaning forward because the portion inside has to slant backward to clear the front seats. Yes, this is a crummy picture—it's from the 640×480 pixel camera of my mobile phone, and there wasn't a vantage point from which I could avoid the hideous backlighting.

It seems there's something about refrigerators that inspires people to embark upon interesting adventures.

Posted at 20:34 Permalink

Saturday, February 3, 2007

Reading List: Five Days in London

Lukacs, John. Five Days in London. New Haven, CT: Yale University Press, 1999. ISBN 0-300-08466-8.
Winston Churchill titled the fourth volume of his memoirs of The Second World War, describing the events of 1942, The Hinge of Fate. Certainly, in the military sense, it was in that year that the tide turned in favour of the allies—the entry of the United States into the war and the Japanese defeat in the Battle of Midway, Germany's failure at Stalingrad and the beginning of the disastrous consequences for the German army, and British defeat of Rommel's army at El Alamein together marked what Churchill described as, “…not the end, nor is it even the beginning of the end, but, it is perhaps, the end of the beginning.”

But in this book, distinguished historian John Lukacs argues that the true “hinge of fate” not only of World War II, but for Western civilisation against Nazi tyranny, occurred in the five days of 24–28 May of 1940, not on the battlefields in France, but in London, around conference tables, in lunch and dinner meetings, and walks in the garden. This was a period of unmitigated, accelerating disaster for the French army and the British Expeditionary Force in France: the channel ports of Boulogne and Calais fell to the Germans, the King of Belgium capitulated to the Nazis, and more than three hundred thousand British and French troops were surrounded at Dunkirk, the last channel port still in Allied hands. Despite plans for an evacuation, as late as May 28, Churchill estimated that at most about 50,000 could be evacuated, with all the rest taken prisoner and all the military equipment lost. In his statement in the House of Commons that day, he said, “Meanwhile, the House should prepare itself for hard and heavy tidings.” It was only in the subsequent days that the near-miraculous evacuation was accomplished, with a total of 338,226 soldiers rescued by June 3rd.

And yet it was in these darkest of days that Churchill vowed that Britain would fight on, alone if necessary (which seemed increasingly probable), to the very end, whatever the cost or consequences. On May 31st, he told French premier Paul Reynaud, “It would be better far that the civilisation of Western Europe with all of its achievements should come to a tragic but splendid end than that the two great democracies should linger on, stripped of all that made life worth living.” (p. 217).

From Churchill's memoirs and those of other senior British officials, contemporary newspapers, and most historical accounts of the period, one gains the impression of a Britain unified in grim resolve behind Churchill to fight on until ultimate victory or annihilation. But what actually happened in those crucial War Cabinet meetings as the disaster in France was unfolding? Oddly, the memoirs and collected papers of the participants are nearly silent on the period, with the author describing the latter as having been “weeded” after the fact. It was not until the minutes of the crucial cabinet meetings were declassified in 1970 (thanks to a decision by the British government to reduce the “closed period” of such records from fifty to thirty years), that it became possible to reconstruct what transpired there. This book recounts a dramatic and fateful struggle of which the public and earlier historians of the period were completely unaware—a moment when Hitler may have come closer to winning the war than at any other.

The War Cabinet was, in fact, deeply divided. Churchill, who had only been Prime Minister for two weeks, was in a precarious position, with his predecessor Neville Chamberlain and the Foreign Secretary Lord Halifax, who King George VI had preferred to Churchill for Prime Minister as members, along with Labour leaders Clement Attlee and Arthur Greenwood. Halifax did not believe that Britain could resist alone, and that fighting on would surely result in the loss of the Empire and perhaps independence and liberty in Britain as well. He argued vehemently for an approach, either by Britain and France together or Britain alone, to Mussolini, with the goal of keeping Italy out of the war and making some kind of deal with Hitler which would preserve independence and the Empire, and he met on several occasions with the Italian ambassador in London to explore such possibilities.

Churchill opposed any effort to seek mediation, either by Mussolini or Roosevelt, both because he thought the chances of obtaining acceptable terms from Hitler were “a thousand to one against” (May 28, p. 183) and because any approach would put Britain on a “slippery slope” (Churchill's words in the same meeting) from which it would be impossible to restore the resolution to fight rather than make catastrophic concessions. But this was a pragmatic decision, not a Churchillian declaration of “never, never, never, never”. In the May 26 War Cabinet meeting (p. 113), Churchill made the rather astonishing statement that he “would be thankful to get out of our present difficulties on such terms, provided we retained the essentials and the elements of our vital strength, even at the cost of some territory”. One can understand why the personal papers of the principals were so carefully weeded.

Speaking of another conflict where the destiny of Europe hung in the balance, the Duke of Wellington said of Waterloo that it was “the nearest run thing you ever saw in your life”. This account makes it clear that this moment in history was much the same. It is, of course, impossible to forecast what the consequences would have been had Halifax prevailed and Britain approached Mussolini to broker a deal with Hitler. The author argues forcefully that nothing less than the fate of Western civilisation was at stake. With so many “what ifs”, one can never know. (For example, it appears that Mussolini had already decided by this date to enter the war and he might have simply rejected a British approach.) But in any case this fascinating, thoroughly documented, and lucidly written account of a little-known but crucial moment in history makes for compelling reading.

Posted at 20:23 Permalink

Thursday, February 1, 2007

Fourmilog: Handheld Edition Available

From the start, I've included a “PDA Friendly” button on the main Fourmilog index page which links to a minimalist text-only version of the recent item index. On a recent trip, I had occasion to consult this page with the Palm Treo 650 PDA/phone I had with me and discovered its actual appearance was less than friendly—it took forever to download (thanks to the prolix nature of postings here), failed XHTML 1.0 validation in several ways, and was infelicitously formatted.

I have just posted a major revision to PDA support all across Fourmilog. The PDA Friendly page now consists of extracts of the first 100 words of the fifteen most recently posted articles, each with a link which, when clicked, displays the complete item. All of the individual article pages, daily and monthly archives, and the main index page now include an alternative style sheet for the “handheld” media type, which is automatically selected by the Web browsers on most mobile devices. This style suppresses images, removes borders and other decoration, and falls back to simple typography and the handheld's configured rendering of links. Since the main index page can also be rendered using the handheld style, a user can choose the PDA-specific page if they prefer article excerpts and links, or the main index page for the full text of articles.

In the handheld style, all images are suppressed unconditionally. I'm not entirely happy with this, since handheld users with fast connections may prefer to see images when present, and there are certainly circumstances where an image is an essential part of a posting and worth taking the time to download. What I'd really like to do is show the “alt=” text for the image as a link which, when clicked, displays the image. Unfortunately, if there's a way to accomplish this in CSS 2.1, I'm not clever enough to figure it out. I suppose I could make a Movable Type plug-in for including images which expanded into a style-controlled embedded image and link, but that's more than I'm willing get into just now. So, for the moment, no images in the handheld edition, period.

If you would like to see how a handheld device will display a given page, in the Opera browser you can simply select the “View/Small screen” menu item. With Mozilla Firefox, you can install the nifty Web Developer add-on package which allows you (among many other things) to switch the rendering of a page among “screen”, “handheld”, and “print” media types.

Independently, I have validated every page of Fourmilog for XHTML 1.0 (Transitional) compliance with the W3C Markup Validation Service (using a “Bulk Validator” program I wrote in Perl which is still in far too rough a form to share with you here) and fixed all reported problems. Most were in very old postings made before I routinely validated everything I posted, or were due to the popup image template issue discussed recently here.

Posted at 19:48 Permalink