Spreadsheet Errors Deep and Shallow

Spreadsheets are almost certainly the most common form of end user programming. And they are both cool (enabling amazing systems to be built by all sorts of people) and dreadful (those systems are even more buggy than we fear). There’s lots of cool research on them…even inside Microsoft!

But I’ll tell you right now that the thing that fucking kills me with Excel for Mac is that scrolling is just the worse. It’s slow, buggy, and just plain hard to use. I switched to Numbers for dealing with a spreadsheet of less than 10 columns and less than 200 rows just because the scrolling was KILLING ME LOUDLY…

…of course, Numbers doesn’t let you delete specific cells…only whole rows why for the love of every sort of sanity on this good green earth WHY?!?!?

It just boggles me that these simple things are so broken. For generations of versions.


These Weeks In Zoe News

Woof, that was a long blog hiatus. First my WP app broke. Then I was sick. And then anti-momentum set in.

Plus, Google broke ordering by date. This is a bad and dumb move for a bad and dumb reason (and just incoherent since they let you search by recency or by a search range…screw you Google. Screw. You.)

But, there was some Zoe news in the past 6 weeks or so. Most of it is bits from trailing reviews or reactions to the tail end of Joan’s Fare Thee Well tour without a lot of new in them. (The song is great!)

I did like this bit:

Her reading of Zoe Mulford’s post-Charleston church shooting ballad, “The President Sang Amazing Grace,” was cheered wildly. The lyrics (about Barack Obama) seem fantastical in the Trump era.

I’m not sure why I find this weird, but the lyrics showed up in a column (“Journey in Faith”) in The Catholic Times by Chris McDonnell:

Reflecting back to the attacked on a church in Charleston, South Carolina, where nine were killed when a visitor joined in their prayer I was reminded of a song recently released by Joan Baez:


May this Lent bring us all to a greater awareness of our need to pray, not only for ourselves but for others who find it hard to pray.

I mean, it’s a perfectly fine column and a perfectly fine use of the song.

Someone posted the tabs to “Sister Sail”. HOW COOL IS THAT!

And, while hardly scientific or even well put together, I love this list of top 10 songs that mention other songs:

9. “The President Sang Amazing Grace”, Joan Baez. An Obama-themed song on her latest album, nominated by William French.

April Fools!

A PhD student that I let hang out in the group office next to mine likes to play pranks hence the ballon related one that greeted me this morning:

How they have the time to work on their PhD escapes me.

I, of course, launched a counterprank by emailing them that it was a fire safety issue and that there were escalating consequences. That was working until one of my PhD students pointed out that I had done that trick on them. The original prankster was only half fooled. Boo!

So I ran the same prank on the snitch only adding a forged email from Health and Safety for added verisimilitude. Worked a treat!

We are Very Serious People at the University of Manchester.

Music Monday: Turning My Heartbeat Up

I’m a bit of a sucker for songs which are self describing ie mention specific instruments which kick in as they are mentioned. My favorite of the genre is “Turning My Heartbeat Up”:

Argh…there’s another Motown classic that has a similar schtick but I can’t recall it right now. Boo memory!

“Pull Shapes” has a bit in the middle that does the same thing:


Memory finally dredged up “Dance to the Music”:

Which really is the archetype of the genre.

Sunday Baking: Blueberry Miso Buns

Finally made them for Zoe’s trip:

We were out of powdered sugar for the glaze so I tried making my own with the food processor. It didn’t work out well. The glaze was super gritty. It’s not clear that they need the glaze anyway.

I had bought some wild blueberry jam and added to the filling. Was really nice!

Even The Little Things

One aspect of the Trump/Brexit era is the complete saturation of falsehood in everything. I mean consider this quote from May:

“A slow Brexit, which extends article 50 beyond 22 May, forces the British people to take part in European elections and gives up control of any of our borders, laws, money or trade, is not a Brexit that will bring the British people together,” she said.

Let’s consider how wrong this is. First, staying in the EU on our current terms for a while longer arguably doesn’t give up control of our borders, trade, and laws (it maintains the status quo). But even if you think that means no control, one thing that we indisputably have control over is our money! It’s the British pound controlled by the Bank of England. Sheesh!

(Put aside that her Brexit does sorta unite the UK by making us all hate it.)

Given that she talks about a third “meaningful vote” I just have nothing left. (How is the vote meaningful if it doesn’t settle the matter when it’s overwhelming against you?)

Stop lying, people! At least about the little things!

The Tabulator JavaScript Library

I have to build a website. It’s a browsable repository of modesty complex structured documents largely represented as graphs. There’s lots of possible entry points, summaries, and views.

Fine. We know this will be sorta easy on the one hand and brutally suck on the other.

This is exemplified by the excellent table library I’ve been using, Tabulator.

I mean, out of the box (or in the demos at least) the tables look nice. They can sort. You can resize columns. You feed it some JSON and bob is all avuncular toward you.


Whoof, cutting and pasting the example code is an exercise in weirdness. It took me a lot of dork age to realise that the HTML5 doctype was essential, entirely essential, to moderately normal functioning.

And then there are the filters. Seems really nice…add a bit of search without any server mucking. Well, we jump from sorta declarative specs to a rat nest of bizarre (to these naive eyes) JavaScript barfing. Cutting and pasting example code yields disappeared table with no clue to what’s going on.

Plus this documentation says “source code” and then gives you something which is, at best, partial snippets, not working source code for the example.

Don’t get me wrong. It’s very cool and maybe if I was a wired in front end developer the documentation would make perfect sense.

But oy! It’s some brutal, empirical try and mostly fail to do anything.

As with so much web dev stuff, some select simple things aren’t so horrible then it fucking drives off a cliff of doom. It’s all so unforgiving and weird. Why isn’t there a simple “filter” flag? Am I supposed to make the buttons and fields or do they magically show up? If the form shows up why do I have to call all the filter functions? Including “clear filters”?

Maybe there’s some point where I’ll get it. But adding tree data was adding a flag and structuring the data appropriately. Adding filters is some mass of coding. It feels uneven to my untutored mind.