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
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.
someone asked about argument for my height of unix.
here they are
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
modeled on perl, that did it.
some old unix rant year 2002.
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
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
golang doc is the best
here's what not to do for tech writing:
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.
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
note that golang uses CamelCase, departure from C. No more pesky _
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
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.
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.
- YouTube uses alphanumeric of length 11 e.g. a-BOSpxYJ9M
- flikr uses e.g. 2034207911_c0f7e3eee3
- amazon uses B000KZDC0U
- weibo is idiotic, uses basically all visible ascci including punctuations.
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.
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.
is there actual legal requirement or effect for software license or part of to be in ALL CAPS?
ruby, don't use rvm. use rbenv or chruby
Ban Nested Closure?
more write up. Refresh browser. F5 or Cmd r.
Programing Language Design Problem, Conflict of Interest of Closure, and How to Ban Closure
added more stuff.
The Different Meaning of “closure”
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
- lisp mistake. “The definition of quote is broken. I personally explained it to John McCarthy. He agreed” https://news.ycombinator.com/item?id=12112800, 2016-07-18, by dogfishbar
- Wikipedia Fexpr Fexpr
- [on lisp fexpr By John Shutt. At https://fexpr.blogspot.com/2011/04/fexpr.html ]
2018-07-12 thx to Timofey Lagutin https://twitter.com/nuopnu
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.
- macros complicates code logic, harder read/write.
- symbols vs string. symbols pollutes obarray.
- advice complicates code logic, thwart expectation, harder debug.
- lisp read syntax ≈ useless. hobs progress in builtin parser.
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
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
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 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 ⮿
major update. Added some 100 arrows i missed before.
on iphone and android phone, the arrows don't show. strange, because these are from unicode 7, year 2014.
added to Unicode Arrows → ⇒ ⇄ ↻
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
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.
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.
Practical Linux Tutorial
new nav panel on the side
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
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.
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.
░░░░░░▄████▄ ░░░░░▐▌░░░░▐▌ ░░▄▀▀█▀░░░░▐▌ ░░▄░▐▄░░░░░▐▌▀▀▄ ▐▀░▄▄░▀▌░▄▀▀░▀▄░▀ ▐░▀██▀░▌▐░▄██▄░▌ ░▀▄░▄▄▀░▐░░▀▀░░▌ ░░░░█░░░░▀▄▄░▄▀ ░░░░█░█░░░░█░▐ ░░░░█░█░░░▐▌░█ ░░░░█░█░░░▐▌░█ ░░░░▐▌▐▌░░░█░█ ░░░░▐▌░█▄░▐▌░█ ░░░░░█░░▀▀▀░░▐▌ ░░░░░▐▌░░░░░░█ ░░░░░░█▄░░░░▄█ ░░░░░░░▀████▀
blackletter thou shall
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 ℤ ℚ ℝ ℂ
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
Agile is Dead
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.
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.
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 Pestilence
build a silent computer
Dell UltraSharp U3415W 34-Inch Curved LED-Lit Monitor amazon
anyone have experience with big curved monitor for coding?
Xah Code Sitemap (updated)
- Perl: Unicode Tutorial 🐪
- Python: Unicode Tutorial 🐍
If you have a question, put $5 at patreon and message me.