Jain's fairness index

Jain’s fairness index [1] is a fairness metric for static resource allocation between \(n\) participants – for instance, dividing a cake into \(n\) slices or allocating bandwidth among network flows. If each participant \(i\) receives \(x_i \in \mathbb{R}^+\), Jain’s index is a value between \(0\) and \(1\) defined by: $$f(x_1, \dots, x_n) = \frac{\left(\sum_{i=1}^n x_i\right)^2}{n \sum_{i=1}^n x_i^2}$$ Some examples: If all the agents receive the same share (completely fair): \(x_i = 1/n\) and \(f(\vec{x}) = 1\) If one agent receives all the resource (most unfair): \(f(\vec{x}) = 1/n\) If \(k\) users receive \(1/k\) and \(n-k\) users receive \(0\): \(f(\vec{x}) = k/n\) [1] R....

October 31, 2022

GDP per capita vs population: the big-and-rich quadrant

I couldn’t find a simple graph showing which countries are rich (high GDP per capita) and big (large population). I wanted to double check a claim by Noah Smith saying that Germany and the US were the only two large (more than 50M inhabitants) and very rich (more than $50k GDP per capita) countries. It’s indeed the case! If we lower the GDP threshold to $40k, we can welcome the UK, France, South Korea, Italy and Japan to the big-and-rich quadrant....

October 29, 2022

Underrated things I like

This post is about stuff that I find useful and surprisingly underrated. I’ll try to update this list once in a while, keeping only the most interesting things that: I discovered late in my life and felt like I should have found earlier ; or that I’ve been doing for a while but that a lot people around me don’t, prompting questions from their end or recommendations from mine. Home Coat rack in the bedroom, to store used-but-clean clothes properly instead of dumping them on a chair Small bath towels....

August 7, 2022

Oblivious Linear Evaluation (OLE) from Random OLE

The other day I was trying to remember how to construct a simple Oblivious Linear Evaluation (OLE) from Random OLE. I couldn’t find the formula online and it took a few trials to reconstruct it, so I decided to keep it here. There is nothing deep but it’s a good way to recap what OLE is. Oblivious Linear Evaluation is a two-party protocol. Alice holds an input x from some ring and Bob holds two inputs (a,b)....

March 1, 2022

Coding with a smile on your face

I heard the following story from Christos Papadimitriou. I couldn’t find the source on the Internet, so I’m just posting my version here. People often ask me: “Professor, I’ve been coding all my life. Do I need algorithms? What’s the difference between coding and algorithms?” You know, that’s not an easy question, because algorithms is coding and coding is algorithms. How can I explain the difference? The only way I can do it is by appealing to the Asian martial arts....

March 26, 2021

How to backup all your Google account data

You probably store an important part of your digital life in Google services: photos, contacts, emails, history and more. So far, the folks at Google have been doing a good job to keep this data safe—although not exactly private. But what if one day you lose access to your account, or what if Google loses your data? Take the example of Google Photos. Photos are one of your most valuable digital assets....

June 4, 2020

Talking to my selves

I have a good relationship with my past and future selves. I mean, we get along pretty well and we often give a hand to each other. I should probably use the singular first-person instead of “we”, but I want to emphasize the plurality of my different selves across time—don’t worry, we’re not schizophrenic yet. Talking to yourself What does it mean to talk to my selves? When you are “talking to yourself”, it usually implies that you are internally deliberating, in the current moment: it is just a way to put words on an ongoing reflection....

October 29, 2019