An Invite to the Palace!

Being introduced to The Queen

Last month I was extremely surprised and honoured to receive an invite to a UK Technology Reception with The Queen and The Duke of Edinburgh at Buckingham Palace on Monday 9th June 2014.  The reception was hosted by The Duke of York and I was among 350 guests from all over the UK Technology industry invited to this fantastic occasion.  I received my invite for the work I’ve done in the community with user groups such as NEBytes and events such as DDD North and Imagine Cup North East, which is very humbling as I love the work I do in the community and think of it more as a hobby than actual work, many thanks to everyone in the community who has supported the events, students and our fantastic user group here in the North East!

My Invite to the UK Technology Reception at Buckingham Palace

I joined other representatives from the North East Technology Community, David Dunn – CEO of Sunderland Software City, Kevin Beales – CEO of Sunderland based Test Factory, Mike Fish – Managing Director of Dontyne Systems, Ajay Sood – Managing Director of Orchid Software and Workcast Director Gerrard Callaghan, among many others.  We were all privileged to be introduced to both The Queen and The Duke of Edinburgh and we discussed the UK Technology Industry with our peers throughout a very pleasant evening.  An experience I am very proud of and very grateful for the opportunity, certainly one to remember and what a great picture to put in the family album!

Awarded Microsoft MVP Award for Seventh Year!

This afternoon I received an email from Microsoft to tell me that I’d been awarded the 2014 Microsoft MVP Award for ASP.Net/IIS!  This is my seventh MVP Award, I am extremely humble and privileged to be associated with a great group of less than 5000 technical people around the globe.  I’ll be aiming to continue my efforts to help the community and deliver as much content as I can to aid and spread knowledge through events, blogging and social media among other avenues. 

DDD North 2014 Announced

This morning I am delighted to announce that DDD North 2014 will be held at the University of Leeds on Saturday 18th October 2014.  DDD North is a free one day technical event for developers. This is the fourth Developer! Developer! Developer! Community Event ever ran in the North of England and we are delighted to be hosted at the University of Leeds following on from our three previous events with registrations rising over 425 last year! DDD North is a day of learning, discussion, contribution and involvement in the community in the North East, North West, Midlands and Scotland. The goal of DDD North is to provide free technical education with the added benefit of the networking possibilities with peers and the development of relationships across the .NET Industry!

DDD North 2014 is now open for session submissions so get them in now!! –

The timeline for the event is as follows:

  • Session submissions open now till 00:00 on Friday 22nd August 2014
  • Session voting begins at 00:01 on Friday 22nd August 2014 and closes at 00:00 on Friday 29th August 2014
  • Agenda will be published (subject to speaker confirmation) at 08:00 on Monday 1st September 2014
  • Registration will open at 10:00 on Monday 1st September 2014

For more information and to stay up to date check out and follow the event on Twitter –

Getting Started with NDepend

For quite some time now I’ve been planning on writing a few blog posts about my experiences with NDepend.  NDepend is often described as a “Swiss Amy Knife for .NET developers” and I must admit there are plenty features to investigate and get to grips with.

NDepend analyses your code base against a number of code rules to check against best practice to help to ensure that the code you produce is of a high quality and doesn’t degrade over time, for more details on the wide range of features checkout the list at

I’ve recently been revisiting the DDD North code base and looking to tidy up and improve on a few shortcuts and quick fixes I had to put in place last year in order to get the site up and running in time!  I’ve ran the solution through the NDepend tool and here is an example of the output received:-


As you can see there is a huge amount of data and information reported by NDepend. I am now in the process of going through each element and looking at items such as the results from the Code Rules tests, Dependency Graphs, Matrices and many more application statistics.

I’ll follow up this blog post with a look at each of the elements I discover in the report and how I’ve used the information to make my code base better.  In the meantime if you’d like to take a look at NDepend  you can get a 14 day fully functional trial from here with Getting Started documentation and videos here –

In addition why not check out Erik Dietrich’s great course – Practical NDepend on Pluralsight!

Telemetry on Cloud Platforms–Resources

Last night I had the pleasure of presenting at Dot Net Notts (@dotnetnotts), a relatively new User Group in Nottingham.  Having been born in Nottingham, it was a really nice experience to go back visit some family and then present at this vibrant and welcoming new user group.

Last night I was talking about Telemetry and Logging experiences on a Cloud Platform (namely Microsoft Azure) and was trying to impart the benefit of some experiences running a large multi product platform.  Hopefully the talk was well received and everyone enjoyed it.  The talk was a different type to the majority I’ve given before and I’ve been wanting to deliver it for a while.  The content of the talk discussed mistakes that are easy to make, processes that can help, and some tips along the way for mitigating mistakes and providing a supportable approach to telemetry.  Here are some of the tips, conclusions and resources from the talk last night:

Logging Tips:

  • Instrument for insight into application
  • Capture inter-service application activity and latency
  • Ensure level can be altered at run-time
  • Abstract logging – gives agility to change framework

Logging Level guides from a talk by Scott Guthrie at NDC 2013

Level Context


Always on in Production. Any errors will trigger ACTION to resolve (automated or human)

  • Configuration issues
  • Application failures


Always on in Production. Warnings will INFORM, and may signal potential ACTION

  • Timeouts or throttling in external service


Always on in Production. Info messages INFORM during diagnostics and troubleshooting


On during active debugging and troubleshooting on a case by case basis

NDC 2013 – Scott Guthrie: Building Real World Cloud Apps With Windows Azure PT2


  • Involve key stakeholders early in the design phase from a product and platform perspective
  • May have to tell them what they need
  • Consider telemetry needs at early stage of development
  • Consider SLA want to provide and how to prove it
  • Choose frameworks and services carefully
  • Iterate repeatedly – requirements evolve during lifetime of a product/platform
  • Telemetry is important – just as important as new product features


Using the Elasticsearch Azure Plugin with Windows Virtual Machines

Recently I’ve been working with Elasticsearch as I look to implement a logging solution using Logstash.  Elasticsearch is a popular, flexible open source real-time search and analytics engine and I’ve been looking at making use of the engine to perform full text searches and analytics against the mountains of log data we have on our platform.

As part of this work I’ve been setting up an Elasticsearch cluster of three Windows Server 2012 R2 Datacenter edition virtual machines in Windows Azure.  We’ve chosen Windows based virtual machines as the team who will support it have more experience and knowledge of Windows OS than Linux.  To get up an running I’ve used the following blog post from Thomas Ardal, which has a further link to info on installing Elasticsearch on the VMS – Running ElasticSearch in a cluster on Azure.

One of the elements of configuring the cluster concerns the discovery of nodes in the cluster.  By default Elasticsearch makes use of multicast to discover the nodes in the cluster, however multicast doesn’t appear to work fully in Azure at present, therefore Thomas’ blog post details making changes to the elasticsearch.yml configuration file to disable multicast and add in the node ip addresses manually. 

However on Friday (31st Jan 2014) Elasticsearch announced an Azure Cloud Plugin for Elasticsearch and the goal for this plugin is to enable automatic unicast discovery of Windows Azure Virtual Machines in the Cloud Service.  The article details how to set the plugin up in Linux Virtual Machines, but as I’ve already mentioned we are using Windows Server 2012 R2 for all of our virtual machines in the cluster.  Therefore I set off today to configure the plugin for running Elasticsearch on Windows.

  1. Create Windows Azure VMs as detailed in Thomas’ post, installing Elasticsearch on each Virtual Machine you wish to use as a node.
  2. Create a self-signed certificate for working with the Azure REST API using makecert (You will need the Windows SDK for this in order to make use of makecert). Create Self Signed Certificate
  3. Upload the .cer file to the Management Certificates (Settings->Management Certificates) store for your Azure subscription in the Azure Portal.Upload Management Certificate 
  4. Using Certificate Manager (certmgr.msc) export the certificate with the public key (in .pfx format) and give the certificate a password of suitable complexity.  Copy the pfx file to a folder on your virtual machines, e.g. C:\MyCertificates
  5. Install the Azure-Cloud plugin on each of your Elasticsearch Virtual Machines by running the following command from a command point at your elasticsearch installation directory
    bin/plugin -install elasticsearch/elasticsearch-cloud-azure/1.0.0.alpha1
    Install Elasticsearch Azure Cloud Plugin
  6. Next edit the Elasticsearch configuration file, Elasticsearch.yml, which is found in the config folder of your Elasticsearch installation on each virtual machine in your cluster.  At the bottom add the following configuration and update with the relevant settings:

    ################################# AZURE PLUGIN ###############################
       keystore: <path to certificate i.e. c:/MyCertificates/mycert.pfx>
       password: <Password for certificate file>
       subscription_id: <your subscription id>
       service_name: <name of cloud service>
       type: azure

    for example:

    ################################# AZURE PLUGIN ###############################
       keystore: c:/MyCertificates/mycert.pfx
       password: verystrongpassword
       subscription_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
       service_name: myescluster
       type: azure

    Thanks to David Pilato and Thomas Conté for their help in getting the configuration correctly formatted and populated.

  7. Start Elasticsearch on each server

That’s it all configured, if you’re using plugins to monitor your Elasticsearch cluster such as the Head plugin you should now see all of your nodes in your cluster listed, for example:


WARNING: As a side note, it’s VERY easy to break the syntax in yml files when not familiar with them, I’m now using Notepad++ to work with them and I’ve also been using a VS Extension – YamlDotNetEditor – when editing the yml file so I can reduce the risk of making mistakes.  The extension formats and lays out the file in a readable format with syntax highlighting (although this is currently not working in VS2013).

Bringing A Code Club to 9-11 Year Olds

This is a cross post from my blog on STEMNet. –

For a while now I’ve been a STEMNet Ambassador working with local schools on Technology related activities and have been working on getting involved in Code Clubs for quite some time.  This week I started my first Code Club with a local school.


I am a strong believer in giving children the opportunity to discover the fun in Computer Science and Computer Programming.  I believe the current National Curriculum can be boring, mundane and uninspiring so much so that we are losing many, many potentially great programmers, developers and technologists at a very early age.  I have worked with a variety of age groups and unfortunately the size of groups get smaller as they get older because they don’t see the fun in the subject, often spending year after year working on nothing more stretching than Microsoft Office (PowerPoint, Excel and Word), admittedly not all schools are this limited but in my experience this has been more a case of the exception rather than the norm.

However, in a rare and unrepeated occurrence, Michael Gove actually said something I agreed with, in that Computer Science is to become an important part in the National Curriculum from September 2014 with children getting the opportunity to explore and experience Computer Science, looking at design, coding and algorithmic skills.  This really struck a chord with me and is something I’ve been keen to get involved with for quite some time.  In order for the UK to encourage students to look further into all scientific subjects, we need to capture the imaginations of students at an early age, i.e. before they leave Primary School (age 11), and then continue to stretch their imaginations and interests throughout Secondary education and onwards hopefully to Further Education or positions in the industry.

Schools are currently not fully equipped with the knowledge, skills and resources to teach coding skills and this presents a great opportunity for our industry to build strong links with the education system, providing valuable support and resources to help bridge the gap.  One such way that I have started to do this, amongst others, is to run a Code Club at a local school.  Code Club is a UK wide network of after school coding clubs for children aged 9-11 run by volunteers.

This past week I held my first Code Club session and what a fantastic and rewarding session it was!  Using the wonderful resources and tutorials prepared by Code Club, I was able to introduce the group of approximately 11 to Scratch, a programming language used to teach children how to build animations, games amongst others.  I started with a quick overview and demonstration of the Scratch IDE and then set the group off with a tutorial with which they were able to build a Cat and Mouse game using sprites and logic they put together using Scratch.  Within minutes of working with the tutorial they were all looking at ways in which they could stretch the possibilities and inject their own customisations into the program.  The hour long club past very quickly and when I had to tell the pupils that it was time to go home and their parents were waiting for them, there was a chorus of disappointed “Awwwws” as they wanted to carry on working.  The pupils seemed to really enjoy it and many took the tutorial notes home so they could continue working through the week until the next Code Club!

If you’re reading this post, work in the IT Industry and have an hour to spare a week why not consider getting involved in helping children to learn to code? Check out the various initiatives in your area and nation, including Code Club, Hour of Code; and look to see if there are any schools or community groups in your area who are looking for a volunteer.  Personally I think it’s the least we can do.  We complain that there aren’t enough good new people for us to hire in our industry, let’s take aim at the long term goal and look to help the next generation of coders grasp the opportunities that our wonderful industry provides!

Book Review: SignalR Real-time Application Development

I’ve been keeping an eye on and experimenting with SignalR for about 18 months now when I get some free time and recently finished reading this book by Einar Ingebrigtsen and published by Packt Publishing.  SignalR: Real-time Application Development is a very concise look at the key topics that you’d want to get up and running with SignalR.


The book covers topics such as Security and Scalability along with some simple step by step tutorials to help start using SignalR in a variety of scenarios – straight forward web apps, console apps, WinRT applications amongst others.  At just 124 pages long this book is not exhaustive and is a really useful start for someone who just wants to hit the ground running with SignalR fundamentals.

I found the book a really light read however personally I would have preferred a more detailed book with more discussion of the core technologies employed by SignalR and how they can be exploited to their full potential.  Unfortunately this book focuses on the typical Hello World SignalR application of a chat application a lot of examples of which can be found freely on the internet.

Awarded Microsoft MVP Award for 2013

This afternoon I received an email from Microsoft to tell me that I’d been awarded the 2013 Microsoft MVP Award for ASP.Net/IIS!  This is my sixth MVP Award and I’ve mentioned before I am extremely humble to be associated with a great group of less than 5000 technical people around the globe.  I’ll be aiming to continue my efforts to help the community and deliver as much content as I can to aid and spread knowledge. 

DDD North 2013 Announced and Session Submission Open

On Saturday I attended the inaugural DDD East Anglia and took the ideal opportunity to announce the details for this year’s DDD North!  The event has been in the planning stages for a while and work continues apace.  I’m delighted to announce that we will be returning to the University of Sunderland on Saturday 12th October 2013 for DDD North.  The University of Sunderland’s Sir Tom Cowie’s Campus at St.Peters’ is a fantastic venue and was a fantastic place to study when I was studying for my degree many years ago.  We are working hard with the University of Sunderland, Sunderland Software City and Sunderland City Council to make sure this is the best DDD North yet! 

dddMedDDD North has launched a new site at and improvements and functionality is being added hourly at present as we ramp up our efforts.  The DDD North Call for Speakers is now open and will remain open till early-mid August before voting will commence so get your session submissions in now!  We’d love to see some new speakers submitting sessions as the original premise of DDD Events was to encourage and introduce new speakers.

DDD North is a free event and would not be so if it were not for the support of our fantastic sponsors.  If you know of any business or groups who would like to sponsor DDD North, we have a range of packages available and are open to discussions about suggestions, please get in touch using the contact form.

In the meantime keep an eye on for more news and sessions being added daily.  I look forward to seeing you at DDD North 2013 at the University of Sunderland!