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 What Is a Function (ELISP Manual)
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
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〕
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:
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
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.
On Microsoft Hatred (ancient article, new navigation panel)
ban jargon “instance”
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.
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.
RethinkDB Shutdown, or, how to make money with open source
https://rethinkdb.com/blog/rethinkdb-shutdown/
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.
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.
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.
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.
https://twitter.com/algernoone/status/771618133949853696
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.