Artificial Intelligence is a Horseless Carriage


A robot with a backlit human face.

I've been thinking about words. The Chinese word for "train" - the mode of transport - is 火车. Which literally translates as "fire chariot". Long gone are the days when trains were pulled by a fire-breathing engine at the front, and yet this linguistic skeuomorph hangs around. English is not immune from this. The television still asks us to "tune in" even though no-one manually tunes in a radio receiver any more. We still dial telephone numbers, even though the rotary dial went out of fas…

Continue reading →

Context-Aware Text Recognition?


A scanned document, the text is askew. Next to it is a computer-generated version of the text. A passage is highlighted.

I've been playing with Google's Cloud Vision API. It is OCR (Optical Character Recognition) - but in THE CLOUD and uses MACHINE LEARNING! When it works, it is indistinguishable from magic. When it fails, it reveals a very limited understanding of human text. Let's take a look at this quick example - a piece of evidence from Leveson Inquiry Considering that the document is a digital scan of a fax of a print out, it low resolution, blurry, and skewed - it is nothing short of incredible that …

Continue reading →

The Policy Hack


Clip from the film "The Matrix" - a young bald boy is saying "There is no spoon."

I've found a delightfully exploitable social hack which I presented at UK GovCamp. It applies to any uncooperative bureaucracy. Here's how it works. You ask someone to do something and they reply with "I'm sorry sir, that's against our policy." You should say "I'm sorry to hear that. Please can you send me a copy of the policy?" Turns out, most times, there is no policy! Shocking, I know. So much of modern life rests on the whim of whichever call-centre worker you happen to get. If they …

Continue reading →

MailChimp leaks your email address


Change email address page with obscured email address

An annoying privacy violation from leading email newsletter company MailChimp. Responsibly disclosed on 2017-12-04. When you click a link on a webpage or an email, your browser opens up that link and sends the newly visited webpage a Referer Header. (The misspelling is a historical artefact.) This says "Hello new site, I was referred here by this previous website." This has some privacy implications - the administrator of a web site can see which website you were on. Usually this is fairly…

Continue reading →

Emotional Technobabble


Screencap from Doctor Who. The Doctor says "Must be a Spatio Temporal hyperlink." Mickey replies "What's that?" The Doctor answers "No idea, just made it up. Didn't want to say 'magic door'.

"Reverse the polarity of the neutron flow!" "I'll create a GUI interface using VISUAL BASIC, see if I can track an IP address." "I love you, let's get married!" Technobabble sounds convincing to a lay audience. If you're not a computerist, then "hacking the mainframe" sounds plausible. If you're emotionally immature, then "I love you! That's why I have to leave you!" sounds like something a normal person would say. If you ever watch old episodes of Doctor Who, you'll notice a certain…

Continue reading →

Review - BlueSkySea DashCam


Dashcam product shot

The good folks at BlueSkySea have sent me their 1080p dashcam to review. It's a sub-£50 dashcam with built in WiFi and a 150° field of view. Let's take it for a spin! Unboxing and first use Video Samples Video resolution: 1920x1090 formatted to play back at 1920x1080. Audio: 16KHz AAC stereo - although seems to be mono. Just about good enough to clearly pick up voices in the car. File Size: 100MB per minute. Low light Basically fine. Need to be relatively close to see numberplates. …

Continue reading →

Using canvas to shrink images for Google Cloud Vision


The HTML5 Logo.

I've started using Google Cloud Vision for running text detection on OpenBenches images. There's just one problem - Google limits the size of the files that it will accept to 4MB. Why? Who knows! Obviously, it's easy to shrink an image server-side, but how do we do it in the browser? First, let's take a bog-standard file chooser and add a <canvas> element. <input id="userFile" type="file" accept="image/jpeg" /> <canvas id="shrink"></canvas> Next, when the user chooses a file, draw it on…

Continue reading →

Review - Linxtech IN1601 Mini Drone


Mini drone which fits in the hand

The good folk at RC Moment have sent me another drone to review! This is the Linxtech IN1601 Mini Drone and it is crazy small! Fits in the palm of your hand, sends 720p video, is USB rechargeable, and costs under £30. Let's get straight on and give it a whirl! What's in the box? Drone! Tiny! It comes with a battery which is 3.7V 200mAh - good for several minutes of flight. There's a USB cable for the battery as well. There are replacement propeller blades, and propeller guards. If you …

Continue reading →