Darren Ferguson - Blog

30 January 2009 at 09:42

UK Government IT incompetency: fco.gov.uk

Tags: Ferguson, Sweden, United Kingdom, UK embassy Stockholm, Västerås, China, GBP, on-line application process, to as many systems, on-line application system, UK government, operating system
Author: Darren Ferguson

First of all I’m grateful that I live in a country where I can write a blog post with a title like the one that I have used.

Some friends of mine from China - currently living in Sweden - wanted to come and visit me in the UK. My complaints about the processes and paperwork involved in applying for their visa are an entirely different post, but I was at least pacified by the fact that the application could be made online.

After my government had extracted £72 from each of my friends for the privilege of them applying to visit me we were presented with a link to a printable version of their visa application containing the details that they had supplied with their application. This form, once printed was to be presented to the UK embassy Stockholm so their case for a visa could be assessed.

There was a problem though when we looked at the printable forms, all accented characters had been removed. This was to prove a problem, my friends live in Västerås which now appeared on our printable forms as Vsters.

I was in no doubt that the embassy would happily dismiss our applications on the basis of an incorrect address. I decided to get in touch and report a bug with their website.

Logically, I hit the contact us link and a fairly standard feedback form appeared. Indeed it was fairly standard with one glaring exception. In the text area where I was to enter my query some JavaScript was in place to ensure that I didn’t enter any characters except English letters, numbers and full stops. Basically an event handler that cancelled any key strokes deemed to be non-standard characters.

I appended this issue to my initial query and fired of an email (note lack of punctuation in my message).

When you make a visa application and go to print out the application accented foreign characters are removed meaning that you cannot enter a valid Swedish address. Ive just noticed you cant type some punctuation into this text area. Who builds the government websites. This is ridiculous. I build websites for a living and you are making basic fundamental mistakes.

I expected an apology, some excuse and a guarantee that the issue would be looked into, or more in line with previous experiences of UK government websites, no reply at all. What I got was quite a different response.

Dear Mr Ferguson
Thank you for your feedback.
Our site is not Sweden specific but world-wide. In order to be able to provide support to as many systems, PCs and means of entry to our on-line application process as possible we have had to design a fairly standard operating system. It is currently restricted to our business language, English, and providing a translation of our information into the local language of a specific country. Because it is restricted, it is permissable, on the printed version of a completed application form, to hand-write any additional information/make corrections that you wish.

We have passed your comments onto our technical support team for inclusion - if possible - in our next upgrade.

Hmmm, I smell bullshit. Either you don’t understand the issue or you are claiming it is by design. I decided to persist.

Sorry, I build websites for a living. Your reply doesn't make sense.
It is simple to build a system that accepts characters in any language.
If your technical department have told you otherwise they aren't very skilled.
Thanks.

Now whoever is sitting on the support desk wants to argue.

It does to us here as our business language is English, and the only language we currently provide punctuation for.

But we are keen to improve our system where we can and your feedback has been passed on to our technical support team.

I’ll admit I’m a little wound up now – you don’t provide support for punctuation or accented characters it exists by default.

Again, your point makes no sense.
Your feedback form does not accept question marks, colons etc which are all standard english characters.
Please just accept my valid criticism rather than trying to make an argument where there is no case for one.

Still support desk guy/girl wants to argue with me (I like the fact we are discussing punctuation even though the support individual clearly can’t spell the word):

Your original complaint, Mr Ferguson, was about the lack of Swedish punctuation: we have expalained why we do not - currently - offer puntuation in foreign languages. The lack of Swedish puntuation has not in any material way affected your ability to apply for a UK visa.

The reason for the omission of mandatory English punctuation from our feedback form is obvious: English is not the first language of most of our customers. The obligatory use of English punctuation would only make our customer journey more complex than is absolutely necessary.

There was further correspondence during which I grew more frustrated, but it became apparent that whoever was answering my emails was unable to even understand the point that I was trying to make. I gave up after receiving this response:

Our on-line application system tries to provide the simplest customer journey for the majority of our customers, who we require to use our business language, English, but as a compensation, not to any exacting degree - hence no English punctuation required (demanded...mandatory...needed): we can understand our customers without English punctuation (the lack of English punctuation being the basis of your second complaint,  Mr Ferguson).

But please be assured that your feedback is important to us and has been passed on to our technical support team.

So my major concerns. Who builds our government websites? Who designs and approves such poor functionality? How much of my tax gets spent on this rubbish? Finally, and most importantly how do I pitch? I’m sure I could show the government how well websites can work for you when they are designed and built properly.

In future when I read all of the stories about failed government IT projects which have cost the taxpayer millions, I’ll be a little less surprised having witnessed some of this incompetence first hand.

27 January 2009 at 15:53

Celebrate the release of Umbraco v4 in London this Friday

Tags: Copenhagen, London
Author: Darren Ferguson

Beer

As you may be aware Umbraco 4 is scheduled for release this Friday. Niels and Per are out in Copenhagen having a few beers to celebrate this milestone. Not wanting to be outdone a few of us over here in London are up for joining the celebrations and indulging in a shandy or two of our own.

If you want to come along, add a comment below or tweet with the hashtag #umbraobeerslondon. We’ll only go ahead if there is enough interest (say 6-10 people). With Niels offering to provide a beer or two for us there should be a free pint involved. Venue to be confirmed.

Hopefully see you all on Friday.

UPDATE: As of 11.30am on Thurs we are Myself, Lesley, Hendy + 1, Billy. If we get to 10 people before 8pm this eve we'll be on @ Bar 101 at 6.30pm, otherwise we'll cancel and try and arrange something another time.

UPDATE 2: I think we'll cancel as there aren't enough confirmed. If anyone wants to do another time let me know and I'll start a forum topic.

26 January 2009 at 17:35

Maps happily co-existing in Umbraco

No Tags.
Author: Darren Ferguson

I’m getting close to being done with the Umbraco ‘place’ datatype. As soon as Virgin Media restore my Internet service at home I’ll be ready to release!

Umbraco place datatype

Since my first post, place markers are now draggable for extra accuracy and you can place multiple maps within a document type. Maps in different tabs is now supported after an initial issue with maps which were rendered while not displayed.

23 January 2009 at 08:00

Teaser screenshots of new Umbraco ‘place’ datatype

Tags: Health Medical Pharma
Author: Darren Ferguson

I’m working on an Umbraco datatype that lets you lookup a place. The data stored is the latitude/longtitude of the chosen place as well as the name.

It is all working pretty well to date, I just need to ensure that multiple instances can be placed in a document type and that my use of jQuery won’t clash with any other instances that have already been loaded.

place datatype teaser

place datatype teaser

21 January 2009 at 12:30

UK contractors: Please read and take action

Tags: United Kingdom, GBP, MP, contractor, Politics
Author: Darren Ferguson

If you are a contractor/freelancer working in the UK please read the this article.

Uh oh.  Ministers are about to conceal MPs’ expenses, even though the public has just paid £1 million to get them all ready for publication, and even though the tax man expects citizens to do what MPs don’t have to. They buried the news on the day of the Heathrow runway announcement. This is heading in the diametric wrong direction from government openness.

Please take the time to write to your MP and make your feelings known. This can all be done online in approximately 5 minutes. This letter serves well as a template.

21 January 2009 at 08:40

Quick Umbraco tip: Display twitter feeds on your site

Tags: twitter search, XSLT, XML, Technology Internet
Author: Darren Ferguson

First, install the Ferguson Moriyama Feed Cache package for Umbraco. Make sure you read the install instructions which explain how to get the package to run as a scheduled task.

Grab the URL for your twitter feed, mine is http://search.twitter.com/search.atom?lang=en&q=from%3Adarrenferguson. You can turn any twitter search into an atom feed by visiting search.twitter.com and clicking on the ‘Feed for this query’ button after your search.

Next, configure the Feed Cache package to cache your feed. Open <webroot>/umbraco/plugins/FergusonMoriyama/FeedCache/feeds.config and add an entry like the following:

<?xml version="1.0"?>
<feeds>
	<feed>
		<url>http://search.twitter.com/search.atom?q=from%3Adarrenferguson</url>
		<localFile>twit.xml</localFile>
	</feed>
</feeds>

Wait a little while until twit.xml appears in the <webroot>/umbraco/plugins/FergusonMoriyama/FeedCache folder. If it doesn’t there is probably something wrong with your scheduled task setup.

Use the following XSLT macro to display tweets on your site:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:Stylesheet [<!ENTITY nbsp "&#x00A0;">]>
<xsl:stylesheet
 version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msxml="urn:schemas-microsoft-com:xslt"
 xmlns:umbraco.library="urn:umbraco.library"
 exclude-result-prefixes="msxml umbraco.library Atom"
 xmlns:Atom="http://www.w3.org/2005/Atom">
    
    <xsl:variable name="y" select="document('../umbraco/plugins/FergusonMoriyama/FeedCache/twit.xml')/Atom:feed"/>
    <xsl:output method="xml" omit-xml-declaration="yes"/>
    <xsl:param name="currentPage"/>
    
    <xsl:template match="/">
        <xsl:for-each select="$y/Atom:entry">
            <p>
                <em>
                    <xsl:value-of select="umbraco.library:FormatDateTime(Atom:published, 'MMMM d, yyyy @ H:mm')"/>
                </em>
		<xsl:value-of select="Atom:content" disable-output-escaping="yes"/>
            </p>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

Obviously you can just change your twitter search to look for hash tags, Umbraco related tweets or whatever you want. There is also a lot more information in the atom feed than I am displaying above and the XLST can be modified to your liking.

19 January 2009 at 15:18

TeamSite features I’d like in Umbraco #1 FormAPI

Tags: customer support site, overkill requiring significant hardware, AJAX, Technology Internet
Author: Darren Ferguson

I’ve been working with Interwoven TeamSite for several years now. For those of you who aren't familiar with TeamSite it is a commercial “Enterprise” content management system (Note: the inverted commas – I don’t like the term enterprise as it is so often misused).

In the last few years I’ve also started working with Umbraco. More often than not, Umbraco is my product of choice when building a content-centric website. In most cases TeamSite is overkill requiring significant hardware to host the content repository not to mention an outlay of tens/hundreds of thousands of pounds in license fees depending on the components of the Interwoven product suite that are required. I’m not saying that there is no case where TeamSite is the solution but for most freelance clients that I have Umbraco is free and more than sufficient.

But… Well, there has to be a but or there is no blog post to make. Every once in a while I hit a problem in Umbraco where I wish I had the TeamSite solution available. Luckily Umbraco is completely open and extensible so I’m canvassing opinion here to see whether anyone shares my enthusiasm for developing an Umbraco solution to an all too common problem.

We’ve all encountered the need for complex form validation when using a CMS before. Let’s take this TeamSite form as an example:

TeamSite

Above you can see that Title and Subtitle are both required fields but what I really want is to have to specify one field or the other. TeamSite provides a JavaScript library called FormAPI which allows me to implement this requirement  with a simple script:

IWEventRegistry.addFormHandler("onFormInit", function() {
		IWEventRegistry.addItemHandler ('/press-release/head/title', 'onItemChange', function(item) {
			var subTitle = IWDatacapture.getItem('/press-release/head/subtitle');
			subTitle.setRequired((item.getValue().length ==0));
		});
	});

The code above adds a handler to my Title field which is called when the value changes. The required status of the Sub Title field is then set dependent on it’s value.

Simple example, but immensely powerful. FormAPI provides all sorts of form manipulation such as hiding/showing, enabling/disabling fields making AJAX calls out to a server and even dynamically changing the validation regular expression of a field based on the values of other fields.

In case you aren’t ‘seeing the light’ just yet imagine the following scenarios:

  • Validate a phone number to a country specific format depending on the value of a country drop down.
  • Retrieve values for a city drop down via AJAX based on the value of a country drop down.
  • Only show fields relating to a right hand column if the ‘show right hand column’ checkbox is checked.

I do understand that you can create custom data types for Umbraco but this constrains any client side script to within the data type and makes it difficult for form fields to interact with one another.

I’d like to post the complete FormAPI reference here, but it sits on a password protected customer support site which suggests to me that it isn’t in the public domain.

I know that I’d find something like this incredibly useful in Umbraco. Some may argue that it is over complicated and not really appropriate for a simple CMS. I’m fully aware that the one of the major plus points of Umbraco is simplicity for the end user. What do you think?

There are a couple more TeamSite features that I think would make good additions to Umbraco functionality which I’ll try to blog about when I have the chance.

Oh and yes, the post it titled '#1' as there are more features I'd like to see in Umbraco, but I'll wait to see if I get shouted down on this one first :)

14 January 2009 at 13:56

Can’t be bothered to read? Listen to your tweets instead

Tags: mp3, Entertainment Culture, Business Finance
Author: Darren Ferguson

Here is a fun little hack I put together.

Visit http://www.bunbohue.co.uk/index.pl?uid=user&pwd=password

To get an mp3 file of the 5 latest items in your twitter feed. Although this is a 10 minute hack, I guess there is potential in subscribing to this kind of content.

I don't store any user names and passwords.

13 January 2009 at 13:25

Automatic linking in blog posts: more complexity

Tags: Perl, XML, Technology Internet
Author: Darren Ferguson

Following on from my previous post I've begun to realise that automatically linking key phrases in blog content to URLs is a little more complex than originally imagined.

Take my blog as an example. My posts often contain source code and other technical information. This source code could contain my key phrases, for example Umbraco and Perl appear frequently.

How do I get my auto linker to be smart enough to understand the context of the content it is manipulating and ignore key phrases in code?

Solution #1 would be to only parse the content of specific tags or more likely exclude pre tags from parsing as the tag implies that the content is pre-formatted and not to be modified. The problem here is that instead of using regular expressions to manipulate the content we would need to do something more complex, perhaps parsing the post content as XML so we have a notion of node structure.

Solution #2 is to put parsing back into the hands of the user, only parsing blocks of text that they specifically select in TinyMCE.

I haven't made a call on this yet. I'm more likely to go with option 2. Any thoughts appreciated as usual.