Xah Programing Blog Archive 2014-02

Japan M-Type keyboard, TRON keyboard

NEC keyboard pk-kb015 2
Japan M-Type keyboard

TRON keyboards

QWER mechnical key switch testing kit
Key switch testing kit from http://www.qwerkeys.co.uk. (photo by Moritz Ulrich)

updated at Does Mechanical Keyboard Reduce Risk of Repetitive Strain Injury?

Esrille New Keyboard 2014

One cannot cease be amazed by the number of new keyboard coming out since 2010.

Esrille New Keyboard 2014-03-19 25021
Esrille New Keyboard, from http://www.esrille.com/keyboard/

updated at 😸 Catboard, ♥ Heart Keyboard, Butterfly Keyboard

Python: Closure in Python 2 (updated)

Cat Keyboard

so many keyboard innovation in recent years.

there's Truly Ergonomic, then there's Ergodox, then Jesse Vincent's Heart ♥ Keyboard, Butterfly Keyboard and Phil's Atreus, but there's also a Russian guy who created “catboard”.

catboard keyboard 15278

update at Heart ♥ Keyboard, Butterfly Keyboard, Cat Keyboard, Star Trek Keyboard ⌨

Python Indentation Syntax Terminology: “Off-Side Rule” (minor update)

discovered today that the keyboard designer Jesse Vincent is a well-known perl programer. See updated: Keyboard Love ∞: Jesse Vincent's Keyboard Design Evolution ⌨

GPG Tutorial

How to combine 2 images using ImageMagick?

montage -mode concatenate -tile 1x cat1.jpg cat2.jpg out.jpg

ImageMagick Tutorial (updated)

Jesse Vincent's latest version, the butterfly keyboard.

Jesse Vincent butterfly keyboard 2014
Butterfly keyboard by Jesse Vincent (image source © by-nc-sa)

see also 😸 Catboard, ♥ Heart Keyboard, Butterfly Keyboard

Useful AutoHotkey Scripts (old goodie. repost.)

A very practical tip. I get asked often. how to set F8 to Switch to {Firefox, Emacs, Terminal}

John Cook, the mathematician and programer, has a new blog about symbols. See: http://www.johndcook.com/symbols/

btw, he's also got daily tweet service for many math topics. See: http://www.johndcook.com/twitter/index.html

i share much of his interests.

see also: Unicode Characters ☯ ⚡ ∑ ♥ 😄

my obsession with keyboard and mouse is making me slowly analyzing all input devices out there. For today's fruit, see: Razer Ouroboros Wireless Gaming Mouse

Microsoft Keyboard Menu Key

2-Piece Split Keyboards (minor update)

Git Branching Tutorial. Easy and practical. Hardcore command line. No directed-graph garbage talk.

Wireless Router Tip: Do Broadcast SSID, Turn off WPS

Should you broadcast SSID?

It has absolutely 0 effect on security.

should you turn off WPS?

yes, you should turn off WPS. Because, it has security flaw. Some router has “fixed” it by adding a lock-down period to mitigate this security flaw, but still.


comment at https://plus.google.com/+XahLee/posts/jVNcwznax5e

Microsoft's live.com Email Wiped My Emails

logged in to Microsoft's live.com email service today, only to find that all my email there are gone. Apparently, they did this in 2013-07 when merging with hotmail.

apparently, when they did the merge, they probably sent out a email warning in advance, but i haven't been using it so i didn't see it. And, after the merge, hotmail emails are intact, live.com emails are killed, because it's new, something like that.

it's hard to search for this, but i found a few forum messages about it. e.g.

i thought i was gonna give post 2010 Microsoft stuff a try. Never again.

comment at https://plus.google.com/+XahLee/posts/T9JkNNBZYqo

How to make bash not save duplicates in history?


Linux: Bash color Prompt

understand Python decorator in 6 lines

all hearts 🂱 🂲 🂳 🂴 🂵 🂶 🂷 🂸 🂹 🂺 🂻 🂼 🂽 🂾 💑 💓 💔 💕 💖 💗 💘 💙 💚 💛 💜 💝 💞 💟 😍 😻 🏩 💌 Unicode Search: Find Unicode Symbols

Unix X11 xmodmap Tutorial

Linux. my first use xmodmap is around 1996, when using unix/X11 (Solaris) for the first time, and i need dvorak layout.

back then, web do exists ❕❕❕

so i “googled” and found this MIT hacker setup dvorakKeymap.txt which i've used and works.

(google didn't exist, nor the concept of search engine. I probably found it from some FAQ, which is like today's Wikipedia)

but today, i finally actually read xmodmap man page in detail for the first time. Wow, that's nearly 2 decades. It's quite simple actually.

truly ergonomic keyboard 209 layout xah layout 44312 dvorak
Xah's Truly Ergonomic Keyboard Layouts

in the picture, you see my keyboard with F13 F14 etc keys. But on X11, the F keys after F12 has keysym of XF86Tools XF86Launch1 XF86Launch2 etc for some reason. F13 is XF86Tools.

One of them, the F13 XF86Tool, doesn't work. The key works in emacs, as well shows well in xev properly, but in (Ubuntu) xfce X11 window manager, if you set that key to something (such as max window), it has no effect, but using F14 or other works. Still no idea why.

using xmodmap, i was able to set XF86Tool to normal F13, then i can map F13 to commands i want. See: Linux: xmodmap Tutorial.

What Does Bagua, Taichi Mean? Bagua, the Trigrams, as Binary System

what does bagua, taichi mean? Bagua, the trigrams, as binary system

see bottom Art:〈The Grandmaster〉 The Opera Fight Scene; 一代宗師,八卦掌 📺

this is Chinese metaphysics.

exercise: look at South Korean flag. It has 4 of the 8 trigrams. Find a description of why those 4.

co-inventor of calculus, Gottfried Leibniz, also as the father of computer, said that “hexagrams a base for claiming the universality of the binary numeral system.”. Why?

Python: Make System Call (full rewrite)

Kilo vs Kibi, Mega vs Mibi (updated)

Linux: Show Directory Size: du (minor update)

Understanding Python's module, package, namespace (major update.)

Python: List Modules, Search Path, Loaded Modules (updated)

Ubuntu Linux Python pydoc coredump

in year of our load 2014, when in Ubuntu Linux, pydoc modules coredumps, and Ubuntu is busy making mobile and cloud.

(this is Ubuntu 12.04) This bug has been around for at least 6 months.

btw, it's dumped at /var/crash/

btw, pseudo-solution is sudo apt-get install python3, pydoc3 modules

the best Ergonomic Keyboards (minor update)

Python Poetry: the __main__ Stanza

Perl: How to Write a Module (much revised)

Does Increasing Mouse Polling Rate Matter? Added to How to Choose a Gaming Mouse?

Perl: Split Line by Regex

Python: Split Line by Regex (oldie. updated)

Python: Get Dir Path, Absolute Path, …

Logitech G700s Mouse Review (updated with my thumb buttons settings)

Node.js Documentation Problems (on its own page)

JavaScript Syntax Soup: 「p in o」 vs 「for (p in o) {…}」

Linux: Reset Terminal, Clear Screen History

Font Articles Index

Linux: How to Install Font

Object Oriented Programing: is Object Data or Namespace?

Xah Programing Blog Archive 2013-12

Unicode Keyboard Symbols ⌘ ⏎ ⌫ (updated)

The Evolution of Laptop Keyboards

Fonts for Unicode 6 Emoticons (updated)

Mac and Windows File Conversion (old essay)

keyboard for emacs fans. Shortcut-S, Photoshop Keyboard

Mouse vs Keyboard: Is Mouse Bad for Programer?

Lit Wakefield argued in the comment, saying that keyboard is more efficient. See his comment at bottom. He reasons, that “vimium”, “pentadactyl” (which are vi-like bindings), can be more efficient than mouse.

good exposition. But i think that's just false.

let's say, on a web page there are 10 links, scattered around. And, i need to click them, in specific order. Am sure mouse is faster than vimium.

Also, here comes the question of effort to learn and ease of using. It's often possible, to create a system, using a comparatively naturally less efficient input device, but the system is such a design it takes 1 year to learn/master, then after this 1 year training, he who uses this inferior input device will be more efficient in operation than someone using a mouse the first week. Then, do you still say that inferior device is more efficient? One analogous example of this is input system of Chinese. There are lots of them, and the ones requires a lot training are in general more efficient than the brainless phonetic system using english alphabets (pinyin). Similar can be said of stenographic system vs normal qwerty typing.

Grep Replacecements in Perl, Python, Ruby

why they exist? because the unix dot file fscking fsck fsckup.

MySQL Workbench. http://www.mysql.com/products/workbench/ (seems a great tool. I haven't tried yet. Am kinda a stickler to command line only, but am rather open to GUI's many advantages)

see also: Linux: MySQL Basics (incomplete)

Python: HTTP POST Using Library “requests”

Python: Reading and Parsing JSON

Python MySQL libs: MySQLdb and PyMySQL

Python has 2 interface lib for MySQL: MySQLdb and PyMySQL. (as far as i learned) The MySQLdb is the workhorse, involving C drivers. PyMySQL is pure python, with advantage of simpler installation and easy to integrate in any OS.

PyMySQL and MySQLdb provide the same functionality - they are both database connectors. The difference is in the implementation where MySQLdb is a C extension and PyMySQL is pure Python.

There are a few reasons to try PyMySQL:

  • it might be easier to get running on some systems
  • it works with PyPy
  • it can be “greened” and works with gevent
  • The proper way to use it with Django is to import it and tell it to impersonate MySQLdb in your top-level file, usually manage.py. Put the following code at the very top of your manage.py (or whatever file you call when starting your server):
    import pymysql
except ImportError:

MySQLdb, is a C extension module that has a reputation of being difficult to compile, especially if you're on a Mac. Additionally, end-users need to wait for new binaries to be compiled for each new release of Python, and MySQLdb will never run on Jython, IronPython, or PyPy (without something like cpyext or IronClad). We also maintain 100% compatibility between Python 2 and Python 3, so all advancements made on the 2.x trunk will be immediately available on Python 3.

from http://stackoverflow.com/questions/7224807/what-actually-is-pymysql-and-how-it-differs-from-mysqldb-and-how-can-it-affect

PyMySQL is a pure-Python MySQL client library. The goal of PyMySQL is to be a drop-in replacement for MySQLdb and work on CPython, PyPy, IronPython and Jython.

Python MySQLdb home page At http://mysql-python.sourceforge.net

Python: Get Environment Variable

Perl: Get Environment Variable (on its own page)

git: How to uncommit last commit?

updated git Frequently Asked Questions

Sinclair ZX81 Keyboard

Git: Setting Up git on bitbucket

Mac OS X Names: Jaguar, Tiger, Mavericks, Cheese Ball

Mac OS X still doesn't support windows auto-raise. Suck❕ Linux: Mouse Hover to Auto-Raise Window

Logitech G700/G700s Mouse (on its own page)

Regression Testing?

in software, there's this term “Regression Testing”, coming into being in past few years. Regression thy mom's �ss. Xah's edict: if ur software needs testing, u r a idiot.

what society overwhelmingly asks for is snake oil. Of course, the snake oil has the most impressive names — otherwise you would be selling nothing — like “Structured Analysis and Design”, “Software Engineering”, “Maturity Models”, “Management Information Systems”, “Integrated Project Support Environments” “Object Orientation” and “Business Process Re-engineering” (the latter three being known as IPSE, OO and BPR, respectively). — Edsger W Dijkstra (1930 – 2002), in EWD 1175: The strengths of the academic enterprise

my statement has sugar topping, but there are 2 levels.

① software need no testing, but provably correct. This is along the line of EWD's train of thought, which i subscribe to.

② in today's software, we are not there yet, or perhaps can never be, given industrial and social causes. However, today's software testing, in particular those Agile f��ks, are here, because 60% programers are idiots, don't know what they are doing. And, this is caused by social reasons.

discuss https://plus.google.com/+XahLee/posts/HGuwpG16NJW

think am going to get this one. Logitech G602 Wireless Gaming Mouse

XML is not S-Expressions (now properly formatted)

Ask me question on patreon