You're reading: cp’s mathem-o-blog

WhyStartAt.xyz: a collection of ambiguities, inconsistencies and unpleasant conventions in notation

I’m now the owner of WhyStartAt.xyz, thanks to my past self’s successful campaign of Twitter peer pressure against my more recent self.

My aim is to collect examples of conventions in mathematical notation that lead to ambiguities, inconsistencies, or just make you feel yucky. This is largely a result of me wishing I had something to point to whenever I see $\sin^2$ or one of those viral “puzzles” relying on BODMAS.

I’ve set it up as a wiki, so you can edit it too. So far, it’s got a few dozen pages on some of the things that have troubled me over the years, along with some contributions from some of my maths pals, such as “There is no function application symbol”, “Parentheses are overused”, and “Juxtaposition means combine in the obvious way”.

My aim is to describe conventions, without prescribing a correct notation. Whenever I tweet a question about a notational convention, my aim is to find out the range of different opinions that people hold about it. I often get replies arguing authoritatively for a particular correct answer, usually followed up by an equally certain reply from someone else arguing for the opposite. Like all language, mathematical notation is just something we make up to help express our ideas, and opinions, abuses of notation, lapses in memory and convenience all work against consistency and clarity.

I’d like the site to collect all these difficult aspects of notation, so that they don’t trip up someone who thought they might have an easy day doing maths.

So, have a look, and if you can help to build it out, I’d be very happy!

My robot draws TeX

For my birthday I got an EleksDraw pen plotter. It’s a cheap and cheerful example of the form: a pair of orthogonal metal rods with a pen on the end, attached to electric motors. The idea is that I can connect it to my computer and the computer can direct it to draw things. It arrived as a kit, so first of all I had to descend from the astral plane of pure thought and – shudder – screw the bits together.

The #plottertwitter hashtag is a constant source of inspiration, where people around the world share pictures of the amazing, beautiful things they’ve made their pen plotters draw, often with the AxiDraw plotter, which differs from mine in that nobody seems to have had to attach 200g of batteries as ballast to the pen holder to overcome friction on the knacky sliding rail.

My pen plotter. The end closest to the camera is the pen holder, which has had two AAA and one C battery stuck to it with electrician's tape.

The basic idea of a pen plotter is that the pen holder is free to move in the plane, constrained by the lengths of the two axes. If there’s a pen in the holder and paper underneath as it moves, then a drawing happens. The pen holder can move up and down, to lift the pen away from the paper so it can move without drawing.

The instructions you can give the plotter are quite straightforward: move in a straight line to these coordinates; move the pen up or down; move back to the ‘home’ position. It’s a lot like the turtle drawing robot I played with in primary school.

A robot turtle. Its shell is clear plastic, through which you can see lots of electronics and a pen holder.
A Valiant turtle robot, similar to the one I used in primary school. Photo from National Education Network.

You can either directly write a list of instructions for the plotter, or write some code that takes a vector image and produces a corresponding set of instructions. SVG is a widely-used vector graphics format, so it’s a common choice of input for pen plotters.

This was very pleasing to watch.

So I was playing around with my pen plotter, getting it to draw space-filling curves and geometrical diagrams, when I decided that I should get it to draw text. It turns out that there are a few ready-made “fonts” for plotters that give paths to write letters with strokes instead of filling in shapes, so that was nice and easy.

But then I wanted to write mathematical notation, and I remembered: MathJax has an SVG output! It didn’t take long to write a bit of JavaScript that takes some maths written in LaTeX and gets MathJax to produce the corresponding SVG code and insert it into the picture, ready for my plotter to draw.

The remaining problem is that MathJax’s fonts produces shapes that should be filled in, which is easy on a computer screen, but the pen plotter just draws their outlines. That’s not much of a problem, though: I just had to trace over the symbols in Inkscape, and replace each instance of a MathJax symbol with my single-stroke traced version.

The pen plotter hovering over a piece of paper, on which is drawn some mathematical notation. Each of the symbols has been drawn in outline.
Success! But it looks like a mathematical crime scene with those outlines.

There are squillions of symbols in the TeX fonts, and I didn’t want to have to trace them all before I could draw anything, so I decided to do it bit-by-bit. I added a step to my MathJax → SVG tool to capture any symbols in the output that hadn’t been traced yet and produce an SVG file I could load into Inkscape. After tracing over those symbols, my code absorbed them into its library of replacements. I wasn’t too careful to be precise with my traced symbols – I wanted it to look as much like handwriting as I could manage.

Some mathematical notation drawn in a jumble on a page. The symbols are drawn with single strokes instead of outlines.
My first few traced symbols. They already look a lot better, and more like handwriting, than the standard TeX fonts.
A passage of text with inline mathematical symbols drawn on paper.
Starting to draw TeX inline with plain text. The font I chose for the plain text made it look a bit too much like the product of a typewriter. The text is from Éléments de Géométrie of 1885 by L’Abbé M. Reydellet, another birthday present.
Another passage of mathematical text. This time the plain text is drawn in a style that looks more like natural handwriting.
This looks much better! The text is drawn from Philip Ording’s brilliant 99 Variations on a Proof.

The fantastic thing about MathJax is that it does a lot of work to match its output with the size of the surrounding plain text, so the results looked really good straight away.

I decided to draw some mathematical postcards to send to my maths pals. On one side I drew a picture, and on the other side I wrote a passage of text about it, often with plenty of mathematical notation.

Eight postcards drawn on colourful paper. They each feature a different mathematical diagram.
The “front” sides of my first batch of postcards.
Eight postcards, each with a passage of text including inline and standalone mathematical notation.
The “back” sides, with explanations of the diagrams. You can see a few places where the pen went awry or failed to drop down, so I had to make it draw over some sections a couple more times.

I’m particularly pleased with this formula for the length of a toilet roll, drawn from the paper How long is my toilet roll? – a simple exercise in mathematical modelling by Peter R. Johnston:

I’ve put all of my plotter-related code online. If you just want to make your own postcard, here’s a tool you can use to write a postcard with mathematical TeX.

Some different ways of multiplying numbers, vectors and matrices

Here’s a quick video I recorded at the end of my work day, inspired by this tweet.

The enormous difficulty of telling the truth about escalators with statistics

Earlier this year, when getting the train to work was still a thing for me, I noticed this statistic:

Did you know? 95% of the time escalators were working in the last four weeks.

The permutation clock

52 playing cards arranged in a grid

I recently had an idea: map the Unix time (seconds since 1st January 1970) to shufflings of a deck of cards. Each second would correspond to a different ordering of the 52 cards.

I wanted to think about how mind-bogglingly huge $52!$ is: $52!$ seconds is more than $2 \times 10^{60}$ years. So even if you spent your entire life watching this thing, you’d leave this world having seen basically none of the possible permutations. Happily, Wikipedia reckons that the heat death of the universe will happen in about $10^{100}$ years, so there’s plenty of time for me to enact my plan.

Where could you (or your rich pal) give everyone $1 million?

Recently someone on Twitter, and then two people on US cable news, said that Michael Bloomberg could have used the \$500 million he spent on his presidential campaign to give everyone in the USA \$1 million. This caused quite a fuss.

In short, someone divided 500 by 327, saw that the answer was bigger than 1 and the units were “millions”, and concluded that the money could instead have been distributed to give everyone \$1 million.

That’s an easy mistake to make for someone writing a tweet, but the kind of error that should have made someone think “does that make sense?” before planning a segment on TV news about it.

It’s raised a couple of interesting questions, though:

  • If that money was shared between every American citizen, how much would each one get?
  • If Michael Bloomberg wanted to give \$1 million to everyone in a smaller area, where could he choose?

I realised that all the data I need is freely available on the internet, so I made a website to do the calculations for you:

make-it-rain-bloomberg.glitch.me

It asks you how much money you’ve got, then for every power of 10 dollars, it tells you where in the USA you could give every resident that much.

To give you an idea of how far the net worths of people like Michael Bloomberg could go, it’s got a list of shortcuts for billionaires. Appropriately, I got that data from Bloomberg’s own website. Bloomberg himself was mysteriously missing from the list, so I got his net worth from Google and added it in myself.

The most unexpected thing for me was seeing how much money these people would have left over after giving everyone in the USA \$100. They’d still be enormously, unimaginably rich!

I’ll describe a few of the fiddly details of the implementation now. At first the “how much money have you got?” input was a text field, but I realised it’d be much better to have a slider that you can swing from \$1 all the way up to \$1 trillion. It’s a logarithmic scale, so powers of 10 are equally spaced.

I got data on the populations of US cities and states from data.census.gov.

Working out which amounts and places to show you wasn’t completely straightforward. I thought it’d be easiest to fix the amounts given away to a power of 10 per person, and to find places where the population meant that the amount left over would be as small as possible. To do that, my code works through the list of places in ascending order of population, and stops at the last place whose population is big enough to give everyone at least the target amount.

I enjoyed making this tool, and I hope it helps somebody get a better feel for what these big numbers mean.

Spread your wealth at make-it-rain-bloomberg.glitch.me.

Google+