XMPP / Realtime meetup, London

Keeping up the realtime trend following my post on the Realtime Conf EU, I wanted to draw your attention to the very first XMPP / Realtime meetup to be held in London (albeit at short notice!).

There are plenty of similar realtime events being held elsewhere in the world (such as the conferences in Portland and Lyon), with great popularity / success, but not much here in the UK. When my employers Surevine noticed this, they immediately sought to set that right. So, I am pleased to say that the first (hopefully of many) XMPP / Realtime meetup in London will be tomorrow night at the fantastic MozSpace (@MozLDN).

There will be a great collection of speakers and plenty of beer + pizza thrown in for good measure. In addition to the great lineup, I’ll also be giving the briefest of talks on the realtime aspects of PinItTo.Me, and how simple it is to add realtime features to an application using Socket.io.

So if you’re interested in all things realtime, then come along! Just sign up to the event on Meetup or Lanyrd, it will be great to see you there :) and follow @xmppuk

mzl.rdqhraxy.320x480-75

Festivals in Kent iOS Application

Over the past couple of months I’ve been helping with my friends at DCD Web to produce a native iOS application for ‘Festivals in Kent’ – a collection of music / culture festivals all based in the county of Kent.

The app itself interacts with an API to provide the latest news, events and general information for each of the member festivals. In addition, the app also provides the ability to share content on various networks and to save upcoming events to the device, making the most of the mobile platform.

Its been an exciting and extremely educational project to work on, expecially given that it has been my first forray into the world of mobile development.

The app was built with Phonegap in combination with a variety of plugins to facilitate the social-sharing and saving events to the device’s calendar. Phonegap allows mobile applications to be built using standard web technologies (namely HTML, CSS & Javascript). For someone from a web development background like myself, this is awesome!

I was able to use the fantastic Backbone.js framework, in conjunction with Require.js to produce a single page, modular Javascript application running within an iOS UIWebView. I also made use of Handlebars.js as the clientside templating engine, and scss for the css pre-processing (the benefits of which I’ll go into in a separate blog post). There are all libraries / tools that I have previous experience with, so the development was a breeze.

The result is a reasonably fast and lightweight application. Whilst Phonegap apps are often not as performant as their truly native, Objective-C counterparts (as widely publicized following Mark Zuckerberg’s comment that backing HTML5 apps at Facebook was not necessarily the best decision just yet), this approach is perfectly adequate for simple applications that connect to a web service and process / render data. As a result, I would definately consider using Phonegap for other similar applications in the future.

What’s more, as of iOS 5, Safari’s Nitro Javascript engine has been made available to the UIWebView, meaning that JS execution is accelerated to boost performance significantly.

As a side note, Phonegap also makes cross-platform development very easy indeed. With the core of the application written in HTML, CSS and JS it wouldn’t be too much effort to port this across to Android, Blackberry and Windows Phone 7/8 (although there are not plans to do so at this moment in time).

If you’re interested in the app, then check it out here, or search for ‘Festivals in Kent’ in the appstore (currently iPhone only).

Phonegap 2.4.0 InAppBrowser Zooming

The newly released 2.4.0 version of Cordova / Phonegap provides support for pinch-zooming (using multi-touch gestures) in its InAppBrowser. This is a really great feature, that goes a long way towards helping your app to feel more native. It’s used so frequently in applications that users have come to expect this functionality, and its absence can often make a a browser interface feel wrong.

So understandably, I was very excited when Phonegap’s support for pinch-zooming was announced, and rushed to upgrade my applications. However, for me at least, it wasn’t immediately obvious how to enable the feature.

After being pointed in the right direction by @shazron I found that it was actually a very quick process, but I thought it might be useful to share this, incase anyone else was having similar issues.

In order to enable the feature, you need to pass in EnableViewPortScale as an option when opening the InAppBrowser:

window.open(url, '_blank', 'EnableViewPortScale=yes');

I hope that helps.

Learning to Code

Code.org (a non-profit organisation aiming to get more people learning to code) have just released a inspirational video containing several tech ‘celebrities’ (including Mark Zuckerberg, Bill Gates & Jack Dorsey) talking about how and why they got into coding, and the challenges they faced when getting started.

Even for people already in the tech industry, I think this makes for interesting viewing.

Overall I think this is a really great initiative. As the video points out, computing is core to so much in modern life, and the ability to code, or at least understand what’s going on inside systems, is becoming more fundamental as time moves on.

From my personal experience, nowhere near enough programming is taught in schools. It is often left down to an individual’s personal interest and self-education until University level. Meanwhile, school IT lessons are repeatedly ‘educating’ students how to use Microsoft word right up until their A-level’s, even though they picked up most of the skills they will need during primary school.

It looks like organisations like Code.org and CodeAcademy are aiming to tackle this issue in the US, and I hope this encourages a change here in the UK as well. After all, software engineering is a pretty great career to have. I love what I do and who I do it for. I wouldn’t change it for the world, and many of my non-techie friends wish they had a job as cool as mine, and that they had been awesome ;) enough to learn to code when they were at school.

Realtime Conf EU

Attending Fosdem earlier this month has definately wet my apetite for web / tech conferences, and now, down to a bit of good fortune, I have another great event to look forward to. A couple of weeks ago I entered a competition on Twitter to win a ticket to Realtime Conference EU in Lyon, and for once – I won something! I must say a Big thanks to Mandrill App (@mandrillapp) who sponsored the prize, I am truly grateful <3

The conference itself looks awesome and boasts a really great lineup including speakers from Mozilla, NodeJitsu, Wildfire, Buddycloud and many more providing more realtime content than anyone could need.

So it goes without saying that I’m highly anticipating the event, which runs between April 22nd – 23rd in Lyon, France. You can find more information at the website.

And if you’re going, I’ll see you there :)

Color

Color by hailpixel

I’ve just discovered a cool little tool for creating colour palettes / schemes to be used in websites / apps / etc called Color, created by Devin Hunt.

There’s nothing revolutionary about what this tool offers, as there are plenty of similar tools available such as Adobe Kuler. However, Hailpixels offering is lightweight, quick to load and very pretty. What’s more, you can even share / save the schemes you create, as the color values are stored in the URL.

It’s probably worth a look if you ever find yourself needing to create a colour scheme for your next project.

Screen Shot 2013-02-26 at 10.15.22

PinItTo.Me

As of late I’ve been getting involved in a new open source project started by my friend and colleague Lloyd Watkin (@lloydwatkin) called PinItTo.Me

PinItTo.Me is an infinite virtual corkboard which allows people to collaborate in realtime. We envisage it being used in many different scenarios including project management, brainstorming and even to play games.

Under the hood it’s built with nodejs, and makes use of the following packages:

  • express – to handle requests and responses
  • socket.io – for real time communications
  • mongodb-native – for data
  • crypto – for passwords
  • validator – to validate form data
  • captcha – to prevent bots abusing the service

On the clientside, the application uses socket.io, various jQuery plugins and Twitter Bootstrap.

If you’re interested in finding out more, you can try it out here. It’s early days for the project, so we’d love to hear any feedback you might have (good or bad!). Even better, if you’re technically minded, why not get involved. The source code is available on github and there’s plenty to be done – what’s stopping you!?

Phonegap / Cordova 2.4.0 and FacebookConnect Plugin

A couple of days ago I took the opportunity to upgrade a Phonegap / Cordova iOS app I’ve been working on to the latest version of Cordova (2.4.0). The new version contains improvements to the newly released InAppBrowser, including support for pinch zooming (which was the particular feature I needed from the update).

However, the update also removed Cordova’s JSONKit library, opting to utilise AppKit’s NSJSONSerialization library instead. As a result, several plugins which relied on JSONKit stopped working. Manually adding the JSONKit library to my project resolved the issues for some plugins, such as the Twitter plugin, but not for the official FacebookConnect plugin (https://github.com/phonegap/phonegap-facebook-plugin).

Thanks to some great work by Shazron Abdullah (@shazron) the issues have been resolved, and a pull request containing the fixes is available here:

https://github.com/phonegap/phonegap-facebook-plugin/pull/251

Hopefully the fix will be merged ASAP, however, if like me you need to resolve these issues as soon as possible, you can apply the following changes to your FacebookConnectPlugin.m file:

Replace line 284:

NSMutableDictionary *options = [[command.arguments lastObject] mutableCopy];

Add the following after line 310:

[options release];

And everything should be back working!

Fosdem

A couple of weekends ago I was lucky enough to be attending FOSDEM with several of my Surevine colleagues. For those that don’t know, FOSDEM is a conference in Brussels that focuses  on Open Source software, and what’s more – it’s free to attend!

I hadn’t been to any kind of tech / software conference before, and so had no idea what to expect from the weekend. The only thing I had to go on was a brief heads-up from my colleagues that a fair amount of beer is usually involved in these events, and they weren’t wrong!

Upon arrival on the Saturday, the sheer scale of the conference became apparent. The tracks were diverse and numerous, from hardcore unix hacking, to the roles of women in Open source projects and everything in between, meaning there was something for anyone who is in the least part geek.

Simply put, there was almost too much to see, but I gave it a good go! I found myself in the Mozilla room more than anywhere else, as this tended to have a focus on web technologies – which is my area of interest. There was plenty of interesting talks in the track including Open Sourcing documentation and a run-through of PDF.js which were both great. However, my highlights would have to be the demonstration of WebRTC capabilities in upcoming builds of Firefox (which was so impressive, it looked to be a potential Skype killer), and Firefox OS, which looks awesome for those of us with web development skills and an interest in mobile applications.

Outside of the Mozilla room, I also spent a bit of time in the Jabber/real-time room. Surevine (the company I work for) have a deep interest in real-time, and there is certainly a lot of exciting things happening in the space. It was great to see all of the exciting projects based around XMPP, and definitely improved my overall understanding of the protocol.

Overall I found FOSDEM to be really inspirational, and came away with tremendous motiviation boost. I would recommend it to anyone who hasn’t been before, and will certainly be attending next year.

Videos of most 2013 talks have now been uploaded, so check them out at the URL below:

http://video.fosdem.org/2013/

Hello world!

Welcome to my blog, my name is Jonny Heavey and I’m a software developer based in Bristol, but if you’re reading this, you probably knew that already, so I’ll keep this short but sweet.

I’ve been meaning to setup this blog for ages, and have _finally_ gotten around to it. My plan is for this to be a mish-mash of geeky stuff. Both things I’m currently working on, and things I’m generally interested in.

Whether or not any of it will be of interest / use, only time will tell :-)

Bye for now.