Many Pies

Many Pies

Wednesday, December 18, 2013

Bitcoin - digging deeper and deeper into what it's all about

At the moment I'm finding Bitcoin really interesting.As you can tell from the post about Cryptography for Curious Kids I'm interested in cryptography. I've read overviews and that Wikipedia article I've linked to, and the Bitcoin wiki. I find that I grasp the overall concept. Then I read into the detail and think I've grasped it at a deeper level. Then I go away and forget about the detail and have more questions which means I need to read again, and deeper. Almost every fact seems to raise more questions. It's almost like an adventure game:

Bitcoin is a peer to peer digital currency. Where do you want to go?
N: How do they get created?
E: Can you have a physical Bitcoin?
S: What does it mean to have a quantity of them?
W: How do you exchange them for other currencies?

You have chosen S. The way that you have a Bitcoin is that everyone taking part in Bitcoin has a record of all the transactions that have taken place since they started being used, so everyone agrees that you have a certain number in your wallet.(OK not everyone taking part, but a lot of people.)

N: What is a wallet?
E: How does this information get synced between everyone?
S: What's to stop people falsifying the information?
W: How can you have fractional parts of a Bitcoin?

And so it goes on: mining, pooling, the blockchain, public/private keys, speculation about deflation, bubbles, anonymity, hashes, really big numbers.What's not to like?

Articles by my favourite bloggers (linking doesn't mean I agree)
I sold some Bitcoins by Tim Bray
Why I want Bitcoin to die in a fire by Charlie Stross

Tuesday, December 10, 2013

Publishing computer games

I was looking up in the loft for the paperwork I kept from when I was a teenager and sent in games for the ZX80, ZX81 and Spectrum to magazines. I didn't find that, but I found some other paperwork:
ZX81 ROM disassembly

A friend on Facebook found a copy of the Sinclair User Annual 1983 which had one of them in.

(Update: I called this game "Beancup" but I've just found out (Nov 2016) it's called Oware amongst other names.) I didn't always buy the magazines that published my games, because that would eat into the money I'd made, so it was quite exciting to see my work from so many years ago revived again. I didn't have a printer, so unlike many of the other listings this one was typeset.

Some things strike me about this:

  • no function names, you just GOSUB a line number
  • line numbers!
  • I'm surprised how compact it is - a two player game, plus the computer's strategy in just a few lines
Update: I was searching my blog archives for the word Sinclair and I came across this post about mobiles and gaming. What is interesting is the article I link to which talks about the potential for mobile (what we now call) apps. This was pre iPhone and Android app stores, so presents a "historical" perspective before things all changed.

Tuesday, November 26, 2013

New office - furniture and rolling display

There's a good post with lots of pictures of our new office on the Wycliffe Centre move blog. I've been involved in the office layout planning since near the start of the process and one of the things we needed to consider was which office furniture to get. Because our previous furniture was from all sort of different sources it was very mismatched, so we wanted to spend money on getting new desks. (We managed to reuse a number of other bits of furniture, such as non-desk chairs, bookcases and some cabinets.) In the end we went with furniture company called Ofquest. Even with a generous discount it wasn't cheap. What we got for our money though was solid construction, a degree of reconfigurability, and really useful features, like a cable tray under the desk and clip on cable guides for the legs. It should last us a number of years, and survive another office move should we move before it wears out.

One of things of lesser importance that I've worked on with Ruth, our content person, and Stuart and Andy, my IT colleagues, is the TV display you can see above. Stuart and Andy got a Raspberry Pi going booting into the Chrome browser and displaying a page from our intranet. The page changes every few seconds and as well as showing prayer items shows things to praise God for, internal notices, the picture of the week from For that page, and another one which screenscraped our own site I used a bit of  XPath, obtained via Chrome's web inspectory thingy, which makes it very easy to get at HTML content. Here's a fragment of the code I used:

$pageHTML = file_get_contents($url);
if ($pageHTML) {
$dom = new DomDocument();

$xpath = new DOMXPath($dom);
$entries = $xpath->query('//*[@id="image"]/img');

if ($entries) {
$tag1HTML = nodeContent($entries->item(0), true);

The user-editable pages were done with Perch, a very neat content management system. It's not suitable for large sites, probably defined by complexity of navigation rather than number of pages. It's very quick to get going on though. I used the API to write a custom app which removed items from a page when an associated expiry date had passed. As you've got access to the source code as well as the API documentation I was able to write something which delved into the Perch innards without too much effort, once I understood factory classes. When I needed support I got a quick response (_/- confusion - doh!).

Monday, October 28, 2013

Cryptography for curious kids

Here's part of a book I may never write.


Why kids?

I read books on codes and ciphers when I was a kid and I loved them. Now I'm grown up I still like reading about codes and cryptography (and maths and science). I don't understand everything, but I reckon I can explain enough so that kids can have the same rough understanding of what's going on as me. There are still books on codes and ciphers for kids, but they don't go deep enough (note to self: check whether this is actually true before embarking on book). When I was a kid I wasn't aware that codes played that much part in life, apart from whatever spies got up to. These days however as soon as you go to a website and a padlock appears in your browser then you're using cryptography. This book still may not go deep enough for you, but hopefully it will take you deep enough to either satisfy your curiosity. You don't have to be a kid to read it, but the alliteration of the ks and cs sounds good.

Why curious?

You don't have to know how things work in order to use them, but if you're the sort of person who wonders what's really going on then this book is for you.

A shark through a drainpipe - one way hashes

Sharks have quite prominent gills. I can imagine, (though I haven't actually done it myself), that if you put a shark down a drainpipe that was just about wide enough to take it, it would be quite hard to drag it back up the other way. Not impossible, but so hard that you wouldn't really want to bother. A one way hash is like that.

Imagine you have a really long brioche roll with chocolate chips spread along it. They are spread so that every centimetre of roll either has one or no chocolate chips in it. You could chop this roll into 32cm pieces and then compare one pair of pieces side by side like this.

You then look at each centimetre of the rolls and follow the following rules:
If one of the rolls has a chocolate chip at that point then you transfer that chip to a new roll at the same point.
If neither of the rolls has a chocolate chip then the new roll doesn't get one either.
If both have a chip then the new roll doesn't get one.

This set of rules is called the XOR function (exclusive or - one or the other but not both). 

You then compare another 32cm length with the new roll until you've used up all the roll. (If the last bit is less than 32cm long then assume that it's actually 32cm long with no chips in the bits that aren't there.) At the end of it you'll have a brioche roll with a pattern of chocolate chips and gaps. As there's no randomness if you start with a certain pattern in your original roll then you'll always end up with the same pattern in the final roll. A set of rules used in this way is called a hash function. In practise hash functions are more complicated.

This is a one way hash. There could be two different original patterns that end up with the same final pattern. However to try and work backwards from the final roll to work out the original roll is hard - like dragging the shark backwards through the drainpipe. So it's not exactly one way, but near enough.

You could come up with different rules of chopping and combining and a good hash function will mean that if you start out with two original rolls that only have one chocolate chip difference the final roll will be really different.

So what's the use of a hash function? One thing you can do with it is to check that a file that you've downloaded is complete and hasn't got corrupted on the way. If the site you download the file tells you the hash of the file then you can use a program to work the hash of your file and if it matches then it is very probably the same as the original. Like the two rolls that are only different by one chocolate chip, a small corruption would give you a different hash, so it's really unlikely that the file would be corrupted in such as way that it's different to the original, but has the same hash.

Hashes and cryptography

One way that hashes are used in cryptography is when checking passwords. If a computer had a list of usernames and passwords in a file somewhere, and someone got that file, then they could log in as any one of those users. So the passwords are stored in hashed form. When someone types in their password it's hashed in the same way and then checked against the stored password. This is where the "really hard to find another thing that when hashed gives the same result" property is important. 

Thursday, October 24, 2013

Blue Pi Thinking from the University of York

I did Maths and Computer Science at the University of York (they don't like people calling it York University) and this year they gave new Comp Sci undergrads a Raspberry Pi before they started the course. I'm pondering what I would have done had that been me.

Wednesday, October 23, 2013

A time of "lasts"

High doors
So we're moving offices and Tim has written a good post Goodbye Wycliffe Centre. I've just been on what might be the last time I walk around the outside of our grounds. Yesterday we had the last of our weekly "Tuesday fellowship" meetings. (In future we'll meet monthly.) It's a time of lasts.

Update: in fact I took two more walks.

Tuesday, October 15, 2013

My heroine for Ada Lovelace Day - Kathy Sierra

My heroine for Ada Lovelace Day this year is the "programming instructor and game developer" Kathy Sierra. I've written about her return to blogging previously, but the thing that made me admire her even more was reading parts of one of the Head First books that she co-authored recently. It really focussed on making sure that the knowledge and wisdom got from the authors' heads into your own. I'd seen her thinking in the Creating Passionate Users blog, but here was the thoughts applied to a particular topic, Design Patterns in the case of that particular book and I was very impressed. You can find her on Twitter as @seriouspony.

(Picture by Ed Schipul. Licensed under a Creative Commons Attribution-Share Alike 2.0 Generic license.)

15 years with Wycliffe Bible Translators in the UK

My previous certificate of long service - for 10 years

15 years ago I went part-time in the job that I was doing. (I was surprised how there wasn't too much fuss when I asked to go part-time. Either it was because they wanted to see less of me, or because it was better than losing me altogether; I don't know which.) I then spent two days a week working for Wycliffe. One of them was in the office, which meant getting up at 6am to get onto the M25, and one was at home.

After 18 months of that, in April 2000 I went full-time as Business Systems Manager, one week before two major systems went live. That was a very busy time! In July 2004 I went from being a member to being an employee. Apart from a more steady income, it didn't make much difference at the time. In June 2010 I became IT Director whilst continuing to be Business Systems Manager.

Those are the major milestones - more detail will have to wait for my autobiography or my CV, neither of which I plan to write in the near future. The big thing on the mind at the moment is our office move, which will take place in two weeks' time.

Tuesday, September 17, 2013

Cross-platform app development and app porting

Some thoughts that have been sitting in draft for a while.

Cross platform frameworks

Marmalade has been my tool of choice for Playbook development, and I could use it for creating cross platform apps. This article on cross platform frameworks points to a project which shows how much common code vs platform specific code you have when using various frameworks. It would be interesting to see what figure Marmalade would get.

App porting

Blackberry and Microsoft are struggling to increase the popularity of their mobile platforms. Blackberry has approached it by throwing free Playbooks at the problem. If you want to port an app to Windows Phone from iOS or Android then you may find your way to this page (last updated Aug 2, 2013 as I write this, so not out of date), but look at the links - no Windows Phone 8 guide. Unless I've missed something, Microsoft aren't putting much effort helping people port apps.

Monday, September 16, 2013

Tech videos from Africa

Steve Moitozo II, who is a fellow member of the Polder Consortium visited Africa recently and shot some interesting videos.

I've heard of Ushahidi (crowdsourcing information via SMS for, for example, at the site of a natural disaster) before, but I didn't know who was behind it. Steve met one of the co-rounder, Erik Hersman (who blogs at and shot a short video of him.

Erik Hersman from Steve Moitozo 2 on Vimeo.
He's also behind another thing that crossed my radar a while back Brck "a backup generator for the internet". There are a couple of TED videos about him too. He's the son of Wycliffe missionaries.

There are a couple of other tech-related videos in Steve's Africa 2013 album:

Friday, September 13, 2013

Blackbaud Online Express

Earlier this year I was given a demo of Blackbaud Online Express. I was told not to talk about it, which I dutifully did, apart from in oblique terms with close colleagues. However now it's been released in North America and in the UK and I'm looking forward to seeing it in action.

In a nutshell, it's similar to the email and online donation facilities offered by Blackbaud NetCommunity, but in hosted form only. (You can embed it into your own pages, so it's not like those online donations services where users have to leave your own site in order to donate.) As it is more focused by my calculations it should be cheaper. We have had NetCommunity for seven years now and we really only use the email and online donation facilities, so there's a lot in there that we're just not interested in. So Online Express looks like it might be just what we need.

I only really saw the email part of the demo and it looked similar to the functions offered by MailChimp (which I've written about previously when I compared MailChimp and NetCommunity) in that you could have templates for email so the person writing the email could only write in certain parts of the template, and not spoil the layout. I'm hoping to attend a webinar when they are available in the UK and I'll probably write more about that afterwards.

Update: 11 October 2013 - UK pricing information is now available and it looks very reasonable.

Monday, September 09, 2013

My first Little Printer publication - UK daily weather

I've just made my first Little Printer publication live - UK Daily Weather "Daily Weather from the BBC (not officially affiliated with the BBC)". I've been following Little Printer for a while and when they announced a github project with a complete PHP publication it wasn't long before I forked it and made my own. A while back I developed the twitter bot behind Wycombe Weather, so my first thought was to develop a similar weather app, including an idea that I never got round to with that - pictorial representation of the weather.

It wasn't too hard to strip out the code at the heart of the original publication and substitute some code to parse the BBC RSS feed, print out the date and the description of the weather, and then display a picture of the weather. I used the whole of the @wycombeweather twitter feed to find a list of the words that the BBC uses, and then created some PNG pictures based on some original SVG weather symbols. I originally created them as SVG files but the Berg preview test tool didn't display SVG. Using the Berg tools you can test everything without having to actually own a printer, which I don't. I'm hoping they may give all developers a free one at some point.

The next step was to let the user specify their postcode, which wasn't in the original code, but I found some other sample code that did most of the work. Then I polished it up a little, and now it's live! While working on it I deliberately didn't look to see if anyone had done anything similar, but as I was deciding on the final name I had a look and was glad to see that there was only one other weather publication in the appropriate category.

It's been great to do a nice little project with such a cool device. If you end up subscribing I'd be grateful if you could get in touch and send me one of the printouts.

Update: I found you can send a message to the Little Printer people and they'll send you picture:

Thursday, August 29, 2013

I've been working on the Youversion Bible app

I can now decloak and reveal that the work I've been doing on BB10 was on the Blackberry version of the Youversion Bible app for the BB10 platform as recently announced by Youversion. My part has only been small, as I've only done it in some of my lunchbreaks. Another developer has done most of the work.

Update: Oct 28, 2013 it's now released

The Youversion people are really committed to cross platform apps. Look at the list of platforms on their app page. Not many people can say their app works on HP/Palm or Symbian!

Thursday, August 22, 2013


I, along with probably many other people, got an invite to write an article for Medium, the new place where the cools kids hang out. Well, the cool writers anyway. I had something in mind already so I just published How to pace your holiday well.I could have probably spent more time polishing it, but I wanted to get it out there while I've still got more free time than usual.

I don't want this to become a link blog, but here are some thoughts on Medium from Tim Bray, who puts things better than me. Also, a good discussion on Hacker News. Finally, for completeness, a link to the article on my own, non-techie, blog: How to pace your holiday well, put there because I can post my content on my own blog should I want.

Thursday, August 08, 2013

Bible translation and copyright

Disclosure - I work for Wycliffe Bible Translators in the UK and we second people to other organisations to work on Bible Translation. I don't do translation, but I work in IT. I don't speak for Wycliffe Bible Translators UK.

I've had a draft post on copyright and the Bible sat around for ages, and today I came across this post by Michael Johnson, Bible Copyright vs. the Churchwhich describes many of the issues, and does it a whole lot better than I could. I'm not sure I agree with everything he says, but I do with most of it. So I suggest you read it.

I won't discuss the issue of making money, but there is also an issue about quality of translation. If a group of people put a lot of effort into a translation and then relinquish copyright and make it available digitally then someone else could take their translation, change the bits they don't like and republish it under the same name of the original translation. They may produce a "worse" translation, but someone's standards. Then there are two versions of this Bible. If the worse translation gets a lot of coverage people may blame the original group of translators for producing a bad translation, whereas they've done nothing wrong. 
Creative Commons may give ways of making the Bible available, whilst making sure it doesn't get changed, so those who actually publish copyright bibles could consider this.

What got me started on the original article was this post on Google+, which I post without comment. 

Update: There is the Every Tribe Every Nation project which is working to get Bible texts distributed in digital form. So those who own the copyright aren't necessarily holding onto the texts but are releasing them for use. It involves Wycliffe, Biblica and the American Bible Society. Youversion are one of the consumers of the texts.

Friday, August 02, 2013

IT/Missions networking groups

I've been revising the list of links on the right of my blog. One (a mission tech wiki) is defunct and I've added two more. So I thought I'd write about the two new ones and a reminder about another one.

(Global) Community of Mission Information Workers "We work with information and we want to see that information bless the world and contribute to the growth of God’s Kingdom."  "has been set up to connect Christian organizations providing Information Technology (IT) support to the field. It helps these organizations in providing IT Support to field entities who have:
  • Limited IT Personnel
  • Limited equipment
  • Limited IT Infrastructure" "If you're involved or interested in world mission or Christian work around the world, OSCAR is your gateway to useful information, advice and resources."

Monday, July 29, 2013

Open Software and Libre Office

A couple of Open-y related things:

Tim Bray on OSCON 2013
On the age thing, I bet if you drew a graph of people in their 20s, 30s, 40s, 50s, and older, the 40s & 50s bars would be highest, but it’d be reasonably flat. One person I was talking to raised an explicit concern that we’re not replacing ourselves and are in danger of aging away.
There’s something in that; the first generation of OSS loudmouths is still by and large active, and quite a few of them, er us, end up on the stage at OSCON year after year. I’m not convinced though; there were plenty of fresh faces among the grizzled ones.
If the young people are not so prevalent (and that's not certain) is it a good or bad? Generally it would be bad, but are we approaching a solved problem? Not sure.

I also saw this from Michael Meeks:
So I followed links and saw that LibreOffice is up to 4.1 now. A few years ago I had the intention of making suggestions to improve the Calc software so that it was more like Excel. I was particularly interested in the AutoFilter function, which fell short of what Excel was offering at the time. I can't remember the details, but I remember it requiring quite a lot of time to clearly specify what was needed, when all I wanted to say was "make AutoFilter work like it does on Excel". So I didn't make any suggestions. Since then Office 2007 and later versions have come out and the autofilter function has changed again. I'm pleased to say though that with version 4.1 Autofilter seems to have caught up with Excel 2007 at least.

On the downside though, the database ("Base") is not an Access killer yet. It does offer four different programming languages though.

I opened a document I have been recently working on and was pleased to see that the column layout was preserved well, which has been a problem in the past. It also had photos which were rotated and had dropped shadows (yes, I know, so 2010) and they were not rotated in Writer and the shadow was solid black.

In case it seems like I've got a bit of a downer on Open Source and LibreOffice in particular, let me say I'm very pleased with the way it (a version of OpenOffice before the split in fact) enabled me to create a good report writing setup which took in XML and produced RTF at the end. Also, the Graphite support means that Bibles can be worked on in many complex scripts. Also, for those who can't afford a full legal copy of Office, it's a good alternative.

Thursday, July 25, 2013

Our loss is Computers 4 Africa's gain

You can find them at

Changes at the Polder Consortium - not just Identity and Access Management any more

It's a while since I first wrote about the Polder Consortium. At the time it was set up to work on Identity and Access Management issues for those involved in the Bible Translation movement. It's started changing and expanding its focus into other areas, such as business architecture and project management. The wording on the website has started changing to reflect these changes, but there's more detail that will appear over there in the coming weeks. So if you're involved in IT in the Bible Translation movement then it's worth watching that website, or at least subscribing to the blog. It's worth pointing out that project management is not just an IT thing and so the project management stuff may be of interest to non-IT people when there's more detail on the website.

Wednesday, July 24, 2013

The unique way we're funded (part 2)

I previously posted about the unique way we're funded. A couple of present and future members of the department are facing issues in their funding. I'm not deliberately being invidious in mentioning these having never written anything about the rest of the team, but I thought I'd make use of the tiny readership that this blog has to spread the word.

Peter Oatley is going to be joining us in the IT Department. Over the past 15 years that I've been here we've had a series of interns working for us. We've had gaps of a few months where we haven’t had any. I counted 21 different people in those 15 years. At our new office location we won’t have any accommodation so we’re not able to offer the same opportunity any more. However Peter should be able to provide that fourth full-time member of the Department that the interns have previously provided. He also brings years of IT experience in South Asia, which he will be able to use on the “passing trade” we get.

You can find out more information about Peter and the rest of his family on their page on our website: Peter and Hilary Oatley. Now that they are back in the UK they need to increase their support.

Tim Gaved has been working part-time in the department since the start of the year. As well as being a linguist he’s also familiar with IT and some of the specialist language software that translators use. He set up the virtual environment that is going to be used at Redcliffe college now that our linguistic training has moved there. He’s also doing more general support for the IT Department. He’s married to Maggie and you can find out more about what Tim does with the rest of his time, Maggie’s work and how to support them on their page on our website: Tim and Maggie Gaved.

Friday, July 12, 2013

I bought a number!

I've gone and bought a number - 51682953. Of course there are many versions of this number, such as the BW521255 Yutaka Satou unpublished cDNA library (csga) Ciona savignyi cDNA clone csga063d12 5-, mRNA sequence which has that number as its GenBank gi, and the Salsa Red Pearl / Taupe 2007 Toyota Sienna LE Photo #1 which has that number as the filename for the page. However, mine is a Brooklyn Integer, so it's an artisan-made 51682953.

If I haven't lost you completely by now you should go and read the Rev Dan Catt's explanation of artisan integers. Go ahead, I can wait.

I bought mine from Kellan's Etsy shop and there are a few more available as I type. My number has it's own web page at the foundry's site: You might have thought that a number that's over 51 million like that wouldn't turn up much in the real world. However (although I don't like it when lazy journalists begin an article on X by telling you how many results you get if you put X in a search engine, I'm going to do it because it's relevant, not because I'm lazy) if I put my number into Google I get 1480 results. So it's not as rare as you might think. Why is this? It's because the databases that underpin these webpages need unique numbers to work, such as this picture on Flickr which has my number in its URL.

After a while you get up to 51 million of the things. (Uniquely numbering things predate databases of course, paper invoices have been numbered for years.) For example, the order number for my number is 94650581, so Etsy is nearly up to 100 million orders, assuming they started at one.

So far I've been saying just how not particularly unique my number is, or rather, other versions of the number. What makes my number unique though is that my number will never ever be issued to someone else by the Brooklyn Integer foundry. You can get numbers from other places, such as this online UUID generator, however you'd get more of an Ikea number, than my bespoke number.

Can you see why I'm excited about getting this number?


  • It's nearly two years in seconds.
  • It has three prime factors: 3×7×2461093
  • In hex it's 0x3149E89.

Tangential links and background reading

Bitcoin mining
PayPal galactic
The Penguin Dictionary of Curious and Interesting Numbers (which doesn't feature my number).
The original tweet that started this off:

Saturday, June 22, 2013

Online forums - what happens if someone takes their ball and goes home?

This is more of a thinking-out-loud stub than a proper blog post.

This article by Martin Belam reporting on a talk by Nigel Smith on the closure of BBC Archer's messageboard prompted me to gather links about this topic.

I asked on Quora a while back, prompted (probably) by one of Martin's earlier blog posts on the subject, How can people using an internet forum prepare in case the provider shuts it down?. No answers were forthcoming.

Earlier this year I said
So that new thing is Discourse, making quality forum software available. But the question still remains "if someone else is hosting [a forum] and they want to shut it down, can the community be sure that they can get at the content?"

When we moved house I spent a while on the and the uk.rec.gardening Usenet forums. Quite a different style between the two. I need to see if the two people who were feuding on ukrg are still doing so.

Monday, June 17, 2013

Laptops and our nomadic workers

I wrote a couple of weeks ago about how we're not your usual IT Department because of the type of people we support.
We help all sorts of Wycliffe people out, not just those working in our offices, but people passing through from all over the world. 
Today I'm writing a bit more about those sort of people. We have a mixture of management types who are working with teams who span the globe and linguist/translator types who are working with language projects in a different country to the one they live. Sometimes we have couples where one partner is here for a specific reason and the other is coming along with them so they don't have to be apart, and because they are able to continue their work away from their normal work location.

These are highly mobile people, who have one thing in common - a laptop. (No sign of tablets being the primary work machine yet.) Here's a picture of the inside of one which came our way last week:

This amount of dust is more than we usually see, but not surprising. We see a number of common problems with laptops - broken screens, broken backlights, liquid spilt on keyboards and corrupted hard drives. I say "we", but in fact its my colleagues who do this stuff. We are able to do so without charging commercial rates. One of the local suppliers we order parts from charge £90 for hardware repairs, and £144 for a screen replacement. We just charge the cost of spares + 8%.

Laptops are a vital part of the nomadic Wycliffe worker's luggage and we are pleased to be able to help them with their problems. In case you're wondering what we recommend for international travellers - Toshiba.

Thursday, June 13, 2013

Stonemasons' forum

At lunchtime someone who's doing an MA in Digital Education gave us a talk about what he'd learnt. They are learning about Digital Education using digital methods (online forums, Skype, blogs). It made me wonder if other professions learnt in a similarly recursive way then what would it be like. Imagine what a stonemasons' discussion forum would look like...

tap, tap, tap, tap
tap, tap, tap, tap, tap
tap, tap
tap, tap
tap, tap, tap, tap
tap, tap, tap, tap, tap
tap, tap, tap
tap, tap
tap, tap, tap
tap, tap, tap, tap
tap, tap
tap, tap, tap, tap
tap, tap, tap
tap, tap, tap, tap
tap, tap
tap, tap, tap
tap, tap, tap
tap, tap, tap

tap, tap, tap
tap, tap, tap


And if you're familiar with Terry Pratchett's Discworld novels then you will know what I mean about trolls having a whole new meaning.

A virtual computer lab for linguistic software

Today's Call to Prayer entry (the Wycliffe Bible Translators UK prayer diary) reads like this:
In January, we asked you to pray for the move of Wycliffe’s training programme to Redcliffe College in Gloucester. One of the big issues was how Redcliffe College was physically making space for the new programme. New seminar rooms have now been prepared and are being equipped to cater for the teaching programme. Continue to pray for the space needed for staff rooms and offices: the work looks manageable in the time remaining, but the final decisions and details still need prayer.
I was at Redcliffe with one of my colleagues yesterday. One of the consequences of the teaching taking place there is that there is no longer a dedicated "computer lab" with 13 PCs available all the time for teaching the software that linguists and translators need, which is what we have at the moment. What they have adopted is a virtual environment. I won't mention the provider of this virtualisation software, but you've probably heard of them if you know anything about this stuff. So we have a number of virtual PCs that you get to by installing some software from the afore-non-mentioned company which puts the screen from this virtual PC on your PC, Mac, tablet etc.

These virtual PCs are themselves running on a virtual server running on a physical server. For some people this is a bit mind-blowing, but then I have been reading a number of stories about people uploading themselves to virtual environments (a la Matrix). However if I say any more about that it will be on my non-techie blog. Yesterday we were showing those who are going to be teaching in this environment how it all worked and checking that they could do what they needed to. It all went pretty smoothly. I was worried that the software would somehow not work because the virtual PC was in some way not quite as good as a physical one, but that turned out not to be the case. The seminar rooms that the prayer item mentions will be used, with students using laptops to get on these virtual PCs.

Tuesday, June 11, 2013

Work for me! Server manager needed

We're recruiting for a server manager. The job advert is here. This is a one year position and the salary is £24-28K.

NetCommunity donation form based on URL variable

I put some code onto the Blackbus site in response to a question and I was recently asked about it. I realised that my code wasn't on my blog, so I'm putting it here now. What it does is pick something out of the URL for a NetCommunity page and using it, fill in the free text field on a donation form (and choose "other" from the fund dropdown). For instructions on how to get the parsequerystring code installed see my blog entry.

It's designed to use recipient instead of fundid in the URL. It also allows the amount to be set. You'll need to find out the unique id for the "Other" option in your dropdown and put it in the code.

If you want to use a simple form which then redirects to this page then set the post action for your form to be a PHP file which contains this line of code. It assumes you have form fields for pageid (this can be hidden), amount and receipient.

header('Location:' . $_POST['pageid'] . '&amount=' . urlencode($_POST['amount']).'&recipient=' . rawurlencode($_POST['recipient']));

Wednesday, June 05, 2013

Due to the unique way we're funded...

(Although I'm mentioning who I work for, the opinions expressed below are my own. Who else would want to own them?)

I was thinking about the BBC this morning and how we have (in my opinion) the best TV in the world because of the license fee. (For my readers not in the UK, everyone has to pay an annual license fee in order to own a TV, even if you never watch the BBC.) There's no suggestion that this fee is going to go away, but every so often the BBC subtly reminds us of the advantages of this system, saying, "due to the unique way the BBC is funded".

Mission organisations vary in the way they are funded, specifically in how individual workers get their money. Some have a common pot, some channel money directly from donors to the workers. We, Wycliffe Bible Translators UK, have the latter system (find out more at What, no salary?). There are also different ways to handle the situation when the donations don't match the need, and how the "need" is defined. In our UK headquarters office we have some employees too, as well as volunteers who don't get any money through us at all. So while the way we're funded isn't quite unique, we do have a rare mix of people.

With our upcoming move to new offices the current mix of "supported staff", employees and volunteers in the IT Department is changing, and I've been communicating various aspects of this for different purposes. As it's on my mind I thought I'd share some thoughts publicly.

I know I'm biased, but I think IT is important. As things get more technical - our cars, our washing machines, our phones - we're probably all more aware of how reliant we are on those things when they go wrong. The trouble is that it's a bit boring. Actually, that's not right, it's very boring, unless you're an IT person. So whilst I highlight some things of general interest like sign languages a lot of the stuff we do isn't that noteworthy.

We help all sorts of Wycliffe people out, not just those working in our offices, but people passing through from all over the world. We also have a number of people dotted around the UK who, thanks to the internet, are working on translation projects overseas. They don't pay for our services (unless they buy something through us, in which case they pay a small handling fee on top of cost price), in the same way that the people who benefit from their work don't pay the full cost of getting a Bible in their hands.

So someone has to pay for all this IT, but it's not as compelling as other causes. What to do?

Tuesday, June 04, 2013

Daddy, daddy, look what I found on YouTube

It used to be that my children would come to me and say "daddy, daddy, look what I made out of Lego". Now they say, "dad, look what I found on YouTube". (They don't really say "daddy" as I put in the title. That's a carefully crafted sentence designed to get you to click through from my social media feeds.)

What they are showing me is episodes from their favourite "series". I say series, because apart from the length, they are like TV series, with new episodes coming out regularly, weekly for example. The quality is professional. I wonder who's paying for this stuff? The money for those cameras has to come from somewhere, the people who do the work need to eat.

In the case of Rhett and Link (500 web videos produced) they "support themselves by creating and distributing their branded entertainment", though they do get paid to do stuff for other people. I'm not clear though whether the video or the money came first.

Video Games High School is another interesting one. 5,661 pledged $273,725 on Kickstarter to make this series. All those people paid all that money and we get to watch it for free. (Internet connection charges apply.) How does that work?

I don't have time to dig into all the other people my kids are telling me about. (Jenny Bee signed our ukelele, does that give me street cred?) I'm just bemused that all this good quality stuff is up on YouTube and people are managing to eat too.

Monday, April 22, 2013

Blackberry 10 and Cascades

In my lunchbreaks I've been doing some BB10/QT/Cascades development on a Bible app. The SDK comes with a customised version of Eclipse.


I've heard of Eclipse over the years, but I've never used it before. I'm very impressed. Of course IDEs have come on since I used Visual C++ regularly many years ago. There seem to be lots of useful features and I've hardly scratched the surface. The BB10 SDK comes with the tools for deployment etc. all built in. You can even upgrade the SDK without leaving the IDE (apart from restarting it at the end).


QT is also new to me. You can use it without QML (a markup language for the UI) but it's nice to be able to  see the visual form laid out in a file, rather than sprinkled throughout the code. One trouble with QML is that as it's not compiled but dynamically interpreted, you can make mistakes which don't get picked up at build time. It has javascript like syntax for code snippets and if you're lucky you may see an error in the log if you've done something wrong.


This is the icing on the cheescake which means that you can develop native looking apps with another framework on top of QT. Although in the past I've hand assembled Spectrum machine code these days I want to concentrate on creating the original with my software, so it's good to have components already available, like a rich listview, or text areas that scroll. So with Cascades you get access to all that sort of UI stuff. Surprisingly I've found some bugs in what's already being used on real devices without doing too much. Maybe I've been unlucky.

Saturday, March 23, 2013

What was Tim Berners Lee thinking of?

With Tim Berners Lee winning the Queen Elizabeth Prize for Engineering along with some other people, some I'd heard of, and some I'd not, it's worth rereading Tim's original proposal for what became the World Wide Web. He was trying to solve the problems that CERN was facing, but envisioned it being useful to the rest of the world as well. He was right.

Wednesday, March 20, 2013

Logica and me

Logica was the company I joined after University - in 1988. In the early days I went on a training course which aimed to let me know about the company values. There were 10 of them and I can't remember 9, but one of them was "having fun".

In 1993 Dr Martin Read (Wikipedia article pending) took over and shook the place up a bit, as I think we were a bit flabby and complacent. One of the changes he made was to get rid of the plants. I sent him an email asking him why he got rid of the plants, when we had modern art on the walls that I'd rather get rid of. He contacted my line manager who asked me what it was all about. I said that I thought he ought to get rid of the art rather than the plants. I've learnt since that this is a very "Generation Y" thing to have done.

The last project I worked on at Logica was called RMS and the client was Anglian Water. It was a great project. So much so that one of the people on it took it upon themselves to write to everyone on the project after it was over each Christmas and ask for our news. He then collated the news and sent it out to everyone. That was 18 years ago, and it's still happening! One of the things that made the project run smoothly was that it had two project managers. One was the external one who related to the client. The other was the internal one (sadly she's died recently) who kept us all on course. When the project was over I left the company and I wasn't the only one to feel that any other project wouldn't be as good.

When I was there Logica was proud that it hadn't been taken over, but since then it has merged with CMG and been taken over by CGI. According to one of my contacts the branding on the offices is being changed to CMG so Logica will effectively be no more. Goodbye Logica.

Press coverage

Monday, March 18, 2013

MailChimp and Blackbaud NetCommunity - pros and cons

When we got the bill for sending out emails through Blackbaud NetCommunity I did the maths and worked out it cost us 35p for each email we sent. We pay a certain amount for up to a certain amount of emails in the year. Because we didn't use that much of the allowance, that's what the cost worked out at. So not that much cheaper than sending by post. If we'd sent up to the limit it would have cost us 7p per email. So cheaper, but not free.

So I did a comparison of MailChimp versus NetCommunity. If we went with MailChimp we'd use the Chimpegration plugin from Zeldman Development. Here's what I came up with.

Blackbaud NetCommunity


You can see who gives as a result of a clickthrough from an email.
No need to manually export lists.
You can run email campaigns (a feature we don't currently use).
You can share images with the main BBNC site (which we don't do much in practise).


Cost, as mentioned above.
Composing emails with the HTML editor is tricky and it's easy to lose formatting.



Cheap - $10/month for 500 subscribers (free option available too)
You can use a template language to restrict the places where people writing the emails can fill in text.
You can use a dropdown to pick up a predefined style.
Nice image upload/edit facility.
You can show archives on your site.


You need a manual step to import the email list.
If you don't have the Blackbaud email service then you will need to write some custom software to acknowledge donations by email.

In the end it was the last point that meant we stuck with Blackbaud NetCommunity, at least for another year.

Update: had I started to write something for gift acknowledgement I would soon have discovered that MailChimp's newsletters weren't suitable, as David Zeidman has already, though there is another possibility:

Update 2: We're thinking of going with Blackbaud Online Express when it can handle UK Direct Debits.

Update 3: Here's the first of my posts on Online Express.

Saturday, March 16, 2013

Ceramic Raspberry Pi case

Last year my wife brought some clay home and we all had a go at building something. I chose to make a Raspberry Pi case. Mine hadn't arrived by then so I worked from the schematic on the website. Clay shrinks a bit when it's fired, so I made it 10% bigger. Unfortunately when my Pi arrived it didn't fit in the case as one of the side pieces leans a bit far over and prevents it going down in. One day I'll get my drill out and see if I can (carefully) cut away a bit at the clay.

Update: the clay was too hard to cut. Also here's a much better ceramic case

Tuesday, February 26, 2013

Brainstorming session

I asked twitter for advice and Louise came up with the goods.
Here's the result!

Friday, February 22, 2013

What does it mean to be logged in?

The last time I got fed up of my lack of knowledge on something I drew a poster about public key encryption. This time it's about what being logged in means. What is prompting this is the fact that more recent updates to Chrome have seemed to make it so that in some cases when Chrome restarts you remain logged in to a website where I'm sure you weren't before. So I'm finding out the different ways that websites keep you logged in. I usually write a complete blog post before I publish it, but this is going to be a public work in progress.

HTTP is stateless. What about headers?
What different technologies keep the fact that you're logged in?
  • cookies - session, time-limited
  • technologies - PHP, ASP, others
  • ASP session state
  • anything else?
When you tick "remember me" what's going on? Is it clear whether it's remembering username and password?
How does the browser remember passwords? Is it secure?
What's going on with Single Sign On? (Ref this video:


If you know about this stuff, and I get something wrong, please tell me, so we can make the world a better place, or at least this blog post. Bear in mind though, that I am simplifying. So when, for example, I say as below "you get a web page back" the proper way of saying that probably is something like "you get an HTTP response" which is in all likelihood a web page, but may not be in every circumstance. However I'm not going to say that, because I'm simplifying.

HTTP is stateless

You ask for a web page, you get a web page. You ask for another, you get that. The server isn't required to keep track of the fact that you asked for one just now. There are ways to get round that, one of which is cookies. I'm logged into a local MediaWiki (the software that Wikipedia runs on) site. Here's the cookie that gets sent to my computer every page I request.

I've obscured some of the strings in case they are a security risk, you never know. So there you can see a couple of relevant variables. PHPSESSID is the PHP way of keeping track of sessions, and bsm_bsm_session (where bsm is the name of my mediawiki instance) is probably a mediawiki specific cookie. __utma and __utmc are Google Analytics tracking. I don't know why they are involved.

This is the site that I first noticed I stayed logged into every time Chrome started up. That cookie is a session cookie, which are supposed to be deleted by the browser every time you shut it down. Chrome chooses not to do this though, if you enable "continue where I left off" in settings. I do that so that my tabs from my previous session are open, and apparently session cookies aren't deleted too, which is a feature.


Which roughly means "how Windows servers do it" (ignoring older technologies). An authentication token is stored in a cookie or a page URL (source).
So what's in that cookie?
What determines whether a cookie or a URL is used?

Wednesday, February 13, 2013

Naming things is hard

Nearly five years ago I wrote that Names are important. Recently I came across a quote from Phil Karlton “There are only two hard things in computer science: cache invalidation and naming things.” (I couldn't find out where I came across it, but here's an old reference from Tim Bray). The difficulty of naming things doesn't just apply to Computer Science, it applies to a lot of things.

So here's some advice based on my 26 years' experience:
  • Name things by what the people who need to know would call them. For a couple of years we did a joint tour with the Saltmine Theatre Company. The first year we called it the Saltmine tour. They may have called it the Wycliffe tour. The second year it was called by the name of the event, much better.
  • Never call anything "new". There will come a time when it's not new and then the name will seem silly. New York is the exception to this, New Holland isn't. Buckinghamshire New University is going to have to undergo an expensive re-branding exercise in a few years.
  • Confusing where you are with what you do. The Wycliffe USA offices used to be in Huntingdon Beach, California. They produced a financial statement we called the HB report. Then they moved to Orlando... One way round this, which may be used elsewhere, if you think you're going to stay in the same part of the country, is to use airport codes. So we code our online jobs with LHR and then a numerical code on the UK website. Whoops, did I just link to a job in the IT Department here?
  • Confusing who you are with what you produce. The Joint Photographic Experts Group produced the spec for JPEG files. I guess they were happy with that. The Personal Computer Memory Card International Association produced a spec for what we called PCMCIA cards, and then later they wanted us to call them PC Cards. RIM produced BlackBerry phones and finally have renamed their company. I guess if the phones hadn't taken off under that brand they might have invented a new brand.
  • Confusing an interface with a system. We developed a system for interfacing with an internal system PMC. We called it PMC, but it should have been the PMC Interface.
  • When creating a document filename it's worth adding a bit of context in case the document gets a life of it's own. So if the proposal for Project X is just called proposal.doc in the directory ProjectX and it gets emailed to someone then it's just going to be called "proposal.doc" on their machine. The project name in the filename would prevent that.
  • What's next in this sequence? A, A, D, F, J, J, M? What's next in this sequence 2012-01, 2012-02, 2012-03, 2012-04. yyyy-mm(-dd) is great for date related files, month names aren't as when you sort them alphabetically they go out of sequence.
Do you have any other tips?

Monday, February 11, 2013

CheckITOut - IT in Wycliffe

I'm involved in an event called CheckITOut - a couple of hours of info about IT in Wycliffe on 6 April 2013 in Coventry. We've got a number of speakers covering some interesting areas. I did a Prezi to advertise it.

Friday, February 08, 2013

Interesting Bible Translation and tech snippets

I was talking to someone this week who is working on various technical things that help Bible Translation. One is LanguageForge, which is like SourceForge, but for data on languages. So it could be used for translation projects when it's released.

Another is Graphite - "a free and open rendering engine for complex scripts". It's really useful when it comes to working on minority languages, may of which have complex scripts. It's now available in Firefox 11, LibreOffice 3.4+, Fieldworks and other software. So with support for translation tools, typesetting and web browsers you have end to end support for these scripts. Mobile devices are in their sights too...

Monday, February 04, 2013

Tim Berners-Lee and an anecdote involving Bible Translation

In 2008 Tim Berners-Lee founded the World Wide Web Foundation. In the speech where he announced it he told an interesting anecdote:
This person, this man had taught himself English by using various books that he’d come across. Among them are the bible I understand, something that he could get in both languages. Having taught himself English and having got some sort of rudimentary Internet connection, then he could sell his services as a translator on the open market out there in the big wide world. He could not only – so he could bring money into the village but also he could be a channel to bring information into the village. He could translate the stuff that was out there into the village. And he could operate – so he could enable commerce.
The reason he told it was because he was talking about access to the internet could enable development goals. Naturally, given my job, the thing that interested me was the fact that having the Bible in English and presumably his own language, was what enabled him to sell his translation services.

(I first heard about this anecdote on the Guardian Tech Weekly podcast.)

Friday, January 04, 2013

How an IT Director chooses a phone

I've got a new phone, but I thought you might be interested in how a chose my old phone:
  Old phone
Let's start with battery life - 10 days on standby, not bad at all.

User interface - apart from one quirk (the "go away" button for a reminder and the alarm isn't the same) it's pretty much perfect. The thing you most want to do is on the top left hand button. So once I've composed a text I can send it to my wife with just 5 clicks on that button (so long as she's first in my address book).

Security - it has no internet access, so it you can't get at my email or into our corporate network. It can't get viruses. As an IT director this is important, so that's a great strength. One flaw - memory isn't encrypted.

Price - This has to be the one thing that clinched it for me - my mum swapped it for my old phone so it didn't cost me anything.

Thursday, January 03, 2013

Raspberry Pi - doing something useful

My second most popular post of 2012 was Raspberry Pi in real life and a tiny wireless access point. (The first was the ever popular Firebug equivalent for IE written back in 2007.) My analytics shows that people are searching for Raspberry Pi and access points.

Anyway, I thought I ought to write another Raspberry Pi post. When I got mine I had problems with booting from the SD card. For some reason it would only boot if you put in on an antistatic bag and then used your fingers to short the bag to some of the pins. I got a different card which has worked fine.

Over Christmas I had time to do some more stuff with it. I got the latest Raspbian image which thankfully includes wireless support from an icon on the desktop, rather than fiddling around with firmware and typing arcane commands. I added VNC support, enabled SSH and I was cooking on gas, as they say.

I wrote a script which would detect when the SD card from my camera was plugged in and copy photos from it to the PC where I archive them. When I discussed with someone my plans to do this they pointed out that I would probably spend more time developing it than I would save in doing it the old way (running a script on the PC). However, that's not the point! The interesting thing is finding out how to do it.

Although I've been using Unix for 24 years I don't use it regularly, so it took a bit of digging to find out that mount -t smb is now mount -t cifs. The script is now working, so I need to schedule it with cron and we're away.