Digital Marketing & Communications

We've seen 1s and 0s you wouldn't believe

Topic: Development

Monitoring and alerting

📥  Communication, Development, Tools

Almost all of the services the University provides are run on servers based on campus and which are managed by the Computing Services department.

Although many of these servers are now virtual, we're not yet at the point where the failure of one server prompts another to be automatically created to replace it, or where it is easy to do that replacement by hand at short notice.

This means that we sometimes have unplanned downtime.

Five months ago we expanded our usage of the off-site monitoring system Pingdom to check not just the availability of our homepage but also nine of our most popular pages and services.

It checks the web addresses of those pages and services every five minutes (or every minute in the case of and if it detects a problem it emails our support desk and sends me a text message.

When we've found out what the problem is, we put a brief explanation up on our web status Tumblr and again when the problem is resolved. This supplements the information published by Computing Services on their Twitter feed but also allows us to provide more specific information when we need to.

This is early days in exposing our service availability, and we'd like to get to a point where we can summarise recent data in a way similar to GitHub's status page but we probably need a bit more research on what our users would like to see first. There's also lots more fundamental work we can do in ensuring that visitors to our services don't simply get a 404 or blank screen when something isn't available!

So, what information do you think we should be making available, and how should we be doing it?

Update: I forgot to mention that Pingdom lets us make our service availability public, and you can browse that data in detail.


New blogs, stats for bloggers and drafting in WordPress

📥  Blogs, Development

We are continuing to develop as new bloggers join the network, as the number of posts increases, and as more readers start landing on and following our blogs.

Chris and Tom T spent last week setting up some new features and tidying things up across the network. Here are the highlights:

New blogs

We've welcomed 5 active blogs onto the network since we upgraded in March, including:

As well as demonstrating the range of activity going on here at the University, they also swell the number of bloggers. To make it easier to keep in touch with the owners of blogs ('blog admins') we've set up a new mailing list, which we'll be using to share occassional, relevant information about analytics and features for .

Those wanting to start a blog and join our illustrious ranks of bloggers should email with the following info:

  • what the blog is about
  • what you want it to be called
  • which categories you want to associate it with
  • who will be posting to it.

There's an earlier post with more detailed information about starting a blog.

Access to stats for bloggers

Blog admins can now find out how many visits their blog receives, and which posts and pages are most popular.

To access 'site stats' for your blog, log into your blog's dashboard (just like you would if you were going to make a new post), click on 'Jetpack' in the sidebar and then click on 'Site Stats'.

From the stats dashboard, you can explore:

  • views by days, weeks, months or all time
  • where traffic came from
  • which posts got the most views
  • what search terms were used to find the blog
  • what links readers clicked on.

All useful stuff that can help bloggers work out what to post about and when.

There is also a box on your first dashboard screen (when you login) that provides a summary of the blog's stats.

Stats are available in WordPress from July 28th onwards. Traffic and engagement metrics for each of our blogs are also captured through Google Analytics, so if you are looking for older or more detailed analytics, drop us a request via

Keep in mind that if you are a contributor to a blog rather than its owner, you will need to ask the blog admin for a readout.

Overriding imported formatting

We've set it so that when you paste from another source, like Word, the WordPress editor strips out all the markup that comes across hidden in the paste.

The paste will retain the line breaks but no other formatting. This will prevent weird formatting being accidentally brought into blog posts that WordPress and the page templates don't recognise, and which can make the posts hard to read or even look just plain broken.

Our big tip is to compose in WordPress itself rather than using something like Word. WordPress provides all the formatting options you should need in a familiar toolbar format, and it autosaves regularly so there's no need to fear suddenly losing work mid-draft.

Next on the roadmap

Over the course of the next 12 months we'll be adding new features and iterating the design of regularly in response to user feedback and requests from bloggers.

The next sprint - in September - will provide the ability to filter blogs by thematic category and by recency on the landing page, which will help readers find specific blogs and discover more of what's to offer across our network.

If there are features you'd like us to consider, email


A more accessible landing page for staff

📥  Design, Development

In a large organisation such as ours the range of input and navigation methods covers a wide spectrum ranging from mouse/pointer and touch screens to screen readers and voice recognition. We have a duty to ensure all users can access our information no matter how they navigate the site. Our delivery principles reinforce our commitment to put users needs first and foremost.

I've just completed a sprint to resolve a number of accessibility issues on our internal staff landing page - a high traffic page used by university staff on a daily basis. Some of our colleagues had raised issues regarding their ability to efficiently navigate the multi-tiered menu that provides access to key online tools and services for staff.

University of Bath staff page

Some visitors to the staff landing page had problems whilst accessing submenus

The issues

  • Accessing the Javascript-powered flyout submenus was at best erratic and at worst completely impossible using only keyboard input
  • Contextual feedback for assistive technologies was absent. Users unable to see the visual indicators were not aware the links had related submenus
  • 'Clickable' links were not explicitly declared as such
  • Some links were only used as 'hooks' for the Javascript functionality. These links were navigational dead ends for users unable to access the submenus

Our solutions

  • Increased the 'touchable' link area to encompass the image and the title. A small win for touchscreen device users :-)
  • Added relevant ARIA roles via HTML and Javascript. These provide additional information to visitors using assistive technologies regarding the role and status of elements on the page
  • Rewrote the Javascript functionality to ensure the menu is fully navigable via keyboard

But does it work for everyone?

Not quite yet. But we are working on it…

Although these changes are a positive step towards unlocking our content for all our users the solutions implemented above only really deal with those who navigate via keyboard, mouse or touch.

We're now actively looking at ways to give our users with voice recognition software the best possible experience on the University of Bath website. Simplifying navigation options and avoiding jargon will go a long way to helping those using only their voice to get around.


A Week With The Digital Team

📥  Communication, Development


I'm Rob, an A-level work experience student who was fortunate enough to be given the opportunity to join the digital team last week.

The past week has been a great experience, after being introduced to the self proclaimed king of the nerds and the rest of the team it was straight to work with Tom on the development of a replacement application for the old go.bath URL shortening service which is the first Padrino application to be shipped by the team.

Ship It

It was a great week working with the team, and I am very grateful for the skills that they have helped me to develop; from working amongst them in the twice weekly coding-practice sessions, to the weekly show and tell presentations and also being a part of the agile development practices.

Thank you very much for having me!

Thank You


Concatenate, minify, embed, serve.

📥  Development, Tools

Building a modern website which also performs well is hard. The amount of JavaScript and CSS we add to our pages is going up, but we still need to keep them loading quickly.

Tools like Grunt and Gulp help us manage these expectations by automating some of the hard work, and so it was that the development team spent Thursday in Bath's co-working hub, The Guild, learning about how to make best use of these tools from University of Bath alumni Jack Franklin and Ollie Jennings.

In the past we've used a similar tool for automating some of the hard work of managing and deploying back-end applications, so we were really interested in getting an in-depth look at tools designed for doing the same thing for the front-end bits of our sites.

Grunt and Gulp are both JavaScript-based build tools. They do pretty much the same job as one another, but with a different approach to task processing (Grunt is a synchronous build tool, Gulp is asynchronous), and using a different syntax.

Using either of the two it is trivial to convert SASS to CSS, concatenate your JS and CSS, minify them and then automatically add all your JS and CSS to your HTML in specific locations.

The session learning about the two tools was excellent, with everyone in the team learning lots, and it's likely that we'll soon start working with Grunt on packaging up and delivering our front-end assets!


Our latest release for

📥  Development, Style, content and design

When we upgraded in March, it was the first step in our ongoing mission to improve our provision for blogging. Tom T and Dan returned to last week to make a series of improvements based on your feedback. Our changes went live on Monday and we're excited to share them with you.

A new blogging directory

The landing page previously displayed all the latest posts from blogs across the network. This meant that the selection of blogs discoverable from the landing page changed from day to day, with less frequently updated blogs getting lost in the shuffle. We've now changed this to a list of all our blogs, although you can still view all recent posts from across the network. The search tool has also been removed from the homepage, as while you can search within individual blogs, we don't currently offer a search across the whole network.

Clarifying our colours

Following readability issues in some browsers, we've changed the main text colour to a darker shade. The default link colour has been changed from pink to blue, although you can still see a pop of pink on hover.

Screenshot of original blog layout used on the Digital team blog

Before the refresh: we're thinking pink.

Screenshot of the new blog layout on the Digital team blog

After the refresh: we've given our template a fresh lick of blue paint, darkened the font for better readability and improved the spacing.

We also set the default colour of the customisable stripe in the header to grey (although we've chosen a fetching green for our own blog). You can pick your own custom colour in the Dashboard under the Appearance menu by selecting Customise.

Space to breathe

We've increased the spacing between blog articles and improved the spacing in the header, particularly on small screens. We've also tidied our caption formatting and added more space between the bottom of captions and the top of the next paragraph, so your images and captions can really stand out.

Fixing up the footer

The "More blogs like this" section in the footer of each blog has also been reworked for better readability on mobile devices. Links will now fit the full width of small screens, rather than squeezing into two narrow columns. We've also fixed the link to the administrator dashboard and updated the default branding image from a GIF to a shiny new PNG.

What's next?

We've still got plenty of improvements planned for, including analytics for bloggers so you can see where your audience comes from and what your most popular posts are.

If you're not part of yet but would like to be, find out how you can start a blog.

Farewell IE 8. It's been emotional.

📥  Development, Tools

Dodo by Ballista at the English language Wikipedia

Perhaps the wrong kinds of emotions...


Web folk of the world feel anguish in supporting out of date versions of Internet Explorer, particularly when trying to use current features. For one site with users on IE 7, they famously offered to buy people brand new computers as a more cost effective means. And even though Windows XP (and with it IE 8) will be officially unsupported by Microsoft in a few days time, there is still a campaign to get its global usage below 10%.

Our recent work to upgrade our Research website to Foundation 5 was the latest encounter with IE 8 problems. For one thing, Zurb (the creators of Foundation), do not support IE 8. Foundation 5 comes with jQuery 2.0 and that doesn't support IE 8. Up until working on the Research site we got away with it, but this site in particular made more use of JavaScript than our other sites built in Foundation - including this very blog that you are on, Dear Reader.

What do the stats say?

We did try to make our code work in IE 8, but we found that the core Foundation scripts were throwing errors which caused our other JavaScript to not execute. It looked like a huge amount of time and effort to solve, so we did the sensible thing and looked at our IE 8 usage stats. It was my task to get the figures.

I looked at the recent trends and found that in the first quarter of 2014 overall IE 8 usage of our total traffic from outside the university accounted for 4.13%. I also wanted to check the conventional wisdom that it's mainly China stuck on Windows XP that push those numbers up. The numbers for visits from China on IE 8 came in at a surprisingly low 0.41%.

IE 8 is going the way of the dodo

The trend is definitely downward as for the first week of Q1 the share was 5.07% down to 4.52% by last week of Q1 whilst the previous year's Q1 share was 7.73%.

With these figures we were able to take the executive decision to demote IE 8 to "degraded support" status. OK, so it's not really the end of IE 8 for us but it should mean we spend less time doing work that doesn't have much of a benefit.

And with that discovery, there was much hollering and high-five-ing in The Digital Cave.


Here are the stats in a friendlier table:

IE 8 browser share of all external traffic to

Period % of total visits
Q1 2013 7.73%
Q1 2014 4.13%
From China Q1 2014 0.41%
1st week Q1 2014 5.07%
Last week Q1 2014 4.52%


The hard work behind the code


📥  Development

The other day, Ross wrote about the Digital team's delivery principles. I have been working on modernising our development infrastructure for the last few weeks and our fortnightly open house Show & Tell meeting (part of #6 - "work in the open") gave a great opportunity to talk about why this work is really important.

Behold the presentation:

Prezi talk on continuous integration
Yes, I used Prezi - don't judge me.

Principle #5 is "do the hard work behind the code":

The success of a great digital product or service doesn't rest entirely on what appears on screen. To deliver accurate, pleasing and sustainable products and services means investing in simple instructions, efficient workflows, accurate monitoring and great support.

In the above presentation three of the steps deal with testing and deployment to servers. This can be cumbersome and time consuming and there isn't a visible benefit for our users. Reducing the processes to a series of clicks saves developers time and mental energy which allows them to focus on developing.

It has taken quite a bit of effort to get everything behaving as we wanted. Building Play applications, downloading dependencies through the corporate firewall, running the tests, error-free deployment to load balanced Tomcat servers - all of these simple tasks become much more difficult when asking a server to do them. Finally though, we have reached a position where Bamboo is doing all of this for us automatically (or on demand in the case of deployment) and so the focus of developing our applications is back on the product rather than the infrastructure supporting it.

Continuous integration and deployment tackled. Now to write some new applications!


Nice web type in Internet Explorer 7 and 8

  , ,

📥  Communication, Design, Development

Recently we revamped our myriad font stacks (pun intended) to a single one utilising a single web font. The font chosen (Raleway) was available in a number of different weights, affording us the flexibility of presentation that we had previously relied on several different typefaces to achieve. Unfortunately, we soon discovered a feature of older versions of Internet Explorer than meant - when presented with a number of different font weights - it arbitrarily assigned one to everything and ran with it. Stylesheet bedamned. Phil, our dev manager, couldn't let this stand and quickly identified and created a workaround to the problem. I'll let him explain:

In essence, to enable smoother (and correct) implementation of font weights in IE, you need to specify and load each weight individually, ideally in the document and before the stylesheet that applies them. Here's the code we used:

<!--[if lte IE 8]>
        <link href="//" rel="stylesheet" type="text/css">
        <link href="//" rel="stylesheet" type="text/css">
        <link href="//" rel="stylesheet" type="text/css">
        <link href="//" rel="stylesheet" type="text/css">
        <link href="//" rel="stylesheet" type="text/css">

The result is we can now deliver smoothly rendered and correctly weighted fonts for everyone using Internet Explorer (7 and upwards), and given that a significant section of our site visitors run Windows—and have a version of IE installed—this is a very good thing.


The User Experience of Social at WebDevConf 2013

📥  Communication, Development

Last Friday I attended WebDevConf 2013 in Bristol where web developers, designers and even those just interested in making the web better got together to meet up and listen to some really interesting and inspiring talks.

One talk that I thought was really relevant was the one given by Luke Murphy-Wearmouth about not keeping social media separate to your website but to integrate it in the right way and that your website should be social by design.

Luke started by mentioning that there were 3 main social interactions: share, subscribe and discuss and that we want social validation and reciprocity.

Use common sense when sharing pages. There are certain websites that go the ‘easy’ way and just put “Share this page” as part of the template so that it appears on every page. This is not always the most appropriate implementation. He took an example of a booking site where it got to the payment screen so you could enter your credit card details but at the top it said “Share this page”. Why on earth would a user want to share their payment details on their social networks? He also discussed positioning where a website puts a summary of an article at the top of a page with “Tweet this” underneath it before the actual article itself or even have the share or tweet this buttons before the article. Not only does this break the flow of the page but would users really want to tweet or share pages before they have even read the article?

Two good examples of integrating social media are:

  • On a retail site selling clothes asking you to “ask your Twitter followers or Facebook friends if this would suit you”
  • On an event booking site adding a social media API such as Doodle so that when you are looking to book a ticket you can you can use this to find out what date and time is better for your friends.

Talking about making purchases on the web, some sites have a “go back to the previous page” on the booking confirmation screen where the last page was the payment details screen. Think about why a user would need or even want to go back to this page.

Above all, use common sense and think about the integration of social media rather than treating them as 2 separate entities.

View the presentation slides from the talk