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.

https://www.reddit.com/r/emacs/comments/5zzty1/programing_language_ranking_emacs_lisp_doing_not/df33rd0/

Wikipedia Donation Scam (updated)

Unicode: Astrology Symbols 🌛 (minor update)

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

Programing Language Popularity 2017

24-hours 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 find replace 2017-03-12
python science

Python: Find Replace Strings on Multiple Files

Xah 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: Character Set, 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

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 (2015). 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)

Unicode: Clothing Emoji 👠 (new, on its own page)

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

new discovery.

Egyptian Hieroglyph 35048
Egyptian Hieroglyph 𓂀

Unicode: Food Emoji 🍺 updated for Unicode 9.

Hand Emoji 👍 updated for Unicode 9.

unicode 9 emoji

Unicode 9 New Characters (2016)

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

Emoji Politics

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-s456x548
Buy at amazon 2250×2700

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)

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 ]

https://github.com/thejameskyle/the-super-tiny-compiler

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)

Programing Language Spec, What-Is vs How-To (on its own page)

What is 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 JS: 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, (1) high level, math, application lang, (2) 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 (2016-12)

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)