emacs dynamic abbrev feature

Little very useful tip i think is underused.

Type 【Alt+/】 to expand a word that is already in the buffer. Type that again to switch to the next possibility.

Suppose your are coding in python. You have defined your own function “getStringInFile”. Now, when you need to type that again, just type “ge” then press 【Alt+/】. If the word is not you want, press that again.

You can see all available choices by pressing 【Ctrl+Alt+/】.

I used emacs daily since 1998, but didn't learn this command until about 2008.

rss, webfeed, feedreader, trends

Some juicy news.

  • 〈Facebook users have low self-esteem〉 (2010-09-09) indiatimes.com
  • 〈The Death Of The RSS Reader〉 (2010-09-10) by Joseph Tartakoff. Source
  • 〈Twitter Has Killed RSS Readers -- Traffic To Google Reader Down 27% Since Last Year〉(2010-09-11) By Henry Blodget. At: Source

See also:

movie subtitle files “.sub”, “.srt”, “.ssa”, “.ass”

Discovered SubRip. It's a software used to extract subtitles from movie files, by using optical character recognization. Also, it saves its file in a plain text format with suffix “.srt”. This is extremely useful when you want to read the dialog of a movie. The format is supported by most video editors or players, including youtube.

A more advanced but still widely supported subtitle format is SubStation Alpha, with suffix “.ssa” or “.ass”. It is also a plain text format.

A older subtitle format is MicroDVD with suffix “.sub”. Also a plain text format. There are more. See: Category:Subtitle file formats.

See also:


emacs tutorial accolades

Got this email last week:

Dear Xah,

I read much, but don't post. I've been aware of you for years. (Emacs user since it was written in (gasp) Teco. 1977? Probably.)

I just got saved by your valuable article "The Confusion of Emacs's Keystroke Representation." Thank you.

About ten times per day recently, I've solved problems and learned things from your tutorials. Thank you, (great emphasis) for writing them and making them available.

I became curious about you and so I read a lot of xahlee.org.

I read fast, read alot.

You are famous, I see, as I recall, for being a troll. I do not understand (for some reason) how your "giving" side (xahlee.org seriously helpful articles) and your "poking at the morons" side live in the same guy, but my not knowing is okay.

I relate to a lot of the feelings you write, too. I should thank you for those writings, too, but that's one of my weird areas. I'm not going to do it now.

Anyway, Thanks!


It made my day. (and thanks again Eirikur.)

Also, started to collect some nice words about my emacs work. See: User Comments on Xah's Emacs Tutorial. Thank you all very much.

new Clojure lisp books

There are several new books for Clojure, for you lisp fans.

  • 《Programming Clojure (Pragmatic Programmers)》 By Stuart Halloway. amazon
  • 《Practical Clojure (Expert's Voice in Open Source)》 By Luke VanderHart. amazon
  • 《The Joy of Clojure: Thinking the Clojure Way》 By Michael Fogus, Chris Houser. amazon

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. amazon

The End of Emerald; What Viewer to Use?

Perm url with updates: http://xahlee.org/sl/end_of_emerald.html

Emerald Viewer Banned by Linden Labs; What Viewer to Use?

Get your Xah Particle Maker today!

Xah Lee, 2010-09-08, 2010-09-09, 2010-09-10

Emerald has just been ban'd by Linden Labs, effectively today.

  • 〈Emerald Viewer to be Blocked From Second Life〉 (2010-09-07), by Joe Linden, at: blogs.secondlife.com

I've been wondering why the change. Can Emerald dev team be trusted? Apparently not. See these articles from The Alphaville Herald:

Linden Labs requested the Emerald team to remove these developers: Lonely Bluebird, Skills Hak and Discrete Dreamscape. Within the remaining Emerald team, Lonely refused to resign. The outcome is that Jessica left Emerald, and Linden Labs ban'd Emerald.

Why would Linden Labs request these people off Emerald? My educated guess is that these people had past history of being “Terms Of Service” violators.

Note that Skills Hak is the creator of the very popular In Silico sim, founder of “Gemini Industries” (selling weapons and hightech stuff). He also sells some sort of networked anti-copybot device called “Gemini Cybernetics CDS”. That is, if you are owner of a store, you buy this and put in your parcel or sim, and any known blacklisted avatar comes to your parcel will be automatically ejected. This blacklisted users i believe is mostly gathered from Emerald IP/Name gathering database. I've also got personal reports about how this device have been abusive, but am not sure it is true or to what degree. I estimate that Skills Hak is making at least 1k USD per month.

Note that the “Gemini Cybernetics CDS” used to be on xstreet at 〔https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=2117915〕 but is gone. It is not clear to me the author removed it or Linden Labs.

  • 〈Skills Hak Tags Over 4000 Copybot Capable Avatars〉 (2010-03-23), by Pixeleen Mistral. At: Source

The Alphaville Herald really did a huge amount of reports with insider info. Check out the 5 or so more reports in past 2 weeks. So, i've been wondering who's behind it. They have a “about us” page here: http://alphavilleherald.com/about. So, it is originally started in 2003 by philosophy professor Peter Ludlow (b1957), currently at Northwestern University. And it was originally a report on the virtual world The Sims Online. The report was focused about scams and cyber-prostitution, which resulted in termination of Peter's account by the owner of the game “Electronic Arts”. (which made news in mainstream media) The reporter and site history changed a few times over the years, and the current main editor is Pixeleen Mistral, who gave us many of the insider info you see above.

And who's Pixeleen Mistral? She turns out to be a internet pioneer Mark P McCahill (b1956), who wrote several early internet software and protocols such as email, gopher, url. See:

Also, i would like to thank LordGregGreg. Here's LGG's sites:

Also, Jessica Lyons was part of emerald just few days ago, but also resigned due to disagreement with the remaining team (which seems to be just Ph0x (aka Lonely Bluebird; Pattehph0x Katsu) and Arabella Steadham or more people). I also support Jessica. Jessica seems to have gathered a new clean team and started a new viewer, called “Phoenix Viewer”, based on last clean version of Emerald. The new team member includes LordGregGreg. The Phoenix Viewer is on Linden Labs's approved viewer list.

Also, thanks to Hazim Gazov (iheartanime.com), and many others. Without his efforts, some of the shady practices of Emerald probably wouldn't came out.

Also, thanks to a mysterious person TOBSDA on youtube, who provided us with many voice and video recordings, so that you can actually hear the voices of these people in spotlight. From the voices, you can discern to some degee what type of person they are. http://www.youtube.com/user/TOBSDA

Who Are They?

Here's some info about who these avatar's real names are, gathered from public resources. (you can find them from the links on this page, or just do web search with their names.)

sl namealso known asreal life nameSource
Fractured CrystalJcool410 WildcatJoseph CookSource; Source
Lonely Bluebird; Pattehph0x Katsu; Phox ModularSystemsphoxPatrick (Tyroler?)Source;Source;Source
Arabella Steadham
Skills Hak
Discrete Dreamscape
Hazim Gazov
Jessica Lyons
LordGregGreg BackLGG; gregGreg Hendricksonpublic info. Source
Pixeleen MistralMark P. McCahillpublic info. Wikipedia
Urizenus SklarPeter Ludlowpublic info. Wikipedia

If you know these person's names as public info, please comment with link to the public source. (the disclosure of the rl name must be voluntary or public info.)

Also note, that although some of the Emerald developers seem to have done shady stuff, like griefing, sim crashing, etc, but remember that this is fairly common among gaming teens or younger persons who also program computer. Also note, that statements from Linden Labs are not necessarily ethical. For example, professor Peter Ludlow reported issues in online gaming and his account got banned by EA. There are also a law suit against Linden Labs that are settled outside the court. ( Bragg v. Linden Lab ). In general, there are lots of disputes in bleeding edge fields where law is not established, and what's considered right or wrong is not settled. (e.g. in the early days of youtube, vast majority of videos are illegal copies, and many media companies started to sue. But once youttube becomes big, the lawsuits become business partnerships.)


multi-language cheatsheet

A great site comparing the basic syntax and constructs between Common Lisp, Scheme, Clojure, Emacs Lisp. If you know one of them, this site lets you learn the other very quickly. Am particularly interested in Clojure.

The actually also have other sites.

Google's 「rel="nofollow"」 Rule

Perm url with updates: http://xahlee.org/js/google_nofollow.html

Google's nofollow Rule

Xah Lee, 2010-09-08, 2011-02-03

Am somewhat pissed by google's rel="nofollow" rule. Notice that the rel="nofollow" used in links actually passes w3c's validator. However, am not sure it is in any of w3c's html spec. Also, the nofollow seems to be a gimmicky by-product designed for companies that do search engines; it really have nothing to do with the goal of html as a communication format.

Quote from Nofollow:

The concept for the specification of the attribute value nofollow was designed by Google’s head of webspam team Matt Cutts and Jason Shellen from Blogger.com in 2005.[1]

The nofollow HTML attribute was originally designed to stop comment spam on blogs. Believing that comment spam affected the entire blogging community, in early 2005 Google’s Matt Cutts and blogger’s Jason Shellen designed the attribute to address the problem.[2]

The specification for nofollow is copyrighted 2005‒2007 by the authors and subject to a royalty free patent policy, e.g. per the W3C Patent Policy 20040205,[3] and IETF RFC 3667 & RFC 3668. The authors intend to submit this specification to a standards body with a liberal copyright/licensing policy such as the GMPG, IETF, and/or W3C.[1]


Search engines have attempted to repurpose the nofollow attribute for something different. Google began suggesting the use of nofollow also as a machine-readable disclosure for paid links, so that these links do not get credit in search engines' results.[17]

In particular, “nofollow” is invented by Google. Why is google allowed to create such usage? It seems the primary purpose of such usage is just to benefit Google itself in its search result ranking. (can this be likened to how early Netscape creating lots of non-standard tags to benefit itself, or how Microsoft created non-standard behavior in their browsers?)

Also, the “nofollow” was originally created to indicate spam links (as in blog comments), but now it seems to be used as a indicator of commercially sponsored link.

Is the “nofollow” invention actually contributing to the whole society in good ways? I'm not sure. One may argue that it prevented lots of spams and improved search results. But from another perspective, i think it merely created a additional minor strategy variation in the war of aggressive marketers vs Google search engine.

Punishment from Google?

Am pissed about this personally because i started to try to monetize my site this year (2010). Earlier this year, i sold some links to some questionable seo site, before i knew about “nofollow”. The link destinations have no relevance to my pages and the destination seem to be shady seo sites. After about 3 months, i discovered “nofollow”, i put it in, and clearly my client didn't like it, and simply canceled. (despite my offer to put their links to 100 times more pages. Clearly, they are specifically after my site's ranking) Ι do not know if Google has “penalized” my site due to this incident.

Another issue is that i use text-link-ads.com's service to monetize my site. However, text link ads does not allow nofollow. I'm happy to get money for my writing efforts on my site, but am not happy of the fact that Google considers it a bad practice.

It seems sensible that as a author of a web page, that if i deem a link relevant, appropriate, benefits my readers, even if it's paid and i clearly marked the link as “sponsored link”, i should be allowed to do so without adding the “nofollow”, and Google shouldn't punish my site because i have paid links.

Whether a link is commercially sponsored, does not necessarily correspond to it being not useful for readers.

Thanks Adrienne Boswell for a correction that “nofollow” isn't a attribute.


Here's a comment i made to a blog about paid links @ Source www.bruceclay.com

google invented the nofollow stuff. Not saying it's evil, but in one aspect google is forcing a unnatural rule on what link should or should not be. In a sense, google force this to webmasters to maker THEIR job of doing a search engine easier.

this backfires, and now we have a huge market of paid links.

it's hard to see a technical solution that can solve this, as others mentioned here.

i think Google should abandon the nofollow rule. Change their algorithm for page rank to not use link so much, or something. It's their job to do search ranking, they should not force a unnatural rule on webmasters.

if natural links (paid links) screw up google search, too bad. Perhaps other search engine would do better.

i think it's kinda crude in today's tech advancement that webmasters need to manually deal with follow/nofollow links. By w3c html spec, link is just a link, there's no such thing as nofollow. I don't see any benefit of introducing this nofollow thing to humanity in general other than just benefiting Google.

when google stop the nofollow rule, the paid link problem will probably naturally dissolve too. And i doubt that search result quality, may it be Google or others, will degrade.

programer hand toys

Perm url with updates: http://xahlee.org/emacs/emacs_pinky.html

Relax Your Hand When Not Actually Typing

When in a active type session such as coding or writing, perhaps more than 50% of the time your hand is actually not punching the keyboard. You constantly take a pause to read or think. This pause can be 1 second to 10 seconds or more. However, for many people, their hands are still tensed up during these times, ready to type. This is one major cause of RSI.

Remind yourself to check your hands when you are not actually in action of typing or using the mouse. See if your hand is not completely relaxed.

It's a good habit to develop to even remove your hand from the keyboard or mouse when you are not actively typing, even if the duration is just few seconds.

Hand Toys

Here's some fun toys i use that give my hand something to do, to take them away from the same muscle usage for typing or mousing.

So when i'm reading or thinking, it's a habit to pick these toys up and play with it unconsciously.

Squeeze Ball

Get a squeeze ball. amazon There are several types of squeeze ball. Some are spongy and light weight, requires little effort to squeeze, and spring back into shape immediately. Another type feels like clay. You have to squeeze hard with the whole hand for it to deform, and they deform slowly. I like them both very much.

Rubber Band

Get a rubber band. amazon Wrap them around all 5 fingers, then try to open the fingers. This is kinda reverse exercise to squeeze balls. With the right size of rubber band, you can easily expand your fingers once every second.

Pen Twirling

You might try to pickup Pen Spinning. Though, am not sure this is good for you. Learning the tricks can be addictive, and the constant pen dropping can be quite annoying to those around you. (In East Asia, majority of highschool students do some form of pen twirling. When walking into the class, you hear the sound of pen droppings all over.) Personally, pen twirling has become a unconscious habit for me since age 13.


It is universal advice that you should have 10 minutes of break every 2 hours. The exact schedule varies. I always take breaks. Some use a clock, but i tend to do it spontaneously. Every 2 hours or so, i'd get up and walk for 10 minutes or do some juggling during break. Been a juggler since age 17. amazon

chinese baoding exercise ball2

Chinese hand exercise iron balls

When talking a walk, i usually carry Chinese hand exercise iron balls It makes me looks like a Asian sage. (don't buy those with decorative inlaid brass wire on the ball surface. They look pretty, but if you dropped or chipped the ball, the metal wire may stick out. Get pure marble or metal ball. Also, most of them chime. I prefer them not, especially if you work in the office.)

  • “Chinese Exercise Ball (Stone)” amazon
  • “Chinese Exercise Ball (Metal)” amazon


are you a persecuting moralist?

Wikipedia article Sideshow. Quote:

Interest in sideshows declined as television made it easy (and free) to see the world's most exotic attractions. Moreover, viewing “human oddities” became distasteful as the public conscience changed, and many localities passed laws forbidding the exhibition of freaks. The performers often protested (to no avail) that they had no objection to the sideshow, especially since it provided not only a good income for them, but in many cases it provided their only possible job. The sideshow seemed destined for oblivion, until only a few exemplars of the ten-in-one remained. A greater number of “Single O” attractions still tour carnivals.

That's a example of moralist doing harm to society. So, if you are such a moralist, e.g. you are the bleedingheart concerned about feminism, children, the poor and have-nots, chances are, you are doing more harm than good, and you are doing it to satisfy the fundamental psychological itch for having a worth in life.

See also:

  • 〈Freaks〉 amazon
  • 〈Sideshow: Alive on the Inside〉 amazon (1999)

There are too many examples to cite...

elisp tip: message and apropos-command

Tip for elisp coders. Often, while still writing your program and in the debugging process, you might put 「(mesage mystr)」 to print some variables. However, if your “mystr” happens to contain “%” char such as in url, then you'll get a mysterious error “Not enough arguments for format string”. Took me some time to trace a bug to this extraneous debug line. So:

;; don't do this
(message mystr)

;; do this
(message "%s" mystr)

Also, you know about apropos-command 【Ctrl+h a】 right? Useful to find the command you want. However, remember that it only list commands, not functions. When you are looking for the function you want, you can do a 【Ctrl+u】 first, so that apropos-command will also list functions.


chinese word for fuck

The correct word for fuck in chinese is 肏 (cao4). People often write 操, same sound, but incorrect word. Possibly this incorrect usage began as euphemism.

The word 肏, is made up of 2 words. The top is 入 (ru4), meaning “enter”. The bottom is 肉 (ruo4), meaning flesh.

Emacs, RSI, My Experiences

Perm url with updates: http://xahlee.org/emacs/emacs_rsi_my_experiences.html

Emacs, RSI, My Experiences

Xah Lee, 2010-09-05

Recently, i had starting symptoms of RSI (repetitive strain injury). (For detail see: Left Wrist side-to-side Motion Pain; vi Esc key Syndrome) This page is some practical emacs and keyboarding advices i learned due to this experience.

Keyboarding Advices Are Qualitatively Different Depending on Typing Duration

I learned that typing advice matters depends on just how much one types a day. If you just type less than 1 hour a day like vast majority of computer users, qwerty or bad habits or bad keyboard is completely healthy! You could do this for 10 years and never have any problem.

Big difference from coders who actually actively have fingers pressing keys a accumulated total of 3 hours a day, to some who have 10 hour sessions and actually type 6+ hours a day, and compared to data entry clerks who has fingers pressing keys for ~8 hours a day fast and non-stop.

For the latter, a special ergo keyboard like Kinesis or Maltron becomes necessary.

All programers have strong opinions about keyboarding, but how much one really types makes the advice qualitatively different. Advice from those typing 5 hours per day is not applicable for those typing 10 hours a day, and advices from the 10-hours experience may not be suitable for those typing just 5 hours, even if both are sound ergonomic advices. (you'll see why below)

Tab, Enter, Backspace Key are Problems

I learned that the PC keyboard really have serious problems especially with the Tab, Enter keys, Backspace, and the right side Shift key. Even with Microsoft's ergonomic keyboards.

They are all pressed by stretched pinky. The Enter and right Shift requires a stretched pinky because there is 1 extra key after the right pinky's home position. (the apostrophe 「'」 key.) (Some euro lang layouts such as QWERTZ and AZERTY have 2 extra keys in between!)

This is the first time, that i realized from actually hand experience, about the problem of these keys. To press Enter or right Shift, the right hand does a combination of stretching pinky or side-to-side wrist movement. Do this for 8 hours a day every 5 seconds; hello RSI!

One might think these keys are not used that often, but from emacs command frequency study , programers actually do a lot editing and not simply data entry. The average for editing keystrokes is like 48%! (for each person, it varies from 20% to 80%, depending on whether you are for example heavily writing a lot emails, or much reading/editing code.)

(Maltron, Kinesis keyboards solve this problems by having thumb cluster keys for these)

For more detail on this, see: Keyboard Hardware Design Flaws and Kinesis Contoured Keyboard Review and RSI.

Emacs Tips for 70-Hour Week Sessions

The following are some specific emacs advices. Note that i already use:

So, the following advice may be applicable only if you already do the above and have to type 70-hour weeks for many weeks.

• I started to remap extensively my personal bindings that involves a Shift. Get rid of them. Especially those needs the right shift. (i.e. the letter is on the left side of keyboard)

• I started to aggressively make alias to commands i use often. The aliases are 1 to 3 letters long. Put alias file on your Emacs's Bookmark so you can open them right away and define new ones the moment you find a command that you are using a lot today or past days. (i stopped worrying about cluttering alias space or managing to remember them. It doesn't seem to be a practical worry.)

I use aliases because i already have about 200 personal hotkeys. Single key spaces are mostly used up (including single keys on the number pad), key chord combinations are harder to remember.

• Do the same for abbrev, as well as your custom keybinding file. The point here is that you want a dynamic and instantaneous system that let you easily change or add new shortcuts, alias, abbrevs, and you should get a habit of adding new ones whenever you noticed a command or word that you've been using frequently in the past few days. (you will usually notice it. For command, due to the fact you have to press Tab a lot to command completion (e.g. elisp's buffer-substring-no-properties) , and for long words like “environment variable” or “internationalization”, “Microsoft”, “Windows”, “GNU Emacs”, “software”, or “http://ergoemacs.org/”, you'll notice.)

• I started to type enter by 【Ctrl+m】 half of the time. (in fact 【Win+m】 is also Enter now thru AutoHotkey.) Partly to alleviate the burden on right hand, partly to vary the muscle usage. And yes, sometimes press Enter by moving your whole hand, as in hunt-n-peck.

Note, unless you are on a laptop, don't press Ctrl with pinky, and it's probably not a good idea to swap Ctrl with Caps Lock. (See: How To Avoid The Emacs Pinky Problem.)

• Remapped Caps Lock to Tab now. (or, i could also use 【Ctrl+i】)

• Seriously started to use yasnippet template system a lot. Made it a habit to create new templates constantly and instaneously. Usually with just 1 to 3 letter abbreviations to invoke them. Don't fret about abbrev consistency, template design, etc. The point here is that it's for your personal use, and that it immediately saves you lots of typing.

For example, instead of “div.class” for 「<div class="...">...</div>」, you can make it just “d.c” or even “dc”.

• I realized that bookmark, dired, all can use mouse. I try to switch to mouse more often. Yes the keyboard is faster but not good if repeatedly used for 10+ hours a day without hand muscle changing exertion pattern. Sometimes also use mouse to select text.

• I started to use less efficient keys sometimes, e.g. the arrow key and 【Ctrl+arrow】 for cursor movement, page up/down, .... To get hand away from the same muscle usage on touch typing position.

• Alternate hands for pressing the Space bar.

My problem is only with left hand. On Dvorak, right hand actually does 14% more typing. I realized that i always press space with left thumb. Now i switch to right thumb. Perhaps eventually want to develop a habit of alternate hands for space bar after each word. (the space in language is used more frequently than any letter)

• I switch keyboards during a day. My 3 fav are Microsoft's Natural Ergonomic Keyboard 4000, Comfort Curve Keyboard 2000, Wireless Natural Multimedia. Right now am on comfort curve, which has laptob style flat keys. Change keyboard is for the purpose of varying the muscle usage pattern.

• In emacs keybinding, forget anything about consistency or ease-to-remember. One principle and one only: map Command Frequency to ease of the key.

• Do not bother with prettying up little formatting in code or deleting a trailing space, alignment. Avoid un-necessary typing. Use automatic formatting tool as much as possible. (e.g. emacs delete-trailing-whitespace and much others.)

• Set Windows's mouse behavior to be auto-raise. That is, when your mouse hovers on a window, that window automatically comes to the front. I find this convenient.

ErgoEmacs Viper Mode

I seriously considered creating a ErgoEmacs viper mode. I'm familiar with vi's “modal” methods of editing, but have always kinda put off of thinking about whether the vi modal method is more efficient or ergonomic. With my RSI incident, i put heavy thought about it, and i think yes, the modal method is actually more efficient and ergonomic.

I think i'll invest time in this in the future.

(However, note that by default the Esc for switching mode is a FAST way to get RSI. Also, the default command keys in vi are NOT optimal. (see: Emergency vi (vi tutorial)) Vi's keys, like emacs, are largely historical happenstances without any thought on efficiency or ergonomic. (see: Keyboard Hardware's Influence on Keyboard Shortcut Design.) )

Kinesis Keyboard

The Kinesis Contoured Keyboard solves many major PC keyboard problems. I think i may get it.

I think the above sums my recent experiences.

Again, this needs to be emphasized: all the above advices is for someone who spend some 10+ hours in front of computer for 3 or more years. If your keyboard needs is not this heavy, some of the above advices are not applicable, and in fact less efficient (e.g. switching keyboards in a day, constantly add new keyboard shortcuts, use the mouse, etc.)

Also, my heavy use of keyboard is mostly writing essays and tutorials in html. So, there's a lot of heavy data-entry tasks (meaning: just keep typing a lot of plain english text.). Because i have extensive shortcuts and commands to insert html tags or special chars such as 〈「【([{",=+-"}])】」〉, my typing problem is probably mostly due to heavy typing, not much from emacs chording.

Was this page useful? If so, please do donate $3, thank you donors!


spread ErgoEmacs

Created a ErgoEmacs online forum invitation, like this:

Join ErgoEmacs's Discussion Forum!
Google Groups

If you are a ErgoEmacs user, please join. You can subscribe with abridged or digest format with 1 email per day. Many webfeed are available at http://groups.google.com/group/ergoemacs/feeds

If you like ErgoEmacs, you can place the following on your website or blog to spread ErgoEmacs.

<table border="0">
Join <a href="http://ErgoEmacs.org/">ErgoEmacs</a>'s
<a href="http://groups.google.com/group/ergoemacs">Discussion Forum</a>!
<form action="http://groups.google.com/group/ergoemacs/boxsubscribe">
Email: <input type="text" name="email">
<input type="submit" name="sub" value="Subscribe">
<tr><td style="vertical-align:middle">
<img src="http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif" height="30" width="140" alt="Google Groups">

lisp macros and Practical Common Lisp

Perm url with updates: http://xahlee.org/UnixResource_dir/writ/practical_comm_lisp_macros.html

Lisp Macros and Practical Common Lisp

Xah Lee, 2010-09-05

Xah Lee wrote:

... and i think the Practical Common Lisp book is idiotic.

Sometimes when i post to tech geeker groups, some spice is added on top of my opinions to make it more pungent.

No doubt, such also garner bad rap for me, and distanced many who otherwise might be friends.

Peter Seibel, the author of 《Practical Common Lisp》, will probably see my message (if not already), and think i'm a troll. And if the person in question has some social standing or good sense, typically they just ignore me, but otherwise, often the geeker (fledgling student or nameless old fart) will mark me red and chase me here or there online.

Hehe. That's called: the human nature.

After being such a person for about 10 years now, i admit that some of my words is quite off color, and not true, or in literary words: offensive hyperbole.

O well but a troll is a troll and u can't expect dining etiquette. I quote the redoubtable Xah Lee:

 When a person's sanity is at balance,
 when human passion is raging,
 no etiquette must get in the way.
     —Xah Lee, 2001.

from Netiquette Anthropology.

but about the 《Practical Common Lisp》 amazon book, i'd like to undress my hyperbole a bit.

I didn't read it. I only scanned one chapter, the chapter 7 〈Macros: Standard Control Constructs〉 at gigamonkeys.com, around perhaps 2006. I remember, i was quite angry when reading that chapter. A book purporting to be practical and pitching lisp to imperative monkeys, spend a chapter on a outdated academish fluff, but more so, telling readers how certain very basic language constructs such as “when” in lisp is made possible by a internal hack. Reading that was infuriating to me. Here we have a mass of imperative coding c c++ java monkeys, who probably have been that dumb in industry for 10 or more years, and now eager to give the artificial intelligence language a try, and here they have to endure the practically-speaking useless chapter that tries to conduct a anciently questionable concept.


Can you now see my point of view?

Aside from scanning this chapter, i haven't read the book. (because i have no interest in learning Common Lisp.)

My criticism on chapter 7 is merely picking bones in a egg. It has little to do with lisp the language. More do with the wide number of lisp preaching idiots who hang macros on their mouths all day but are totally ignorant of the far more generalized concept of pattern matching as exists in Mathematica and other functional langs.

But mainly, am writing this message here to say that it is indeed reasonably a good book. A very much needed, practical, book on Common Lisp, practically speaking.

I remember i have seen Peter on google talk video too. Also, last year i noticed he also wrote another book 《Coders at Work》 amazon, which is a collection of interviews with well known programers. worth checking out.

emacs diredPlus mode

Installed the “Dired+” mode, by Drew Adams. It's a very nice enhancement to dired. See its home page at emacswiki.org DiredPlus for many screenshots and features.

To installed, just place the file at 〔~/.emacs.d/dired+.el〕, then put this code 「(require 'dired+)」 in your emacs init file. Optionally, byte-compile it to make it load and run faster.

Initially, i needed a way to omit some files in a dired buffer. DiredPlus does the job. If you don't know what dired is, see: File Management with Emacs (dired tutorial).