The Intellectual Wilderness There is nothing more useless than doing efficiently that which should not be done at all.

2021.12.26 22:35

erlang-questions: A tale of push VS pull and authority VS lolberty

Filed under: Computing,Society — Tags: , , , , , — zxq9 @ 22:35

I just plowed through my email backlog for the first time in a long time to find that the venerable and seemingly eternal resource for n00bs and webtards in need sage graybeard advice known as the “erlang-questions” mailing list is now deprecated by the Erlang Something-or-other (Foundation? whatever).

I suppose this means they intend to nuke the archive of messages as well, which effectively obliterates the thing Joe Armstrong liked about it the most: the most useful posts and threads tended to turn up in web searches and were easily linked as resources years after the discussions themselves happened.

This came to my attention by way of a monster thread that started out innocently enough as “PING TEST“:

My apologies for spamming, but the list was unusually quiet for the last couple of days, and I just wanted to test if it is still active.
Kind regards

Valentin Micic (Fri Dec 3 08:08:30 CET 2021)

After a few stylish replies of a form common on periodically low traffic lists that simply indicated that the list was still working, a somewhat unexpected reply was then encountered:

Nowadays you will find more activity at

Björn Gustavsson (Fri Dec 3 09:05:31 CET 2021)

This prompted an unsurprising and appropriate reaction from none other than Richard O’Keefe (aka “ROK”, aka “The ROK”, aka “The guy who knows way more than you do so if he doesn’t have time to explain in detail just do whatever he says and you’ll be much closer to Doing It Right”):

As far as I am concerned, anything that diverts traffic away from the Erlang mailing list to a labyrinth like is a Bad Thing. Sigh.

Richard O’Keefe (Fri Dec 3 09:26:48 CET 2021)

This was followed up by quite a slew of posts from long-time Erlangers noting basic problems with the way the forums are framed by the Foundation (or whatever it is), trouble with the legalese involved, the technical problems involved in future mining of old wisdom from the forums if any ever turns up there, and subtly and not-so-subtly pointing out that this fits a disturbing trend of the webtards and wokescolds of the intertubes slowly breaking up the community over time and driving the graybeards away. Check the archive thread out — it is quite interesting to “next post” your way through it.

By the end it was clear that feelings among the long-time Erlangers ranged from extreme allergy to more neutral mild annoyance, as one often sees when The Committee is clearly doing something absolutely fucking stupid and Those Who Legitimately Know Better are trying to tell them so without starting a war over it. Fitting with the trend, the only two long-time Erlangers who actually support the move to trash-tier web forums are the literal card carrying communist and the kommunity karen (the guy who called me a racist and a Nazi on Slack because I said that I believe national borders are a thing that governments have a duty to their citizens to enforce — clearly the heart and soul of the National Socialist platform and not at all an indication that the angry little man in question had just proved Godwin’s Law right yet again).

Having been away from community interaction for quite a while and figuring this would probably be my last post before they get rid of it entirely, I decided to offer my $2.50 (no, the inflation is not transitory and if you believed it was you have cognitive trouble of the same sort Grandpa Badfinger suffers) only to be met with this beauty of a response from the mailing list daemon:

Irony is part of Nature’s sense of poetic humor

Let me just say HA HA HA!

In the spirit of not letting anything go into the memoryhole as long as my own site remains in operation, here is what I wrote:

On 2021/12/19 9:02, Jeff Schultz wrote:
> On 18/12/2021 04:02, Igor Clark wrote:
>> I agree wholeheartedly. Thank you for putting it so carefully and insightfully, Yao.
> I also agree.
> On an internet mailinglist, I can listen.
> On an internet forum, I am property.

At least you grok the motivation behind this sort of move.

A central point I have to drive into my geopol and intel students over and over is that "Capacity drives intent". Even if the original intent was to make a more "modern" single place to discuss Erlang, once that place becomes The One True Community the exclusionary capacity enabled by it will eventually change the intent of those running it. (In the end it will only make the Erlang community lore harder to find in the noise -- but whatever, no online platform is forever unless you do it yourself.)

I've just had to make my own little island of misfits -- mostly new Erlangers who want to solve problems and really don't care about anything else, least of all feels politics and other regulatory nonsense that people want to inject into projects and communities by rudely shoving their CoC into it. I don't really see a way around going independent to avoid the worsening social cancer.

I'll be on the ML as long as it is around and might occasionally check the forums if I'm super bored, but I'm pretty much seeing this as the end of the graybeard era -- it will definitely be a case of "nobody realized what they had until it was gone".

I have absolutely benefited an unfair amount from having this mailing list as a resource for the last several years. Thanks to all for the lessons and the laughs. Being proven wrong on the ML has always been one of those magical experiences where I could directly map blows to my ego to immediately useful lessons learned -- really fantastic stuff.

A late Merry Christmas to you all! Weee!

Anyway, all golden ages end eventually — our task as survivors is to simply push on ahead and try to manifest another golden age as soon as possible, and if we are both diligent and lucky we may just generate a small cascade of renaissances amongst one another. Let’s hope for that future instead of being bitter.

On that note, if anyone is interested in my little island of misfits just send me an email and I’ll point the way. Saving that I’m keeping the candle on at the #erlang IRC channels on OFTC and EFNet as well as the StackOverflow Erlang/OTP chat (I’m sure there is still an #erlang on freenode and libera, but until that ball of retardation is a distant memory and the landscape is clear I’m spending my effort elsewhere).

[Protip for 2022: Spend time with your family, friends and loved ones. Mend some fences or establish relationships with people you can physically see in real life (like really real life, not online). Never know when that’s going to come in handy.]

2021.06.11 10:42

Building Erlang on Devuan/Debian/Ubuntu

Filed under: Computing,Science & Tech — Tags: , , , , , , , , — zxq9 @ 10:42

Erlang R24 is out! …but there are, as usual with a version X.0 release, a few rough edges (enough of them around the important-but-annoying WX and OpenGL updates that I’ll be writing another post about that shortly…).

In the meantime, R23.3.4.3 is excellent and quite reliable. The steps for building with kerl are nearly identical as for R22, but it is worth re-posting them with the relevant version updates (or if you like the video version, Dr. Kumar made a few demonstrating his home Erlang + ZX build). Also, if you’re in a part of the world where’s docs are occasionally really really sloooooooowwww don’t forget the R23 docs mirror (or my Erlang page with linky links to everything).

sudo apt update
sudo apt upgrade
sudo apt install \
    gcc curl g++ dpkg-dev build-essential automake autoconf \
    libncurses5-dev libssl-dev flex xsltproc libwxgtk3.0-dev \
    wget vim git
mkdir vcs bin
cd vcs
git clone
cd ..
ln -s ~/vcs/kerl/kerl bin/kerl
kerl update releases
kerl build
kerl install ~/.erts/
echo '. "$HOME"/.erts/' >> .bashrc
. ~/.erts/
wget -q && bash get_zx

As usual, the ~/vcs/ directory is just my convention for version-controlled code that my $HOME sync scripts know to ignore, and you might want to install Erlang to some place global on your system like /opt/erts/ or whatever. The steps above work without root privileges with the exception of the apt commands. Remember if you are on Devuan or Debian that you need to perform the sudo commands actually as root unless you configure sudo on your system, then the rest as your normal local user account.

2021.06.4 09:26



  1. 天地万物はプランク限界でピクセル化されています。
  2. エベレットとボーアの解釈はどちらも正しい: 宇宙は遅延評価され、未来は「記憶」するには費用がかかりすぎる.
  3. 相対論的効果は、イベントの評価に必要な伝播遅延と削減バジェットのために発生する創発現象です。
  4. 確率は文脈から外れて滑らかに見えますが、ピクセル化とイベント順序の依存関係により、無限に小さな確率のイベントが実際に発生することが制限されます。
  5. 実数は偽物であり、有理数は実数です。 すべての数値には有限の解像度があります。
  6. 上記の点のために、残念ながらかなり多くの数学が間違っています (たとえば、真のタンジェントは、単一の値ではなく、そのスコープによって制限される範囲です)。 しかし、偽の数学は、その大部分が真っ赤な嘘であると認めれば、工学を完成させるのに十分に妥当な近似値です。
  7. 人は、自分の幻覚に夢中になりすぎて、上記のことを注意深く考えることができません。

2021.06.2 14:39

Random: The Erlang runtime (aka BEAM) when fed bad data

Filed under: Computing — Tags: , , , , — zxq9 @ 14:39

Random: How the Web was Designed

Filed under: Computing — Tags: , , , , , — zxq9 @ 14:37

2021.05.4 17:56

Tsuriai: Now engaging in smart contract work

I never thought I’d see the day, but Tsuriai (the tiny Japanese software company I work for) is now in the Ethereum smart contract market as a developer — which means I am now in that same market.

Need a smart contract or blockchain/IPFS-based project developers/consultants/educators*?
Just shoot the office an email at and they’ll hook you up.
They can even accept payment in ETH now, which makes it a lot easier to contract from overseas.

What a world!

[*Or, as always, Erlang developers or consultants, distributed systems analysis, and pretty much any other BEAM-related services, education or assistance!]

It is pretty well known that I don’t think smart contracts are going to save the world from itself because the problems in the US, Europe and China have everything to do with violations of social trust by government and lack of faith in people among the people themselves (as well as lack of faith in culture and tradition), but… smart contracts actually are kind of fun to write and our workflow is pretty darn fast.

There are clear use cases that fit the Ethereum-style computing paradigm and even some that clearly benefit from deployment on something like IPFS rather than a traditional server back end, and we can talk the client through the pros and cons. I suppose the most common thing to want to implement is NFTs at the moment, and some forms of NFTs (especially distributed name registry systems <hint!> <hint!>) are clearly extremely valuable solutions to otherwise difficult to administer problems.

2021.04.30 09:10

Valgrind “Hello, World!”: Python 3.6 VS Python 2.7 VS Erlang R23

I’ll just leave this here…

Python 3.6

ceverett@icecream:~/Code/python$ cat
#! /usr/bin/python3

print("Hello, world!")
ceverett@icecream:~/Code/python$ ./
Hello, world!
ceverett@icecream:~/Code/python$ valgrind ./
==19264== HEAP SUMMARY:
==19264==     in use at exit: 320,946 bytes in 166 blocks
==19264==   total heap usage: 1,698 allocs, 1,532 frees, 2,505,946 bytes allocated
==19264== LEAK SUMMARY:
==19264==    definitely lost: 0 bytes in 0 blocks
==19264==    indirectly lost: 0 bytes in 0 blocks
==19264==      possibly lost: 5,608 bytes in 10 blocks
==19264==    still reachable: 315,338 bytes in 156 blocks
==19264==         suppressed: 0 bytes in 0 blocks
==19264== ERROR SUMMARY: 8163 errors from 116 contexts (suppressed: 0 from 0)

Python 2.7

ceverett@icecream:~/Code/python$ cat 
#! /usr/bin/python

print "Hello, world!"
ceverett@icecream:~/Code/python$ ./
Hello, world!
ceverett@icecream:~/Code/python$ valgrind ./
==19416== HEAP SUMMARY:
==19416==     in use at exit: 417,246 bytes in 199 blocks
==19416==   total heap usage: 2,958 allocs, 2,759 frees, 3,085,205 bytes allocated
==19416== LEAK SUMMARY:
==19416==    definitely lost: 0 bytes in 0 blocks
==19416==    indirectly lost: 0 bytes in 0 blocks
==19416==      possibly lost: 528 bytes in 1 blocks
==19416==    still reachable: 416,718 bytes in 198 blocks
==19416==         suppressed: 0 bytes in 0 blocks
==19416== ERROR SUMMARY: 489 errors from 30 contexts (suppressed: 0 from 0)

Erlang R23

(On this one I can include the entire output.)

ceverett@icecream:~/Code/erlang$ cat hello_world 
#! /usr/bin/env escript

% Example of an escript

main(_) ->
    ok = io:setopts([{encoding, unicode}]),
    io:format("Hello, world!~n").
ceverett@icecream:~/Code/erlang$ ./hello_world 
Hello, world!
ceverett@icecream:~/Code/erlang$ valgrind ./hello_world
==25872== Memcheck, a memory error detector
==25872== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==25872== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==25872== Command: ./hello_world
Hello, world!

Hey, Python! What the actual fsck is going on here?!? Jeebus… The Good Idea Fairy came along and convinced the webtarded among you to start throwing kitchen sink features in (“walrus operator” — yeah, great idea, that, and totally worth losing the sober guidance of Guido over…) along with 8163 memory errors. Sweet! Oh how far the great have fallen…

Honorable mention: Ruby 2.5

I didn’t expect much better from Ruby as the Good Idea Fairy has been forwarding all xer mail there for years, but wow… just wow

ceverett@icecream:~/Code/ruby$ cat hello_world.rb 
#! /usr/bin/ruby

print "Hello, World!\n"
ceverett@icecream:~/Code/ruby$ ./hello_world.rb 
Hello, World!
ceverett@icecream:~/Code/ruby$ valgrind ./hello_world.rb
==27051== HEAP SUMMARY:
==27051==     in use at exit: 2,921,234 bytes in 20,690 blocks
==27051==   total heap usage: 65,312 allocs, 44,622 frees, 16,447,358 bytes allocated
==27051== LEAK SUMMARY:
==27051==    definitely lost: 385,479 bytes in 4,421 blocks
==27051==    indirectly lost: 640,953 bytes in 5,808 blocks
==27051==      possibly lost: 1,626,429 bytes in 9,663 blocks
==27051==    still reachable: 268,373 bytes in 798 blocks
==27051==         suppressed: 0 bytes in 0 blocks
==27051== ERROR SUMMARY: 162050 errors from 402 contexts (suppressed: 0 from 0)

162,050 memory errors. For Hello, World. How can there even be 162,050 instructions in the resulting set of commands to the system?

2021.04.5 20:25

Erlang: Socket experiments preliminary to writing a web server from scratch

Filed under: Computing,Science & Tech — Tags: , , , , , , , — zxq9 @ 20:25

A relative newcomer to networking in Erlang, Dr. Ajay Kumar, has started a self-educational project to create a web server from scratch in Erlang to give himself some first-hand insight into how TCP sockets work in Erlang and how web servers work in general. Web servers are a thing almost everyone has written against or for, but few have tried to implement on their own because socket programming sounds scary and time consuming to learn.

This video is quite short but incidentally demonstrates how not scary socket programming is and how easy it is to experiment with networking concepts on your own. Go experiment! Write networky things! It’s fun!

As an aside to this… I have a two-part explanation video that explains everything that is going on inside the service at he is basing his web server on. In the first part I explain what is going on within the default chat server that ZX templates as a network service project (kind of slow, covers basics for Erlang and ZX newcomers), and in the second part I explain how I used that as a basis for creating a telnet chat service that implements global shouts, channels, permissions, and other basic features needed for a real chat service (a bit better paced if you already know your way around Erlang and discusses some higher-level concepts such as service structure and the “service -> worker pattern“).

2021.03.11 16:31

Social Trust: Why crypto, blockchain and smart contracts will not change the world

Lately I have been involved in a number of discussions about distributed systems, delegated authority structures, cryptocurrency and smart contracts. The hope of many is that cryptocurrency will avert inflationary trouble entirely and help the public hold government in check. There is also hope that smart contracts will magically turn Africa into a paragon of high trust economics and a trade powerhouse of its own accord.

I decided to record my thoughts on this here:

The TL;DW of it is that while these are really great things to hope for, and not impossible goals, the idea that crypto technologies are going to manifest profound levels of social change on their own is misguided. The social and political problems much of the world is facing today are due to an erosion of trust and flagrant, repeated violation of trust and faith from every actor at every angle. In short, the West is moving from a high-trust social model to a low-trust social model and Africa is and has ever been suffering from low-trust social models. Crypto isn’t how that is solved.

Erlang: Video tutorial HOWTO on installing Erlang and ZX from scratch on Ubuntu Linux

Filed under: Computing — Tags: , , , , , , — zxq9 @ 13:24

I’m flattered to find that Dr. Kumar made a tutorial video of how to install Erlang and ZX on a fresh Ubuntu system and check that it is working by playing Erltris. It is sort of a video version of previous instructionals and the ZX quickstart docs all in one place.

Big thanks to Dr. Kumar!

Older Posts »

Powered by WordPress