Xah Programing Blog Archive 2017-01

Understanding Public-Key Cryptography for Beginner (minor update)

ImageMagick Tutorial (updated. join images vertically or horizontally)

Is Clojure Easier or More Difficult Than Python Ruby Golang?

is clojure easier or more difficult than python ruby golang? Please go to reddit and let your opinion known.


Think Twice Before You Donate to Wikipedia (updated)

Astrology Symbols ☿ ♆ ♋ 🌛 (minor update)

Python: List Modules, Search Path, Loaded Modules (minor update)

Programing Language Popularity 2017

24hours Watch, 00 Start at Top or Bottom? (new page)

((in JavaScript, wrap (every (expression and statement)) with parenthesis), so ((it becomes #lisp), and affords (structured editing).))

there's a tug of war of algorithm efficiency vs recipe (representation) efficiency. The latter is subroutine and bulk of lang features.

when programing, these 2 issues are often confused together, muddied as “idioms”.

python science

Python: Find/Replace Strings on Multiple Files

Xah's Linux Setup (updated)

Unicode Flags 🏁

Linux: Make Scrollbar Always Visible (updated)

The linux folks are idiotic to the extreme. They created a new style of scrollbar that's extremely thin, and light colored, it's almost invisible. And when you try to drag it, you have to aim carefully, over clicking on the window behind it.

Further, they kept changing it over the years. Every year, your fix doesn't work anymore because they changed it.

Knuth's book, The Art of Computer Programming

Knuth's book.

The Art of Computer Programming, Vol. 1: Fundamental Algorithms Buy at amazon

this i read 1 chapter in 1991, didn't understand it. It's one of those widely quoted but rarely read book.

I never liked Knuth's writings.

Concrete Mathematics: A Foundation for Computer Science. Buy at amazon

“Concrete Mathematics”. this i read a few chapters ~1992. Didn't like the writing style.

Knuth's book, volume 4 combinatorial searching and graph+network algorithms, vol5 parsing… doubt will come to life. Even so, it's kinda irrelevant. Era has changed. (Knuth is 79.)

There's already a comprehensive parsing book. Parsing Techniques, Dick Grune, Table of Contents

today, programer moved to Artificial Intelligence stuff.

vast majority don't need to know algorithms, as there's already libraries or builtin in languages. Even for system programing.

sure, there's still a need, but then, it's case-by-case, and there's books on algorithms and Wikipedia and lots specialied papers online.

Knuth's book is still useful, of course, but not as it used to be. (before the internet)

How CPU Works

unicode characters heatmap 2017 03 05
Unicode characters heatmap. [• A Programmer's Introduction to Unicode By Nathan Reed. At http://reedbeta.com/blog/programmers-intro-to-unicode/ , Accessed on 2017-03-05 ]

Excellent article.

For a simpler introduction, see Unicode Basics: What's Character Set, Character Encoding, UTF-8?

For many articles on processing unicode for programers, see Unicode for Programers, Index

to mathematically understand “event” in programing is to model it sans concept of time. The answer is, loop. i.e. event loop

thinking how to model callback within event loop without concept of time. gonna sleep on it.

Etymology of Drum, Disk, Cylinder

consumer drones use 4 rotors design, but not real helicopters. why?

DJI Mavic Pro drone 2017 03 96890
DJI Mavic Pro drone

4-rotor copter is simpler and better stability. I suppose real helicopters don't because to save parking space??


when you swipe credit card, what exactly happens?

[• Deep Dive: Payments By Trisha Kotharifollow. At https://tech.affirm.com/deep-dive-payments-60f5d17f6c71 , Accessed on 2017-03-04 ]

I implemented a credit card processing in perl back in 2000.

Unicode 8 New Characters. released in 2015, but adding it now.

Unicode Clocks 🕑 🕒 🕔 (all unicode pages are updated for Unicode 9)

Unicode APL Symbols (new page, on its own)

Clothing Emoji 👔 👙 👠 (new, on its own page)

Unicode Circled Numbers ① ② ③ (updated for Unicode 9.)

new discovery.

Egyptian Hieroglyph 35048
Egyptian Hieroglyph 𓂀

Food Emoji 🍕 🍒 🍺 updated for Unicode 9.

Unicode Hand Gestures 👍 👌 ✋ updated for Unicode 9.

unicode 9 emoji

Unicode 9 New Characters

it's amazing to discover tangut language.

tangut writing system is artificially created, based on Chinese chars, but far more complex.

it's often the case, that languages's writing system are borrowed, or artificially created. Spoken languages develop naturally, but often don't have a writing system.

Japanese, Korean, Vietnamese, their writing systems are originally borrowed from Chinese, with Japanese still using it.

Persian, Arabic, are both written with Arabic alphabets. Latin alphabets, are used by many European languages.

Download Free Unicode Fonts (updated)

Google Noto Font Emoji Sucks

google noto emoji font 2017 02 24
Google Noto emoji font

Linux is super annoying. there are 10 ways to Set Default App, depending on your distro. Linux: Set Default App

algorithms for drawing mazes

mazes for programmers
Buy at amazon

this book actually teaches you algorithms to draw mazes

The Jargon “Invariant” in Programing Language

Linux: Shell Commands for GUI Apps (updated)

Linux: feh Image Viewer Keyboard Shortcuts (new page)

Linux: Image Viewers (updated)

Linux: How to Install/Remove Packages (updated)

2017 Dell XPS 13 9365 laptop
latest and greatest. very expensive. 2017 Dell XPS 13 9365

Separation of Concerns HTML CSS JS, 2016

separation of concerns html css js 2016
~15 years trying to make everyone separate HTML, JS, CSS. And then suddenly everything went south and we're writing code like this.

This is worth mulling. Need complete analysis. What went wrong? or was it stupid hacker advice to begin with?

linux is so sad. You have a laptop. Run linux, then audio sucks, graphics sucks. Alternative is boot to Windows, let Cortana phone home.

See also: Siri, Cortana, Ok Google, Are the Future of AI, the Embodiment of AI

See also: Cortana Artwork Collection

[• Rust severely disappoints me By Eric Raymond. At http://esr.ibiblio.org/?p=7294#more-7294 , Accessed on 2017-02-09 ]


to read. Might be good.

in late 2000s, when functional programing is rising, there are many tutorials saying SQL is a example of functional programing language. loly

and around 1999, when Java+OOP is at its heyday, there are many tutorials/blogs saying having hierarchy is OOP.

The Utility of In-Depth Tutorial? (on its own page)

Edge Cases in Computing, and What Exactly is Whitespace? (on its own page)

On the Rectification of Programing Language Spec by Formal Language (on its own page)

What's the Definition of Operator in Computer Language?

JavaScript's Prototype Inheritance is Convoluted

JavaScript's prototype inheritance, is not a good thing. EXTREMELY convoluted. Maybe in Self it's better.

the JavaScript prototype problem is this. With Java OOP, the inheritance structure corresponds to the syntax a.b.c. With JavaScript , the syntax a.b.c has no correspondence with its inheritance structure whatsoever.

see JavaScript: Prototype and Inheritance

hackers love diddling low level languages

rust lang is very annoying. the lang nerds in my circle's like all falling for it, but no mention of, say, golang.

on first principle, rust should not be liked, because its low level, it makes you diddle, with memory and stuff.

there are 2 directions in comp language, ① high level, math, application lang, ② low level, machine lang, C, assembly, compiler stuff.

programers, the despicable lot, tend to favor the low level stuff. that's why, functional languages are so slow to catch up.

example of low level are, C, C++, rust, Java. Mid is perl, ruby, python, js. high is APL, Matlab, Julia, Wolfram Language, in general math langs.

the highest level lang is Wolfram Language, simple, far powerful than any language on earth, by far. 1 line of Mathematica is 10k lines of haskell, lisp.

most programers, never seen 1 line of math lang in their life. They drivel about compiler, “garbage collection”, “reference”, speed, all day. day and night.

this is also why, we never have a good graphics lang. Instead, we have OpenGL, where it takes 1k lines just to draw a cube.

and, of canvas and svg, the hacker types always prefer canvas. cuz it's “fast”! low level shit.

in my 15 years arguing with hackers, very few understand math level point of view. Particularly idiotic is Common Lisper lot.

lisp is interesting, because, it is rather the 1st highest level math lang. But, today's lispers don't understand none of it.

See also:

play Chinese chess XiangQi vs computer at Play Chinese Chess Online

to play human, goto http://www.playok.com/en/xiangqi/

Google AlphaGo Beats World Champions, 60 to 0

lisp list (linked list) is interesting. if a var is a list, in one sense, it's mutable , but in another, it's immutable.

Unicode: Greek Alphabet α β γ (updated)

new book, basic category theory, by Tom Leinster, free pdf. https://arxiv.org/abs/1612.09375 〔local copy basic_category_theory_by_Tom_Leinster_2016-12-30.pdf