Ben Nevis [1/3]

Me and @Bonxy have just got back from climbing Britain’s highest mountain, Ben Nevis. With little to no training we decided to tackle the biggest out of the 3 peaks, which probably wasn’t the best idea.

Me & Sam

Me & Sam at the summit

We drove up Friday afternoon, and got to Fort William for around 8pm, took about 5hrs 30. At around 6am we got up and started preparing for the climb, but the midges in Scotland like to get up early as well, so before we got bitten to death we set off.


It wasn’t the best of days for the weather, there was lots of clouds obscuring the mountains around us, which didn’t bode well for us getting some good views at the top. We made the quick walk to the Glen Nevis Visitor Centre and crossed the footbridge to start the climb, by this point I was already too warm and starting to sweat.


Me and @Bonxy decided we would try and stop every 40 mins or so to catch our breath and take on some water, which worked out quite well, after around an hour we were in the clouds, and getting rained on, but I still wasn’t putting my jacket on due to how much I was sweating, we made it to the half way point with no real problems.


Halfway Point

Me at the halfway point

One of the worries I had before the walk was about getting lost as we got up higher, but I needn’t have worried as there was two different charity events going on, plus plenty of people doing the three peak challenge, so there was a constant stream of people going up and down, plus the occasional traffic jam on the narrower sections.


Soon after we hit the first of 8 switchbacks, these seemed to go on and on, but we could take a quick 2 min break at the top of each. On the final couple of switchbacks we started to see the snow, which at first was a welcome site, as it meant we were near the top, but with the lack of walking poles the going was tough as we kept slipping on the fresh snow and ice.


Finally we reach the top and saw the crowd of people hiding from the wind around the stone shelter. Unfortunately due to the bad weather there wasnt much to look at, we had no reward from our hard walk apart from our quick lunch. A few picture later we were on our way back down.


For me the walk down was worse, two and a half hours of trekking down the hill killed my knees, so I was very happy when we finally left the clouds behind and could see the valley floor. We decided to take the more direct route down which brings you out at the hostel, which might not of been the best idea with my dodgy knees, but it did get us down quicker.


The whole walk took us around 6hrs 30, which I was quite happy with, we covered 16km in total, and my fitbit reckoned I took 35,000 steps and burnt around 5500Kcal.


Next on the list are Sca Fell and Snowden to complete the three peaks.

QuizzleMe – Quiz Game for Android & iPhone

New game available on Android and coming soon to iPhone.


QuizzleMe – Android
Lets you play quizzes against your friends, includes picture and sound rounds.

River Level Twitter Bot

With all the bad weather, and with moving to opposite a river I had been keeping an eye on the river on my way to work and found the Environment Agency site has real time (sort of) data for most of the rivers in the UK.


So I decided to knock up a quick script to scrape the page for the river level and tweet to a newly created account.


Link: @RiverAireLeeds

Windows 8 – Desktop on start up

Update: I thought it’d be easier to just give you the .reg file to download that will quickly update your system, just download and double click the .reg file. You can open it up in notepad and see what the file is going todo, simply changing the Shell key to the new value. :)


I’ve just switched to Windows 8 at work, and its taking some getting used to. One annoying feature is that when you log in the metro ui is shown first rather than the desktop, now since i spend 99% of my time on the desktop, I want to see that first.


After a bit of googling I found a solution, without having to install 3rd party apps. Just a quick registry edit.


Open up RegEdit and head to…


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Winlogin


Then find the ‘Shell’ key.


By default, it is set to “explorer.exe”.


Change the value to “explorer.exe /select,explorer.exe”

PhantomJS Xbox Achievements

I originally tracked my xbox achievements by using macros and batch scripts, this allowed me to grab my own achievement data, and store it in my db for viewing on the web. This worked great apart from the inherent problem of have macros physically opening and closing browsers every 15 minutes of my virtual machine, every day or so the scripts would break or Firefox would freeze, so I was always having to keep on top of it, not ideal.


A few months later I came across, this handy (FREE) site wraps up all the functionality and provides users with a simple to use api to get game info, friends, achievements and other data. So I scrapped my macros and jumped on this api, this worked spot on and still does. The only downside is that due to constraints on the website the achievement images were only available in black and white and this didn’t look to great on my website.


So my next plan was to use PhantomJS, after a few weeks of playing around with it on and off I didn’t get too far, then I came across this script on github, after a quick test, it did indeed log me into and grab my friends page. So a few hours later and some tweaks I’ve got it to get the users latest game achievement data in JSON, its not polished and could break at any time if Microsoft change the website, so bear that in mind. But hopefully it’ll give someone a good place to jump off from. :)


This script provides a quick and dirty way of getting your most recent game achievement json data.

This is a lightly modified version of Jabbslad's script found here:

James Coverdale - 2012


var fs = require('fs'),
    system = require('system');

var name = "";

if (phantom.args.length !== 2) {
    console.log('Usage xbox.js <username> <password>');

var page = new WebPage({
    'page.settings.loadImages': false

* Callback to process page when finshed loading
page.onLoadFinished = function(status) {
    if (status !== "success") {
       console.log("Unable to access network");
    } else {
        var url = getPageUrl();

        switch (true) {
        case /login.srf/.test(url):
            // Step 1 - Login
        case /post.srf/.test(url):
            // Step 2 - Process Cookies
	case /Details/.test(url):
	    // We got the achievements
        case /Activity$/.test(url):
            // We did it!
            // uh oh we hit an unexpected url

function getPageUrl() {
    return page.evaluate(function() {
        return location.href

//This whole function will need reworking ideally, must be a better way of grabbing the json
//but this works for now
function parseGame() {

	var index = page.content.indexOf("broker.publish(routes.activity.details.load, ") + 45;
	var lastindex = page.content.indexOf("</script>", index);

	var json = page.content.substring(index, lastindex);
	json = json.split("});").join("");
	json = json + "}";

	// You could just push the json to the console to allow use in the command line, i.e. pipe it to another script.
	f = null;
	f = + '.json', "w");


function parseFriends() {

   try {

	   var contents = page.content.substring(page.content.indexOf("<div class=\"activityPage activity\">"), page.content.indexOf("</ol>  <div class=\"clearfix\"></div></div>"));

	   // Again this string manip is not ideal, too much that could go wrong if the site changes
	   var index = contents.indexOf("<a href=\"/en-US/Activity/Details?titleId=") + 41;
	   var url = contents.substring(index, contents.indexOf("\">", index));
	   var nameindex = contents.indexOf("alt=\"", index) + 5;
	   name = contents.substring(nameindex, contents.indexOf("\"", nameindex));

	   // make the game name lower case and remove any spaces
	   name = name.toLowerCase().split(" ").join("");

	   // Load the latest game page'' + url));
    catch (e) {

* Hack due to phantomjs page.evaluate limitations:-
function fillFormFunctionAsString() {
    return "function() {"
         + "var form = document.querySelector(\"form[name='f1']\"); "
         + "var login = form.querySelector(\"input[name='login']\"); "
         + "login.value = '" + phantom.args[0] + "'; "
         + "var passwd = form.querySelector(\"input[name='passwd']\"); "
         + "passwd.value = '" + phantom.args[1] + "'; "
         + "var kmsi = form.querySelector(\"input[name='KMSI']\"); "
         + "kmsi.value = '2'; "
         + "form.querySelector('#idSIButton9').click();}";

The script logs in, gets the game ID of the last game played (or currently being played), then heads to that game page for the user and pulls the JSON from the page and saves it as a .json file. You could modify it to not save the JSON and just output it to the console if you want, but in my setup I needed the .json file to upload to my webserver in order to do extra processing upon it.


To run the script simple head to and download the relevant version, runs on Windows, Mac and Linux. then simple from the command line call…


phantomjs XboxScript.js username password

Simple, you will need to edit the name of the .js file to what you have saved it, and will probably need to point to the phantomjs executable on your system.

Sky Broadband Settings

After my Sky router broke, and sky told me I have to pay £35 for a new one, i decided I would try to use an old router I had lying around. Now Sky, unlike other ADSL providers do not allow you to use your own hardware, its even against their ToC’s!


So the first thing you need is your username and password, which Sky hide within the hardware, so head here, and get your username and password.

Now these are the settings I entered on my Safecom router, so your router may vary, but generally the settings will be similar or use different names.


Data Encapsulation: VC-Mux
VPI Number: 0
VCI Number: 38
Schedule type: CBR
WAN type: PPP over ATM
Authentication: CHAP (I didnt have this option, but you may :))


I hope this info helps someone, and bear in mind using your own router/modem with Sky broadband is against their ToC and they CAN detect that your using different hardware and MAY end your service some point in the future.