# Xah's Programing Blog Archive 2012-04

ok, here's explanation.

here's the coordinate for San Francisco:

```   latitude         longitude
37°46′45.48″N     122°25′9.12″W```

here's the decimal notation: 37.7793 -122.4192

lattitude is like y axis, going from -90° (south pole) to 90° (north pole). 0° is the equator.

In minute second notation, it usually uses “S” (South) for negative, and “N” (North) for positive, instead of positive/negative sign.

longitude, is like x-axis, but going from -180° to +180°. Negative is West (W), positive is East (E). 0° is artificially fixed at Greenwich, England. This line is called prime meridian. (Greenwich is in London) So, basically, any place east of london is positive, west of london is negative.

by convention, the order is latitude, longitude (contrary to math convention, where x is first, y second)

discovered more Unicode:

• WAVE DASH
• WAVY DASH
• WAVY LINE

learned a few Unicode symbols related to functional programing.

• SOFTWARE-FUNCTION SYMBOL
• FUNCTION APPLICATION

thanks to François-René Rideau

functional programing in perl is like using chopsticks at McDonalds: Best done at home.

if you wrote a book on programing in the 1980s, you are a god.

if you wrote a book on programing in the 1990s, you are respectable.

if you wrote a book on programing in the 2000s, you might be that idiotic jock next door.

random linux notes 2012-04-28

John Carmack Glorifying Functional Programing in 3k Words

John Carmack glorifying functional programing in 3k words

where was he ten years ago?

updated AutoHotkey Example Scripts

In Firefox, you can goto `about:config` and tweak your mouse configs.

In Google Chrome, there's something similar. Goto `chrome://flags/`. However, it doesn't provide any mouse configs.

Firefox AutoScroll on Linux

To turn on autoscroll feature on Linux, paste `about:config` in the URL field, then set `general.autoScroll` to `true`.

Recently i upgrade all packages in Cygwin. When i did a commit, i got:

`svn: E155019: Can't upgrade '/cygdrive/c/Users/h3/ErgoEmacs_Source/ergoemacs/ergoemacs' as it is not a pre-1.7 working copy root, the root is '/cygdrive/c/Users/h3/ErgoEmacs_Source/ergoemacs'`

Oh no! Error! My mind is psychologically conditioned to think i'll need to spend a hour or more to fix whatever problem is this. Apparently, svn 1.7 changed its repository metadata format. Luckily, the solution is simple:

• cd to the root of your project's svn repository.
• do `svn upgrade`
• Repeat for other project's svn root.

Why Tiling Window Manager Sucks

created a new index, of articles on unix command line tutorial/essays. At Xah unix/linux tutorial.

random linux notes 2012-04-18

Linux: How to Install New Window Manager

Set Bash Shell Prompt to Color

Xah's Job Interview Questions for Young Linux Sys Admins

random linux notes 2012-04

Why I Love PHP

i'll be going against the tide here. True, PHP is quite ugly, way inconsistent, and not as powerful.

But i'll have to say one thing. PHP is, in my opinion, the most useful, the most easy, the most comfortable and pleasurable language i've ever used. (in comparison to Perl, Python, Java, JavaScript DOM scripting.)

Also, i'd say PHP is the language that had the most impact on educating the masses about functional programing. Because, in PHP, everything is a function. Input, Output, that's it. No OOP shit. No currying, lambda jargon, tail recursion, complex mumbo jumbo. Exceedingly simple.

Also, PHP community is the one that lacks fanatics. ⁖ in Haskell, Scheme, when you ask a question, you get a bunch of garbage about monad, currying, combinator, call-with-continuation, tail recursion, “you doing it wrong!”, “why you want to do that?”, full proselytizations and often wrong info too. Same in Perl, Python. In PHP community, you never get that. Just straight answer.

Also, PHP doc is the best there is. No mumbo-jumbo jargons and shit that wants to make you believe.

Examples of Quality Documentation in Computing Industry

Keyboard Geeking: Backspace or Not Backspace? (Keys for Goto Previous Page in Windows and Linux)

in linux, the Backspace key is not used for goto previous page. ⁖ in Google Chrome or Firefox. The keys are 【Alt+】 and 【Ctrl+[】.

On Windows, you can use ⌫ Backspace. And 【⇧ Shift+⌫ Backspace】 for forward.

Xah Analysis: the Windows key is superior. (Sorry tech geekers of the unix faction.)

Reason:

The Backspace is not as logical. It's like, WTF? Backspace is for deleting backward. Especially so when you are posting a comment. The { 【Alt+】, 【Alt+】 } or { 【Ctrl+[】, 【Ctrl+]】 } are more logical.

But the Backspace is more convenient, ergonomic, because it is a single key, and a big key.

The operation for “goto previous page” is one of the most needed key. Perhaps in top 5. (among {page up/down, goto file top/bottom, prev/next tab, close tab})

For such frequently needed key, convenient/ergonomic has far more priority than logicality.

more Xah Shit at Computer Keyboards, Layouts, Hotkeys, Macros, RSI ⌨.

aspell's Dismal Vocabulary Size

Array Programing Language: APL, Mathematica

APL and Mathematica can both be categorized into a so-called Array programming language. It basically means, when a operand is a array/list, the operation is automatically mapped into the list. (as opposed to using a explicit “map” in lisp, perl, python.).

Here's APL implementation of normalizing a n-dimentional math vector.

`normalize←{⍵÷((+/⍵⋆2)⋆0.5)}        `

Code by Tom Novelli. APL code can be run here: Source ngn.github.com.

Here's Mathematica:

`normalize = Function[#/Sqrt@(Plus@@(#^2))]`

Emacs Lisp vs Perl: Validate Local File Links

updated The Bug-Reporting Attitude

Microsoft XP Bug Report Panels

Bjoern Paschen wrote a improved, idiomatic, version of python multi find/replace code we did before. See: F��� Python: String Methods, Functions, Slashes and Backslashes.

Math Font, Unicode, Gothic Letters, Double Struck, 𝔄 𝔅 ℭ

F��� Python: String Methods, Functions, Slashes and Backslashes

Ryan Dahl, on History of Node.js 📺

User Interface Design: Peepshow Windows

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 lisperati.com (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 f���ed 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 📺

Emacs Lisp: read-from-minibuffer Propels Deep Questions

Intro to Mathematica Pattern Matching for Lisp Programers