Category Archives: Technology

Setting up Logitech Harmony on Ubuntu

On a recent UUPC podcast, we talked about setting up my (borrowed) Logitech Harmony remote control on Ubuntu.



The Logitech Harmony is a family of universal remote controls. Logitech maintains a database of all the devices (well, nearly all) on its server in The Cloud. You connect your Harmony to your laptop via USB and set it up using a piece of desktop software or a browser plugin. As far as I can tell, the browser plugin works only on Windows. The desktop software is available for Windows and possibly Mac.

Happily, the Ubuntu Software Centre contains a piece of software called Congruity. It has stunning reviews claiming it Just Works. And it has a graphical interface; not some obscure set of commands. So I installed it and it did Just Work. Here’s how you can too…

(Apologies for some of the patchy instructions; I had to do parts of this from memory. I’ll update as and when I do some of the updates again.)

Getting going with the Logitech Harmony on Ubuntu

  1. Install the Congruity software from the Software Centre.
  2. Go to in your web browser. (This isn’t easy to find if you browse from their website as they keep funnelling you towards the Windows setup instructions and installing Silverlight.)
  3. Register with the site. You can’t avoid this because a large part of the setup is through connecting to their database in the clouds.


Before you start, life is easier if you know the model numbers of your devices (eg TV etc). I have an old-ish TV, an old-ish Blu-ray player, and a new Virgin Media TiVo (PVR).

  1. In your browser, go to and log in.
  2. It’ll probably tell you that your software is out of date, but that’s fine. Just click Next.

3. You will probably be on the Home screen now (I can’t get back there now my remote has been set up!).
4. From here, you basically follow the instructions to set up your devices. It’ll ask for your device models and guide you through setting them up.

Basic setup

There are two concepts to remember:

  • Devices
    The things you want to point your remote control at, such as the TV, the DVD player, etc. You can control pretty much anything as long as it’s controlled by an infrared remote control. You can’t control something that uses radiowaves (eg home automation systems).
  • Activities
    The things that you want to do. Basically, Logitech help you care about what you want to do, not how you want to do it. So when the Harmony is set up, you can just tell it you want to watch TV (as you can see in the photo above). You don’t have to tell it to switch on the TV and the digital box, and switch to input AV5, etc. To this end, even the setup process predicts as much as it can for you.

If you choose the automatic option for setting up the activities, it’ll look at the devices you’ve added and work out all the most likely activities you’ll want to do using them. You can then choose whether you want to configure those activities.

Don’t get too clever first time through. Just let the wizard get the basics set up for you so that you can test it out. You can go back later to fine-tune the buttons.

  1. When you’ve set up your devices and some activities in the webpage wizard, you need to update your Harmony with its new settings.
  2. First of all you’ll get prompted to save/open a file called Connectivity.EZHex. In the instructions on the web page, they’ll tell you to run the file. Don’t do that; that’s for Windows users. Instead, save the file (to your Desktop is fine).
    Screenshot from 2014-08-19 21:04:12
  3. When it’s downloaded, double-click the file and it launches Congruity:
    Screenshot from 2014-08-19 21:04:36
  4. Check that your Harmony is connected to your laptop via USB (the Harmony will display a USB CONNECTED message on its screen).
  5. Click through the short wizard. This just identifies the Harmony to the website/database.
  6. Next you’ll need to actually update the Harmony. Follow the instructions on the webpage and you’ll be prompted with another file to download, called Update.EZHex. Again, just save it to your desktop.
  7. Double-click the file and it launches Congruity again.
  8. It’ll check again that it can connect to the Harmony. If it struggles to find your Harmony (mine sometimes does on the second time round), unplug and re-plug the USB cable.
  9. Follow the wizard through. This time it’ll actually do the update to the Harmony:
    Harmony remote update
  10. And you’re done.

It’ll tell you to test it and help you diagnose problems if it doesn’t work as expected. To use the Harmony, just press the Activities button then select the activity you want (eg Watch TV).

A nice, if slightly spooky, extra touch is that when you choose an activity or when you switch off the activity (press the power button on the Harmony), the Harmony displays a message to check with you that it’s working. If, say, the TV switched on but the TiVo box didn’t, you can then press the Help button. The Harmony then tries a couple of things and checks each time to see if that solved it. As I say, a bit spooky but clever.

Tweaking settings

If buttons aren’t doing what you’d expect them to do, you can go back into the website and adjust the settings then go through the same update process of downloading and running the Connectivity.EZHex and Update.EZHex files.

If the Logitech database doesn’t know the command you’re trying to program the Harmony with, you can customise the buttons for the individual devices or for the activities you’ve set up (or both).

When you start the Watch TV activity (for example), the Harmony’s buttons send commands to the TV or to the TiVo box according to what makes sense (eg volume buttons send commands to the TV; the record button sends the command to the TiVo). If you want to control a specific device for some reason, you can press the Devices button on the Harmony to switch to control a specific device (eg the TV). All the buttons then send only to the TV. (Press Activities to get back to controlling all the devices in the activity.)

If you tend to work in the ‘activities’ mode rather than controlling each specific device separately (afterall, that’s why you’re using the Harmony!), make sure you customise the activity (on the Home page, click the Customize link next to the activity) not the device.

You can even train the Harmony to learn commands from your device’s native remote control. If you go through troubleshooting a button’s function, the wizard will eventually suggest doing this. It prompts you to download another file, LearnIr.EZTut. When you double-click this file, it launches Congruity to run a tutorial. You basically point the remotes at each other when prompted. And it works!!

Upgrading my Dell XPS 13 to Ubuntu 14.04 LTS

But I’m really not that into football, so:

And while that was going (my Thinkpad is my work laptop which I’d brought home with me on Friday):

Back at the main story:

Meanwhile, Germany had won the Men’s World Cup for the first time since reunification (but their fourth if you count West Germany’s wins), the first European team to win in South America:

I decided to reinstall from scratch. I should probably have done this in the first place because the original installation was the one Dell did with all their custom packages to make the hardware work. The Dell XPS 13 packages (for the laptop I bought in July 2013 anyway) are now all in the official Ubuntu repositories. I think my problems were probably caused by clashes of some kind between the old and new packages.

Almost all my data files are backed up in Dropbox so that bit’s easy. The Windows 7 virtual machine I use for PhD software is about 26 GB but I can rebuild it if the HDD dies, so I don’t bother backing it up (the data on it goes into Dropbox). I figured, however, that backing it up to my USB stick might be useful and save me some time. Annoyingly, that’s the bit that took most of the time. Downloading the Ubuntu ISO and creating a USB installation disk took no time. Then installing it was pretty quick too.

It’s doubly annoying that the virtual machine took so much of the time (I finished about 1.30am, leaving Dropbox doing its thing while I slept). After waiting for the files to copy back to my newly-installed laptop this morning, I discovered that I’ve been working in a VirtualBox snapshot. So the 13 GB Snapshots folder that I’d not copied was kindof essential to things and the virtual machine wouldn’t boot without it:

I can’t find my Nvivo 10 CD either but I imagine installing Windows 7 and its updates will take most of today anyway. Fortunately it’s sunny so I might just leave it installing and go do (PhD) reading in the garden.

Monkigras 2014: Sharing craft

After Monkigras 2013, I was really looking forward to Monkigras 2014. The great talks about developer culture and creating usable software, the amazing buzz and friendliness of the event, the wonderful lack of choice over which talks to go to (there’s just one track!!), and (of course) the catering:


The talks at Monkigras 2014

The talks were pretty much all great so I’m just going to mention the talks that were particularly relevant to me.

Rafe Colburn from Etsy talked about how to motivate developers to fix bugs (IBMers, read ‘defects’) when there’s a big backlog of bugs to fix. They’d tried many strategies, including bug rotation, but none worked. The answer, they found, was to ask their support team to help prioritise the bugs based on the problems that users actually cared about. That way, the developers fixing the bugs weren’t overwhelmed by the sheer numbers to choose from. Also, when they’d done a fix, the developers could feel that they’d made a difference to the user experience of the software.

Rafe Colburn from Etsy

While I’m not responsible for motivating developers to fix bugs, my job does involve persuading developers to write articles or sample code for So I figure I could learn a few tricks.

A couple of talks that were directly applicable to me were Steve Pousty‘s talk on how to be a developer evangelist and Dawn Foster‘s on taking lessons on community from science fiction. The latter was a quick look through various science fiction themes and novels applied to developer communities, which was a neat idea though I wished I’d read more of the novels she cited. I was particularly interested in Steve’s talk because I’d seen him speak last year about how his PhD in Ecology had helped him understand communities as ecosystems in which there are sometimes surprising dependencies. This year, he ran through a checklist of attributes to look for when hiring a developer evangelist. Although I’m not strictly a developer evangelist, there’s enough overlap with my role to make me pay attention and check myself against each one.

Dawn Foster from Puppet Labs

One of the risks of TED Talk-style talks is that if you don’t quite match up to the ‘right answers’ espoused by the speakers, you could come away from the event feeling inadequate. The friendly atmosphere of Monkigras, and the fact that some speakers directly contradicted each other, meant that this was unlikely to happen.

It was still refreshing, however, to listen to Theo Schlossnagle basically telling people to do what they find works in their context. Companies are different and different things work for different companies. Similarly, developers are people and people learn in different ways so developers learn in different ways. He focused on how to tell stories about your own failures to help people learn and to save them from having to make the same mistakes.

Again, this was refreshing to hear because speakers often tell you how you should do something and how it worked for them. They skim over the things that went wrong and end up convincing you that if only you immediately start doing things their way, you’ll have instant success. Or that inadequacy just kicks in like when you read certain people’s Facebook statuses. Theo’s point was that it’s far more useful from a learning perspective to hear about the things that went wrong for them. Not in a morbid, defeatist way (that way lies only self-pity and fear) but as a story in which things go wrong but are righted by the end. I liked that.

Theo Schlossnagle from Circonus

Ana Nelson (geek conference buddy and friend) also talked about storytelling. Her point was more about telling the right story well so that people believe it rather than believing lies, which are often much more intuitive and fun to believe. She impressively wove together an argument built on various fields of research including Psychology, Philosophy, and Statistics. In a nutshell, the kind of simplistic headlines newspapers often publish are much more intuitive and attractive because they fit in with our existing beliefs more easily than the usually more complicated story behind the headlines.

Ana Nelson from Brick Alloy

The Gentle Author spoke just before lunch about his daily blog in which he documents stories from local people. I was lucky enough to win one of his signed books, which is beautiful and engrossing. Here it is with my swagbag:

After his popular talk last year, Phil Gilbert of IBM returned to give an update on how things are going with Design@IBM. Theo’s point about context of a company being important is so relevant when trying to change the culture of such a large company. He introduced a new card game that you can use to help teach people what it’s like to be a designer working within the constraints of a real software project. I heard a fair amount of interest from non-IBMers who were keen for a copy of the cards to be made available outside IBM.

Phil Gilbert’s Wild Ducks card game

On the UX theme, I loved Leisa Reichelt‘s talk about introducing user research to the development teams at GDS. While all areas of UX can struggle to get taken seriously, user research (eg interviewing participants and usability testing) is often overlooked because it doesn’t produce visual designs or code. Leisa’s talk was wonderfully practical in how she related her experiences at GDS of proving the worth of user research to the extent that the number of user researchers has greatly increased.

And lastly I must mention Project Andiamo, which was born at Monkigras 2013 after watching a talk about laser scanning and 3D printing old railway trains. The project aims to produce medical orthotics, like splints and braces, by laser scanning the patient’s body and then 3D printing the part. This not only makes the whole process much quicker and more comfortable, it is at a fraction of the cost of the way that orthotics are currently made.

Samiya Parvez & Naveed Parvez of Project Andiamo

If you can help in any way, take a look at their website and get in touch with them. Samiya and Naveed’s talk was an amazing example of how a well-constructed story can get a powerful message across to its listeners:

After Monkigras 2014, I’m now really looking forward to Monkigras 2015.