... and back to Teaching

October 2, 2012

I haven’t lectured in any meaningful sense for quite a while; in fact the last time I taught was the 2010/2011 academic year when I was lecturing half of a first year maths module. Since then there have been other things occupying my time, (namely the battle of the thesis) but that’s almost over now, so my attention once again turns to getting some more teaching under my belt.

You get the feeling with some academics that teaching is seen as an annoyance - something that has to be done as part of the job but that is at best a distraction. I hate this attitude - if you can't do something with passion then I feel you shouldn't be doing it. Teaching is an opportunity to get people interested in things, to engage with them and make them think. Some people may argue that it's just not possible to be passionate or engaging with their subject, but I would say that if that's not possible, why are they teaching it?

I actively enjoy teaching, especially so when it’s on a topic I have a particular interest in. Recently Stu was good enough to ask me to give a guest lecture on Django in his first year Python module, and it was very enjoyable. I’ve been lucky enough to be asked to do something similar for Omer’s masters module this year, talking about Foursquare and its API initially, and then also presenting some things on Django a couple of weeks later. These are nice opportunities and allow me to talk at a semi-interested audience about topics that I like, which is always fun. Along with the guest lectures I’ve got planned, I’m also teaching LaTex to postgrad students from across the university as part of the University Graduate College, which will be a nice experience to teach a ‘programming language’ like topic to a bunch of people who probably aren’t computer scientists.

At the moment I’m also involved in scoping out some possible new modules for some courses that may (hopefully) happen here in the next year or so. This is the first time I’ve been able to look at a topic for a module and actually plan in detail what I think is important to teach, or what I would like to teach in such a module. It’s far more involved than I’ve been before, previously all the content and syllabus has been decided beforehand and I’ve had little scope to make many changes, so this is a novel experience. It requires a lot of thought to make sure that everything being planned is relevant, up to date, necessary and interesting.  Hopefully, I’m succeeding.

SocialCom 2012

September 7, 2012

I’ve just returned from SocialCom 2012 and figured it was worth a post to round it all up. This is not that post however; that will take a little longer to write as there were quite a few really interesting and relevant talks to round up. I also had some good discussions about the work we’ve been doing, the work we’re planning to do and some of the work that others are doing.

This post is instead just to gather together some of the stuff I’ve done linked to the conference. I presented the initial results from our Twitter experiment, which was accepted as a short paper “Better the tweeter you know: social signals on Twitter”. The slides of my presentation are below, while the paper is available from the publisher). The code for the experiment is on github here, and the data that came from the experiment will be released as soon as we’ve finished analysis for the journal paper that we’re currently working on.

** Tweetcues - Better the tweeter you know: social signals on Twitter ** from Martin Chorley

Talking about research

July 3, 2012

As someone who spends most of their life elbow deep in research, it’s sometimes hard to take a step back and view what you’re doing from the outside.

I’m pretty happy with my ability to communicate our work to a scientific audience. It’s something I’ve been trained (and have trained myself) to do over the last five or six years and so is something I find quite easy. The thought of having to explain what I do to a conference audience, or to the project partners in a meeting is something that I know I can cope with.

Explaining it to a general audience however is a different prospect. As part of some scheme or other there was a researcher from the BBC visiting the school today to see what we get up to. She stopped by our lab/office for ten minutes and I had to explain what it is we do in general terms. Explaining something like the mobility work that we’ve done is slightly tricky without having to get into details about the whys and hows of opportunistic/ad-hoc networking and mobility models. It’s especially tricky when you haven’t thought about what you’re going to say at all. Fortunately the more recent work we’ve been doing focusing on human decision making with regards to twitter is much easier, as is the personality/foursquare work that’s currently in the final stages of implementation. This work is easy to understand because it’s all about what people do and why they do it - I think a general audience can understand it easily because they have some form of empathy with the experiment participants. But communicating this work still forces you to step outside of the research and look back to see what is interesting not just to you as a researcher in the field, but to the public at large.

I think we’re fortunate in the little corner of computer science in which I work as ultimately the closer you get to humans, the more interesting the work is to a general audience, and so the easier it is to talk about and present.

Summer Projects

June 26, 2012

Both of the summer projects that I’m supervising with Walter Colombo have now started, with two students joining us for 8 weeks over summer to gain some experience of the research environment and work on some (hopefully) interesting projects.

One of our students (James) is investigating the ranking of content on Twitter by pairwise comparison. He’s currently building a website to allow comparison of tweets and hopefully we’ll be able to get enough people to have a go at it that we can gather a large number of ratings of tweets. From there we can investigate different ranking systems and do some analysis to see if we can pull out what makes a tweet “good” or “bad”. The site should go live soon, so watch this space for an announcement.

The other student (Tim) has just started yesterday and is going to be analysing retweet propagation through the Twitter social network. Hopefully this will tie into some work being done by Will (a PhD student in the school). As he’s only just started we have no firm plans yet, but we’ll maybe end up looking at some community detection or some other type of analysis to go along with this.

I’ll try and post regularly on these and keep the project pages updated throughout the summer.

Update

May 15, 2012

So, I’ve been kind of ignoring this blog, haven’t I?

Ah well, never mind. I have a good excuse as I’ve been very busy working on something else, which I’ll explain in a post sometime soon. For now though I’ve made a decision to use this blog more and also to include more regular small updates on work things as well as the other stuff I’ve been doing outside of work.

So, what work stuff have I been doing lately?

Twitter Experiment

We recently launched our twitter based experiment here. Uptake has been very good, the initial results are quite interesting and we’re currently prepping a short paper for SocialCom which I personally think has a pretty good chance of being accepted.  I’ll post about some of the initial findings soon.

Our analysis has revealed a couple more pieces of data that we need to collect, so I’ve got a couple of modifications to make to the site then we can hopefully start spreading the link a bit further to get a few hundred more respondents for a nice journal article.

Foursquare Experiment

The initial plans for this have been scaled back and refined, but this should be online soon. I’ll post more in the next couple of weeks as I finish off development on this and get it ready for deployment.

CUROP Summer Projects

Walter and I were successful in applying for some CUROP funding for a summer project looking at retweet flow in Twitter. We’ve had a lot of interest in the project, so much so that we’ve managed to convince a couple of lovely people to part with some more cash so we can take on another student for an additional summer project, this one based on Twitter ranking. I’ll post about both projects in detail once we’ve made our decision on which students to take on for the summer.

Mobisoc Website

Over the course of about a day Matthew Williams and I recently hacked together a website for the MobiSoc researchers here at CU, which is now live and will hopefully start to flourish as more people get involved. It’s not much at the moment, but it could be good…

As well as those projects there’s been discussions with some friendly scientists from Cambridge about getting our hands on some personality data, the ever present EU deliverables that have needed sorting, and the logistics for the next project partner meeting in Athens in June. It’s been a busy couple of months.

Truckers of Husk + Gallops + Kutosis Review

March 10, 2012

Last Saturday I went along to The Globe in Roath, accompanied by my excellent musical companion Ms. Jones (and joined later on by our token northener Mark) to watch a number of bands that we’d seen before, but in a new setting. This is a review of that what happened there.

Let’s start with the venue, The Globe. The Globe is not the worst venue in Cardiff (Bogiez/Barfly, The SU Great Hall). It’s tucked out of the way in the corner of Roath, so anyone going to a gig there is meant to be there, which is nice. It’s an old cinema and has a lovely balcony, meaning a great view of the bands, and most importantly the sound in the place is not terrible. The only bad thing about the venue this week was that they’d sold out of tolerable ale, which is no great problem. We arrived about twenty minutes after doors were due to open, and unsurprisingly the doors were not open yet. For some reason The Globe exists in a timezone that is about 45 minutes behind the rest of Cardiff, so don’t ever bother getting there on time, it’s just not going to happen. Rubbish timekeeping and crappy beer selection aside, it’s a decent venue in which to watch a band and on this night there were three on offer.

KUTOSIS

I’m fairly sure I’ve seen these guys a number of times before, at least once or twice at the SWN festival, maybe somewhere else as well. They’re a decent band rocking a mid-late 90’s vibe that marks them out as guys that grew up with grunge and late 90’s indie and decided the best thing to do when they started a band was to emulate that. Unfortunately you sometimes feel that they forgot to really add anything to that era, and haven’t quite managed to push things on. Don’t get me wrong, it’s not a totally bad thing - they play well, they put effort into what they do, and their songs have a catchy uptempo feel. I enjoyed watching them, they were having fun and playing well, with some good riffs, tight playing and a good overall feel to the music. There are some interesting things going on with their songs, but it just feels like they need to push things a little bit further out of a safe zone and do something a bit more interesting. That all being said, they’re well worth a watch, especially if you’re like me and you grew up with grunge and late 90’s indie and enjoy that kind of thing.

This is a recent track that seems in parts to show more development, it’s got more going on:

Overall they were enjoyable, played well, and I’ll give them 4 out of some.

Gallops

Again, I’ve seen Gallops a number of times before, mainly at SWN. On paper they’re not my thing, focusing fairly heavily on electronic sounds, but in reality I really love them. They’re an awesome live act and every time I see them they have something new to show. The main driving force behind them is the thundering and perfect drums; their drummer is an absolute animal, arrogant and agressive and with every right to sit behind the drumkit with the knowledge that he’s almost certainly the most talented guy with a set of drumsticks in the room. He almost imbalances the band, as with his drumming there’s not a lot the other band members can do to match his talent, which is probably one of their only weak points. The only other glaring weak point would be the guy with the mac. I’ve said it before and I’ll say it again, a laptop is not an instrument. If your job could be replaced with someone pressing play on a tape deck you’re superfluous, get the fuck off the stage. That aside, this band have grown massively in the two/three years I’ve been watching them, and I’m looking forward to their album in the next couple of months to see where they’re going next.

Once again these guys were great live. They clearly spend a lot of time practising getting it right, and it pays off. I’ll give them six out of some.

Truckers of Husk

Ah, the main event. A band that I first saw at the 2nd SWN Festival, in whatever Y Fuwch Goch was before it was that (and then failed to be that and became the Moon Bar). A band that have swiftly become one of my favourite live acts in Cardiff, a band who I love going to see. Their post-rock math vibes are great, and they are another band (like Gallops) who continue to grow and push stuff forward. Their first album, (released last year) is on permanent rotation in my Spotify playlist, and I still can’t get enough of it. In case you didn’t get it, I love this band.

Today’s gig was exceptional, the band presenting themselves along with the 1924 documentary ‘The Great White Silence’, the fairly harrowing documentary about Scott’s ill fated voyage to the South Pole. Dressed all in white the band played their songs along with the film, fitting the tracks to the projection behind them, timing things beautifully to coincide with the action. I’m fairly certain they’d put the effort in to trim songs here and there to make them fit, cutting some noise here, adding some there and it all paid off. They presented themselves on stage as a band having fun and doing well doing it, but you could tell that they recognised this was (one of?) their biggest gig to date and had put the effort in to make it something special. The songs flew by and by the time the movie drew to a close, with our intrepid arctic explorers dead in the arctic wasteland and the band themselves moving the drumkit down into the crowd for the last flour covered intense burst, we were all thoroughly sated. Plus the saxophonist kept his shirt on.

I give them 8 out of some.

All in all, a thoroughly excellent night of entertainment. Top marks.

100 Movies in the Cinema in 1 Year

March 4, 2012

After reading this blog post at the end of January I decided that watching at least 100 movies in the cinema in a year was the kind of challenge I could get behind. Last year’s challenge to get fit and healthy was fairly successful and seemed like much harder work than going to the cinema a few times could ever be. After all, 100 movies a year is less than 2 a week, so it must be easy, right?

Unfortunately I started this project late, so at the time of reading the article and deciding to go ahead with it I was four weeks into the year and had only seen three films at the cinema. This is not the kind of progress needed for this challenge! So, I got myself a cineworld unlimited card and hit the cinema hard, aiming to get through February and be caught up to where I should be by the end of the month.

Of course, being a massive data geek I have been recording everything, making a note of every movie I have seen this year so far, which means I’m amassing a fairly large amount of data on my movie watching habits, which can mean only one thing. Crappy Excel Graphs! I’ll be posting some throughout the year to mark how the challenge is going, and the first lot are here.

The first shows the number of movies seen in total for each day of the year against the number of movies I would need to see in order to hit the target of 100 by December 31st. As you can see, the late start in January did me no favours, but by the end of February I’ve almost caught up to be where I need to be.

Movies Seen against Target Number

The second crappy excel graph shows the movie viewing rate (the number of movies seen divided by the number of weeks elapsed) against the target rate, along with the actual number of movies watched that week. It’s clear to see that January was a wash out, but that February was excellent and helped to bring the target rate down below 2 movies a week.

Movie viewing rate against target, presented with actual number of films seen in a week

So, that’s where we’re at. It’s March and I’ve seen 16 films at the cinema, at an average cost of £3.18 per movie. I’m well on the way to 100 and I’ll keep you updated with more crappy excel graphs and rubbish averages along the way…

Django + Last.FM Authentication

February 27, 2012

Following a conversation with Jon last week, I’ve been having thoughts about playing around with Last.FM data again, having not looked at that API for a couple of years. We had discussed the possibility of using the Last.FM web services as part of a project at a hackathon that some of the undergraduates are running in a couple of weeks time, and since I’ve moved from primarily developing using Java to mainly using Python since I last did anything with Last.FM I thought it would be useful to develop some basic python examples using the Last.FM API.

Yesterday I made a basic skeleton Django site that uses Last.FM for user authentication and includes a basic API wrapper for making queries. The code is all up on github for those that are interested.

Foursquare Category Icon Downloader (2)

January 31, 2012

UPDATE [01 August 2014]: Even more breaking! More recent version of the script here

Someone commented recently that the script I’d written to download the Foursquare category icons was broken. downloader.py is an update that works as of today (notice the URL param with today’s date) that will fetch all available sizes of all the category icons and store them in folders by size.

matplotlib + mac os x 10.7 (Lion)

January 12, 2012

Today I spent a good long chunk of my day shouting at my computer and trying to install matplotlib, a very handy python library. I finally solved it, so figured it was worth posting about here, in case anyone else has the same problem.

I recently updated my system python to version 2.7, so I’ve had to go through reinstalling various libraries that I use on a semi-regular basis. Matplotlib is one of these that up until now I’ve had no call for. However, my experiment project that I’m working on needs some pretty graphs, so I needed to get matplotlib installed.

I tried to install using pip, I tried to install using easy_install, and I tried to install by downloading the source and compiling it. None of these methods worked and I was often getting compiler errors like this:

llvm-g++-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-g++-4.2': execvp: No such file or directory

Which is very annoying. So I spent some time googling, and it seemed that the reason for these errors is that the compiler was trying to build a universal version of some library - a version that would work on both 32 and 64 bit intel macs and older powerpc based macs. However, Apple have now removed all traces of powerpc support from osX and Xcode, so the compiler was failing. There is a way to add ppc support back to Lion, but either I was doing it wrong or those instructions are slightly out of date, because it didn’t solve my problem.  Now, depending on how I’d tried to fix the problem, it would fail with a lot of errors in compiling “ft2font.cpp”. Other times it would be accompanied with “i686-apple-darwin10-gcc-4.0.1: Internal error”. After uninstalling and reinstalling Xcode for the third time I realised I was going about this all wrong. I was trying to fix the problem, rather than look for why the problem was occuring. Why would my laptop try and build a universal library with powerpc support if it knew it couldn’t compile or run ppc software?

The answer lay with my version of python. Running

<code>file $(which python)</code>

revealed that my version of python was also universal:

<code>
/usr/local/bin/python: Mach-O universal binary with 3 architectures
/usr/local/bin/python (for architecture i386): Mach-O executable i386
/usr/local/bin/python (for architecture ppc): Mach-O executable ppc
/usr/local/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64</code>

with support for ppc, i386 and x86_64 architectures. Because of this the compiler was trying to compile all the supporting libraries as universal as well.

I replaced python with the latest version (2.7.2), using the installer built only for i386/x86_64, and the problem was solved. Matplotlib built from source fine, and I’m pretty sure (though I didn’t test it) that I could have installed using pip or easy_install too.

A few hours spent swearing at the computer and an important lesson learned. Worth it.