Many Pies

Many Pies

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.

Thursday, December 06, 2012

Another Blackberry Playbook app

I've developed another Blackberry Playbook app in my spare time. My first one was a bit rubbish, but it got me a free Playbook. My second (GPS to Grid Ref) only did one thing. This one isn't fantastic, but it is a proper game.

I developed it using the Marmalade SDK which targets iOS, Android and the Playbook. There was a promotion where they gave away developer licenses for six months so you could develop apps and if you submitted one get (another) Playbook. The Marmalade tools are really good, making building, deploying and debugging pretty smooth. The SDK has all sorts of libraries which came out of Ideaworks3D Game studios game development.

The game is based upon one of the samples, where a square on the screen moves towards your finger when you tap or press on the screen. Two of my sons, with the Playbook between them, started trying to get the square to move towards them, and the idea was born. My wife gave it the name - Tap Tug of War - and all three sons playtested it. To stop you just holding your finger down I made it so that if you pressed for two long the square, which became a fuzzy blob for the final game, would move away from you. I put a state machine around the game play for the splash screen, game over and restart screens, created some graphics and the game was done.