Xah Programing Blog

syntactic obsession, imperative despisal, hacker hate, unicode love ♥

hackers in the 1990s, are interested in literature, linguistics, nerd as walking encyclopedia. Today, i don't seem to see much.

Today's coder gone illiterate? or, perhaps social media and too much info made the real nerd hard to find?

Lisp Panel Index

selected collection of lisp essays.

doc by dummies, Technical writing at its worst

Revamped index. Collected criticism of computer lang docs.

Xah Python Tutorial Accolade

xah python tutorial praise 2016-08-22
Python: Learn Python in 1 Hour

MiniKanren relational language, name origin

MiniKanren relational language. The name “kan ren” came from Japanese 関连, which is Chinese, meaning “relations”. lol

html navigation panel implementation redone

redone navigation panel for all my sites.

2601 files changed.

and the following files created

  1. ./xahlee_info/comp/comp_lang_panel_index.html
  2. ./xahlee_info/comp/tech_panel_index.html
  3. ./xahlee_info/comp/doc_idiocies_panel_index.html
  4. ./xahlee_info/comp/unicode_panel_index.html
  5. ./xahlee_info/comp/jargon_panel_index.html
  6. ./xahlee_info/python/python3_panel_index.html
  7. ./xahlee_info/golang/golang_panel_index.html
  8. ./xahlee_info/Netiquette_dir/netiquette_anthro_panel_index.html
  9. ./xahlee_info/linux/computer_networking_panel_index.html
  10. ./xahlee_info/linux/linux_misc_panel_index.html
  11. ./xahlee_info/linux/git_panel_index.html
  12. ./xahlee_info/linux/linux_keybinding_panel_index.html
  13. ./xahlee_info/linux/linux_panel_index.html
  14. ./xahlee_info/java-a-day/java_panel_index.html
  15. ./xahlee_info/ocaml/ocaml_panel_index.html
  16. ./xahlee_info/UnixResource_dir/writ/netiquette_panel_index.html
  17. ./xahlee_info/UnixResource_dir/writ/anti_hacker_panel_index.html
  18. ./xahlee_info/perl/perl_panel_index.html
  19. ./xahlee_info/clojure/clojure_instaparse_panel_index.html
  20. ./xahlee_info/clojure/clojure_panel_index.html
  21. ./xahlee_info/SpecialPlaneCurves_dir/_curves_robert_yates/curves_yates_panel_index.html
  22. ./xahlee_info/SpecialPlaneCurves_dir/curves_panel_index.html
  23. ./xahlee_info/3d/povray_panel_index.html
  24. ./xahlee_info/js/html_panel_index.html
  25. ./xahlee_info/js/svg_panel_index.html
  26. ./xahlee_info/js/js_panel_index.html
  27. ./xahlee_info/js/dom_panel_index.html
  28. ./xahlee_info/js/css_panel_index.html
  29. ./xahlee_info/ruby/ruby_panel_index.html
  30. ./xahlee_info/perl-python/python_doc_panel_index.html
  31. ./xahlee_info/perl-python/python_panel_index.html
  32. ./xahlee_info/kbd/ergonomic_keyboards_panel_index.html
  33. ./xahlee_info/kbd/keyboard_design_panel_index.html
  34. ./xahlee_info/kbd/keyboard_layout_panel_index.html
  35. ./xahlee_info/kbd/keyboard_history_panel_index.html
  36. ./xahlee_info/kbd/mouse_panel_index.html
  37. ./xahlee_info/kbd/mac_keybinding_panel_index.html
  38. ./xahlee_info/kbd/keyboard_reviews_panel_index.html
  39. ./xahlee_info/kbd/trackball_panel_index.html
  40. ./xahlee_info/kbd/typing_rsi_panel_index.html
  41. ./xahlee_info/mswin/Windows_keybinding_panel_index.html
  42. ./xahlee_info/parser/parser_panel_index.html
  43. ./xahlee_info/powershell/powershell_panel_index.html
  44. ./xahlee_info/php/php_panel_index.html
  45. ./xahlee_org/sex/sex_panel_index.html
  46. ./ergoemacs_org/emacs/emacs_keys_panel_index.html
  47. ./ergoemacs_org/emacs/elisp_panel_index.html
  48. ./ergoemacs_org/emacs/elisp_command_examples_panel_index.html
  49. ./ergoemacs_org/emacs/emacs_modernization_panel_index.html
  50. ./ergoemacs_org/emacs/emacs_panel_index.html
  51. ./ergoemacs_org/emacs/elisp_script_examples_panel_index.html
  52. ./ergoemacs_org/misc/emacs_misc_panel_index.html
  53. ./xahmusic_org/piano/piano_panel_index.html
  54. ./xahmusic_org/music/chinese_songs_panel_index.html
  55. ./xahmusic_org/music/song_panel_index.html
  56. ./wordyenglish_com/arabian_nights/aladdin/aladdin_panel_index.html
  57. ./wordyenglish_com/arabian_nights/arabian_nights_panel_index.html
  58. ./wordyenglish_com/titus/titus_panel_index.html
  59. ./wordyenglish_com/flatland/flatland_panel_index.html
  60. ./wordyenglish_com/lit/lit_panel_index.html
  61. ./wordyenglish_com/lit/accent_panel_index.html
  62. ./wordyenglish_com/flatland_chinese/flatland_chinese_panel_index.html
  63. ./wordyenglish_com/monkey_king/monkey_king_panel_index.html
  64. ./wordyenglish_com/musing/writing_panel_index.html

For example, goto JavaScript in Depth and look at the side panel.

The change doesn't effect User Interface. Only the side panel implementation.

For those curious, here's the deal.

before, each page contains the whole static html side panel. That is, a list of links is duplicated in every file. The problem is, if you want to change the navigation bar, you have to change every file in the list. And, if the source code happens to have a extra space, that causes problem in your find/replace script.

now, the nav panel is a file by itself, and is embedded in each page as iframe.

The disadvantage using iframe is that each page now needs to make an extra http request. (but it's cached, good if the nav panel contains several images)

on the whole, i think with iframe is much better. The iframe solves a major issue about linking from different directories.

here's a sampling, hope it's interesting.

after Shakespeare 〔➤see The Tragedy Of Titus Andronicus by Shakespeare〕 , Sir Richard Burton's arabian nights is the most fascinating literature and style i've read.

Read one: Story Of King Shahryar And His Brother, page 1

here's a story of The Arabian Nights, where girls fight to suck… The Arabian Nights: 70. ABU AL-ASWAD AND HIS SLAVE-GIRL

and this is the most wondrous scifi. finish in couple hrs, understand 4th dimension.

best short scifi. FLATLAND: A Romance of Many Dimensions

can finish in few hours. You'll understand 4th dimension. It's also a social philosophy, mock history, and a tragedy.

Weird Unicode Math Symbol: DIFFERENCE BETWEEN

Unicode: Math Symbols ∑ ∞ ∫ π ∈ ℝ²

unicode symbol becomes pictograph, a problem

unicode left right arrow becomes pictograph problem
This is annoying. In android, ipad, twitter, LEFT RIGHT ARROW gets rendered as pictograph, but the LEFT RIGHT DOUBLE ARROW not. As of .

Unicode Arrows → ⇒ ⇄ ↑ ↩ ⤢ ↱ ↷ ↻

PS

wow, unicode “U+FE0E: VARIATION SELECTOR-15”. Add that char after another char to select the variation you want.

see https://twitter.com/FakeUnicode/status/766873680366280705

Microsoft release PowerShell on Linux and Open Source!

PowerShell on Linux and Open Source! By Microsoft. @ https://blogs.msdn.microsoft.com/powershell/2016/08/18/powershell-on-linux-and-open-source-2/

wow

for a quick tutorial, see PowerShell Tutorial

pure speculation, but i suspect, any math proof related work/software traditionally done with #ocaml or #haskell can be done with golang easily.

in other words, i don't think there's any critical or foundational stuff in OCaml related to theorem proving.

“Propositions as Types” by Philip Wadler

see also

Category Theory for the Working Hacker By Philip Wadler. @ https://www.infoq.com/presentations/category-theory-propositions-principle?utm_source=twitter&utm_medium=link&utm_campaign=calendar

why random number is critical in encryption?

yesterday i had a question answered that puzzled me for years. thanks to @johnkitchin @bren_fdez

Q: why random number is critical in encryption?

A: because symmetric cypher is used for payload, and the key is a random number.

understand Public-key Cryptography in 5 minutes Public-key Cryptography Tutorial; What's SSH, SSL, TLS, AES, SHA-1, MD5

learn Julia in y minutes. https://learnxinyminutes.com/docs/julia/

functional programers and Golang

i've heard a few functional programers in my circle criticize golang. I think it's more like “it's not my clan” type of thing

i've also heard a few functional programers in my circle loving rustlang. I think it's “i don't want golang to win cuz its from skynet”

golang is fantastic. It's spec The Go Programming Language Specification - The Go Programming Language is shorter than Scheme Lisp now.

the best golang tutorial is https://gobyexample.com/ by @mmcgrana , simple, concrete, by example, no more.

Composable Syntax

line diff and semantic diff

recently there's idea of semantic diff. not line diff. Note that, line diff originates from unix brain damage of line truncation.

actually, the very concept of diff should be ban'd, line or semantic. Am not sure the detail, but a haunch

when programers use math jargons

when programers talk about math, such as git directed acyclic graph, or haskell monad, or some http ideompotency, or lisp homoiconicity, they dunno which side is mouth, which side is ass.

see also Jargons of Software Industry

F Sharp's New Logo = Literally Bad Ass

ocaml haskell are not math language, julia is

am beginning to see, ocaml haskell isn't my thing. like C, they are still computer engineer's by-product, not mathematician's thing.

i want a lang that's Wolfram Language in design principle but efficient. A mathematician's lang. I think, Julia is my hope.

what's this math lang i speak of? it's a lang where concepts of computer engineering by-product does not surface in the lang. if so, it's explicit.

are there such lang? yes. APL, Matlab, Wolfram Language, Julia.

whatever relation of ocaml haskell has with math, is only a historical happenstance. As lisp is.

the major concepts of comp engineering by-product are: int float double long reference pointer. They should be ban'd.

one of the most garish by-product of computer engineering in languages is: main()!

you can judge if a computer language is stupid by whether it has the “main”. Surprise of surprise, haskell has it! no wonder.

Do KNOW, that the origin of ocaml is ML, which is from 1973. Ancient. haskell's concepts and demeanors, belongs to the same lineage.

see also A Class of Computer Languages: Math Languages

see also Is Math Important for Programers?

Agile is a cancer that we have to eliminate from the industry. — Erik Meijer

Erik Meijer on Xtreme Programing and Agile

What's Algebraic Data Types?

JuliaCon 2016 (Keynote) | Fortress Features and Lessons Learned | Guy Steele

What's Disjoint Union, Sum Type? (on its own page)

Seymour Papert died, 88. Inventor of non-paren lisp: Logo

Seymour Papert died, 88. Invented “logo”, probably first non-paren lisp. Logo pioneered “turtle graphics”, we see in Scratch and Processing languages today.

I never learned logo, but ~1992 read a lot story about it, fascinated. I was busy doing Mathematica, this Visual Dictionary of Special Plane Curves

particularly interesting about logo is that there's a 3 volumes book 〈Computer Science Logo Style〉 amazon by Brian Harvey, another lisp pillar.

Brian Harvey is another lisp pillar.

History of OCaml Syntax, and The Next 700 Programming Languages

The Idiocy of OCaml's “let” Syntax (heavily expanded, on its own page.)