Xah Programing Blog Archive 2016-09

lisp, JavaScript, and formalization of languages

0: when you dig into lisp innards, it's more complex than JavaScript.

1: for example, here's Emacs Lisp Manual on What Is a Function (info "(elisp) What Is a Function")

2: notice they are not exactly types, but roughly as kinds, and note the manual say they are just “important terms”

3: then you look at the description of “macro”, quote “A construct defined in Lisp, …”, then, nowhere is “construct” defined.

4: and for example, there is no mathematical definition, that say with respect to X these are the “kinds” of function. e.g. no well-defined ontology.

5: all these words are lose concepts, no mathematical definition. some has a predicate that return true/false, but not all, and no way to tell which does.

6: in JavaScript spec, you can sort of create a mathematical ontology, i.e. relationships, classification, types, process, of the whole language.

7: these lose concepts, is actually basically all computer languages. Even haskell, does not have such mathematical definition.

is there a programing language, that's actually defined by formalized mathematics?

are any of those math proof assistant langs coq agda isabelle etc formalized?

best grep tool is now ripgrep

[ripgrep is faster than {grep, ag, git grep, ucg, pt, sift} By Andrew Gallant. At http://blog.burntsushi.net/ripgrep/ , accessed on 2016-12-17 ]

ubuntu update failed downloading ttf-mscorefonts-installer

recent ubuntu 16 update failed with installing ttf-mscorefonts-installer. Here's solution:

wget http://httpredir.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
sudo dpkg -i ttf-mscorefonts-installer_3.6_all.deb

apparently, the installer contained a bad url, and Debian has the fixed version.

when the agreement screen pops up, press Tab and Enter to say ok.

The AMPERSAND Problem, Semantics, English, and Syntax Algebra!

few years ago, i decide to replace all my writing's “and” to “” FULLWIDTH AMPERSAND.

with the rule that, the left or right hand sides must be single words. That is, “&” has a high precedence, in computing jargon.

For example, you write “just copy & paste the code.” but not “authors are John White & Peter Smith”, cuz the latter is “John (White & Peter) Smith”

But now, i replaced them back to “and”. Ten thousand replacements. Reason: SEO problem, and just too foreign for people.

changing to “and” is easy, but not the other way round, cuz there are 2 diff semantics. Tight conjunction of words, vs sentence adjunction.

e.g. mouse & keyboard, find & replace, Mac & PC, perl & python, this & that, vs “linguistics, logic, and the rectification of English!”.

and it's elegant with one symbol “&”, not 3 chars “a n d”. Saves disk space too to boot!

but why FULLWIDTH AMPERSAND and not the normal AMPERSAND & ? because, the abuse and jam of symbols that in HTML/XML you have to use &.

when the ampersand is used in URL in a html link, it's very complex, very complex.

and if you are writing a tutorial, in HTML, about how to use ampersand in URL in a HTML file, it's complexity raised to complex power.

here's more detail

How to Convert gif to Video

Command Line Interface (REPL) vs Notebook Interface

fundamental diff of math vs comp sci is “what is” vs “how to”

fundamental diff of math vs comp sci is “what is” vs “how to”, and it is theoretically impossible to translate one to the other.

even for simple algorithms, it's difficult to translate it as What IS. (cellular automatic is a hard example) [see Notes on A New Kind of Science]

Math vs Programing, What-is vs How-to

linux speaker test. make sound, beep

# linux speaker test
speaker-test -t sine -f 440 -l 1 -p 1000

clojure vs golang

clojure's dependence on java kills it. use golang instead. simpler, equally powerful, 10 times more adoption, no java baggage, faster.

ironically, reason clojure is used in industry is mostly because it depends on java. it's the escape route of existing Java systems.

See also:

Sugar Syntax: Compiler Level vs User Level

python 3 vs JS ES6

python 3 and JavaScript ES6 has totally different fate. py3 is incompatible, few new feature, few adopts. JS ES6 is the opposite, Everyone's eager to use.

if you look at js es6 Grammar, it's extremely complex. I suppose C C++ java etc at the same level of complexity. ECMAScript 2015 §ECMAScript Language: Lexical Grammar#sec-ecmascript-language-lexical-grammar

using libraries increases engineering convenience, but software reliability for user may actually go down

JavaScript Grammar is Not Context-Free Grammar!

Unixer Plain-Text Email Fetish . ancient articles, new index.

Laziness, Perl, and Larry Wall ancient articles, new index.

On Microsoft Hatred . ancient articles, new index.

Linux: How to Install Font, List Fonts (minor update)

open source hypocrisy

if you are FSF/OpenSource advocate, but uses Mac, iPhone, or work for Google, Apple etc, you are really a hypocrite. matter of fact.

oop and code reuse

a decade ago, the idea that object encourages code reuse is everywhere. now, it's commonly accepted not really. Depends, or OOP decrease code reuse.

Fad in programing is hard to kill. Coding army ten thousand strong call you a troll.

OOP's Jargons and Complexities

Software Engineering Voodoo

Complexity and Tedium of Software Engineering

On Microsoft Hatred (ancient article, new navigation panel)

Should the Map Function Specify Order?

ban jargon “instance”

Jargons of Software Industry

hacker news yc website idiocy

the hacker news yc is truly idiotic. when in tablet, need a microscope to read. 1990s html, written in a born dead arc lisp.

HTML Style 1999: Hacker News

Unicode Cross ✚ (new page)

OCaml, Haskell, Syntax came from ISWIM

Been reading ISWIM, most idiotic technical writing. baroque, era dependent, complex grammar structure.

ML, ocaml, haskell syntax came from ISWIM. It is truly unfortunate. Particularly bad is the English “where” clause (like in SQL), and the “off side rule” (like python's indentation), which haskell adopted.

the paper was influential, but the idea of syntax algebra isn't there. So, by missing a aspect, it did long lasting damage. Like Knuth's TeX, or the C++.

for details, see

[Open Source is Ceasing to be Cool By Dr Mark Tarver. At http://www.marktarver.com/open.html , accessed on 2016-10-13 ]

Mark Tarver is the creator of Shen lang.

Command Line Tool to Convert WEBP to JPG

RethinkDB Shutdown, or, how to make money with open source


SageMath on RethinkDB shutdown. how to make money with open source… http://sagemath.blogspot.com/

i fear that some people will never be successful starting a company regardless of plan. You need 1 thing foremost: a greed mentality, advance yourself.

I interviewed with RethinkDB people about 2 years ago. Sad to seem them shutdown. Best wish to them.

Context Dependent Semantic: Python, Lisp setf

new lang, pyret

see bottom Proliferation of Programing Languages

#remove xfce stupid locker
sudo apt purge light-locker
#install classic xscreensaver
sudo apt install xscreensaver


Etymology Execute — the most annoying word in tech writing. When you use it, you connote killing and truth-hiding.

Etymology of Execute

Syntax Soup

new index. Collected essays about computer language's syntax.

Syntax Algebra (on its own page)

hum, new python book, Fluent Python

writing a compiler ain't no easy. So much to learn. Lots theory stuff, very different than common programing such as web dev.

yet, parser and compiler is one of the very first programing problem, and practically solved decades ago. You need it to create a language.

however, for vast majority of programers, you'll never need to learn or know anything about parser/compiler. Simply out of the picture.

LISP, What Does Symbolic Language Mean?

Why is DRM Not Working?

there are software that costs thousands. but it seems, always available on pirate bay. Can anyone explain this? is DRM tech not robust, or technically / inherently impossible, or what?

Am thinking Microsoft Windows, OS X, PhotoShop, Mathematica, AutoCAD. These are big companies, so that should rule out not doing DRM correctly.

can anyone explain the gist? any articles?

suppose i sell software X. I send to you, you install, it generates a id based on your machine. You send me id, i send you key.

In reply to Xah Lee
Gergely Nagy @algernoone
@xah_lee The id check can be patched out. Or the id generation cracked. Its likely automated, so mitm. Among other things.

In reply to Xah Lee
Gergely Nagy @algernoone
@xah_lee Also, if the id is generated after install, you can pirate, upload, etc the uninstalled installer bundle. And others can crack it.


English writing. I've been trying to get rid of e.g. for years, but just never found a way. “for example” is just annoyingly long.