Eamonn O'Brien-Strain

Mastodon โ€“ Bluesky โ€“ Threads

Image by Tim Urban (https://waitbutwhy.com)

Screenshot from https://www.ispa.org.uk/ispa-announces-finalists-for-2019-internet-heroes-and-villains-trump-and-mozilla-lead-the-way-as-villain-nominees/

First Dรกil, January 21, 1919

Today marks exactly one hundred years of Irish democracy. Formed from democratically elected members, the first Dรกil (parliament) met on January 21, 1919, in Dublin. It was a promising start, with a woman cabinet member and a Socialist-leaning โ€œDemocratic Programmeโ€. But that act of defiance against the British Empire sparked off a war of independence, then fifty years as a conservative confessional state, then thirty years of low-grade guerrilla war to the north.

But the people remained solidly committed to democracy despite the poverty and political strife, and finally, in the last twenty years, Ireland has emerged as a wealthy liberal European nation.

Throughout one hundred years, one thing has been constant in Ireland: democracy.

Ireland took the democratic traditions of its ex-colonial power and made something even better. From the beginning, it had instant-runoff, multi-member electoral districts which resulted in proportional representation in the Dรกil and a necessity to compromise and form coalitions. Regular referendums are the norm, and minority populist sentiments from the left and right are represented in the Dรกil, giving a safety valve for political frustration, a safety valve that doesn't exist in the antiquated first-past-the-post electoral systems of Britain and the United States.

As Britain and the United States struggle with political breakdown, they might do better than look to Ireland as a model of democracy.

Consider a typical (sadly) tech workplace where there are four men for every woman.$^1$ Assume that women and men both exhibit bias to members of other genders at the same rate. Then women will experience gender bias at a rate of sixteen times more than men.

Yes, a simple mathematical model shows minority experience of bias relative to the majority experience goes up with the square of how underrepresented they are.

To take another example from the tech world, underrepresented minorities (Black, Latinx, Native American) are outnumbered typically at a ratio of twenty to one,$^1$ Again assuming racial bias happens both ways at the same rate, the model shows that the underrepresented minorities will experience racially biased behavior four hundred times more often than members of other groups.

This model could be part of the explanation for why so many members of the majority do not see bias in the workplace$^2$. A white man might not realize that some particular type of bias that he only experiences once a year might be experienced much more frequently by minorities: perhaps more than once a month by his women colleagues and more than once a day by his colleagues from underrepresented minorities.

The model applies to all kinds of biased acts ranging from small acts of exclusion and unconscious bias to full-on racial prejudice and sexual harassment. At every level of severity, it predicts marked increases in the expected frequency of the experienced bias with lower minority representation.

Of course, this model grossly simplifies the real world. Gender and race are not binaries. There are intersectionalities that make things more complex. Biased actions are not uniformly distributed and directed. One implication is that in practice, the ratio of experienced bias might grow a bit slower than the square, but I still think it grows faster than linear.

This squaring relationship is known as the Petrie Multiplier after its discoverer Karen Petrie. It is explained in detail in an article by Ian Gent$^3$.

(Note, I hesitated to publish this article as it reduces painful lived experience to cold impersonal mathematics, and I believe our first reactions to issues of representation and bias in tech should be outrage and a commitment to fix the system. But even as these issues divide us, there is one thing that unites us: we are all engineers, and at least in mathematics we can find a common understanding.)


(You can stop reading now if you don't care about the mathematics.)

Assume a population of two disjoint groups of people (majorities and minorities) where there are $k$ majorities for every $1$ minority. Let the total population be $n$, so there are $\frac{n}{k+1}$ minorities and $\frac{n k}{k+1}$ majorities.

Assume that people in each group act in a biased way to individual members of the other group at the same rate $r$ per time period.

Thus in total, majorities perpetrate $\frac{r n k}{k+1}$ acts of bias directed at $\frac{n}{k+l}$ minorities, so each minority is a victim of $r k$ acts of bias.

Conversely, in total, minorities perpetrate $\frac{r n}{k+1}$ acts of bias directed at $\frac{n k}{k+l}$ majority members, so each majority is a victim of $\frac{r}{k}$ acts of bias.

Comparing the rate that minorities experience bias ($r k$) and the rate that majorities experience bias ($\frac{r}{k}$) we see that minorities experience bias at a rate of $k^2$ higher than majorities.


$^1$Google diversity annual report Google diversity annual report

$^2$Why Male Tech Workers Don't See the Gender Gap

$^3$The Petrie Multiplier: Why an Attack on Sexism in Tech is NOT an Attack on Men

[See old version of this post to see what is being described.]

As an experiment, I'm seeing if I can use a navigational metaphor in which the articles in this blog are arranged left to right. To reinforce the metaphor I added some CSS animation that slides the page sideways when you click between articles. I also changed the index page to list the articles in the blog in a horizontal carousel. It's still pretty crude visually.

[See old version of this post to see what is being described.]

So, I started off trying to have this blog using simple plain hand-written HTML. However, I soon start getting annoyed how much repeated boilerplate I had to write, such as in the <head and in linking together the articles from the main index page. So in an effort to make things more DRY I considered what simple templating systems I could used.

A long time ago, back before the web existed I used the M4 macro language. It has the advantage of being installed on my home Linux machine by default, so no extra dependencies are required. Let's see if we can use it as an HTML templating language.

You can see an example of a template using M4 in the source code of this blog. Note that there is just one simple line of boilerplate at the top and some closing parenthesis at the bottom, but otherwise the template is straightforward HTML.

    ARTI{}CLE( 2, {

    ...HTML goes here...


The templates uses two M4 files:

  1. lib.html which contains the HTML header and footers for all the pages.

  2. data.m4 which contains the metadata for the pages, including the information needed to create the home page and to provide โ€œpreviousโ€ and โ€œnextโ€ links on the article pages.

One of the purposes of this blog is to experiment with simple ways put up a blog on the web without depending on any blogging platform. For this I wanted a free way to deploy static web pages on my own domain name. For this I chose Firebase Hosting, partly because I am very familiar with it, having worked on the Firebase team and personally knowing many of the Hosting development team, but also because it is actually the best solution I know of for what I want, and it is free for sites that have the traffic of typical personal sites.

People who are comfortable using the command line might be interested in following along the steps I took.

  1. Go to http://firebase.com, login, and create a project.
  2. Install Node. If you donโ€™t already have it installed already, I suggest first installing nvm then doing:

    nvm install stable
    nvm use stable</pre>
  3. Follow the instructions in the Hosting quickstart.

  4. Replace index.html with the HTML you want as your home page.

  5. Do firebase deploy

  6. Iโ€™d recommend storing everything in Git, and you might as well make it a public repo, as the web site is public anyway. (Mine is on GitHub)

  7. You also might want to register a domain name, and use Firebase Hosting to use that domain name (complete with a free SSL certificate so you the https: security for free.). I did this for eamonn.org

On Twitter yesterday I made a big announcement that Iโ€™m moving to a new team within Google.

For most of my five years at the company I have been working on products for external developers, first for App Engine where I lead the memcache team, then for Firebase and Cloud where I worked on privacy, security rules, and serverless events.

But now I am about to move to the team responsible for the main Google Search user interface. This is a huge change. Iโ€™m moving from infrastructure engineering to front-end engineering. And instead of building products for millions of developers, Iโ€™m building products for billions of end-users.

And this seems like a good time to make yet another attempt to start writing a regular blog. Iโ€™m going to start by eschewing the complexities of modern web development, using simple, plain handwritten HTML files. Now that Iโ€™m a front-end developer again, I can practice my skills here.