Xah's Programing Blog

On programing, languages, functional programing, Unicode, keyboard, hacker culture, ….

Want to master JavaScript in a week? Buy Xah JavaScript Tutorial.

language popularity ranking sites

there's many language popularity ranking sites. The most well-known, is tiobe.


I think TIOBE index is stupid. Their approach is not good. Mostly because, they tried to be general, as if they know what “popularity” means.

another one, http://langpop.com/, is worse. And badly maintained.

the following is better, because they are specific on what they measure.

note: language popularity is a lose concept. Is it more talked about? is it more used? more used by companies or by loud amature programers? Is it more existing code? How do you count code? What about quality code, but are not public?

Google Puts All 9 Million Source Code Files in One Repo

The Motivation for a Monolithic Codebase Why Google Stores Billions of Lines

Published on Sep 14, 2015 This talk will outline the scale of Google’s codebase, describe Google’s custom-built monolithic source repository, and discuss the reasons behind choosing this model of source control management. It will include background on the systems and workflows used at Google that make managing and working productively with a large repository feasible, in addition to a discussion of the advantages and trade-offs of this approach.

Presenter: Rachel Potvin

Google Puts All 9 Million Source Code Files in One Repo. Its own custom source management system called piper.

for context, linux kernel has 15M lines. Google repo has 2G lines. Google human makes 15M lines of code change per week.

Rachel Potvin explains why. But, i'm rather not convinced.

camelCase vs snake_case. Vote. 31 votes there. https://plus.google.com/+XahLee/posts/fNK8fCr4iwd

Genovation Programable Keypad

found a new programable keypad, Mechanical keys. This is not a numberpad, but a programable keypad. List of Programable Keypads

how to touch-type, and touch-typing tutorial, typing game

proper way to learn touch type in winter

new article. Typing Tutorial, Typing Test, Typing Games

Typing Habits, Repetitive Strain Injury ⌨ (new index. Article related to Repetitive Strain Injury.)

Why Learn Lisp When There Are Perl & Python (old essay. minor update.)

usb 3 drive. cheaper and cheaper

SanDisk Ultra Fit CZ43 64GB USB 3.0 flash drive
SanDisk Ultra Fit CZ43 64GB USB 3.0 flash drive amazon

how things have changed. Cheaper and cheaper.

Lisp Celebrities on How Common Lisp Sucks see link at bottom there, for a account of lisp history, the pros and cons of various lisp design issues, such as “lisp1 vs lisp2”.

found a new nice wireless number pad, with mechanical keys (Cherry Mx Black). See: List of Programable Keypads

Programing Language: Syntactic & Semantic Difference of Map

Unix history, 1998 – 2002. Unix history 2000, Software.

the term “troll” has shifted thru decades. In the '80s, it's geeks playing possum. Around 2000, its witches must die. Today, it means anti-social criminals.

see also: Netiquette Anthropology: a Tale of Tech Geekers

what a pleasure it is, to read math again

what a pleasure it is, to read math again. Precise, concise, and absolutely to the point. To the point, and nothing else, is exactly the definition of math.

in contrast, the programing literature by programer scum bags, including those from Haskell, clojure. These programer fsckheads, can't tell a donkey from an ass, babbling with pseudo-math, and switch between axiom and verbal description and algorithmic description, have no idea what they are really talking about. Category theory, monad, directed graph, their ASS.

and this is speaking of only the good article. For instance, 90% of writings of Haskell, is pure garbage. If nothing has changed, this includes the official Haskell documentation.

comment at https://plus.google.com/+XahLee/posts/MpfKbViQeVf

forking emacs

  • From: Richard Stallman
  • Date: Sat, 01 Jan 2005 00:25:40 -0500
  • Subject: Re: -fdump-translation-unit considered harmful

is there a reason for not making the front ends dynamic libraries which could be linked by any program that wants to parse source code?

One of our main goals for GCC is to prevent any parts of it from being used together with non-free software. Thus, we have deliberately avoided many things that might possibly have the effect of facilitating such usage, even if that consequence wasn't a certainty.

We're looking for new methods now to try to prevent this, and the outcome of this search would be very important in our decision of what to do.

from https://gcc.gnu.org/ml/gcc/2005-01/msg00008.html

  • From: Stefan Monnier
  • Subject: Re: Emacs contributions, C and Lisp
  • Date: Thu, 08 Jan 2015 21:23:41 -0500
  • User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

You consider it a waste of time, because you see the value in what I am trying to protect.

This difference in values is why I am not going to heed your conclusions.

To me there is blindingly clear evidence that what you're trying to protect doesn't exist any more, and that it's just alienating those rare individuals who do share our values enough that they haven't already moved on to LLVM/clang.

And since the GCC license already fully allows writing a plugin which gives all the info we need, I strongly support and encourage everyone to go ahead, write such a plugin, link it to CEDET (or any other Emacs package if you so prefer), and I'll do everything I can to get this included into Emacs.

With all due respect, Richard, I really think here you're simply wrong, and I'd be willing to consider a fork if that's what it takes.


〔from emacs dev list. https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00171.html

rms getting told: Episode 0

see https://www.reddit.com/r/programming/comments/2rtumb/current_emacs_maintainer_disagrees_with_rms_id_be/

I support Stefan Monnier for forking emacs. It would be a good thing.

see also Richard Stallman: What's magit? Emacs Dev Condition 2015

Matias Ergo Pro keyboard 90213
Matias Ergo Pro Keyboard Matias ergo pro keyboard

this is new, and is excellent.

Keybinding Design: Dedicated keys, Special Buttons, Extra Keys (repost)

Panorama VIDEO. How?

first time seeing panorama VIDEO. On youtube!

《360° panorama video: China's star tanks on display in V-Day parade》

anyone got links to how it's done?

variable naming in programing code

it's said, that variable naming is the most difficult thing in programing.

variable naming controversy

variable naming controversy. See comment there. http://emacs.stackexchange.com/questions/15276/how-do-i-write-a-simple-completion-at-point-functions-function

see also Programing Style: Variable Naming: English Words Considered Harmful

Most vexing parse. Programing: Why I Hate C

Computer Devices Bandwidth Table


Computer Science: What is vs How To

SpaceOrb 360-68931
SpaceOrb 360

Java for absolute beginners. Java Tutorial: Printing a String

OCaml Tutorial: Function (repost)

What's Point-free Programing? (point-free function syntax) (repost)

Guide to Computer Keyboard Key Switch Mechanisms (Added a great animation of Topre switch's rubber dome in action.)

The key feel of the Topre switch, used in Happy Hacking Keyboard, primarily came from its rubber dome.

Java Tutorial: The “extend” Keyword (updated)

Mac OS X Resource Fork and Command Line Tips (repost)

language tutorial popularity

apparently, Java PHP are most requested tutorial. The ranks are: Java PHP Python C# C++ C Javascript Objective-C Matlab R Swift Ruby …. 〔source: http://pypl.github.io/PYPL.html

Alan Kay on Object Oriented Programing

JavaScript Language Design: Dot Notation be Namespace or Object System (on its own page)

see also

Engineering = Hack Hack Hack. the Historical Origin of the “sprite”

nice video. It shows what depth engineering went into, and, the historical origin of the concept “sprite”.

《How “oldschool” graphics worked.》
calibrate monitor color 2015-08-17
How to Calibrate Your Monitor's Color
keyboard keycap pumpkin jack o lantern e9822478
Keyboard Keycap Gallery

Python C C++ → Jail

python C Cpp goto jail  Francois Rene Rideau lisper on C

A Guide to Undefined Behavior in C and C++, Part 1 By John Regehr. @ http://blog.regehr.org/archives/213

see also Programing: Why I Hate C

Leopold fc660c topre switch keyboard 72614
List of Keyboards with Topre Switch This is the famous switch used in Happy Hacking Keyboard.

Programing Style: Variable Naming: English Words Considered Harmful (repost)

Logitech Trackman Wheel (new photo. Early model actually have a “shark gill” lights.)

Keyboard: Why Undo Cut Keys Wreck Your Hand (major update. The {Z X C V} keys is not better on Dvorak.)

what's “operator” in programing language?

in programing languages, the concept of “operator” is completely fscked up.

comp lang operator JavaScript 2015-08-11
JavaScript operators

Logitech G13 Gaming Keypad Review

logitech g13 keypad features 22557
Logitech G13 Gaming Keypad Review amazon

Xah Verdict: Buy It. But, for coding, yes!

what languages are different from all others

of all the languages i know, { Java, Perl, PHP, Python, Ruby, JavaScript, Clojure, Emacs Lisp, Wolfram Language } , the one standing out are JavaScript, and Wolfram Language.

so i was riding the bike on the street, and it occurred to me, what an odd language JavaScript is. Then i thought, is it true, critically? The languages i know of floated in my head and i went over them. I conclude, the 2 really odd, standing out from the others, are JavaScript and Wolfram Language.

JavaScript because of its Prototype Inheritance system. Wolfram Language because of its symbolic pattern matching (term rewriting language)

roccat nyth mouse 11
Fin-switch at top, you push it left/right. amazon

ROCCAT NYTH Mouse. Brand new, just came out.

Programing Language: Polymorphism, Dispatch, and the Tale of Poly-Tinting

Logitech G502 Proteus Mouse. Look at it again. Analysis. Verdict: no buy.