Canonical Voices

What James Tait talks about

James Tait

I count myself incredibly fortunate to have been exposed to the internet in 1995. In 16 years, I’ve been witness to, and played a part in, the phenomenal transformation of life online. I’ve seen, made and learned from a lot of mistakes in that time.

Back then, companies like AOL and CompuServe were stuffing CDs in computing magazines that promised to “get you online” for something like £19.99 a month plus the price of the phone calls. The trouble was that what I was seeing on their TV adverts wasn’t the internet I recognised. It turned out that what they were offering was a “walled garden” experience – users could only get to a restricted subset of the available content. More importantly, communication was limited to people on the same service as you. There was no “internet mail” – if you were on CompuServe and your friend was on AOL, you were out of luck, better write them a letter instead. Fortunately, other providers like Demon Internet were offering the real thing and people realised this and shunned the walled gardens, forcing them to open up and interoperate. The web became a better, more open place as a result – if you doubt that, you need only take a look at some of the superhuman efforts the internet has enabled.

Later came IM networks like AIM, ICQ, Yahoo! Instant Messenger and MSN Messenger. These were again walled gardens, allowing users of a given network to interact only with users of the same network. Then along came Jabber, now formalised as the open standard XMPP, and suddenly anyone could set up their own IM server that would interoperate with thousands of others on the web. Now users of, for example, Google Talk have an XMPP account that interoperates in the same way.

And now we have the Social Networks. Facebook. Google Plus. Twitter. And again, we see the same problem – the networks are closed. Oh sure, you can install your Selective Tweets app for Facebook and have tweets designated with a specific hashtag duplicated on your Facebook wall. Or add GPlus Agent to your Google Plus circles. But replies posted on Facebook aren’t visible to users on Twitter or Google Plus, or linked to the original tweet or post in any way. I’ve said before, the experience is fundamentally broken. These so-called “social” networks could hardly be less social! And that’s before we even get into the questions of usage policies and privacy controls.

But fear not! As history has demonstrated, no matter how hard these companies try to control how you use the internet, people are working on projects to make it free again. In this case, they’re called Federated or Distributed Social Networks and they work similarly to e-mail and XMPP – you create an account on your preferred server and post your status updates there, and people on other servers can subscribe to them. In fact, alongside projects such as Identica (based on the OStatus protocol) and Diaspora (which has its own federation protocol), there are projects that are using XMPP to solve this problem – a great choice of technology in my opinion.

My personal favourite, following the effective demise of OneSocialWeb (requiring server-specific plug-ins was a big mistake, in my opinion) is buddycloud. It’s still under development, but a beta channel server is available – you can view my public buddycloud channel without an account, or you can set up your own server (projects such as FreedomBox aim to make this trivial) and create an account there, or create an account on an existing server. My instance is currently running the NodeJS channel server implementation, but there is a Java server implementation that also supports OStatus, and I am also working on a Python channel server which will drive my experimental channel (and eventually also support OStatus, and maybe provide gateways to the closed networks, and… and….)

As internet pioneer and EFF founding member John Gilmore said, “The Net interprets censorship as damage, and routes around it.” If we “think like the internet“, we can all help to give the internet the directions it needs.

Edit The Python channel server project is here.

Read more
James Tait

What’s in a name?

Names, and pseudonyms in particular, seem to be a hot topic on the internet at the moment, with Google’s real names policy for Google+ at the centre of a storm of controversy. But when it comes down to it, does it really matter what you call yourself?

I’ve had a few nicknames over the years. The first one I remember having was Taity. Hardly original, I’m sure you’ll agree, in fact I seem to recall my dad had the exact same nickname in certain circles. A variation on this, in my teenage years, was Tatsy. I don’t really know where it came from, but given my typically geeky social interaction problems, which some saw as a superiority complex, it was adapted to become Hare Tatsy (a corruption of Hare Krishna, which had shot into the public consciousness at the time after featuring in a drum and bass song) as a tongue-in-cheek indication that people felt that I expected them to worship me. I got involved in the Atari ST demo scene for a brief period around this time, and appeared in the “greetz” as Tithead. Yes, really!

In my online life I’ve gone through a few nicks/handles/identifiers, too. On Elephant MUD, I was Immoderator, bringer of chaos and ignorer of rules! On many IRC channels, talkers, IM networks and such-like, I’ve been JayTeeUK – the latter part answering at least part of the common question “A/S/L?” and filtering out a surprising amount of unwanted attention from amorous American males with web cams (although the unwanted attention from amorous British males with web cams was unsurprisingly unabated).  These days I’m almost exclusively jamestait, or in some cases james.tait (one notable exception being in my daily dealings on the internal Canonical IRC server, where I’m jayteeuk again because having jamesh and jamestait in the same channel rendered tab completion useless when addressing either one of us, and he was there first).

When I left University and got my first job, I was quickly dubbed Chocolate, or Choc for short, because of my famous weakness for the treat tray.  When I met the woman who was to become my wife, I was mostly just James. As the relationship progressed, I became honey, and later, when she conceived, I was “promoted” to Dad, and that’s still how I’m most often referred to in our household (apart from when I’ve done something stupid or inconsiderate, and in the interests of decency I’m not sharing with you the names I get called then). My wife became Mom, and my dad became Grandad.

Another popular one, and probably one of my personal favourites, was Taiters, often spoken with a mock Somerset farmer accent due to “‘taters” being an abbreviation of “potatoes”. This always reminds me of a school assembly in which our IT teacher (aptly enough) introduced a “family” of characters, all made from potatoes and each with their own characteristics. Spectater liked to watch things carefully through her thick glasses and keep herself to herself; Commentater was a gossip. But I’m straying from the point.

Which is this: different arenas called for different monikers. It wouldn’t have been appropriate for my teachers to call me Tithead or Hare Tatsy. I’d be concerned if my wife referred to me as Immoderator or jayteeuk. And frankly, if Google require me to use my full, real name in order to use their service, I’m not going to argue.

“But wait!” I hear you cry, “That’s exclusive! That means that people who want to remain anonymous can’t use the service!” Yes, it does. And yes, it sucks. But you know what? You wanna play in Google’s park, you gotta play by Google’s rules. Otherwise, you go and find another park to play in. Nobody is making you use Google+.

The way to remedy this isn’t to fix Google’s policy, but to fix social networking. But that’s a subject for another post.

Read more
James Tait

A year at Canonical

Tuesday 23rd August marked one year of me working at Canonical. I thought it would be interesting to collect some stats about what I’ve done in that year.

  • 104 code branches merged
  • 6 business trips
  • 37 days away from home
  • 30,172 air miles travelled
  • 64 hours and 45 minutes flying time
  • 3 countries visited

Plus hundreds of hours pair programming via shared Screen sessions and Mumble chats, dozens of code reviews performed, countless new people met, exposure to a handful of new products and frameworks, and a vast amount of knowledge exchanged between colleagues and members of the community alike. It’s unfortunate that most of the stats that I have readily available relate to the travel aspect of the job, because that’s the least memorable part. I wonder what I could do to rectify that before my second Canoniversary.

Read more
James Tait

As part of my work on Facebook and Google contact sync over the last six months, I’ve spent a lot of time pair programming with Nicola, during which we had to quickly get up to speed with RabbitMQ and txamqp. Part of the learning experience was to follow the RabbitMQ Tutorial. As an exercise, we decided it would be a good idea to try to rewrite the tutorial, which is based on the pika library, to use txAMQP, thereby exercising our new-found knowledge in both areas.

The results of this experiment can be found here. I have no doubt we have committed a multitude of sins in the process of creating this branch, but it was a useful exercise for us and may be useful for others, so we thought we should share it.

Read more
James Tait

Home at last

London, UK, 1997: I’m an Applied Computing student at Middlesex University, mainly on the course for the third year module on computer graphics, which involves programming on the Sony PlayStation. One of my fellow students introduces me to MUDs, and after a while playing, I become bored of interacting in someone else’s world and decide I want to be a “Wizard” on a MUD of my own. Realising that the Solaris machines at the University do a much better job of hosting this kind of thing than the Windows machine and the Atari ST I have, and that if I were to run such a system on those machines I may find myself in pretty hot water, I set off in search of a way to install UNIX for free.

Back then, freedom of use was not top of my list of priorities – free of charge was all that mattered. I would have been quite willing to pirate software to achieve my ends, but I stumbled upon NetBSD, which was available for download as a series of approximately 25 floppy disk images, seemingly free of charge, and seemed to do what I needed it to do. Unfortunately, floppy disks were notoriously unreliable, and somewhere in the large set of media, something got corrupted and the whole installation effort came grinding to a halt. So I raided my savings and bought a 4x CDROM drive and a copy of Slackware Linux Unleashed, Third Edition, complete with an installation CD for Slackware 3.1, which still sits on my bookshelf today. And so my adventure with Linux and Free Software began.

The MUD never took off. I finished my degree and in 1999, I started working. My first job was as a systems administrator and developer. As well as looking after the office Novell Network (which we later migrated to an NT4 domain), I was tasked with making sure we got accurate sales figures from our tills. The software the company had purchased was not very robust, and it was not uncommon for the tills to crash, so I started hacking small programs together using Cygwin and GCC to recover the corrupted data files. Free Software made this possible, but I was on my own – I was the only one actually writing code, and actually using and promoting Free Software.

Since then I’ve had three other jobs. I have been fortunate to work on some really fun, interesting and exciting projects with some exceptionally smart, talented people. But somehow, something was missing.

In the roughly 12 years I’ve been working in the IT industry, I’ve used a lot of Free Software. A LOT. GCC, Apache, Tomcat, Eclipse, JBoss, various Linux distributions, a myriad of GNU software, Python, PHP, MySQL, Firefox, Thunderbird… I could go on and on, but my point is simple – my working life would have been much more difficult had it not been for the availability of Free Software. And yet, to the best of my knowledge, none of the companies I ever worked for, who made such extensive use of Free Software to achieve their ends, ever contributed anything back to the projects upon which their profits were built.

As time went on, this increasingly irked me, and I started to look for ways in which I could individually give something back. Fortunately, around the same time, someone else was doing the same. One Mark Shuttleworth, who had had some success with a company selling SSL certificates and sold that company, and now wanted to give something back to the community that had enabled that success. He created the Ubuntu project, which ended up having quite a community following and a certain ethos that made it quite easy to contribute.

I contributed. Not much, but little bits here and there, often via the Ubuntu UK LoCo, because it was now OK just to do a little bit here and there. I continued with my day jobs, I did what I could in my spare time, but always vowing that if the opportunity arose for me to be paid to work of Free Software, especially with Canonical, who seemed to be taking things forward and understanding the people who made this stuff happen, I’d take it.

Fast forward to August 23rd 2010, six months ago. The opportunity arose, I took it, and since then I’ve been living the dream. I found it hard to believe that the way I imagined Canonical to be, looking from the outside, could possibly bear any resemblance to what actually goes on inside. But I’m pleased to be able to say, so far at least, it’s everything I hoped it would be and more.

Everywhere I look, there are smart, dedicated, ambitious people doing what they enjoy. People are actively encouraged to participate in discussions and empowered to bring about change. Things move quickly. Hackers are allowed to be hackers, and valued for it, instead of being rail roaded into becoming project managers (although the path is there to be taken by those who want it). Collaboration is just part of a standard day’s work, not some amazing special thing that needs to be highlighted, although notable examples are praised. We actually have productive, frank, grown-up conversations about what we can improve and how, without resorting to name-calling.

On Day One, I said “I feel like I’m mingling among rock stars at present!” and six months on, I still do. The difference is that I’m now starting to feel like one of them. It’s amazing what being around such brilliant people every day can do.

Read more