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.
Wikipedia Donation Scam (updated)
Unicode: Astrology Symbols 🌛 (minor update)
Python: List Modules, List Loaded Modules (minor update)
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”.
Xah Linux Setup (updated)
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)
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.
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.
Unicode: Food Emoji 🍺 updated for Unicode 9.
Hand Emoji 👍 updated for Unicode 9.
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
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
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 ]
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)
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.
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/
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)