MathCurvesSurfacesWallpaper GroupsGallerySoftwarePOV-Ray
ProgramingLinuxPerl PythonHTMLCSSJavaScriptPHPJavaEmacsUnicode ♥
Web Hosting by 1&1

Xah's Programing Blog

On coding, programing languages, functional programing, Unicode, keyboard, unix, hacker culture, ….

Linux: Annoying Postfix Install Popup

Linux: View Directory as Tree

Computer Language Character Distribution

new. Computer Mouse, Trackball, Input Devices

keyboard design. updated. ErgoEmacs Keyboard

for keyboard freaks. updated. Exotic Ergonomic Keyboards

some intermediate git tips, on its own page: git Frequently Asked Questions

How to set git output non-interactive?

there's no way. Just send it to a file then view that file.

git log > 88888

If you are using emacs, you can place cursor on the file path then call ffap (see: Emacs: Open File Path Under Cursor Fast and Emacs: delete-current-file). Or install “magit” package for git. It's in MELPA repository. See A Guide on Emacs 24 Package System.

How to make git display date in ISO format?

Use --date=iso.

git log --date=iso

See also: git Tutorial

video review of the Truly Ergonomic keyboard. More info at Truly Ergonomic Computer Keyboard Review

Note: for those of you who know me, i got the keyboards free, but my opinion isn't bought, judge for yourself.

video. how i write blogs in emacs

Programing Craft: Intention vs Coolness

lots pictures now. Computer Keyboards, Layouts, Hotkeys, Macros, RSI ⌨

Been using the Truly Ergonomic keyboard for 5 months now. Added my experience here at bottom: Truly Ergonomic Computer Keyboard Review.

updated. Linux: Set Bash Shell Prompt to Color

updated. Python & Perl: Traverse Directory

uploaded several of my file utils in perl to github. https://github.com/xahlee/xahscripts/tree/master/file_util

Perl: General Function for Sorting Matrix

wrote that in 1999, and used it in production back then. In 2006, i wrote a Python version but was incorrect. Going to write a Python version again.

Ruby, JavaScript, versions welcome.

there's a fantastic heart-shaped keyboard. If you haven't seen it already, see at Keyboard Porn to Infinity ⌨ ∞. The guy plans to manufacture it. To keep updated for news, watch his website at http://launch.keyboard.io/

Perl: Sort List, Matrix, Object

Syntax = Most Important Aspect of a Programing Language

the quality of a programing language, can be judged by how much of it can be explained by its syntax alone.

with this criterion, the order are roughly: Mathematica ≻ PHP ≻ Lisp ≻ JavaScript ≻ Ruby? ≻ Perl ≻ Python ≻ Java.

this is also the most important criterion in judging a language.

If you have coded one of {Haskell, ML/OCaml/F#, erlang, Scala, Pascal/Ada, Lua, tcl, APL, SmallTalk, PostScript}, i'd be interested in your opinion on their placement in the above. (you should have coded in the lang for a few years)

new. Python 3: Sort List, Matrix, Object

Programing Language Design: Syntax Sugar Problem: Irregularity vs Convenience

One Thousand Function Keys, Redux

A new function keys keyboard manufacture. See: http://www.access-is.com/custom_keyboards.php

that's nice if you are the master of function keys. See also:

thx to David Rogoff

inspired from emacs lisp doc. Logic Writing Style: the Incongruousness of the Word “Actually”

Linux: Convert HTML to PDF

to convert HTML to PDF on Linux, you can use wkhtmltopdf. It's based on webkit, the web browser engine used by Safari an Google Chrome.

# install
sudo apt-get install wkhtmltopdf
wkhtmltopdf my_resume.html my_resume.pdf

if you just have one single file, you can also use libreoffice.

# install libreoffice
sudo apt-get install libreoffice

Type libreoffice to start it, then, open the HTML file, then use menu 〖File ▸ Export…〗.

updated. Perl & Python: Regex Example

on its own page. Tech Writing and Unix Humor

the Happy Hacking Keyboard, model “professional 2”, don't even have arrow keys. The Idiocy of Happy Hacking Keyboard

found a Chinese site with tons of photos on KBC Poker keyboard. See links at: KBC Poker Keyboard, Ducky Keyboard (thx to cloudsben)

swapping keys.

Unix Shell Util uniq Unicode Bug

updated. Unicode Full-Width Characters

updated. Unicode: Drawing Lines, Boxes, Shapes ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼

Functional Programing Meta Language (ML) in Emacs Lisp!

Writing grep/sed in Python, Perl, Emacs Lisp

also updated. Python: Find/Replace by Regex Text Pattern

for a Perl version: Perl: Find/Replace on Multiple Files

emacs lisp version: How to Write grep in Emacs Lisp

want color diff?

sudo apt-get install colordiff

updated. Python: Find/Replace Strings on Multiple Files

updated. Emacs Lisp Mode Syntax Coloring Problem

updated. discovered big chunck of code in emacs lisp using math symbols as function/variable names. Programing Style: Variable Naming: English Words Considered Harmful

Why you need to swap middle/right mouse buttons, and how. Swap Mouse Buttons: Right-Click & Middle-Click

Emacs: new major modes for HTML, CSS, PHP, ELISP, and Lean Emacs LISP Manual

Emacs: project proposal.

Vote which one you want me to work on. Tell your friends please. http://pledgie.com/campaigns/19973

updated. Probably final form for a while. Linux Firewall Tutorial: iptables & netfilter

more update. Some important problems of XML syntax. Refresh page. Nested Syntax Design: XML vs LISP

every now and then, people will ask what's the best keyboard for emacs. I thought i'll start a article dedicated to that. Best Keyboard for Emacs

keyboard station one thousand function keys 2012-08-10
master station: one thousand function keys

detail: Keyboard Master: One Thousand Function Keys

XML Nested Syntax vs Lisp Nested Syntax

updated. New photo. Kinesis Contoured Keyboard Review and RSI

excursion. 2 hands pen-spinning, by yours truely.

2 hands pen spinning.
mark5 heart keyboard jesse 2013-04-19
mark5 heart keyboard jesse . img source ©cc

more fancy keyboards

JavaScript in 3 hours. More massive update. Array manipulation, and others. JavaScript Basics by Example

discovered a keyboard tool, KeyTweak. See: Microsoft Windows: Keyboard Layout and Key Macro Tools

JavaScript Function Constructor

JavaScript Variable Scope: Function Level vs Block Level

JavaScript: How to Create Tooltip/Balloon

spent the whole day improving this JavaScript app for Unicode. Unicode: Arrow Symbols ← → ↑ ↓.

facelift. Netiquette Anthropology: a Story of Tech Geekers

Hacker News hit. https://news.ycombinator.com/item?id=5536134Apache Rewrites History: Why is it Named “Apache”?

article hit Hacker News. https://news.ycombinator.com/item?id=5184907Why Python's Lambda is Broken and Can't be Fixed

updated. Keyboard Hardware Design Flaws

one of my article hit Hacker News. https://news.ycombinator.com/item?id=5517593

What Does it Means When a Programing Language Claims “Whitespace is Insignificant”?

updated. Computer Keyboard: Increase Productivity Using Function Keys

updated. Unicode ASCII Art Collection

for Unicode freaks. Allograph

updated. Keyboard Shortcut Design: Repeatable vs Non-Repeatable Commands and Keys

Banish Key Chords

updated. Unicode ASCII Art: Font Emulation

FSF Spread FUD on Microsoft

On the Terminology of Key Chord vs Key Combo

I have always wondered about this. You know that retrieving a indexed item of array takes O(1) time. Why is that? You have n things, and you want the kth item. It should be O(k) for kth item. It is impossible to get it with O(1).

The answer can't explained in software or algorithm. It really have to do with how the hardware is implemented. This article explains: 〔Why is Indexing Faster Than Binary Search By Yin Wang. @ yinwang0.wordpress.com…

Richard Stallman Lost It 📺

updated, on its own page. Linux: Job Control Tutorial

cum, money.
19dfoa3Q7oehm9MwCULQzBG8vqfCaeMazH
cum all you want on me.
i swallow.

#bitcoin

“when a man swallows, his destitution can be seen.” —Xah Lee

major revamp. Xah's CSS Tutorial

updated. Punctuation & Printer's Symbols in Unicode

on its own page. The classic mechanical keyboard. IBM Model M keyboard, Unicomp

TRON Operating System & Encoding

Past Articles by Date

2013-032013-022013-012012-122012-112012-102012-092012-082012-072012-052012-042012-032012-012011-122011-112011-092011-072011-062011-042011-012010-112010-092010-052010-01