Friday, 4 June 2010

Percentage completion in a script decision tree

Came across an interesting problem today. We're working on a series of scripts for customer services people to work through different processes over the phone or face to face with the public. A useful indicator for the user is to see how far through the script they are. I've worked out how to get a nifty Javascript progress indicator working (i'll post the code and the inspiration in another entry) but the real question is how to work out the progress at each point in the tree.

The trees that we're working with don't have a fixed size; there is no minimum or maximum branch length. It's perfectly possible for one branch to be four nodes in length and another twelve nodes. We've thought about using the non decision nodes (ie where something gets input like a name or bank account number rather than the user deciding on something) but there aren't that many of those. Certainly not enough to stop a 0% or 100% scenario.

I've had a quick crawl of the web but can't find anything. I think the right way to go might be a 'worst case' approach whereby the script looks at the total possible number of nodes left and uses this as a basis to work out a percentage. This should be easy enough to implement with an xml parser.

Tuesday, 1 June 2010

HTC Desire is iPhone killer

I was lucky enough to get a new HTC Desire on Friday. After suffering from iPhone envy for the last couple of years I can safely say my HTC kicks it all over the shop. The Android OS is totally customisable and expandable by anyone; it comes with free satnav via the Google api; there are loads of funky apps and plenty of options when it comes to mail, sms and the web. This is what I have wanted for the last five years and now it is here.

Monday, 14 December 2009

SWIFT Gazetteer

We were commissioned on Friday to look into matching the SWIFT gazetteer (which is one of the databases used by social / wellbeing services) against the Local Land and Property Gazetteer. I was given a file that contained just over 110,000 address rows from SWIFT and started doing some of the investigation work today.

Happily about 80% of the SWIFT addresses had a UPRN (Unique Property Reference Number) next to them and I was able to match these pretty easily to the LLPG UPRNs; all of the values that were on the Knowsley LLPG file looked right apart from some postcode discrepanicies. Some of the UPRNs in SWIFT are out of borough (mainly Liverpool / Sefton addresses) and I'll need to get a copy of the Merseyside - wide gazetteer and repeat the process.

This leaves about 10,000 rows (ish) that need to be matched 'by hand' and I'll continue working on the routines this week. Doing work like this is pretty tedious but it's important to be thorough and to have a clear step - by - step process so that the work you do is transparent. We've done data matching exercises in the past so now I can use all that experience and write a clear, concise document explaining what I have done, what the results have been etc. (it's almost like writing up a science project at school). Someone else could easily follow my work and recreate what I have done, or use it as a basis for matching a different data set.

SWIFT doesn't follow the BS7666 format for organising address and there is data randomly strewn across multiple columns - you can see the house number in as many as five of the columns. So I'll need to do some work which standardises all the data into just a few columns and then try to match on these. The important thing is being able to explain why each row didn't match and this could quickly become labour - intensive. I'll post some more updates this week.

Wednesday, 25 November 2009

PLINGS and QlikView

Spent some more time working on the PLINGS app today. Tidied up the 'Create New User' form and improved the way it worked. This is probably the last application I will ever write in ASP.NET; having seen what DOJO can do I find the whole thing slow and unresponsive.

Also expanded the eClaims dashboard for QlikView with the help of one of our potential customers. The functionality that you can create very quickly was amazing and it has received a very positive response.

QlikView Reporting

Stumbled across an article in Time Magazine about a company in the US that makes a product called QlikView. It's a really, really good development suite for building data dashboards. It allows you to import tables of data and it automatically finds relationships between data. So if you load data about mileage claims (I've used this to put a demo together) you can quickly show the sum of all the unauthorised claims for a specific department in September 2009 by clicking a few controls. There are no complicated SQL scripts, no VB to change the data - it takes no time at all to get something up and running. There's also a full suite of controls - graphs, charts, dials, lists to make everything look neat and funky.

Did I mention it was fast! I can achieve in two hours something that would have taken me days of boring development time. Plus I know that I can easily train this out to other people on the team.

The sales team is coming in to see us on the 7th December and they have offered some free time to use some of our data and put together a polished demo. Hopefull we can convince customers that this is the way forward in terms of reporting / data dashboards.

Monday, 23 November 2009

GIS Dashboard Replication with STRATUS RIA tools / DOJO (8)

This morning I had a look at the different 'sub layers' available to me. Each map is built from a base layer (of which we have two, an OS map that shows streets, houses etc. as coloured polygons and a satellite map which shows cars, trees, phone boxes etc.). You can also add extra information on top of these such as plotting the location of libraries, one stop shops, bridges, bus stops and ward boundaries.

This is pretty useful because I now have a map of the borough with all the ward boundaries and the user can click inside one of the boundaries and see the stats for that ward. Now I need to figure out how to plot the geographic location of individual instances that occur in the ward which shouldn't be too difficult because the API has a method for doing that sort of thing.

GIS Dashboard Replication with STRATUS RIA tools / DOJO (7)

I have now (sadly) gotten into the habit of writing this a day late. I spent Friday morning doing some more work which involved getting the application to dynamically output a table of data and a line chart that summarised the data on every click of the mouse. The charting element is included in the DOJO library and took a little bit of figuring out while the table is just building and injecting a string of HTML into a DIV on the web page which is easy enough to do.