Softwire Blog


15 June 2015, by


A little while ago whilst going through some of my digital photos I noticed that some of them weren’t displaying correctly. Somehow some of my files had got corrupted; oh dear.

I do have a back-up system, but it worked by copying all the files from my NAS (network attached storage device) on to a removable drive. I had two removable drives that I used in rotation so I had a fairly short history to look back through. Fortunately some of the files had got corrupted in the window I could recover from, but some had gone bad too long ago and were now permanently broken.

So I decided that I needed to do something to notice this kind of issue in the future without having to regularly look at each of my thousands of files. I had a look around the internet and found a few things that were free and would probably work OK but not do exactly what I wanted (and also did a whole lot more that I didn’t want), and the usual cloud back-up systems that would also solve my problem, but for a fee. (more…)


20 September 2012, by

So what does a company of software developers do in its free time? Well sometimes the answer is “write more code for fun”. To this end Softwire recently held a Battleships tournament. The competition consisted of writing a bot that implemented a particular battleships playing interface. All the bots were then played off against each other in a league format. Each match in the league was a best of 100 games series. A new bot was instantiated for each match, but the same bot played all 100 games within a match. This meant that some bots were able to learn from their opponent’s earlier games to try and do better as the match went on.

The tournament itself was made up of three two week rounds and was kicked off with an evening of beer, pizza, and coding. A league was run at the end of each round and the top ten players were awarded tournament points. After the third round the player with the most tournament points became the overall winner.


Photo walk

1 April 2012, by

Shortly before Christmas a number of intrepid Softwire employees braved the cold and went out on the inaugural Softwire Photo Walk. We started at the Tower of London and, over the course of an afternoon, crossed Tower Bridge and walked west along the south bank of the Thames before finishing back in the warm with some beer and food.

There were four categories for inspiration – Water, Urban, People, and Close-up, but everyone was of course free to take whatever photos caught their eye. Here’s a selection of the photos we came back with.

Dan's photo of 'People' (more…)

Staying DRY with LINQ to Entities

10 February 2012, by

A common problem with LINQ to Entities is that it can often lead to code repetition. This post explains why and when this happens, and how to get around it using LinqKit.

In this article I’m going to assume that you have at least a passing familiarity with the concept of DRY (Don’t Repeat Yourself) and why it’s a good thing, and with LINQ to Entities.


Christmas Celebrations

30 December 2011, by

At Softwire we’re lucky in that we celebrate Christmas twice each year. Once with a very long lunch just for employees, and once with a slightly more sophisticated evening meal to which we can invite guests.

Here’s a peek into what we get up to at these events. Merry Christmas!

Yemi shoots


Fonts on the internet

1 December 2011, by

It used to be that if you wanted to use an unusual font on a website you had three choices:

  • Somehow ensure that all your users have the font. Not many exciting fonts are on all Mac and Windows systems by default, plus you would also have to hope that Linux users will have a similar enough font that the site still looked reasonable to them. In an internal corporate site you may have more control over the client machines, but that’s only likely to be worthwhile in a very limited number of cases.
  • Generate an image of the text you want in the font you want to use – this works great until you want to copy and paste the text, or read it automatically to a visually impaired user. Plus, it’s a bit of pain generating and updating all those images.
  • Use Flash, which can embed fonts and give you very fine control of text display. However, this can cause new issues, especially if you don’t have any Flash experience and just want to put up a simple site.

Then along came some clever solutions like sIFR – which automates the third option above, and cufon – which tries to do the same thing as sIFR but using JavaScript instead of Flash. These solve some of the problem by making the resulting pages more friendly to screen readers and similar devices. The cost of this however is a lot of complicated moving parts that will probably stop working if the user has Flash or JavaScript disabled.

Now finally, in CSS3 this situation is being addressed with the introduction of the @font-face attribute. Using @font-face will delegate the displaying of text in your shiny new font to the browser. This makes using different fonts simpler and more reliable in browsers that support it, and will not break anything in older browsers that don’t.