Social Media: A force for good or evil?

January 16, 2015

In March his year, in my role as STEM Ambassador, I am lucky enough to be giving a guest lecture at Falkirk Science Festival for 16-18 year olds. The topic is “Social Media: a force for good or evil”.

Sitting down to write the blurb for the lecture, I quickly found that finding the words to appeal to this age range was more challenging than I had expected. In particular the first draft highlighted to me that I’m not as “cool” as I once (thought) I was. However by putting on bermuda shorts and untucking my t-shirt I found some inspiration, and words started to flow. This is what I came up with… Continue Reading »

Using Clojure for Sentiment Analysis of the Twittersphere

January 15, 2015

One of my favourite talks to give in 2014 was about sentiment analysis using Clojure. I’ve pulled together one of the videos with the slides below. In particular, thank you to audiences in Belgium, Poland and Germany for making sure I pronounced datensparsamkeit correctly 😉

Size Matters

January 14, 2015

An important and contentious topic within IT which, in my experience, closely relates to success is size:

  • Size of change programs
  • Size of a projects
  • Size of a teams
  • Size of software
  • Size of classes/objects
  • Size of functions/methods

People in the trenches of software development, i.e. the people cutting code, have learned some hard lessons about size which are equally applicable at all levels in IT. These lessons, when applied to the wider IT landscape within an organisation, can have a profound impact on success.

Continue Reading »

Are we building the wrong thing faster?

December 17, 2014

Watching the spread of practices such as Agile, DevOps and Lean Enterprise, I am excited to consider that software development is maturing. However, with such practices growing in popularity we really need to consider more deeply “are we building the right products and features?”.

Continue Reading »

Medical Image Analysis with Hadoop

April 24, 2013

I recently did an investigation into the use of Hadoop in medical image analysis where the aim was to automate the calculation of lung volume from 3D CT thorax. The project was successful (details outlined in previous link), however what became apparent over the course of the investigation is that there are many ways to attempt – and perhaps even achieve – image analysis.

Continue Reading »

Big Data – Part 2: The Technologies on the Landscape

November 25, 2012

Continuing from Big Data – Part 1: Big What? where I explored what the concept of Big Data is and the possibilities it presents, I now want to to consider the constituent parts which together make up Big Data. I also want to look at some of the key vendors and products on the market which are enabling Big Data analytics. Continue Reading »

Big Data – Part 1: Big What?

November 18, 2012

Big Data is a topic which I find very exciting. Data provides knowledge; it provides insight; it highlights trends; lets us glimpse the future; helps us to understanding the past. Data allows us to learn from our mistakes. It allows us to make expert decisions at difficult times. It can keep loved ones alive whether through mission critical air traffic control systems or cutting edge medical research.

However, data can only enable us to do these things if it contains the correct fields, or collection of fields, which influenced any given scenario. As humans we cannot consistently and accurately predict all of the pertinent information to collect to enable us to retrospectively dissect a given scenario. What’s more, we don’t always know what we want to find out until the opportunity for tailoring the data collection process has long since passed. We need mechanisms which allow us to gather huge amounts of data which can be stored, managed and analysed in volumes we have never considered before. This is the realm of Big Data. Continue Reading »

Value Objects as Document Keys in RavenDB: Performance Considerations

November 11, 2012

In a previous post here I detailed a mechanism for using structs as document keys in RavenDB. This is useful for simplifying a domain model, especially where a meaningful identifier already exists out with the application. In this post, however, I want to explore some of the potential performance issues with this approach if not used carefully/sparingly. This post starts by detailing steps that can be taken to maximise performance when working with structs in general, and the goes on to highlight some unavoidable performance costs that you should be aware of with non-string identifiers in RavenDB when deciding whether or not to take this approach. Continue Reading »

Debugging Cookie Dependant Multi-site Integration in Visual Studio

November 4, 2012

New web applications must often integrate with existing websites. Achieving this is commonly dependant on the sites being able to set and consume cookies for each other. There are, however, clearly defined rules around the usage of cookies which can make developing and debugging the new application challenging. This post outlines the main challenge of developing and debugging cookie dependent multi-site integration – the domain restriction on cookies – and highlights an approach to overcoming this challenge in a debugging environment. Continue Reading »

Complex Claim Values with WIF

October 28, 2012

The Windows Identity Foundation Claim class has a property named Value which is of type String. This being a string can be somewhat restrictive. There are clearly defined reasons for this limitation:

In order to reduce dependencies and simplify administration, in WIF the value of a claim is represented only as a string. For more complicated value types, it is recommended that you use standard XML schema types to serialize the value into a string. – msdn

In addition to this, claims must be serializable in order that it be persisted to the FedAuth cookies by WIF.

However, there are occasions where it is difficult to encapsulate a value in a simple string. Consider attempting to store an individuals passport details in the ClaimCollection of the users ClaimsIdentity: this doesn’t happen easily out of the box. Continue Reading »