Planet SurreyLUG

Syndicate content
Updated: 1 hour 5 min ago

DevRelCon 2015 Trip Report

Fri, 02/10/2015 - 15:00

Huh, this turned out to be longer than I expected. Don’t feel obliged to read it, it’s more notes for myself, and to remind me of why I liked the event.


On Wednesday I went to DevRelCon in London. DevRelCon is “a one day single track conference for technical evangelists, developer advocates and anyone interested in developer relations” setup by Matthew Revell. I don’t think there’s a lot of difference between my role (defined as Community Manager) at Canonical and Developer Relations so figured it would probably have appropriate content for my role. Boy was I right!

DevRelCon was easily the single most valuable short conference I’ve ever attended. The speakers were knowledgeable, friendly and accessible, and easy to understand. I took a ton of notes, and will distil some of them down here, but will almost certainly keep referring back to them over the coming months as I look to implement some of the suggestions I heard.


The event took place at The Trampery Old Street, in Shoreditch, the trendy/hipster part of London. We had access to a bright and airy ‘ballroom’ and were served with regular drinks, snacks and a light lunch. Free WiFi was also available, which worked well, but I didn’t use it much as we had little time away from the talks.


The day consisted of a mix of long (40 minute) talks, some shorter (20 min) ones, and a few ‘lightning’ talks. Having a mix of durations worked well I think. We started a little late, but Matthew massaged the timetable to claw back some time, and as it was a single track day there was no real issue if things didn’t run to time, as you weren’t likely to run off to another talk, and miss something.

All the talks were great, but I took considerably more notes in some than others, so this is represented below in that I haven’t listed every talk.

Morning Talks

Rob SpectreTwilio – Scaling Developer Evangelism.

This started off well as Rob plugged in his laptop and we were greeted with an Ubuntu desktop! He started off detailing some interesting stats to focus our minds on who we’re evangelising to. Starting with the 18.2m developers worldwide, given ~3Bn smartphone users, and ~4Bn Internet users that means ~0.08% have the capability to write code. There’s a 6% year on year increase in developers, mostly in developing nations, the ratio is less in the western world. So for example India could overtake every other countries’ developer count by ~2017.

Rob talked at length about the structure of Developer Evangelists, Developer Educators and the Community Team at Twilio. The talk continued to outline how valuable developers are, how at Twilio their Developer Evangelists are the ‘Red Carpet’ to their community. I was struck by how very differently we (Open Source projects) and Ubuntu specifically treat contributors to the project.

There was also a section on running developer events, and Rob spent some time talking about strategies for successful events, and how those can feed back to improve your product. He also talked a little about measurement, which was also going to be covered in later talks that day.

Another useful anecdote Rob detailed was regarding conversion of talks into blog posts. While a talk at an event can catalyse the 20-100 people in the room, converting that into a detailed tutorial blog post can bring in hundreds or thousands more.

The final slide in Rob’s talk was “Would you recommend this talk?” with a phone number attendees could send a score to. I thought this was a particularly cunning strategy. There was also talk of using the external IP address of the venue WiFi as one factor to determine the effectiveness / conversion rate of attendees.

Cristiano BettaBraintree – Tooling your way to a great devrel team

Cristiano started off talking about BattleHack which I’d not heard of. These are in person events where teams of developers get 24 hours to work on a project fuelled by coffee, cake and Red Bull to be in with a chance of winning a cash prize and an amusing axe.

He then went on to talk about a personal project to manage event sign-ups. This replaces tools like Eventbrite and MailChimp and enables Cristiano to get a better handle on the success of his events.

Laura CowenIBM – Building a developer community in an enterprise world

Laura started off giving some history of the products and groups inside IBM who are responsible for WAS, the public facing developer sites and the struggles she’s had updating them

The interesting parts for me came when Laura was detailing the pain she had getting developer time to update documentation and engage with users and communities outside their own four walls. Laura also talked about the difficulty when interfacing developers and marketing, their differing goals and some strategies for coping.

I recognised for example the frustration in people wanting to publish everything on a developer site, whether it’s appropriate to the target audience or not. Sometimes we (in Ubuntu) fail to deeply consider the target audience before we publish articles, guides or documentation. I think we can do better here. Pushing back on content creators, and finding the right place for a published article is worth it, if the target audience is to be defended.

Lightning Talks

Shaunak Kashyapelastic – Getting the measure of DevRel

In this short talk Shaunak gave some interesting snippets on how elastic measure community engagement. I found a couple interesting which I felt we might use in Ubuntu. Measuring “time to first response” for questions and issues by looking for responses from someone other than the first poster. While I don’t think they were actively using this data yet, getting an initial base line would be useful.

Shaunak also detailed one factor in measuring meet-up effectiveness. Typically elastic have 3-4 meet-ups a week, globally. For each meet-up group they measured “time since last meetup”. For those where there was a long delta between one meetup and the next they would consider actions. This could be contacting the group to see if there’s issues, offering assistance, swag & ‘meet up in a box’ kits, and finally disbanding the group if there wasn’t sufficient critical mass.

I took away a few good ideas from this talk, especially given recent conversations in Ubuntu about sparking up more meet-ups.

Phil LeggetterPusher – ROI on DevRel

Phil kicked off his short talk by talking about the ROI on DevRel by explaining Acquisition vs Activation. Where Acquisition of new developers might be them signing up for an account or downloading a product/sdk/library. Activation would be the conversion which might be measured differently per product. So perhaps “purchased paid API key” or “submitted app with N downloads”.

Phil then moved on to talk a bit about how they can measure the effectiveness of online tutorials or blog articles by correlating sign ups with traffic coming from those online articles. There was some more discussion on this later on including the effectiveness of giving away vouchers/codes to incentivise downloads, with some disagreement on the results of doing so.

Afternoon Talks

Brandon WestSendGrid – Burnout

I’ve been to many talks and discussions about burnout in developer communities over the years. This talk from Brandon one was easily the most useful, factual and actionable one. I also enjoyed Brandon’s attempts to inject Britishness into his talk which lightened the mood on a potentially very dark topic.

Brendon kicked off with a bit of a ‘woe is me’ #firstworldproblems introduction to his own current life issues. The usual things that affect a lot of people, but all happening at once, becoming overwhelming. We then moved on to defining burnout clearly, and what types of people are likely to suffer (clue: anyone) and some strategies for recognizing and preventing burnout.

A few key assertions / take-aways:-

“Burnout & depression are pathalogically indistinguishable”

“Burnout and work engagement are not exclusive or correlatable”

“Those most likely to burnout believe they are least at risk”

“Learn a skill on holiday – the holiday will be more rewarding”

Tim FogartyMajor League Hacking – Hackathons as a part of your DevRel strategy

Another great talk which built upon what Cristiano talked about earlier in the day – hackathons. Tim introduced different types of hackathons and which in his experience were more popular with developers and why.

Tim started by breaking down the types of hackathon – ‘hacking’, ‘corporate’ and ‘civic’ with the second being least popular as it’s seen as free labour by developers, and so they’re distrustful. He went on to reasons why people might run hackathons including evangelism, gathering (+ve and -ve) feedback, recruiting and mindshare (marketing).

He then moved on to strategies for making an impact, measuring the effect, sponsoring and how to craft the perfect demo to kick off the event.

Having never been to an in-person hackathon I found this another fascinating talk and will be following up with Tim Later.

Jessica Rose – Stop talking about diversity and just do it

Well. This was enlightening. This talk was excellent, and covered two main topics. First the focus was on getting a more diverse set of people running / attending / talking at your event. Some strategies were discussed and Jessica highlighted where many people go terribly wrong, assumptions people make and excuses people give.

The second part was a conversation about the ways in which an event can cater for as many people as possible. Here’s a highlight of some of the ways we discussed, but this obviously doesn’t cover everything:-

  • Attendees and speakers should be able to get in under their own power
  • Meal choices should be available – possibly beyond vegetarian/vegan
  • Code of Conduct
  • Sign language for talks
  • Well lit and safe feeling route from venue to accomodation
  • Space for breastfeeding / pumping, with snacks / drinks nearby
  • Non boozy spaces
  • Prayer room
  • After party with low noise level – and covered by Code of Conduct
  • Childcare
  • Professional chapparones (for under 18’s)
  • Diversity tickets & travel grants
  • Scale inclusivity to budget (be realistic about what you can achieve)

Lots to think about!

Joe NashBraintree – Engaging Students

Joe kicked off his fast-paced talk with an introduction to things which influenced how he got where he is, including “Twilio Heroes”. The talk was focussed on the UK University system, how to engage with students and some tips for running events which engage effectively with both CS and non-CS students.

James Milnerersi UK – So you want to run a meet-up

James talked about his personal experience running GeoDev Meet-Ups. I found this information quite valuable as the subject is under discussion in Ubuntu. James gave some great tips for running good meet-ups, and had a number of things he’s clearly learned the hard way. I hope to put some of his tips into action in the UK.

Dawn FosterLessons about community from science fiction.

This was a great uplifting talk to end the day. Dawn drew inspiration from her prolific science fiction reading to come up with some tips for people running community projects. I’ll give you a flavour with a few of them. Each was accompanied by an appropriate picture.

Picture: Star Trek Red Shirt
Lesson: “Participate and contribute in a way that people will notice and value your work”

Picture: Doctor Who TARDIS
Lesson: “Communities look different from inside then when viewing as an outsider”

Picture: Enders Game
Lesson: “Age is often unknown, encourage young people to contribute”

Dawn is a thoughtful, entertaining and engaging speaker. I’d certainly like to see more of her talks.

After Party

We all left the venue after the last talk and headed to a nearby trendy bar for a pint then headed home, pretty exhausted. A great event, I look forward to the next one.

Categories: LUG Community Blogs

Novatech n1410 Ultrabook – 32 Months On

Thu, 01/10/2015 - 20:06

I received a surprising amount of interest in my Novatech n1410 review and my subsequent nine-months on review.

Over the past 32 months I have continued to be fairly happy with my Novatech n1410. It has generally been fast enough, reliable enough, light enough and with a decent battery life. The downsides over the long term proved to be the keyboard and trackpad which have never been enjoyable to use and the lack of audio volume. Overall though I would say that it has lived up to my expectations for a budget Ultrabook.

But then last night – disaster struck, I was closing my laptop after working and the case opened up at the right hand hinge. This is not a heavily-abused laptop – it has never been dropped, I don’t commute, the laptop is stored in a padded case and treated at all times with respect. So why would the case fail in this way?

On closer inspection this would appear to be a natural failure point, the case after all is only plastic held together by a single screw at that point and the pressures on that hinge are immense. Indeed I am very surprised that it did not fail sooner. I think I probably contributed by being right-handed and probably putting a greater strain typically on the right hand hinge.

On the one hand, after 32 months I can’t really complain – it has certainly justified its cost. But I do feel a bit aggrieved that such a lightly used laptop should have failed within 3 years.

I can hear many of you thinking that 3 years is a long time for a laptop, but to put it in context my last laptop, a Toshiba Satellite Pro A300-1GO, was bought in 2008 and is still in daily use after 7 years.

I also feel embarrassed, I was encouraged to buy a ThinkPad, but the cost deterred me. Realistically a ThinkPad would probably have carried on working for at least another 2-3 years, and if you divide the cost by the life expectancy then perhaps the Novatech was a false economy. Well let’s face facts – it was a false economy. And I wouldn’t have had to be put up with a grotty keyboard for the past 32 months!

At the moment the Novatech is still working and I can close it just about – by the insertion of a ruler between the screen and the keyboard, and putting my weight on that as I lower the screen. I will live with it for the time being, but will start giving some thought as to my next laptop.

Possibly even a ThinkPad!

Categories: LUG Community Blogs

Feelings of an imposter

Tue, 22/09/2015 - 11:00
I recently came across a question that was ask: Do I know of any women who consider themselves  to be an imposter?  For the life of me I cannot find the thread. But I did comment and here is my thoughts: I do think sometimes women do feel like an imposter, a phony, someone who shouldn’t […]
Categories: LUG Community Blogs

Home Working – Co Working with Friends

Tue, 22/09/2015 - 01:22
I’ve been working from home (WFH) for the last few years  and I love it! No more commuting no more dealing with trains not working and delays. Each day I get up and go to my designated working space in my home. It suits me and I’m rather used to it. I do know many […]
Categories: LUG Community Blogs

Linux Microsoft Skype for Business / Lync 2013 Client

Wed, 02/09/2015 - 10:14

I was surprised to learn that Ubuntu 14.04 can talk to Skype for Business AKA Lync 2013 using the Pidgin Instant Messaging client. The general steps were:
# apt-get install pidgin pidgin-sipe

And then restart Pidgin and add a new Account. The Office Communicator is the relevant plugin, with the following parameters:

  • Protocol: Office Communicator
  • Username: Your Office 365 or Skype for Business username – probably your email address
  • Password: Your password is obviously required – and will be stored unencrypted in the config file, so you may wish to leave this blank and enter at each login
  • Server[:Port]: Leave empty if your set-up has autodiscovery
  • Connection type: Auto
  • User Agent: UCCAPI/15.0.4420.1017 OC/15.0.4420.1017
  • Authentication scheme: TLS-DSK

I am unclear why the user agent is required, and whether that will need to change from time to time or not. So far it has worked fine here.

Unfortunately a few days ago the above set-up stopped working, with “Failed to authenticate with server”. It seems that you must now use version 1.20 of the Sipe plugin, which fixes “Office365 rejects RC4 in TLS-DSK”. As this version was only completed three days ago, it is not yet available in any of the Ubuntu repositories that I have been able to find, you will probably have to compile yourself.

Broadly speaking I followed these key stages:

  1. Install build tools if you don’t already have them (apt-get install build-essential).
  2. Install checkinstall if you don’t already have it (apt-get install checkinstall).
  3. Download source files.
  4. Extract source.
  5. Change into source directory.
  6. Read carefully the README file in the source directory.
  7. Installed dependencies listed in the README:

# apt-get install libpurple-dev libtool intltool pkg-config libglib2.0-dev \
libxml2-dev libnss3-dev libssl-dev libkrb5-dev libnice-dev libgstreamer0.10-dev

These dependencies may change over time, and your particular requirements may be different from mine, so please read the README and that information should take precedence.

Lastly, as an ordinary user, you should now be able to compile. If it fails at any stage, simply read the error and install the missed dependancy.

$ ./configure --prefix=/usr
$ make
$ sudo checkinstall

I found checkinstall was pre-populated with sensible settings, and I was able to continue without making any changes. Once complete a Debian package will have been created in the current directory, but it will have already been installed for you.

For some reason I found that at this stage Pidgin would no longer run, as it was now named /usr/bin/pidgin.orig instead of /usr/bin/pidgin, I tried removing and reinstalling pidgin but to no avail. In the end I created a symlink (ln -s /usr/bin/pidgin.orig /usr/bin/pidgin), but you should not do this unless you experience the same issue. If you know the reason for this I would be delighted to receive your feedback, as this isn’t a problem that I have come across before.

Restarting Pidgin and the Office Communicator sprung into life once more. Sadly I would imagine that this won’t be the last time this plugin will break, such are the vagaries of connecting to closed proprietary networks.

Categories: LUG Community Blogs

Easily port mobile HTML5 games to Ubuntu Phone

Tue, 28/07/2015 - 13:36

Article also available in Spanish at thanks to Marcos Costales.

I really like playing games on my phone & tablet and wanted some more games to play on Ubuntu. With a little work it turns out it’s really pretty easy to ‘port’ games over to Ubuntu phone. I put the word ‘port’ in quotes simply because in some cases it’s not a tremendous amount of effort, so calling it a ‘port’ might make people think it’s more work than it is.

Update: A few people have asked why someone would want to even do this, and why not just bookmark a game in the browser. Sorry if that’s not clear. With this method the game is entirely cached offline on the customer phone. Having fully offline games is desirable in many situations including when travelling or in a location with spotty Internet access. Not all games are fully offline of course, this method wouldn’t help with a large on-line multi-player game like Clash of Clans for example. It would be great for many other titles though. This method also makes use of application confinement on Ubuntu so the app/game cannot access anything outside of the game data directory.

I worked with sturmflut from the Ubuntu Insiders on this over a few evenings and weekends. He wrote it up in his post Panda Madness.

We had some fun porting a few games and I wanted to share what we did so others can do the same. We created a simple template on github which can be used as a starting point, but I wanted to explain the process and the issues I had, so others can port apps/games.

If you have any questions feel free to leave me a comment, or if you’d rather talk privately you can get in contact in other ways.

Proof of concept

To prove that we could easily port existing games, we licensed a couple of games from Code Canyon. This is a marketplace where developers can license their games either for other developers to learn from, build upon or redistribute as-is. I started with a little game called Don’t Crash which is an HTML5 game written using Construct 2. I could have licensed other games, and other marketplaces are also available, but this seemed like a good low-cost way for me to test out this process.

Side note: Construct 2 by Scirra is a popular, powerful, point-and-click Windows-only tool for developing cross-platform HTML5 apps and games. It’s used by a lot of indie game developers to create games for desktop browsers and mobile devices alike. In development is Construct 3 which aims to be backwards compatible, and available on Linux too.

Before I licensed Don’t Crash I checked it worked satisfactorily on Ubuntu phone using the live preview feature on Code Canyon. I was happy it worked, so I paid and received a download containing the ‘source’ Construct 2 files.

If you’re a developer with your own game, then you can of course skip the above step, because you’ve already got the code to port.

Porting to Ubuntu

The absolute minimum needed to port a game is a few text files and the directory containing the game code. Sometimes a couple of tweaks are needed for things like permissions and lock rotation, but mostly it Just Works(TM).

I’m using an Ubuntu machine for all the packaging and testing, but in this instance I needed a Windows machine to export out the game runtime using Construct 2. Your requirements may vary, but for Ubuntu if you don’t have one, you could install it in a VM like VMWare or VirtualBox, then add the SDK tools as detailed at

This is the entire contents of the directory, with the game itself in the www/ folder.

alan@deep-thought:~/phablet/code/popey/licensed/html5_dontcrash⟫ ls -l total 52 -rw-rw-r-- 1 alan alan 171 Jul 25 00:51 app.desktop -rw-rw-r-- 1 alan alan 167 Jun 9 17:19 app.json -rw-rw-r-- 1 alan alan 32826 May 19 19:01 icon.png -rw-rw-r-- 1 alan alan 366 Jul 25 00:51 manifest.json drwxrwxr-x 4 alan alan 4096 Jul 24 23:55 www Creating the metadata Manifest

This contains the basic details about your app like name, description, author, contact email and so on. Here’s mine (called manifest.json) from the latest version of Don’t Crash. Most of it should be fairly self-explanitory. You can simply replace each of the fields with your app details.

{ "description": "Don't Crash!", "framework": "ubuntu-sdk-14.10-html", "hooks": { "dontcrash": { "apparmor": "app.json", "desktop": "app.desktop" } }, "maintainer": "Alan Pope ", "name": "dontcrash.popey", "title": "Don't Crash!", "version": "0.22" }

Note: “popey” is my developer namespace in the store, you’ll need to specify your namespace which you configure in your account page on the developer portal.

Security profile

Named app.json, this details what permissions my app needs in order to run:-

{ "template": "ubuntu-webapp", "policy_groups": [ "networking", "audio", "video", "webview" ], "policy_version": 1.2 } Desktop file

This defines how the app is launched, what the icon filename is, and some other details:-

[Desktop Entry] Name=Don't Crash Comment=Avoid the other cars Exec=webapp-container $@ www/index.html Terminal=false Type=Application X-Ubuntu-Touch=true Icon=./icon.png

Again, change the Name and Comment fields, and you’re mostly done here.

Building a click package

With those files created, and an icon.png thrown in, I can now build my click package for uploading to the store. Here’s that process in its entirety:-

alan@deep-thought:~/phablet/code/popey/licensed⟫ click build html5_dontcrash/ Now executing: click-review ./ ./ pass Successfully built package in './'.

Which on my laptop took about a second.

Note the “pass” is output from the click-review tool which sanity checks click packages immediately after building, to make sure there’s no errors likely to cause it to be rejected from the store.

Testing on an Ubuntu device

Testing the click package on a device is pretty easy. It’s just a case of copying the click package over from my Ubuntu machine via a USB cable using adb, then installing it.

adb push /tmp adb shell pkcon install-local --allow-untrusted /tmp/

Switch to the app scope and pull down to refresh, tap the icon and play the game.


Tweaking the app

At this point for some of the games I noticed some issues which I’ll highlight here in case others also have them:-

Local loading of files

Construct 2 moans that “Exported games won’t work until you upload them. (When running on the file:/// protocol, browsers block many features from working for security reasons.” in a javascript popup and the game doesn’t start. I just removed that chunk of js which does the check from the index.html and the game works fine in our browser.

Device orientation

With the most recent Over The Air (OTA) update of Ubuntu we enabled device orientation everywhere which means some games can rotate and become unplayable. We can lock games to be portrait or landscape in the desktop file (created above) by simply adding this line:-


Obviously changing “portrait” to “landscape” if your game is horizontally played. For Don’t Crash I didn’t do this because the developer had coded orientation detection in the game, and tells the player to rotate the device when it’s the wrong way round.

Twitter links

Some games we ported have Twitter links in the game so players can tweet their score. Unfortunately the mobile web version of Twitter doesn’t support intents so you can’t have a link which contains the content “Check out my score in Don’t Crash” embedded in it for example. So I just removed the Twitter links for now.


Our browser doesn’t support locally served cookies. Some games use this. For Heroine Dusk I ported from cookies to Local Storage which worked fine.

Uploading to the store

Uploading click packages to the Ubuntu store is fast and easy. Simply visit, sign up/in, click “New Application” and follow the upload steps.

That’s it! I look forward to seeing some more games in the store soon. Patches also welcome to the template on github.

Categories: LUG Community Blogs