Showing posts from April 1, 2012

Daily Mail Stealing Images

There are lots of scumbags on the web. Spammers, content farms, and Daily Mail is one of them.If you don't have time, check out the first 2 articles:Daily Mail Used My Photos Without Permission and Without Payment2012-04-07 By Michael At Gakuranman. @ Source gakuranman.comThe Daily Mail knowingly and commercially used my photos despite my denying them permission.2011-08-16 By Alice Taylor. @ Source www.wonderlandblog.comDaily Mail accused of lifting Flickr image [new update]2011-04-18 By Olivier Laurent. @ Source www.bjp-online.comDaily Mail sued for copyright infringement [update 2]2010-12-13 By Olivier Laurent. @ Source www.bjp-online.comWhere Do Spammers Came From?Spamlicious: Buy Twitter FollowersTwitter SpamfarmA Egregious Case of Twitter SpamGrayhat SEO Use Translation as a Method to Generate Inbound LinksMachine Generated SpamSpy vs Spy; Tech Geekers vs Spammerscomp.lang.lisp is 95% Spam

Xah Emacs/Elisp Tutorial Update 2012-04-07

New version of my emacs tutorial ready.If you've bought it before, please just email to with subject “emacs tutorial upgrade”.If you haven't bought it yet, you can get it for just $10. See: Buy Xah Emacs Tutorial. Currently about 350 html pages, about 1k pages printed.Also, you can subscribe my emacs blog from g+, facebook, twitter, or Google Reader. See: Xah Lee Feeds. Help spread the word. Thanks.

ErgoEmacs br-native Portuguese efficient keyboard layout

One of the layout supported by ErgoEmacs Keybinding is pt-Nativo for Portuguese. (➲ Supported ErgoEmacs keyboard Layouts) The website for br-native is gone.Here's a page containing basic info about the pt-Nativo layout, and the installation files for Windows and Linux. pt-Nativo (Portuguese) Efficient Keyboard Layout (Thanks to Xavier Pinho for the archive.)

User Interface Design: Stop Shrinking my Screen!


Spamlicious: Buy Twitter, Facebook Followers, and YouTube Views


User Interface Design: Internet Explorer 9's Dysfunctional Colorful Tabs

Perm URL with updates: Explorer has colorful tabs. Look:Internet Explorer 9's colorful tabs. 2012-04-04With a casual glance, can you tell which is the current tab?Here's Firefox tabs. Better.Firefox's tabs. 2012-04-04The best is Google Chrome's tabs.Google Chrome's tabs. 2012-04-04User Interface Design: Peepshow WindowsScreen Density and Web Design ProblemsWeb Design: Say No to Grey Text on White BackgroundWeb Design 2012: Minimal Windows Width of Popular Sites

Ryan Dahl, on History of Node.js


Aftermath: Population Zero

2012-04-06 Aftermath: Population Zero.Aftermath: Population Zero, Canadian special documentary film, published in 2008 on the National Geographic Channel. See Wikipedia for a textual summery of the film.

emacs and elisp tutorial update 2012-04-05

2012-04-05 updated. Simplified. Emacs: How to Define Keyboard Shortcuts. Also, separated into a new page: Emacs Keybinding Syntax Examples.2012-04-05 updated, moved into a new page: Emacs Lisp Command: curly-quotes-to-emacs-function-tag2012-04-05 Updated; new page. Emacs Lisp Programing: Beware of Region Boundary Change2012-04-05 Updated. Emacs Lisp: Updating Atom Webfeed (thanks to jcs for feedback)

User Interface Design: Peepshow Windows

Perm URL with updates: have a 20″ screen, but my software force it to 2″ screen.Internet Explorer 9 options modal box. 2012-03-07Oracle VM VirtualBox setup, 2011.Screen Density and Web Design ProblemsFixed-Layout vs Flowed-LayoutWeb Design: Say No to Grey Text on White BackgroundWeb Design 2012: Minimal Windows Width of Popular Sites

many emacs related updates, 2012-04-04

many emacs related updates2012-04-04 updated: Ask ErgoEmacs.2012-04-04 updated: Problem of Calling Unix grep in Emacs2012-04-04 updated (new page): Inconsistency of Emacs Text-Searching Features2012-04-04 updated (new page): Emacs Lisp: Change Case by Title Convention2012-04-04 when quitting emacs save-buffers-kill-terminal 【Ctrl+xCtrl+c】, emacs will ask to save unsaved buffer, but doesn't switch it to front to let you see.Is there a hook or variable to make it so?Note: save-buffers-kill-terminal eventually calls save-some-buffers. According to its inline doc, it says you can press 【Ctrl+r】 to view the buffers in question. (this doesn't work in ErgoEmacs for some reason, i'll have to look into) In anycase, i want automatic switch.2012-04-04 【Ctrl+hs】 calls “describe-syntax”. nice.other keys i learned in past months and use heavily are:【Ctrl+xCtrl+j】 (dired-jump). Switch to dired and put cursor on current file.【Ctrl+xCtrl+q】 (toggle-read-only). I use it only in dired, which actua…

Emacs: man for woman?

got this comment.«You define man as an alias for woman? woman doesn't work all the time, if it fails, how do you invoke man?»major lol. ☺ (See: Emacs: Defining Alias to Increase Productivity.)Btw, why doesn't alias man to woman work? I have this alias: (defalias 'man 'woman) but it still calls man when M-x man.Here's why, answer given by Stefan Monnier:The reason is that 〔woman.el〕 begins with (require 'man), so when you call man, it autoloads woman, which loads man, which redefines man thus overwriting your defalias.So, to get what you want, do this: (defalias 'man 'woman) (eval-after-load 'woman '(defalias 'man 'woman))

emacs lisp for text processing and wishes

Elisp is really cool.been using it to do text processing like perl for several years now. About every day, my script goes over few thousand files. (doing report, or find/replace. Though, the files sizes are each under 100k) No problem. (caveat: always use with-temp-buffer or with-temp-file, never use find-file to open file, else it can be 40 times as slow. (➲ find-file vs with-temp-buffer))recently ditched my last perl and python scripts i use daily for this purpose. (one perl for validating local links of html files. one python for find/replace)It's slower than perl/python, but fast enough for interactive use, and more powerful. More powerful is especially true when you need to deal with nested things such as html that's out of regex's reach. (because with emacs's buffer datatype, you just move the cursor about, save positions, grab text, etc. (From my perl and python experience, all you can do there is apply regex to each line or whole file. Anything more complex th…

If You Meet a Designer, Whack His Head

if you meet a guy who's a designer and is going over the fine points of design, whack their heads immediately and walk out.designers in general are the type of guy that's the charlatan types. Language design, website design, architecture, even movie director (e.g. Quentin Tarantino), and verging into the general wishy-washy arts department.e.g. Larry Wall fuckhead about language and English. Paul Graham about language design (arc) and “hackers”, and painters! Gazillion website design “lectures” or “guides” all over the web, whose recommendations change with weather. Then UI design hubbub hubbub. Then the writing guilds on style. The entirety of typography idiots who ado about nothing (e.g. Knuth, greatest idiot of this arena among computer scientists who fell for it). Then, art of photography, haute couture, fashion design, …. Then, at the edge of the universe, there comes the real artsy folks who lectured on music composition that doesn't contain a single note, or splash …

Google Blogger Dynamic UI Need Your Cookies!

New discovery. In blogger sites that use dynamic interface, e.g., the site won't load unless you have COOKIES on too. You need javascript on of course. But the surprising thing is that you ALSO need cookies turned on. This is interesting, because cookies are not technically required for dynamic UI.

The Meaning of Lisperati and Emacsen

Lisperati means lispers, lisp coders.however, i just tried to google it for some definite confirmation. I think i read it in the 1990s from The Jargon File or LISP FAQ in newsgroup.Strange, didn't find it after 5 min. Not in wikipedia lisp article. Was sure it's in jargon file or Online Free Computing Dictionary. Neither. comp.lang.lisp group search turned out 2 or so results other than (Conrad Barski, the LAND OF LISP book guy and alien lisp logo guy). Tried google group search 1990 to 2000, no result. (am pretty sure it's there, but google group search has been fucked since about 2005)btw, emacsen is the hacker's jargon for the plural of emacs.(thanks to Tim Bradshaw and Yuriv Khan for a correction.)

Google Tech Talk, Lisp at JPL by Ron Garret

Dearly beloved lisperati,I present you, Ron Garret (aka Erann Gat — aka Naggum hater and enemy of Kenny Tilton), at Google Tech TalkThe Remote Agent Experiment: Debugging Code from 60 Million Miles Away, Google Tech Talk, (2012-02-14) Presented by Ron Garret. (thx to jcs's blog for the news)Death of a Troll — My Memory of Erik Naggum

Lisp read-from-minibuffer Propels Deep Questions

Perm URL with updates: frustrated with emacs lisp “read-from-minibuffer”. Spent now about a hour on this.what i want is simple, like this: (read-from-minibuffer (format "Directory (default %s):" default-directory) default-directory ) prompt user to enter a dir, with default of current dir.however, according to inline doc of “read-from-minibuffer”, the second arg for default input is obsolete. Instead, you have to use the 6th arg. (info "(elisp) Text from Minibuffer") Quote: (read-from-minibuffer PROMPT &optional INITIAL-CONTENTS KEYMAP READ HIST DEFAULT-VALUE INHERIT-INPUT-METHOD) the doc is long so i won't paste here. See it by calling “describe-function”.Now, so i do: (read-from-minibuffer (format "Directory (default %s):" default-directory) nil nil nil nil default-directory) doesn't work. Read the doc again, it turns out that the 4th arg must be true in o…

Intro to Mathematica Pattern Matching for Lisp Programers

updatedI need to traverse a list of lists, where each sublist is labelled by a number, and collect together the contents of all sublists sharing the same label. So if I have the list -((0 a b) (1 c d) (2 e f) (3 g h) (1 i j) (2 k l) (4 m n) (2 o p) (4 q r) (5 s t))where the first element of each sublist is the label, I need to produce -((a b) (c d i j) (e f k l o p) (g h) (m n q r) (s t))I do this with the following - (defun test (list) (loop for j in list for index = (first j) for k = (rest j) with indices = nil if (not (member index indices)) do (pushnew index indices) and collect k into res else do (nconc (nth index res) k) finally (return res))) I suspect that there is a more efficient and elegant way of doing this, however. Any suggestions welcome.Brief background: this is part of a program I've written for reading data from SDIF files, a binary format which stores sound descript…

Emacs: Single Key for isearch

one of the key i use the most often is isearch.if you want a single key to do isearch, you can define it this way. (global-set-key (kbd "<f8>") 'isearch-backward) (global-set-key (kbd "<f9>") 'isearch-forward) (defunxah-isearch-hook () "Hook for `isearch-mode-hook' " (define-key isearch-mode-map (kbd "<f8>") 'isearch-repeat-backward) (define-key isearch-mode-map (kbd "<f9>") 'isearch-repeat-forward) ) (add-hook 'isearch-mode-hook 'xah-isearch-hook) See: How to Override Keybindings in Emacs.

Unicode use: The Wave Dash 〜

Perm URL with updates: is the nth episode of Xah's rectification of typographical convention! (➲ The Writing Style on XahLee.orgThe Moronicities of Typography: Hyphen, Dash, Quotation Marks, Apostrophe)Today, i decided to use the unicode WAVE DASH for date range.Traditionally, it's done by a EN DASH . However, that has several ambiguity problems. It's impossible to tell it from a minus sign. This is especially important in scientific contexts. Quote from Wikipedia Dash:The Guide for the Use of the International System of Units (SI) recommends that when a number range might be misconstrued as subtraction, the word “to” should be used instead of an en dash. For example, “a voltage of 50 V to 100 V” is preferable to using “a voltage of 50–100 V”. It is also considered inappropriate to use the en dash in place of the words to or and in phrases that follow the forms from … to … and between … and ….[9][10]The sources [9] …