Atom Plugins for Web Development

I’ve had a number of students in my web-dev module asking me what plugins I’m using in my text editor, so I thought I’d dash off a quick blog post on the plugins I find useful day-to-day. (Actually, most people are normally asking me ‘how did you do that thing where you typed one word and suddenly you had a whole HTML page? The answer is I used a plugin, so ‘what plugins do you use?’ is really the question they should be asking…)

I’m using Atom as my text editor. It’s free, open source, and generally reliable. If you’re a student on my web-dev course you’re stuck using Sublime Text in the lab for now. I’m pretty sure most of the Atom plugins I use have either direct Sublime equivalents, or similarly functioning alternatives.

There’s a guide to Atom packages here and one for Sublime Text here

A quick google for ‘best atom packages web developer’ will probably get you to a far more comprehensive list than this, but here’s my current pick of useful plugins anyway:


This is essential for anyone writing any amount of HTML. This is the magic package that allows me to write ‘html:5’ in a blank document, hit the shortcut keys (CTRL + E in my setup), and suddenly have a simple boilerplate HTML page.

emmet auto-completion
emmet auto-completion

It’s ace. Not only that, but it can write loads of HTML for you, and all you have to do is write a CSS selector for that HTML:

HTML CSS selector expansion

Great stuff. The documentation is here.


This will tidy up your code automatically, fixing the indentation and spacing etc. It can even be set to automatically tidy your code every time you save a file. Awesome huh? Imagine being set a coursework where some of the marks were dependent on not writing code that looks like it was written by a five-year old child who’s addicted to hitting the tab key, then finding out that there’s software to strap that five-year olds thumbs to his hands so he can’t hit that tab key. Awesome.

Atom Beautify tidies your code


This one adds a colour picker right into atom. Just CMD-SHIFT-C and choose your colours!

Colour Picker in atom

Another useful colour related plugin you may want to look at is Pigments, which can highlight colours in your projects, and gather them all together so you can see your palette.


My last recommendation is linter. This plugin will automatically check your code for errors. You’ll need to install linters for whatever language you want to check, like linter-tidy, linter-csslint, linter-pylint and linter-jshint.

Linter finds errors in your code


So there we go – a few recommendations to get you started. Found anything else interesting? Let me know!

Welcome to 2014

So. 2013. That was an alright year. Finished the Recognition project, finally graduated, got a 12 month fellowship, started some interesting projects, and pushed on with the new MSc with JOMEC. Professionally, not too bad at all. Personally the year wasn’t bad either, what with getting engaged and finally getting the house on the market.

But now it’s a new year, so it’s time to push things on further. My plans so far for this year seem to be ‘smash it’. There’s papers to be published, data to be analysed and project proposals to write (and get funded!). Getting a permanent job would be quite nice, while I’m at it. Here’s to 2014 being even more successful than last year.

CSAR Workshop

This week, as part of the “Third International Conference on Social Computing and its Applications” we held a workshop “Collective Social Awareness and Relevance (CSAR)“. Organising the workshop (along with Walter Colombo) over the last couple of months has been an interesting process – this is the first time I’ve had the chance to get involved in “real” workshop organisation, so this is the first time I’ve seen the process up close. It’s a very involved process: from deciding upon and inviting Program Committee members, publicising the workshop, soliciting submissions, and navigating through the review process and getting a set of accepted papers it’s been a fair challenge. Really it wouldn’t have been possible without Walter doing such a good job of pushing the PC members to get their reviews done, he really drove that whole process, so I could sit back a bit there.

We ended up with 3 good papers accepted, which were presented in a session yesterday morning. The talks were informative and useful, and generated a good number of questions and discussion, which is really all you can hope for. It was also my first time chairing a session at a conference, which was fairly daunting, but turned out to be fairly easy and interesting. It was nice to be the one asking the difficult questions at the end of the presentation, rather than being on the receiving end.

Overall the workshop went very well. I wasn’t sure beforehand whether we’d try and run it again, but actually now I think it would be a shame not to. I’ll keep my eyes out for a conference that we can latch onto sometime next year.

EPSRC Doctoral Award Fellowship

I’m really very pleased to be able to say that I have been awarded a 2013 EPSRC doctoral award fellowship. This means I’ve been given an opportunity to spend 12 months from October this year working independently on a research project of my own choosing. I’ll be looking at the connection between places and personality, analysing the large dataset collected through the Foursquare Personality app to try and build towards a recommendation system for places that uses personality as one of its key input signals.

I think this is a really interesting research project, and I’m hoping for some good results. The basic question I’m asking is: if we know where someone has been (i.e. from their Foursquare history) then can we predict what their personality is? If we can do that, then maybe we can do the reverse, and from someone’s personality, infer where they might like to go. This could lead to a shift in the way that place recommendation systems are built, utilising not just the knowledge of where someone has been, but also why someone has been there.

This is a great opportunity –  while it has been really good to work on the last two EU projects I’ve been involved in, the overheads (especially the deliverables) have sometimes been a distraction and have sometimes gotten in the way of the research. With this project I’ll be able to plough on with the research without having to worry about those kinds of administrative overheads. It’s also a great stepping stone on my academic career path, and should give me the opportunity to generate some high quality outputs that will help with moving on to the next stage.

Summer Project update

We are storming along with summer projects now, and starting to see some really good results.

Liam Turner (who is starting a PhD in the school in October) has been working hard to create a mobile version of the 4SQPersonality app. His work is coming along really well, with a great mobile HTML version now up and running, a native android wrapper working, and an iOS wrapper on its way. With any luck we’ll have mobile apps for both major platforms ready to be released before the summer is over.

Max Chandler, who is now a second year undergraduate, has done some great work looking at the Foursquare venues within various cities around the UK, analysing them for similarity and spatial distribution. He’s just over halfway through the project now and is beginning to work on visualising the data he’s collected and analysed. He’s creating some interesting interactive visualisations using D3, so as soon as he’s done I’ll link to the website here.

It’s been a really good summer for student projects so far, with some really pleasing results. I’ll post more description of the projects and share some of the results as they come to a close in the coming weeks.

Social Media Lecture Experiment

I’ve very recently had the opportunity to be involved in a different kind of lecture here at the School of Computer Science and Informatics. For his final year project one of our third year students (Samuel Boyes) is assessing the use of modern technology, social networking and video conferencing as part of the traditional lecture. As I had already been asked a few weeks ago to give a guest lecture in Matt Williams‘ module Fundamentals of Computing with Java, on the topic of code maintainability/readability, we were presented with a nice opportunity to test out Sam’s theories in an actual lecture.

So, rather than giving a dull, fifty-minutes-of-me-waffling-on-about-things-at-the-front-of-a-lecture-theatre lecture, we changed things around. Instead, I spoke for twenty minutes on the general theory aspects of the topic, and following that we were joined in the lecture by an external speaker, Carey Hiles of Box UK, who joined via a Google+ Hangout to deliver some material about his experiences of the topic in the real world. The students were encouraged to get involved during the lecture, tweeting with a particular hashtag and leaving messages in a dedicated facebook group. We could then wrap the session up by going over the questions posted by the students, putting them to Carey through the video conferencing.

This was very interesting, as it allowed us to include the experiences and knowledge of someone out in the real world within the lecture, adding some extra value to the course and introducing students to ideas that are used in practice. It’s the kind of thing that we should be doing more of, and that I’d love to include in more lectures in the future. There are people out there with relevant real world experience and a desire to talk to students and improve the quality of education. Given the availability of tools that allow people to get involved in lectures remotely, it seems like a no-brainer that this kind of thing could and should happen more often.

It’s also directly relevant as there seems to be a strong desire to increase the added value of attending lectures and to improve the quality of teaching. The Higher Education sector in the UK is undergoing something of a transformation at the moment. Massive unjustified increases in tuition fees have fundamentally altered the relationship between universities and students, increasing the feeling that students are customers of the the institution. As such, students are now (rightly) demanding much better customer service and value for money from their institution (caution: PDF link!). (We’ll leave aside for now how the the universities are having to increase the value for money and customer service without actually having any more money, as that’s another argument.)

Seen in a global context, this customer-institution relationship becomes even more important. Massive online open course (MOOC) providers such as Coursera, EdX, Udacity and the UK based FutureLearn (in which my employer, Cardiff University, is involved) are providing large numbers of people with free educational material and courses. It’s still not clear how universities will end up continuing to make money from teaching while also giving away all their material for free. Some MOOC providers will charge other institutions licensing fees to use materials, while it seems fairly plausible that instead of charging to access material, universities will instead start to charge for providing credentials and certification once the courses have been completed.

If that really is a large part of the future of higher education, will the traditional lecture continue to exist? Will universities need lecture theatres full of hundreds of students, when they can put their material online and deliver teaching to thousands of students without the physical presence? Will the traditional university institution continue to exist? It’s entirely possible that many institutions could stop teaching and focus purely on research. It’s more than possible that some institutions will close entirely in the face of competition of ‘free’ teaching from higher ranked institutions. Is consolidation of teaching delivery between fewer larger institutions a good thing?

Until we discover the answers to these questions over the next few years (decades?), there’s still a need to ensure that students feel they are getting value for money. We need to ensure that the institution continues to provide a reason for students to pay to attend lectures where material is delivered that could instead be had online for free. Value added is more important than ever and maybe sessions like the one we had last week could play a part in that.

Foursquare Personality Experiment

Today we are finally starting to promote our latest experiment. It’s been online for about a month, but we haven’t told anyone about it while we’ve been finishing up the Year 2 deliverables for Recognition (the review is in a couple of weeks – fingers crossed!) Now however I can start publicly talking about it and encouraging people to take part and get involved!

We’re calling it the Foursquare Personality Experiment, and it’s available on the School of Computer Science & Informatics‘ website here:

It’s basically looking at comparing people’s five-factor OCEAN personality profiles to the places that they check in to on Foursquare. So, you go along to the site, sign in with your Foursquare account and take a really short 44-question personality test. While you’re doing that, we retrieve the list of places you’ve been to from Foursquare. When it’s all done, we show you your personality, and how it compares to the average personality of people in your area (average personality comes from the data, thanks guys!). All the venues you’ve checked into on Foursquare are simultaneously displayed on a map, and selecting one of them will show you the average personality profile for that venue. This allows you to compare yourself to all the other people who go to the same places as you

Meanwhile, we get a bunch of (anonymised) personality profiles that are linked to venues, so we can see if there are any correlations between places/categories of places and personality profiles. For instance, one of the things we may find is that the average personality profiles of “non-places” (those places frequented by everybody: the supermarket, the train station etc.) are different from the average personality profiles of “places” (the places visited by a subset of people: independent coffee shops, your local pub etc). We may also expect people with different visiting patterns to have different personalities. For instance, maybe I mainly check-in to pubs and bars on Foursquare, while someone else mainly checks in to shops. Is there a difference between the personality profiles of people who check into more pubs and people who mainly check in to shops?

Obviously we’ve only just started collecting data, but hopefully we’ll start to see some answers to some of these questions soon.