Xah Programing Blog 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.
Do Not 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)
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: 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
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
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
consumer drones use 4 rotors design, but not real helicopters. why?
4-rotor copter is simpler and better stability. I suppose real helicopters don't because to save parking space??
- Big blades is more efficient than multiple smaller ones.
- Electric motor can change speed fast. But combustion engines cannot.
- Single combustion engine is more practical and efficient than 4 smaller combustion engines.
- Real helicopters cannot use eletric for motor, because they are not efficient enough yet. Battery too heavy, and don't last long.
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.)
Food Emoji 🍺 updated for Unicode 9.
Hand Emoji 👍 updated for Unicode 9.
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
Linux is super annoying. there are 10 ways to Set Default App, depending on your distro. Linux: Set Default App
algorithms for drawing mazes
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
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?
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.
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 〕
If you have a question, put $5 at patreon and message me.