Monthly Archives: June 2009

The St. Clair McKelway Test

In my previous post, , I posted some photos of the obituary of A. J. Llebling — the namesake of this blog — written by Tom Wolfe. Now a famed novelist and writer, Wolfe was then — in late 1963 — a young reporter for the New York Herald Tribune.

I just revisited this post, and on viewing the photos I posted of Wolfe’s work I noticed the name St. Clair McKelway!

Aside from A.J. himself, Mr McKelway was among my favorite writers from the New Yorker.

I suspect that not one in 10,000 or so working journalists would know his name.

I knew that Tom Wolfe was good, but I didn’t appreciate that Wolfe – or his editors at the Trib — were that good.

To include St. Clair in Liebling’s obituary was both an act of brilliance and a demonstration of profound understanding.

If you have ever read St. Clair’s work then please post a comment.

I’ll pay the bar tab if we ever meet, and I do hope we do so as soon as possible, so we can jointly pay tribute to Colonel Stingo.

Fun is fun, but this is serious business.

Good writers deserve recognition.

The Wayward Press: Tom Wolfe’s Obituary for A. J. Liebling in the New York Herald Tribune, December 1963

While rummaging through some old documents I came across a copy of the obituary for A. J. Liebling written by Tom Wolfe. Now a famed novelist and writer, Wolfe was then a young reporter for the New York Herald Tribune. This copy was the gracious gift of Harold Rosenberg, a legendary sportswriter in New York in the 40’s and 50’s. I met him at a family gathering of my college roommate, Robert “Buzz” Bernstein, back in the 60’s. I had mentioned my interest in him, and Mr. Rosenberg said that Wolfe had written A.J’s obituary for the Trib. He then volunteered to dig up a copy from the Trib’s “morgue” , which I received a few weeks later. [1]

Mr. Rosenberg was — as is almost always the case with experienced journalists — a wonderful man. He later was the chief publicist for the New York Jets in their early days. I regret that I met him only this one time.

Journalists are among the least-appreciated craftsmen in our society. They dedicate their lives to learning how to tell stories in simple prose. We take their artistry for granted.

As a professional programmer I regret deeply that the writing of code is now deemed more valuable than the writing of journalists.

Reporters, like skilled programmers, are a dwindling breed.

I fear we shall appreciate the important role of journalists only when their craft has become a lost art, as the internet-driven process underway that is destroying print journalism nears its end.

The assault of technology on journalism is not a new story. For example, one of my closest friends from my high school days in Albuquerque, New Mexio, was Gene Griffith. His father, Paul Griffith, was both a newspaper publisher and one of the nicest people I have ever met. Born in Iowa, Paul was a long distance runner, as were two of his sons, including Gene. He moved to New Mexico, and was the publisher of a newspaper in Eastern New Mexico when Buddy Holly was killed in a plane crash.

When I knew him, Paul Griffith spent his days being an outstanding person and also the operator of a linotype machine at the Albuquerque Tribune. It might have been the Albuquerque Journal, but that doesn’t matter, since one of the landmark decisions of the Supreme Court in the 1930’s was to allow the Journal and Tribune to merge their operations, so that both papers could survive.

My single most memorable memory of the craft that was required to publish a newspaper came one evening when Gene took me on a visit to see his Dad at work.

I have seen many wondrous technologies in my life, but the two that stand out are these:

  1. Seeing a black-and-white photograph develop under one’s eyes in a darkroom, as a chemical process that reaches down to the molecular level unfolds its magic;
  2. Seeing an ingot of lead fed into a linotype machine and watching hot type emerge at the other end. [2]

It was while watching Paul at work that I came to appreciate the magic that was print journalism, back when A. J. Liebling was one of its craftsmen. The former I learned a few years later when I had my own darkroom, and I think it worth noting that no digital technology can ever match the glory that comes from large glass plates using traditional photographic processes.

Computers are nice, but silver halide molecules are even nicer!

There is nothing, save perhaps the printing press itself, that comes closer to technological perfection than seeing cold metal turned into hot type.

Setting technology apart, I agree with Red Smith that the closest man has come to perfection is “90 feet from home to first base.”

As a example of a good reporter at work, here are some photos of Wolfe’s obituary for Liebling:

For example, note Wolfe’s mention of Ibn Khaldun, a famed Arabian historian, and author of the “Muqadimmah.” I once mentioned Liebling’s fondness for this work to Jack Schwartz. Jack said a few weeks later that he had read the work, and agreed that it was quite good. (I have read only part of it, and need to revisit it when time permits.)

2009-06-NM-TREK 137

2009-06-NM-TREK 138

2009-06-NM-TREK 139


1. “Morgue” is the set of old clippings of articles published by a newspaper, “back in the day.”

2. Samuel Clemens, “Mark Twain,” was so seduced by this technology that he almost bankrupted his family, and so had to take to the road to give lectures. I vividly recall Hal Holbrooke’s solo performance of “Mark Twain Tonight” that I saw around 1960, when I was fifteen or so. You can distinguish those who have seen that performance by asking about “Halley’s Comet.”

Perfect Attendance Junkies

I am one of a select group of people who went one or more years without missing a single day of school. For example,

My fourth PA (Perfect Attendance) Certificate.

My fourth PA (Perfect Attendance) Certificate.

I didn’t miss a day of school from the start of third grade until at least the second year of my graduate education, a run of sixteen — and perhaps more — years.

Please post a comment if you can make a similar claim.

WordPress Continues to Amaze: May 2009

Here is an excerpt from the WordPress May Wrap-up:

WordPress rolled out a ton of new features: the ability to add YouTube videos and polls to comments, stats in your time zone, the VideoPress upgrade (with HD!), post by email, new stats charts, comment search, improved comment reply by email, and

The stats for May:

* 387,416 blogs were created.
* 411,704 new users joined.
* 5,504,742 file uploads.
* 3,333 gigabytes of new files.
* 826 terabytes of content transferred from our datacenters.
* 6,914,546 logins.
* 1,243,177,638 pageviews on, and another 1,207,143,849 on self-hosted blogs (2,450,321,487 total across all WordPress blogs we track).
* 2,105,723 active blogs where “active” means they got a human visitor.
* 1,728,890,160 words.

Let’s divide by 30 to get daily figures:

* 13,000 blogs were created, EACH DAY.
* 13,700 new users joined, EACH DAY.
* 183,000 file uploads, EACH DAY.
* 111 gigabytes of new files, EACH DAY.
* 27.5 terabytes of content transferred from our datacenters, EACH DAY.
* 286,000 comments, EACH DAY.
* 230,000 login, EACH DAY.
* 41.4 million pageviews on, and another 40.2 million on self-hosted blogs (81.7 million total across all WordPress blogs we track, EACH DAY.
* 57.6 million words, EACH DAY.

Let’s divide that by 1440 (24*60) to get the stats for EACH MINUTE:

* 9.2 blogs were created, EACH MINUTE.
* 9.5 new users joined, EACH MINUTE.
* 127 file uploads, EACH MINUTE.
* 77 megabytes of new files, EACH MINUTE.
* 19.1 gigaabytes of content transferred from our datacenters, EACH MINUTE.
* 198 comments, EACH MINUTE.
* 160 logins, EACH MINUTE.
* 29,000 million pageviews on, and another 3,000 million on self-hosted blogs (56,700 total across all WordPress blogs we track, EACHMINUTE.
* 4,000 words, EACH MINUTE.

Keep up the good work, WordPress Team.

And, of course, thanks to my fellow WordPress bloggers. It is the content that we generate, each and every minute, that keeps WordPress growing, both in size and in value.

This is yet another reminder that WordPress is by far the best blogging platform, and also a reminder that anyone using another blogging platform comments on their lack of savvy with each and every blog post.

This is also a case where bigger is better. For example, imagine the predicament of the ruling powers in Iran. My guess is that they cannot possibly selectively filter all the WP posts about them, so the will have to keep it all going, or shut it all down.

We’ll know their jig is up when they resort to the latter course of action.

This is also a reminder that the best programs — and the programmers who write them — are to be found in the open-source arena. That’s where the big boys play.

We do it for the fun of it, which is why we give it away.



100 Compiler Options and You are Out

California, along with Major League Baseball, is among the institutions that have a policy of “Three Strikes and You are Out.”

I suggest the same rule should apply to compiler writers.

For example, I just tried to port some software that makes use of gcc, the standard Linux C compiler, only to get an error message about a problem with an option.

I then did “man gcc” to review the list of options. As best as I can tell, there are well over a hundred of them.

This is ridiculous. How can any person be expected to make meaningful use of such a superfluity of programming madness.

Let’s do the math. I once read there are about 2**80 atoms in the universe. If there are 100 options to gcc, then are there 2**100 ways of compiling a program, which is 10**20 more times options than there are atoms in the universe!.

If we assign one Richard Stallman to test each possibility, then we need at least 10**20 RMS’s just to test the path flow for options!

GCC Folks: Get your act together. If you can’t come up with a small, reasonable set of options, then I suggest you should leave the compiler game and let the grownups take over.

Four colors suffice to color a map. I’ll give you double that, so can you please cut the number of options down to 8?

On Programming: Why Ruby and SQL are Fundamentally Wrongs

Jack Schwartz once told me that he had spoken with E. J. Codd early on in the days when Codd was creating SQL. Jack said he had suggested that SQL was misguided in that the best way to design a database-specific language was to apply the lessons learned by mathematicians over a century ago when modern set theory was created.

That is, SQL should have been SETL, or a slight modification thereof.

That Jack was right can be found by perusing any of the religious-like texts that attempt to explicate SQL. See for example Microsoft SQL Server: Higher-Precision System Date and Time Functions, or SELECT – Transact-SQL, which says in part:

<SELECT statement> ::=
    [WITH <common_table_expression> [,...n]]
    [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } 
  [ ,...n ] ] 
    [ COMPUTE 
  { { AVG | COUNT | MAX | MIN | SUM } ( expression ) } [ ,...n ] 
  [ BY expression [ ,...n ] ] 
    [ ] 
    [ OPTION (  [ ,...n ] ) ] 
    {  | (  ) } 
         | (  ) [...n ] ] 
    [TOP ( expression ) [PERCENT] [ WITH TIES ] ] 
    [ INTO new_table ] 
    [ FROM { <table> } [ ,...n ] ] 
    [ WHERE  ] 
    [  ] 
    [ HAVING  ] 

This is elegant only in that it artfully combines*both* gibberish and rubbish in a deadly potpourri.

I’m sure Jack would have made the same suggestion to the Ruby team. For example, I just headed over to Ruby – A Programmer’s Best Friend. The lead article was DoS vulnerability in BigDecimal!

It says in part:

A denial of service (DoS) vulnerability was found on the BigDecimal standard library of Ruby. Conversion from BigDecimal objects into Float numbers had a problem which enables attackers to effectively cause segmentation faults.

ActiveRecord relies on this method, so most Rails applications are affected by this. Though this is not a Rails-specific issue.

An attacker can cause a denial of service by causing BigDecimal to parse an insanely large number, such as:


Simply put, to use Ruby is to launch a denial of service attack on the rational numbers! How irrational is that?

Insanely large number? You idiots. Even “google” — 10**100 — is not large. For example, let g1 = 10**100. Then construct the series, g2=g1**g1, g3 = g2**g2, and so forth. [1]

No number is insanely large..

Some so-called language designers are, however, insanely stupid. They can’t even count!

Programmer’s Best Friend?

You idiots.

Every real programmer knows that a programmer’s best friend is assembly language.

Real programmers write code, not gibberish.

Real programmers can count, too. In decimal, hexadecimal, octal, and binary. For example, I once used a circular hexadecimal-decimal slide rule to help me wade through System/360 core dumps.[2]

1. It remains an open question whether any of Google’s “engineers” can count anything besides money, though at least they have to master scientific notation to parse their biweekly paychecks: $1,000,000 = $1e6, and so forth.

2. I set the cursor to the base register address so I could then determine the offsets on a load map or listing from the absolute values given in the core dump.

The slide rule, along with my custom-built pool cue, NYC Taxicab license and coin-changer, as well as my NYC peddler’s permit that I used to sell baloons, are among the possessions that I misplaced many years ago. Damn.

I don’t miss hexadecimal arithmetic, save for its artful use in picking WiFi router passwords.

On SPITBOL: Stop The Presses. Time to Rewrite Mod_Rewrite.

I just saw, via Intertwingly, that there is a complete book about Apache mod_rewrite. The book runs 160 pages.

The intertwingly post made mention of regular expressions, and so I went over to ASF to learn more about this irregular feat: Apache Module mod_rewrite.

The project description begins with:

This module uses a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly. It supports an unlimited number of rules and an unlimited number of attached rule conditions for each rule, to provide a really flexible and powerful URL manipulation mechanism. The URL manipulations can depend on various tests, of server variables, environment variables, HTTP headers, or time stamps. Even external database lookups in various formats can be used to achieve highly granular URL matching.

This module operates on the full URLs (including the path-info part) both in per-server context (httpd.conf) and per-directory context (.htaccess) and can generate query-string parts on result. The rewritten result can lead to internal sub-processing, external request redirection or even to an internal proxy throughput.

Here is a heads-up to the Apache team.

As soon as SPITBOL is ported to Linux then someone is going to take an afternoon or so and produce an updated mod_rewrite that runs about 100x faster. They may even write a book about their experience, though it will probably run to about ten pages or so.

You will then spend about ten years fielding complaints from the gazillions of users worldwide who will ask why you didn’t help port SPITBOL to Linux about, say, a decade or so ago.

On Programming For Adults: The NASM Macro Processor

One of the advantages of being an assembly language programmer is that you get to use an assembler.

Only assembly language programers know what an assembler is, so the best assemblers are written by the most dedicated assembly language programmers, the masters of our trade. [1]

I recently put the NASM folks to a test. I predicted they would pass the test, and they did.

Just try

nasm -E in.asm

This expands the text in the named file with the full power of the most comprehensive macro assembler I have yet seen. It also does nothing else.

NASM just gets it done.

So do assembly language programmers.


1. An “assembler” is not the machine used to construct assembly halls where young students watch principals in operation. Assembly language programmers read the principles of operation. [2]

2. This pun will be a recurring theme for the next 10000000000B or so posts about assembly language: [3]

  %define ALPs assembly language programmers
  %define PiP principals in operation
 % define PoP principles of operation
 young students watch PiP. ALPs read the PoP.

3. 1024. We assembly language programmers not only count in binary, we think in binary. For example, I am 01 For Chappaqua

  • Pages

  • June 2009
    M T W T F S S
  • RSS The Wayward Word Press

  • Recent Comments

    daveshields on SPITBOL for OSX is now av…
    Russ Urquhart on SPITBOL for OSX is now av…
    Sahana’s Respo… on A brief history of Sahana by S…
    Sahana’s Respo… on A brief history of Sahana by S…
    James Murray on On being the maintainer, sole…
  • Archives

  • Blog Stats

  • Top Posts

  • Top Rated

  • Recent Posts

  • Archives

  • Top Rated