Xah Programing Blog

syntactic obsession, imperative despisal, unicode love โ™ฅ, hacker hate

Put $5 in my patreon. https://www.patreon.com/xahlee

garbage collection, the jargon

in the programer geekdom, there is obsession with garbage collection. They, gets nerdy with Rust. Rust this n that, Rust day n night. I truly despise these faks. Listen, if u not a idt, go'd be faster than 80% apps out there written in C C++.

the vary problem with this obsession, began with the jargon โ€œgarbage collectionโ€. collect ya as. if the term is changed to automatic memory management, there'd be much less fanfare. Jargons, does tremendous damage to computing industry. see

Jargons of Software Industry

this jargon problem is similar to tail recursion (scheme lisp), call cc, lisp1 vs lisp2 (common lisp), lisp macro, closure, list comprehension #python, currying, monad (#haskell). Whizzing to and fro in different eras.

Golang Tutorial

worked a lot on my #Golang by example for beginners. Especially for those coming from high level Python Ruby PHP JavaScript languages. Spend 1 hour, and you pretty much can start coding.

someone asked about argument for my height of unix.

here they are

golang walk dir 2018-08-17 ad8ea
golang walk dir 2018-08-17 ad8ea

now i fully understand #golang traverse directory. tutorial coming up

what language should retire, based on pure technicality

โ‘  as you may know, most lang popularity are due to inertia. but, if we ignore that, then, what langs are left? i want to get a picture. golang in my view crosses out python ruby php perl. java is also out, by one or all of scala clojure kotlin.

โ‘ก i dunno #rust, but pretty sure it or golang wipes C C++. โ€ข Racket wipes scheme common lisp elisp. โ€ข swift prob wipe ObjectiveC D. โ€ข bash is out, by powershell. โ€ข julia wipes R matlab

โ‘ข here's some am unsure: โ€ข shen ocaml f# haskell elixir โ€ข erlang clean mercury โ€ข C# nim โ€ข tcl lua โ€ข elm haxe โ€ข vala genie factor and more. can you help? but i should say some criteria in next post first.

โ‘ฃ a lang must be at least 5 years old AND used by several or sizable companies to be considered, for โ€œwipingโ€ other. e.g. swift. but maybe not Dart, Pyret. lang to be wiped also should be somewhat popular, used by some corps. Not niche that few knows. e.g. purescript.

See also: Proliferation of Computing Languages

Brendan Eich on JavaScript history.

modeled on perl, that did it.


some old unix rant year 2002.

  1. What's the Max Number of Directories a Directory Can Have?
  2. Unixer Plain-Text Email Fetish
  3. Laziness, Perl, and Larry Wall

to my patreons, thank you and notes https://www.patreon.com/posts/20816906

perl 6 book

after 15 years. i dunno if this happy or sad. One brian d foy, the last perl monger. https://twitter.com/LearningPerl6/status/1029864498285301760

etymology links 2018-08-16 20d74
etymology links 2018-08-16 20d74

reworking on my HTML/CSS links to english etymology. that's emacs screen. the script is python. will be golang by next week.

what's a struct?

if you code in scripting lang (js php python ruby perl), you probably never heard of struct or record. but its in go, racket lisp, clojure lisp, and of course, C C++. here's a quick introduction. #xahcode

Why Does Struct Datatype Encroach Namespace?

golang doc is the best

Which Programing Language Has Best Documentation?

here's what not to do for tech writing:

doc by dummies, Technical writing at its worst

Python Web Crawler in 40 lines Python: Web Crawler

Google interview problem. Programing Problem: Construct a Tree Given Its Edges

lang creators, who do you like?

Of the lang creators, i think Rob Pike of golang knows what he's talking about, and Rich Hickey clojure. And Guy Steele, Gerald Sussman, Matthias Felleisen, Scheme Racket lisp. Anders Hejlsberg of C and TypeScript. Those dunno what they talking about: Larry Wall of perl, Guido of python.

clojure concurrency, by Rich Hickey

here's Rich Hickey, giving a talk about concurrency in clojure. I always liked him. He gives it as is. Not shy, not cocky, not crackpot. He just give his point of view and fairly confident about it.

clojure concurrency, by Rich Hickey

golang rune means unicode codepoint

somewhat annoyed that golang invented a new word for unicode codepoint: rune.

this is a good article https://blog.golang.org/strings

See also: Unicode Basics: What's Character Set, Character Encoding, UTF-8?

note that golang uses CamelCase, departure from C. No more pesky _

Computer Languages Characters Frequency

can someone go plot your go code. post screenshot. thanks.

concurrency, clojure vs golang

when it comes to concurrency, with clojure, there is lots philosophy and after a month you still dunno how to. with golang, you get it within 10 minutes. compare:

programing languages and their computational model

Programing Language and Their Computational Model

new version of my โˆ‘ Xah Code site is out โˆ‘ Xah Code if you like my work, buy it. Thanks.

Xah Code Sitemap currently 3419 articles on programing and math.

git tip of the day. to copy a BIG git directory without the .git , do git clone --depth 1 file:///Users/xah/web/dirname this is probably fastest way.

git clone no history 2018-08-10 aad8f
git clone no history 2018-08-10
id num of digits 2018-08-07 91ad1
id num of digits 2018-08-07

i have a obsession about this. everytime i have a random string as id, i fuzz about if i can save 1 digit. Math: ID System, Number Base vs Number of Digits

according to the math, using just digits 0 to 9 for base is good enough. Adding more char to base e.g. a to z does not increase the pool much. Rather, you want to add string length, this way, the pool increases exponentially.

but but but, am thinking, maybe add a to f to make it hexadecimal is good. why not? because it increases the pool, and also has the property of easy convert to number, and no disadvantage of generating actual words such as fsck

then i dither, why not go all the way to use a to z. adding 26 extra char would reduce collision. the chances of generating annoying actual word such as yousuck is minimal. then i thought removing aeoui and 0o1l so it has property of being readable for verbal communication!

then i thought, let's go full out, 0 to 9, a to z, A to Z. This will further reduce collision, and less chance of creating actual english words. but then, i worry, for some file system or situation, case sensitivity is a problem. also, now it's hard for verbal communication.

then, you survey what google etc do.

then, there is uuid. e.g. 838f9f38-f241-11de-a663-002421597a5c but it's unwieldily. too long. What's Windows CLSID? Second Life UUID?

What Are the Differences Between Clojure, Scheme/Racket and Common Lisp?

What Are the Differences Between Clojure, Scheme/Racket and Common Lisp? https://ift.tt/2AP7AsR (cmts https://ift.tt/2LXHXLV )

let me answer that. Clojure is not a traditional lisp. Rather, a newish functional programing language with focus on immutabe data structure, with lisp syntax.

However, the language ties heavily with java, to such a degree that you need to master java to be a master of clojure. Also, it runs on the Java Virtual Machine monster.

Scheme/Racket is old school lisp, known for its miniminalism, and said to be most elegant. Mostly used in academia, and particularly good for programing language research. That is, it provides mechanisms to let you experiment with different evaluation strategy (e.g. eager, lazy) and other language features.

Common Lisp = old monster. It is comittee result of merging the lisp language wars of 1980s. Said among some lispers as the most practical. Most used in industry, before clojure.

Note, both Racket/Scheme and Common Lisp are deadish, and clojure is struggling in industry among the many choices, e.g. kotlin, scala, haskell, ocaml.

related articles:

Unicode Characters โˆ‘ โ™ฅ ๐Ÿ˜„

updated to unicode 11. Still some lose ends to work on, but want to announce now.

ghost characters: ๅฆ›ๆŒงๆšƒๆคฆๆงž่Ÿ่ขฎ้– ้งฒๅขธๅฃฅๅฝ

[A Spectre is Haunting Unicode By Paul Mccann. At https://www.dampfkraft.com/ghost-characters.html ]

Unicode Geometric Shapes โ– . added some 20 new ones.

amazon is now doing amazon coins amazon coins looks like it's for use in video games only.

Piping and Function Composition Equivalence

is there actual legal requirement or effect for software license or part of to be in ALL CAPS?

An Inquiry into the Nature and Causes of Ugliness of Software Tech

ruby, don't use rvm. use rbenv or chruby

Syntactic Meaning of Variable

PowerShell: Install, Print Version

minor update.

Ban Nested Closure?

What's Closure in Programing Languages?

more write up. Refresh browser. F5 or Cmd r.

Programing Language Design Problem, Conflict of Interest of Closure, and How to Ban Closure

What's Closure in Programing Languages?

added more stuff.

The Different Meaning of โ€œclosureโ€

emacs lisp closure 2018-07-23
emacs lisp closure 2018-07-23

added to

What's Closure in Programing Languages?

virtual reality with goggle going nowhere

suddenly, i have a feeling, that virtual reality with goggle will be going nowhere. as opposed to, in every house hold. Rather, 3d projection will be everywhere, when that tech comes about.

all you don't want to know about lisp

On Lisp


2018-07-12 thx to Timofey Lagutin https://twitter.com/nuopnu

Jargon REPL and Hackers

Guy Steele Says: Don't Iterate, Recurse, and Get rid of cons!

old article. minor update

programing languages traps for hackers

in programing languages, uncommon features are traps for hacker types. Hip coders form undue obsession about 'em. e.g. lisp symbols, macros, read syntax, advice. haskell of such is monad, currying. Unusual features is also cult brewing.

most hip love of lisp features r wrong.

duckduckgo vs google

after using duckduckgo.com for half a year now, it is decidedly inferior to google search. for popular simple search queries, it works fine. But if you are looking for anything weird or uncommon, google is better. i wonder how bing's doing

Python: Append String in Loop

now we have machines that emulate various animation insect flights mechanisms. there r few major categories by mechanism: birds, insects. birds: eagle, seagull, sparrow, hummingbird. house fly, dragon fly, butterfly, beetle.

should we include sting-ray as flying? depends. one is air, one is water. In physics, they are both fluid dynamics. But due to density, the mechanism and flight property, is significantly different. If we include, then we have types such as: dolphin, shark, ray, even octopus et al.

more generally, there are all considered locomotion. that is, how a animal propels. so what's the diff between โ€œflightโ€ and โ€œwalk/runโ€. The essence, is one is based on fluid dynamics, vs friction.

why are we interested in flight here? because, the various mechanisms of birds/insects, are interesting with respect to engineering. but note, walk/run is also quite interesting mathematically, in that the number of legs, and โ€œgaitsโ€, have diff properties and limits.

for flight, some of the top interesting properties is can it: hover, glide, fly backward, agility, speed, lift power, enegy efficiency. For ground based locomotion, some are: stability, speed, agility, power, carrying capacity, efficiency, terrain, control complexity.

Unicode Arrows โ†’ โ‡’ โ‡„ โ†ป added some 10 more arrows, more organization

jwz vs xah twitter spat

jwz vs xah twitter spat 2016-10-28
jwz vs xah twitter spat 2016-10-28

few days later, when he twitted about a perl question, and i reposted it with โ€œstop using perlโ€ or such, he blocked me.

i liked jwz and linked to his site often in 2000s. But since this, i no longer support him.

1920x1200 monitor

1920x1200 monitor is nice! extra 200 px gives you 10 more lines. Doesn't seem much, but for coding that's quite useful. Normally, it's 1920x1080. You can find out your resolution at JS: Find Window Size and buy it Buy Dell monitor

Unicode symbol for X-men โฎฟ

Unicode Arrows โ†’ โ‡’ โ‡„ โ†ป

major update. Added some 100 arrows i missed before.

unicode arrows 2018-07-03 a9c88
unicode arrows 2018-07-03 a9c88

on iphone and android phone, the arrows don't show. strange, because these are from unicode 7, year 2014.

ribbon arrows

โฎฐ โฎฑ โฎฒ โฎณ โฎด โฎต โฎถ โฎท

added to Unicode Arrows โ†’ โ‡’ โ‡„ โ†ป

thx to https://twitter.com/vladresende/status/1013890682933710848

Unicode Symbol Become Emoji. major update. Added a table.

this utter stupid unicode page http://unicode.org/emoji/charts/text-style.html there r 1214 emoji there, and each picture is base64 encoded in the html. the file is 3 mega bytes. removing them, the file is 153k

YouTube Shows Blank for Deleted Video

youtube axed account no info 2018-06-24 2ae31
youtube axed account no info 2018-06-24

It used to be, when you visit a YouTube video that's gone, YouTube says why. E.g. Deleted, went private, account violation gone. Now, it's just a blank.

emoji most popular 2018-06-24 84a31
Unicode: Emoji Usage Frequency

Google Forcing HTTPS

[Google and HTTP By Dave Winer. At http://this.how/googleAndHttp/ ]

google is now the biggest skummbag on earth. it wants $, and full control. Dave Winer is an asssshooole. but i agree with his say here. i have 5 domains. https would increase $ burden a lot for me. Its effect is wipe out all small players.

i've voiced against google forcing https, but quite a few nerds don't agree. about security, google chrome browser would be the number 1 problem. if google does backdoor, nobody will know, and they r the biggest octopus wrapping the globe from underground to outer space.

canvas size problem 2018-06-19 827c9
canvas size problem 2018-06-19 827c9

one of the problem of writing JavaScript svg math grahph plotter, is the canvas size problem.

Practical Linux Tutorial
new nav panel on the side

Git: What's HEAD

git, and its doc, is the prototypical think of programers, like C unix lineage, it's the most incomprehensible, to mathematicians, to logicians, to laymen. Only other programers can understand it, by means of โ€œgrokโ€.

Mathematicians remove anything unnecessary. What's left is the pure abstract substance. programers and their writing, moves around things with semi algorithm. Sometimes recipe like, sometimes lose definition. The land of the middle brain.

i propose, that big endian should be henceforth called the natural byte order.

There isn't much mentioning of design pattern these days. I suppose it's dead since ~2012. It reigned for a decade, since 2000. Reaching its pinnacle around 2007.

Why Software Suck. written in 2001. Why Software Suck

Hack of Bitmask as Boolean Parameters

isn't JavaScript the greatest language

In coding, there is lots frustrations. After you get old, you knew, the main problem cause, is the corporations, enterprise. However, the story is impossible to tell, due to social forces.

In html, one major problem is that it's hard to find the matching end tag. Usually, they are all ๏ผœ/div๏ผž. One solution, is to allow arbitrary tags. E.g. ๏ผœx70612๏ผžsomething๏ผœ/x70612๏ผž. This is beginning to be espoused, but killed by html5 fckkks.

Recall, xml rose as a fix of 20 years of sgml html mistakes. With streamlined syntax. Html5, was mostly Apple and opera, e.g. They want canvas for iphone for game for $$$. There are tons of articles written about the controversies, but, they are now history. When you try to say it, nobody cares.

For 12 years i blogged about ills of html xml css stuff. But realized, all the articles are just buried. It makes no sense to repost them. And it's hard to find the thousands of articles about them by others. All buried, as, โ€œhistoryโ€. Young people, only knew about current fad n bitches.

The ill of all this, the driving force, is really, just $. From each programer, to standard bodies such as w3c and wtfg, corps. If some tech is really good but makes no $ for nobody, it'll dieee.

So programing languages, is like the outcome of a cellular automata, just like other social things. That's why all lang r like total fkkcdp n extremely complex. Handful clean ones, from academia, no force to bubble them up.

Am starting to see, young people claiming they love javascript, or that js is a great language. Now, you feel old, too. Lol. Now, try to tell them things. Experience no communication.

Meanwhile, ten thousand corporations, libs, frameworks, etc, are shooting fireworks daily about how great JavaScript is, how modern it is, how universal it is, beautiful, with their libs, framework, ide, browser, engine, methodologies, things they peddle.

When you are a young coder, say, 20, that's all you hear. Sure, now and then you'll hear history of things. Some, would be curious and look. But, history is like a shroud. You don't really know it unless you wore it.


Unicode Box Lines โ”Œ Blocks โ–“

blackletter thou shall

new york times html source code 2018 06 13 8b6c2
New York Times html source code 2018-06-13
         0000000                         000        0000000
       111111111      11111111100          000      111111111
       00000        111111111111111111      00000      000000
       000        1111111111111111111111111100000         000
       000        1111       1111111111111111100          000
       000         11       0     1111111100              000
       000          1      00             1               000
       000               00      00       1               000
       000             000    00000       1               000
    00000            0000  00000000       1                00000
  11111            000 00    000000      000                 11111
    00000          0000      000000     00000              00000
       000        10000      000000      000              0000
       000        00000      000000       1               000
       000        000000     10000        1     0         000
       000        1000000 00              1    00         000
       000         1111111                1 0000          000
       000          1111111100           000000           000
       0000          111111111111111110000000            0000
       111111111        111111111111100000          111111111
         0000000              00000000              0000000

      NYTimes.com: All the code that's fit to printf()
      We're hiring: https://nytimes.wd5.myworkdayjobs.com/Tech

note that @nytimes logo is a capital blackletter T. aka ๐”Š๐”ฌ๐”ฑ๐”ฅ๐”ฆ๐” , ๐”‰๐”ฏ๐”ž๐”จ๐”ฑ๐”ฒ๐”ฏ. Gothic no mean bible. It means barbarian. Fraktur meas fracture. Now, you go spend 1 hour on history of things, typeface, unicode, etymology, carolingian, old english, midevilโ—

๐”„ ๐”… โ„ญ ๐”‡ ๐”ˆ ๐”‰ ๐”Š โ„Œ โ„‘ ๐” ๐”Ž ๐” ๐” ๐”‘ ๐”’ ๐”“ ๐”” โ„œ ๐”– ๐”— ๐”˜ ๐”™ ๐”š ๐”› ๐”œ โ„จ Math Font โ„ค โ„š โ„ โ„‚

Emacs: ๐”—โ„Œ๐”’๐”˜ ๐”–โ„Œ๐”„๐”๐”— ๐”ˆ๐”๐”„โ„ญ๐”–

unicode art 2018 06 13 99fe3
unicode art, for lack of better description [image source https://twitter.com/FakeUnicode/status/1006816667316506624]

Unicode Symbol Become Emoji

Emoji Politics

Symbola Font for Unicode No Longer Free

Crap. George Douros changed licenses in March 2018. https://web.archive.org/web/20180129230141/http://users.teilar.gr/~g1951d/ https://web.archive.org/web/20180420071257/http://users.teilar.gr/~g1951d/ This means Symbola versions after 10.23 are no longer (libre) Free.

[2018-06-05 from https://twitter.com/FakeUnicode/status/1004206237620113408]

quite interesting turn of events. George Douros is the guy who created the Symbola font, for years its the most popular and basically the only open source font for emoji. Now the license change is rather drastic. e.g. linux distro cannot use it as is.

about 6 years ago, i emailed George for permission to use his font (i think it was put on my website for download) to be sure, and he seems annoyed. e.g. โ€œwhat part of free for any use you don't understandโ€. So i gather he's very โ€œfreeโ€ guy, not necessarily any open source fsf faction.


unicode 11 is out



camelCase vs snake_case

Agile is Dead


GOTO 2015 โ€ข Agile is Dead โ€ข Pragmatic Dave Thomas

See also: Voodoo of Software Engineering

[APL deserves its renaissance too By Oleksandr Kaleniuk. At https://hackernoon.com/apl-deserves-its-renaissance-too-caec3df9ba85 ]

by the way, lots people don't know. APL is one of those considered array languages. Matlab, Mathematica, are similar. In fact, Mathematica is far more powerful. you can implement APL in Mathematica in maybe just 50 lines.

See also:

to read

Cognitive dimensions of notations

programing language design and popularity. Save a weekend to watch

opinions from programers about programing language can be ignored, as well from those lang creators. pay attention only to expert on these issue, namely, researchers on language design, popularity, history, notation systems, human cognizance field etc.

programer's opinions on languages is like carpenter's on hammer. lang creator's opinion's like the maker of a hammer brand's. what u want instead, is from researchers, designers, scientists, on human anatomy, accident statistics, material science, physics, mech engineering.

Bret Victor

Empirical Analysis of Programming Language Adoption

history of APL

[A History of APL in 50 Functions By Roger K.W Hui. At http://www.jsoftware.com/papers/50/ ]

See also:

The Unix-Haters Handbook

See also: The Unix Pestilence

build a silent computer


nice article.

How Computing Science created a new mathematical style

Dell UltraSharp U3415W 34-Inch Curved LED-Lit Monitor amazon

anyone have experience with big curved monitor for coding?

Xah Code Sitemap (updated)

Piping and Function Composition Equivalence


linux mouse thanks xah 2018 05 05 9a67b
Linux: How to Swap Mouse Buttons#comment-3887057115


If you have a question, put $5 at patreon and message me.