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).
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.
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.
A short guide to the features that force your package to have a given Python version as its minimum requirement.
When you are writing your pyproject.toml, you may wonder what version of Python you should fill in as the requires-python = ">= 3.xx" value. This post shows you how you’ll know.
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.
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.
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.
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.
under Posts / Relationships / Datingabout Attachment
Last modified at:
3900 words • 19 min. read
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
"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.
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.
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.
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.
“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.
“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.
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.
“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.
I don’t necessarily fear holding eye contact, but I don’t do it naturally. That makes me think a lot of men have trouble with it as well. Once you know this, there is an obvious way to stand out among your competition: hold eye contact.
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.
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.
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.
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.
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.
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.
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.
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.
under Posts / Relationships / Pickupabout Cold-approach
Last modified at:
4762 words • 23 min. read
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.
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!
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!
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?
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?
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.