Vodafone R&DÂ Technical Lead, interested in emerging technology for the web and mobile. Previously an IBM Master Inventor.
At IBM I had a very technical role, developing leading edge prototypes and customer solutions. It’s quite common for career progression as a software engineer to step away from deep technical stuff to focus on the bigger picture but this is something I’d mostly avoided until the Vodafone opportunity presented itself. Although I still retain a strong technical focus, in my 6 months as a technical lead for Vodafone R&D I haven’t done any programming at all. A summary of my role that I wrote for LinkedIn reads like this:
“Leading the technical aspects of cutting edge research programmes for Vodafone worldwide, from inception to commercialisation; responsibilities include: researching products and technologies, managing supplier relationships, designing architectures and solutions, running global customer trials through mobile operators, and engaging commercial stakeholders in order to drive solutions to marketâ€
I’m really enjoying the variety and strategic focus of the new role and not missing the deep technical stuff at the moment. Is this the start of a trend or will I swap back? Who knows.
For a work-related project I recently needed to compare cloud hosting options so I had a quick look at Amazon’s EC2, Rackspace’s Cloud Servers and IBM’s Smart Business Cloud. For our particular requirements, Rackspace looked like the best option but they all seem to be quite similar, though with an obvious enterprise focus from IBM. Below is a list of the main differences I spotted between the three options which I thought might be useful to others (there are probably many more).
Free forums (community)
$49+ or $100+/month local business hours
$400+ or $15k+/month 24x7x365
YesPhone/IM
ExtraFree forums (support-monitored)
$75+ or $1000/month
Specific list including some OS, SQL server, MySQL, Apache, IIS/.NET
ExtraOS support only, charged per hour on top of instance cost
Part of add-on software support
Elastic Block Storage (EBS)
NoCloudFiles API not file system access
ExtraCharged per hour
Micro instances only
YesFree when spare capacity on host
NoCreate new instance and migrate
YesReboot required
Unknown5 reserved public IPs per account
Yes ExtraUp to 4 per instance, per hour charge for reserved
Up front cost, cheaper rates
NoCan be combined with managed hosting
ExtraUp front cost, cheaper rates
VMware VMDK images of Windows Server 2008 (Datacenter, Enterprise, and Standard editions)
No NoMicrosoft SQL Server
Many IBM products
ExtraMicrosoft SQL Server
YesMany IBM products; pay as you go, bring your own license, free for development use
CloudWatch
Extra3rd party Server Density recommended
UnknownComplex but lots of features
YesSimple but limited features
Unknown1 year full time free micro instance including storage, data transfer and other services
Yes1st month free (up to £50)
NoI’ve really enjoyed working for IBM over the last 6 or 7 years; it’s a fantastic company and I’ve been involved in some great projects. However, all good things come to an end and yesterday I handed in my resignation. From 28th March I’ll be losing the titles of ‘Emerging Technology Specialist’ and ‘Master Inventor’, and swapping them for ‘Technical Lead’, working for Vodafone R&D in Newbury. I’ve worked with the R&D team on a couple of really interesting projects in the past and am really excited about joining them on a permanent basis.
For the IBM folks – due to a large amount of remaining vacation, my last day in the office will be Tuesday 8th March.
I love my Sony Reader but this Christmas I was given a Kindle and I absolutely love it – the ability to transfer books without a cable alone is a huge improvement, let alone the 3G, browser, dictionary, book store etc. One thing that amazed me is the cost of having news automatically delivered to the device. Knowing that calibre (the ebook software I used for managing my Sony Reader) supports automatic downloading of news websites/feeds and converting to ebook formats, I thought I’d see if I could make use of this for the Kindle. Turns out that calibre has command line tools for most of its functionality and so a quick cron job later to run the following script and I have BBC and Guardian news delivered to my Kindle for free every day:
ebook-convert /opt/calibre/resources/recipes/bbc.recipe bbc.mobi
calibre-smtp --attachment bbc.mobi --relay smtp.gmail.com --port 587 --username mygmailusername --password "my gmail password" --encryption-method TLS mygmailusername@gmail.com my_amazon_kindle_email@free.kindle.com ""
rm bbc.mobi
ebook-convert /opt/calibre/resources/recipes/guardian.recipe guardian.mobi
calibre-smtp --attachment guardian.mobi --relay smtp.gmail.com --port 587 --username mygmailusername --password "my gmail password" --encryption-method TLS mygmailusername@gmail.com my_amazon_kindle_email@free.kindle.com ""
rm guardian.mobi
The different news feeds supported by calibre can be found by clicking on the ‘Find news’ button on the toolbar and the Python scripts used to do this are in /opt/calibre/resources/recipes/ (or /usr/share/calibre/recipes/ – thanks Andy). You might want to modify the chosen recipes to limit the amount of data it downloads as it can take a while (e.g. filter certain newspaper sections).
A while ago I discovered that my local library offers a large collection of eBook downloads for free. This is great for my Sony Reader (ignoring for the moment that DRM on Linux is painful and also that I really want a Kindle) and it means I’m constantly downloading books from the library. I quite like using the Amazon site for finding books because it offers that “other people also bought…†feature but it then becomes a pain to check if the book exists on the library site (most do not).
In an attempt to have a play with Jetpack, the new Firefox add-on environment that allows add-ons to be written in JavaScript, I decided to write a simple add-on to check the library site for matching books when I’m browsing Amazon. While doing this, I stumbled upon Open Library, a great site that is trying to create a single Web page for every book ever published. More importantly, it offers a handy HTTP API.
The add-on is in no way perfect but feel free to try it out by downloading from here. Go to an Amazon page (e.g. here) and you should see a link appear to the Hampshire Digital Library version of the book if one exists:
Source available on github.
Node JS has generated a lot of interest lately so I’ve had a bit of a play and so far I like what I see. Most of the publicity about Node seems to be to do with performance; this is because it doesn’t use the traditional model of spawning one thread per client connection. That in itself is great but not of direct interest to me. However, this model allows you to perform asynchronous actions without worrying about the event loop and threading. For example, the following HTTP server code snippet sends the response to the client from within a nested asynchronous callback function:
var http = require('http');
http.createServer(function (request, response) {
doSomethingAsynchronous(function () {
doSomethingElseAsynchronus(function () {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Hello World\n");
});
});
}).listen(8124);
console.log("Server running at http://localhost:8124/");
This event loop model, plus the ability to use the same programming language on the client and server (although server-side JavaScript has been around for a while) is definitely something that has caught my attention.I tend to use gedit as my editor for most of my development work as it has a great number of plugins that enhance it’s ability as an IDE. Some of the plugins I find most useful include Code Comment, External Tools, Save without trailing space, Session Saver, Symbol Browser, TabSwitch and Word Completion.
One thing I thought would be really useful would be to validate my JavaScript using JSLint from within the editor, rather than manually or via a build process. It seems a few other people have had the same idea but the plugin I found didn’t seem to work and other instructions (e.g. here) generally seemed to require SpiderMonkey which didn’t seem to be in the Ubuntu repositories (not that I looked very hard).
I worked out how to do it myself by using the instructions other people had used and came up with the following:
sudo apt-get install rhino) Download the Rhino version of JSLint (details here) Enable the External Tools plugin for gedit (Edit->Preferences->Plugins) Setup a new External Tool in gedit (Tools->Manage External Tools) with the following (or similar) settings:
js /home/garethj/.gnome2/gedit/plugins/jslint.js $GEDIT_CURRENT_DOCUMENT_PATH Shortcut Key: <Control>j Save: Current document Input: Nothing Ouput: Display in bottom paneThen all you need to do is open a JavaScript file and hit Ctrl+j. Here it is in action:
Worth noting that it should be possible to do this without having to save the document and actually pipe the current document content into JSLint/Rhino but this was sufficient for my needs.
For a demo recently I needed to display a map, have pan/zoom controls, add markers and overlays etc etc. Google Maps (or similar) to the rescue right? Not in this case. Unfortunately the place wasn’t real, it was a location within the Battlefield 2 game being used for some simulation of research we were doing. Now I know it’s possible to use something like Google Maps to display my own map tiles etc but it looked complicated and I think I’d have to pretend I was working with real latitude/longitudes etc. Then I stumbled upon OpenLayers. I actually knew about OpenLayers before, as an open-source client-side library for mapping controls. What I didn’t realise was how flexible it was and that I could simply give it a single image and my own coordinate system and then let it do all the rest. This example from the handy list of OpenLayers examples demonstrates how it works in just a few lines of JavaScript. Perfect.
You are viewing a mobilized version of this site...
View original page here