jargons i hate

◆ duck typing

A term i despise about tech geekers, is the “duck typing”. Like, in their drivel they would say, blab blab, blab, quack like a duck, so xyz.

◆ foobar
Another term i hate about tech geekers, is “foo” and “bar”. When i read some doc saying “e.g. foo this, bar that”, i really want to tell them to “foobar your ass”.

◆ hacker
And the worst of all, is the obsession about the term “hack, hacking, hackers”. Biggest transgressors here is Richard Stallman and Paul Graham.

• 〈Paul Graham's Infatuation with the Concept of Hacker〉

◆ list comprehension


◆ Tail Recursion

• 〈Why You Should Avoid The Jargon “Tail Recursion”〉

◆ lisp1 lisp2

• 〈Why You should Not Use The Jargon Lisp1 and Lisp2〉

◆ currying

◆ lambda

◆ monad

◆ call-cc

much more ...

〈Jargons of Software Industry〉

• 〈Math Terminology and Naming of Things〉


lisp/lambda logos


On Sep 25, 4:32 pm, Kenneth Tilton wrote:
> On 9/25/2010 4:01 PM, Marc Mientki wrote:
> > Am 25.09.2010 21:23, schrieb Isaiah Gilliland:
> >> Just something I made while bored and reading some posts about the
> >> Lisp logo. I don't really care much if the anyone wants to use it, I
> >> just thought it was a neat and clean design for a logo. I made it red
> >> to pop out, plus I think some lispers like red, and I feel it's
> >> important to have parenthesis in there as it's a defining
> >> characteristic of the language. It's simple and kinda reminds me of
> >> the era Lisp came from.
> >> Had it sitting on my hard disk, so I'm just gonna throw it out there
> >> and see what happens.
> >> http://www.imagebam.com/image/f52f5299341292
> >> Take care^^
> > No bad as starting point for further work. To me it is to few readable.
> > A propos lisp logo - I like Clozure loge very well. It has parenthesis
> > and retro appearing colors:
> > https://www.ohloh.net/p/ccl
> Ugh! :) Clearly someone with all my graphic talent at work. And I hate
> that they broke the CCL trademark with the line break. I say just go
> with the lambda character, perhaps stylized a bit to make clear it is a
> trademark of something. Then we just have to take over the world and
> people will grok that /that/ lambda is CL.

hey kenny, don't steal my lambda!

• 〈A Lambda Logo Tour〉

but seriously


these are new to me. I'll add it there.

now, y'know i cant go off logos without some personal remarks...

i think that logo is nice, but the only flaw is that there's nothing in it that reminds people of what it stands for, i.e. Clozure Common Lisp.

if i dare to suggest, it'd be nicer if the parens are expanded to include the full words, and i think perhaps the words Clozure Lisp.

o and Isaiah, i agree with others that your logo is plain. The area i think can use some improvement are:

(1) hard to make out that it is anything. Even if the image is shrinked, the way you lisp letters doesn't come close to spelling LISP.
(2) what is this logo for? lisp? Common Lisp? particular implementation of Common Lisp? or just general lisp?
(3) a lil personal esthetic taste is that the paren corner seems too jarring with the round lisp style you are using.

btw, the image hosting u using has lots of ads.

u might try http://imgur.com/


logo design; lojban

On Sep 22, 10:03 pm, "Scott L. Burson" wrote:
> Xah Lee wrote:
> > gossip, Guy Steele, Lojban, Racket
> > some random gossips.
> > ----------
> > Discovered that Guy Steele, apparantly is a lojban speaker! Yay!
> > See:
> >http://www.lojban.org/files/papers/4thtense
> > Also
> > Robert J. Chassell, known as the author of
> > 《An Introduction to Programming in Emacs Lisp》
> > is also a lojban speaker.
> > amazing. Are they actually have learned much lojban? or just happens
> > to discuss the issue?
> As long as we're into random tidbits here, Bob Chassell and I were both
> active in the Loglan community, before the schism that led to the
> creation of Lojban.  I've never learned Lojban, but I do still speak a
> little of the 1978 dialect of Loglan.
> -- Scott

very cool!

i studied lojban leisurely for a couple of year starting in 2003.

wrote some tutorial with voice recordings. Was somewhat popular in mid 2000s.

• 〈Xah's lojban page〉

but kinda drifted away since about 2006.


(a bit personal digression follows)

though, after a couple of years felt disillusioned... not really due to the lang, but caused by the community. e.g. i was bitching with 4 letter words about the fact that the logo is the worst shit possible, they (some of them) of course cannot admit it caused by my style. I kinda just drifted away from lojban.

you can see their logo here:

one of the thread about my complain of the logo is here:

To: lojban-list@lojban.org
Subject: Re: [lojban] Re: lojban logo
From: Matt Arnold
Date: Sun, 14 Aug 2005 12:06:33 -0400


typically, when some truth is so obvious to anyone, the in-group people don't see it, and will defend/deny it. Same happens with my what you might call “trolling” experience in emacs, perl, and common lisp communities.

i eventually did a lot logos and wrote a summary of my experiences about talking about logos to the geeker communities. Here:

• 〈The Purpose of Logos and Principles of Logo Design〉

• 〈Logo Design and Software Industry〉

note that several articles came from bitching about lisp logo in comp.lang.lisp, met with same resistance. Typically, the ignorance goes: “we don't need stinking logo, cause that's marketing bullshit.”, and typically a gaggle of tech geekers will follow up and nod their heads in some whole hearted way.



gossip, Guy Steel, Lojban, Racket

gossip, Guy Steel, Lojban, Racket

some random gossips.

Discovered that Guy Steel, apparantly is a lojban speaker! Yay!


Robert J. Chassell, known as the author of
《An Introduction to Programming in Emacs Lisp》

is also a lojban speaker.

amazing. Are they actually have learned much lojban? or just happens to discuss the issue?

old news: PLT Scheme is now named Racket.

A classic piece of mockery of Guido by Schemers

• 〈The Fate of Lambda in Python 3000 and Scheme v300〉

html6, your html5/xml simplified


On Sep 21, 10:49 pm, Alex Shinn wrote:
> On Sep 22, 1:46 am, Xah Lee wrote:
> > On Sep 21, 9:42 am, Xah Lee wrote:
> > > can anyone point me to some popular xml/sexp transformation util?
> > > btw, is there some common/standard sexp syntax for xml? by that i mean
> > > perhaps some that is named, well defined, or most popularly used in
> > > scheme community. (i vaguelly recall scheme community i think plt
> > > scheme has such a format)
> > > basically ,am interested in a sexp syntax for writing xml.
> > found thishttp://okmij.org/ftp/Scheme/SXML.html
> > is this basically the one or are there major alternatives?
> It's by far the most widely ported Scheme XML library.
> Other libraries often use the same sxml format (including
> at least HTML and MIME parsers I've seen).
> Unfortunately, the format uses
>   (@ (name "value") ...)
> syntax for attributes, which has two disadvantages:
>   1. '@ is not a valid RnRS identifier.
>   2. The attributes are not dotted pairs, which can
>   be less efficient and doesn't play well with standard
>   alist utilities.
> I've seen a proposal to address the first issue by
> replacing "@" with "^".
> Alternately, since XML doesn't allow nested structures
> without a tag, the attributes could just be distinguished
> by their lack of a tag:  ((name "value") ...).
> --
> Alex

thanks Alex Shinn & Alexander Burger.

recently i got tired of w3c and now html5 wtf-group meandering attitude about html/xhtml/html5 in the past decade.

(see: 〈(Google Earth) KML Validation Fuckup〉http://xahlee.org/comp/kml_validation.html )

Who Listens to Correctness When Authorities Meander?


When XML and XHTML came alone in about 2000 with massive fanfare, we are told that XHTML will change society, or, at least, make the web correct and valid and far more easier to develop and flexible. Now it's a decade later. Sure the web has improved, but as far as html/xhtml and browser rendering goes, it's still a fuck soup with extreme complexities. 99.99% of web pages are still not valid. Major browsers still don't agree on their rendering behavior. Web dev is actually far more complex than before, involving tens or hundreds of tech that hardly a person even knows about. It's hard to say if it is better at all than the HTML3 days with “font” and “table” tags and gazillion tricks. The best practical approach is still trial n error with browsers.

And, now HTML5 comes alone, from a newfangled hip group, with a attitude that validation is overrated — a flying fuck to the face about the XML mantra from standards bodies, just when there starts to be more and more sites with correct XHTML.

XML is break from SGML, with many justifications why it needs be, and now HTML5 is a break from both SGML and XML. WTFML anyone?

so i've been thinking of starting a radical proposal.

• 〈HTML6, Your HTML/XML Simplified〉

here's the draft
HTML6, Your HTML/XML Simplified

Xah Lee, 2010-09-21

Tired of the standard bodies telling us what to do and change their altitude? Tired of the SGML/HTML/XML/XHTML/HTML5 changes? Tire no more, here's a new proposal that will make life easier.

Introducing HTML6

HTML6 is based on HTML5, XML, and a rectified LISP syntax. More specifically, it is derived from existing work on this, the SXML. http://okmij.org/ftp/Scheme/SXML.html, except that there is complete regularity at syntax level, and is not considered or compatible with lisp readers. The syntax can be specified by 3 short lines of parsing expression grammar.

The aim is far more simpler syntax, 100% regularity, and leaner. but with a far simpler, and more strict, format.

First of all, no error is accepted, ever. If a source code has incorrect syntax, that page is not displayed.


Here's a standard ATOM webfeed XML file.

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="http://xahlee.org/emacs/">

<title>Xah's Emacs Blog</title>
<subtitle>Emacs, Emacs, Emacs</subtitle>
<link rel="self" href="http://xahlee.org/emacs/blog.xml"/>
<link rel="alternate" href="http://xahlee.org/emacs/blog.html"/>
<name>Xah Lee</name>
<rights>© 2009, 2010 Xah Lee</rights>

<title>Using Emacs's Abbrev Mode for Abbreviation</title>
<link rel="alternate" href="http://xahlee.org/emacs/emacs_abbrev_mode.html"/>

Here's how it looks like in html6:

〔?xml 「version “1.0” encoding “utf-8”」〕
〔feed 「xmlns “http://www.w3.org/2005/Atom” xml:base “http://xahlee.org/emacs/”」

〔title Xah's Emacs Blog〕
〔subtitle Emacs, Emacs, Emacs〕
〔link 「rel “self” href “http://xahlee.org/emacs/blog.xml”」〕
〔link 「rel “alternate” href “http://xahlee.org/emacs/blog.html”」〕
〔updated 2010-09-19T14:53:08-07:00〕
〔name Xah Lee〕
〔uri http://xahlee.org/〕

〔id http://xahlee.org/emacs/blog.html〕
〔icon http://xahlee.org/ics/sum.png〕
〔rights © 2009, 2010 Xah Lee〕

〔title Using Emacs's Abbrev Mode for Abbreviation〕
〔id tag:xahlee.org,2010-09-19:215308〕
〔updated 2010-09-19T14:53:08-07:00〕
〔summary tutorial〕
〔link 「rel “alternate” href “http://xahlee.org/emacs/emacs_abbrev_mode.html”」〕

Simple Matching Pairs For Tag Delimiters

The standard xml markup bracket is simplified using simple lisp style matching pairs. For example, this code:

Is written as:

〔h1 HTML6〕
The delimiter used is:

Character Unicode Code Point Unicode Name
XML Properties and Attributes Syntax

In xml:

<h1 id="xyz" class="abc">HTML6</h1>
In html6:

〔h1「id “xyz” class “abc”」HTML6〕
The attributes are specified by matching corner brackets. Items inside are a sequence of pairs. The value must be quoted by curly double quotes.

Escape Mechanisms

To include the 〔tortoise shell〕 delimiters in data, use “〔” and “〕”, similarly for the 「corner brackets」.

Unicode; No More CD Data and Entities “&”

There's no Entities. Except the unicode in hexadecimal format “&#x‹unicode code point hexidecimal›”.

For example, “&” is not allowed.

Treatment of Whitespace

Basically identical to XML.

Char Encoding; UTF8 and UTF16 Only

Source code must be UTF8 or UTF16, only. Nothing else.

File Name Extension

File name extension is “.xml6”.


got so tired of the w3c and wtf-group “standard bodies” of their continuous changing attitude about what html/xhtml should be, so i cooked up this.

it'd be nice if we just adopt sxml, but the various lisp ones i found has problems in that they ignore htm/xml as a syntax by itself, instead, the lispers just wanted lisp compatible with lisp readers, not really a standalone syntax.

the lisp's sexp syntax has a bunch of problems, foremost is that its not regular. (which the xml/xhtml movement fixed to html to some degree, but is now thwarted by the new html5 wtf-group with google and apple backing, nay, mostly just google + apple.)

• 〈Fundamental Problems of Lisp〉

also, the xml as textual representation of a tree has a quirk, in that each node has this special thing called “properties” or “attribute”, that are not a node/branch, but rather, are info attached to a node. The standard sexp to representation for this is inconsistent, e.g.

(tagX :probA aValue :propB bValue ...)

without changing the syntax, the above is like this:

(a b c d e ...)

which means that b c d e are actually nodes.

another way to represent xml's attribute, i think is from sxml as shown in Alex and Alexander's messages:

(a ((x . "1") (y . "2")) (b NIL (c ((y . "2")) "Mumble")) (d))

(@ (name "value") ...)

both have the same issue. That is, there's no syntax level distinction of what's a node and what's a node's property.

e.g. in this

(a ((x . "1") (y . "2")) (b NIL (c ((y . "2")) "Mumble")) (d))

the ((x . "1") (y . "2")) can be interpreted as a node by itself, where the first element is again a node. But also here, it uses lisp's special con syntax (x . "1") which is itself ambiguous at the syntax level. e.g. it can be considered as a node named x with 2 branches “.” and “"1"”, or it can be considered as a node named “cons” with 2 branches “x” and “"1"”.

in this:

(@ (name "value") ...)

again, this whole thing at the syntax level is simply a node named “@”. Only at the semantic level, that it is taken as properties of a node by the special head “@”.

So, in conceving html6, i thought a solution for getting rid of syntax ambiguity for node vs attributes is to use a special bracket for properties/attributes of a node. e.g.

In xml:


In html6:

〔h1「id “xyz” class “abc”」HTML6〕

one thing about this html6 is that it is intentionally separate as being a sexp in the lisp world. The key is that the syntax is designed specifically as a 2d textual representation of a tree, and with a attribute quote that attachs a limited form of info (pairs sequence) to any node to fit existing xml.

the advantage of this is that it should be extremely easy to parse, in perhaps just 3 lines of parsing expression grammar. And can be easily done in perl, python, ruby... without entailing lisp quirks.

any thoughts about flaws?

it's just a personal fantasy. ☺

Xah ∑ xahlee.org ☄


lisp popularity

On Sep 21, 10:21 am, Tim Bradshaw wrote:
> On 2010-09-21 17:36:19 +0100, Xah Lee said:
> > lisp had a come back in early 2000s, due to Paul Graham and Practical
> > Common Lisp,
> > • 〈Computer Language Popularity Trend〉
> >http://xahlee.org/lang_traf/index.html
> > but seems to have gone on a steady decline since. But i think clojure
> > is now a new wave of lisp come-back.
> That's why there are *so many more good libraries* than when I was
> doing stuff actively in the early 2000s.  Yes, I can see that makes
> complete sense: one must ignore things like that and focus on newsgroup
> traffic, because that's a really reliable indicator.

you missed the point due to your Common Lisp sensitivity, no doubt.

the question is not about whether there are more libs for Common Lisp, nor whether Common Lisp's popularity increased or decreased, or whether Xah's newsgroup chart is good indication of lisp popularity.

the question was, whether lisp has become more popular in late years, with respect to the whole computing industry. And, what useful info you might have to indicate one way or another. More specifically, i think so because largely due to Clojure, and recent thinking about the multi-core problem and how functional langs is supposed to solve it.

my newsgroup chart was there just to provide one ref point for the fact that lisp experienced a resurgence in early 2000s.

am often so frustrated by the tech geeking idiots. They never see the important points, but fret over minute details.

the question of popularity of lisp is a interesting question. Even though it is not a scientific question, but still a enjoyable hot gossip topic, and certainly has reasonable answers, and is in fact a important question for market research. If you want, you can think of it as a research problem in social statistics.

but the common tech geeking idiots don't understand social issues, they just take it as my lisp vs your lisp, my lang vs your lang, vi vs emacs, and went about fucking idiot shits on and on, on and on.

these idiots, what do they do other than my lang vs your lang all day?? Sure, that is also a enjoyable topic to rant and drivel about, but the problem is, they never saw there is a important social question behind it.

(for more about this, see:
• 〈Text Editors Popularity and Market Research〉

speaking of this... y'know how some programers have math background? and often physics, engineering, and sometimes literature. Though, it's rare, nay, none ever, that you find a programer also having a degree in social sciences (or psychology). That explains their idiocy, in topics of computing industry issues, such as UI design, lang popularity, trends, marketing, market research, logo design, human issues, ...

O, i so enjoy writing 'bout these idiots, let me continue my binge even with my near RSI symptomps... (god wants to fuck my hand up, i say to him “fuck u”) ... these shallow idiots... what to do with them?

Ok, maybe let's try a more constructive approach. Let's say, you are to write a essay, or report. You know, pretent you are now a journalist, or social scientist writing for some reputable social stat journal. Suppose your title is “Lisp Popularity in 2000s”. Now, i'm fairly sure the tech geekers in their life have read one or two such type of reports. So now, pretend you are such a social scientist, and try to write such a piece. Y'know? you probably want to provide a “abstract”, and lots of charts, stats, and references and citations. Y'know? it might take a year to do, but let's say you short of time and need to write it in 1 hour. Try your best at this mock report. See what u come up. Test ur writing skills, and you might pick up one or two social science research skills!

Xah ∑ xahlee.org ☄

lisp comeback

On Sep 21, 9:00 am, namekuseijin wrote:
> On 20 set, 23:38, Xah Lee wrote:
> > • 〈Death of Newsgroups〉http://xahlee.org/UnixResource_dir/writ2/death_of_newsgroups.html
> what's the matter?  Lisp has been dead for longer than newsgroups, but
> is still alive and kicking... (specially among old farts)...

i think clojure is really putting life back in lisp, from several hours of blog reading yesterday.

lisp had a come back in early 2000s, due to Paul Graham and Practical Common Lisp,

• 〈Computer Language Popularity Trend〉

but seems to have gone on a steady decline since. But i think clojure is now a new wave of lisp come-back.



clojure f#


On Sep 20, 7:11 pm, namekuseijin wrote:
> I'm looking forward for OCaml/F# for Trolls. :)
> kiddin'  I do enjoy some of Harrop's ramblings...

i just finished watching a great interview.

〈ELC 2010: Rich Hickey and Joe Pamer - Perspectives on Clojure and F#〉 (2010-08-09) http://channel9.msdn.com/blogs/charles/emerging-langs-clojure-and-f

It's 24 minutes. It's interview with Clojure inventor Rick Hickey, and Microsoft's F# compiler writer Joe Pamer.

in past few years i've watched a number of highly intelligent people on video talking about langs and tech. It's really great.

in this vid, it's far more interesting and attractive than Rich's other vid i mentioned recently.

havn't seen Harrop here for a year or two. My random guess is that newsgroup popularity is so dead that he doesn't consider the effort here worthwhile anymore.

• 〈Death of Newsgroups〉

• 〈Programer Celebrities; Styles and Tack〉

Xah ∑ xahlee.org ☄


convenience of drag and drop


On Sep 17, 5:23 pm, "David E. Ross" wrote:
> On 9/17/10 10:48 AM, Osmo Saarikumpu wrote:
> > David E. Ross kirjoitti:
> >>> On 9/15/10 11:36 PM, Osmo Saarikumpu wrote:
> >>> JFTR, the folders do not have to be on the desktop for drag & drop to work.
> >> To drop, the folder must either reside on my desktop or else be open on
> >> my desktop.
> > The desktop is just another folder among others. You might want to open
> > Windows Explorer (Windows + e), which displays the
> > hierarchical structure of your drives, folders and files. Using Windows
> > Explorer, you can drag the image file to any drive or folder you desire.
> So I must use Windows Explorer or some other means to navigate to where
> the target folder is visible on my desktop.  (No, I don't have to open
> the target folder; I merely have to have it visible so that I can drop
> into it.)  Then, to keep the target folder visible, I must reduce the
> size of my browser window.  Finally, I select the image on my browser
> window, drag it to the target folder while holding down my mouse's left
> button, and then let go of the mouse button.  Of course, I will likely
> then want to close Windows Explorer or what ever folder I had to open to
> see the target folder.  Also, if my hand is unsteady on my mouse or if I
> run out of room for moving my mouse, the image might drop into some
> unintended location.
> Somehow, it seems so much easier to select the image on my browser
> window, right-click to get a pull-down context menu, select "Save image
> as", navigate to the target folder in the file selection window, and
> click the Save button.  Because the target folder does not have to be
> visible on my desktop, I don't have to reduce the size of my browser
> window; and I don't have to close Windows Explorer or what ever folder I
> had to open to see the target folder.  And I have far less risk from an
> unsteady hand.
> This is why I never knew until this week -- after years and years of
> using Netscape Navigator, Mozilla Suite, and Seamonkey -- that a
> drag-and-drop capability exists, a capability that appears more bother
> than it's worth.

lol David. Your personal methodology of operating the browser, perhaps computer, is so outdated, inefficient.

Try this simple test:

suppose your job is to save images to local drive. Suppose, you doing a lot research, and need to collect many images to the local disk, selectively. (so, automation by scripting is out)

Now, let's say, you need to view one thousand images of a particular research subject, and 20% of them you need to save to your disk.

you'll quickly find, the most efficient way is drag n drop.

the simplest example is just porn. That's why every one knows about this method.

But for other examples i actually need to do, view thousands of photos and save perhaps 10% of them and eventually only use perhaps 2% of them, see for examples:

• 〈Batgirl Craze (page 1)〉

• 〈Xah's Visual Arts Gallery〉

• 〈Crop Circle Gallery〉

• 〈Beautiful Architectures〉

the above are just personal examples, but there are lots of other smaller cases. For example, you know there's icons for facebook, twitter, webfeed/rss, everywhere right? As a webmaster, at some point you probably wanted to add such a feature to your site and sporting a icon. So, you have now the job of picking out a icon. For a particular service, let's say twitter, there are tens of icons people have created (and no, there's not really one “standard” or “official”, and only webfeed icon is SOMEWHAT a exception). So, you need to image search at all the icons and pick the ones you want (possibly with site's url, auhtor info, for credit ). In the process, usually you need to save 5 or more to your disk, sometimes the whole html content, sometimes just url, sometimes just snippet of text. (then later on process the info you gathered and pick one for your site) The most efficient, on-the-spot, method for this is just drag and drop. (these tasks are usually small and spontaneous and irregular, so you can't really spend time to prepare a script for automation, and if you do, usually you end up spending more time than worth)

see also:

• 〈Keyboarding & Macros in Mac and Windows (How to Increase Your Computer Operation Efficiency)〉

• 〈How to rsync, unison, wget, curl〉

Xah ∑ xahlee.org ☄

practical misc applications of unicode


On Sep 18, 1:25 am, dorayme wrote:
> In article
> > m>,
>  Xah Lee wrote:
> > Try this simple test:
> > suppose your job is to save images to local drive. Suppose, you doing
> > a lot research, and need to collect many images to the local disk,
> > selectively. (so, automation by scripting is out)
> > Now, let's say, you need to view one thousand images of a particular
> > research subject, and 20% of them you need to save to your disk.
> > you'll quickly find, the most efficient way is drag n drop.
> > the simplest example is just porn. That's why every one knows about
> > this method.
> Why do you quote so much? To cure this, please read:

lol. i realized it's all dinasours here... quoting a article of 〈How do I quote correctly in Usenet?〉?

i don't even think i heard of the word netiquette in recent years.

in 1990s, everyday. In early 2000s, few times a year. In 2010: “what the heck is netiquette??”

> The second thing is this, why would you suppose the porn example
> is the simplest.

cause everyone's doing it behind everyone's back? Quote:

«PS Porn is a $13 giga usd industry per year in USA, according to New York Times. Source.»

«I'd like to know the relative sizes of different industries. e.g. film industry, video game industry, software industry. (I read somewhere that porn revenue in US is more than all sports entertainment industries combined (e.g. baseball, basketball, football).) If you find a referenc, please let me know!»

• 〈Moving Porn out of XahLee.org〉

• 〈Porn Freedom (What Is Obscenity?)〉

> Third, why would you suppose that everyone is like you and knows
> the drag and drop from this source? In my case, my grandma taught
> me to use a Mac and drag and drop is like breathing on a Mac. Not
> a rude part on show in any of her lessons.

humm... interesting question. The question is, what percentage of people knows about drag'n'drop.
To be specific, and let me narrow this to power users, programers, and web developers, or, people who do code html. My guess is that it's almost 100%. I don't remember when's the first time i learned of drag'n'drop images from browser to a folder to save. But am guessing must be late 1990s... but it might also be early 2000s.

i'm rather really surprised with David E Scott. Maybe he lives in a cave. ☺

> There is a fourth thing that is irritating me: wtf are you doing
> in your editor re character saving, I am always having to
> Edit/Compose As/Western (Mac Roman) your posts in my usenet
> reader.

you also lives in a cave. ☺

it's unicode, man. See:

• 〈UNICODE Basics: What's Character Encoding, UTF-8, and All That?〉

• 〈Unicode Popularity On Web〉

• 〈Sample Unicode Characters〉

btw, the 〈angle quote〉 is chinese convention. See:

• 〈Intro to Chinese Punctuation with Computer Language Syntax Perspectives〉

and in recent months i decided to use unicode smiley ☺ instead of the ascii hack :) which is really silly.

as for other unicode chars i use often, such as “curly quote”, 【Ctrl+C】, 「corner bracket」, etc, you can see rational here:

• 〈Transform HTML Tags with Emacs Lisp〉

what newsgroup ware u using? you probably should update to something more modern. For newsgroups, i simply just use groups.google.com e.g.


Xah ∑ xahlee.org ☄


emacs emacsw32 and cygwin-shell


Cygwin and EmacsW32

If you are using emacsW32, then you can run cygwin bash inside emacs by calling the command “cygwin-shell”.

First, you need to set the “cygwin-shell” path. This you can do by
pulling the menu under “Options‣Customize emacsW32”. Or, you can put
the following line in your .emacs:

「(setq w32shell-cygwin-bin "C:\\cygwin\\bin")」

Once you have the w32shell-cygwin-bin set, the command “shell” will also invoke cygwin-shell. If you want run plain Windows's “cmd.exe” shell, you can call cmd-shell. EmacsW32 also has msys-shell, which is for those who are using MinGW.

Note, when using cygwin shell in emacsW32, if the $PATH env var is not set correctly, it can cause Window to mistakingly popup a dialogue saying some program crashed. For a example, see:


Opera browser pain


• 〈Opera Web Browser Problems〉

> Xah Lee wrote:
> >You cannot “drag and drop” a image to a folder on desktop to save it.

On Sep 15, 1:45 pm, masonc...@XXXfrontal-lobe.info wrote:
> Why would you want to clutter your desktop?  
> However, Images can easily be saved, copied, or used on the desktop
> by one left and one right click on them.

when i browse porn, i often like to save pics i like. Drag'n'drop is the easiest.

> >They insist on using different keyboard shortcuts than every browser.
> Who needs a keyboard shortcut?  Perhaps those who do should stick
> to MSIE.

keyboard shortcuts is very convient especially for power users. e.g. emacs, vi, are all about keys. Even in mouse intensive apps, such as 3d modler Blender, or photoshop, gimp, InkScape, when you become a pro you tend to go for the keys. Because, keys are precise and brainless operation, while mousing requires the harder aim and eye-balling decision making, slower too.

> >For example, ?Ctrl+Tab? is for switching tab. But in Opera, it shows a
> >tab menu instead. Normally, i can quickly switch to different tabs and
> >stop at the one i want, visually looking at each tab for fraction of a
> >second. With Opera, i have to read the titles or small thumbnails.
> However Opera displays as many pages as you wish in its window,
> can place its toolbars wherever you wish.

【Ctrl+Tab】 to switch is convient. Because i can keep pressing it to switch among tabs quickly, and stop at the tab i want. Usual practical speed is perhaps viewing 6 tabs per second. I normally have about 10 to 20 tabs open in each of Chrome and FireFox. (my 2 daily browser, open at all times) This many because when you do research on a topic, you have a lot pages.

Also, i've got system-wide key macros so that 【Ctrl+Tab】 and 【Ctrl+Shift+Tab】 are single keys (they are the / and * on numpad). Of course, my system works in all browsers but stops dead in just Opera itself.

the conventional hotkey to switch tabs on Windows are
【Ctrl+Tab】, 【Ctrl+Shift+Tab】 and or
【Ctrl+PageUp】 , 【Ctrl+PageDown】.

All browser supports one of these shortcuts, usually both.

in my key macro app (on Windows it's AutoHotkey http://xahlee.org/mswin/autohotkey.html ), i can easily adjust to one of these. With opera, it takes some 10 min or more to findout what key is what for each operation i have macro for... the end result has been that i just didn't bother and abandoned opera for the possibility of using it more often.

> >Also, when closing a tab, instead of showing the tab next to the
> >closed one, Opera tries to be smart and jump to some other tab,
> >something like the one opened before the one you closed. Very
> >confusing. Same thing happens when switching to next/prev tabs using
> >their 1 and 2 key shortcuts on the numerical keypad.
> You do have to get used to Opera's conveniences.
> >?Ctrl++? does not zoom in.
> But + and - are all you need.

Thanks. Yesterday while i was frustrated and writing this, noticed the standard zoom in key Ctrl++ doesn't work. However, apparantly 【Ctrl+-】 does zoom out. So naturally one'd think 【Ctrl++】 should work too. So, you can see where this confusion came from. The point here is that the non-standardness adds up, like some might say about emacs. You end up spending days just to learn the tool first, before you can use it fruitfully.

> >Nudging my mouse's scroll wheel to the sides should scroll window
> >horizontally. It does not work in Opera, but it does in IE, Chrome,
> >Safari, FireFox. While Opera is supposed to suppose some fancy
> >“gestures”. Gesture my ass.
> Side scroll?  Oye.  By the way, Opera has a "Fit to Width" button that
> performs miracles in eliminating horizontal scrolling.

Side scroll is important.
There are popular sites that relies solely on side scroll.

e.g. http://www.plurk.com/chunweiku

the plurk site made mouse wheel to scroll horizontally, but there are other sites, that are designed to be horizontally scrolled, either for artistic effect or for practical purposes (e.g. history line, a series of photos, panorama).

all things said, for scroll wheel mouses that has left/right push feature , it seems stupid not to support the functionality of the device. The fact that all other major browsers do support it, indicates it's not some tech hurdle.

one wonders why opera doesn't support it. Is it just sloppiness, or they actually intentionally decided that they didn't want to support it?

what i can't really believe is that they don't support drag'n'drop for saving images. That's the last straw that broke the camel's back, and made me to write my essay. At first as usual i thought the feature is hidden in some preference that i need to turn it on... but not, after searching the web a bit.

> >The number keys on the numerical keypad do weird things. For example,
> >7 seems to zoom out to 20%. 8 zooms to 120%. 5 turns the current tab
> >into a window, inside the main window. 1 and 2 is for switching prev/
> >next tab.
> >The 1 and 2 key for switching tabs is convenient. You can repeatedly
> >press one of these keys to get to the tab you want. However, if you
> >landed on a empty page (new tab), the key starts to insert text in the
> >url field.
> Your are describing things utterly strange to me.  You must have really
> screwed up Opera's customization.  I suggest you remove it and re-install.

The numerical keypad as functional shortcuts keys is part of Opera, i discovered and started to use since maybe 2005 on the Mac.

I recall, few years ago when a new version of Opera came out, they removed those keys, and adopted keys more similar to FireFox. (and i was thinking: “Opera finally realized the weirdness of their keys”) But i like the 1 and 2 keys for tab switching, so i went to the preference and took a while to find a option something like “use previous opera keyset”, so i have 1 and 2 as tab switching keys.

in the latest opera 10.62, i don't know by default these are supported... maybe the reason it doesn't work for u because it was carried over from my preference settings... too lazy to dig now.

> >The ?Ctrl+w? key lets me close a tab in IE, FireFox, Chrome, Safari,
> >but doesn't work in Opera.
> So you want standardized mediocrity?  All key shortcuts are customizable.

there's a good reason to support standard, or widely adopted practices.

For example, in my case, i have system-wide key macro sets. So, i press one single key to close window or tab in any browser or other app. But when in Opera, things stopped working. So i have to adjust my macros, but then, it is time consuming to find out what's Opera's ways. This seems to be my impression in the past 10 years every year i tried.

Also, in mid 2000s i was on a low-muscled Mac laptob, so i kept a eye on cpu use for any app i use. I recall, Opera even when idle with no page loaded, will suck some 10% of cpu. I recall, all other browsers do much better. I vaguely recall the best was Camino in this regard.

am a keyboarding freak. You might find some interesting tips at my site:

• 〈All About Keyboards, Keyboard Layouts, Shortcuts, Macros〉

> >In 10.5x, it sports some unusual sidebar widgets, like “Unite”,
> >“Notes”, and some Sync. And also a trashcan?! Am i supposed to spend a
> >hour study what these are?
> I never saw them in any Opera ( have seen all versions, now 10.62).  I guess
> they can be added.

that's odd. My version is 10.62, just updated few days ago, i think it was released this month or maybe last month.

On the left side, there's the bar sporting several new icons. On top right, you have this recycle bin trashcan. (gosh, maybe i'll do a screenshot in my next post)

ah, just realized, on the lower left corner of window, there's a widget. Click it to show the side panel that toggle display these new weird widget icons.

The menu by default is gone, instead, you have on the top left corner a menu-button kinda widget, that effectively collaps all menus into one hierachical menu.

> >Yeah, supposedly all these can be customized. But every time i tried
> >to look at its preference settings, it's nearly impossible to find or
> >set what i want, because it sports its own fancy structure and UI too.
> You need a baby buggy, not a Ferari.

hehe, a buggy to relax and see the country side? yes i needed that.

> There are countless Microsoft and IE haters, and for good reasons, but
> you work for Microsoft don't you?  Microsoft's persistence in trying to
> control standards and maintain a monopoly is well known.

there are few messages in this thread with the common opinion of Microsoft hatred, many are ill informed. Remember, that it is Microsoft that brought the concept of adhering to standard html and css, at the time when Netscape is very busy creating blinks and LiveScript and stuff. In the early days (late 1990s), IE on the mac was the first browser to support css or validation or something (you can easily find it in Wikipedia here http://en.wikipedia.org/wiki/Internet_Explorer_for_Mac or other articles about IE, web standard...)

Netscape browser, in my personal experience, in every year since IE started, are worse than IE in EVERY aspect: standard compliance, speed, features, crashiness... There are ample evidence that's still available on the web you can verify. I ranted about it, see:

• 〈Netscape Crap〉

IE won the browser war in early 2000s, basically got the whole market. So, they've been lazy, and thus the fact that IE has been worst browser in every aspect since mid 2005. But Microsoft has been putting more effort back to browser in past few years, with IE 8 perhaps being the first better result. (but then the slew of Microsoft haters will badmouth Microsoft doesn't matter what Microsoft do. One big controversial topic is whether IE 8 should simply stick to standard and fuck compatibility to the giga billions of existing web sites. This been blogged to death.)

in recent years, several times i'm ran into Opera's guy Håkon Wium Lie badmouthing IE, and i find his attacks scumbaggy.

For example, in his article 〈MS: Get real about interoperability, Mr Gates?〉 @ theregister.co.uk, he attack Microsoft for claiming to play nice yet all their pages still not valid html or something to that effect.

Look at opera home page now:

the above pages are not html valid, out of about 10 pages i just checked now (and their server seems to send wrong css mine type as text/html instead of text/css). Should we now launch a attack on Håkon for being a hypocrite?

Of course, many will say that IE won the first browser war because Microsoft's dubious business tactics, but i don't agree. This article might be of interest:

• 〈On Microsoft Hatred〉

plain texn version follows
On Microsoft Hatred

Xah Lee, 2002-02-23

Dear Naggum,

It is well known that you are a avid hater of Microsoft, from their technologies to their leader to their business practices. I have now and then seen your impassioned expression of this hatred, scattered among your newsgroup posts.

Personally, i have a inherent distrust toward big organizations. This applies to Microsoft. Since perhaps 1995, MS has become more and more large, and as well becoming a hate target especially among unix communities. Of MS hatred there are two aspects: those who think MS products are utterly incompetent, and those who think MS business practices are the most evil.

I have always been a Apple Macintosh user. I have used a few MS products such as MS Word word processor on the Mac since about 1991, and Mac version of MS Internet Explorer web browser and Outlook Express email program when they became available around 1997 or so free of charge. My experiences have been that MS software on the Mac are pretty good, if not usually better than competitors. In fact, before the MS-hatred era of late 1990s, i recall that i was found of MS Word and would say it was the software that never crashed, with the richest (useful) features. I have not used MS Windows much until 1999, so i cannot judge from my own experience whether people's complains about MS's product's poor quality. By the time i used MS Windows daily in 1999, it was MS Windows NT, and i have moved into industrial programing field now called IT. At the time Apple's OS is around version 8. Although Windows is not as esthetic or intuitive as my beloved Mac OS, but on the whole i think Windows NT beats the shit out of Mac OS by far. Mac OS crashed daily if a info-collecting tech-head like myself are careful, hourly if not, and among quite a few of other reasons.

As the MS hatred is rolling like a snowball, i started to pay attention. On one hand, i never cared for Microsoft. Their sole impression on me before 1998 was that MS Word is good software, and i hate Windows just because i'm a dedicated Apple fan just because Apple had made many revolutionary innovations in both software and hardware, and MS was Apple's market enemy. Although i think the unix crowd are tech morons of the world, but when it comes to political issues, i'm inclined to side with their freedom loving and paranoia propensities. I'm ashamed to admit, that i started to visit unix moron's mecca the slashdot.org around 1999, and have read quite a lot of their MS hatred verbiage, from drivel of sopho-morons to Eric Raymond's Open Source Jihad to Richard Stallman's Free Software Foundation. Perhaps due to their propaganda, at times i shudder at the mind-numbing MS juggernaut, and have felt ready to join their cause and kill Microsoft.

Since 1999, my behavior have in fact been mildly anti-Microsoft. I would, for example, mention Free Software or Open Source in meetings, avoid using MS products myself and convert all my MS Word files i have on my Mac to some standard format such as plain text, and also use the Free Software Foundation's GNU Public License for my own software dabblings. Still, i was never a MS hater. Many colleagues i know are MS haters, but i'm just a mild Free Software proponent and was never sure i should be a MS hater. I could have investigated the issue, by studying the various lawsuits, check out MS history, exam and verify MS hater's essays, but life is short and i have other interests so i did not undertook such activities and never decided whether MS should be hated. I just disliked big organizations, and thus Microsoft.

Since 1999 i entered the field of industrial programing known as Info Technology. In particular, i'm a web application programer on the unix platform. My daily office machines are PCs running Microsoft Windows (NT and followings) and remote unix servers. I find NT quite usable and almost never crashed at least as a desktop machine. I don't know much about any MS-bred technologies, but i knew quite a lot about unix. My attitude towards unixes is that it is the MOST incompetent thing in the computing world. I am a outright unix HATER. I have becoming increasingly nosy about unix MS-hater's claims technology-wise as most readily found from slashdot.org, from User Interface design to protocol “embrace & extend” to innovation to power & flexibility to security considerations. In the past few years, i started to pay mild attention to the question of whether from a technical or technological point of view MS should be hated.

Even i don't know much Microsoft technologies except as a daily Windows user, but in my personal judgment system among all things considered, i think that if MS has done damage to society then unix has done hundred times more. I believe that Microsoft Windows technologies is on the whole FAR superior to unixes both as a PC and server, all things considered. (this includes the fact that unix is more stable than Windows NT, today. (as opposed to examing unix's early years)) Comparing to the other major desktop Operating System the Mac OS (where unixes are so incompetent it is out of the question), with intact conscience i think that MS's OS (Windows NT) since about 1997 has left my beloved Mac OS in dust. If Windows 98 is poor quality (i know it is), then Mac OS of that year is neighborhood crap.

(i plan to have book-length material on the reasons, but here for now i can only briefly state my beliefs in a conclusive manner.)

The above is my beliefs on product or technological quality aspect of Microsoft-hatred. I have much interest in technology than politics or business, thus my know-how of social oriented issues pales in comparison. I have never examined the accusations of MS's evil business practices, other than news hearsay. To this day, i know little of what is true or false regarding MS's business practices. Although i have never undertook a interest of a topic, but as a philosopher i have gathered opinions regarding a topic from great variety of sources and experiences, and can form a personal judgment. And from my observations of computing industry, and my little knowledge of economics, all things and experiences lead me to believe that there is little to no reason to hate MS for their business practice either. Sometimes last year i read Thomas Sowell's Basic Economics. Although he never talked about software in the book, but that book made a major impression on my views of MS-hating issues.

Around 1994 i read the book 《Steve Jobs and the NeXT big thing》 amazon by historian Randall E Stross, and i was highly positively impressed by him. I have then learned that he also wrote a book in 1997 on MS: 《The Microsoft Way : The Real Story of How the Company Outsmarts Its Competition》 amazon. Although i have not read the book, but from amazon.com reviews it indicated that he simply think that the success of MS is due to being smart.

There are various lawsuits against the MS giant in the last few years, from Sun Microsystem's Java lawsuit, to United States vs Microsoft anti-trust lawsuit, to last month's AOL suit for Netscape browser. As you know, Sun is a unix vendor, with its own greedy grip on Java. I frankly don't buy any bullshit from the Sun Micro commercial turd. MS may be devious with their own “standard”-breaking java, but no more shady than Sun's “Universal” Java sham in the first fucking place. Any commercial organizations do devious things for their own interest. As to United State's claim that MS screwed innovation by bundling browser, that itself is a fantastic fucking idea. Integrating browser into OS is a innovation, and amid so great many claims that MS does not innovate, i can think of quite a few cases where MS has in fact been innovative or responsible for technological lead from my personal computing experiences. (Microsoft Word accounts for great many innovations in word processing alone.) And, who needs the government to meddle with industry? (as i have learned in Thomas's Sowell's book, anti-trust cases are invariably all the same. Anti-trust laws in the outset purport to protect the consumer, but always ends up as a weapon used by competing corporations against the successful in a free-market system.) Lastly is the AOL's bandwagon-hopping lawsuit in the name of fantastically incompetent Netscape browser. Fuck America On-Line.

I'm often ignorant when it comes to economics practicality, such as stock market or personal finance. Since about 1999, i started to become a stock holder, thus started to learn a bit of its nature. On this process, one thing came to my attention is that Microsoft is a public owned company. Public owned companies are directed by the people who own its stock, and any joe can purchase it. That means, if Microsoft is a evil empire, then the public shares a great blame. From this aspect, i don't see any sense of Microsoft-hatred either. Blame the public, such as your boss and neighbors and wife and friends and community, or, blame the fantastic greed-oriented system called capitalism that made USA so prosperous far beyond the moral-oriented communist/socialist nations or sovereignly ruled kingdoms and queendoms.

Xah ∑ xahlee.org ☄

web standard, MS hatred, what's standard?

On Sep 15, 9:04 pm, Phillip Jones wrote:
> dorayme wrote:
> > In article,
> >   Phillip Jones  wrote:
> >> were it not for IE everyone would be coding to standards and everyone
> >> would be able to see exactly the same thing regardless of browser.
> > I doubt it. It is not just IE that renders things different to
> > every other browser.
> That's True but at time IE came out Gates deliberately made it standards
> incompatible to lock people on PC's have to use IE  to view web pages.
> That way others could  view the pages as correct. So people that tried
> others said hey the others are broke so we will stick with what works.
> Heck Gates was one of the original Signatories of W3C (along with Apple
> and others) he could see how the standards would be written and Make IE
> as far as possible from those standards as possible.
> Yes they are a set  of Standards. Not rules carved in stone.

lots of these “Standards” conceptions are fairytale. Remember, it was Netscape who forced us the non-standard, devious, hated, cookies, javascript, frames, iframes, among other things. Some, are actually useful, needed, became “standard”, others, forgotten. Same with a million things Microsoft did or Apple (today with its iPad and stuff), and lots other corporations with other techs.

And lots of Microsoft hatred came from jealousy spread by competing big corps, in particular, Sun Microsystems (am very glad it's dead).

Now we have the hot potato html5, which is insidious turn of what “standard” means. It effectively says: forget about what we taught you about standards in the past 10 years, this is new rule! and Google is putting its feet into the “standard” mix, with its nofollow “non-standard standard” shit to put their search engine implementation at ease, and sidewiki and stuff, and none of google's pages are html valid (and no, this “do no evil” company don't even try; never in their hundreds of webmaster tips and guidlines mention anything about encouragement for valid html as far as i know).

when the many tech geeking web monkeys flame Microsoft for evil non standard, how come we don't ever hear it about Google? Google has far more non-standard html pages and now far more hegemony on the web than Microsoft ever did. Is Google the monopoly?


• 〈Google's 「rel="nofollow"」 Rule〉

• 〈(Google Earth) KML Validation Fuckup〉

(Google Earth) KML Validation Fuckup

Xah Lee, 2010-07-22

This article documents a condition of a software industry. It is a rant on software correctness and standards body responsibility.

So, today i'm working on kml files on my site again.

For example, a typical kml file on my site looks like this:

Aapua wind park

Good for a visit.

Seven 80 meter high wind turbines.

See photos at:



I'm a correctness nerd. So when i started to add kml files on my website, i made sure that the kml files i created are correct. I spend several hours reading Google Earth's kml tutorial, and reading Wikipedia on KML about it, figure out the correct DTD, which tags are required, and typically also spent considerable time to figure out what optional tag or choice of formatting that i personally would use. I know, for a certainty, that the format i created to be used on my site is correct.

However, i don't remember that i've ever used a kml validator to verify whether my kml files pass. I'm certain i've tried to find it. I think at the time (this is in 2006), there's no readibly available kml validators, only generic xml validators. In any case, so today i quickly found a authoritave kml validator at http://www.kmlvalidator.com/. And, boom, it says my files are invalid.

The first error is:

This does not appear to be an OGC KML document--expected document element in namespace "http://www.opengis.net/kml/2.2", but found: "http://earth.google.com/kml/2.2"

What the fuck?

The second error is:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'tilt'. One of '{"http://www.opengis.net/kml/2.2":altitudeModeGroup, "http://www.opengis.net/kml/2.2":LookAtSimpleExtensionGroup, "http://www.opengis.net/kml/2.2":LookAtObjectExtensionGroup}' is expected.

I'm sure that i followed tutorial example from the Google dragon's month carefully. So i went to Google Earth's kml tutorial again, at: http://code.google.com/apis/kml/documentation/kml_tut.html. The string 〔http://earth.google.com/kml/2.2〕 is now nowhere to be found there. Apparently, they changed it. Also, the few pages of the tutorial do not contain any "" or “” tag.

Who Listens to Correctness When Authorities Meander?

Apparently, thru the years, as tech and software progressed, they made changes and fixed things, as usual. But the point here is, today a working programer has to know tens of protocols, formats, and multiple languages, and if the programer paid attention to detail in the spec, and later be fucked in the face for his efforts to follow spec, then why should we listen to any “recommendations”, “advices”, “specs” these standards bodies are giving out?

When XML and XHTML came alone in about 2000 with massive fanfare, we are told that XHTML will change society, or, at least, make the web correct and valid and far more easier to develop and flexible. Now it's a decade later. Sure the web has improved, but as far as html/xhtml and browser rendering goes, it's still a fuck soup with extreme complexities. 99.99% of web pages are still not valid. Major browsers still don't agree on their rendering behavior. Web dev is actually far more complex than before, involving tens or hundreds of tech that hardly a person even knows about. It's hard to say if it is better at all than the HTML3 days with “font” and “table” tags and gazillion tricks. The best practical approach is still trial n error with browsers.

And, now HTML5 comes alone, from a newfangled hip group, with a attitude that validation is overrated — a flying fuck to the face about the XML mantra from standards bodies, just when there starts to be more and more sites with correct XHTML.

XML is break from SGML, with many justifications why it needs be, and now HTML5 is a break from both SGML and XML. WTFML anyone?

PS The story of my kml above is actually slightly simplified. When i started to create kml files in 2006, Google's tutorial says:

But in around 2008, when i was working on kml again, i noticed that the version is not 2.1 anymore but 2.2, and i think the Google tutorial for a simple file start to contain the LookAt tag, like this:


I don't remember if it became required tag or not, or if a kml 2.2 file without this blog will simply not have the old behavior in Google Earth. Or, perhaps i got the idea of this block by looking at the many (now thousands) existing kml files in Google Earth.

I spent a hour or two to add this block into my existing ~65 kml files and modified my elisp code that generate kml files. I wouldn't have done it if it wasn't important. Now, it all changes again, and this block is no longer shown in the simple example of Google Earth tutorial. Spent about 4 hours on this today, updating my site and research into this issue, not counting writing this article.

For collection of kml files, see: Google Earth Files at XahLee.org.

For emacs lisp code that generates kml files, see: Emacs Lisp: Writing a google-earth Function.

Xah ∑ xahlee.org ☄


emacs formatter for all langs

hi Ilya,

On Sep 15, 2:28 am, Ilya Zakharevich wrote:
> I want a certain keypress act as forward-sexp in "programming
> language" modes, and as forward-sentence (sp?) in other modes
> (likewise for go-to-function-begin (sp?) and forward-paragraph (sp?)).
> So there must be some code which decides "which type" is the given
> major mode.  I would prefer the bulk of the decision to be made
> programmatically, THEN let the user override if the auto-choice was
> wrong.  Anyone with ideas how to do this?

a fool's answer: wouldn't just search for all the [] and {} heuristic works pretty much?

most top 10 langs follow c-like syntax, so am guessing checking some () {} would work out...

> P.S.  In addition to sexp/sentence and function/paragraph, are there
>       other "merges" one can do to do navigation?

i have similar need... i don't like forward/backward-paragraph in programing mode. Their behavior is unpredictable. I instead defined forward/backward-block, which is delimited by 2 empty lines. So, when i use the key, i'm sure to land on the next/prev “block”.

there are 2 other thoughts similar to this... one is a desire to have a formatting command that works for any lang. e.g. you press a button, and the curren block, or region, or buffer, gets formatted, in any lang, to a user set preference. No longer the pains to align code or press tabs, per line. (there are tools for this in different lang... usually called something-lint.)

• 〈A Simple Lisp Code Formatter〉

... also, it's a fantasy of mine for C-h f to work in any lang. If info file doc for the lang doesn't exist, just send user to web browser of the lang's doc on that func. Wrote up more here http://xahlee.org/emacs/emacs_lookup_ref.html

i guess the idea is than many nice things in emacs-lisp-mode can be brought out to all langs, at least the top 10 major langs.

currently, i think each lang mode may implement some of this feature, but the keybinding is different, behavior is different, degree of support is different...

Xah ∑ xahlee.org ☄


emacs manual problem

Hi stefan,

i think the general situation is not about logical flaw or deficiency of emacs manual. Rather, it's generation gap.

(side note: one example i've been thinking is to compare the classic english literature Gulliver's Travels. It is well acknowledged by all scholars to be a impecable piece of english work in grammar, style, story quality, satire execution, but if you read it today, you find it's exceedingly difficult to understand... requiring a background understanding all the politics, history, of europe at the time, as well as the writing style and vocabulary that's few hundred years old)

back to emacs manual... to my mind, emacs manual problems can be solved rather without much difficulty, yet still remain accurate, true to emacs spirit, and i think agreeable to FSF's philosophy as well as any marketing spirit thrown in.

Xah ∑ xahlee.org ☄

On Sep 13, 3:30 am, Stefan Monnier wrote:
> > (1) The writer presumes all users are beginners, with no experience in
> > using a editor, even no experience in using a computer. Look at this
> > sentence:
> >     Files are named units of text which are stored by the operating
> > system for you to retrieve later by name.
> > O please, do i need to be told what's a file?
> We could/should probably remove that part, indeed.
> > (2) The author seems to have stopped in the 1980s, lots of tech terms
> > have gone obsolete. Look at this:
> >     We use the term frame to mean the entire terminal screen or
> > graphical window used by Emacs.
> >     The main area of the frame, below the tool bar (if one exists) and
> > above the echo area, is called the window.
> > Wow, your “frame” is my “window”, then what the heck is your “window”?
> In what way is that a problem in the manual?  These are the terms used
> throughout Emacs's source code and for reasons of Emacs's design source
> code names are very visible to the user, so if the manual doesn't
> explain what we mean by "frame" and "window", that will be a lot more
> confusing.
> > (3) Author is nostalgic of the past era; some advanced features of the
> > past are no longer advanced. Example:
> >     You are reading about GNU Emacs, the GNU incarnation of the
> > advanced, self-documenting, customizable, extensible editor Emacs.
> > Huh? “self-documenting”? What editor doesn't have documentation?
> > “extensible, customizable”? Nowadays many editors all can be extended
> > or customized to various degrees.
> Very few programs have so much documentation available online.
> Even many internal functions have online documentation.
> And very few programs are nearly as deeply customizable.
> Yes, it's a question of degree, but I think we're still ahead in
> those areas.  As for "advanced", well it's just a marketing term.
> > (4) Some features are too powerful, so explanation would be
> > cumbersome:
> >     You can yank text from the kill ring into any position in a
> > buffer, including a position in a different buffer; the kill ring is
> > shared by all buffers.
> > The “yank & kill” here is like “cut & paste”, then what's “kill ring”?
> > Perhaps that means when you cut many times, it won't leave just the
> > last cut text, previous cuts are all still in “kill ring”.
> If you look up kill-ring in the index (e.g. by typing "i kill-ring RET"
> in Info), you'll find the section "13.3 Yanking Earlier Kills" which
> I hope explains it well enough.
> > (5) Because Emacs uses keyboard as its primary input, although these
> > days we have mouse, but the core design philosophy still requires all
> > functionalities be operable with a keyboard. For example, “selecting a
> > text” can be easily done with a mouse, but the manual must use lots
> > words to explain how this is done with keyboard. Example:
> If you consider it useless to use the keyboard when you can use the
> mouse, that's your problem.  For people who find it handy to use the
> keyboard, this section is useful.
>         Stefan


programmer's dvorak

On Sep 10, 1:47 am, Elena wrote:
> On Aug 30, 12:11 pm, Xah Lee wrote:
> > Maltronkeyboardwith Dvoraklayout.
> > One problem Maltron never appealed to me is because thekeyboardis
> > quite ugly.
> Did you know about the Maltron executive?
> http://www.maltron.com/maltron-kbd-flat.html
> To me it looks quite slick.

yeah. Though, i always thought that's kinda gimmicky. I think people complain about Maltron's ugliness, so they came up with that. But, creating such a flat, modern sleek looking keyboard, am guessing it also threw out much of its ergonomic advantage.

i can't imagine feeling comfortable placing my wrists on those huge glass panels, even though the wrist is not supposed to rest on something when typing...

> Beware that AFAIK Maltrons use the Cherry "black" switches, which are
> not loved by keyboard geeks.
> > Also am not sure why they have to invent the Maltronlayoutsince dvorak is already there, perhaps due to patent issues of
> > the time.
> Maybe.  However, it's more likely that having extra keys available and
> aid of computers prompted them to take the challenge.  Indeed, the
> Maltron layout proves to be superior to Dvorak:
> http://www.maltron.com/recognitia/script.html

am not sure about that, especially that being the company's brochure.

> > Programmer Dvorak
> > Programmer Dvorak is just like Dvorak, except that it inverted the
> > number row with symbols and re-arranged the symbols. http://www.kaufmann.no/roland/dvorak/
> >  ~%7531 90246 8`
> >  $&[{}( =*)+] !#
> >   ',.py fgcrl /=\
> >   aoeui dhtns -
> >   ;qjkx bmwvz
> You have swapped ' and ;.

oh, thanks a lot for the correction. Corrected and put credit to you.

interesting. Didn't realize that he swapped the ' and ;.

am not sure why he swapped it.

I think the qwerty's z is a easier key than qwerty's q. For programing, i think ; happens more frequently than '.

So, his swapping is illogical to my assumptions.

(i remember reading that from dvorak's studies, the top row is better than the bottom row, but i've never seen the actual figures that indicate each key's ease that he might have created. In anycase, on the pinky, i am not sure the top row is still better than bottom, and if so, perhaps only marginally so. For me personally, the qwerty z is certainly easier than q.)

... in general, i think almost each these layouts are created by one invidual programer, and when looked in detail, some of their choices don't stand to scientific scrutiny.

though, i'll have to say from what i've read, colemak is pretty good.


PrtScn, SysRq, ScrLk keys

On Sep 10, 1:26 am, kodifik wrote:
> How can you dare to declare Ins, Del, SysReq keys defunct?
> I use them all the time in my Linux and -believe me- it's not a dead

i don't think i've declared Del defunct.

i have made similar remarks about Ins, SysReq keys defunct
though. I believe you are referring to this page

• 〈Computer Keyboards Gallery〉

Note the PrtScn (Print Screen) key, SysRq (System request) key, ScrLk (Scroll Lock), Break keys. These keys are historical relics and are more or less defunct today, except the Print Screen key that is often used for creating screenshots in Microsoft Windows.

Here's a summary of what these keys are, based on Wikipedia:

* PrtScn: In 1990s or earlier, it sends the screen's text into a serial port. Literally, causing the screen to be printed. (at the time, most monitors can only display text.) Today, this key is used in Windows and Linux to do screenshot (copy screen bitmap into the clipboard). This key is not used on the Mac.
* SysRq (System request): This key causes a interrupt to the operating system. It is kinda like the role of today's Control-Alt-Delete on Windows. However, this key is pretty much defunct today.
* ScrLk (Scroll Lock): Pretty much a defunct key today. Used to toggle the behavior of arrow keys so that, when ScrLk is on, the up/down arrows scrolls the window.
* The Pause and Break are 2 keys. They are pretty much defunct today. They were used for sending a interrupt signal of sorts, as today's more familiar 【Ctrl+c】 on PC and 【Cmd+.】 on Mac.

Depending on how you want to define the meaning of “defunct”, it's common fact that these keys are not used much by vast majority of apps. Many PC keyboards don't even have these keys anymore. Apple keyboards don't have them.

i've also linked to Wikipedia on these keys so you can read about them.



lisp keyboards

On Sep 9, 4:15 pm, "jos...@corporate-world.lisp.de" wrote:
> On Sep 9, 8:56 pm, Xah Lee wrote:
> > discovered quite a few new lisp books.
> > There are several new books for Clojure, for you lisp fans.
> > 《Programming Clojure (Pragmatic Programmers)》 By Stuart Halloway.
> > 《Practical Clojure (Expert's Voice in Open Source)》 By Luke
> > VanderHart.
> > 《The Joy of Clojure: Thinking the Clojure Way》 By Michael Fogus, Chris
> > Houser.
> > There's also a new Common Lisp book coming, scheduled to arrive next
> > month.
> > 《Land of Lisp: Learn to Program in Lisp, One Game at a Time!》By Conrad
> > Barski M.D.
> > PS if you want to buy them at amazon, you can support me by buying
> > from my blog http://xahlee.blogspot.com/
> > ... for those finding my emacs lisp tutorial interesting, would you be
> > interested in reading a paper bound version?
> >  Xah
> you can make some money from people paying you to stop posting off-
> topic keyboard related articles to comp.lang.lisp.

been wondering where you've been Rainer. ☺ haven't seen your messages for months.

speaking of keyboards, i can't help but thinking about you with your lisp machine keyboard. ☺

i have now actually a collection of photos here:

• 〈Keyboard Hardware's Influence on Keyboard Shortcut Design〉

everytime i look at the lisp keyboard, i admire the so many keys, but also i can't help thinking that the concept of ergonomic isn't there yet when these keyboards were used.

you've wrote few times in the past about what the various key means, but i don't think we have a clear, easy reading, accessible web page about it. Care to write it? i definitely would link to it. Especially am interested in what all those keys are used for whatever incarnation of emacs at the time.


old terminals and keyboards

On 9/8/2010 7:30 AM, Elena wrote:
«All keyboard layouts I've seen, except Arensito, fail to relocate often used control keys.  Moreover, it seems to me that many users do switch layout, but fail to switch keyboard and keep typing on a cheap one, with lesser gain.  Typist on typewriters did type a lot, yet it seems they weren't catching any RSI.»

On Sep 8, 4:51 pm, Thad Floryan wrote:
> Bingo!
> I've been typing since I was 6 years old using an IBM electric
> typewriter; I'm now retired (and drawing SS) so that's over 60
> years of typing.
> The key (no pun) is a proper ergonomic sitting position at the
> keyboard: upright in a comfortable chair with arms horizontal and
> at the level of the keyboard.  Over the decades since the early
> 1960s I've typed millions of lines of code and never even had so
> much as a hint of RSI, and I'd often be at the keyboard 14+ hours
> a day.  Though "retired", I still am at the keyboard for long hours
> because I still develop and program.
> Most of the keyboards I've used had an explicit CONTROL key to the
> left of the "A" using terminals such as TTY ASR 33, Datapoint 3300
> (a CRT clone of the ASR 33), Dec VT100, Datamedia DT80 (a clone of
> the VT100), etc.
> You can see the TTY ASR33 keyboard here:
> which is identical to the one I had at Tymshare and at home in the
> 1960s and early 1970s.
> You can see the VT100 keyboard layout here:
> The Datamedia DT80 can be seen here (scroll down):
> What I use now (attached to a multi-gang IOGEAR GCS138 Miniview
> Ultra KVM switch) is a Unicomp SpaceSaver which can be seen here:
> with the [Caps Lock] mapped to be a Control key on *ALL* my
> Linux, UNIX and Windows systems.  The best keymapper for the
> Windows systems is Ctrl2Cap which can be seen/downloaded here:
> which works perfectly on Win2K, WinXP, Vista and Win7 since I
> have emacs on those systems, too.  Here's my work area:

thanks a lot for the various photos and links. It is very useful to me, and helpful in my research in history of keyboard and layouts.

when seeing the last photo, i remember we chatted before. ☺

> Earlier comments about alleged evils of [Ctrl] being to the left
> of [A] are bogus in my experience.  Attempting to use emacs on
> a PC keyboard *without* mapping [Ctrl] to [Caps Lock] *will*
> cause strain and, likely, RSI since the pinky finger has to be
> stretched and bent down in an extremely awkward and speed-
> limiting position.

i think the opinion is mostly from me. Yes we disagree.

do you have any scientific evidence for this?

the main problem i have with the opinion that making left Ctrl is good is that:

• it's simply that way because old keyboard are like that. People get used to it.

• such opinion almost ALWAYS came from a few vocal older generation of programers. And always without hint of any evidence that can be verified in some scientific way.

• when you look in online discussions, you do not see much support of this. In particular, i've seen many who said they tried mapping Caps Lock to Ctrl, didn't find it helpful, thus either abandoned emacs or find other solutions.

i've written a summary account why i think swapping caps lock with ctrl is not good in general.

• 〈Why You Should Not Swap Caps Lock With Control〉

also, every programer has a lot opinions about keyboarding. There needs to be scientific qualification of their experiences to judge their opinions. In particular, in my recent experience of close encounter with RSI, one thing i realized is that, just exactly how much you actually type a day makes a lot difference in what kind of advice or method of keyboarding. See:

• 〈Emacs, RSI, My Experiences〉



what emacs mode do you use

On Sep 3, 8:58 am, Bernd wrote:
> Hello,
> I will do a presentation about Emacs and I would like to know what is
> your favorite / often used  emacs-modus / feature / ...
> I mainly use:
> slime        for common lisp coding
> eldoc        for emacs lisp coding
> erc          for irc
> gnus         for news
> calendar
> org-mode     to-do lists    
> auctex       editing tex (ispell)
> maxima-mode  computer algebra
> octave-mode  matlab clone
> hexl         analysing binary files
> csv          csv-file viewing
> cvs/svn/git  version control of sources
> vc-annotate  local version recover
> ediff        merging sources
> outline      chapter organisation of code
> hide-show    hiding parts of code
> collections: goodies.el
> Do you know of funny emacs cartoons / videos / ...?

here are the ones i use most often:

• ergoemacs-mode (a ergonomics based keybinding)

• dired (called every few minutes)

• html-mode and css-mode (about 50% of the time i'm in emacs)

(with huge number of custome functions
see the 5 html cust files here

• calc
(called few times a day)

• calendar
(called few times a day)

• abbrev-mode
(about 70 abbrevs)

• aliases (about 100 aliases. typically all are just 1 to 3 letters)

• yasnippet (heavily used for html and elisp and lsl)

• org-mode (daily working revolve around this todo list and quick notes)

• bookmark. (every few minutes)

• shell (i tend to use shell-command much more often, but shell gets started few times a day)

• language modes. (depending on which month i'm working on what project, that mode gets heavy use... e.g. whole day in the mode)

emacs-lisp-mode (daily for the past 3 or more years)
nxml-mode (daily)
perl, python (daily, but mostly just to run my existing scripts. haven't been coding them for past 2 or 3 years)
php, ocaml, javascript (not used much in recent years)
xlsl-mode (weekly)
xahk-mode (daily)
xub-mode (unicode browser) (weekly in recent months)

if we go by statistics, in a month period i probably call 20 or more modes... but the above probably covered what i used last week.

ps if you use outline-mode, you might consider switching to org-mode. It is pretty much a compatible replacement.

> Do you know of funny emacs cartoons / videos / ...?

Xah ∑ http://xahlee.org/ ☄


being tactful

On Sep 3, 1:07 pm, p...@informatimago.com (Pascal J. Bourguignon) wrote:

> The problem is not that you didn't know insert-file-contents or
> similar functions.  This is indeed natural and it's on the ignorance
> of this that I judge your programming skills.
> It's on your use of sequential assignments and copy-and-paste for a
> repeatitive job.

you see, Pascal, i've been trying to be more tactful in recent months. You know? like not being a cold critical ass, and to engage people in a direct and more personal, friendly way.

are you sure, that your writting off of me, is justified?

because i humbly asked a question, now comes the baggage of incompetence to fend off?

because i posted a quick question, now i'm accused that my coding style is copy-and-paste and “sequential assignments for a repeatitive job”?


although i try to be more tactful, but i reserve the right to remain Xah, at least in spirit, and hope not to become some smooth politician always with round-about non-specific all-pleasing expressions. y'know? the wisdom we hear that one have to be yourself in life, right? ☺

so now, instead of bouncing you off with pompous philosophy, rude logic, fully decorated with expletives, i take the more mild approach, of teaching you things that i see you don't know. (oh god! i fucked it up! i've just been demeaning, steped on all the rules about friendship n leadership n persuasion principles in every book. Oh GOD, i'm such a fucking failure!)

So let me teach you: To be humble is to ... (i dunno. (be yourself?))

haha. actually, never mind any of that. I'm just all bullshitting. ☺ One thing i learned is that, being too serious at all times isn't a good thing. (O, but that's not true, depending on ... (Oh shutup Xah!))

Xah ∑ http://xahlee.org/ ☄

hunspell frustration

On Sep 3, 12:27 pm, Simon Brooke wrote:
> On Fri, 03 Sep 2010 05:58:06 -0700, Xah Lee wrote:
> > On Sep 3, 4:11 am, p...@informatimago.com (Pascal J. Bourguignon) wrote:
> >> Xah Lee writes:
> >> > Verdict: yay for Clojure!
> >> Whatever.
> >> But judging frmo your "how to get list of vectors with value from file
> >> content..."  question, one would think that after all the years you've
> >> been spending critisizing everyting about programmers and programs,
> >> you'd at least have some sound notions of programming, but you seem
> >> actually to lack even the most basic programming notions.
> > lol Pascal.
> > asking simple language questions is no indication of one's knowledge in
> > computer science nor expertise of the language.
> > Knuth, if he were to program in say java, lisp, javascript, php, or even
> > html, he probably would be a beginner.
> I really, really don't think so. Software has remarkably few basic
> concepts, and they have not changed over the years. Learning what's where
> in a library takes time, yes; minor differences of syntax between related
> languages can also take time to get used to. But there have been no
> fundamentally new innovations on software in the past forty years. Prolog
> and Smalltalk are probably the youngest really innovative languages.

Hi Simon,

i think you are just pushing out your pet opinion about languages havn't changed much. Not much to do with the thread.

Here's a collection of essays on software engineering.

〈The Tech Geekers and Software Engineering〉 http://xahlee.org/UnixResource_dir/paradigm.html

A subsection, is about 14 essays related to software complexities. Here are the essay titles:

* A Exhibition Of Tech Geekers Incompetence: Emacs whitespace-mode
* A Emacs Frustration (blogger package)
* Emacs's Menu Usability Problem
* Emacs Spell Checker Problems
* A Record of Frustration in IT Industry
* Hunspell Path Pain
* The Complexity And Tedium of Software Engineering
* Mac OS X SSH Session Disconnection
* Graphics Programing Pains
* Software Dependency Complexity: Fink, Unison
* URL Percent Encoding and Unicode
* URL Percent Encoding and Ampersand Char
* AutoHotkey Path Problem; Windows Shortcut Path

Here's one i wrote recently:
〈Hunspell Path Pain〉

it shows how a trivial problem, not even about programing but just about using a software, ends up 3 or 4 hours. We, programers, spend all day, on this kinda things.

in recent years, occasionally i try to write up and document the pain and frustration as a programer, in a concrete way.

Hunspell Path Pain

Xah Lee, 2010-06-18

Am slightly frustrated with hunspell. Spend about 5 hours yesterday and today on it. Am trying to get it to work with emacs's speck-mode, on Windows.

Being a kinda thorough person, i started to work on this problem from the ground up, by first trying to read the doc, become familiar with its basic usages, syntax, and get it to run on the command line only. Once i am familar with it on command line, then i can move on to understand the integration and config issues with emacs and speck-mode, by getting it to work in my personal emacs setup. Then, i can move on to the next step, of working ErgoEmac's installation elisp config files. Great and careful master plan. (actually, i went one step more thorough than this, by first understanding aspell, of which, i did yesterday, the result is here: aspell Tutorial.)

So, first job is to get it to run on the command line.

The path to hunspell on my machine is at:

C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\
Chang path into the dir, then i can run:

hunspell -d en_US
Good. Now i need set the hunspell executable path in my env var PATH so i can run it elsewhere. Using Windows's cmd.exe, it's like this:

set PATH="C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\;%PATH%"
Easy. This is just for the current session. I can set it permanently later using “setx” or PowerShell once i got all env var issues resolved. Now, i can call hunspell from elsewhere. However, now it can't find the dictionary file:

Can't open affix or dictionary files.

c:\Users\xah>hunspell -d en_US
Can't open affix or dictionary files.
This works:

c:\Users\xah>hunspell -d "C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\en_US"

Hunspell 1.2.8
According to the man page, there are the 3 env vars. Here i quote the section of the man page as it is written:

Similar to -d.

Dictionary path.

Equivalent to -p.
I spent 2 hours trying a combination of the following variations:

set DICTIONARY="C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\en_US"
set DICPATH="C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\en_US"

set DICPATH="C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell"
set DICPATH="C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\en_US"

set DICPATH="C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\en_US"

set DICTIONARY="C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell\en_US"
set DICPATH=""
Won't work. Also, i got fancy and imagined maybe the DICPATH in the manual is a typo, maybe it should be DICTPATH? No.

Its man page, in the tradition of unix, is the most fucking shit possible. The syntax of the command hunspell is also shit, like every unix command line program.

The “-d” option can be either like “en_US” or the full path to the file but sans the suffix “.dic” and “.aff”. WTF? (note that “en_US” involves 2 files, the dictionary file “en_US.dic” and the affix file “en_US.aff”.) Further, it can be a sequence of dictionaries, separated by comma, and seems like space after comma is not allowed. So what if you want to give multiple dictionaries with full path that has spaces in them? (it is probably impossible, to have a mathematically precise yet simple spec, on how the program takes the parameter.)

If you search the web, for the exact error message “"Can't open affix or dictionary files."”, there are 392 results, all over from debian, redhat, fedora etc. What kinda incompetent shit created this situation?

Also, the manual link at home page http://hunspell.sourceforge.net/ is a “404 Error – Page Not Found”. Typical of open source tech geeker's quality, of those elite programers so proud of calling themselfs the idiotic term “hackers”. Sure, they can write complex programs, but do these idiots have a minimal concept of quality? Maybe they are not very endowned in the department of writing documentation, understandable, but do they at least TRY to have anything working well? What possible incompetence, can explain that the big fat manual link on the home page being broken? How long has it been broken?

Eventually, it hit on me. Maybe the port to Windows is buggy, that it doesn't check session env var but only look in the registry? So, i did:

setx DICPATH "C:\Program Files (x86)\ErgoEmacs 1.8.1\hunspell"
That solved it. It is when actually writing this rant at this point, i got it to work.

God, writing things out helps. Helps my anger, helps my thinking.

Now, is my incomplete understanding of Windows Environment Variables to blame, or is this a bug of hunspell Windows port?

PS Note that Windows shell is also a deeply layed baggage of shit. Note the syntax of “set” and “setx” are different, in fact “setx” is a hack added into cmd.exe, which itself is several evolution and reincarnation over the past 20 years. But that's another tale. Glad Microsoft has PowerShell bundled in Windows 7.

Xah ∑ http://xahlee.org/ ☄

programing celebrity styles

On Sep 3, 4:11 am, p...@informatimago.com (Pascal J. Bourguignon) wrote:
> Xah Lee writes:
> > Verdict: yay for Clojure!
> Whatever.
> But judging frmo your "how to get list of vectors with value from file
> content..."  question, one would think that after all the years you've
> been spending critisizing everyting about programmers and programs,
> you'd at least have some sound notions of programming, but you seem
> actually to lack even the most basic programming notions.

lol Pascal.

asking simple language questions is no indication of one's knowledge in computer science nor expertise of the language.

Knuth, if he were to program in say java, lisp, javascript, php, or even html, he probably would be a beginner. But nobody would doubt his expertise as a computer scientist or a programer.

Same can be said for many language inventors, e.g. Larry, Guido, Wolfram, ... except the first few years where whole team is just the inventor. Each is certainly no longer the top most expert of that lang, and they can ask a lot technical questions.

When a person becomes famous, there's the question of whether he'd
asks trivial questions in public. For example, suppose you became a
famous computer scientist, or mathematician. But, in today's world,
you wouldn't know the most basic things about thousands subjects
that's related to your field. e.g. Would knuth ask basic html
questions in some public place if one day he happens to need to write
a line of html? On one hand, a highschool student can probably answer
his question that otherwise he might spend few hours to dig into
documentations, tutorials, etc. On the other hand, one might think:
“jesus, Dr Knuth is asking a basic question about html??”.

Can you see the dilemma?

There's perl, python, php, javascript, java, c, c++, bash, html, css, Mathematica, ... langs, and hundreds thousands other tech and protocols etc. Each, mostly has a inventor, and for our purposes, they are celebrities. Each of them, do NOT have a BASIC understanding of the hundreds other langs, protocols, technologies. But due to their work, they probably have questions or curious about them everyday. Now, if you are one of these celebrity, would you, take the 5 min and get your question answered in some public social networking site such as online chat, irc, stackoverflow, or, are you the type that would keep this closed to yourself, trying to spend few hours by yourself on it, or ask only your close friend and colleagues?

Now, think of one of them you know, and tell me if that person is the keep-to-self type or freewheeling ask-around type?

I've thought about this, and have tried to observe what celebrities
do. My observation is that there's no universal behavior pattern, and
it basically came down to personality. Some such celebrity, would
never ask any such question in public, and tend to keep a “professor”
public image. While on the other extreme, especially in the last 10
years due to the effect of the internet/“comm tech” on society, don't
care and feel free ask questions in public. (e.g. some such computer
scientist and mathematicians openly write blogs, filled with questions
that are basic outside of their very narrow spatiality, or even
something they should totally know but forgotten (frankly, doesn't
matter how good is your memory, you probably forgot say 1% of what you
know about a lang or field of study. Do you, remember the calculus you
learned in highschool? or a philosophy course or a history course? But
you can still be a award-winning mathematician, programer, writer,
lawer, director, right? ))

what would YOU do, Pascal? are you the type who never do thought flow in public?

also, keep in mind that the act of asking question, has social function other than getting a technical answer. This is a big part of blogging and the web social networking is about.

if you have actually read much of my writings, do you, truely believe, that my understanding of lisp is such that i wouldn't know or unable to find out how to get a file content in one close functional line, or that not knowing about “vector” function in emacs lisp conflict with anyhing i criticized in computer science, languages, software engineering, or the programer culture?

today, i put on my blog the nice function you and TheFlyingDutchMan supplied

note there is the other function:

(defun read-lines (filePath)
"Return a list of lines of a file at FILEPATH."
(insert-file-contents filePath)
(split-string (buffer-string) "\n" t)))

which i wrote about 2 years ago, that appears in one or more of these pages:


waybackmachine can be used to verify it.

i asked the question because i was tired, and i feel it is good to ask. It spurs conversation, as well as helping me. And it is certainly true, that my emacs lisp know-how, is below yours, or most of the emacs developers who frequent emacs newsgroups.

even though i criticize a lot of things, but more so there's much more i don't know. Though, i try to keep the degree of my criticizm proportional the level of a thing that i do know. (albeit with wild hyperbole at times :D )

> So unless you stop writting inflamatory articles (you could even
> retract all the past ones) and start to spend serious time _learning_
> programming, you're totally disqualified to say anything about
> programming languages.
> I would advise you to study "How to Design Programs" http://www.htdp.org/

O, good old newsgroup style. In return, I recommend you to read xahlee.org.

Xah ∑ http://xahlee.org/ ☄

On Sep 3, 1:08 am, Marc Mientki wrote:
> How can I understand it???

By unstanding The Tao of Zen ☺

btw, Rich Hickey has a vid here:

it's over 1 hour long.

actually it's quite boring to watch. I watched the first 30 min but got bored.

nevertheless, it's a nice video, and i enjoyed it. And he's a nice guy. (it's funny that Whitehead seems to be his personal hero.)

PS ... i'm usually a observer type. So, when watching this video, i cant help but compare the different style, personalities, of various celebrities. i've watched a few in past years, some i blogged about, e.g.

〈Yaron Minsky, Janestreet Talk On Ocaml and Functional Language〉 http://xahlee.org/comp/Yaron_Minsky_Janestreet_talk.html

〈Neal Stephenson at Google Talk〉 http://xahlee.org/Periodic_dosage_dir/Neal_Stephenson.html

〈Sergey Brin Lecture〉 http://xahlee.org/comp/Sergey_Brin_lecture.html

writing this reminds me of a talk given by Linus about git that i watched on google vid... Linus has a flamboyant, charismatic style, but is also a easy going type of guy. (e.g. in our context, he'd probably ask any simple question that pops up in his mind) Compare to Neal Stephenson, which is quite up-tight and exceedingly boring to watch. Yaron Misky above, is quick and fast... and there's Richard Stallman, who's public lecture style can be said to be more methodological...

(btw, Linux's git talk totally sold me on git; but more significantly, by his talk it dawned on me that the greatness of distributed revision systems is not about being non-centralized, but the agility to move and grow and evolve locally with global impact.)

Xah ∑ http://xahlee.org/ ☄