It’s not how programmers are normally portrayed

11 Sep 2014


One 2013 study of Indian engineering students asked whether they ever felt left out in an academic setting. About 8 percent of female engineers reported such feelings, while almost 20 percent of male engineers sometimes felt left out.

In another study [of Indian engineering students] female students described the culture of computing as one that prizes meticulousness, intelligence, sociability, and mutual assistance.

A culture of computing which prizes sociability, and mutual assistance. Oh.

PHP – This is not a bug, it’s a feature

11 Jun 2014

Type-juggling can go so wrong. Try this:

echo in_array(0, array('foobar')) ? 'true' : 'false' ;

It will output true, which seems so very very wrong. PHP indeed tries to convert ‘foobar’ to a number, and because that is not really possible, it becomes 0. So in_array returns true.

$array = array('1','2');
echo in_array( 0, $array ) ? 'true ' : 'false ' ; // false
echo in_array( '0', $array ) ? 'true ' : 'false ' ; // false

$array = array('this is a string);
echo in_array( 0, $array ) ? 'true ' : 'false ' ; // true
echo in_array( '0', $array ) ? 'true ' : 'false ' ; // false

$array = array(1,2,'string');
echo in_array( 0, $array ) ? 'true ' : 'false ' ; // true
echo in_array( '0', $array ) ? 'true ' : 'false ' ; // false


Smartwatch Prototype – 1981

11 Apr 2014


This image was designed by Robert Tinney, an artist who designed many magazine covers for Byte back in its prime. A “master of the airbrush”, his work helped give the sci/tech magazine some of its voice in the 70s and 80s.

This particular cover was designed for the April 1981 issue (April Fools) and was a tongue-in-cheek look at the future of computers.

A copy can be bought from Robert Tinney’s website

Securing phpMyAdmin

30 Apr 2013


I run phpMyAdmin for a number of websites and (thanks StackOverflow), this is my check list for phpMyAdmin Security.

What gets done depends a lot on the client’s webhost and how much control I have, but this is a short list of things which can be done.

  1. Change the folder location
    I’ve changed the application folder the obvious ones such as phpMyAdmin or pma to something a little less predictable; databaseliveshere or folder name of your choice.
  2. Passwords
    This is rather duh, but no harm in stating the obvious. Secure passwords which are proof against a brute-force attack
  3. Limit Access by IP Address
    This depends on how many people are accessing phpMyAdmin, and whether everyone has a static IP address, but I like to setup .htaccess so it restricts access to a subset of IP addresses.
    <limit GET> 
        order deny,allow 
        deny from all 
        allow from 
  4. Root shouldn’t have access to phpMyAdmin
    I edit the config file for phpMyAdmin and set AllowRoot to false
  5. HTTPS
    I set up a self-signed security certificate so I can access phpMyAdmin via https. This way the login and password can’t be leaked to an attacker.

Banned Words

5 Feb 2013

I've been working at a small software company recently, where the customer support team is three young guys who spend a lot of time of the phone.

I was really tickled to find this list of BANNED words, and had to ask for an explanation.

  • Mate
    It's a little too friendly. A lot of our customers are over sixty and they don't want to be matey with some young guy on the phone.
  • Bug
    We don't have bugs. Sometimes we have undocumented features, or unexpected outcomes. And sometimes we have to say "We'll get the developer to have a look at that" but we don't have any bugs. Bugs worry people.
  • Colleague
    Customer support are not allowed to say "I'll refer that to my colleague" because it makes us sound like some enormous heartless call centre in Swindon. We're small, and we want to make a feature out of being small and personal. So the support guys don't "refer the matter to a colleague"; instead they say "I'll ask Wes (or whoever) to take a look at this"
  • Obviously
    As soon as you say "Well, obviously..." you make people feel stupid. Obviously.

Working Day which works like clockwork

31 Dec 2012


Today I’ve been thinking about time-management, working from home, and I’ve ended up outlining my standard working day.

This is very much a platonic ideal, or a working mean – the normal deviates from the standard in almost every way. Times are moveable, I don’t go to the gym every day (if only), I don’t always start (or stop) at the same time, weekends often turn into work days, I have more or less personal time than I put down, I’m out visiting clients. But this is a rough outline of how I’d like the day to go.

Read More

Phil Agre: How to help someone use a computer

23 Dec 2012


Years and years ago, I used to work in user support. At some point I found the following article on an email list and I personally found so useful and so to the point that I had the printout laminated and stuck it to the wall next to the main support desk. That was years ago, and since then I’ve had many jobs, learnt many things, and I no longer have the advice on “how to help someone” stuck to the wall.

Earlier this year, I bought a Mac and had to learn to use it after 20+ years of working with a PC and Windows. This meant I had to unlearn the habits of a lifetime (copy is Cmd+C, not Ctrl+C) and it was a sharp reminder of what it’s like to be a beginner again, and made me think of the article on “how to help someone use a computer” after many years. I went and dug it up out of the depths of the internet. It’s still valid, it’s still good, it’s still useful. And if you ever have to help anyone else (friends, family, members of the public, passing strangers) use a computer then this should be required reading.

Read More

CSS is a messy mess

28 Nov 2012

, ,

CSS is supposed to make my life easier (and it has) but it’s still a broken counter-intuitive very messy mess. It does not solve all problems, and for the past few days (on and off) I have been going round the bend trying to build a comparatively simple HTML / CSS layout.

Read More

Leamington Spa Jelly

27 Nov 2012

, ,

Yesterday, I took part in my first Jelly session.

Jelly is free, informal co-working for freelancers and home workers. If you love working from home, but occasionally find yourself desperate for a change of scenery, or for just a little bit of social interaction, then you can take your laptop, meet some new people and work in a new space for a day. You have some of the benefits of working in an office (brainstorming, bonding over client horrors and someone else to make the tea) without actually having to go and work in an office.

Working at the Jelly
Jelly People

Read More

Project Management as a treeswing

22 Nov 2012

, , ,

Talking to a customer t’other day and I mentioned the (infamous) tree swing cartoon. He had no idea what I was talking about.

Read More