One of the services that Random Hall has always boasted is the laundry server. While other dorms may outsource their work to check the status of their laundry, the laundry server is entirely run by the laundry chairs and the computer chairs.

As with any software, laundry server has several areas of suckiness (fortunately, you can complain about it to your fellow students and have a chance of getting it fixed, as opposed to complaining about it to a faceless corporation). One such deficiency is the laundry server’s penchant for underestimating the time it will take to finish your laundry. When you see:

It should be done in approximately 0 seconds (ie, now!).

What that really means is that you should wait another five minutes before traipsing down two floors to transfer your laundry to another machine.

Now, why might this be the case? The laundry server keeps a running average of the last 64 runs of a particular machine. Any one particular outlier should eventually be flushed out and stop messing with the average. One guess was that, because you could set the washer machine to wash “Heavy”, “Medium” or “Light”, this time variation meant that there was an upper limit to accuracy you could get on runtime. Another guess was that our photoresistors weren’t properly hooked up, so the laundry server was actually getting bogus state information. Put on your armchair debugging hat: what do you think the problem was?

Here’s a graph of the history data.

I have completely ignored the advice of good graph-making and omitted the x-axis labels and the names for the lines. Each line represents the amount of time until completion that phase needed: red is the “add softener” phase, green the “rinse” and blue the “final spin”.

Bogus data was the culprit! But, ignoring for a moment the obviously bogus datapoint in the “add softener” plot, why is the final spin swiss cheese, while the red and green lines fairly consistent in their times? The current hypothesis is that people are being told that their laundry is done, going down, seeing their laundry is not actually done, but opening the machine anyway (it’s not locked during final spin), and thereby aborting the cycle prematurely. A sort of self-fulfilling prophecy, really.

The solution for this problem is left as an exercise to the reader.