The Great Facebook Debate – Sold Out

British Interactive Media Association | Event | The Great Facebook Debate

Darn it. I missed this one in my regular blog reads, and it’s sold out already – by the looks of things quite a while ago too.

Hope they offer another one like this in the UK soon. I’m gearing up to spend more time on ideas and developments with ‘social networking portability’, and will be aiming to build some useful tools shortly. It would be nice to get more in touch with other like-minded people.

Amazon.co.uk: Getting Things Done: The Art of Stress-free Productivity: Books: David Allen

Getting Things Done: The Art of Stress-free Productivity: Books: David Allen

Been reading this book after a couple of recommendations. The tips are nothing new or extraordinary, but are presented in a clear and concise way, with methods and anecdotes to encourage the reader to manage their workload efficiently.

I’m about halfway through, and am already feeling better about the way I work.

Flash Earth

Flash Earth …satellite and aerial imagery of the Earth in Flash

I think I saw this briefly before and simply forgot to note it down. Flash Earth is a nice Flash based implementation of the various AJAXy maps we’ve come to know, love and expect. It gives a full-window view of the area, with panning and scrolling controls and a little search box. The images are sourced from a variety of tile providers, and the user can choose from Google, Microsoft, NASA, and others. Interestingly, I never knew that Ask is also in on the mapping game, and their images (of Gosport at least) appear far more recent than the other offerings.

Facebook Friends’ Birthday Thingymajig

http://dev.svenlatham.com/friendcal/

Finally, I’ve found a use for Facebook 🙂 This little tool will take all your friends’ birthdays and create an iCal file from them. The resultant URL can then be put into your favourite calendar program (I use Google Calendar), so you can see all your friends’ birthdays in one place.

This is very basic at the moment and I can’t guarantee it’ll be up and running for long (but I’ll try). It’s also very hacky, so expect nasty errors if something goes wrong!

Please give it a go if you have a Facebook account, and let me know if it works.

After this, FOAF extraction…. 🙂

Confusion Abounds

Filling out a car insurance quote recently: ‘Is your car left- or right-hand drive?’

This question always stumps me. We drive on the left here in Blighty, my car is designed for UK driving, so surely it’s a left-hand drive? Nope. apparently it’s where the driver sits (as viewed from behind); it’s a right-hand drive car.

I also tend to get confused by ‘the inside lane’ on a motorway. Surely the inside lane is the one nearest the central reservation (aka median)… It is, after all, on the ‘inside’ of the road. Turns out though, that this is the outside lane; the inside is the one on the left.

Please comfort me by confirming I’m not the only one perpetually confused by definitions like these!

Quick Thinking

I’m currently managing a friend’s WordPress blog while they bugger off on a round-the-world trip. Goodness me they get a lot of spam.

Within a minute or so of turning off Spam Karma (it causes problems with the comment count, apparently) I/he had 15 new comments, all spam. So, without FTP access I quickly put in a hack to the comments page thusly:

<textarea name="quack" id="comments"></textarea>

<script type="text/javascript">

document.getElementById('comments').name = 'comments';
</script>

Nice and simple – a bit of Javascript that renames the comments field so it can be submitted correctly (if you fail to run the script, the comment fails). I know there are accessibility issues and all the smartarses who turn off their Javascript are stopped from commenting, but desperate times call for desperate measures. It’s quick & dirty, and for most people (this guy doesn’t get a massive amount of traffic) it works OK.

Anyway, I went to bed last night feeling smug that I’d robbed a load of spammers of their precious links. This morning I took a look: 38 new comments. They’ve already made their way around it.

This suggests one of three things:

  1. The spammers caught the error and changed their behaviour to suit. Doubt it, it’d be easier for them to move onto other blogs.
  2. They execute Javascript (maybe it’s a full-on Firefox session with a plugin script?. Likely, and rather smart!
  3. My code is rubbish and never worked in the first place. Never impossible.

Anyway, kudos to those guys for not being thwarted by a simple script! Now, let’s see what happens when I get Spam Karma re-enabled or I activate Akismet…

Update 22 Sept: Ignore the above. My code is rubbish. If the spammers do a simple POST to the server they will succeed, since I’d never updated the server-side code to match the client. Best bet for this hack would’ve been to rename the field both on the form and in the server code to something unpredictable (‘quack’ is just fine…) and not bother with the Javascript, Spammers would ignorantly continue to assume the field is ‘comments’ and their posts would fail. Thanks Brian and Neil T

A while ago I wrote a blog host service which included a more sophisticated spam filter. It would scramble all the fields client-side, include a couple of hashes and would only accept the comment as-is if all the hashes matched the server’s own records. It stopped blind POSTs and bots that did not use Javascript. It also cleverly spotted genuine users who might not have been able to run the Javascript (since there was a larger platform accessibility was a concern), and used timing information to identify real users (who take their time) versus bots (who tend to write/post immediately or in a regular pattern).

It worked for nearly 2 years without a single automated spam comment getting through (many tens of thousands were stopped; no false positives either). Manual spam got in, but was minimal. Finally the spammers changed their ways and (I guess) began using full browser sessions to post their spam – once they do that you need to start looking at content analysis or other methods.