Wednesday, November 28, 2012

$1,000,000,000 and 1 bit

I blogged a while back about the videos that our first year students have made, when we'd asked them to illustrate a measure with appropriate "killer" examples from computing. The two that scored highest in the eyes of the students were these.

First we have $1,000,000,000 ... by Daniela, John, Arben, Alan and Rhys.

Next we have 1 bit ... by Loren, Conor, Jack and Andy.

I hope that you enjoy them as much as we did ...

Tuesday, November 20, 2012

Unanticipated impact …

The latest incarnation of research evaluation in the UK, REF 2014, has taken the radical step of assessing the impact of research, roughly interpreted as "the effects that the work has had beyond academia" (that's my paraphrase, you can get chapter and verse at the REF website). I call it radical because it's untried - apart from a pilot -  and counts for 20% of the overall assessment, which you could identify with 20% of the money that's begin allocated on the basis of the results of the REF.

Whatever misgivings I might have about the mechanism, it's interesting to try and find out what effect your own work has had, and so we've been looking at what impact Wrangler has had since the project to build this refactoring tool for Erlang began in 2005.

The development of Wrangler was first funded by EPSRC, and then the EU's Seventh Framework Programme (FP7) in the ProTest and Release projects. This kind of European project encourages industrial / academic crossover and so one level of impact comes from Wrangler being used in industrial collaborators in these projects, including Ericsson, Quviq and LambdaStream. Moreover, some of them continue to use and develop the system after the end of the project.

What's fascinating is to see the effect of making the project open source and putting it on github, a community collaboration site. This means that anyone can contribute to the project, rather than it being restricted to the project team. Github provides a great set of tools for visualising what's happening on your project, and for Wrangler the best seem to be the Network Graph, showing all the branches, commits and merges:


and the impact analysis, showing the impact of what individuals have contributed:






which together show us that we've had a collection of contributors, some of whom we know - for example adapting the tool to work with other tools - and others who have pitched in to help to add what they needed - e.g. updating the system to support a parallel make. So, opening up the system in this case seems pretty clearly to have added to its overall impact, and take up, and so we've got some evidence to provide as a part of the REF submission …

[One thing that it seems harder to find out in github is the number of downloads, but it looks like the github API provides an answer … more on that anon.]

Thursday, November 15, 2012

"Professionalism" and "professionalism"


One of the things we worry about in university Computer Science departments is how to encourage our students to have a professional attitude to what they do. At Kent we're lucky in having some 70% of our students follow a one year sandwich placement between their second and final years, as well as offering them a chance to work as a consultant in the Kent IT Clinic in their final year. However, we'd like to start inculcating a professional attitude right from the start, and we're trying that this year in our "People and Computing" module which covers estimation, communication, group working and argumentation as well as more traditional topics. That's where the videos I was talking about in an earlier post came from too.

At the same time, I sit on the BCS Professionalism Board, which has oversight of the formal professional framework that the BCS supports, not only as a member organisation of the Engineering Council UK, but also in its own right with CITP (Chartered IT Professional) status. The BCS is looking at how it can engage young professionals, including recent graduates of degrees accredited by the organisation, as well as students at university. The aim here is to encourage these young people to become chartered members of the organisation, through CITP, CEng or CSci.

So, we have two agendas, which I'll characterise as "professionalism with a small 'p'" and "Professionalism with a capital 'P'". On the face of it the two look as though they're very different; the challenge is to make them work together. The "small p" challenge is to engage the intellect and interest of the students … something that Anthony Finkelstein has made a case for very clearly already … and this is something that academics should be able to do. But there's more that can be done here, and that's to put students in touch with people at other places in the pipeline.

My experience is that BCS branch members are happy to work with others interested in computing. A specific example from the Kent Branch is that branch members have been involved with mentoring school groups in a heat of the FIRST Lego League run at the University of Kent, as well as acting as judges. Surely we can build on this willingness to get involved to build links between local branch members and students by, for example, mentoring student project groups, or other activities.

What about the young professionals? I suspect that a similar approach would be the right thing here too. The BCS has strong … and very fruitful … links with corporate bodies, but not with SMEs. Paradoxically, the corporate sector is one where companies themselves are best able to support their young employees, whereas the SME sector cannot. So, is there an untapped opportunity in the BCS supporting young professionals in the SME sector, through mentoring, training and so on. In my experience, the managers of startups and other SMEs would be very appreciative of this … they don't have the resources to do it themselves, but by the same token have staff who would most benefit from this input.

To try to pull the arguments together, maybe a key approach is to encourage mentoring by young people of young people. For the mentors it develops a professional skill, for the mentees, it helped their development. And, with this in place, the professionals "with a small p" can be encouraged to become "Professionals with a capital P".


Wednesday, November 14, 2012

Animating Multicore Erlang

As a part of the RELEASE project we've been looking at how to visualise Erlang computations on multicore systems. We've started by extending the Percept tool to Percept2, and you can see a presentation about that, from the Erlang Factory Lite in London here.

We're beginning to look at how we can present real-time results, and as a half-way house we've been experimenting with animating computations. We've made a video that animates run-queue lengths and process migrations for a computation on a 24 core machine (well 12 cores with hyper-threading, in fact). Any comments or suggestions that you have would be very welcome.

Monday, November 12, 2012

Making Videos

In our first year course on “People and Computers”, Sally Fincher and I asked our students to make a set of videos that illustrate the range of units in computer science, including measures of charge, data, distance, frequency, money, power and time, ranging from the tiny (for example 1 nanosecond) to the huge (e.g. 1 exabyte). The idea of this was to build a body of reference points to give students “scaffolding” for the work that they will do in the rest of the course, but we also wanted to encourage their creativity in communicating ideas this way (as well as in more traditional ways like essays). The videos were "low fi", recorded on smartphones or equivalent: we weren't looking for HD quality, but rather inventiveness and style.

Well, we've got the results now, and we were really pleased with them. What struck me was how varied the videos are (we have about thirty of them, produced by groups of three or four), but each has something interesting to say. What approaches did people use? One strategy was to approach the subject historically, giving the history of the inventor of an idea as well as the idea itself, and one ingenious group had one member impersonating the inventor! Taking a historical view allows comparisons with the (recent, or not so recent) past, and that underlines just how quickly computing evolves.

Another line was in comparisons, or analogies. Some were arresting … measuring data by the number of BluRay disks that would be needed to hold it, and the equivalent weight in baby elephants … the weight of iPad that could be bought for 1p … how many hamsters running in wheels it would take to power Google … . Other presentations brought up unfamiliar computing facts: the power consumption of a sleeping laptop … the rate of spread of the I♡U virus … MB versus “advertising” MB.

We saw some nice animations: using walking, running and skateboarding - or running different distances - to illustrate different rates of data transmission, as well as an animation of Wireshark. A number of groups used (sped up) drawing by hand to get ideas across. Some groups introduced themselves, while others remained behind camera commentating, or even using speech synthesis … quite a few had cheesy soundtrack music.

What were some of the memorable images and ideas? Personally I'll remember the “if a pea is one bit, then the peas in a pod are a byte”, you can get 170 Mb of data storage for 1p, and a description of how much data is in the video we're watching (script and image). We'll find out the most popular among the students this time next week, and I hope to post them on YouTube after that.

Thursday, November 8, 2012

Going to a conference …

You never know who you're going to meet when you go to a conference. My colleague Peter Rodgers works on information display using Euler diagrams - intelligent Venn diagrams, if you like - and conferences often remind me of this. Contacts and colleagues inhabit overlapping circles (or ellipses?), and today was no exception. I talked to people at the Erlang Factory in London whose overlap is

  • Haskell: enthusiasts who have also come to an Erlang meeting;
  • Student placements: from a company who used to take placement students from Kent;
  • Research: can we do some work together? can they provide a case study?
  • Intern: Purdue engineering student visiting the UK as an intern;
  • Colleagues: Roberto Aloi, who worked on the E-learning KTP and now is working on the RELEASE project, and Francesco, co-author …
  • Friends: I've been around the functional programming community for a while
While we can maintain existing relationships online, there's nothing yet to replace meeting someone face to face, though it may well happen, through global warming if nothing else.

At the Erlang Factory …

RELEASE logo
It's always enjoyable going to a conference to talk about the research work that you're doing. I'm at the Erlang Factory Lite in London today, which is taking place at the Google campus in central London. The Erlang Factories are interesting because they are primarily focussed on practitioners, and have managed to build a very supportive community around putting the Erlang language to work in a variety of projects. I'm just listening to a talk by Cyan Technologies on using Erlang within an RF smart metering system deployed in India, and hearing about how Erlang is used. Finishing off now talking about how Cyan technology will support the burgeoning area of M2M (machine to machine) … and they are recruiting!

As far as the my talk went, I was talking about the Percept2 tool that's being built by Huiqing Li and me to profile Erlang systems, particularly those being deployed on multicore. This work is part of the RELEASE project, funded by the European Commission. In RELEASE we're in the process of developing Erlang to be used in a scalable way in distributed heterogenous multicore systems.

This is the first time I've talked about this, and we got a set of very good questions from the audience:

  • how scalable is what you do?
  • can you attach / detach Percept2 to/from a running system?
  • how is migration between schedulers related to the degree of parallelism within a system? …cool research question!
So, we've got good ideas for what to do next, plus a research challenge. That's the great thing about research … in the end it's a collaborative thing. Hopefully, too, we've also made some links with people who want to try our stuff out "in anger".

Now time to listen to Ian Barber from Google on linking Google APIs and Erlang …