Wednesday 4 November 2015

Live and learn – Part 4,235

Here we are again, back again with the bane of all programmers lives:-

Dates! and I’m not talking about the kind that makes you run for the toilet or the ones that keep you regular either! There’s only one thing worse than dates and that’s the formatting of addresses which everyone seems to make up their own rules for, bygones….

Click here for full blog.

Written by Conrad Rowlands, Team Leader and Lead Developer, Developer Solutions


Monday 12 October 2015

Coping with Large Dimensional Workflows

I have recently been working on a third tranche of ETL work for a client which is basically a reasonably complex data warehouse. Its been a great project and I’ve loved getting down and dirty with their data although there have been some frustrating elements to the project, which as I have not worked on such a complex linear project before, I did not foresee as being an issue. This blog is a discussion of the main issue which I will attempt to give a working strategy to deal with.

Click here for full blog.

Written by Conrad Rowlands, Lead Developer, Developer Solutions


Man of Distinct(ion)

Its not often that I learn something new about the fundamentals of SQL. Sure they add to the syntax all the time and you learn something  about what you can do with these addition but fundamentals, that’s basic stuff – the kind of stuff you rattle off a thousand times a day without even thinking about it . I’m talking about  stuff I should have known though it seems that I am not alone so I thought I would share this tidbit. This knowledge  is to do with the DISTINCT keyword of all things.

Click here to read full blog.

Written by Conrad Rowlands, Lead Developer, Developer Solutions


Thursday 8 October 2015

Lookup Date Values in DTS package

I recently came to extend some DTS packages that we have implemented for a client to include a LOT of new Date styled dimensions. You know the kind of thing… We have a date table with all of the possible dates over the last 400 years which we all figure should suffice. If I’m still coding beyond this date I’m not entirely sure that DTS will be the framework of choice, Hell its already VERY superceded even as we speak! What I did not appreciate was that date look ups would be problematical in DTS.

Click here for full blog.

Written by Conrad Rowlands, Lead Developer and Team Leader, Developer Solutions


Wednesday 16 September 2015

Grouping multiline SQL data using XML


A friend of mine recently asked for help with a bit of SQL he was working on. True, he was in a far away land lording it up and I could have ignored him on general principles but the way I look at it is this… If he’s out there and in work he’s not over here making a nuisance of himself (Only joking George). So I decided to help, selfless creature that I am!

For full blog click here.

Written by:  Conrad Rowlands, Developer Solutions

For further information, visit www.developer-solutions.co.uk.

Improve Readability using ROW_NUMBER()

What did I ever do without the TSQL Row_Number() functionality. I do remember way back in days of yore (when I had youth, less weight and even less sleep) wishing that with straight SQL I could achieve a row count within my data. I seem to remember we cobbled something together but it was less than satisfactory. Code it seems is always about compromise…

Click here for full blog.

Written by Conrad Rowlands, Developer Solutions

For further information, visit www.developer-solutions.co.uk.

How to keep your SSIS package ‘DRY’

So, you all know the deal… When it comes to coding there is one rule that all half decent programmers aspire to; Nope, it’s not ‘Never toss a dwarf’ which whilst being reasonably good advice is probably not quite relevant to normal weekly challenges at the coal face of code. It is this, Keep your code DRY

Click here for full blog.

Written by Conrad Rowlands, Developer Solutions

Visit www.developer-solutions.co.uk for further information.

Bring Out 'Yer' Dead!

For any Python fans out there you’ll be well aware of the ‘Bring out yer Dead’ scene from the Holy Grail film and this particular blog draws heavily on that sketch for its inspiration. For anyone not familiar with the genius that is Monty Python the scene shows London in around 1665, the populace gripped in the full throes of bubonic plague. Eric Idle is pushing a death cart through the streets yelling ‘Bring out yer dead’. A few residents dump their less fortunate relatives onto the pile of now deceased bodies before John Cleese tries to offload his very much alive grandfather for the full ninepence. Despite the remonstrations from the clearly far from dead old man they eventually come to an agreement, knocking the old man unconscious into the bargain. Nobody expects corpses to have so much to say.

Click here for full blog.

Written by Conrad Rowlands, Developer Solutions

Monday 18 May 2015

Drowning in Data

As with many of my blogs the idea for this one came after listening to a late night Radio 4 programme. The programme was one of my regulars, Costing the Earth, an environmental programme, which was entitled The Ozone Hole, Thirty Year On.  The more I thought about this article the more I thought that this was pertinent to my industry and later that night I then remembered a meeting from a couple of days back. The meeting had been with a company providing feedback systems for care homes and I saw similarities which I then realised can be extrapolated to many many businesses.

Click here to read full blog.

Written by Conrad Rowlands, Lead Developer and Team Leader, Developer Solutions

Monday 11 May 2015

Nothing's Changed

I swear that this will be on my gravestone when i die,

‘Here lies the Proud Salopian. Nothing’s Changed,Late as always’

Nothing’s changed, the mantra of every software developer that has ever coded anything which made it outside their bedroom.

It was a conversation with one of my bosses that started this blog off. I was having issues with a web project that had suddenly stopped working and was talking about my epitaph when he remarked that it was a phrase that wound him up as that whenever non technical people used this phrase it would normally turn out that something had changed! I know what he means, Calls to the help-desk are a constant reminder that things change all the time its just that most of the time the user has discounted them as they have no knowledge of how a thing works or they cannot see a connection between two pieces of software. The truth is inside the average operating system environment, things change all the time. Files are being written constantly, logs made, optimisations applied and decisions are made on your behalf. Generally, the user has accepted these changes and when they say that nothing has changed they just don’t remember the day by day events that have shaped the eco-system of their digital working environment.

Click here for full blog.

Written by Conrad Rowlands, Lead Developer and Team Leader, DSCallards




Thursday 7 May 2015

No Comment

So Mr Salopian… How are things going with this ‘No Comment’ policy. Well, says I (looking to the sky and wishing on the long dead bones of Darwin that I actually believed in some higher being) good and bad. I’m not really struggling myself with the concept but I DO struggle with legacy code that is unclear in its intent. Yes, You find me still still battling with the demons of Dicom and converting our Leadtools v14.5 application to the latest and greatest version and in the process coming across some…. challenges. I’m not going to bitch about the parentage of the person who wrote the code or suggest that they should be prevented from accessing a computer ever again or anything like that. The truth is, I worked closely with the guy for about ten years and we had a great working relationship with a lot of mutual respect. We could both rely on each other in a jam and could step in and out of each others code without scratching heads too much.

Click here for full blog.

Written by Conrad Rowlands, Lead Developer and Team Leader, Developer Solutions

Solution Wide Compiler Directives

Continuing with my legacy migration of an application developed using Leadtools Medical Suite v14 to utilise Leadtools Medical suite v19 I blogged a few days ago about how I was attacking it using Conditional syntax dependant upon the library I was compiling against. My primary reason for doing this is that if I have issues with regard to the codebase I can easily revert to testing against the previous codebase using EXACTLY the same code and thus eliminate new issues from pre-existing ones. There are several ways that compiler directives can be utilised none of which entirely suit my needs and I thought I would share how I addressed this issue with y’all.

Click here for full blog.

Written by Conrad Rowlands, Lead Developer and Team Leader, Developer Solutions

Conditional Love

Continuing with my work on converting a legacy application from Leadtools Medical v14.5 to Leadtools Medical Suite v 19 I came across the following annoyance which I felt compelled to share. One of the issues with moving a fairly complex and large application from one series of libraries to another just how you go about breaking things. Any fool can rush in deleting reams and reams of code and replacing the old libraries with the new libraries and then writing thousands of lines of new code only to find that the intent of the application is now not right and it is no longer functioning as was intended. Yes, user testing will pick this up but user testing is to make sure a product is ready for release, and NOT an extension of development.Unit testing will pick up some issues but in general the bugs will be many fold and extremely subtle, especially in already complex software. The key to migrating a functioning LOB application from one library set to another is thus breaking things slowly and in a controlled manner (much as I love the ‘Move Fast and Break things’ approach of Facebook which is fine and dandy if you are the client and accept the risks, generally they dont!).

Click here for full blog.

Written by Conrad Rowlands, Lead Developer and Team Leader, Developer Solutions

We Want Information (DICOM Information)

And so continuing with updating our legacy leadtools application from v14.5 to v19 of the Medical Suite I came across something which had me scratching my head for a little while and I thought as it did I would like to share it with the community so that others hopefully don’t have the same issue.

The issue I was having was related to loading a trying to Insert a module (and the related attributes) into a dataset. For some reason it just would not work. I then stepped back and compared my legacy code with the new code and came across the following anomaly. The InformationClass was not set in my new code. Odd….I was expecting to see it as a type CTImage. I then retraced my code and noticed that the newer libraries did not have the equivalent GetInfoDS method which seemingly loaded this information. So I dug and dug looking to see if a more object orientated approach had been taken to this population but all of my searches drew a blank. I suspected that I had arrived at the answer but the solution still eluded me.

Click here for full blog.


Written by Conrad Rowlands, Principal Developer and Team Leader, Developer Solutions

Embedding LEADTOOLS License Files

I have my colleague Jamie to thank for this particular blog. I have recently come to migrate a legacy project written using Leadtools v14.5 to v19 of the Medical Imaging Suite and so during a conversation with Jamie he showed me a nice way of embedding the Leadtools licence and developer key within the .NET application. I’m sure it’s not going to bring about world peace or halt global warning but it might stop you prematurely looking like the guy above without the aid of a CT scanner. In all seriousness its just a nice tidy way of handling the licensing, So with out further ado:-

Click here for full blog.

Written by Conrad Rowlands, Principal Developer and Team Leader, DSCallards

It's All Just Words ...

Whilst migrating an existing framework version 2 application to version 4.5 of the .NET framework i came up against the following mixture of words for an error message that to be honest made me just blank over at the descriptiveness of it all.

Click here to read full blog.

Written by Conrad Rowlands, Principal Developer and Team Leader, DSCallards

Let's Get Physical

So, its something that’s been eating away at me for some time and it seems like I’m not the only one with several eminent galleries announcing that for the sake of posterity all of their digital images are to be stored as physical images. At first this sounds like madness with hard copy documents all being subject to the harsh world of the physical; Fire, damp, dirt, degradation, expense of storage space not to mention theft and any other amount of physical damage that may occur. This is however a very short term view, true; that photo stored on an array of local devices backed up on a server half way across the world with highly documented  recovery procedures spanning political and geographical borders seems on the face of it fairly safe… I mean, no one has ever irretrievably lost data like this except… they have haven’t they? Just ask the Inland Revenue! Still, balance of probability and given a certain amount of intelligence; that data will be safe as houses at least for a short period of time.

And then that term reverberates through my mind, safe as houses… Houses ARE SAFE because they are strongly based in the physical world. Anchored in reality through concrete foundations in a world in which the pure physics of interactivity just does not change. Gravity works and is constant, not constantly changing. We don’t suddenly find that our hands are no longer compatible with doors and so we can no longer enter the house, nor do we find that bricks suddenly become invisible and offer no resistance to burglars just because we fit new windows. The same is to a large degree also true of software, however there is a fundamental difference which underlies this… the landscape or Eco-system of computers changes at a rate that is far from geological so the physics of the ‘known universe’ changes with alarming speed. This of course means that some of the lesser known file formats appear and disappear within a matter of a few years and the means to read them disappear within a generation. Now, How safe is your data? That data spread around the globe, backed up in nuclear blast resistant silos. The answer is of course, still totally safe but completely inaccessible!. Now extrapolate this position over a century or two with priceless pieces of art and you can see why these galleries don’t want to entrust the Monets and Rothkos of today to the digital world. They are just to valuable to be entrusted to the transient world of software and computers.

My own situation is slightly different though not unconnected, my problem is what happens when your amazing photography collection is up there in the cloud on Facebook/Instagram/iCloud etc. The answer is of course… Nothing, it gets largely forgotten about. Sure if you suddenly remember you need a photograph of some event or such you go and look for it, generally spending hours to do so as you don’t know which album it was in. But how often does anyone as a family sit around  the computer screen cooing and ahhing at cute photographs of back in the day. I would imagine that for others just like myself it never happens. This is a shame, especially when you  now consider that there are probably far more photographs being taken at this time than ever before with every family having not just one photographic device within the household but many. I know that within our ‘creaking at the seams’ house there are around 20-25 digital cameras of differing types what with iPhones, iPads, Bridge cameras and compacts. There is never a day when photos are not taken and yet these photographs end up in a public silo safe, but never really employed or enjoyed; whole family events backed up in every crevice of the world for maximum availability but only viewed infrequently by one person browsing an album if even that happens. Why? I guess a part of the issues is that the quality of these photographs is maybe not in direct proportion to the quantity. They capture a moment sure, but maybe we are just bombarded with sheer number and due to the fact that absolutely EVERYTHING gets saved they have lost their ‘specialness’ or at least they get tarnished with the brush of all the awful and substandard photos we take. Except, photographs haven’t lost their appeal, as can be proven when one family member stumbles upon a photograph album… within 10 minutes it has become a family event that can last hours, at least it does in our house!

So why this media gap? You could argue that the ease of capture has devalued our experience with the finished media, that the sheer volume turns us off ever browsing our extensive archives or that we are just not selective enough with what we choose to keep, with what we regard as special. My own feeling? We just like and interact with physical things more positively, we feel involved not detached from them. We can’t zoom the image, change it, alter the colour or airbrush the things we don’t like; we fight over who has the best view of the album and we all hang off each other generally being very invasive of personal space and yet we get far more enjoyment out of these experiences than our full screen fully interactive sterile digital albums.

Maybe not what you expect a software developer to say….Lets get Physical? Hell Yes!

Written by Conrad Rowlands, Team Leader and Developer, DSCallards  

Six Benefits for Mobile Business Apps

At home, on the train, waiting for the kids, in the queue, at work, in the car ...

Mobile devices are used everywhere, and that means EVERY business has to embrace the technology and extend their systems to incorporate the current single largest pervasive technology.
Businesses have traditionally built their operational foundations on paper-based processes; these are highly inefficient, cause slow turnaround times, errors and provide poor operational visibility. Mobile apps offer unprecedented opportunities for streamlining business processes - especially as they become more prolific.

Mobile apps aren’t just confined to consumer use but are now being used by businesses for their internal operational processes such as data processing, signature and photo capture and much more.

So why should you consider leveraging the opportunities a mobile business app can offer?

The Six Benefits of Mobile Business Apps*

1. Rich data capture in real time: Processes are dramatically slower if you have to collect your data before manually uploading it to your business system. With a mobile app you can have always-on, always available, rich data capture in real time including; text, numbers, photos, signatures and GPS locations, all on a mobile phone/device app. This enables increased data visibility to key decision makers without having to be in the field, in turn giving them the ability to make a decision from the office while receiving the data in real time.

2. Work Offline: You are also able to access and collect your data whilst offline. The mobile app automatically synchronizes data in the background and stores it on the device, so that users can access data in the app even without connectivity. Captured data is also stored in the cloud so that no data is ever lost.

3. Reduce problem solving time: An issue in the field can take a long time to resolve if the right support isn’t available, this in turn can cause costly delays, e.g. confusion with project plans and measurements. Having real time communication and data availability can assist experts in providing guidance to remote field workers, dramatically decreasing issue resolution time.

4. Work the way you live: We are all adopting mobile apps in our everyday lives, whether it be for shopping, social networking or organisation. Workers are increasingly using smartphones in their private lives and expect to have the same capabilities at work. This is now possible with the development of mobile business applications that can support field workers to make more timely and effective decisions on-site.

5. Custom Branding: Your business app can be customised to suit your unique requirements whilst being consistent with your business branding. Your company name, logo and the processes can be integrated into a unique app which fits your business needs.

6. Fast and easy to use: Mobile apps are very simple to use plus the devices are small, light and easily transported. There is no need to carry around big old bulky devices or a clipboard, pen and paper which can be easily lost, when this technology is available. To progress in their industry everyone should be looking at adapting to change and using the most up to date technology.


These are just a few of the benefits of having an enterprise app and reasons why businesses should look at investing in getting one. The key point to remember is that mobile business apps will increase employee productivity regardless of time or location.

So why not be in control and plan your company strategy with applications that work on mobile as well as your desktop and be ahead of the game?

Building and deploying customised mobile apps has traditionally been expensive, slow and complex. With the availability of more stable and effective development platforms we can now have them built in weeks rather than months, with less hassle and cost.

The business world is moving very quickly towards running on mobile as well as traditional desktop – why don’t you join us in this revolution?

Talk to the experts on 0800 652 4050 to see how we can help today or visit us at www.developer-solutions.co.uk.

*Source:  The Grove Group

Who Supports Your Current Software Applications?

Many businesses today use custom built software applications to fit better with their business processes, rather than be limited to 'off the shelf' solutions'.

Quite regularly these applications are critical to the smooth running of your business.

However, in many instances, the original Development, Test and Support teams are either reduced in size or are have moved onto other projects as the application has been built and delivered.

But what if Operating System updates or browser compatibility changes mean that an application has issues?  Or database updates lead to changes required within the original application?

This is where DSCallards can help.

DSCallards supply development configuration, support and maintenance for your applications within a wide range of technologies to ensure the business is kept running.  And when systems need big change, we are there with the knowledge of your current business systems and processes to design, develop, implement and support these new applications.

We can provide you with peace of mind by providing support and maintenance for your software systems.

Click here and take a look at our website to see how we can help.

Alternatively you can speak to one of our team today to find out how we can help you to take the strain!