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 »

Using Domain Driven Design Value Objects as Document Keys in RavenDB

October 18, 2012

See here for post on performance considerations of Value Object document keys in RavenDB.

Consider federated authentication where an identity provider, such as Windows Live ID, provides a “name identifier” claim for the user. The name identifier claim would be used in conjunction with another claim specifying the provider (thereby guaranteeing the name identifiers uniqueness) in order to identify the authenticated user. These name and name provider fields only have meaning when used together; both fields require validation; the fields should be immutable; the fields may be used internally within the application. For these reasons they would ideally be encapsulated into a NameIdentifier value object (VO) rather than being two unique and unrelated strings. Further, this value object would act a great identifier for a User entity type.
Continue Reading »