2009-06-25

Death of a Troll

perm url with updates: http://xahlee.org/Netiquette_dir/death_of_a_troll.html

Death Of A Troll

Xah Lee, 2009-06-25

Erik Naggum is dead. He's born in 1965, died in 2009, this month. I wanted to write a essay about it, my impressions of him, our exchanges, ... but it'll take probably a week to write a account or obituary sort of thing in a way that is to my satisfaction. It'll involve digging my unorganized newsgroup archive that are scattered in different places on my hard drive, and endless painful hours in google newsgroup archive search... Seems rather a formidable task, because i want to write it well and fully linked.

For now, see our past exchanges at google group: Source. Roughly, our first exchange is in ~1999, when i was learning lisp (Scheme) for the first time and was asking about the cons business. (see: Xah Lee's Computing Experience Bio) I read comp.lang.lisp almost exclusively for Erik's posts. (See: Why do I Rant In comp.lang.lisp? ) Since he stopped posting sometimes in ~2004 or so, i have stopped reading “comp.lang.lisp”. Only started again in maybe 2007 or so, more as a poster than reader now. I clearly remember his last message on comp.lang.lisp. Here:

Newsgroups: comp.lang.lisp
From: Erik Naggum
Date: 03 Feb 2004 14:48:22 +0000
Local: Tues, Feb 3 2004 7:48 am
Subject: Re: moderation of abuse?

http://groups.google.com/group/comp.lang.lisp/msg/115c62ec642e392c

According to groups.google.com, there are 338 results of posts in comp.lang.lisp that contains both “naggum” and “xah”. I think that the number of posts i addressed him is probably less than 20, and his reply to me is probably less than 10. During about 1999 to 2004 when i read comp.lang.lisp mostly of his posts, i also post maybe a couple a month on average. Most of my posts are trolls (of the good sort (see: Netiquette Anthropology)), and part of it is riding his name, criticizing or making fun of his attackers, and criticizing or lampoon him too. They are mostly not technical. Most are part of writing exercise too.

(Note: google group search is quite not reliable or comprehensive, as far as my experience goes in the past few years. It used to be very good and quite comprehensive when they first acquired dejanews, because back at that time, the search is quite simple, but now they have all sort of filters and indexes that tries to smart things up and deal with the massiveness (including having to deal with a machine generated spams that are probably a significant percentage of newsgroup posts now). It used to be, that if know a exact sentence or phrase of a post, then you can find the post. But not today. Nor can i find a comprehensive list of my own posts as searched by my email xah@xahlee.org or xahlee@gmail.com.)

Orkut Incidence

In 2004, we made friendship on google's social networking site Orkut. Then, we exchanged instant message a few times. However, he got really pissed and de-friended me. This incident actually made me angry, because, honestly, i felt i was just trying to make a friend, and he is behaving like a complete, motherfucking, ass. According to him, i think he said i offended him by incessantly querying him of his work or invading his privacy without respect, or something to that nature. I don't remember fully now, but i do have everything completely logged. So, i'll have to dig it up and put it here. I was frankly very, very pissed off by this incident. I'm no fucking bugging him about his work or anything. His accusation is totally a shock out of the blue. To even have to defend myself seems silly.

I recall, at the time, i contemplated of writing a full account of it, spending perhaps a day or two to do that, with full records and logs, and publish it on my website and announce it to comp.lang.lisp. Because i felt that his behavior is schizophrenic and totally unreasonable. Also, i was unsure i really want to do that. I recall i thought about it for long. On one hand, i was really pissed and wanted to express my anger, but on the other hand, i have a discipline of my own to follow, that i should be a loving person, as well powerful and in full control, not some loser who'd trip over a online relationship misstep.

Whatever emotional problem he caused me in our process of getting acquainted as computing professionals or friends, i considered for long whether i should just forgive him. Apparently, he's got severe psychological problems so to speak, of which, his newsgroup behavior is sufficient to certify. So, in the end, i did not write a account of it. I think i might actually have spent a hour or two writing it, but didn't complete or publish it. I'll have to dig all these out someday. (i recall now, that i was angry because in our last im he started to lash out in his typical newsgroup manner at me. I think i was rather quite controlled, and didn't respond much or AT ALL, simply stared his incoming IM chat with disbelief, although in my mind i have a thousand words racing to tell him to shut the motherfucking up and have a million words followup for explanations and justifications. I was angry because he was a few human animal that i would care to contact, partly precisely because of his lone and unusual personality, and a free thinker, a non-conformist, like myself. The fact i befriend him was partly out of high respect, and in our last couple IM exchange, i was thwarted and taken aback.)

In any case, when we initially hooked up as online friends on orkut, it was pleasant, albeit we exchanged little. He told me he's sick, and now works as some sort of librarian, and can not code much. (something to that effect)

Erik on XahLee.org and His Vocabulary

Just some more quick note... here's few essays i wrote that has been published (some edited) on my website that either mentioned Erik or was originally addressing him.

Erik's English vocabulary usage has been used in my English Vocabulary Compendium. In fact, miming his vocabulary usage is one of the major reason i read him. Here are the entries from him.

scaremonger

A conservative estimate of the number of people who would die during a period of five years after only _half_ of the electronic infrastructure in the United States had collapsed is 30 million people. This is part of unclassified disaster planning that surfaced because of the Y2K scare, and it has been published widely by scaremongers that a decimation, in the technical meaning of 10% loss, of the population is considered a tolerable loss.
Computer language online forum posting “comp.lang.lisp” (1999) by Erik Naggum. Source
scaremonger = a person who spreads frightening rumors and stirs up trouble.

out of the woodwork

I'm so ... intrigued by the evolutionary refuse that keeps crawling out of the woodwork to share their putrid mind with the world.
Sneering by Erik Naggum in “comp.lang.lisp” newsgroup, 2000-03-06. Source
out of the woodwork = Emerging from obscurity or a place of seclusion. It often is put as come (or crawl) out of the woodwork, as in The candidates for this job were coming out of the woodwork. The expression alludes to insects crawling out of the interior wooden fittings of a house, such as baseboards and moldings. (AHD)

steamroll

“Oleg” is not the first person to encounter a text that presents the reader with two simultaneous impossibilities: (1) a different view to a reality he does not recognize but feels he should, and (2) such a powerful model (or set of models) that the reader has two choices: (a) to bow to and accept it, or (b) be steamrollered by it. The failure to deal with such impossibilities causes people to take to the street to protest against high prices of necessities, to fight globalization with riots, etc. The /right/ way to deal with it is of course to challenge the underlying model, but this requires both skill and intelligence; hence his profound sense of powerlessness.
online computing forum message, by kook persona Erik Naggum, 2003-01-10, “comp.lang.lisp” Source

logorrhea

I thought I said that: I concluded that Dylan was a waste of time. What kept me interested in it for a while was the Lisp-like syntax. I didn't find the semantics and the “feature set” sufficiently attractive on their own, and knowing how fixed-grammer languages evolve (rampant keyworditis and logorrhea), didn't appear to be something worth investing in at the time.
Erik Naggum on comp.lang.lisp; 2000-07-01
See also: logorrhea

ascetic

“So I was wondering why call/cc is not implemented.”. Because the Common Lisp crowd doesn't want you to implement manually all the control flow mechanisms that CALL/CC is used to implement, and that is because there is no desire to pare the language down to “essentials” or Scheme's ascetic/annorexic notions of “elegance”.
“continuations and cl” (2000-02-14) by Erik Naggum. Newsgroup posting on comp.lang.lisp.
annorexia = Loss of appetite for food. annorexia.
Scheme is a computer language. Call/cc is short for Call-with-current-continuation. It is a technical feature of programing languages.
ascetic = A person who renounces material comforts and leads a life of austere self-discipline.
annorexia

-f ipso facto | Your posting here makes you ipso facto part of the Lisp community. [Erik Naggum in comp.lang.lisp]

-l wherewithal | OK, I understand this to mean that you do not have the mental wherewithall to understand that focusing on people is a choice, opposed to focusing on the arguments, on information, on ideas, on knowledge, on understanding, etc. [Erik Naggum in comp.lang.lisp, 2002-09-28]

-w defeatist | ... and I frankly do not quite understand the depressingly defeatist attitude of those who think there is no use — a long journey starts with the first step ... [Erik Naggum on comp.lang.lisp]

-w minutiae | as long as you wish to fuss about minutiae, at least get them right. [Erik naggum, 1996-11-09, comp.emacs]

Evaluation of Erik

Another thing i want to say here quickly is that i don't regard Erik as some kinda god or admirable person for his computing knowledge. Among human animal's history, in the field of theoretical computer science or practical programing, in this century, if you multiply Erik's contributions 10 fold, he probably wouldn't have a place. So, the bunch of tech geekers online all praising Erik being some sort of genius, is ludicrous to me. (they do that partly because Erik is dead. Human animals, esp males, love to approve people when they are dead. All those eulogies and posthumous awards and memorials fuck. (See: Support Living Artists) )

Erik's social insights, as far as i've read from 1999 to about 2003 (a period i think i read all his comp.lang.lisp writings), wasn't anything substantial in any academic or science contexts, nor are they particularly award-winning material when judged as a letter of art in academia.

When you evaluate someone's work, especially in the context of a dead person, you have to judge it from the appropriate field or community. So, taken Erik's work into the computer science community, you might ask, has he invented some notable theory? No. Of his code, are they widely used, praised, or otherwise influential to computing? Well, no. If you survey theoretical computer science, there are probably some tens of thousands papers published each year, and of these, probably less that 0.1% that is actually noteworthy, and of these 0.1%, most only meaningful to a few human animals in esoteric fields. Erik's life time work, when taken in this context, probably don't even make it into that 0.1% barely noteworthy. Now on the aspect of industrial code, there is a designer or coders behind every protocol and its implementation (say the whole TCP/IP protocol suite and apps), languages (tens of general popular ones or hundreds of notable domain specific ones), software (say, the well known web browsers, email apps, IM/IRC programs, notable websites (e.g. top 5000 trafficked sites), encryption software, banking software, tele-communication software, software in commerce, business software such as spreadsheets and word processors, scientific software from calculators to weather prediction... There are probably few hundred thousand software that are used by significant number of people today), each one of these software, has a person (or more) that actually coded it. Consider Erik's contribution to humanity in terms of software he's written, then it's probably nowhere notable. As a more concrete example, today google has maybe a hundred or more technologies and services, e.g. google chrome, gmail, google news, google sites, webmaster tools, analytics, google code, google groups, orkut social networking site, blogger, google docs, igoogle, google talk, youtube, AdSense ... and so on. Some of these, are written by a single programer, or few lead programers. Any one of these people, probably has equal, if not more significance, then the code Erik's written in his lifetime. Google is just one company, among the top Fortune 500 or fortunate 10 hundred thousand successful tech companies. Each company, probably has 10 or hundreds notable lead programers, technologists, research scientists, “fellows”. When you consider this, you can see that Erik's code, however fantastic, but in the sense of posthumous evaluation, probably isn't anywhere notable.

A lot people say Erik has important insight. I don't deny it. After all, he is the person i read in comp.lang.lisp for several years. But if we seriously want to evaluate the quality of his contributions, his insights in his newsgroup rants, are not that much worthy. His rants are often technically incoherent. For example, this piece of criticism on XML that one of the more well known among his postings:

Newsgroups: comp.lang.lisp
From: Erik Naggum
Date: 28 Dec 2002 03:08:55 +0000
Local: Fri, Dec 27 2002 8:08 pm
Subject: Re: S-exp vs XML, HTML, LaTeX (was: Why lisp is growing)
http://groups.google.com/group/comp.lang.lisp/msg/9a30c508201627ee
(local copy: erik_naggum_on_xml.txt)

Out of the 2.7k words, some 1/3 is irrelevant rant on human animals, about babies, breasts, rape, American male, George Bush the motherfucker... If we remove these, and look at his technical content, they are mostly opinions, and not that informative, coherent, or valuable. This piece, at best, is a brilliant rant, but nowhere comes close as a brilliant tech commentary, criticism on XML, history of SGML, nor as a good practical piece of myth-debunking on XML/SGML for web professionals. However you dice it, his writings at best are in the category of rants and ravings than criticism proper or educational or informative value.

His, almost only, well-known published piece in some professional context, is about date format. “The Long, Painful History of Time” (1999-10) by Erik Naggum. http://naggum.no/lugm-time.html. (local copy: Erik Naggum — A Long, Painful History of Time) I recall, i read it twice in separate times. I wasn't impressed. At best, its value is about as great as some good piece of RFC writing, and there are few thousands of RFCs, and there are some millions of good tech documents like that. Some people, probably has written tens or hundreds of such good tech pieces, and these people are mostly unknown.

Note also that i think Erik sometimes attacked technologies that he later may have changed his stance. I recall, he has written raving pieces against unicode (dated late 1990s i think), in his typical fashion, calling it a piece of fucking shit or political disruption or something to that effect.

According to Wikipedia, Erik has contributed significantly to emacs. Quote:

Erik Naggum contributed to the free software project Emacs text editor for almost a decade.[8].

The citation, is one of Erik's own posting:

Newsgroups: comp.lang.lisp
From: Erik Naggum
Date: 24 Aug 2002 04:05:25 +0000
Local: Sat, Aug 24 2002 12:05 am
Subject: Re: The Next Generation of Lisp Programmers
http://groups.google.com/group/comp.lang.lisp/msg/e239591cbc9eb18d

I have become a emacs lisp programer since 2006. I recall, in 2007 or so, out of boredom and curiosity, i tried to check what code Erik has put in emacs. My check is only casual and not in anyway thorough or as research, but i recall, all i can find on the surface is one obscure lisp package, i think it was related to date time format. (much of the hand-waving in this article will be solidified or corrected in the coming months, as i find more time to search my archive or check facts)

I also recall, that Erik doesn't give a shit about Xemacs during the heated years of the GNU emacs vs Xemacs war (this period is roughly ~1990 to ~2004). During that time i was reading Erik (~1999 to 2004), Xemacs in my opinion, is much more robust and useful than emacs. (See: My Experience of Emacs vs XEmacs) So, this is a tech issue that i find Erik's opinion is directly contrary to my own experiences in a area i have expertise. (even consider that much of his misgivings about xemacs may be founded on political aspects, i'm more inclined to side with the Lucid/Xemacs on political or social aspects too.)

Although i think all of my posts regarding Erik are positive (while he's alive), and he was the only reason i read comp.lang.lisp, however, his newsgroup behavior is really mean, base, despicable. My principle of life is love and knowledge. (See: (Knowledge + Love) / Disrespectfulness) I may hate unix, tech geeking fuckheads, or think that Larry Wall is a criminal (e.g. Larry Wall and Cults), but these are expressions of hatred towards things, towards behaviors, criticism of celebrities. In a term of social science, they are “of public interest”. In particular, i don't hate in the fucking American's blown-up sensibilities of so-called “hate crime”, where any negative commentary or remark about any so-called “minority” is considered a hate crime, any alternative views of Nazis that is not absolutely negative is “hate crime” (fuck the American motherfuckers that are typically well-to-do WASPs). Newsgroup's culture has always been harsh and pissing-fights are its daily rituals among participants. However, Erik has the energy to keep on and on attacking individuals, on any nameless joe, he'd spend tens of hours, insulting their moms, devising ever creative writings telling them to kill themselfs, etc. In reading the sheer quantities of such posts, and you can tell that some (or most) of them are simply pure hatred. Quite ugly and bothersome to see. I don't know if Erik truely wished death or mishap to happen to his antagonists, but his writings, by any reasonable interpretation, express exactly that.

On the other hand, i think most of Erik's views are shared and vehemently expressed by me. We both hated Perl, Tex/LaTeX, unix, to extreme degrees. (See: The Unix Pestilence, Pathetically Elational Regex Language, The TeX Pestilence. ) And, we both HATE moralists, and are not afraid to express it.

I miss Erik, if for anything, for losing a non-conformist compatriot, a free thinker.

2009-06-21

google-code-prettify tutorial

perm url with updates: http://xahlee.org/js/google-code-prettify/index.html

Google-code-prettify Examples

Xah Lee, 2009-06-20

This page gives some examples using Google-code-prettify technology, and evaluate its quality.

Google-code-prettify (GCP) is a javascript library that syntax color computer lang source code in html. It does the job on the fly. Project page at: http://code.google.com/p/google-code-prettify/.

Basic Use

It is very easy to use. All you have to do is to download the javascript files. Then, in your web page, add these lines:

<link rel="stylesheet" type="text/css" href="gcp/prettify.css">
<script type="text/javascript" src="gcp/prettify.js"></script>
<body onload="prettyPrint()">

Then, in places you want your source code to be colored, wrap it with a “pre” tag like this:

<pre class="prettyprint">
x = 1+1;
# something something
</pre>

Advantages:

  • Your lang source code is still readable in raw html. This means, if you need to edit it or update it, it can be easily done.
  • Easy to use. You don't need to run some script to generate span markup in the first place.
  • Easy to install. Works in all major browsers.
  • Support all major langs (e.g. any lang with C-like syntax). Also support some wiki syntax, auto link urls.

Disadvantages:

  • Requires js turned on. If js is not turned on in browser, readers won't see colored syntax.
  • The coloring is heuristic based. Quite often it is wrong. if your source code processes html or url, has lots regex, or in general is a web application such as Javascript or PHP, it will confuse GCP and sometimes the displayed source code text may be botched.
  • If your lang has complex syntax, such as Perl, PHP, Ocaml, then GCP doesn't handle it well due to it being generic and heuristic based.
  • Often, it makes your web page a invalid HTML.
  • If your source code contain chars that needs to be html encoded, such as the “less than” sign in if (x<y) {print 4;}, then you still need to html encode the “less than” sign. If you don't, it's a invalid html. This introduces complexities in 2 aspects. (1) you still need to pre-process your source code before inserting into your html page. If you don't, it can be a potential problem for some languages that may screw up your browser's ability to display the text. (2) How the js code colors “&lt;” is a heuristic guess.

Examples

Here are some examples with different languages. For comparison, each example has a version using html span, done by htmlize elisp package with emacs.

Java:

Python:

Perl:

Emacs Lisp:

Conclusion

Google-code-prettify is suitable only for small number of lines or for non-critical writing such as on wiki or blogs. It is probably not suitable for online documentation of a computer language or a book length tutorial.

It will very often create bad coloring or even truncate your source code in the display when your lang has lots regex, or if your code deals with processing url/html/xml/css/javascript, or if your lang has complex syntax, such as perl, or niche langs such as Mathematica or OCaml. For code over 2 hundred lines, it also takes a second to load. In comparison, bulky html with span wraps that has more coloring and correct syntax is still instaneous.