No post last couple of weeks, but I do have a day job, and I posted an update on my day job there: BigDataBiology Spring Equinox Updates.
One of my pet obsessions when designing software tools is error messages. In NGLess, for example, we treat bad error messages as a class of bug. That is, there are many situations when the right thing to do is to fail (e.g., missing input files), but the tool has a responsibility to fail in a way that is most helpful for the user.
One interesting way to think about why this matters is to think that error messages are a part of a conversation between the user and the tool.
The simple view is that software use is tool use: “the user knows what they want; sometimes, they might make a silly mistake like mistyping a command or something, but generally they know best and the goal of the tool is to execute the user’s requests. If there is a mistake, the user will fix the error and the tool will execute the corrected command. For education, the user can consult the docs.”
In contrast, the software use as conversation view is more like: “the user has some high-level vision, but may not be aware of all the technical details necessary to turn that high-level view into a final product. When they use a tool, they may be exploring the solution space as much as making a specific request. If there is a mistake, it may simply be a trivial typo1 which the user can easily fix if provided with an error message, but maybe what the tool should really doing is asking for a clarification of their intentions.”
In this conversation view, when an error happens, the tool is not only reporting that it could not execute the request in an exceptional case (which is the user’s responsibility to fix). In fact, errors and failures are to be expected2, just as small misunderstandings and requests for clarification are to be expected in normal conversations.
Something similar happens when dealing with bureaucracies: Sometimes, you submit a form, and it is rejected with maybe the barest of hints as to what went wrong or why (although you are assured that your business is appreciated). And, sometimes, you get a human-like response where someone asks you whether you can just clarify a particular point.
Related previous posts: Eager error detection in NGLess, Fast and useful errors with ngless, Utilitarian Scientific Software Development
Links of the Week
Who is Elena Ferrante? I read Starnones’s Ties and also felt it shared many themes with the Neapolitan novels (e.g., the women left behind by the sexual revolution, the raw lousiness of men), but assumed these were modern Italian themes.
The most important question of the late 20th century: Why has nuclear power been a flop?
Tweets of the week
Photos
Although, even for typos, tools can use by suggesting the right spelling when there is an obvious alternative.
Obligatory XKCD link: https://xkcd.com/1168/