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. […]

Erlang: How to browse ZX/Erlang source files on Windows

Windows is a profoundly annoying development platform for non-MS languages and a fairly rare deployment target so it doesn’t really get much in the way of attention or tooling. The smoothest Erlang experience on Windows so far is running applications via Vapor (a GUI frontend for ZX), but that depends on applications being developed and […]

Erlang: Writing a Tetris clone Part 1 – Data types and basic GUI display

Over the last few days I wrote an Erlang implementation of the classic puzzle game Tetris and decided to do a few videos to explain how it works and why. This is part one of a three-part series. Data types and basic GUI display [this page] Gameplay mechanics Gameplay rules, final features, and deployment This […]

Erlang: FizzBuzz in Python vs Erlang — a discussion about conditionals

I’ve had a few discussions with beginners over the last few months that often come to center around not really understanding the conditional branching constructs in Erlang, so I decided to do a video on it using “FizzBuzz” as the central example. The traditional if/else if/else boolean paradigm is quite different from Erlang’s concept of […]

Excerpts from Chat: Discovering Structure and Grokking the True Nature of a Problem

This is an excerpt from a private chat with someone about code and I think it expresses something universal about programming, mathematics and engineering or any discipline where iterative development is necessary to manage complexity and discover simplicity. …about a bit of code where I haven’t quite grasped what needs to happen, or the core […]

X-Y Problems

People obsess about their X-Y problems to the point of ignoring accepted wisdom, plugging their ears to the deafening silence of the solution’s instructive whisper, picking themselves up as hard as they can by their own knees and wondering why they can’t fly. They then run off and formalize their wrong solution as a PR […]

Starting a simple GUI project in Erlang with ZX

A few days ago I wrote a tutorial about how to create a CLI program in Erlang using a new code utility called ZX that makes launching Erlang a little bit more familiar for people accustomed to modern dynamic language tooling. Today I want to do another one in the same spirit, but with a […]

Erlang: Getting Started Without Melting

There are two things that might be meant when someone references “Erlang”: the language, and the environment (the EVM/BEAM and OTP). The first one, the language part, is actually super simple and quick to learn. The much larger, deeper part is learning what the BEAM does and how OTP makes your programs better. It is […]