2011-07-15

Google Dictionary and Google Chrome Dictionary Extension

Google Dictionary and Google Chrome Dictionary Extension

Discovered a Google English dictionary, at http://www.google.com/dictionary?q=curlicue.

What's really nice about it is that if you are using Google Chrome web browser, you can install a extension that lets you double-click on a word in any webpage and its definition will be shown in a popup window. It includes a human-spoken recording of the pronunciation, and you can click to go to the dictionary site for example usage (gathered from the web)

2011-07-14

thanks for donation

Thanks to Xiang Xin Luo for donation.

For those of you who bought my Emacs Tutorial, just send me a email and i'll mail you a update. (xah@xahlee.org) In the subject, put “xah emacs tutorial update”.

Buy at Buy Xah Emacs Tutorial. Thank you for support!

Also thanks to Stanley Rabinowitz of mathpropress.com for donation, for the Visual Dictionary of Special Plane Curves project.

Note that you can purchase the entire project as downloadable file for easy reading on your computer or iPad. See: Buy A Visual Dictionary of Special Plane Curves. I still don't have Mathematica files updated yet, but you'll get free update when available.

Thank you for support!

Emacs: unique buffer names; auto-compile elisp files

Emacs: unique buffer names; auto-compile elisp files

If you work with files of the same name often, their buffers name is hard to distinguish. e.g. {“index.html”, “index.html <2>”, “index.html <3>”}. You can make the buffer name display part of the dir name. Place the following in your emacs init file:

;; make buffer names easily identifiable
(require 'uniquify) ; bundled with GNU Emacs 23.2.1 or earlier
(setq uniquify-buffer-name-style 'forward)

auto byte-compile elisp files

If you code elisp, it's nice to have the elisp file automatically byte-compiled everytime you save it. Put the following in your emacs init file:

;; auto compile elisp files after save
(add-hook 'emacs-lisp-mode-hook (lambda () (add-hook 'after-save-hook 'emacs-lisp-byte-compile t t)) )

Note that a byte-compiled lisp file will make emacs load it faster, but also run faster. The code run at least 6 times faster. However, for small elisp files (such as your 〔.emacs〕), the speed increase may not be noticeable.

Also note: if you want emacs to load the byte compiled file if it exists, you should not include the “.el” suffix. e.g. do it like this (load "my_emacs_keys") See also: How to Install Emacs PackagesEmacs Lisp's Library System: What's require, load, load-file, autoload, feature?.

I got the above tips today from Source tsengf.blogspot.com. Check it out, he's got many other emacs tips.

2011-07-15 Addendum: Adolfo Benedetti wrote to add a code so that it'll byte-compile only if there already exist a byte-compiled file. Great improvement. Thanks.

(defun auto-recompile-el-buffer ()
  (interactive)
  (when (and (eq major-mode 'emacs-lisp-mode)
             (file-exists-p (byte-compile-dest-file buffer-file-name)))
    (byte-compile-file buffer-file-name)))

(add-hook 'after-save-hook 'auto-recompile-el-buffer)

Rheotomic Surfaces (link)

Rheotomic Surfaces by Daniel Pike

potential flow
Potential flow img src
laplacian circle packing
Laplacian circle packing. img src

Rheotomic surface. Source

A really beautiful blog, with explanations: Rheotomic Surfaces (2009-02-06) By Daniel Piker. @ spacesymmetrystructure.wordpress.com

His blog is full of beautiful things. Highly recommended. Subscribe.

See also:

2011-07-13

Google+, Marketing and Circles

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

Google+ Which Circle to Put Your Friends In; Google+ Real Name Account Debate

Get your Xah Particle Maker today!

Xah Lee, 2011-07-15

Google+ Real Name Account Debate

Recently there's a debate, complaint, mostly from Second Life players, about Google+'s policy of account names. Namely, Goole+ is starting to ban accounts whose name does not seem like real people names. On the web, many notable Second Life personalities are lobbying or boyscotting Google+. See here and collection of blogs and press articles about it: My Google+ Profile has been suspended because I'm using my Second Life avatar identity (2011-07) By “Opensource Obscure” @ Source www.flickr.com

(if you don't know what g+ is, see Wikipedia: Google+)

I say: fuck avatars. Shows ur rl face.

remember like 10 years ago in the late 1990s or early 2000s, when the Cyperspace has the saying that nobody knew you are a dog? and when you went to online forums when such began (e.g. livejournal), everybody has names like batman this or vampire that. You can never know who the fuck they are, and can never trust anyone. Everybody talks their big talks and whatnot lala-world behind their masks. (actually, just like Second Life today) Real business or relationship development is very difficult. Thanks largely to the “Face” in Facebook, today that's mostly gone, where any normal people, joe & jane, moms & pops, grand ma and aunts, can more easily establish real friends, conduct business, get hired, date and get married, meeting new people and friends online. I don't like Facebook, due to its terrible ethics (See: Facebook's Ethics.), but in the history of the web, it is due to Facebook that the use of real names and real photos became a common practice.

of course, there'll always be a small group of people who prefer to go anonymous for various reasons. e.g. they might be “hackers” (shy engineer types), or married people who want to explore online sex, or they might want to discuss political sensitive issues. Or, just as in real life, some are extremely shy, social phobia, or the creepy personality types (me), etc. That's all good. For this group of people, why do you want to be in a SOCIAL NETWORK in the first place? There's still good reasons some want to be on g+, then you could use “real” pseudonyms, e.g. John White, Mary Jane, Lewis Carroll, Pauline Réage. G+ doesn't really force you to match your name with a real life ID, and nobody would pick you out for that. Please, no Batman, Venus, Morpheus, Princess X. There is, after all, literally a Second Life for that.

(with respect to my SL friends. But my rants stay their style as is. LOL)

See also a precedence: The Demise of orkut.com.

Here's one of the online article about the issue: The Google+ Controversy & Virtual Worlds – A Question Of Identity (2011-07-16) By Avril Korman. @ Source searchenginewatch.com

Here's a comment i made, written more for SL crowd, edited:

even i hate Facebook for their terrible ethical standards, but it is due to Facebook that the use of real names and real photos became a common practice, with that, making real friends and conduct business online became more widespread. Before Facebook (say ~2005), the internet forums are like today's 4chan, or, Second Life: you never see any real name or photos in any forum or comment.

note that g+ does not force you to use real life identity. It simply want you to not use fantasy names, e.g. Morpheus, Barbie. They have good business reason too. When grandma or business men went to a social network, and when a significant percentage of people you see there are Batman and Barbie or Dragons, what are the chances your grandma and businessman want to sign up?

this is the same reason Facebook became a huge success for social networking — due to it's roots that focus on real people and real photos, the Face in Facebook, the Book of your Alma Mater. It is this reflection on real life, that common people, who barely knew what's a email (e.g. your mom, your grandpa) became a part of it. Before Facebook, there's plenty of social networks (livejournal, slashdot, blogger etc), none of which focused on real name with photos. Similarly, linkedin is also successful, due to its focus on employer/employee networking, which require real identities. (i suppose myspace too, though i haven't used it.)

if you want anonymity, there's no lack of places to go. Second Life, 4chan, countless gaming communities. In general, you don't conduct business, or establish real life friends, etc on these communities. You conduct fantasy and beer friends there.

the US law cited, if true, doesn't require that Google or any social network services regarding using “any” names. Try to join a real life club using Batman. See if they kick you out, and see if you can sue them successfully.

as digital age marches forward, increasingly more activities are done online by *common people* (not just gamers, artists, outcasts, technologists, or young people). e.g. online purchase, online dating. These began as forward-looking and questionable, but thru the past decade more and more every activity that's possible online will become common practice. And for this to happen for common people, real life identity is essential. It's going to happen whatever your stance is on g+'s naming policy, or whether g+ fail or not. It's a matter of time. While, this does not mean anonymous communities will disappear, on the contrary, i agree with you that there'll be more and am glad for that. But it just ain't gonna be Google+, and personally i want Google+ to succeed, and kill Facebook.

Google+ Spam

on a different subject … there are already several accounts that's pure marketing spam accounts adding me to their circles. It works like this. Let's say you sell health insurance, and with a site with ads too. Create a g+ account. Then, add as many people to your circle as possible. (a large percentage of Twitter and Facebook accounts are like that). If you have 1k in your circle, perhaps 1% will get curious and click to see who you are in your link. Bang, effective enough marketing!

Which Circle to Put Your Friends In?

On a separate subject, about the circles, the theory is that in rl we all have different circles to do diff things with, e.g family, close friends, workmates, roommates etc. So comes g+ with circles. But then, doesn't seems to work. Because, to work it out, it's a extreme pain to manage the circles. Online, typically we know hundreds of people. You're not sure which circle or circles to add them to. Not sure what circles you should create. e.g. in my case, on intimacy level there's friends to barely chatted once in some online form. Friends are in quite diverse group too. (beer friends, child-hood friends but not friendly friends, life-death friends, platonic friends, girl/boy friends, etc.) Then, the community and context you know them are diverse too. e.g. me, some are from the Second Life community, some are programing/emacs community, some are math professors. Some RL situation. If you just adopt the default circles g+ provided: {friends, family, acquaintances, following}, that's wholly inadequate that one might just as well abandon the circle idea. If you do try to create the circles and put people in the right one, it's extremely time consuming to manage and inflexible. Hard to change when relationship grows or changes.

googleplus circle management
Googleplus circle management. Source: Joey DeVilla

PS add me on g+ here http://gplus.to/xah

Want to dash through walls?
Try Xah Tele-Dasher!

Emacs: perl-mode vs cperl-mode

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

Emacs: perl-mode vs cperl-mode

Xah Lee, 2011-07-13

In emacs, there are 2 modes for perl: perl-mode and cperl-mode. Both are included in emacs 23. perl-mode is the simpler of the two. This page is a comparisonn of their syntax coloring features.

By default, perl-mode is loaded when you open a perl script.

  • perl-mode is originally written by William F Mann (aka Bill Mann). 1023 lines of code.
  • cperl-mode is primarily written by Ilya Zakharevich. 8987 lines of code.

Syntax Coloring Comparison

In emacs, the global variable “font-lock-maximum-decoration” controlls how much coloring you want. The syntax coloring in the above pages have “font-lock-maximum-decoration” set at 2.

If you find cperl's coloring too wild, you can set the value to 1. (just call “set-variable”) or put this in your emacs init file: (setq font-lock-maximum-decoration 2). Call “describe-variable” to see full doc of this variable. Note: not all modes support “font-lock-maximum-decoration”. cperl-mode does.

Feature Comparison

cperl-mode offers much more features than perl-mode.

perl-mode's Inline Doc

perl-mode is an interactive compiled Lisp function in `perl-mode.el'.

(perl-mode)

Major mode for editing Perl code.
Expression and list commands understand all Perl brackets.
Tab indents for Perl code.
Comments are delimited with # ... \n.
Paragraphs are separated by blank lines only.
Delete converts tabs to spaces as it moves back.
key             binding
---             -------

TAB             perl-indent-command
  (that binding is currently shadowed by another mode)
ESC             Prefix Command
: .. ;          perl-electric-terminator
{               perl-electric-terminator
}               perl-electric-terminator
DEL             backward-delete-char-untabify

C-M-a           perl-beginning-of-function
C-M-e           perl-end-of-function
C-M-h           perl-mark-function
C-M-q           perl-indent-exp


Variables controlling indentation style:
…

cperl-mode's Inline Doc

cperl-mode is an interactive compiled Lisp function in
`cperl-mode.el'.

It is bound to <menu-bar> <file> <lang-modes> <perl>.

(cperl-mode)

Major mode for editing Perl code.
Expression and list commands understand all C brackets.
Tab indents for Perl code.
Paragraphs are separated by blank lines only.
Delete converts tabs to spaces as it moves back.

Various characters in Perl almost always come in pairs: {}, (), [],
sometimes <>.  When the user types the first, she gets the second as
well, with optional special formatting done on {}.  (Disabled by
default.)  You can always quote (with C-q) the left
"paren" to avoid the expansion.  The processing of < is special,
since most the time you mean "less".  CPerl mode tries to guess
whether you want to type pair <>, and inserts is if it
appropriate.  You can set `cperl-electric-parens-string' to the string that
contains the parenths from the above list you want to be electrical.
Electricity of parenths is controlled by `cperl-electric-parens'.
You may also set `cperl-electric-parens-mark' to have electric parens
look for active mark and "embrace" a region if possible.'

CPerl mode provides expansion of the Perl control constructs:

   if, else, elsif, unless, while, until, continue, do,
   for, foreach, formy and foreachmy.

and POD directives (Disabled by default, see `cperl-electric-keywords'.)

The user types the keyword immediately followed by a space, which
causes the construct to be expanded, and the point is positioned where
she is most likely to want to be.  eg. when the user types a space
following "if" the following appears in the buffer: if () { or if ()
} { } and the cursor is between the parentheses.  The user can then
type some boolean expression within the parens.  Having done that,
typing C-c C-j places you - appropriately indented - on a
new line between the braces (if you typed C-c C-j in a POD
directive line, then appropriate number of new lines is inserted).

If CPerl decides that you want to insert "English" style construct like

            bite if angry;

it will not do any expansion.  See also help on variable
`cperl-extra-newline-before-brace'.  (Note that one can switch the
help message on expansion by setting `cperl-message-electric-keyword'
to nil.)

C-c C-j is a convenience replacement for typing carriage
return.  It places you in the next line with proper indentation, or if
you type it inside the inline block of control construct, like

            foreach (@lines) {print; print}

and you are on a boundary of a statement inside braces, it will
transform the construct into a multiline and will place you into an
appropriately indented blank line.  If you need a usual
`newline-and-indent' behavior, it is on C-j,
see documentation on `cperl-electric-linefeed'.

Use C-c C-t to change a construction of the form

            if (A) { B }

into

            B if A;

key             binding
---             -------

C-c             Prefix Command
TAB             cperl-indent-command
  (that binding is currently shadowed by another mode)
C-j             newline-and-indent
ESC             Prefix Command
(               cperl-electric-paren
)               cperl-electric-rparen
:               cperl-electric-terminator
;               cperl-electric-semi
<               cperl-electric-paren
[               cperl-electric-paren
]               cperl-electric-rparen
{               cperl-electric-lbrace
}               cperl-electric-brace
DEL             cperl-electric-backspace

C-M-q           cperl-indent-exp
C-M-\           cperl-indent-region
C-M-|           cperl-lineup

C-c C-a         cperl-toggle-auto-newline
C-c C-b         cperl-find-bad-style
C-c C-d         cperl-here-doc-spell
C-c C-e         cperl-toggle-electric
C-c C-f         auto-fill-mode
C-c C-h         Prefix Command
C-c C-j         cperl-linefeed
C-c C-k         cperl-toggle-abbrev
C-c C-n         cperl-narrow-to-here-doc
C-c C-p         cperl-pod-spell
C-c C-t         cperl-invert-if-unless
C-c C-v         cperl-next-interpolated-REx
C-c C-w         cperl-toggle-construct-fix
C-c C-x         cperl-next-interpolated-REx-0
C-c C-y         cperl-next-interpolated-REx-1

C-c C-h F       cperl-info-on-command
C-c C-h P       cperl-perldoc-at-point
C-c C-h a       cperl-toggle-autohelp
C-c C-h f       cperl-info-on-current-command
C-c C-h p       cperl-perldoc
C-c C-h v       cperl-get-help

Setting the variable `cperl-font-lock' to t switches on font-lock-mode
(even with older Emacsen), `cperl-electric-lbrace-space' to t switches
on electric space between $ and {, `cperl-electric-parens-string' is
the string that contains parentheses that should be electric in CPerl
(see also `cperl-electric-parens-mark' and `cperl-electric-parens'),
setting `cperl-electric-keywords' enables electric expansion of
control structures in CPerl.  `cperl-electric-linefeed' governs which
one of two linefeed behavior is preferable.  You can enable all these
options simultaneously (recommended mode of use) by setting
`cperl-hairy' to t.  In this case you can switch separate options off
by setting them to `null'.  Note that one may undo the extra
whitespace inserted by semis and braces in `auto-newline'-mode by
consequent DEL.

If your site has perl5 documentation in info format, you can use commands
C-c C-h f and C-c C-h F to access it.
These keys run commands `cperl-info-on-current-command' and
`cperl-info-on-command', which one is which is controlled by variable
`cperl-info-on-command-no-prompt' and `cperl-clobber-lisp-bindings'
(in turn affected by `cperl-hairy').

Even if you have no info-format documentation, short one-liner-style
help is available on C-c C-h v, and one can run perldoc or
man via menu.

It is possible to show this help automatically after some idle time.
This is regulated by variable `cperl-lazy-help-time'.  Default with
`cperl-hairy' (if the value of `cperl-lazy-help-time' is nil) is 5
secs idle time .  It is also possible to switch this on/off from the
menu, or via C-c C-h a.  Requires `run-with-idle-timer'.

Use C-M-| to vertically lineup some construction - put the
beginning of the region at the start of construction, and make region
span the needed amount of lines.

Variables `cperl-pod-here-scan', `cperl-pod-here-fontify',
`cperl-pod-face', `cperl-pod-head-face' control processing of POD and
here-docs sections.  With capable Emaxen results of scan are used
for indentation too, otherwise they are used for highlighting only.

Variables controlling indentation style:
…
DO NOT FORGET to read micro-docs (available from `Perl' menu)
or as help on variables `cperl-tips', `cperl-problems',
`cperl-praise', `cperl-speed'.

Setting-up cperl-mode as Default

If you always want cperl-mode to be loaded, put: (defalias 'perl-mode 'cperl-mode) in your emacs init file. This way, when you call “perl-mode”, it'll be calling “cperl-mode”.

Alternatively, you can put the following:

;; use cperl-mode instead of perl-mode
(setq auto-mode-alist (rassq-delete-all 'perl-mode auto-mode-alist))
(add-to-list 'auto-mode-alist '("\\.\\(p\\([lm]\\)\\)\\'" . cperl-mode))

(setq interpreter-mode-alist (rassq-delete-all 'perl-mode interpreter-mode-alist))
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl5" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("miniperl" . cperl-mode))

This way, you can still call perl-mode if you do need it, or want to experiment with the two modes.

2011-07-12

What Programing Language Are the Largest Website Written In?

Perm url with updates: http://xahlee.org/comp/website_lang_popularity.html

What Programing Language Are the Largest Websites Written In?

Xah Lee, 2011-07-12

I don't remember how, but today i suddenly got reminded that Facebook is written in PHP. So, on the spur of the moment, i tweeted:

Remember folks, the world's largest sites {Facebook, Wikipedia, “Yahoo!”, etc} are written in Pretty Home Page!

and followed with:

To Chinese friends, what's Baido, QQ, Taobao, Sina written in?

Then, this question piqued me, even i knew that i should never waste my time with such a trifle. But before i can resist, i already spent 20 min to write this list (with help of Google):

  • 1 Google ◇ Java
  • 2 Facebook ◇ PHP
  • 3 YouTube ◇ Python
  • 4 Yahoo! ◇ PHP
  • 5 blogger.com ◇ Java
  • 6 baidu.com ◇ C/C++. perl/python/ruby
  • 7 Wikipedia ◇ PHP
  • 8 Windows Live live.com
  • 9 Twitter.com ◇ Scala backend, Ruby frontend?
  • 10 QQ.com ◇ ?
  • 11 MSN.com ◇ ?
  • 13 LinkedIn ◇ PHP?
  • 15 TaoBao.com ◇ ?
  • 16 sina.com.cn ◇ ?
  • 17 Amazon.com ◇ ?
  • 18 WordPress.com ◇ PHP
  • 22 eBay.com ◇ ?
  • 23 yandex.ru (Russian) ◇ ?
  • 24 Bing ◇ ?
  • 27 Microsoft.com ◇ ?
  • 28 网易 163.com ◇ ?
  • 29 PayPal.com ◇ Java?
  • 31 新浪微博 weibo.com ◇ ?
  • 32 Flickr.com ◇ ?
  • 34 mail.ru ◇ ?
  • 35 Craiglist.org ◇ perl
  • 36 FC2.com ◇ ?
  • 38 Apple.com ◇ Objective C?
  • 39 imdb.com ◇ ?
  • 41 VKontakte.ru ◇ ?
  • 43 搜狐网 sohu.com ◇ ?
  • 44 Ask.com ◇ ?
  • 45 BBC.co.uk ◇ ?
  • 46 tumblr.com ◇ PHP
  • 47 LiveJasmin.com (porn) ◇ ?
  • 48 xvideos.com (porn) ◇ ?
  • 56 土豆网 Todou.com ◇ ?
  • 81 YouPorn.com ◇ ?
  • 103 (Google) orkut.com ◇ ASP
  • StumbleUpon.com ◇ PHP, Perl, C++

The numbers are the site's rankings, from alexa.com. (missing ones are mostly duplicates, such as google japan, google india, etc.)

It's quite notable that twitter stands out with Scala and Ruby.

Those with perl are probably going back to the first dot com era (aka Web 1.0, ~1995 to ~2002). At that time, perl was basically the only game in town (secondarily: Java). (i don't recall what amazon and ebay were in… was it perl or php? how about imdb.com?)

most php follows starting in early 2000s, that's when PHP quietly surpassed perl in all battle fronts.

it'd be interesting to know what some of the chinese sites uses, and porn sites (e.g. livejasmin, xvideos, youporn)

as for Microsoft sites… i suppose they are ASP for older sites and C# with “.NET” for new?

Fill in the blanks please.

2011-07-11

Jon Stewart and Stephen Colbert in Star-Spangled Attires

Jon Stewart and Stephen Colbert in Star-Spangled Attires

rally to restore sanity  Jon Stewart rally to restore sanity  Stephen Colbert
Jon Stewart and Stephen Colbert at Rally to Restore Sanity (2010). img src img src

See also: ASOS Sequin Bandeau Dress in Stars and Stripes and Banners & Damsels & Mores.

what does “trope” means here?

what does “trope” means here?

in the blog article by a journalist: Why I quit my job (2011-07-08) By Kai Nagata. @ Source kainagata.com, there's the following passage. I want to know what “trope” there meant?

Jon Stewart talks about a “right-wing narrative of victimization,” and what it has accomplished in Canada is the near-paralysis of progressive voices in broadcasting. In the States, even Fox News anchor Chris Wallace admitted there is an adversarial struggle afoot – that, in his view, networks like NBC have a “liberal” bias and Fox is there to tell “the other side of the story.” Well, Canada now has its Fox News. Krista Erickson, Brian Lilley, and Ezra Levant each do a wonderful send-up of the TV anchor character. The stodgy, neutral, unbiased broadcaster trope is played for jokes before the Sun News team gleefully rips into its targets. But Canada has no Jon Stewart to unravel their ideology and act as a counterweight. Our satirists are toothless and boring, with the notable exception of Jean-René Dufort. And on the more serious side, we have no Keith Olbermann or Rachel Maddow. So I don’t see any true debate within the media world itself, in the sense of a national, public clash of ideas. The Canadian right wing, if you want to call it that, has had five years to get the gloves off. With a majority Conservative government in power, they’re putting on brass knuckles. Meanwhile the left is grasping about in a pair of potholders. The only explanation I can think of is they’re too polite, or too scared. If it’s the latter, I think it’s clear enough why.

PS it's a very well-written piece. Worth reading.

2011-07-10

Emacs: Defining Alias to Increase Productivity

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

Emacs: Defining Alias to Increase Productivity

Xah Lee, 2010, …, 2011-07-10

In emacs, you can define your own keyboard shortcuts such as F6 for frequently used commands. (See: Define Keyboard Shortcuts.) But if you use emacs extensively, you may have all easy keys used up. A alternative to keyboard shortcuts is to make command names 1 or 2 letters short.

For example, here's my aliases:

(defalias 'yes-or-no-p 'y-or-n-p) ; y or n is enough
(defalias 'list-buffers 'ibuffer) ; always use ibuffer

; shortening of often used commands
(defalias 'rn 'wdired-change-to-wdired-mode) ; rename file in dired
(defalias 'g 'grep)
(defalias 'gf 'grep-find)
(defalias 'fd 'find-dired)
(defalias 'ntr 'narrow-to-region)
(defalias 'lml 'list-matching-lines)
(defalias 'dml 'delete-matching-lines)
(defalias 'dnml 'delete-non-matching-lines)
(defalias 'sl 'sort-lines)
(defalias 'dtw 'delete-trailing-whitespace)
(defalias 'lcd 'list-colors-display)
(defalias 'rb 'revert-buffer)
(defalias 'rs 'replace-string)
(defalias 'rr 'reverse-region)
(defalias 'lf 'load-file)
(defalias 'man 'woman)

(defalias 'sh 'shell)
(defalias 'ps 'powershell)
(defalias 'fb 'flyspell-buffer)
(defalias 'sbc 'set-background-color)

(defalias 'rof 'recentf-open-files)

; elisp
(defalias 'eb 'eval-buffer)
(defalias 'er 'eval-region)
(defalias 'ed 'eval-defun)
(defalias 'ele 'eval-last-sexp)
(defalias 'eis 'elisp-index-search)

; modes
(defalias 'hm 'html-mode)
(defalias 'tm 'text-mode)
(defalias 'elm 'emacs-lisp-mode)
(defalias 'vbm 'visual-basic-mode)
(defalias 'vlm 'visual-line-mode)
(defalias 'wsm 'whitespace-mode)
(defalias 'gwsm 'global-whitespace-mode)
(defalias 'om 'org-mode)
(defalias 'ssm 'shell-script-mode)
(defalias 'cc 'calc)
(defalias 'dsm 'desktop-save-mode)

(defalias 'acm 'auto-complete-mode)

(defalias 'html6-mode 'xah-html6-mode)

;; xah personal
(defalias '8w 'xwe-new-word-entry)
(defalias '8d 'xwe-add-definition)
(defalias '8s 'xwe-add-source)
(defalias 'c 'xah-cite)
(defalias 'cp 'copy-to-register-1)
(defalias 'cr 'compact-region)
(defalias 'cw 'count-words-region-or-line)
(defalias 'db 'dehtmlize-block)
(defalias 'dr 'dehtmlize-region)
(defalias 'dsc 'delete-secondlife-cache)
(defalias 'dss 'desktop-settings-setup)
(defalias 'dstp 'xah-fix-dstp)
(defalias 'eol 'replace-eols-to-p)
(defalias 'fs 'full-size-img-linkify)
(defalias 'ft 'fix-timestamp)
(defalias 'hb 'htmlize-block)
(defalias 'il 'image-linkify)
(defalias 'irh 'insert-random-hex)
(defalias 'irs 'insert-random-string)
(defalias 'k 'htmlize-keyboard-shortcut-notation)
(defalias 'wl 'wikipedia-linkify)
(defalias 'l 'xah-file-linkify)
(defalias 'lb 'listify-block)
(defalias 'mb 'make-blogger-entry)
(defalias 'mht 'make-html-table)
(defalias 'pt 'insert-register-content-1)
(defalias 'tb 'title-bracket-to-html-tag)
(defalias 'tls 'toggle-line-spacing)
(defalias 'w 'wrap-span)
(defalias 'xmae 'xah-make-atom-entry)
(defalias 'z 'amazon-linkify)
(defalias '~ 'make-backup)

(defalias '\(1\) 'xah-fix-number-items-block)
(defalias '& 'replace-html-chars)
(defalias '\\ 'escape-quotes-region)
(defalias '\[ 'remove-square-brackets)
(defalias '\" 'replace-straight-quotes)

Save the aboze in file and name it 〔my_alias.el〕, then put it in your 〔~/.emacs.d/〕 directory. Then, in your emacs init file 〔.emacs〕, put:

(load "my_alias")

Making 【M-x】 “execute-extended-command” Easier to Type

The default keyboard shortcut for “execute-extended-command” is 【Alt+x】. You can define 【F5】 to make it easy. (See: Define Keyboard Shortcuts.)

Even better, is to make Caps Lock key for “execute-extended-command”. For a tool to do this on Windows, see: System-wide ErgoEmacs Keybinding for Windows, Mac, Bash. For Mac, see: Mac OS X Keyboard Layout, Keymapping, Keybinding, Tools.

ASOS Sequin Bandeau Dress in Stars and Stripes

Perm url with updates: http://xahlee.org/Periodic_dosage_dir/lanci/star_sequin.html

ASOS Sequin Bandeau Dress in Stars and Stripes

Xah Lee, 2011-07-10

star sequin dress 1
“ASOS Sequin Bandeau Dress in Stars and Stripes” $129.29 Source us.asos.com

Truely beautiful.

star sequin dress 2
Back view.
star sequin dress 4
Full-body photo of the model with the dress. O, lovely feet!
star sequin dress 3
Close up of the Red White Blue glory.