All posts by Jess Henderson

We’re hiring! Developer role in Bristol, UK

Hello, we’re looking for a Developer to join Delib HQ in Bristol.  We think we have a pretty good environment in which to write software. We have a big airy studio in a listed building in the city centre, and we’re a small enough company that everyone knows everyone else. It’s not perfect; there are never enough hours in the day, but we care, we say thanks, and we go out for lunches and drink together after work and I reckon that counts for a lot.

Typically we work well with people who’ve got a Computer Science degree and have been coding since at least their early teens. YMMV. We prefer people who can communicate with humans as well as computers.

We need to get some web app, support and operations stuff done. All developers do a bit of everything:

  • For frontend development we generally use XHTML, Less/CSS and JQuery/Javascript. We have to support a wide range of browsers including mobiles and tablets.
  • We generally use Python for backend development. Generally Python doesn’t suck. We work with python frameworks including Pyramid, Zope and Plone. You don’t need to have used these – or even have used Python – but experience with a web framework would be good.
  • Most of our app data is stored in object databases (ZODB) but from time to time we also use various flavours of SQL.
  • We have lots of devops things to do, including deployment automation for servers around the world. We use Ansible for this, along with a bunch of our own scripts. Again, you don’t need to have used Ansible, but it would be best if you’re not (too) scared of SSHing into linux servers, grepping logs and tweaking apache configs.
  • All our application code, automation scripts and configuration are version controlled using git, as is most of our test data. We all need to be able to modify, build and run each other’s code, so these days we’re pretty hot on documenting things too.
  • All developers take rotating fortnightly shifts as Developer on Support, which means we help our customers and account managers with technical issues via our online ticketing system, help sales people with quoting and tendering, and are generally available to answer questions without being excessively grumpy. This is actually really important – it means that developers get to see how the stuff we’ve built really affects our customers’ lives, and customers love getting a reply directly from the person who can fix their problem.
  • Unfortunately being on Support does also mean being on call. But calls/texts outside office hours are infrequent and if you do get called you get paid for it. Oh and don’t panic – you don’t get calls directly from customers.

These days we’re pretty good at using agile development processes like Scrum and Kanban. We also have grown-up things like continuous integration and Aeron chairs (or sofas to work on if that’s more your style). Bring your own laptop or we can supply one – you’ll get a decent quality Macbook Pro.

Hours and Salary

Could be a full-time, part-time or freelance scenario (but we’re not up for paying extortionate day rates to freelancers I’m afraid). Currently all Delib’s developers are part-time, with the option for scale-up days each month. We find that this arrangement suits our work/life/childcare/hangover requirements perfectly.

We’re offering £30-40k pro-rata depending on experience.

Contact details

Sound interesting? Send a cover letter and your CV to Jayne@delib.net. We don’t place too much faith in CVs, the covering letter is really what we look at. If we like the look of yours we’ll get you in for a standard hiring interview.

We follow the HMG Baseline Personnel Security Standard and you will therefore need to satisfy basic eligibility criteria/certain conditions of employment (e.g. nationality rules/right to work); and provide appropriate documentation to verify ID, nationality, employment and/or academic history, criminal record (unspent convictions only).

No applications will be accepted via recruitment companies.

Cheers,

Andy (Director) and Jess (Developer)

We’ve some important work going on behind the scenes….

Over the past couple of months we’ve been focusing our development efforts on improving our hosting and associated product environment via an appropriately titled ‘production infrastructure sprint’.

Although this doesn’t sound as exciting as adding features to our products, it’s a vital part of Delib’s service to our customers, as it helps to ensure that we continue to meet our uptime and performance commitments.  Here’s a little overview of what we’ve been up to.

Photo of our sprint calendar

What we’ve been doing

Up until recently we hosted all our customer instances on large multi-tenancy servers. ‘Multi-tenancy’ means that several Delib customer sites run side-by-side on the same machines, although all their data is stored in separate databases.  These servers live in secure data centres, physically located in the same territory as the customers they serve.  The data centres are responsible for providing Internet connectivity for the production servers.

Over the past few weeks, we’ve been moving customers slowly and carefully in batches from our current hosting providers to new providers who can better meet our service and uptime requirements.

Why we’re changing our hosting infrastructure

The reasons for migrating to new hosting providers are threefold:

1. Improvements in availability

In the UK, we are moving all our hosting to Rackspace, the market leader in cloud hosting, which offers a 100% uptime guarantee.  Since our uptime is necessarily bounded by that of our upstream providers, it’s important to use the best that we can get.  We are researching the best providers in other territories, to ensure that we continue to meet and exceed our commitments for all our customers.

We use a server monitoring service that notifies our account managers and developers by text message whenever a customer’s instance is unavailable for any reason (even if it’s in the middle of the night) so we’re all keen to ensure that these improvements pay off as soon as possible!

2. More hosting options for customers

After migration, every Citizen Space and Budget Simulator instance will live on its own virtual machine.  This allows us to offer different hosting packages for different usage patterns: we can now tailor the system specification (RAM, disk space, number of processors) to the requirements of the customer.  Furthermore, large spikes in one customer’s traffic can no longer adversely affect the response times of other customers’ sites.

Dialogue App instances will continue to run on a multi-tenancy setup by default.  However, customers with heavy usage requirements (eg large, heavily-publicised national dialogues), will have the option to host their Dialogue App instance on its own machine.

3. Consistent configurations and automation

As our number of customers grows, our developers have been spending more and more time engaged in administrative tasks such as rolling out new instances and upgrading existing customers.  While this is vital to the business and to our customers, developers would much prefer to spend their time developing new features and fixing bugs in the products.

At the same time as moving customers to the new hosting infrastructure, we’ve been improving our suite of developer tools so that more of the day-to-day tasks can be done without developer intervention.

For our customers, this means that planned maintenance should soon be able to take place, as far as possible, outside working hours.  It also means that developers will have more time to spend on improving our products, resulting in a better user experience for our customers and end users.

Find out more

If you are interested in finding out more about the improvements we are making please feel free to get in touch with either Louise or Rowena.

2014 Browser Usage roundup: Will IE7 soon go the way of IE6?

Roughly once a year since 2011 I’ve been doing a roundup of browser usage, based on visitors to two of our apps: Citizen Space and Dialogue App*.

As in previous years, I took the last month’s logs from our web servers, and ran them through an open source analysis package called Visitors.  In contrast to previous years, these stats now cover all our servers worldwide – not just in the UK.

Since visits to our Australian servers now account for a notable proportion of our apps’ traffic, this year I have also included a separate breakdown just for our Australian stats.

Worldwide browser usage

I’ve generated two different reports: one for our apps’ management pages (i.e. pages that can only be accessed by logged-in admin users), and one that includes public-facing pages as well. Here are the figures for our admin users:

March 2014 admin visits by browser: IE8: 41.4%; Chrome: 16.5%; IE9: 13.4%; Firefox: 12.4%; IE7: 9.5%; Safari: 3.7%; IE10: 2.1%; IE11: 1.0% Visits to admin pages by browser, March 2014**

It’s a relief to see that IE6 has not made a reappearance in the past year, and also that IE7 usage has dropped from 15.3% in April 2013 to less than 10% a year later.

We currently provide Level 2 support for IE7, which means that all functionality and navigation must work, and all content must be readable in IE7.  However, we’d much prefer to spend our time developing new features that benefit everyone, rather than fixing bugs that only appear in this eight-year-old browser.  Over the next few months we hope to encourage our customers to move to more modern browsers so that we can drop admin support for IE7.

The second chart shows visits to all Citizen Space and Dialogue App pages, including visits from members of the public:

March 2014 visits by browser: Chrome: 21.1%; IE8: 17.4%; Firefox: 14.8%; Safari: 14.0%; IE11: 5.1%; IE7: 4.8%; IE9: 4.3%; Opera: 4.2%; IE10: 4.0%; IE6: 3.9%; Other Mozilla-based: 3.6% Visits to all pages by browser, March 2014**

As you would expect, this shows a much wider range of web browsers, including a few visits from IE6. By the way, I’ve excluded visits from crawlers, bots, RSS feed readers and other things that aren’t conventional human-controlled web browsers.

It’s interesting to compare these stats with last year’s numbers.  In particular, the most popular browser is now Google Chrome, which has overtaken IE8 – last year’s frontrunner.  However, usage of IE8 still remains far higher amongst our users than you’d predict based on global figures from StatCounter.

Browser usage in Australia

Although the majority of traffic to Delib’s apps is served from our UK servers, traffic to our Australian servers now constitutes a notable proportion of visitors (8.5%, based on last month’s stats).

March 2014 australian admin visits by browser: IE8: 28.7%; IE9: 25.9%; Chrome: 23.5%; IE10: 8.0%; Firefox: 7.6%; Safari: 4.8%; IE11: 1.2%; IE7: 0.4% Visits to admin pages on Australian Servers by browser, March 2014**

IE8 is still the most popular browser amongst our Australian admin users, but its lead is far less marked than in the UK.

March 2014 australian visits by browser: Firefox: 20.2%; Chrome: 18.6%; Safari: 14.9%; IE7: 11.0%; IE9: 7.0%; IE6: 6.4%; IE11: 5.8%; IE10: 4.6%; IE7: 4.5%; Opera: 2.3%; Other Mozilla-based: 2.0%; IE Unknown Version: 1.2% Visits to all pages on Australian servers by browser, March 2014**

When we consider all pages, not just admin pages, it’s interesting to see that the most popular browser used to visit our Australian sites is Firefox.  This is in contrast to StatCounter’s figures for Australian Browser usage, which pegs Chrome usage at more than double that of Firefox.  The numbers here are fairly small (16K visits a month) so this could have been skewed by one particularly Firefox-heavy demographic of survey respondents, for example.

Notes

* Visits to our newest app, Budget Simulator, are not included here, as a lot of the administration is done by Delib account managers, and our choice of browser would skew the statistics quite a lot.  Also, the visitor profile of Budget Simulator leans quite heavily towards mobile users.  I feel another blog post coming on!

** For the purposes of these statistics, a ‘visit’ comprises all the requests from a given IP address and useragent on a given day.

Delib support – the inside scoop from a support developer

Back in the Summer, Karl wrote an article about the various channels of support available to Delib’s customers. Maybe I’m just naturally nosey, but I’m fascinated by other companies’ support staff. When I’m talking to my bank, my phone company or whatever, I always wonder what it’s like for the person on the other end. What is their desk like? Do they like their job? How many other people do they work with? So I thought some of you might like to hear five secrets from support@delib.

1. We’re not a vast, outsourced call centre

If you are an existing Delib customer, you will know that you have your own account manager. You can phone up and ask for them by name, and they will know who you are, which organisation you work for, and that you’ve just got back from holiday in France.

But did you know that the personal service continues when you email support@delib.net with your query? The first person who sees your query is likely to be your account manager. Often, they will be able to answer your question very quickly. If not, they’ll usually drop you a line to say that they’ve passed the question on to a developer who can look into it in more detail. The useful thing about emailing the support address is that it pops up in our support ticket system and I (the support developer) can see all the info you’ve provided, and the account manager’s response, straight away.

I might never speak to you on the phone, but I almost certainly recognise your name too, and know which organisation you work for. I might even know you went to France last week, if I overheard your account manager chatting to you about it. You see, in the UK office we all work within earshot (and potentially nerf-shot) of each other. When we answer your question, we sign our names, so hopefully you’ll get to know us too.

At any time, there will be one or maybe two developers answering support queries, along with one or two testers to check our work. That means it’s very likely that your entire query will be answered by the same developer. If you ask a couple of questions in the same week, you will probably get the same developer each time.

2. All Delib developers take turns on support duty

We think it’s vital that the people who develop Delib’s apps are the same people who support them. This insight works two ways: As one of the people who designed, coded and deployed the feature you’re having trouble with, I am the best placed to help you use it, or to track down the bug (sorry!) and work out how to fix it.

Conversely, having talked to you – a real user of the system – I have a much better insight into how you use it every day in your job. This really helps us when prioritising new features and understanding how we can improve the usability of our apps. In some companies, developers see their users as an anonymous “them”. When we plan the work for each release, we always like to use real names. “Bob from Westonshire Council had trouble using feature X last week. Is there anything we can do to make it easier to use?”

At the moment, we have a fortnightly rotation and hand over the support baton on a Thursday morning, so if you ask a question on Wednesday you may get answers from two different developers. Don’t worry though, we always have a handover chat with the person taking over, so they know which issues are open and how far we’ve got with resolving them.

3. We love our Knowledge Base

If you’re not sure how to use one of the features of our apps, the first place to look is in our Knowledge Base. If you don’t already know about it, I recommend you bookmark it. It’s a huge, searchable repository of user guides, FAQs, tips and tricks. If you’re using Citizen Space and are logged into your site as an admin, you can also get to the Knowledge Base via the ‘support’ link at the top of every page.

However, we don’t only recommend the Knowledge Base to our customers – we use it for all our internal documentation as well (obviously you have to be a Delib employee to see that stuff). One of the things that support developers do when we’re not answering customer queries is to keep the documentation up to date, and write handy how-to guides for our future selves, so that the next time a particular question comes up, we can answer it even more quickly.

4. We like it when people say ‘thank you’

Sometimes when I contact other companies’ customer support and they solve my problem, I wonder, “Should I drop them a line to say ‘thanks’, or is that just using even more of the support person’s valuable time?” Well I still don’t know about other companies, but here at Delib, we always appreciate a quick “Thanks, that did the trick.”

Of course it makes us smile to know you’re happy, but also it means we know we can close the support ticket without offending you, or worrying that we’ve left any of your questions unanswered.

5. This is what my desk looks like

  1. This flag means I am on support duty (we cheesily refer to the role as ‘Support Superstar’). The flag is attached to the side of my monitor with velcro. This morning I will give the flag to Alan, who will take over from me. Support Superstar doesn’t only do customer support; they’re also the go-to developer for any sales or operational questions that need a technical answer, so this flag makes it obvious who to ask.
  2. Kanban board. This is one of the ways we visualise the tasks we have in progress. It helps keep our turnaround times low on things like new customer rollouts. Jo wrote about this in her post on how we support our government clients.
  3. Consultants sit here.
  4. Account managers sit here (see, I told you they were nearby).
  5. Samuel the spider plant. He is a bit under the weather at the moment but I am expecting a full recovery.
  6. Tea.
  7. This blog post (paradoxically)
  8. Other developers, testers and sysadmin sit just there.

So, I’m signing off from support duty for now, but if you write to support@delib.net in a few weeks’ time, there’s every chance that I might be in touch.

Cheers,
Jess

Citizen Space’s API now speaks JSON!

About a year ago, I wrote a post introducing Citizen Space’s API. APIs (or Application Programming Interfaces), make software developers happy because they provide stable, documented ways for different pieces of software to communicate with each other.

In the case of Citizen Space’s API, we’ve focussed on providing access to the public-facing consultation listings. With some programming knowledge, the API allows you to embed a consultation search form on your own website, send a query to Citizen Space, display the results of the search, and drill down to display individual consultation records.

Version 1 of the API did this in a very straightforward way: requests to the API returned simple, un-styled snippets of HTML, which could then be included in the page markup and styled as required.

However, this simple approach doesn’t provide a huge amount of flexibility in what is displayed. For example, if you call the search_results API method and give it a set of search criteria, it returns an HTML list of consultations that matched the query, including a short snippet of the overview text and the consultation’s start or end date. That’s great if that’s what you want to display on your website, but if you only wanted to display the consultations’ titles, you would have to write code to do a lot of fiddling with the output from the API method, to remove or hide the details you didn’t want. And if you wanted to display more data than was included in the HTML snippet, you’d be in trouble!

Version 2.3 of the API, released this month, provides some new and improved ways to get hold of Citizen Space’s consultation records. The json_search_results method takes search queries in the same format as the original search_results method, but instead of returning HTML, it returns the search results structured in JSON (JavaScript Object Notation) format. JSON-formatted results are not quite as straightforward to include in your site – you have to extract the data and generate the HTML yourself – but it is much easier to select the exact data you want to display for each record, and decide exactly how it will be structured.

We also provide a method called json_consultation_details. This returns a JSON structure containing all the info you’d need to reconstruct an individual consultation’s overview page on your own website, with markup, layout and styling to fit in with the rest of your site.

For all the gory details, you can read the API documentation.

Integration with external sites is something we really want to prioritise in Citizen Space development. If you are looking to integrate more closely with Citizen Space and would like to see a specific piece of functionality added to our API, please drop us a line at support@delib.net. We try to ‘jump the queue’ with API feature requests and if they’re simple, we can often squeeze them into our next monthly release. Right now we’re focussing on access to the public-facing consultation data, but in future we want to introduce an authenticated API to allow, for example, the export of responses, or the programmatic creation of new consultation records.

Browser usage: could UK government finally be rid of IE6?

In what seems to have become a roughly annual tradition, I’ve just done a survey of the browser usage amongst our UK Citizen Space users. As in previous years, I took the last month’s logs from our UK-based web servers, and ran them through an open source analysis package called Visitors.

I’ve generated two different reports: one for Citizen Space’s management pages (i.e. pages that can only be accessed by logged-in admin users), and one that includes public-facing pages as well. Here are the figures for our admin users:

IE8: 43.2%; Firefox: 16.6%; Chrome: 15.5%; IE7: 15.3%; IE9: 5.7%; Safari: 3.1%; IE10: 0.5%; Other Mozilla based: 0.1%

Admin visits by browser, April 2013*

This first chart shows something wonderful: last month, nobody used Internet Explorer 6 to administer their UK Citizen Space site.

For those who don’t know, Microsoft’s venerable Internet Explorer version 6 (AKA IE6) was released back in 2001, and is notorious for rendering web pages very differently from modern, standards-compliant browsers. To support IE6, web developers have to spend a lot of time writing workarounds to make web pages display correctly in all browsers. Of course, this increases the cost of product development without benefitting those users who don’t use IE6. Last year Delib decided to stop actively supporting IE6 in our apps, and these latest figures clearly vindicate that decision.

The second chart shows visits to all Citizen Space pages, including visits from members of the public:

IE8: 20.6%; Firefox: 15.3%; Chrome: 14.6%; Unknown: 10.8%; Safari: 9.7%; Opera: 6.7%; IE7: 6.6%; IE9: 5.0%; IE6: 4.9%; IE10: 3.0%

All visits by browser, April 2013*

As you would expect, this shows a much wider range of web browsers, including a few visits from IE6. The ‘Unknown’ useragents are mostly made up of crawlers, bots, RSS feed readers and other things that aren’t conventional human-controlled web browsers.

It is interesting to compare our statistics with current worldwide browser usage. At the time of writing, Google Chrome and Firefox are the most widely used browsers, followed by IE9 and then IE8. In contrast, our stats show that IE8 is by far the most common browser used to access Citizen Space.

My theory is that most of the activity (both administration and participation) on our Citizen Space sites takes place during the working day, where people are less likely to have a choice about the software they use, and are more likely to be stuck with a slightly out-of-date standard-issue browser. Incidentally, Edd at GDS made some interesting observations about this same phenomenon last month.

* For the purposes of these statistics, a ‘visit’ comprises all the requests from a given IP address and useragent on a given day.

Introducing Citizen Space’s API: we’re teaching Citizen Space to play even more nicely with others.

We’ve always been keen to encourage Citizen Space to play nicely with other friendly applications on the web. For example, you can:

  • Link your consultation records to awesome sites such as EventBrite, so that consultations you’re running elsewhere on the web (or even offline) are still listed and searchable through Citizen Space.
  • Embed rich media from sites such as Google Maps, YouTube and Scribd into your consultation records.
  • Couple Citizen Space with third-party mailing tools, like MailChimp, to stay in touch with people who want to be kept updated.

We love these features and so do our clients, and they’re definitely not going away. However, we really want to provide more flexible ways to open up the data held within Citizen Space, and that’s why we’re so excited about our new API. “API” is short for “Application Programming Interface”. This is a set of documented procedures that third-party systems can use to communicate with an application.

API integration with Citizen Space requires more technical know-how than the features described above, so it’s something for your web or IT team to get their teeth into. The important thing is that the API doesn’t care what platform or language you use for your existing infrastructure. Citizen Space is written in Python and uses the Zope application framework, but other organisations may use WordPress, .net or Drupal for their websites, which are written in other languages such as PHP. Using the API, your tech team can use the languages and platforms that are familiar to them, but still access and manipulate the data held in Citizen Space.

Version 1 of Citizen Space’s API (included with April’s release of Citizen Space) is all about getting public consultation details out of the system so that you can include them in your own site. We’re providing ways to embed search forms, search results, consultation listings and consultation overview pages into your site.

But that’s only the first step. Version 1 of the API provides all of its output in simple, cleanly formatted HTML. This is quick and easy to work with, but we’d like to build on it by providing other output formats such as JSON and XML. We also want to publish more plugins for other systems, code snippets and example projects, because even we haven’t investigated all the exciting opportunities that this API provides. We’ve set ourselves up on Github, so all our Citizen Space integration projects will live there.

Looking further ahead, we’re going to think about how the API could be extended to include data from Citizen Space’s admin areas (with suitable authentication of course). For example, would you like to check your organisation’s intranet dashboard and see how many responses your QuickConsult consultations have had? We also want to consider how the API could be used to get information into Citizen Space.

Is there information in Citizen Space that you’d particularly like to access from elsewhere? Are there applications you’d like Citizen Space to play more nicely with? Are you using our API already? We’d love to hear from you.

New WordPress plugin for Citizen Space

Update – March 2015: The Citizen Space WordPress plugin is now deprecated.  We no longer recommend it as a way to integrate Citizen Space with WordPress.  If you are using this plugin in your WordPress site, please see the article How do I integrate Citizen Space into my existing website? for alternatives, or get in touch with us at services@delib.net.

 

We are very excited about the new API (or Application Programming Interface) that’s included with version 1.6.5 of Citizen Space, because it provides a standardised, documented way for third-party software to communicate with Citizen Space. However, the second word of that acronym, ‘programming’, is a bit off-putting for some people; writing software is not everyone’s cup of tea!

We know that lots of our clients currently use WordPress for parts of their online presence, so the first thing I wanted to build using the API was a plugin for WordPress. I wanted people to be able to embed consultation listings, search facilities and entire consultation records into their WordPress sites, without having to know PHP or any other programming language.

WordPress provides a handy facility called shortcodes. These are keywords written in square brackets [like this]. If you type one of these shortcodes into a blog post or page, WordPress interprets it in a special way and replaces it with dynamically generated content. If you download and install the Citizen Space plugin in your WordPress site, you will have four new shortcodes available to you:

citizenspace_basic_search – embeds the short keyword search form
citizenspace_advanced_search – embeds the advanced consultation search form.
citizenspace_search_results – embeds a list of consultations matching a predefined search, or based on the on the form fields above.
citizenspace_consultation – embeds an individual consultation record

If you want to embed a fully functional consultation finder in your WordPress site, all you need to do (after installing the plugin) is paste the 3 lines below into your page or post:

[[citizenspace_advanced_search]]
Search Results
[[citizenspace_search_results]]

If you are confident with writing PHP code, please feel free to fork the plugin code on Github and submit your own contribution, or use it as the basis for your own Citizen Space integration project. If you find this code useful, we’d love to hear from you.

Good news on IE6: government usage plummets in 2012

Almost a year ago, we published some interesting browser statistics based on the logs from one of our Central Government Citizen Space servers. We ran the logs through a piece of open source analysis software called Visitors, and this gave us an anonymous breakdown of all visits to Citizen Space, showing the browsers and versions that were used. We looked at the statistics for all pages, and compared them with the stats for pages only accessible to admin users. The results were insightful but rather scary: Internet Explorer 6 accounted for more than 1 in 3 visits by our Central Government admin users.

For those who don’t know, Internet Explorer version 6 (lovingly known as IE6) is a web browser that Microsoft released over a decade ago. Because it renders web pages differently (in some cases dramatically differently) from more modern browsers, web developers spend a great deal of time creating workarounds so that IE6 users can still access our websites. Of course, this increases the cost of product development without necessarily offering any benefit to the majority of web users who don’t use IE6. Coupled with the fact that IE6 now only receives limited support from Microsoft, almost everyone is in agreement that this ancient and decrepit browser must be phased out.

This morning, we had a comment on last year’s post from a reader who was interested in how Citizen Space’s browser stats had changed. Thank you Perry – you reminded me that I’d been meaning to re-do this analysis soon. So here are the graphs comparing the numbers 11 months ago with where we are today:

Central Government Citizen Space – all users (admin and public)

All users by browser, May 2011
Breakdown of visits by browser: IE8: 23.0%, Firefox: 15.6%, IE9: 14.9%, IE7: 14.9%, Chrome: 13.2%, Safari: 10.8%, IE6: 5.9%
All users by browser, April 2012

These statistics roughly follow the browser trends of the general internet population*, with IE8 and 9 increasing in popularity while the older IE versions decrease as expected. Pleasingly, IE6 usage has roughly halved since last May.

Firefox, Chrome and Safari have gained more of a stronghold in the past year, although interestingly, Internet Explorer as a whole has retained a far larger share of Citizen Space users than worldwide browser usage statistics* would predict.

Central Government Citizen Space instances – admin pages only

Admin users by browser, May 2011
Breakdown of visits by browser: IE8: 60.3%, IE7: 29.3%, Chrome: 3.8%, IE6: 2.4%, Firefox: 1.8%, IE9: 1.3%, Safari: 1.1%
Admin users by browser, April 2012


When looking at the statistics for our admin users, the most exciting thing is that usage of IE6 has crashed by 90% – from 35% down to 2.4% of visits. This is a great relief to us, and shows the huge effort that has taken place in government IT departments to upgrade users away from this insecure, ill-supported browser.

It’s worth noting that overall, usage of Internet Explorer among our Central Government users is more than 90%, compared to 34% worldwide*.

What next?

The interesting question is what levels of support to provide for different browser capabilities. We currently provide Level 2 support for IE6, which means that all content must be readable and navigable, but differences in styling and layout may exist. This works OK for our products at the moment, but as web users come to expect a richer and more fluid experience, the likes of IE6 are going to lag further and further behind. How small does the percentage of IE6 users need to be before we can stop supporting it at all?

To other web developers: when do you stop supporting ancient browsers and those with limited functionality? How much can you rely on the presence of client-side technologies like Javascript, cookies, HTML5, CSS3..?

To government IT managers (thank you for phasing out IE6 btw!) what level of support do you expect for older browsers? Do security constraints dictate that you disable features like Javascript or cookies?

As always, I’d love to hear your views.


*Worldwide browser statistics from statcounter.com.

“A better sense of place” – using geo-tools in consultations for searching and sharing (developer playtime)

I’ve recently spent some time playing with the idea of associating Citizen Space consultations with a geographic location.

We already do this to some extent. Consultations can be associated with one or more local wards or areas, so that visitors to Citizen Space can enter their postcode and see a list of consultations related to the area they live in. This is great for helping people find out what’s going on near them, but I’ve been itching to take this geographic information further. In particular:

1) It would be nice to show this information visually, for example on a map. This is particularly useful if a policy relates to a specific object (eg a building, road junction or monument), or an area that doesn’t correspond to pre-defined ward boundaries (eg a bus route, catchment area or park)

2) We love Open Data. If we’re storing data about a consultation, it’s always nice to make it available in a standard format so that other websites and applications can make use of it. We already do this using RDFa for many of our consultation details (see Tom’s blog post for a good run-down of RDFa and the Semantic Web), but currently we’re not sharing any geographic information with the rest of the world.

So how could this work? A sneak peak of Citizen Space pre-release features:

I’ve added some extra fields so that you can enter longitude and latitude coordinates when setting up a consultation. Alternatively, if you want to specify a shape (such as the footprint of a building), a line (such as a bus route), or an outline (such as the boundaries of a catchment area), you can upload a KML file to your consultation. If you have a GIS team or supplier, they should be able to provide this data in the right format.

Screenshot showing fields for adding longitude, latitude and uploading a KML file

When visitors view the consultation record, they’ll see an interactive map marked with the information you specified:

Map showing a single point

Map showing a single point

Map showing an outline

Map showing the outline of an area


While it’s instructive to show a map of the consultation area to Citizen Space visitors, this location data becomes even more interesting if we let third-party users and developers get their hands on it. In my prototype code, I’ve included three ways of sharing the data:

Method 1: KML
If you look at those screenshots you’ll see that there’s a link to a KML feed underneath the map. If you uploaded your own KML file, it will link straight to that file. If you entered coordinates, it will generate a new KML file just containing the point you specified.

KML is a very simple way to share mapping data with other online applications. It can be done using sites such Google Maps and Microsoft Virtual Earth without any programming knowledge. Lets say you’re consulting about a proposed cycle path, and have uploaded a KML file plotting the complete route of the path. A local parents’ group might use the KML data to overlay your route over their existing map of schools, parks and youth centres, to show how child safety could be improved by the construction of the path.

Method 2: GeoRSS
Citizen Space currently provides RSS feeds that let users subscribe to all the latest consultations, or consultations that meet certain search criteria. These feeds are also used by third-party sites to embed up-to-date consultation information, or to aggregate consultations from multiple sources into a single list.

If we have geographic coordinates associated with a consultation, it’s very easy to publish this information as part of the RSS feed, using the emerging GeoRSS standard. Apps that understand and are interested in the location data can use it in much the same way as the KML data above. Apps and users who are not interested in location data won’t see any difference to their feeds.

Method 3: RDFa
We’ve already mentioned how useful RDFa is for sharing consultation information between different websites and applications. Well, it turns out the RDFa specification includes the ability to link your document to a place, using the “based_near” tag. If you’ve entered latitude and longitude information when setting up your consultation, this extra bit of RDFa will be published along with the rest of the consultation record. Sadly I haven’t found many examples of applications that currently use the based_near feature of RDFa, but here are a couple of ideas I’ve been thinking about:

  • A visual version of the Citizen Space aggregator, that can display consultations from many different sources on the same map.
  • A mobile app that alerts you when you’re near an object or place that’s being consulted on.

This new code isn’t in Citizen Space at the time of publishing this post, but will likely be included in a future release.

If anyone else has ideas for making use of location-based consultation data, please drop me a line. The more good ideas we get, the more likely it is that this feature will make it into a future Citizen Space release.

I’d also be keen to hear of formats we could use to share the data other than KML, GeoRSS or RDFa. Has anyone used GeoJSON for example?