Quadribrachial theory & the Macarena method

or A Mathematical Model for Dancing with Four Arms, illustrated with diagrams and more than 100 videos

In a previous article, I introduced mathematical labels for the different ways two people could connect their arms. As I pointed out there, my theory did not include support for common casino holds like hammerlocks, crowns etc. because they are asymmetrical: they are done on one side of the body at a time, on one person at a time, and it is not obvious how all these holds relate to each other using mathematical operations. I have developed a better model that solves this: quadribrachial theory (QT) (Spa.: teoría de cuatro brazos).

Why you can't hack sorting algorithms

An overview of clever student proposals to sort faster than N log N, and why they fail.

Having been a teaching assistant for a course on algorithms for three years now, I have encountered several cases of students trying to hack sorting algorithms such that they can outperform the established \(O(N \log N)\) average-case time complexity for arbitrary lists. Here’s why they failed.

Dance is talking.

A second article on mechanics, all about the biomechanics of physical frame, and the psychology of good dancers.

I recently wrote about an essential mindset for how to move your legs in partner dances: dance is walking, a lamentably absent lesson in dance schools. But of course, dance is more than leg mechanics. As will become clear in this article, everything that is not leg mechanics can be captured by all the senses of one word: frame. And indeed, if a dance schools treats frame as an afterthought, it hardly teaches anything about dancing at all.

Stop texting

I want to talk in the real world. Humans weren’t made for living their relationships over text. We should stop doing that.

I recently took a week-long break from texting. It allowed me to take a step back and reflect on whether it is desirable that I live the rest of my life going back to my usual habits of text messaging, and I’m having my doubts.

How to enable Flash Attention on a Linux cluster with Conda

Try install with pip, if it fails install NVCC and try again, if it fails build locally, if that fails install a lower version. And then do HuggingFace stuff.

I recently wanted to try if using Flash Attention 2 would speed up my language model training, but installing it was more difficult than I thought. Here is how I did it.

Say what you need to... but not more.

Some hard conversations should probably never be had.

One of my worst fears is being stuck in a relationship where authentic speech is punished, which I have written about in a previous article. If you cannot say what is on your mind out of fear for the other person’s reaction, you cannot solve the problems you see and you cannot assert your boundaries for self-preservation. So, is the solution to just say what you want to say? Not quite.

Don't be lulled into just existing together

When spending time with someone, prioritise spending it in the same way that made you want to spend more time with them.

Recently, I have gotten closer with one of my female friends. We met through a shared activity, started having conversations, and since we both enjoyed those a lot, we started sharing more activities together. In the process, I learnt an important life lesson.

Only free speech can save anxious-avoidant relationships

A look at attachment styles from the perspective of self-censorship.

Breakdown in communication is probably the most common reason for breakups. I have, however, had two short-lived relationships where by the end, breakdown in communication was the reason I didn’t break up sooner. Having recently read a book on attachment styles, I think I can now piece together why.

Dance is walking.

Nobody can teach you this, because you already know how to walk.

My friend Vuk Vuković, whom I met through dance and who has taught me to be bold about the philosophy of dance, once gave a one-minute speech on a square in my home town summarising the essence of son dance. I happened to film it. As he reflected later, it was actually a perfect summary of all partner dances worth their salt. I have since spread his sermon to many people, and it ties into some other thoughts and experiences I’ve had recently.

Timba is basically the best genre

An introduction to the music that converted me from listening to EDM for over a decade to forgetting about it for a year.

Many of my articles have been dedicated to dancing, but only one has been dedicated to what we dance to. And even so, I only wrote about lyrics, rather than about music. Let me share my compiled efforts regarding the musical genre most suited for dancing casino: timba.

Desplazamientos in casino

A full overview of all figures that move around, and their symmetries.

There are several figures in casino whose main purpose is to move the centre of the couple, rather than doing flashy armwork. They are called desplazamientos (“displacements”). These figures are made for letting the dance breathe, for claiming space, and in crowded spaces, for getting to an emptier part of the floor without stopping the dance.

It's probably a bad idea to date a good dancer

Don’t shit where you eat, but in more words.

Anyone who has made social partner dance their hobby has inevitably made long-term connections with people of the other sex. Furthermore, every dancer with any critical sense will rank-order these people by their competency. So then, the question naturally arises: does it make sense to date those dancers with whom you develop a good personal connection and who are so competent that you like dancing with them more than most others? I will argue here that paradoxically, the more you admire someone’s dancing abilities, the less it should determine whether you date them, or even, the less you should consider them for dating.

Hammerlocks are kinda OP

Over 20 figures you can do in the 8 counts right after hammerlocking the follower.

In dance, a follower hammerlock involves both hands being held, with one arm of the follower crossing behind her back and coming out the other side. The hammerlocking vuelta/vacilala is the first two-handed casino figure you learn as a beginner. This figure is the start of an entire family of figures that are variations on the famous setenta (70), which is surprisingly large. This hints at the observation that hammerlocks are a fantastic branching point for adding variety to the dance. Here is a list of all the things you can do with them.

First steps in Linux as a lifelong Windows user

Notes about how I replicated my old Windows 10 work setup in Linux Kubuntu 25.

Being a computer scientist, I spend a lot of my time working with the command line. Unfortunately, as a lifelong Windows user, this experience has always felt like an afterthought, having to install extra shells like MinGW just to have access to basic tools developed for people like me. So, for my new work laptop, it was time for change.

Getting back on count

A short guide for casino dancers who get off-count and want to recover without a hard reset.

Beginners are cursed with not finding the count and being off count without knowing, which bothers onlookers. Improvers are cursed with knowing how to find count in most songs, and hence they are the first to feel discomfort when falling off count. You can’t just defibrillate the dance with a hard stop, like you would a heart to restart the pulse. So, here are some of the ways I get back on count – fixing the car while driving it.

Deducing casino figures through symmetry

How do I make caída more interesting? Here is an answer based on a scientific treatment of casino: from observation, to model, to hypothesis, to practical knowledge.

As I have explored in previous articles, all casino figures transition between three positions. One of those, caída, is rather starved compared to the other two (and certainly abierta, from which most figures start); the choice is basically between doing an exhibela or a DQN. There are two ways to alleviate this: by substituting caída with a figure, and by substituting the last bar of DQN. There is a very nice relationship between both, and in fact, by assuming symmetry between them, you can logically deduce the existence of new figures.

The Game of Life

Whatever you do, don’t stop.

I’m not sure when I first had this idea, but if there is one lesson I could imbue every man and every woman with, it would be this.

A Matrix Algebra that Models Dancing with Two Arms

And you thought I was done systematising.

I have written in the past about the positional system that underlies casino dancing and why it works so well as a model that predicts what works and doesn’t work. Such modelling had already been done even before I knew casino existed, probably because positions are mainly footwork, and footwork is what everyone, beginner or not, needs a good understanding of before anything else. Conversely, at higher levels, not much new footwork is learnt, and armwork becomes the focus. Since arms can move so freely, it would seem impossible to model them discretely at first glance, and so nobody has managed to do so. I will do exactly that, and integrate it into positional theory. Introducing bibrachial theory.

Spanish lyrics for the dance floor

Our bodies embody the music, but our minds and mouths should embody the song.

As a beginning leader, all you care about in the music is the count. Yet, as David Linares blogged about almost a decade ago, and as was recently reiterated by Steven Messina and Robin Campbell, a good leader conditions his figures and positions on the energy of the music. I will go one step further and argue that true musicality requires that your dance follows the emotion expressed by the lyrics. So, let’s learn some Spanish lyrics.

Cuban followers are a RISC: build your own in 15 minutes!

A script to let any uninitiated woman bootstrap casino figures in no time.

If you’re a Cuban salsa leader, I’m sure this has happened to you before: you’re at a salsa social and ask a woman to dance, to which she responds she has never actually danced salsa (for example, because she is a bachatera), or alternatively, she dances LA style. You could just tell her “Nevermind…“, but, if she tells you she’s open to it, you could teach her, like a man. How will she ever catch up on the dozens of hours of classes you’ve had? Here’s the secret: all follower movement can be reduced to a very small set of prerequisite patterns. I’m about to give you a script I’ve used many times over to teach followers from zero in just 15 minutes.

"I can't be both stupid and ugly"

The beauty of the female mind.

A while back, I was walking a girl back to her dorm after a night out. At some point on our walk, she shared with me that she had a personal philosophy about her aesthetic, and I thought I’d write something about it.

Treating my guapeitis in Cuban salsa

"It is a sickness of the highest order, and therefore, we do not want it. Hustagafulizaha."

One of the problems I have struggled with when dancing casino is that I have to actively plan which figure to do next, and this planning takes up so much bandwidth that the dance stalls in guapea in the meantime. This is excruciatingly boring for followers (and therefore also takes away the fun for me as a leader), and I’m going to call this pathology guapeitis. As for all maladies, there is a need to remedy this.

Black-pillers demonise idealisations

Just because a preference is monotonous, that doesn’t mean its limit becomes the criterion.

As a man on the internet, I sometimes come across videos of women saying they would not settle for men who make “under 6 figures” (i.e. <$100k). I would like to expand on that and give the male analogue.

A note about two positional systems for Cuban salsa

Short disambiguation of two substyles of casino I have encountered in the wild.

In my first article about casino (a.k.a. Cuban salsa), I started by describing the three main positions of the couple (abierta, cerrada, caída, a.k.a. open, closed, perpendicular) and organised the rest of the article into a taxonomy of figures starting in a certain position and ending in a certain position. I’ve noticed, however, that two of the three positions, namely abierta and caída, can look different depending on the dance school. Since doing one differently often goes hand-in-hand with doing the other differently, there really exist entire positional systems for dancing casino, which nobody ever points out. For beginners trying to look up basic figures, this difference is not trivial, so let’s point out two such systems.

All you need is sencilla and vacilala

More than 10 Cuban salsa figures with almost nothing to remember once you get these two building blocks.

My first series of casino classes recently ended, just in time for the holidays. However, along with some other outlier students, I didn’t want to lose momentum over Christmas break, so I started venturing into the wild trying to find figures within reach to self-teach. Along the way, I started to see patterns between all the figures I saw appear most, and I realised that I could double the amount of figures I knew just by understanding three new phrases: one phrase to learn vacilalas, two phrases to learn sencillas. And it worked.

Cope of the bitter singles

“You just want a wife to make you happy.” No. I want a wife to make her happy.

Recently, I was served a video of a female influencer deluding herself and her audience with the idea that being single and “freed from the shackles of commitment” allows people to achieve heights of happiness that couldn’t otherwise be accessed. I was attacked for disagreeing with her. Let’s talk about it.

Beginner's reference for casino, a.k.a. Cuban salsa

“Don’t worry about the name or standard execution of each move – it’s all feeling” is not something to demand of an engineer! LWYMMD. I systematised it.

In the last 2 months, I’ve begun taking dance classes at the local designated club for learning casino (“Cuban salsa”). I’ve gotten so hooked that I genuinely can’t remember what occupied my thoughts and free time in the 23.75 years prior to this, and of course, like all excellent students, I’ve been taking notes.

But really, what is amortisation?

Computer science students hate this one trick!

Here’s a fun fact about me: I graduated with the joint title of engineer (ir.) and master of science (MSc) in computer science, without anyone ever teaching me about sorting algorithms. It was only a couple months after I was hired as a PhD student that I taught myself sorting algorithms, and that was because I had to teach them to bachelor students in turn the week after.
Inevitably, while studying other data structures, I also encountered the concept of amortisation. I vaguely remembered coming across its Wikipedia page once and taking away that it meant something like “proving that something is fast via black magic”. And yet, it really is not that deep.

It's not crazy to make zero-cost transactions

Deconstructing the nihilism of an ex-girlfriend.

“Why would you even care about my future well-being? Why would you not just block me everywhere and pretend I no longer exist? My well-being has no benefit to you. I could die and it wouldn’t affect you.” This is an approximation of what my first girlfriend conveyed to me when I parted ways with her. It’d take me a year to unpack that response.

Not everyone is equally unique

“NPCs don’t exist!” said the NPC.

Back when I was using dating apps, I often complained about how, tragically, a majority of the women’s profiles were carbon copies of the same boring template. And that’s where the controversy starts.

No, fractional reserve banking doesn't create money

A great example of why you need double-entry bookkeeping and balance sheets.

There are (at least) two claims that have never made sense to me ever since I heard them. One is that double-entry bookkeeping, where you track the capital inside a company by keeping two lists of money amounts that add up to the same total, is actually useful and not a formality that is 50% redundant. The other is that fractional-reserve banking (FRB), whereby a bank is not forced to have at least as much cash on hand as the combined total of all account balances open at that bank, allows banks to create cycles of infinite money. The former is true but hard to believe at first. The latter is false but hard to disbelieve at first. Both become apparent when considering the typical claim about FBR through the lens of double-entry bookkeeping.

Does DeBERTa have infinite context length, and how large is the receptive field of a token?

Disentangling the strangeness of relative distance and more.

The promise of DeBERTa is that it does away with absolute positional embeddings added at the start of the transformer encoder, and replaces it instead with an attention mechanism that takes into account the relative distance between tokens when doing attention, in every head of every layer. Since absolute positional embeddings are the only part of a transformer whose dimensionality is related to the length of the input, would taking it out mean DeBERTa can process an infinite amount of tokens at once? Let’s analyse.

Abundance mindset doesn't mean you shouldn't try when it gets hard

Just because you can easily throw away a relationship, that doesn’t mean you should.

There is a very fundamental piece of advice in dating (which generally men struggle most with), which is to never derive your actions from the angle of scarcity. One should always act from abundance. However, this leads to a paradox when things get hard.

How does HuggingFace's from_pretrained() know which weights in a checkpoint go where?

I dove deep so you don’t have to.

The famous roberta-base HuggingFace checkpoint is a serialised version of a RobertaForMaskedLM model, consisting of a roberta field and an lm_head field. Yet, despite this, you can still call .from_pretrained("roberta-base") on RobertaForTokenClassification and get an object that has a roberta field with exactly the checkpoint’s roberta weights, but a head with a different architecture and randomly initialised weights. Even more strikingly, you can call .from_pretrained("roberta-base") on RobertaModel, which is what normally sits inside that roberta field and consists of the fields embeddings and encoder, and somehow it can still match all the relevant checkpoint weights to the correct fields. Ever wondered how that’s done? Here’s how.

Marxists don't realise labour is a commodity

A lesson in supply-and-demand for adults who still believe in fairy dust.

I recently watched a video online of someone complaining about the existence of millionaires and billionaires. I commented with the realistic and optimistic message that anyone has the ability to become a multi-millionaire, even if just through supplying a silly backend commodity like toilet rolls. Then, all hell broke loose.

Easy mobile app development with Flutter

Cross-platform app development is surprisingly easy in 2024. Learnt it in a weekend.

Knowing how to build mobile apps is likely going to be a skill that will stay relevant for the foreseeable future. I’ve had some ideas for mobile apps in the past, and wanted to make sure that if I was going to learn to develop them, it had better be in a framework that allows having one code base and yet runs on both iOS and Android. We’re in luck: Google’s Flutter framework, built on top of the Dart language, does exactly that. Here are my notes learning it.

White pill is the only way through

An antidote to romantic cynicism as a guy in your early twenties.

Life as a young man can be quite depressing once you realise that nobody is coming to save you, and that love might not even be on the horizon for the foreseeable future. It’s easy to fall into cynicism out of rejection and impatience, but there is another way.

Commonly drawn uncommon attention

My go-to technique for cold approaches.

Cold approaching people you find interesting – for romantic purposes or not – is hard. I’ve done it during the day and during the night, and I’ve noticed this goes smoothest under circumstances which people surprisingly don’t usually talk about.

How to create your own Python packages and dependencies

A short tutorial on how to lay out a repo, declare metadata, installing editable code, and doing it recursively.

At the time of writing, I’ve publicly released a handful of Python packages (five, to be precise: Fiject, BPE-knockout, TkTkT, LaMoTO, and MoDeST) covering various parts of the NLP research workflow, with more on the way. It took me a bit to learn how to set up Python code as a package (also inaccurately called “library” or more accurately called a “module”), and as I later discovered, it’s not so trivial to have one custom package be installed automatically upon installing another custom package, especially when you are the author of both and are already using a working version. Let’s dive straight in!

Bits-per-character and its relation to perplexity

A short formalisation of an obscure metric.

I was recently reading a paper on how to train an adapter between a given model and any tokeniser, and noticed that they measured their causal language modelling performance in bits-per-character (BPC) rather than the more standard perplexity (PPL) with no citation to show for it. Let’s dive into that!

Zero is a special number, but one is too

So she does exist after all.

It is often said to people that they have “unrealistically high standards” for the person they would marry, the idea being that looking for such a person would doom them to a life of foolish loneliness. And without evidence, that could be true. But what if that changes?

BPE-knockout: Pruning Pre-existing BPE Tokenisers with Backwards-compatible Morphological Semi-supervision

Quick overview of my first-ever published paper, presented as a poster at NAACL 2024, one of the leading conferences in NLP.

After a harrowing round of peer review earlier this year (story for another day), I’m pleased to say that I am officially a published author. This article gives a short overview of my first paper, BPE-knockout: Pruning Pre-existing BPE Tokenisers with Backwards-compatible Morphological Semi-supervision. For a more detailed and slightly more technical overview, watch the 13-minute video explainer here.

Exposure 101: How to Use Manual Mode in Practice.

So many tutorials teach the exposure triangle, but how is it actually applied in practice? Take full control of the power of M(anual) mode by training your muscle memory on this one recipe!

When I was starting out in hobby photography in my early teens, I felt that I had to cling to all forms of automatic assistance to coordinate my shots for me: I would merely point the camera, and would let auto-focus and auto-exposure (the infamous P mode, or even worse, AUTO mode, with assistance of the on-camera flash) handle the rest. After all, computers are much better at multi-tasking than we mortals are, and that dreaded M mode seemed to have way too many settings with opposite effects. Better safe than sorry… right?

A Country Afraid To Be Patriotic

It’s not bad to know the nation’s history, anthem and flag, nor to be proud of it.

On the 21st of July, my wonderful home country of Belgium (autonymously België or Belgique) celebrates its National Day (or literally “the national holiday” as we call it). As with other nations, this is hypothetically a day to show off everyone’s patriotism. A day to show gratitude for living in one of the most peaceful, fair and prosperous places that the world has known throughout its history. A day to show our unity as a people and to stress why it makes sense for our country to exist as a sovereign country. Well, not here.