Dots and Blobs

Yesterday's Advent of Code puzzle had everyone thinking about bits!

Here's a tip: if you need to write out the numbers from 0 to n in binary, do it by column rather than by row. The rightmost column is alternating zeroes and ones (010101...), the next column is alternating by twos (00110011...), next is by fours (00001111...), and so on.

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

Easy peasy! I don't think I could write the numbers from 0 to 15 in binary without making a mistake.

For many years, I had the pleasure of working with Cray computers. These had a "blob" character which was the entire area for a character filled in (just a rectangle) and we would usually look at bits with dots and blobs instead of zeroes and ones.

....
...⬜
..⬜.
..⬜⬜
.⬜..
.⬜.⬜
.⬜⬜.
.⬜⬜⬜
⬜...
⬜..⬜
⬜.⬜.
⬜.⬜⬜
⬜⬜..
⬜⬜.⬜
⬜⬜⬜.
⬜⬜⬜⬜

You might think a blank for a 0 would be a better analogue for a blob, but it turns out that makes it too hard to tell the difference between say 4 zeroes and 5 zeroes. Blobs didn't quite go edge to edge, I guess, because they didn't have a similar problem. I am using the Unicode character BLACK LARGE SQUARE to simulate blob above; real blobs were more rectangular and nearly touched vertically as well as horizontally. Oh, well. Real dots and blobs were a nice way to look at bits. I guess you'll just have to trust me.

Edit: Blobs were also the same fixed width as all other characters. These are showing up too wide with this font. That is, the four blobs at the bottom should be the same width as the four dots at the top. It looked right in my editor when I was writing it.

On an ASCII terminal, we would usually use X's instead of blobs.

....
...X
..X.
..XX
.X..
.X.X
.XX.
.XXX
X...
X..X
X.X.
X.XX
XX..
XX.X
XXX.
XXXX

Not quite as nice as blobs, but still better than 0's and 1's.