Xah Programing Blog

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

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

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 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 ℤ ℚ ℝ ℂ


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. #xahcode

See also:

Cognitive dimensions of notations

to read in detail.

programing language design and popularity. Save a weekend to watch

#python #JavaScript #ruby #haskell #golang

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


to read

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


D3.js Visualization, a Quasi Science

Browser Console, More Sophisticated Than Full-Fledged Java IDE

chrome browser console 2018 04 22 db541
Chrome Browser Console 2018-04-22

Browser console today, is more sophisticated than full-fledged Java IDE. And probably 10 times more complicated to implement too.

xahlee info ranking 2018 04 20
xahlee info ranking 2018 04 20
unicode speech bubble c3251
unicode speech bubble Unicode 7 New Characters
unicode search heart face e6db6
unicode search heart face Unicode Characters ∑ ♥ 😄

now you can search by typing 2 different words, e.g. “heart card”

Unicode Character Equivalence Support in Web Browsers

Unicode: Emoji Usage Frequency

generative art = piss splash + programing

here's history of processing, the generative art programing language for non-programers. Non-programers? lol, actually, it's java.

[Research essay: The History of Processing By Maks Surguy. At https://maxoffsky.com/research/research-essay-the-history-of-processing/ ]

hackernews graced me

looks like hackernews graced me again. https://news.ycombinator.com/item?id=16741116

thanks to https://mastodon.technology/@danielhglus for shoutout


CUNEIFORM plus 1778

Unicode Characters ∑ ♥ 😄

two old articles.

Ban Code Elegance

Am beginning to think, elegance of code should be ban'd. Because, often, they make code slower, harder to understand, and also far more time consuming to create.

It's like artwork. Often, they serve no everyday value. Prime example is modern geometric furniture.

However, a society where concept of code elegance doesn't exist, then code quality will suffer in general. It'd be like a society sans notion of beauty.

what should be done, is that code elegance should become a branch of math. Like, groups represented by generators and relations. So that, code elegance becomes precisely defined, and part of representation theory. Just as complexity theory is the study of algorithms.

Patterns mean “I have run out of language.” — #clojure inventor Rich Hickey

Xah on Lisp (new index)

JavaScript Module, and Math vs Programing


follow xah

follow me on my new mastodon account at https://mstdn.io/@xahlee and on reddit https://www.reddit.com/user/xah

code elegance vs efficiency vs modularity vs readability

for my patreons https://www.patreon.com/posts/17567297

to my patreons, an intro to Xah Lee, is that right?


unicode squared characters 2018 24677
unicode squared characters 2018 24677

Unicode Circled Numbers ① ② ③ (major update)

Standard Fonts on Linuxes (minor update)

start to post to patreon again

am going to start to post to patreon again. see https://www.patreon.com/posts/17332715

for paid audience. It's better that way, increases my quality, with a goal.

the problem just blogging or posting to twitter, is that, nobody really cares. With patreon post, there's a goal, similar to commercial org. You write, if it's good, people pay. When no good, people stop.

And comments tends to be more valuable. It has a basis.

20 years of open source, has eliminated the power of individuals. Instead, you get these “we support opensource” mega corps like google and Facebook. The programers, by day work for these greed, by night sing open source, put to git, wipe out bread of small programers.

Open Source, worst suck of the century

[Why There Will Never Be Another RedHat: The Economics Of Open Source By Peter Levine. At https://techcrunch.com/2014/02/13/please-dont-tell-me-you-want-to-be-the-next-red-hat/ ]

[RethinkDB: why we failed By Slava Akhmechet. At http://www.defmacro.org/2017/01/18/why-rethinkdb-failed.html ]

Programing: Tab vs Space in Source Code

ruby poem 90797
Ruby by Example
python poem 13823
Python by Example
unicode search type 2018 02 21 5724
Unicode Search “type-ideo”

my day schedule for the next 3 months looks like this

Chinese Chess pieces in unicode

now you can play chinese chess! Play Chinese Chess here Play Chinese Chess Online

see the https://twitter.com/xah_lee/status/965774858746347520

unicode 11 draft https://www.unicode.org/versions/Unicode11.0.0/

See also: Unicode Characters ∑ ♥ 😄

Xah Code Sitemap

linked from home page, bottom ∑ Xah Code

programer's canvas reverse y-axes

one very annoying thing when coding a 2d grapher is the reversed y-axes in programer idiot's coordinate.

In svg, either u do (ymin+ymax-y) for every point, or,

g.setAttribute("transform", `translate(0 ${ymin+ymax-y}) scale(1 ${-1})`

but, your text get flipped. what a fing pain.

why programer's canvas reverse y-axes? not looking into history, but i surmise, cuz 'was just easy in the early days, like unix f and opengl f. Its ok to realize necessity, but the programer idiots is such that they see it as good. Every lang design, you run into such idiotic problems.

from unix to c to java to opengl (or whatever gl fk). and these idiots say, well but it is fast! it's efficient! the problem with these fheads is that they don't really understand math or meaning of efficiency, they just know micro-tuning and memory address.

I think the hard-ware based mindset is slightly going away today. Because , new generation dunno it anymore. And, langs like haskell golang, are teaching people to unstand the separation of efficiency and abstraction.

1 example of pseudo-efficiency trumps language design is Bitmask Used as Boolean Parameters. See


typical hacker get confused by this, and defends it vociferously.

this happens for languages up to about 2005, but not after.

See also:

high resolution monitor

time to buy a high resolution monitor. 2560x1440. You. See more, sans fidgeting with scroll swipe.

find out your screen resolution size JS: Find Window Size

high resolution monitor

lots opinions on coding, eg coding style, what makes productivity etc. Most pop blog posts r drivels, thrive for a few years, then buried. This is the best book on programing opinions, based on statistics. I read parts in 1990s. the book is now old.

Buy Code Complete

Idiocy of Computer Language Docs: Unix, Python, Perl, Haskell

Angular.js History

software testing, is one of the wart product of eXtreme Programing (that became agile). The effect is, even less understanding of programing languages, math, design, but more trial n error, speed prototype, churning, Cuz, there's test!

On Meta Syntax, Formal Language, and Logic (minor update)

Clojure Lisp Has Failed

i'd have to say, clojure lisp has failed, due to, complex intermix with java/jvm, and the clojure community as a cult refusing to listen. While, golang , @kotlin are thriving. The kotlin actually replaces clojure, with 10x more users.

it's funny, that the clojure head Rich Hickey emphasize simplicity, and makes a fuzz about simple may appear hard. But that's a tinted glass look of simplicity. Clojure, the way it forces intermix with java, is more complex than ANY programing language.

See also:

safari don't have favicon in tabs

safari don't have favicon in tabs? what extreme idiocy. I was switching to it, but now i don't think so.


having favicon in tabs makes it easy to identify tabs. When you have 10 tabs, not having favicon is a major problem.

xah comp sci growth roadmap

of my personal comp sci growth roadmap, there's few thnigs i like to horn. In no particular order:

golang syntax not composable

here's systactic complexity of golang.

slice type is declared like this:

var name []type

but map type is declared like this:

var name map[type]type

you see, there's a inconsistency.

That is, there's no single form for both. Basically, every semantic thing in the language has its own ad hoc syntax. The syntax is not composable.


See also:

  1. Grammar Complexity
  2. Composable Syntax
  3. Syntax, Formal Language, Pattern Matching
  4. Formal Definition of Systematic Grammar
  5. Syntax Algebra
  6. JS Syntax Soup 「p in o」
  7. Python 「… in …」 And 「… not in …」
  8. Context Dependent Syntax, Lisp setf, Python a[i]=x
  9. Java Array Syntax Soup
islamic 8bits 16bits 27456
islamic 8bits 16bits 27456

xah reddit channel

been posting to my reddit r/Xah. see https://www.reddit.com/r/Xah/

just trying it out. If you are reddit user, find my post on reddit as convenient, vote up my posts. If i don't see much user, i'll stop doing it.

also, since i have blogs on emacs, JavaScript, programing, and other topics, do let me know what you want to see, so i can shape up what kinda things i post there.

brave browser annoyances

.@brave browser allow/deny notification bar is annoying. It pops up for fullscreen, notification, and others. If you ignore, the bar don't go away but adds up space to the top of the browser. And when there's multiple, you might click the wrong allow/deny button.

another thing @brave browser is annoying is that when you hover mouse over a tab, it shows that tab's content temporarily (and in grayish fog). Very annoying and confusing, especially if you have hover tab/dwell on in OS.

xahlee info popularity ranking 2018-01-15

xahlee info popularity ranking 2018 01 15 53548
xahlee info popularity ranking 2018-01-15

climbing the ladder.


how to become a mathematician for programers

xah's edu corner extempore! episode №20180115122340 on math courses, and how to become a mathematician for programers

for young coders out there, the proper order of learning math is: highschool algebra, trig, pre-calc, calculus, linear algebra, then optional intro diff equations. These are basics. Must be in that order. These are basic needed for engineering. But are not math major basics yet.

for math major (to become mathematician), you need abstract algebra, real analysis. Order doesn't matter. After you had these, you are acquainted with math “language”, or math maturity. i.e. the way mathematician talks. These are typically 3rd year math major.

after that, you may have the following in arbitrary order: complex analysis, different geometry, topology, set theory. After studying these, you can consider yourself mathematician. You know what math is about, or know where to go. All the above, are traditional main math courses.

for programers, you might wonder, where is graph theory, type theory, game theory, logic, combinatorics, statistics. These are not typical main courses of MATHEMATICIAN. These are called discrete math, sometimes as comp sci. (while statistics n probability r applied math)

the discrete math, they do not have the elaborate pre-requisite sequence as analysis/algebra. Anyone can start to learn graph theory, game theory, combinatorics, number theory, etc. But you don't get deep without the years of analysis/algebra of real mathematician stuff.

See also: Free Math Textbooks

What's the Definition of Operator in Computer Language?

Logical Operators, Truth Table, Unicode (updated)

Programing: “or” Considered Harmful (updated)

Proliferation of Computing Languages there are so many in past 5 years, that people don't care anymore. Certainly, i stopped listing new ones. #elmlang #purescript #TypeScript #haskell

Math Notation, Programing Language Syntax, and Thought

ask Xah, 2018-01-07


[CoffeeMiner: Hacking WiFi to inject cryptocurrency miner to HTML requests By Arnau Code. At http://arnaucode.com/blog/coffeeminer-hacking-wifi-cryptocurrency-miner.html ]

seems like a good article.

See also: http://xahlee.info/linux/linux_iptables_basics.html

History of Programing Languages in 1 Sentence

pop stars and programer stars

pop stars, quietly drops out every decade or 2. And this is also true for programer stars. A star everybody knows and talks about, but you don't know or recall who's in previous decade.

classes of the rich, and classes of programers, and you don't know nothing

when something is beyond us, we can't distinguish the level. e.g. some are millionairs, but some r billionairs. To us, we don't comprehend. We group them as just “rich”. To them, it's 1 thousand times diff, literally. This goes for pop stars, to politicians, businessman.

Similarly, in programing, to outsiders, we all smart nerds beyond their comprehension. But to us, there r script kiddies, and “web designers”, to those who wrote google search engine. This applies to any field or community u r not familiar with. which basically means, everything.

intel chip bug Meltdown and Spectre

just read a few articles/papers about the intel bugs Meltdown and Spectre. Meltdown require OS kernel patch, cause 5% to 30% slow down for system call intensive apps (networking/file). and Spectre is unfixable.

We are screwed. by next week, nobody will remember the problems, except hackers and gov. But have a cookie, you are screwed already anyway with ur phone and usb and ssh etc.

if you are not a computer nerd, here's the gist: hackers discovered one very big hole to your password, and there's nothing you can do.

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