Xah Programing Blog 2011-01

image source

Perm URL Funny: botnet, rootkit

Keyboard Shortcuts Conflict in Web Browsers and Mac, Windows.

Cygwin: What's Installed by Default and Which Unix Tool to Install.

Wolfram Alpha Ad: Python Unladen Swallow (humor)

Updated: List of Great Windows and Mac Software.

Just discovered that Windows since XP comes with a command-line tool called “cipher”, which can be used to securely delete files. Shit. Why am i not told about this? I spent several hours when i need to do that in 2010. Updated: How to Secure Delete Files, Shred Files, Wipe Drive.

Question: What tools i can use to monitor network traffic? either build-in or 3rd-party. I like to have a graph view (For example, as in Task Manager) but also nice are tool that lets me know detail, such as what IP/port that's incoming/outgoing. Command line is fine. Or even some tutorial. Thanks.

Answer: start “Task Manager” (taskmgr.exe), then “Performance” tab, then “Resource Monitor …” (perfmon.exe). Or, just start “perfmon.exe”, then click on the “Open Resource Monitor”.

You can also use command line “netstat”. Or, if you want to sniff packets, install Wireshark.

Lulz Security Farewell Note.

Diacritics: Trema, Umlaut, Macron, Circumflex, and All That.

rsync Windows to unix File Permissions.

Picasa Pains: Using Picasa Web As a Backup; Sync All Folders. Update at: Google's Image Application Picasa.

Updated: Design of the Qi Language Logo.

New: Why Qi Lisp Fails and Clojure Succeeds (essay).

How To: Show Day of Week in Windows 7 Taskbar

Go to “Control Panel”, “Region and Language”. Then, click the “Additional settings…” button. Click the “Date” tab. In the “Short date” field, put: yyyy-MM-dd,ddd. Then hit “Apply” button. This will make it look like “2011-06-23,Thu”.

Google Chrome Installed Location: New Era of Software Install Structure?

It's odd that Chrome is no longer installed under “Program Files” on Windows.

Perhaps, due to Google Chrome's philosophy of frequent update, putting it under AppData gets around many admin privilege problems. If so, this may signify some movement about software install location structure.

Notice that the new location is in a personal directory. That means, each user each will have their own copy of Chrome. Thinking in a traditional way, this means less disk use efficiency. But note that Chrome also integrates its own Adobe Flash. If you think about it, disk space is today never used up, at least not for the storage of software. (it is used up by video files, which are few hundred times more each.) So, multiple copies of a software ok. Also, putting the software for each user avoids many complexities developed by OS over the past decades for managing that. (For example, Windows Registry, and Mac uses Application bundle, and unix's ancient ways of {“/usr/bin”, “/usr/sbin”, “/usr/share”, “/lib”, “/usr/local/bin”, “/etc/man”, “/etc/share”, “~/bin”}.)

See also: Software Dependency Complexity.

Turning off Windows7 Auto Snap Feature (Aero Snap).

Windows Logo Key Keyboard Shortcuts.

Keyboard News: KBC Poker Keyboard, Ducky Keyboard.

Unicode Symbols Online Tool

Discovered a nice Unicode site. Unicode table for you At http://www.ftrain.com/unicode/#9800.

See also: Xah's Unicode Tutorial.

I discoverd the link from Jon Snader (jcs)'s blog At irreal.org. Well written blog with annotated comments and links on things of interest to emacs and lisp programers.

Programing Language: The Glory of Lisp's cons.

Why Function Keys F1 F2 Are Useful.

PC Keyboard Modifier Keys (Short Survey).

Rewritten with new findings: Keyboard Layout: Dvorak vs Colemak: is It Worthwhile to Improve the Dvorak Layout?.

Keyboard Layouts: Dvorak vs Colemak vs Workman.

The Idiocy of the Happy Hacking Keyboard.

Microsoft Keyboards.

Mac: Key Remapping, Keybinding Tools

Keyboard Home/End Keys Arrangement.

Computing Culture: What's Hacker?.

How to Change Firefox Mouse Wheel Scroll Speed?.

Cygwin vs VirtualBox.

Logitech Mouse with Spin Wheel.

Backspace Key: Key Label's Influence on Key Purpose.

Linux: X11 Mouse Button Numbering

I haven't really programed perl for like 5 years (except running my old scripts weekly). Today, while browsing the perldoc perlop, i noticed this:

Yada Yada Operator

The yada yada operator (noted ... ) is a placeholder for code. Perl parses it without error, but when you try to execute a yada yada, it throws an exception with the text Unimplemented :

LOL. That must be new, or i totally forgot about it.

Computing: mega vs mibi, kilo vs kibi.

What's Windows CLSID? Second Life UUID?

Windows: is Your USB Drive Fast Enough for ReadyBoost?.

Separated a section from my blue screen article:Windows: What's Prefetcher, SuperFetch, ReadyBoost?.

Discovered several languages. TXL, Colm, and the concept of transformation systems. Added to bottom of: Pattern Matching vs Grammar Specification.

English Idiom in Unix: Directory “Recursively”.

Syntax Semantics Design: Use of Unicode Ellipsis Character vs Dot Dot Dot.

Windows Blue Screen of Death.

Keyboard Evolution: Zoom button, Dedicated Keys.

Today, when starting Cygwin bash, i get:

      2 [main] bash 6324 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    527 [main] bash 6324 open_stackdumpfile: Dumping stack trace to bash.exe.sta
      4 [main] bash 6348 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    435 [main] bash 6348 open_stackdumpfile: Dumping stack trace to bash.exe.sta
      3 [main] bash 6432 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    658 [main] bash 6432 open_stackdumpfile: Dumping stack trace to bash.exe.sta
     84 [main] bash 6968 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    987 [main] bash 6968 open_stackdumpfile: Dumping stack trace to bash.exe.sta
      2 [main] bash 7028 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    656 [main] bash 7028 open_stackdumpfile: Dumping stack trace to bash.exe.sta
      3 [main] bash 6936 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    814 [main] bash 6936 open_stackdumpfile: Dumping stack trace to bash.exe.sta
      3 [main] bash 6480 fork: child -1 - died waiting for longjmp before initia
lization, retry 0, exit code 0x600, errno 11
1126299 [main] bash 6196 exception::handle: Exception: STATUS_ACCESS_VIOLATION
1127161 [main] bash 6196 open_stackdumpfile: Dumping stack trace to bash.exe.sta

O, technology. What a pain in the ass. A few hours is waiting for me to suck juice out of my life. A web search on the error message turns up a few posts, all esoteric.

Luckily, after restarting Windows, the problem went away. O, the miracle of wishful-thinking. ( Addendum: the reason i got that error is probably due to hardware problem.)

Complexity and Tedium of Software Engineering.

Computing Syntax: Use of Unicode Matching Brackets as Specialized Delimiters.

Unicode Full-Width Characters.

Updated AutoHotkey Key Syntax and AutoHotkey Syntax Problems.

AutoHotkey language is the most idiotic among langs i know of. I think it's even worse than perl or unix shell.

AutoHotkey: Script to Toggle Maximize Window.

Left Handed Mouse.

What's PunkBuster and What's System Requirements Lab?

Habitually i clean my computer. Here's my installed software as a list from 〔Control Panel\Programs and Features〕. installed_programs_mswin_2011-04-19.txt

Here's software i'm deleting. When you download games, they often comes with a bunch of garbage.

I use CClean to generate the list. It is a great too. See: List of Great Windows Software and How to Disable Windows Startup Apps.

Twitter Hash and Unicode Symbols

Some Unicode symbol semantic thoughts.

There does not seem to be a good hash code for functional programing. If you search “#fp”, lots of tweet comes up but is not related to functional programing. If you use “#functionalprograming”, that's too long a word, takes 21 character out of tweet limit of 140, and rarely do people use that.

Twitter doesn't allow hash of Unicode symbols. For example, for functional programing, you might use , but twitter doesn't recognize any non-ASCII char as a hash tag. (seems only recognize hash of english letters) When you search for “#λ”, nothing shows up, even if you have tweeted it. However, if you just search for λ, it shows up, though, most of it is Japanese using that symbol as part of emoticon.

Anyhow, it might be nice to establish a convention among functional programing communities to use λ for any tweet related to functional programing but is not specific about a language, for example: erlang, ocaml, haskell, clojure, scala, lisp, fsharp, Mathematica, etc.

Also, for my own writings on my site, the topics are usually programing, math, visual arts, literature (letters), sex, others. I thought a bit about using a Unicode symbol to represent each. Here's what i come up with:

#twitter #hashs:

There are several ways to input Unicode symbols on Mac and Windows. For example, on the Mac you can use Mac Keyboard Viewer and Unicode, character palette. On Windows you can use Alt code or Character Map, but they are inconvenient.

If you use emacs, buy my Emacs: xah-math-input.el to input these. See also: How to Create a APL or Math Symbols Keyboard Layout.

Discovered that there's a forum for Paul Graham's language Arc Lisp, at arclanguage.org, and there's a thread discussing my criticism of lisp, at: Source arclanguage.org.

A new version of Unicode font DejaVu (v2.33) is out. See: Best Unicode Fonts for Programer.

Discovered that there's actually a keyboard shortcut for copy and paste in Windows Console. See: Windows Console Key Shortcuts.

How Does a Unicode Character Get Mapped to a Glyph in a Font?

Just created this list: HTML XML Entities.

Am surprised to learn that Stack Overflow is based on Microsoft technologies.

See: Source blog.stackoverflow.com.

Great going Microsoft!

Firefox 4 and AutoHotkey: MozillaWindowClass.

Google Earth Mouse Navigation and Keys.

Idiotic Adobe Reader (aka Adobe Acrobat).

When in Google Chrome browsing a pdf file, Chrome tells me: “Parts of this PDF document could not be displayed. Open in Adobe Reader?”. So i clicked Yes. Then, Chrome tells me: “Adobe Reader is out of date and may be insecure”, with a option to update. That's a bit strange, because i thought i have it up-to-date. So, i manually opened Adobe Reader, then clicked on the “Check for Update…” under the Help menu. It says: “No updates available”. I then checked version, it's “9.4.2”. Then i went back to Chrome and get the update, the download is “Adobe Reader X (10.0.1)”. F���ing idiotic Adobe Reader.

See also: Complexity and Tedium of Software Engineering.

and Google Chrome is really fantastic. See: Google Chrome, SPDY Protocol, Browser War II.

What's the Max Number of Directories a Directory Can Have?.

UNIX Tar Problem: File Length Truncation, Unicode Name Support.

Programing Style: Variable Naming: English Words Considered Harmful.

How I lost my faith [in lisp], Ron Garret

A old comp.lang.lisp newsgroup post has been dug up by Hacker News. The post is: How I lost my faith By Erann Gat. At http://groups.google.com/group/comp.lang.lisp/msg/6f75cfb5a289d3f6.

i read it at the time it was posted, and just read it again. Note that its author, Erann Gat (aka Ron Garret), is somewhat a controversial figure in comp.lang.lisp. I think primarily having to do with the nasty fight between him and Erik Naggum. Also, i don't know the details, but he also doesn't get alone with another lisp regular Kenny Tilton.

Over all, i'll say i agree with his post there, that lisp isn't that great a language today, as i've expressed many times in the past years. My path to lisp is similar. For me, lisp started in 1998. First, there's awful amount of admiration and respect from me, even just for the association with the phrase “artificial intelligence”. Though, i never really got to the lisp-loving stage. I find problems with the lisp's list and cons in the very beginning, due to my experience with Mathematica. (a question about cons was my first post to comp.lang.scheme and flamed by one Naggum, in 1998. See: Death of a Troll — My Memory of Erik Naggum (1965 – 2009).) For real life reasons, i never actually got to code lisp. Only untill around 2006, i started to dig seriously into emacs lisp.

For all my love of elisp, it is primarily due to it being a functional language, and the emacs environment system. I can't say the love came from the lang being lispy. Ι HATE the cons, i HATE the parens (actually i LOVE the regular nested syntax (as in Mathematica), but lisp screwed it so bad). [see Fundamental Problems of Lisp] And other identy of lisp that lispers perennially get excited about — the macros — i find abominable and useless. (and Schemer's call-cc, i find to be a lang design feature that i have no interest)

(everytime you use a vector instead of list/cons, the lisp fanatics stare at you like crazy. Everytime you didn't tuck-in the closing parens at end, they think you are a newb. For all the AI automation lisp is renowned for, the lispers at comp.lang.lisp still don't get the concept of automated code formatting. They diddle with code formatting just like every stupid imperative lang. This is particularly disgraceful because lisp's got such a superior syntax at maintaining structural info, which IS the main advantage of purely nested syntax. (See: A Simple Lisp Code FormatterA Text Editor Feature: Extend Selection by Semantic Unit.))

Update: Unicode Support in File Names: Windows, Mac, Emacs, Unison, Rsync, USB, Zip.

Discovered Google computer programing style guide. It has style guide for lang including: C++, JavaScript, Objective-C, Python, XML. At http://code.google.com/p/google-styleguide/

The ones am interested are:

I spent 30 min to read the js one. Haven't finished yet. Very good reading. If you are not a expert of the lang, you learn something about the lang too.

I'll be reading them all.

How to Create a APL or Math Symbols Keyboard Layout.

FSF made a declaration on Facebook. See: Mark Zuckerberg is TIME Magazine's Person of the Year? Where's the “dislike” button? by Matt Lee et al. @ fsf.org.

FSF say no to facebook Zuckerberg

See also: Facebook's Ethics.

Discovered a new ergonomic layout, for French, called bvofrak. See: Alternative Keyboard Layouts. (thanks to Hugues Dumez.)

It's interesting that on their site bvofrak.blogspot.com they mentioned this (translated by Google):

Computer Language Design: String Syntax (essay)

Reminder. If you like this blog, you might also enjoy my other programer related blogs:

Usually i don't repeat a article in more than one place, even if it's related to both.

Programer Keyboarding Advices (Typing, Ergonomics, RSI).

Computer Languages, ASCII Jam, Fortress, Unicode.

How to Make Youtube Play a Video Repeatedly.

One Language to Rule Them All? (commentary)

Unicode Support in Ruby, Perl, Python, JavaScript, Java, Emacs Lisp, Mathematica.

Guy Steele on Parallel Programing (video; commentary; functional programing)

Discovered that the entire Perl Cookbook is now available online. Originally i thought it's official from O'Reilly, but until trying to announce the URL, i realized it's pirated. The site actually contains ~100 O'Reilly books. The URL is 〔http://docstore.mik.ua/orelly/〕. Screenshot: . The site is Google ranked at 5. (i discovered it while Google search Perl modules.) I guess the site is making money by the ads.

Ι wonder if O'Reilly knew. Ι hope they can take action, but i guess it's fruitless. Am also guessing that there are probably tens or hundreds of such sites. (they are all over bittorrent anyway.)

See also: Software Freedom is Free Speech or Free Beer?Perl Books Survey 2002.

Internet History, Netscape, Dot Com, Code Rush 📺

Unicode 6 Emoticons.

Mouse Wheel: Smooth Scroll vs Notched Scroll (review; commentary)

Anyone who teaches “syntax is not important; semantic is”, should be immediately kicked in the ass.

How to Delete Flash Cookies.

productivity tip: Windows: How to swap Mouse Buttons: Right-Click, Middle-Click.

Remove Windows Media Player Context Menu (tips)

3D Visualization Design (commentary; tips)

Worked with Mathematica for 5 hours yesterday. Fantastic! This old hand can still do something! lol. My plane curve packages soon to be out n am gonna be rich.

…gosh what godly hours i've spend on Mathematica in 1990s. Surprised to find that i even Unproctected builtin symbols to fix things. (get rid of asymptotes in ParametricPlot) (Draft notes as i go: Mathematica Version 3 to Version 7 Conversion Notes)

… i recall, i stopped doing Mathematica in 1998 because it's a career dead-end as a programing lang, and dived into the utterly idiotic Perl and unix and mysql world. (See: The Unix PestilenceXah Lee's Computing Experience (Impression Of Lisp from Mathematica)The Condition of Industrial Programers)

Well, dead-end just as Emacs Lisp i'm spending my nights with in the past 4 years. LOL. And on that note, same thing can be said with haskell, OCaml.

Though, fringe langs are picking up these days. Remember Python, ruby, in year 2000? Who'd imagined they'd become mainstream. But it took 10+ years. [see Language, Purity, Cult, and Deception]

Also got reminded my age recently. Someone on stackoverflow is asking about what are those “A:” and “B:” drives on Windows. (anyone heard of floppy drives?) In another incident, i was chatting to a friend, and the topic went to internet tech in 1990s, and i was telling him about how PHP (aka Pretty Home Page) came about, then naturally i discussed CGI. After a while, i realized, those who are around 20 years old today were under 10 in the 1990s. They wouldn't know what was CGI, and no amount of explanation can tell them exactly it was like, because it has become HISTORY — if you didn't live it, you can't feel it.

Nice typing race site. http://play.typeracer.com/. You can have a friend go to the site and compete typing speed with you.

What's the Most Readable Computer Language Syntax?.

Ultimate Xah Keyboard Layout (keyboard design)

Idiocy of Computer Language Docs: Unix, Python, Perl, Haskell.

On Windows, what's the difference between AppData/Roaming/ and AppData/Local/?

Basically, the “Roaming” dir is for useful user data, and the “Local” one is for data like cache. Things in Roaming dir might be synced with a server so the data is available to user on different machines.

The “AppData” dir is introduced with Windows Vista, and used in Windows 7 too. In XP, it just have “Application Data” dir. On Vista and later, any write to “Application Data” automatically goes to “AppData/Roaming/”.

Managing Roaming User Data Deployment Guide Source technet.microsoft.com

Patreon me $5. Ask me question on patreon