Yesterday I was invited to do an interview with the man behind Erlang Punch, Mathieu Kerjouan. Mathieu is a truly great programmer, an absolutely excellent interviewer, and it was a lot of fun to get to do something task-focused with him like this. He asked some pretty broad questions about Erlang as a language, as […]
Category: Computing
Ethereum RLP Encoding w/code in Erlang and TypeScript
This is a standard for encoding arbitrary(ish)-depth lists of lists of … of lists of bytestrings, as a single bytestring. -type decoded_data() :: binary() | [decoded_data()]. -spec encode(Data) -> RLP when Data :: decoded_data(), RLP :: binary(). -spec decode(RLP) -> {Data, Rest} when RLP :: binary(), Data :: decoded_data(), Rest :: binary(). Ethereum’s docs are […]
Base64 v. Base58 with code in Erlang and TypeScript
Base64 and Base58 are two algorithms for encoding byte arrays to plain text. I initially assumed these were two instances of the same “Base N” algorithm. This is not the case. These are two fundamentally different algorithms. Base64 is simpler. It treats your byte array as a stream of bytes. It encodes 3 bytes at […]
Aegora.jp: An Explainer
Aegora.jp is a somewhat complicated system in that it directly uses on-chain contract call transactions as its payment method. This means that a sale’s status passes through phases that are governed by actions that occur on the chain which can only be initiated by transactions that are signed by the users and must be verified […]
Alternative Tracks
“How did you go bankrupt?” Bill asked.“Two ways,” Mike said. “Gradually, then suddenly.” Ernest Hemingway, The Sun Also Rises A cascade of financial crises are rushing across the Western world. Gradually Imagine a set of express trains that are all headed toward a single catastrophic, multi-track collision. Each train is heavily damaged already, but the […]
The USD is literally a diffuse, dupable NFT
Fiat currencies have reduced themselves to the level of NFTs. The USD is a perfect example of this. The story is fairly easy to understand. The story of NFTs Some intelligent people realized that smart contracts could be used to register ownership of a given contract by a given public key, and that contract could […]
Video: Why does Euclid’s parallel copy construction break in this weird way?
Update (2023-04-22): it was because I did it incorrectly. I have a very nonconventional approach to math. There’s a fake question that’s posed a lot in math, which is is mathematics invented or discovered? I previously thought it was a stupid question because it has no impact on how one does math, until I heard […]
Diaries of a non-consensual JavaScript developer, episode 2: my grand scheme to make my code style more readable has failed mildly
From https://gitlab.com/DoctorAjayKumar/sidekick/-/commit/8ac7cd86892882f57f84e5043041a0ed1bd55c95 my grand scheme to make my code style more readable has failed mildly did you know that javascript is retarded Idea: transform async function foo_doo(bar: baz, quux: quuz, buzz: fuzz) : Promise<fuzz> { … } into async function foo_doo(bar : baz, quux : quuz, buzz : fuzz) : Promise<fuzz> { … } I […]
Diaries of a non-consensual JavaScript developer, episode 1: dumdum JS object pointer logic
As part of an elaborate S&M fantasy roleplay, I have over the last handful of months been forced to spend significant time developing a real commercial project in JavaScript and TypeScript. During this period, I have learned quite a lot about both languages and how they work. And I’m going to share what I have […]
Angry dragon problems: when great floods happen, it’s time to overthrow the emperor
Let’s start with debunking the narrative that “dragons are a myth”. The liberal media would have you believe that the Welsh, the Japanese, the Chinese, the Greeks, and even the Eskimos independently invented identical myths about giant fire-breathing reptiles who live inside bodies of water and are the source of chaos in the world. Right. […]