5 Jul 2008, 1:44 p.m.

Fighting Spam and Digitising Books with reCAPTCHA

When I added a comment form to this blog, I wondered how long it would be before I started getting comment spam. Then I wondered if I was flattering myself to think that spam bots would even be interested in my site.

So it's with mixed emotions that I have to admit that right now the number of spam comments I'm receiving is outstripping the number of genuine comments by a ratio of about 10:1.

The time has come to add a CAPTCHA to the comment form.

Posted by Simon Read more »
29 Jun 2008, 6:47 p.m.

Mobilising a Website, Part 1: The Problem

It hasn't escaped my notice that if one happens to visit Pointbeing.net - this very site - using the browser on a mobile phone, the experience is more than a little painful. In fact, more often than not, the site is simply unusable.

The reason for this is that the site does not adapt itself in any way to the smaller screens, slower connection speeds, and idiosyncratic navigation methods found in mobile devices.

In my defence, this is not unusual right now: many, many sites are in the same position (have you ever tried to visit LinkedIn on a mobile?). However, given my faith in the future of the mobile web, and also given what I do for a living [1], this is something of an embarassment. The time has come to mobilise Pointbeing.net.

Posted by Simon Read more »
3 Jun 2008, 9:45 p.m.

Zend_Search_Lucene Quick Start

I recently had a spontaneous urge to add a search form to my weblog - this one you're reading right now - and it seemed like a good opportunity to have a look at Zend_Search_Lucene.

I'm really impressed with the simplicity and power of the module. Sadly the documentation, whilst extensive, isn't particularly clear - so here's a quick overview of getting Zend_Search_Lucene up and running.

Posted by Simon Read more »
1 Jun 2008, 4:25 a.m.

My php|architect Article to be Published in June

I purposefully didn't mention this here before now, as I didn't want to jinx anything.

But the time has come, and I'm pleasantly surprised to be able to report that my article - named something along the lines of "PHP Tools for Mobile Web Development" - is to be published in the June edition of php|architect magazine.

This will be my first ever contribution to php|architect, so it's a huge compliment that as well as being published somewhat sooner than expected, it looks like becoming the cover feature for June.

We're currently in the final stages of editing, and I'm really enjoying working with editor Steph Fox to turn this into something worth publishing. Stay tuned for further news.

Posted by Simon Read more »
27 May 2008, 5:19 p.m.

Clay Shirky on the Cognitive Surplus

I came across this via a recent post on Jeremy Zawodny's blog, and found it fascinating.

I've been meaning to post something about this for a while, ideally accompanied by insightful and witty commentary. But that didn't happen so I figured I'd let Clay's presentation, from this year's Web 2.0 Expo, speak for itself.

In short, by the term Cognitive Surplus, Clay is referring to the huge amount of spare time and spare brain power that you guys have. That cognitive surplus has so far been swallowed up by the cultural black hole of TV, but little by little people are turning away from TV, and towards more interactive media, specifically the 'net. The upshot of all of this is that we might just be in the throes of something that rivals the industrial revolution in its significance.

I think he may well be right. You make up your own mind.

Posted by Simon Read more »
24 Apr 2008, 1:56 a.m.

The End of Mowser is Not the End of the Mobile Web

In the last few days there has been a certain amount of rather sensationalistic and poorly informed commentary floating around on tech sites and blogs, predicting the immediate death of the mobile web. For example, this piece on CNET, and The Register's dramatically titled A Requiem for the Mobile Web.

And what is the basis for this doom-and-gloom mongering? Well, it turns out that a poorly-marketed twelve-month-old startup, named Mowser, which has never been able to attract VC, and seemingly staked its future entirely on its ability to attract VC, has called it a day.

That's it.

Posted by Simon Read more »
22 Apr 2008, 1:36 p.m.

Why is mail.police.gov.bd Attempting to Hack Me?

I keep a distracted eye on failed logins to the mighty Pointbeing.net datacentre, courtesy of logwatch [1]. Here's the list of attempts from yesterday:

Authentication Failures:
root (mail.police.gov.bd): 452 Time(s)
unknown (mail.police.gov.bd): 403 Time(s)
root ( 17 Time(s)
adm (mail.police.gov.bd): 6 Time(s)
lp (mail.police.gov.bd): 4 Time(s)
mysql (mail.police.gov.bd): 4 Time(s)
root (securityscan.xtraordinary.net.uk): 4 Time(s)
unknown (securityscan.xtraordinary.net.uk): 4 Time(s)
apache (mail.police.gov.bd): 3 Time(s)
ftp (mail.police.gov.bd): 3 Time(s)
bin (mail.police.gov.bd): 2 Time(s)
bin (securityscan.xtraordinary.net.uk): 2 Time(s)
daemon (mail.police.gov.bd): 2 Time(s)
games (mail.police.gov.bd): 2 Time(s)
gopher (mail.police.gov.bd): 2 Time(s)
ftpsecure (mail.police.gov.bd): 1 Time(s)

Now, securityscan.xtraordinary.net.uk is a monitoring service provided by my hosting company, Xtraordinary Hosting, who I strongly recommend. I don't know who or what is, but a quick visit to DNSstuff suggests that it's probably a run of the mill hacking attempt orignating from China.

Of particular interest to me are the many hundreds of attempts originating from mail.police.gov.bd. That appears to be the Bangladeshi police's own webmail server, running an alpha of SquirrelMail. The pattern of the login attempts corresponds strongly with that of a compromised server.

Has anyone else seen this in their logs? Is there any point in emailing the Bangladeshi police to let them know?

[1] Seriously guys, who runs their website on port 81?

Posted by Simon Read more »
5 Apr 2008, 10:02 p.m.

An Introduction to Fire Eagle

A definite highlight of Over the Air 2008 was London-based Yahoo Steve Marshall's introduction to Fire Eagle. For those not in the loop (which, to be fair, is most people: Fire Eagle is currently only open to a limited number of invited developers) Fire Eagle is Yahoo!'s brand new API for location-based services.

Posted by Simon Read more »
3 Apr 2008, 11:30 a.m.

Hint to Employers

Here's a handy hint to the employers and facilities managers out there, which shouldn't really need stating:

Do not expect your developers to be happy and productive in an office heated to 28° or 29°: they won't be.

A corollary to this rule is:

Don't rent offices from Regus.

Luckily, we're moving in a few weeks' time.

Posted by Simon Read more »
31 Mar 2008, 11:25 p.m.


A few years ago, as an exercise in Test-Driven Development, I wrote a Turing machine simulator in PHP and imaginatively named it PHPTuring.

I had completely forgotten about it until today, when I dug it out for another look. Truth be told, I still haven't seen a Turing machine done any better in PHP, and apart from a few syntactical niceties (removing closing PHP tags as per the Zend way, neatening up the PHPDoc blocks) I'm actually pretty comfortable with the code.

Using it is a breeze. It reads pipe-separated tapes and newline plus pipe-separated instruction sets like so:


$prog = '0|1|1|R|0\n0||1|R|1\n1|1|1|R|1\n1|||L|2\n2|1|||stop';
$tape = '1|1|1|1|1|1||1|1|1|1|1|1|1|1';

$machine  = new Machine();
$compiler = new SimpleCompiler();
$parser   = new SimpleTapeParser();
$debugger = new SimpleDebugger();


header('Content-type: text/plain');

It should work with other formats, so long as someone writes parsers for them. Similarly, the debugger is just an Observer that dumps the state and tape to the screen at each step, but it could easily do something more subtle some day.

The code ships with full tests, and is available for download on PHPTuring's Sourceforge download page.

So why am I banging on about it here? I don't know. Maybe just because I like it, because it was the first afternoon's coding that really got me test-infected, and because I'd be interested in any feedback.

Posted by Simon Read more »