Archive for May 2008
Serial novels
For N.
Dickens and the Victorian Serial Novel and Great Expectations as a Victorian Serial Novel: By students of English 434: Nineteenth-Century English Novel at The University of Michigan-Dearborn. Includes a helpful How To Read a Victorian Novel :)
The nineteenth-century Victorian serial novel was a way for readers and writers to make a novel last years and be talked about endlessly like the daily soap opera of this century.
No time to be idle: the serial novel and popular imagination: Shawn Crawford. An authoritative essay, cited by the above.
In January 1841, passengers arriving in New York from Europe would be greeted by anxious people on the docks. They all had the same question: “Is Little Nell dead?”
[…] the conditions of Victorian England made serialization the primary mode of novel publication for fifty years. Everyone published serially, including George Eliot, who hated it, and Henry James, whose work hardly seems suitable […]
Of the 192 novels published serially in the Victorian Era (1836–1889) [..]
Dickens and Serial Publication: Joel J. Brattin.
Most of Dickens’ novels were serialized in 20 monthly installments […] always included precisely 32 pages of text, two engraved illustrations, and, usually, 16 pages of advertisements.
The death of Mary Hogarth, Dickens’ beloved sister-in-law, in May 1837 led him to miss the only professional writing deadline of his career.
(I presume that means it was the only one he missed!)
Other topics:
Dickens and His Readers: E. D. H. Johnson. On “Dickens’ dependence on public approbation”
All of Dickens’ novels made their first appearance in serial form. Nine came out in monthly installments: Pickwick Papers, Nicholas Nickleby, Martin Chuzzlewit, Dombey and Son, David Copperfield, Bleak House, Little Dorrit, Our Mutual Friend, and The Mystery of Edwin Drood. Five were composed for weekly serialization: The Old Curiosity Shop and Barnaby Rudge in Master Humphrey’s Clock; Hard Times in Household Words; and A Tale of Two Cities and Great Expectations in All the Year Round.
Dickens and the Classic Serial: Robert Giddings, presenting long paper on classic serials on BBC.
Dostoevsky and the English Novel: Dickens, John Cowper Powys and D. H. Lawrence
All Dickens’s novels had been translated into Russian by the time of Dostoevsky’s death in 1881. He was virtually an honorary Russian and to this day many Russian homes boast a complete set of his novels. Readers queued up for the latest serial instalment of them in Moscow just as they did in London and New York.
Also see:
- Linda K. Hughes and Michael Lund, The Victorian Serial, University Press of Virginia, Charlottesville, 1991.
- Graham Law, Serializing fiction in the Victorian press, Palgrave Macmillan, 2000
Umrao Jaan Without Its Rekha
It seems some people hate typefaces with letterforms that are intended to mimic another script. (E.g., these, or this logo of Café Spice, a terrible food place at MIT):
Here is Carla Filmigeek with some examples including the Arabic-esque Devanagari for the new Umrao Jaan, calling them
too cutesy, an ersatz fetishization that bastardizes the true beauty and diversity of the world’s writing systems.
Thanks to India Amos for commenting; there is this article by Jessica Helfand:
But on some level, the line is a murky one: what’s the difference between a celebrity making an unforgivable racist remark and a typographer making a font that clumsily perpetuates a cultural stereotype?
Similarly, here is Dan Reynolds, writing Indian newspaper search, part two, with an example followed by
Sadly, there was also some of this typographic nonsense.1 Note the “45″ to the right.
Now, I agree that these “exotic” letters can be annoying when used unnecessarily. As Maddox says,
Hey Forster, you know why we don’t need ethnic-looking fonts to illustrate the fact that we’re in another country? Because letters placed in close proximity to each other spell words that represent the names of those countries. That, and the obvious change in scenery. […] Even my [mom] knows that using fancy fonts makes her a lameass.
But I’m inclined to cheer them for being clever and playful. As this article by Paul Shaw (thanks to Priya) says,
stereotypes, though crude, serve a commercial purpose. […] There is no room for cultural nuance or academic accuracy in a shop’s fascia. Restaurant owners want passersby (often in cars rather than on foot) to know immediately that they serve Chinese (or Greek, or Jewish) food, and a lettering style that achieves this is welcome.
1: Speaking of typographic nonsense, here’s an example: “K alphabet”. (Found via here.) There are a lot of disturbing things about it, but what really annoys me is people saying “alphabet” when they mean a single letter!
Premature optimization is the root of all evil
There is a famous saying that “Premature optimization is the root of all evil”. Sometimes it quoted in a longer form: “We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.”
Both are usually attributed to Donald Knuth, but there also seems to be an idea floating around, that the quote was originally due to C. A. R. Hoare, and Knuth only popularised it. This is false; this post is an attempt to settle the matter of its authorship: the evidence unambiguously indicates that the quote is Knuth’s alone.
The quote, in its full form, is from Knuth’s paper Structured Programming with go to Statements, ACM Computing Surveys, Vol 6, No. 4, Dec. 1974 (see p.268), in which he says
There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified.
So there it is, with no reference to Hoare. Knuth is not quoting Hoare at this point. (He is also making an important point, one that all programmers would do well to take to heart — both aspects of it.)
There is also Computer Programming as an Art, Knuth’s Turing Award lecture (1974), printed in Communications of the ACM, Volume 17, Issue 12, Dec. 1974 (see p.671), in which he says
The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.
(This is weaker than the other form; quite likely this lecture was given before the article above was published, and the quote got better in the article, as quotes are wont to do.)
However, from 15 years later, there is Knuth’s paper The Errors of Tex, in Software—Practice & Experience, Volume 19, Issue 7 (July 1989), pp. 607–685, reprinted in his book Literate Programming (see p. 276), in which he writes
But I also knew, and forgot, Hoare’s dictum that premature optimization is the root of all evil in programming.
This seems to be the source of the popular attribution to Hoare — a short-circuit of Knuth’s original (uncited) attribution. Knuth calls it Hoare’s dictum, but appears to have forgotten not only the dictum but the fact that he was the one who said it. I (and others) have not been able to track down any citation for the actual quote being due to Hoare, and Knuth does not provide one.
Finally, this is the clincher: “Hoare, in an 2004 e-mail to Hans Genwitz of phobia.com, said he didn’t remember the origin of the saying but that he might have attributed it to Dijkstra.” (says Practical Common Lisp, last chapter, footnote 4). The Wayback Machine has preserved the actual email:
Dear Hans,
I’m sorry I have no recollection how this quotation came about.� I might have attributed it to Edsger Dijkstra.
I think it would be fair for you assume it is common culture or folklore.
Tony.
[It’s Hans Gerwitz, and the post is still up.]
Translation: “No, I didn’t say it, and Dijkstra is the guy who usually says such things.” (In this case, we know it was Knuth, not Dijkstra.)
I hope this settles the matter: the phrase is Knuth’s.
Edit: I had considered asking Knuth directly and decided against it because it would be too hard, but someone else has done it, and it’s decisive: Thanks to Mark Harrison, (who wrote to Knuth asking if he said something else), look here: Knuth says “I did say things like ‘Premature optimization is the root of all evil in programming’…“.
So there!
Multi-tty Emacs on Ubuntu
“Multi-tty support” is a feature that is currently in Emacs CVS for what will eventually become Emacs 23. It lets different Emacs windows (“frames”) share the same session. This means that you’ll always have all your buffers, and Emacs starts faster. Emacs has had this “emacsclient” feature for a long time now, where you can edit new files in an Emacs instance that is running as “server”, but what is new is that you no longer have to hunt for where you had started Emacs first — you can simply edit in a new frame. For example, if you had originally started Emacs under X, and you log in remotely, you can reuse the running Emacs process by starting a new “frame” in the terminal. Instead of explaining better what it does, I’ll let you see for yourselves:
video by EnigmaCurry
Note that it is not necessary that all (or any) of them be in a terminal — you can have multiple GTK Emacs windows too. Also, note that every new window starts with the *scratch* buffer, not necessarily the same buffer as the one on top in other windows.
Installing:
Multi-tty Emacs used to be maintained separately (which is why older posts have complicated instructions), but it has been merged into the main Emacs CVS branch for a long time now. This means that it is available on Ubuntu by simply installing the emacs-snapshot package (this has been true since 2007-09-02). On other distributions/platforms, use whatever it takes to get Emacs from CVS.
Using:
To use it, start one Emacs session, and, if you don’t have (server-start) in your .emacs already, do M-x server-start. Once done, you can either leave this Emacs window hanging around, or hide it, or whatever.
Now to start subsequent Emacs instances, use emacsclient -c. The “-c” stands for “--create-frame”, and means that a new Emacs “frame” is started instead of using the old one. (Emacs calls windows frames and what it calls “windows” is closer to “frames” in a web browser.)
Use emacsclient -t if you want to start it in the terminal.
It appears that you can quit each individual instance the normal way with C-x C-c; it is not necessary to use C-x 5 0 (that’s delete-frame).
Further:
Some things you can do to make life easier.
- Put (server-start) in your .emacs if you haven’t done so already. Michael Olson suggests using (unless (string-equal "root" (getenv "USER")) (server-start)), but I don’t recall having ever needed that.
- Automatically start an Emacs session at login and hide it, so that it runs like a “daemon” and you can simply use emacsclient -c consistently and forget about it. You can use screen -d -m emacs -nw, or use the more lightweight dtach: dtach -n /tmp/emacs emacs -nw
- Do the above with some “name” for your emacs server. You can give your server a name by using (setq server-name "asdf") before (server-start), then you can can connect to it with emacsclient -s asdf -c (or -t). I don’t entirely see the utility of this; it might be so that you don’t start extra servers by mistake and always use the same one. There are scripts to do this.
- You could probably combine all the above by writing a wrapper that checks if a server exists, connects to it if it does, else starts one, etc., and use that wrapper as your default system editor. That is what the wrapper script “ec” at EnigmaCurry does.
It would be nice if Emacs made this the default, though: Starting Emacs would by default work as multi-tty and share session with whatever previous Emacsen had been started, unless one explicitly told it not to do so.
Why not?
Sources: EnigmaCurry with old installation instructions, the wrapper script and the video, Mwolson’s post