Not a work/life balance
People sometimes ask me about my work/life balance. It was then I realised I don't have one. Maybe it's because as a society we've reached a certain level of affluence, but there are ideas in the wind about the reducing importance of economic measures in our perception of countries' successes, and instead emphasising "softer" factors like well-being and happiness. This includes supportive comments from leading economists, as well as a royal decree. This is a major change for a lot of reasons, and not one that's universally recognised: my Chinese postdoc, for example, finds the whole notion of voluntarily restricting your own work and success completely incomprehensible. I think it's a defensible position, as long as it doesn't translate into offloading unpleasant tasks onto an underclass and/or increasing the existing wealth and status imbalances. But it raises some questions about how we evaluate and measure people's happiness to see whether we're succeeding in whatever measures we decide to deploy. This is neither an uncommon nor a non-trivial problem. It's common because, like many things we want to sense, we can't measure happiness directly and so have to fall back on proxies that we can measure, such as self-reporting against a standardised scale, rates of depression and the like. We then need to show that these proxies do indeed correlate with happiness in some way, which is tricky in the absence of direct measurement. An alternative approach is to avoid measurement and instead find a set of policies or ideas that should in and of themselves increase happiness. An example I've heard a lot of recently is work/life balance: the need to spend time away from work doing other things. Perhaps surprisingly, this idea is pushed by a lot of employers. My university, for example, runs a staff training course on striking an appropriate work/life balance. Maybe they feel they'll get better results from knowledge workers if they're appropriately rested; maybe it's setting up a defence against possible future claims over undue workplace stress. (I actually think it's the former, at least in St Andrews' case, but the cynic in me can easily believe the latter of others.) Thinking about this made me wonder whether I actually have a work/life balance. I've decided that I don't, and that, for me at least, the work/life split is a false dichotomy. That's not to say that I do nothing but work, or that I don't have a life, but rather that I don't divide my life into those categories. For example, I often answer email and read journals at night and at weekends. I also spend a lot of "off" time programming, writing about and thinking about computer science. It's certainly something that drives and compels me, to think about better ways to understand it, teach it, and develop new ways of doing it. You could say that, since I'm a computer science academic, this is all "work". I also spend a lot of time taking photographs and thinking about photography. And a lot of that actually involves thinking about computing, since a lot of my photography is now digital. Being who I am, I also think about how to automate various photography tasks, and about different kinds of software and mathematics that could be applied to photography. Is that "work" too? There are many things I do for the university that are a pleasure. Some are such a pleasure that I'd do them anyway, such as research and (mainly) teaching; some I perhaps wouldn't do unless it was part of the job, because I don't enjoy the enough to seek them out, but do enjoy sufficiently that they're not a trial: institutional strategy development, directing research and the like. On the other hand there are several things I do for the university that I really wouldn't do for choice, mainly revolving around marking and assessment: they're vital, and it's vital that they're done well, but they can't remotely be described as enjoyable. So I suspect there's a category error lurking here. It's not so much that there's "work" and "life" sitting in separate categories. Rather, there's stuff I have to do and stuff I want to do. For many people -- most, maybe -- these latter categories conflate respectively with "work" and "life", and give rise to a desire for work/life balance: avoiding doing too much stuff that you only do because you have to, to pay the bills. But if you're fortunate enough to have a job that you love, then "work" and "life" don't represent the way you divide-up your life.
I don't think of work as work and play as play. It's all living. Richard BransonAnd this, I suspect, is a confusion that lies at the heart of the happiness debate. "Work" and "life" aren't actually the categories we want to measure: they're simply proxies acting as measurable analogues for happiness, and like any proxy they're good for some and lousy for others. A better metric might be the "want-to/have-to" balance: the ratio of time spent on things you do because you want to do them versus time spent on things that you do because you have to or feel you should. It has the advantage of being directly measurable, broadly applicable to those who love and those who hate their jobs, and more easily believable to be a proxy for happiness. I have no idea what sort of value one would target as a "good" ratio, but at least it's a more scientific place to start from.
The shifting balance of university power
Call for participation: summer school in cloud computing
St Andrews is hosting a summer school in the theory and practice of cloud computing. St Andrews Summer School in Cloud Computing The Large-Scale Complex IT Systems Programme (www.lscits.org) and the Scottish Informatics and Computer Science Alliance (www.sicsa.ac.uk) are organising a summer school in June 2011 on Cloud Computing. This is aimed at PhD students who are interested in using the cloud to support their work (not just cloud computing researchers). The summer school will include presentations by eminent invited speakers, practical work on cloud development and networking opportunities. Registration cost is £500,which includes all meals and accommodation. Funding is available from LSCITS to cover this cost for EPSRC-supported PhD students. Funding is available from SICSA for PhD students working in Scotland For more information, see our web site: http://sites.google.com/site/cloudcomputingsummerschool2011/
Some data is just too valuable
Adventures at either end of the performance spectrum
Over the past week I've been playing with some very small machines intended as sensor network nodes. Paradoxically this has involved deploying a ridiculous amount of computing power. Most of my work on sensor networks is at the level of data and sensors, not hardware. I was feeling the need to get my hands dirty, so I bought an Arduino, an open-source prototyping platform that's actually somewhat less capable than many of the nodes we work with. They're basically a hobbyist platform and are often looked down upon by professionals as being toys. I think these criticisms are unfair. Firstly, Arduinos massively simplify software development by abstracting-away from a lot of the complexities that simply aren't needed in many applications. Secondly, unlike a lot of sensor network hardware, they're mainstream and will benefit from competition, economies of scale and the like in a way that more specialised kit probably never will. Thirdly, as the centres of an ecosystem of other boards they can focus on doing one function -- co-ordination -- and let the daughter boards focus on their their own functions, rather than tying everything together. In some ways this makes hardware more like software, and more amenable to software-like rapid development cycles. It means that each component can move up its own learning curve independently of the others, and not hold everything back to the speed of the slowest (and often hardest-to-improve) component. That has been the unfortunate outcome several times in the past: I'm reminded strongly of the demise of the Transputer, that lost its early lead by trying to be too integrated. (That's an interesting story for another time.) One good example of Arduino re-use is that it can interface to Zigbee radios, specifically to Digi's range of XBee modules. Zigbee is the latest-and-greatest short-range wireless protocol, and Arduino kit can interface directly to it rather than relying on an integrated radio sub-system. They mesh together and do all sorts of other fun stuff that's great for sensor systems, and I'm looking forward to understanding them better, However getting XBee radios to work often involves re-flashing their firmware to make sure they take on the appropriate role in the mesh network. The tool that Digi provide to do this (unhelpfully called X-CTU) only runs on Windows. As might not be a complete surprise, I don't have any Windows machines. I doubt I'm unusual in this: if you're the sort of person who's likely to play around with hobbyist hardware, there's a reasonable chance that you run Linux and/or Mac OS X as your main or only operating systems. So building kit for the hobby hardware market that relies on Windows-only tools is short-sighted. And unnecessary: there are plenty of cross-platform user interface tools available for C, or they could just write it in Java. By a strange quirk I also don't have an Intel-based Linux machine at the moment, so I was left in something of a quandary as to how to run the necessary firmware tools. Solving it takes us to the other end of the performance spectrum. The solution was to run X-CTU under the Wine emulator for Linux, with the Linux in question being a Debian installation running virtualised under VirtualBox on my Macbook Air. To put it another way, I created a virtual stand-alone PC on my Mac, within which I installed Linux, which therefore thought it was running on its own separate machine, within which I installed a Windows emulation layer and ran X-CTU -- all to change the firmware on a radio with significantly less computational power than a central heating thermostat. It's things like this that make one realise how ludicrously, insanely overpowered modern computers are. The Mac can run three-layer emulations like this without any problem at all, and can still do a load of other stuff simultaneously. And it's a laptop, and not one noted for being massively powerful by modern standards. It seems rather perverse to need to deploy this kind of power to work with such tiny machines. I think there are several lessons. Computing power really is really, really cheap -- so cheap that it's not worth worrying about it, and we haven't come close to hitting a plateau in practical terms yet. But this just highlights that programming sensor networks requires a completely different discipline and skill-set, which may not be common in programmers of more recent vintage. If this gap is going to remain -- and I think it is -- it's something we need to consider in the ways we teach computer science.