Quicksilver

Quicksilver is probably one of the dullest books I’ve read in some time.  I can see that it might be interesting to someone with a deep interest in European history of the late 17th century, but perhaps not even then.

Quicksilver is the first book in Stephenson’s Baroque Cycle, a trilogy of historical fiction novels covering European history of the late 17th and early 18th centuries, focusing specifically on the political maneuverings of the time and the development of science as we know it today.  It involves such people as Isaac Newton, Gottfried Liebnitz, Robert Hooke, Charles II, Louis XIV, and William of Orange.  The main characters are, however, completely fictional: Daniel Waterhouse, Jack Shaftoe, and Eliza.  (Readers of Cryptonomicon may notice the reuse of family names.  Also reappearing are Enoch Root and Qwghlm.)

As I mentioned above, I found the pace of the book to be exceedingly dull, despite the fact that I actually have an interest in the history of science in that period.  (And no such interest in that period’s politics, so the science was merely dull, while the politics were excruciatingly dull.)  That’s really my biggest complaint.  I do feel that the book could have been more interesting if it had been edited down a lot.

Still, I did gain some things from the book.  For one, I have a lot clearer picture of the history of the area (and, as far as my research can tell, the history in Quicksilver is quite accurate).  But I can’t really bring myself to recommend it to anyone other than raving history fans.  Almost everyone I know found the book very tedious, and most never managed to finish it.

Steganography and the ending below the spoiler line.

Spoilers

The steganographic cypher that Eliza used really bugged me for most of the book.  At first, I thought that the plaintext that Stephenson shows was supposed to be derived from the other visible portions of the letter.  Which didn’t make much sense, because the proportions of the two texts did not match at all the stated 5:1 ratio for cyphertext and plaintext.  Later things implied that we were not shown the cyphertext, which is a little more believable, but runs into the problem of boundaries—sometimes the hidden text forms its own paragraphs, but sometimes Eliza appears to insert bits into otherwise cleartext sentences.  Said sentences appear to flow naturally with both the hidden text and without any text, but there must be some steganographic text that is there in the undecyphered letter.  The only way I could deal with the cypher, given the various problems I perceived with it, was to regard it as an unexplained author’s vehicle for plot and try not to think about how it worked.  I don’t like having to do that with a story.

And the ending.  For Stephenson (with whose novel endings I’ve generally been displeased), it’s quite good.  It works very well for this particular book (as one that leads into another such) and, with minor tweaks, would do well as the closing to a standalone novel.  Too bad I probably won’t read the final two books in the Baroque Cycle to see how the whole thing turns out.


Missing, late buses.

The MTA had been behaving itself for a couple of months (inasmuch as it ever behaves—the 8, on the occasions I’ve had to use it, has been as bad as ever), so I suppose it was due for something.

The 31 scheduled for 6:58 at Liberty and Baltimore never arrived.  I waited until roughly 7:20 before a 31 came by.  (The next scheduled arrival was 7:24.)  The bus then sat at the Arena stop for roughly 15 minutes as the driver waited for a replacement.  None was forthcoming, so he eventually drove on, despite the fact that he was supposed to have been relieved.  I got home a bit over an hour later than I ought to have.


Newsmap

newsmap is a visualization of Google News.  It gives you headlines in color-coded bands by category, sized by how many places are reporting the same story, and shaded by age.  This is information pornography of the highest order.  It uses flash.  It may accomplish what even Strongbad and weebl and bob have so far failed to do—get me to install Flash on my home computer.

newsmap comes from the same person who wrote social circles, which also looks interesting.  I may see if I can put together something similar with Perl and Graphviz.


An Ode to screen

Just a listing of the many ways that screen is indispensable to my way of using my computer.

The biggest thing is, of course, the fact that screen is detachable.  Start screen, start a program, detach screen while in the middle of doing something, log out, login later, reattach, program is just as I left it.  This works at a distance, too.  I can leave my home and go elsewhere (work, friend’s house, etc.) and be able to ssh to my home computer, reattach screen, and pick up exactly where I left off.

Second only to detachability is screen’s multiplexing capability.  A screen session can contain many different windows, each running a different program.  This allows me to have an entire workspace within screen.  I can have an editor in one window, working on some source code; a shell in another window, where I might be doing trial runs of the program; a web browser in a third window, which could be looking at some documentation; and so on.  My normal screen setup has 15 windows, which I use for various purposes.

I can specify what programs to run from screen’s config file.  So when I start screen, my default workspace is already seeded with all the programs I use regularly (text editor, IRC client, web browser, mail client, etc.).  I use this capability just to start some programs that I never even interact with, for example SETI@Home.  Running it within screen ensures that it’s running at all times (I always have a screen session running) and only one instance is ever running (I do everything within one screen session).

I can attach to the same session multiple times.  So my customary graphical workspace is three xterms, all attached to the same screen session.  This gives me more visual real estate, while allowing me to be very flexible.  The windows displayed by each of the xterms change depending on what I’m doing at the moment.

Screen understands several different character encodings.  I run all of my programs in UTF-8 mode.  When I’m attached to my local xterms, screen passes the UTF-8 characters straight through, because the xterms can handle it.  On friends’ computers, screen translates the UTF-8 into ISO-8859-1, showing all the characters it can and filling in question marks for those it can’t.  Likewise for my serial terminal, which uses a CP437 charset.  (I’ll admit that that last took some work on my part.)

I can also input most Unicode characters via screen’s digraph support.  Press the right escape characters, enter an RFC1345 digraph, and whatever program I’m currently using gets a UTF-8 character.  (This also took a little work—I had to patch screen to get digraph support for non-ISO-8859-1 characters.)

Screen keeps a separate scrollback buffer for each window.  I have it set to keep a very large number of lines, which has come in useful on several occasions, especially since you can search through the scrollback buffer.  (“What was the exact output of that command?” ::search::  “Ah, that was it.”)

I’ve used screen’s monitoring capabilities a lot.  It can watch a particular window and notify you when there’s new activity (“Oh, something happened in that log file.”) or when it’s been silent for a time (“Oh, that long-running compile is done.”)

Screen supports having a caption line across the bottom of the screen.  I use it to give me an omnipresent clock, as well as showing me info on the current window.  The capability also exists to run arbitrary programs and put their output in the caption.  On my laptop, I do this with information on the current state of its battery.

Instances of screen can be password protected, to prevent others from getting at your programs.  I find this feature useful when using screen in a semi-public area where I might need to leave the computer for a time.

There are some features that, while not mind-blowing, are just nice to have around.  Normally, when the last program in a window exits the window closes.  With zombie control, the window remains, and you can restart the program with a single keypress.  Very useful for windows dedicated to particular programs.

While I don’t use it regularly, screen’s multiuser support has been useful on a couple of occasions.  When doing some collaborative programming, I created a single, multiuser screen session, and all of us connected to it.  It proved very useful for sharing information among the group of people.  (“Just go over to window 7, where I’ll show you how feature X works…”)

There are, of course, plenty of other useful aspects to screen.  These are just the ones that I rely on or have found myself relying on.  I encourage anyone who uses a command line regularly to give screen a try.

For further information:


Trainsched Schedules

In order to use trainsched with the MTA’s schedules, I had to write my own programs to parse the MTA’s HTML schedule pages.  The results of that work are now on this website.  Share and Enjoy.