Xah's Programing Blog

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

Want to master JavaScript in a week? Buy Xah JavaScript Tutorial.

2 haskell tutorials, sans the cartoon and love stories shit.

Unicode 7 New Chars

Wolfram Language Slow?

On Constructed Languages, Computer Languages, and Their Grammar Complexity

Why Does Struct Datatype Encroach Namespace?

Download Free Unicode Fonts

The Jargon Automata in Deterministic Finite State Automata

Python Tutorial now has navigation panel on the side.

Unicode Search ☯ ☭ ⚡ → ∑ ♀ ♂ ♥ 😄. now there's nav panel on the left side for each page.

Unicode Character in Variable/Function Names

minor update.

Lisp notation isn't “prefix”

math notation prefix infix postfix matchfix
math notation: prefix infix postfix matchfix

Concepts & Confusions of {Prefix, Infix, Postfix, Fully Nested} Notations

naming, terminalogy, are critical, because misnomer creates perpetual misunderstanding. Jargons of Software Industry

Formal logic's Chinese roots. Chinese, The Logicians or School of Names (名家)

Linux: LXDE/OpenBox, Disable Mouse Scroll Wheel Shade Window

City Hunter keyboard

a very strange keyboard, but seems real.

City Hunter keyboard 00008
keyboard from 〈City Hunter 3〉 episode 9.

more screenshots, see City Hunter Keyboard

the term “ambiguous grammar” is a misnomer. Grammar of comp lang are never ambiguous. It should be called multi-parse-tree grammar

Linux: Disable Ubuntu New/Overlay Scrollbar

Regular Grammar, Lexical Grammar, Systematic Syntax, Uniform Syntax

for a decade, i wanted a term to describe certain syntax that's regular, such as a idealized lisp, XML, or Wolfram Language syntax.

I've used “regular grammar” & “lexical grammar”, but that's wrong. Perhaps systematic syntax or uniform syntax.

the Common Lispers, at times claim lisp syntax is simple by the idiotic phrase “no syntax”, at other times says lisp syntax can't described by grammar because of lisp reader. LOL

Jargons of Software Industry (updated.)

What is Closure in a Programing Language? (updated)

Python Doc Links All Dead

unix “grep” name, came from qed/ed editor command g/re/p meaning “Global search for Regular Expression and Print matching lines”

Linux: How to Set Mouse Speed

Linux: How to Swap Mouse Buttons (updated)

W3C and WHATWG Dead URL

Steam controller gamepad angled view
Steam Controller. amazon

Valve Steam Controller. New device, novel design.

Why is Array Access Constant Time

The Ontology of Programing Language's Expression, Statements

CM Storm QuickFire Rapid-i keyboard. New from Cooler Master. Features a lighting effect with 32-bit ARM processor for effects

Linux: How to Find X11 Keycode/Keysym ⌨ (updated)

Debian Linux Founder, Ian Murdock Killed Himself

Linux: Monitor Processes, “htop” Tutorial (updated)

Trackball vs Mouse, and How to Choose a Trackball?

The Hacker Cult, Episode Christmas

Python: Get Number of Arguments of Function

The little match girl lights match to see grandma. I light up fighting “hackers” cult. F��� Python: String Methods, Functions, Slashes and Backslashes#comment-2366962676

there's always a answer in every language to counter badly designed part.

the point of this article, is not “Dear pythonic hackers, can you help me to solve problem X in PYTHONIC way?”

this article, is a record of frustration with python, that probably indicates a badly designed aspect of the language.

the whole hacker cult, with lang war drivel, is generation after generation. The participants, are often ignorant. They move with waves.

the fuel of the hacker cult superstition, is those pythonic, perl monger, unix philosophy, and “idioms” fucks.

hacker cult's beliefs, today it's X, tomorrow it's Y by new generation. Usually unaware & ignore the previous generation's fandom.

hacker cult's phenomenon, behavior, are actually the same as politics & religion of human animals. It's a mix of belief and power struggle, and trend by fashion.

as communication tech (internet/phone) progress, hacker cult superstition problem decrease, but VERY slowly.

Farewell R.I.P. Firewire, Hello USB!

Farewell R.I.P. Firewire, Hello USB!

good old memories

Mac OS X: How to Create Keyboard Layout and Keybinding ⌨ (updated)

Corsair Keyboards Review

Corsair updated their keyboard line. The new thing is the RGB keyboard.

Why PDF Sucks

Chomsky's articles. Wealth of info. http://chomsky.info/articles/

keyboard key switch: is clicky better than smooth?

after learning about the Stenotype Machine, now am convinced that Cherry MX Red (no click, smooth action) is better than the clicky/tactile ones brown/blue.

This is by first principle. You see, human thinking, are much conditioned by awareness. You may have tried both smooth and clicky ones, and absolutely find that clicky is better. But, my point here is, your judgement, may be clouded, in a deep subconscious part, by what you already know of the world.

sometimes, it's just a click of the mind.

So, now, to me, my point here is, next time i try a Cherry MX Red, now i have the awareness of that it might be better in principle, it might change my mind. (replace the “I/my” by “you/your”) (I myself haven't had conclusion that clicky is better than none-clicky. I only knew that none-clicky often preferred by gamers, because it allows easy repetition (as in pressing the fire button).)

The number one scumbag in computing is Martin Fowler. Other are: Larry Wall, Håkon Wium Lie, Michael Widenius, Bjarne Stroustrup, Eric S Raymond. Runner up idiots: Guido van Rossum, Rob Pike.

People you should follow: Stephen Wolfram, Guy Steele, Edsger W Dijkstra, Anders Hejlsberg, Olin Shivers, Erik Meijer, Bertrand Meyer, Rich Hickey.

when linux starts, at the end, it launches the graphics login screen. That program is called the Display Manager.

Therer are many Display Manegers in Linux.

Ubuntu uses LightDM

Simply edit /etc/xdg/lxsession/LXDE/desktop.conf with a text editor, and replace openbox with your favorite window manager. Note: In lxsession version is less than 0.4.0, you need to edit /etc/xdg/lxsession/LXDE/default instead. from http://wiki.lxde.org/en/LXDE:Questions#How_can_I_use_a_window_manager_other_than_Openbox_with_LXDE.3F

https://wiki.archlinux.org/index.php/Display_manager

https://wiki.ubuntu.com/LightDM

Linux: How to Switch to LXDE, Xfce

Stenotype Machine

Linux: Desktop GUI/Icon Locations

linux lxde: set default browser

if you are running lxde, you'll need to run update-alternatives to set a default browser. exo-preferred-applications itself does not work.

see updated Linux: Set Default App

Linux: Shell Commands for GUI Apps (updated)

verticle mouse update. Ergonomic / Vertical Mouse

Linux: How to Find System Info (minor update)

LXDE/Openbox, Create Keyboard Shortcuts ⌨ (updated)

Linux: Disable Ubuntu Crash Report

now the Logitech G710+ Mechanical Keyboard has a Cherry MX blue version. See: Logitech G710+ Mechanical Keyboard

xah keyboard buying guide ⌨

Linux: Shell Commands for GUI Apps (updated)

Mouse Hover to Auto-Raise Window (updated) This is the most useful of all mouse tricks.

Firefox: Set Mouse Autoscroll, Linux (on its own page)

Linux: Mouse Hover-Click

Unicode: Chess, Playing Cards, Dice, Domino, mahjong ♞ 🂱 ♣ ⚄ 🁶 🀄

Unicode: Car, Train, Plane, Boat 🚀 🚁 ⛵ 🚄 🚂 🚚 🚌 🚓 🚘

Unicode: Road Signs, Map Symbols ♿ ⚠ ⛔ ⛽ ⛾ 🚭

Programing: 「or」 Considered Harmful

Linux: Set Default App (major update)

Linux: Bash Prompt, Add Color, DateTime (updated)

linux lxde is now my Window Manager. Much more efficient than xfce.

Linux: How to Switch to LXDE, Xfce (updated)

Unicode: Keyboard Symbols ⌘ ↵ ⇥ ⌫ ↓ ☾ ⎋ (major rewrite)

{python, perl, ruby} tutorial is now separated into individual projects.

here's python. Python Tutorial

the perl and ruby are less mature, but good for beginner.

These tutorials are concrete in style, and example based.

3D Graphics with Clojure: OpenSCAD

3D Printing With Clojure By @Adereth. @ http://adereth.github.io/blog/2014/04/09/3d-printing-with-clojure/

Python: Unicode Tutorial 🐍 (major update)

Linux X11 Mouse Button Numbering

Linux: How to Swap Mouse Buttons updated.

new Unicode emoticon font, Google Noto. see Download Free Unicode Fonts

Keyboard Monster

Maltron mix mash keypad  David Cole 2015-11-07

Keyboard Monster

Unicode: Things Emoticons 💄 💎 🔪 💉 👙 👠 (new)

L-Trac Glow Backlit Trackball

CST25455W glow trackball
L-Trac Glow Backlit Trackball. amazon

there's a new version of the L-trac trackball, now with a glowing glob. See: L-Trac Trackball Review

Unicode: Hotel, Factory, Bank 🏩 🏥 🏦 🏧 🏪 🎡 🗽 (new).

Emoji Keyboard

learned a new thing today.

“a thunk is a subroutine that is created, often automatically, to assist a call to another subroutine.”

from Wikipedia Thunk

Logitech G600 Gaming Mouse Review

Logitech G600 mouse 20151101 183141
Logitech G600 mouse. amazon

After eyeing this mouse for 6 years, now i have it.

Full review at Logitech G600 Gaming Mouse Review

Logitech Trackman Marble Mouse review

Logitech Trackman Marble 20151101 181714
“Logitech Trackman Marble Mouse” amazon

after eyeing trackball for 2 decades, now i have it. Full review: Logitech Trackman Marble Mouse Review

currently reading 〔Creating Languages in Racket By Matthew Flatt. @ http://queue.acm.org/detail.cfm?id=2068896〕 rather idiotic.

some people like to teach a lang thru coding game. idiotic. teach one thing at a time!!!

apparently, some school are using that article to teach programing. student ends up learning nothing.

this is how we get: “at school we had lisp course, but i have no idea what's going on.”.

an article trying to teach racket lisp's create lang features by a game. Meanwhile, trying to explain what symbol is, and what cons is? LOL

imagine, how possibly the student or generic reader can learn?

How to Create a APL or Math Symbols Keyboard Layout ⌨ (updated)

Past Articles by Date

2015-102015-092015-082015-072015-062015-052015-042015-032015-022015-012014-122014-112014-102014-092014-082014-072014-062014-052014-042014-032014-022014-012013-122013-112013-102013-092013-082013-072013-062013-052013-042013-032013-022013-012012-122012-112012-102012-092012-082012-072012-052012-042012-032012-012011-122011-112011-092011-072011-062011-042011-012010-122010-112010-092010-052010-01