Category Archives: Misc

Spell check not working in LibreOffice?

Is the spell check in your copy of LibreOffice not working?

When I installed Ubuntu 17.10 and set my locale to English (UK) during the install LibreOffice correctly noted the locale, but didn’t pick up the English (UK) dictionaries, meaning that spell checking wasn’t working.

Luckily it’s an easy fix:

  • Download the latest dictionaries extension from the  LibreOffice site (the UK English ones are here:
  • Then in LibreOffice hit up Tools -> Extension Manager and click the ‘Add’ button
  • In the resulting file dialog box find the .oxt file that you just downloaded and double click it
  • Restart LibreOffice

Voilà! (if you type that in LibreOffice Writer it should now have a red squiggly line underneath!)

[Photo by Romain Vignes on Unsplash]

The Key – back-fitting responsive design (with exciting graphs!)

As an industry we talk a lot about the importance of responsive design. There are a lot of oft-repeated facts about the huge rise in mobile usage, alongside tales of woe about the 70,000 different Android screen resolutions. Customers often say the word ‘responsive’ to us with a terrified, hunted expression. There’s a general impression that it’s a) incredibly vital but b) incredibly hard.

As to the former, it’s certainly becoming hard to justify sites not being responsive from the very beginning. 18 months ago, we’d often find ourselves reluctantly filing ‘responsive design’ along with all the other things that get shunted into ‘phase 2’ early in the project. Nowadays, not so much: Mailchimp reported recently that 60% of mail they send is opened on a mobile phone.

For the latter, there’s this blog post. We hope it demonstrates that retro-fitting responsive design can be simple to achieve and deliver measurable results immediately.

And, because there are graphs and graphs are super boring, we’ve had our Gwilym illustrate them with farm animals and mountaineers. Shut up; they’re great.

What were the principles behind the design?

We’re not really fans of change for change’s sake, and generally, when redesigning a site, we try to stick to the principle of not changing something unless it’s solving a problem, or a clear improvement.

In this redesign project we were working under certain constraints. We weren’t going to change how the sites worked or their information architecture. We were even planning on leaving the underlying HTML alone as much as possible. We ‘just’ had to bring the customer’s three websites clearly into the same family and provide a consistent experience for mobile.

In many ways, this was a dream project. How often does anyone get to revisit old work and fix the problems that have niggled at you since the project was completed? The fact that these changes would immediately benefit the thousands of school leaders and governors who use the sites every day was just the icing on the cake.

And, to heighten the stakes a little more, one of the sites in the redesign was The Key – a site that we built 7 years ago and which has been continually developed since it first went live. Its criticality to the customer cannot be overstated and the build was based on web standards that are almost as old as it’s possible to be on the internet.

What did we actually do?

The changes we made were actually very conservative.

Firstly, text sizes were increased across the board. In the 7 years since the site was first designed, monitor sizes and screen resolutions have increased, making text appear smaller as a result. You probably needed to lean in closer to the screen than was comfortable. We wanted the site to be easy to read from a natural viewing distance.

We retained the site’s ability to adapt automatically to whatever size screen you are using, without anything being cut off. But this now includes any device, from a palm-sized smartphone, to a notebook-sized tablet, up to desktop monitors. (And if your screen is gigantic, we prevent lines from getting too long.) The reading experience should be equally comfortable on any device.

On article pages, the article text used to compete for attention with the menu along the left. While seeing the other articles in the section is often useful, we wanted them to recede to the background when you’re not looking at them.

We wanted to retain the colourfulness that was a hallmark of the previous design. This is not only to be pleasing to the eye – colours are really helpful in guiding the eye around the page, making the different sections more distinct, and helping the most important elements stand out.

Finally, we removed some clutter. These sites have been in production for many years and any CMS used in anger over that kind of period will generate some extraneous bits and bobs. Our principle here was that if you don’t notice anything missing once we’ve removed it, then we’ve removed the right things.

What was the result?

The striking thing about the changes we made was not just the extent of the effect, but also the speed with which it was demonstrable. The following metrics were all taken in the first 4 weeks of the changes being live in production in August 2014.

The most significant change is the improvement in mobile usage on The Key for School Leaders. Page views went up – fast (and have stayed there.)



Secondly, the bounce rate for mobile dropped significantly in the three months following the additions:


Most interestingly for us, this sudden bounce in mobile numbers wasn’t from a new, unheard of group of users that The Key had never heard from before. The proportion of mobile users didn’t increase significantly in the month after the site was relaunched. The bump came almost exclusively from registered users who could suddenly now use the site the way they wanted to.



A note about hardness

What we did here wasn’t actually hard or complicated – it amounted to a few weeks work for Francois. I’ve probably spent longer on this blog post, to be honest. And so our take-away point is this: Agencies you work with should be delivering this by default for new work; should be proposing simple steps you can take to add it for legacy work or explaining why they can’t or won’t.

About usIsotoma is a bespoke software development company based in York and London specialising in web apps, mobile apps and product design. If you’d like to know more you can review our work or get in touch.

Hacking together a standing desk

We’ve had a few people in the office transition to standing desks recently and the process by which everyone achieved their goal has been quite interesting. Or at least interesting to me.

doug's deskDoug was the first to try it and ended up, as a lot of people do, taking the old ‘big pile of books’ approach. It’s cheap, quick and,so long as you’re using a solid and non-tottering pile of books, probably pretty safe. Luckily the Isotoma office has a pretty extensive library of books–which in Doug’s case have mostly been memorised.

(I wouldn’t let him tidy his desk before I took this photo. He wanted me to tell you.)

A different approach that David introduced (as far as I know) and which I’ve adopted is the music stand approach. It’s a wee bit more expensive and depends on you having the kind of job that doesn’t really involve paper or double monitors – but I love it. The bonus of this approach is you get to feel a little bit like a member of an nineties synth-rock band. Always a bonus.

But the canonical Isotoma standing desk was “Ikea-hacked” together by Tom. He went to town on it to such an extent that we made him do an intranet post about it:

I’ve had a couple of enquiries about the parts for my standing desk, so rather than send sporadic emails, I thought I’d just put it here.


I built my standing desk based on this article, which is great, and has assembly instructions and everything (although it’s pretty trivial to put together). The guy bought all the bits from IKEA for $22. But obviously we don’t live in America, and also I needed to double up on some of the parts due to my dual monitor setup, so here is the full parts list, with links to the UK IKEA website:

Also, you will need to find 4 screws to screw the brackets into the table legs because annoyingly, the brackets have holes drilled, but no screws to go in said holes.

Grand total: £29 (including £10 postage)

Oh and don’t forget, you’ll probably want some kind of chair to give your legs a rest every now and then (yes it’s hilarious that Tom still has a chair etc, but it does come in handy, even if it’s just for 2×30 minute spells during the day). I got a bar stool with a back from Barnitts 🙂

This concludes my blog post about standing desks. Please add photos of your sweet, customised desks below in the comments.

Just kidding.

About usIsotoma is a bespoke software development company based in York and London specialising in web apps, mobile apps and product design. If you’d like to know more you can review our work or get in touch.


Selecting off-the-shelf software (or, how to avoid buying a lemon)

Here at Isotoma we often get asked what the differences are between off-the-shelf and bespoke software, and how to decide which is the right approach for a given situation.

Generally software that has been written specifically for you (by companies like us) is referred to as “custom” or “bespoke”, while software that is customised, configured and deployed to many customers is referred to as “boxed”, “off-the-shelf” or “COTS” (Commercial Off-The-Shelf).

Isotoma is a bespoke software development company. This means that we take generic frameworks and build applications tailored to our customers’ needs on top of those frameworks, rather than having a single product of our own that meets a particular need that we resell to our customers (for example a content management system or an ecommerce system).

We’re very upfront in our answer to the “bespoke or off-the-shelf” question; if there’s off-the-shelf software that meets your needs we strongly recommend you go that route. While bespoke software brings huge benefits in the right situation it also has limitations, complexities and costs. You need to be sure that it’s right for you before going down the bespoke road.

Equally you need to be sure that you’re assessing the right things (not just features!) when considering off-the-shelf software for your project. All software investments bring risks to an organisation, and the risks of off-the-shelf can often be subtler and harder to spot, yet equally as impactful, as those of bespoke software.

At its best buying off-the-shelf software can be an extremely cost effective way of getting the features you needs and of future-proofing your software investment. But at its worst it can be a way of tying yourself in to a closed environment that is expensive to customise and hard to migrate away from.

Any off-the-shelf product works best when the requirements it serves are shared by lots of organisations. There the economy of scale means that every customer gets a great product without having to pay for the development of all the features. We wouldn’t ever suggest, for example, building a blogging platform from scratch, nor a word processor or an accounting package. These are all problems shared by countless individuals and organisations around the globe where product companies are easily able to serve everyone’s needs.

However, whenever an organisation’s requirements for the product diverge substantially from the needs of the primary customers problems very rapidly occur, meaning either increased cost, compromised experience or, more often than not, both.

When selecting a product consider how much customisation you will need to make the product really sing for your organisation. And consider how you would be affected if you simply couldn’t have half of those customisations you’re imagining (regardless of whether this was through technical limitations or lack of budget for the necessary changes).

Next it’s important to think about the existing customer base of the product. If the product has thousands of customers, many like you, all successfully using it then you can probably feel comfortable that a) the product really is likely to meet your needs and b) the team behind it are likely to be around and supporting the product for the lifetime of your use of it.

Taking on very niche off-the-shelf products or off-the-shelf products from small suppliers can be extremely risky. The worst case is that under the hood each installation is in fact an alteration of the underlying base product, the “licence fee” being used to cover the cost of the developers implementing the features that the salesman told you already existed. Here you risk expensive maintenance costs, delays in implementation and a high rate of bugs, as you were sold something off-the-shelf (and had assumed the time scales that go with that) yet in fact custom software is being developed on your behalf at cut rates and at double quick time.

You should definitely carefully assess products with very small numbers of installed customers. Unless you are extremely confident that it meets your needs entirely unchanged or you are happy to invest in the development of the product in the long term they should probably be avoided. These are often only products in the sense of “hey, we’ve made this thing for so and so, I bet others like them will need it too.”

Potentially as troublesome is the risk of delays or exorbitant fees if the resources of the team behind the product become stretched. If you need to call upon consultancy or professional services will the team be able to support you in a timely and cost effective manner?

Finally it’s worth considering the impact on your business processes. In general products work well for organisations that are just setting out, as any limitations imposed by a boxed product do not conflict directly with the way the organisation wants to do business. In addition, very young organisations do not entirely understand their requirements and so having a set of predefined features given to them allows them to develop their own business processes alongside those features.

Older organisations tend to struggle with products, particularly at the cheaper (and less customisable) end of the spectrum. They have a clear understanding of their requirements and are looking to create efficiency within their organisation. It is no longer acceptable to have predefined solutions forced upon the business, as it is exactly those predefined solutions that are causing the inefficiencies that the company is trying to drive out. In this case bespoke software has huge advantages, being tailored exactly to the organisation’s understanding of its own needs.

So you must consider the scope and scale of changes to your business processes that the new software will bring. How substantial are they? Are you ready for them? Will your users support you in making them? And can you drive them through at the same time as running a new software project?

With all the above in mind, how do you make sure that an off-the-shelf product will meet your needs and that you’re not investing in a lemon?

Here are some questions worth asking during the selection process. There are no right answers, but by having the conversation with potential vendors at this stage you may flush out some problems that you would otherwise have uncovered much later in the project:

  • How many paying customers do you already have for the version you are selling to me?
  • How many paying customers of our installation size and type do you have?
  • Can I talk to at least 2 of your customers about their experiences of the product and your services?
  • What is the average customisation cost of an implementation?
  • How much do you charge per day/per hour for professional services?
  • What is the average turnaround time for professional services requests?
  • Is there a VAR (Value Added Reseller) or partner network around the product that I can tap into if I need extra help with customisation/integration?
  • Is there an API that I can build on and use to integrate with our other systems? (if yes, can we see the documentation before we sign up?)
  • How easy is it for me to export my data from your product in a way that’s possible to import into an alternative?
  • Can I host the product myself? If so, what are the minimum hardware specifications for an installation of our size and type, and who is responsible for performance issues should they occur?
  • Do you offer a support agreement of any sort? What SLA options do you offer and how much might a support agreement cost?
  • When was the last major version released, and how many customers upgraded (and how many do you still have running the old version)?
  • What was the average upgrade cost when customers moved to this major version?
  • When do you plan to release the next major version?
  • Is there a user group for the product that I can talk to or join?
  • How are new features for future versions decided?
  • Do features I request and pay for get rolled out to other customers in future versions?
  • And perhaps most importantly: what is the roadmap for the product over the next 18 to 24 months?

Of course, there are equally detailed lists of questions you should be asking when selecting a bespoke development partner or when selecting an open source project, but both of those are for another day. Hopefully this list at least helps a little with the decision making process.

About usIsotoma is a bespoke software development company based in York and London specialising in web apps, mobile apps and product design. If you’d like to know more you can review our work or get in touch.

Dedicated Server Configuration in L4D2 (or how isotoma play zombies)

Here at isotoma, we’re partial to a few evenings spent giggling like maniacs and coming up with inventive ways to kill as many zombies as possible.
Nothing quite like arguing with a coworker whether an aerial kill with a frying pan is better than a survivor steered into a convenient pool of spit.

Naturally, our game of choice is the rather good Left 4 Dead 2.

However, our experience of the L4D2 lobby system has been variable, with some servers being slow, or configured weirdly. The usual answer for this is to run a dedicated server, as has been done since time untold (Quake).

In L4D2, the tools to do this aren’t immediately obvious, and have a nasty habit of changing from patch to patch.
This is a quick note to show the current method that we have found works.
I won’t cover how to install and set up the server, there’s plenty of guides out there to do that, this is how to configure it, and how to start a game on that server.

Server Configuration

In server.cfg, do this (replace things in [] with a value, including the brackets themselves):

hostname “[SERVERNAME]”
sv_region 3
sv_search_key “[AUNIQUEKEY]”
rcon_password "rcon"
sv_lan 0
sv_allow_lobby_connect_only 0

The important part of this is the sv_search_key setting. This should be a unique key (a steam account name is a reasonable bet), and something that you can type into the game console. Do not attempt to set the Steam group settings that you can find documented elsewhere. This will break the search key, and mean you then cannot reliably connect to this exact server.

Run the server with a line similar to:

./srcds_run l4d2 -autoupdate +ip [SERVERIP] +hostport [PORT] +exec server.cfg

SERVERIP should be the public ip of the server machine
PORT should be the port to run the server on (27203 is our favourite)

Once this is done, you should see some nice console lines scrolling by and your server is now up. The search_key setting means that only people with that key will be able to find and connect to the server using the lobby system. You will be able to connect directly using the server ip and port if necessary.


In the game, go to Settings > Keyboard Settings and enable the ‘Developer Console’

To start a lobby game:
From main game screen
Bring down console (~ key, usually next to 1 on a keyboard)
Type: sv_search_key [AUNIQUEKEY]
(This should be the sv_search_key you set above)
Create a game with friends
Do not change the server choice (dedicated, best available etc), leave it as it appears.
You can change game settings, maps etc.

To connect directly:
Bring down console (~ key, usually next to 1 on a keyboard)
Type: connect [server ip]:[port]
This will drop you straight into the server, from where you can invite people to join you.

This is all a bit fiddly, but it works for us. I hope it helps someone who was as equally as lost as me to get this going.


Mixed metaphors and malapropisms from the mire of many meetings

Most of us find ourselves stuck in long boring meetings or conference calls more often than we care to remember. For a while now, I’ve found some respite in my habit of collecting some of the more hilarious manglings of the English language you find in such situations. I particularly love it when phrases end up meaning the opposite of what the speaker thinks they do. Here’s a selection from the past year:

  • Getting “buy-off” on specifications (probably thinking of buy-in or sign-off)
  • An item being “delegated to the bottom” of a menu (meaning relegated)
  • “visa versa”, used to mean something like “for example” (confused between vice versa and vis-à-vis)
  • “The train is already out of the tracks” (I think you meant to say station)
  • Extolling the close, mutually beneficial relationship between their organisation and ours as “incestuous and symbiotic”
  • “Begs the question” used synonymously with “Raises the question”

And some from emails:

  • “By all intensive purposes, I think I have the account setup and everything ready to go.”
  • “These are often required and might shoot you into a foot”
  • “I wonder if he’s been unendated with calls or e mails?”
  • (From a Kenyan security newsletter) “Wait until the crowd has disbursed”

Feel free to add more in the comments!

Good Spam

Following on from this bright idea to use a spamming tool to create a blog from an Open University course feed, the OU asked us to build a plugin for WordPress MU that will automatically create a bunch of blogs from Open University feeds. We also built a WordPress widget, to implement another bright idea, that can then deliver the blog entries for a course in periodic chunks.

So you can consume the course in your feed-reader at a pace that suits. This should be released soon, meanwhile, the testing is very educational.

Every day this week I’ve been mostly learning about James Clerk Maxwell.

On what to do with downtime

There’s a fascinating post over at TCUK today about agencies building their own applications. We even get a mention in the intro with reference to Forkd. The comments get pretty heated too, with some people claiming agencies that have the time to do such things are over staffed while others are worrying about how to fit internal developments alongside client work.

So, given we’re mentioned, how do we feel about it?

It’s always going to be hard getting the balance of client work and your own projects right. We started work on Forkd in summer 2005 and launched it in early 2008. In that time the world and his wife had built a food social networking site and we were on the back foot right from launch. Keeping a focus on internal development ideas while working with clients work is always going to be a killer.

That said we have more in the pipeline and aren’t going to stop…

The reasons (at least for us) are threefold. First up, what better shop front is there than something that you made for yourselves? A real case of putting your money where your mouth is; new customers can see exactly what you could be making for them.

Secondly, scaling a technical agency is hard. You only have the person hour to sell, and growth only comes through selling more person hours. That is, unless you can “productise” some of your own work. And what better than productising something that you and your team enjoy making and using?

Third – it’s always best to learn new technology on something that isn’t so important that your business depends on it. That latest cut of your favourite app server from svn might look like it provides the killer feature (or bug fix) you need, but do you really want to try it on your current big client project?

And to those that claim agencies must be over staffed if they can do work like this… We all know that the entire team will have downtime whether it’s explicit or not (and all of you with “100%” utilisation just have a miserable staff hiding their downtime at the water cooler or on facebook). A shared goal to aim at during that downtime makes the downtime explicit and supported, which makes a whole let of sense to me, anyway.

And hey, who wouldn’t like to be the next Skinny Corp?

Search vs. URL

Watching the TV last night I saw an advert for EMA (Education Maintenance Allowance) which instead of giving a URL suggested that the viewer “search for EMA online”. This is the first time I’ve seen this type of advertising in the UK, although strangely only last week the article about search terms taking over from URLs in Japan over at was doing the rounds. Searching for EMA across Google (first both paid and natural), Yahoo! (first paid, second natural) and Live (first paid, third natural) seems like this works in this instance, but I can’t help but fear the torrent of spam that will start to follow major ad campaigns that feature particular terms.

As Cabel says in his article this change seems inevitable for all the reasons that he lists, but it sure is going to make management of search placement a lot more complex over the next few years.

Could not read chunk delimiter

I nearly cried. I went to svn up in a local check out of one of the projects I’m working on, knowing that I was a good few days behind and instead of getting the usual stream of files I got an error message:

Could not read chunk delimiter

I logged on to the server and ran svnadmin verify /path/to/repo and got a different error message:

Decompression of svndiff data failed

Much googling later and I found – a script that repairs broken fsfs-type svn repositories. The author (jszakmeister) doesn’t allow comments on the page of his blog that hosts the script, so this is a public thanks for really really saving my bacon!