Retail Therapy

September 14th, 2008 Uncategorized3 Comments

I’ve been quite depressed and restless lately. I’m not really sure what the problem is although there are plenty of good candidates. Anyway, for over a week I’ve had an overwhelming desire to plonk down a wad of cash on some extravagant piece of electronics: an XBox360, 20″ monitor, headphones for the gym, Apple ipod mini, Tamron 17-50 lens, Sony A700, Sony CZ 16-80, whatever. The thing is that if I did buy any of those things (and yeah, I want and can probably justify them), I’d be even more miserable because of spending our limited money irresponsibly. I guess this reflects fairly badly on society’s consumerism culture and my place in it.

Buying things to make me happy is the quick fix and isn’t really going to solve my problems so I’ve resolved to only buy any of these items when I can do so without guilt or regret.

Stuck in the OpenID wilderness

September 8th, 2008 UncategorizedNo Comments

I’ve been stuck in a rut with ShutterScouts recently. I started out creating a basic template, moved onto the domain model and coded the basic user authentication system. So far, so good, so easy(ish). But then I really wanted to support OpenID — I’d done it for one of my other sites so I figured it wouldn’t be too difficult.

Since Smugmug and Flickr provide OpenIDs, most potential users (i.e., photographers) were likely to already have one so it’d be easy for them to participate in ShutterScouts (and an ID Selector makes it really easy to use). The difference this time is that I a) needed to support multiple OpenID providers (previously I just tested with the excellent MyOpenID) and b) not all providers support the same features.

Smugmug, like many providers, doesn’t support the optional attribute exchange so you still have to ask the user for their name, email address etc. That’s just a pain in the neck because you can get these attributes from some providers and not others. So sometimes you’re left with a full user profile object and others it’s invalid (i.e., missing email address etc). On top of this, the Yahoo support for OpenID is the most complicated series of steps that I’ve ever tried. Now, I’m no Yahoo fan and I’m still confused by their range of mailing list settings, but I’m not the only one that has found it too complicated.

So, in the end I’ve dropped OpenID support from the first iteration of ShutterScouts. I probably should have done it sooner too as OpenID issues have been complicating my code, making the site hard to test and generally stressing me out. It’s also still too complicated for general users to figure out.

Contrary

September 7th, 2008 PersonalNo Comments

I prefer not to get my philosophical advice from popular culture but this quote struck me as fairly apt:

Never tell a Ranger there’s something he can’t do - it’ll only make him do it bigger, better and with an ongoing sense of interest” — The Unit

At the moment I’m fairly intent on doing anything someone says not to, and especially anything that I can’t physically do. I can’t sleep because I’m thinking that I need to be climbing mountains to take photographs (which of course I can’t because my left foot is giving me too much pain so I couldn’t even drive to the mountain).  Suddenly, writing telecoms management software doesn’t add enough meaning to my life.  Now I need to accomplish everything that my injuries are preventing me from doing.  You never know what you had until you lose it, eh?

Installing Rails Plugins with Git on Windows

August 27th, 2008 Ruby on RailsNo Comments

Ok, so everyone is the rails world seems to have moved over to Git for their version control (which is fine if you’re into the sort of thing). The downside of this is that Windows developers are left without much help when they want to install all those fabulous plugins hosted on GitHub (since most Git users are on Linux and most Rails hackers are on Macs). Well, here’s the trick I just learnt:

Go read this introduction to Git on Windows and install the command-line package of msysgit. Now, if you’ve got Rails 2.1 or later you should be able to do

ruby script\plugin install git://github.com/thoughtbot/shoulda.git

but it will fail with various errors, probably including “Plugin Not Found”. Instead, try:

ruby script\plugin install http://github.com/thoughtbot/shoulda.git/

It’s annoying but it works. Of course, you could just use git to clone the plugin into the directory but then you have to actually install it and I found it just got messy.

Google’s Demise

August 8th, 2008 rant3 Comments

No it hasn’t happened yet, and it might not soon, but I think the founding basis for Google’s search technology is becoming less relevant.

In the good ol’ days, you could just do a simple search for the page with the best keywords. Then people got wise and we had pages full of irrelevant keywords just to attract viewers. Google’s revolutionary PageRank algorithm uses the links made to a website to provide a metric for how interesting/authoritative that site is. It’s based on the idea that getting someone to link to your site was hard and therefore those links were valuable. However, these days it’s very easy to create fake blogs, leave comments on other blogs, post in forums or tweet about your sites which all provides the valuable links Google is looking for. To combat this loophole, Google suggested (and web developers implemented) the nofollow link so now any link marked as rel=”nofollow” is ignored by Google.

Here’s the weakness: Links have stopped becoming a good indicator of popularity/relevance because they are no longer rare or hard to obtain. They’ve lost their meaning. Also, most of our links are now being published (and followed) on social media sites (digg/reddit, comments, forums, social networks, etc) but are being ignored by Google due to the nofollow attribute. Google is only using a small part of the web to provide their rankings.

Yeah, I know. This is all random, untested, unverified, unproven thoughts coming hot off my brain. So I’m probably wrong. And Google is far from dumb/ignorant about this and is highly unlikely to rely soley on PageRank. But I still think there’s a 1990’s-Google-like revolution in search technology waiting to happen using something other than links

boards.ie opens up archive data

July 31st, 2008 UncategorizedNo Comments

boards.ie is opening up their archive of 10 years of discussions as part of an SFI-funded competition. boards.ie has an enormous breadth of discussion and whilst much of it is inane, it’s also a great resource for Irish-specific subjects or even just local product reviews.

So what might I do if days were longer, work was shorter and my mind sharper? I’d look at how things have changed over the decade:

  • What were the most popular subjects? Extract keywords for each year and compare (there’s surely a good visualisation here to show how our subjects/interests have changed over the last 10 years)
  • How did user engagement change? i.e., are there more lurkers today than 10 years ago? Did people have longer or shorter discussions? Are the length of posts different?
  • Has language itself changed? Particularly the use of slang/swear words.
  • Analyse the external links. Of the links posted, what % are still alive and not returning a 404? Have the main sources of information changed? Was everyone linking to ireland.com before they got all subscription on us? Did the Independent take over? And has that changed since the Irish Times gave up on subscriptions (ok, this is only very recently)?

Oh, if only I had a couple of undergrads and some interns!

Random Thoughts

July 27th, 2008 UncategorizedNo Comments

Random thoughts that deserve more than a Twitter, and that I need to get off my chest (to no one in partcular, just blogging catharsis):

  • When people ask me how I am, I say “I’m fine“. When they ask me if I’m in pain, I say “No“. But the truth is that I haven’t had a pain free day since the accident. Each day the foot, thigh, knee, hip or arm hurts, sometime all together — ranging from a dull ache or stiffness to sharp stabbing pains that make me wince. I’ve kinda forgotten about them and to the average person I look no different than I was at Christmas. If I’m complaining about the pain then it means it’s pretty bad. I don’t take painkillers though. Partly because if I did start, I’d be on them 24×7 and that’s not a road I want to take. Partly it’s because the pain makes me angry. And I want to be angry.
    The pain reminds me that I need to get better, be better, that life is short and I need to do more with it. It drives me.
  • In September, myself and Hilary will have been together 9 years. That seems like a lifetime. In 9 more year my daughter will be 9. Another 9 year later and she’ll be 18. I can’t imagine how our lives will be in 9 years, let alone 18. The enormity of it seems quite daunting. What job will I have? Will we own a house? Will we be in financial difficulty? Will the world be a stable place?

In some ways life is short, in other ways it seems to stretch on forever.

The Value of Networks

July 19th, 2008 Uncategorized5 Comments

A few months ago I gave up on Facebook. My page is still there but I don’t update it any more since the only 4 “friends” I have probably already know what’s going on in my life. To be useful you would need a bigger network of friends but that seems to cheapen the notion of a friend and starts to get kinda creepy.

Anyway, John mentioned LinkedIn which I thought was still invitation-only. Anyway, I gave it a go. The idea seems a lot more reasonable than Facebook: connect to colleagues and old friends so that you can use these contacts when looking for a job, starting a business etc. I’ve already found an old friend from uni there but I’m terrible at maintaining these networks. My current tally of old friends I keep in contact with (~ once a year or so):

  • School: 1
  • Uni: 0
  • Bluewatch: 1
  • Broadcom: 2 (and I married one of them!)
  • MLE: 0
  • Uni of Southampton: 0

However, I can see that maintaining a LinkedIn network, which you only leverage occasionally, can be very valuable (see Granovetter, The Strength of Weak Ties) so this is something I’ll try to do more of in the future. LinkedIn seems like the sort of site you’d use a few times a year (instead of a few times a week/day for Facebook) which meshes better with the types of relationships you’re trying to cultivate.
View Jamie Lawrence's profile on LinkedIn

Things I learnt during, and about, my PhD

July 15th, 2008 Personal, rant19 Comments

This post might be written in a tone that gives you the impression that this is advice about your PhD. It’s not. It’s overly pessimistic and specific to my situation.

These are (largely unedited) notes I collected between 2003-2006 when I was working on my PhD in Computer Science. I eventually admitted to myself that I wasn’t going to finish it (due to a combination of research/financial/personal/career pressures) and that, in fact, I didn’t want to finish it. This post represents the advice I wish I could have given to myself when I was thinking about applying for a PhD. The short version of this advice is: Don’t.

The devil is in the details – and a PhD is Hell

I came to my PhD with a fairly clear idea about what I wanted to investigate. In fact, I’d been thinking about it and working on it for the previous 2 years. However, many people start their PhD with a vague interest in an area and spend the first 12 months figuring out what novel aspect they want to pursue. Initially, it can feel as if finding out what you are going to research is the main hurdle.

Alas, that is not the case. The main problem is that once you’ve narrowed your research area down, you need to keep focusing. And again. And again. In the end you’re left looking at boring equations, graphs and theories that are the complete opposite of the interesting and practical idea you started with. In many ways this is like starting a business: everyone can have a grand business idea, some people can tease out a feasible business plan, but the successful businesses are run by the people with the big vision and the attention to the smallest details.

Know your audience

It is important to understand, from the outset of the PhD, who your target audience is: it’s you. I remember hearing that, on average, 1.6 people will read your PhD thesis. I’m pretty sure that includes yourself, your spouse, your supervisor, your second supervisor and your examiner (yeah, that’s technically 5 people. If someone says they’ve read your thesis, they’re probably lying – they read page 9). You have to accept, that no one in the world will want to wade through this document. Ever.

You might start your PhD with the intention of making a discovery crucial to the future of the world and winning the Nobel prize before you’ve even graduated. You will be very disappointed. No one in the world will care about your work. Repeat after me: No one cares.

Supervisors: a curious species, rarely sighted in their expected habitat

Supervisors are strange creatures. Some are like ghosts, appearing occasionally for a fleeting moment, and you’re more likely to meet them at a conference than at the University. Others are always around but they’re too busy running around like demented hamsters on a wheel – all motion and no progress. They’re disorganised. All of them will, at some point, forget what your project is about – and some will even forget who you are.

I made an interesting discovery half way through my PhD: the number of good/useful/interesting/brilliant things that your supervisor will say to you is not proportional to the amount of contact you have with them – it’s constant. Yep, that right. You can have weekly meetings with your supervisor but you’ll only get three good suggestions a year out of them. Oh, and on the subject of meetings, there are only about five types of meeting that you’ll ever have during your PhD: The Big Picture, The Progress Update, The Paper Writing Enslaving (a.k.a. My Research Review Is Approaching So I Need To Get You To Write Something), The Thesis Word Count and The Pub (usually accompanied by beer). Do not make the mistake of going into a meeting and expecting it to be any different to last week’s. And try not to get them confused: even if you supervisor is plying you with beer, watch out for the sudden switch to Paper Writing Enslaving.

Supervisors also participate in a little-known game which can catch out the naïve student: Hunt the Supervisor. This involves the PhD student attempting to locate their supervisor during the agreed meeting slot. And, no, they are definitely not going to be in their office. You’ll be lucky if they’re in the right country.

The loneliness of the PhD student

A PhD is a completely solo effort. There is no one you can ask advice of. No one can help you. There are no books in the bookshop that will shed light on your problems. Magazine articles are even more pointless. You are alone. Think Frodo without the Fellowship.

Even PhD Students can live a normal life. Sometimes.

Being a PhD student isn’t like being an undergraduate. There a very, very few lectures you have to attend and very few regular assignments. There are no grades either. There’s also no timetable. Essentially you can work (or more often, not) whenever you please. So, it’s not like having a proper job. Even if you work regular hours (say 9am-6pm), you’ll be reading papers, writing papers, running experiments and any number of other pointless things during your free time. I tried sticking to a regular working day and it didn’t work – or, rather, I didn’t. If you’re like me, when it gets down to the nitty-gritty, boring detailed work of the PhD, you need to remove as many distractions as you can because, at this stage, just about anything is going to be preferable to your PhD. Computer games, good fiction and the Internet are all obvious distractions that can be minimised. Washing up was one of my favourite distractions, which I never found a way to avoid.

The stipends available to a PhD student are actually very good, especially if you’ve come directly from the pasta & baked bean-eating life of an undergraduate. On the other hand, if you’ve been working for a couple of years, the drop in disposable income is a fair shock. Still, it’s not that bad; I managed to get married during my PhD (something good had to come out of it!).

A PhD is great because… well, just because.

I attended this wonderful introductory course run by my department, in which they presented this slide of great points (completely unedited) about why you might want to do a PhD:

  • Qualification
  • Dr.
  • Curious
  • etc.

Yep, that’s right. These are the only reasons he could think of to do a PhD! According to this professor, you should do a PhD if: you need to to get that academic position you’ve always dreamt of since childhood; you want to show off your title on mortgage applications and get called to medical emergencies; you’re “curious” (just remember what happened to the cat); or some other, unspecified, and entirely unthinkable, reason.

I can actually think of a few more positive reasons. If you’ve just finished your degree and aren’t quite sure what to do next, then a PhD isn’t the worst thing in the world. You have plenty of time. If you want to start your own business then doing a PhD will give you access to the latest research results upon which to base your commercial enterprise. And undertaking a PhD requires many of the same skills as starting a new business: self-motivation, attention to detail, unhealthy work hours, forward thinking, pitching your vision to sceptics and laymen, etc.

On the downside, for every job that a PhD will help you get, there are a thousand which it will over-qualify you for. For some jobs (admittedly, probably not your ideal job), you might be better to pretend you were in prison for those years of your life. In any case, a PhD is unlikely to get you a higher salary.

It’s not the Result, it’s the Road that counts

I discovered at the start of my final year that it doesn’t really matter what you produce as an end result of the PhD. What matters are the experiments, trials, results, observations and evaluation you conduct. This makes sense when you consider the PhD for what it is: a qualification to conduct individual research. Producing something interesting, useful, wonderful and absolutely cool is not part of your PhD. Get over it. For me, this made my final year an absolute nightmare of doing things I wasn’t interested in and, frankly, didn’t care about.

I started the PhD as a way of shutting myself away from the world for 3 years whilst I worked on an interesting idea. I categorically and absolutely did not care about the qualification. I didn’t need it and I had no desire to work in academia. Unfortunately, after 2 years I had to accept that, unless I modified my approach, I actually wasn’t going to have anything to show for 3 years effort. And despite my initial intentions, I really couldn’t waste 3 years of my life without anything in return.

(Not) Getting Things Done

Like any large long-term project, you’re going to need to learn how to organise yourself. So you might start reading about various personal productivity methods: Getting Things Done, Gantt charts, to-do lists… but don’t bother, they don’t apply. If you do make a list, it’s basically going to come down to five types of tasks: Reading, Inventing, Comprehending, Implementing, Writing. Now, reading is an easy task to complete: just read the book/paper. Unfortunately, sometimes you don’t know what to read. Implementing (say, software) isn’t too difficulty either. Neither is writing. The problem is the two core tasks of your PhD: Inventing (an algorithm, for example) and Comprehending (how/why it works and explaining it to others, typically through graphs and experiments). “Inventing” something is an open-ended task which can’t be estimated or controlled. In management-speak, it’s highly risky. “Comprehending” is also quite difficult if you’re as mathematically-illiterate as me.

The Other Year

Myth: A PhD is 3 years long. Actually, you’ll find that the PhD funding is for 3 years but the university is quite happy for you to take 4 years to complete. After 4 years, they get difficult because the funding organisations will fine them for every PhD student that hasn’t graduated. The solution is naturally to finish during the 3 years of funding. It isn’t going to happen (and if it does, you were destined for academia and shouldn’t be reading this – your fate is sealed). 3 years sounds like a long time but it isn’t. But what happens between the end of the funding and the completion of your PhD? I don’t know (yet) but starvation, alternate employment, debt and non-completion are all on the (credit) cards.

It’s worth bearing in mind that the university may “strongly recommend” that you don’t get a job whilst trying to write up. This makes sense in some ways: those that take on jobs are less likely to actually complete – possibly because they’ve already got a job and don’t care any more. The students that don’t take job tend to get very skinny and tremble at the words “bank manager” and “credit card balance”. Of course, the university has their own motivations for wanting you to complete (namely avoiding that fine and looking after your academic interests). On the other hand, you will probably have a motivation to eat and remain part of society – which may outweigh your waning motivation for finishing the PhD. It’s also worth remembering that the university will still expect you to pay fees during this missing, unfunded year (although, reduced when you get a full draft thesis written).

The two most frequent PhD questions

There are really just two questions that you’ll be frequently required to answer:

What’s it about? Enjoy this phase as it only lasts for about 6 months. Once someone has asked the question, and listened to the largely incomprehensible drivel that you’ll reply with, they’re highly unlikely to ever ask again.
How’s it going? The true purpose of this question is revealed after about 2-2.5 years: what they really want to know is “When will you be finished?“. The subtext is that a PhD is something to finish, not something to do. Unlike the first question, this will be asked repeatedly by the same people, regardless of whatever negative, vague, dismissive, or generally cranky response you give them. I’m thinking of other responses including swearing, violent outbursts, “when I finally give up”, “when I finally admit that the algorithm (and general idea) is seriously flawed and I am not able to unflaw it”, “when I shrink to 4 foot nothing”, “when the earth’s magnetic field flips over”, and so on …

Your supervisor is here to stay

A university can be a challenging place for an undergraduate – plenty of them drop out or fail to make the grades… some don’t even get the grades to attend in the first place. For the postgrad, the university is a place of indifference: no one really cares whether you’re there or what you’re doing. It’s slightly more… stressful... as a postdoc since your employment is dependant on the whims of a funding organisation and the bullshitting presentation abilities of your manager. I think new, probationary lecturers might need to make some effort to impress but it soon fades after probation (or, frankly, before). Academics, on the other hand, lead a fairly stress-free life. Of course, they run around like headless chickens, never have time to attend your meeting, are always behind on deadlines and generally exude an air of stress, mild panic and approaching heart attack. However, this is not the whole story. You see, academics don’t get fired. Undergrads drop out, post-grads give up, post-docs leave but academics… retire.

Academia is a place where incompetence can hide from the rest of the world. There are some good academics who have mastered their art of reading, thinking, writing and teaching, but there’s also a good dose of incompetent ones too. In the commercial world, there’s always rumours, quiet whispering and cryptic emails about “Jake Smith no longer works for this company”, but it doesn’t happen in academia. I reckon that the only thing that would get an academic fired is if they slept with a student. One of their own students. Whom they gave top marks to. And everyone else failed. I don’t think many frustrated PhD students will consider sleeping with their supervisor just to get them fired. So, no matter how much you dislike them, or incompetent/abusive/annoying/offensive they are, be under no illusions that your supervisor is going to be there long after you leave.

Here’s what I wrote in response to a post (on the Business of Software forum at Joel on Software) from someone considering a part-time PhD:

I had 5 years commercial experience and then decided to start a PhD in Computer Science (full-time) because I wanted to get some ideas off my chest. I’m almost finished now (well, the funding is almost finished) and absolutely *hate* it.

First, I’ve no idea how you think a PhD is possible part-time. It’s an every-minute, in-the-shower, at-the-weekend, in-the-middle-of-the-night sort of thing. Part time, it’s at least a 6 year commitment, which makes me shudder just thinking about it.

I’ve written quite a lot of software during the course of my PhD but that doesn’t get you a PhD and no employer is going to care about this code because none of it is to commercial quality (it’s just enough to get things done). A PhD is not an extension of a Masters, or a super-super-BSc. It’s a qualification to conduct research. I’ll repeat that again because its important: it’s a qualification to conduct research. Therefore, the whole thing is not about actually solving a problem but the process you go through. It’s about equations, not code; about graphs, not screenshots; about field trials and user experiences, not unit testing; it’s about quick-and-dirty, not smart and professional. In short, it’s about things that aren’t (often) required in the commercial world. If you’re not interested in academia, you probably have no business doing a PhD. I tried to convince myself that I wasn’t interested in the qualification, just the 3 years to work on my ideas. But after 2 years and 10 months, it’s very hard to walk away from the qualification.

And you are on your own. There is no team, no one to work with. It’s particularly lonely and, in the end, no one will actually care about your research except yourself (and, by the end, you probably won’t care either).

Of course, I’ll be earning less after the PhD then I did when I started it. There aren’t many reasons to be using J2EE (or some other in-demand tech) in a PhD: think Perl, Python, LaTeX, etc. That’s if I can even find a job now: it’s well known that a PhD opens a few employment doors… and slams a hundred more.

Sorry to sound so depressing, but a lot of people here have been telling you to jump and I just thought I’d better present the negatives too.

Mocking-up a Website

July 8th, 2008 Reviews4 Comments

I’m finally getting started on Shutter Scouts, a website for photographers to share and discover interesting locations.

Initially my principle tool was a blank pad of A4 paper and a biro for sketching out the data relationships, templates and pages.  After searching for a good cheap website template I decided to make my own — just enough layout and styling to make it work — and evolve it later as & when the site gains users.

But when it comes to working out some of the more complicated page layouts, biro and paper just wasn’t good enough.  I’m not a professional designer, I don’t use Photoshop and I’ve seen a few UI mockup tools but they are either too expensive or too Windows-UI focused. Earlier in the week I installed Pencil, a Firefox extension that sounded as if it would work but in practice was still too Windows-UI focused (which begs the question why it’s a Firefox extension at all).  And it was too polished — it felt like designing the UI, not sketching it out.

So it was fortuitous that I came across Balsamiq Mockups on Hacker News.  This is a little application which allows you to drag ‘n’ drop hand-drawn components on to the page.  The desktop version is an Adobe AIR application so it’s installed through your web browser but accessed from the desktop / start menu shortcut.  I’ve had some issues with AIR applications in the past (notably Adobe Digital Editions) automatically deleting themselves but Mockups seems to run really well.  It looks like a sketch pad, with a selection of common web components including Maps, Tabs, Titles and Videos, and some esoteric ones like Coverflow and Webcam.  Each component is styled in a hand-drawn style (reminiscent of Napkin L&F for Swing) but you can reposition and resize them.  So far, so good.  The hand-drawn style is more than just eye candy though.  It visually says “this is a sketch, nothing promised, nothing set in stone”.  It can be very useful to avoid getting too hung-up on the colour scheme, logo design or fonts.

Here’s the current sketch for one step of the process when creating a new location on Shutter Scouts:

If I’m honest, there are a few things that need polishing: Escape key doesn’t seem to cancel a drag; there’s no prebuilt file-upload component or Cancel/Submit buttons; and exporting an image doesn’t let you choose where or what filename.  If I was a professional and had purchased this, I might still be a little annoyed about the “Created by Balsamiq” tag at the bottom of exported images but I guess it’s no different to the software my Physio uses to print off exercises.  Also, there’s no printing support so you need to export the image and print, but these are hardly major flaws. But the developer has been responsive and helpful so I’m sure it won’t take long for these issues to get polished off.

Mockups is a really easy-to-use tool for quickly (the above sketch took 10mins) sketching out a page layout before sitting down to write the HTML.  I’ve printed out a few sketches now which hang above my desk to visually remind me of what I’m working on.

Balsamiq Mockups also comes integrated with Twiki, Confluence and JIRA which I guess makes it ideal for collaborating between designers/programmers and clients.  Is it worth $79 for the desktop version?  For me (a hobby web developer on a tight/non-existent budget), no probably not.  For a professional web designer?  Definitely: Buy it in a heartbeat!

Disclaimer: I offered to write an open and honest review of Balsamiq Mockups in exchange for a full licence key.

P.S. Incidently, I thought it was Balsa-miq as in Balsa wood, used in model-making, but apparently it’s not.  Just goes to show how different brains work.