Platypus Header

Platypus Innovation Blog

24 November 2017

UK Chancellor says: Driverless cars by 2021

The AI revolution is getting real: Chancellor Philip Hammond aims for the UK to be using driverless cars in 4 years time.[1] He warns people to: "retrain and re-skill [in what?] so they can take up the many, many new jobs that this economy will be throwing up" [doing what?]

The AI revolution will reduce jobs, especially the ones that employ lots of people. Blue collar, but also white collar, and also management. Computer industry jobs like, er, mine, will go too. This is potentially but not necessarily terrible: if society can be run for the common good, then the extra time & wealth will be a good thing.

Back to Hammond's many many jobs. Here's one new job automation creates: being human for legal reasons.

[1] Philip Hammond pledges driverless cars by 2021 and warns people to retrain. The Guardian.

6 October 2017

GDPR Jargon: What is a Data Controllers vs a Data Processor?

The incoming GDPR legislation introduces roles and responsibilities that will affect a great many companies.

A Data Controller is any organisation that collects and uses data about individuals.

E.g. does your company have a mailing list? Then it's a data-controller.

Data-controllers are responsible for using the data correctly (i.e. only as permitted), for not retaining data beyond the agreed purpose,
and for interacting with the individual about their data.

A Data Processor is an organisation that provides data processing facilities -- e.g. databases and computer systems.

They are responsible for how the data is stored, and for providing proper security (and notification of any security breaches).
E.g. MailChimp is a data-processor.

Of course, many companies are both data controllers and data processors.

28 July 2017

Visiting the Future in Scandinavia

To travel Scandinavia using AirBnB is to visit a version of the future. A clean, well-designed, if somewhat aseptic, future. You need hardly meet another human being. After booking (which is entirely online), I received instructions by email. There is no reception of course; check-in is by a code to unlock a key-box (a miniature safe), and collect a key, which then unlocks the front door. It's like an escape-the-room game (only in reverse: get-into-the-room). Payment is seamless, handled digitally in the background.

There's a definite AirBnB chic, and it's nice enough but generic. Posters from warehouse outlet stores, especially those with universal quotes. Interior decor by the numbers; it could have been designed by a machine.

At Vielje Fjord, we are met by a robot lawnmower - a roomba-style contraption that trundles autonomously around the garden, before returning by itself to its charging bay. This meeting with our robot overloads made a great impression on the younger generation. Fascinated and a little nervous, their garden games centred on it: Escape from the Robot Lawnmower, and Robot Lawnmover Will Eat Your Pizza. The object of this attention calmly continued on with its tasks, unperturbed.

I have the sensation of my family as a small bubble of humanity, travelling effortlessly through the landscape, our path mediated and managed by bots.

As we leave the cabin at Vielje Fjord, we notice the robot lawnmower has failed. It navigated itself into a narrow patch between a fence and some garden furniture, then stuck, it's sensors reporting no safe way out, until it's batteries drained. The future is impressive but it's still a work in progress; expect glitches.

26 June 2017

BitCoin: It won't make you look 5lbs thinner

Recently I've been reading up on BitCoin, Ethereum, blockchain, and the assorted crypto-currencies than now bloom across the techscape.

These are exciting times, but not clear times. Consensus ledgers and public cryptographically signed audit trails are an interesting thing, and they'll find some powerful applications. But it's notable that we've all been perfectly happy to use money systems without that -- witness banks, Visa/Mastercard, PayPal, or the numerous companies who use direct-debits to tap your wealth according to their own notion of credit/debt.

Money systems are essentially about trust (that the the token you hold can be exchanged for goods & services). Money has to be backed by something we trust, such as the nation state & it's economy, or the bank's solvency and integrity at the book-keeping level, or for IOUs, in the individual. BitCoin is the first system where trust is grounded in an algorithm.

That alone doesn't change how money is used. Perhaps BitCoin's biggest achievement is to get enough momentum to puncture the Visa/Mastercard monopoly (alongside PayPal, and now Android and Apple payment systems). These are (welcome) variations on an existing theme. We're still waiting to see a digital currency that really shakes up how commerce works.

People talk of low transaction costs -- in fact BitCoin transactions are computationally very expensive! This is by design: BitCoin uses computational cost to defend against attack by a swarm of bots. As I write this, a BitCoin transaction costs about $0.50 and takes about 20 minutes, but these numbers vary.* That BitCoin is cheaper than debit card or bank transfers is not due to technological breakthroughs. It is because the existing system is massively over-priced.

Reading the many earnest thought-pieces on how blockchain will change everything -- it seems people sometimes project their thoughts about the wider potential of digital currency onto the specific technology of blockchain and BitCoin. These thoughts then get repeated by others (and ratified by repetition), until it can become hard for everyone to see what's going on.

I've seen a similar concept-creep happen in AI. Specific techniques get described by analogy, and those analogies are extended, until people see The Terminator in every AI project. Your future toaster might have senses (to see when the toast is cooked), and voice recognition and machine-learning to learn your preferences. And probably some spare intelligence, because it's cheaper to put in generic over-powered components than to custom make simpler ones. But no amount of feature-creep will turn it into The Terminator. Although it will get hacked by some internet d-bag, inscribe rude messages into your toast, then burn your house down. If you want a picture of AI over the next 5 years, imagine everything as smart toasters.

*BitCoin transactions offer a fee to encourage BitCoin miners to process them, and to do so ahead of other transactions (there is a queue). There are plans to alter BitCoin to allow for cheaper transactions, though this requires a reduction in security, and changing a currency on the fly is not easy.

Images: (cc) FamZoo Staff, famzoo on Flickr, and the Talkie Toaster from Red Dwarf.

15 May 2017

How to make a lightbox in DoubleClick for Publishers (DfP), or Wrestling with an AdTech Monster

If you're working in adtech, you'll probably encounter DoubleClick for Publishers (DfP) - it is the most common publisher-side adserver (or SSP). We've recently produced a version of Good-Loop for DfP. This article lists the various booby traps we found along the way. For further details, see our scars.

First up: If you use an adblocker, turn it off. Understandably, that can break DoubleClick, given that it is an adserver.

So you want to write an expanding lightbox -- well DoubleClick supports that, via DoubleClick Studio Enabler (Enabler.js), and how lovely, they even provide a template to get you started.
Except it is broken. We modified the template and it didn't work. We used the original exactly as provided, and it did not work. As far as I can tell, this is obsolete and broken code, they just forgot to update the documentation. Hidden in a disused basement of the DoubleClick website, inside a cabinet labelled "beware of the leopard", there is a note to say that SafeFrame is the preferred method. Do not use DoubleClick Studio Enabler -- use SafeFrame instead.

SafeFrame requires you to know the size of the ad slot. And it provides a query for finding out page size info. However this is not as useful as you'd hope, because you have to specify the slot size first, before you can query the page size. So you need to pass that info into your creative -- which is done via a couple of macros: %%WIDTH%% and %%HEIGHT%%.

You'll need to use the SafeFrame ext.geom() method to provide the right expansion size. Beware that this can be affected by timing issues. Don't call it until you're about to do the expansion.

At the time of writing, DfP's implementation of SafeFrame was slightly flaky on iOS. To get reliable results, we put in code to retry the lightbox expansion (and the close) a few times, stopping if your handler receives a success message.

You'll probably want to know where your advert is going -- but DfP doesn't tell you by default, because: I don't know. You can get this by adding the %%SITE%% macro to your script url. As an example, Good-Loop's final DfP creative looks like this:

<script src="//"></script>

The next gotcha is the DfP Preview feature. This handy feature provides a link to see your creative in situ. Except DfP preview does not work for rich media ads. This is due to a bug in DfP: the preview simply doesn't properly support the lightbox features -- although the real DfP iframe does. This makes preview confusingly useless for lightbox ads like Good-Loop. So avoid Creative -> Preview.

So how can you preview an advert? The best approach we found was to setup a very targeted line-item. In DfP, create a line-item that targets a specific (and rare) device. Then in your Chrome browser, open the developer console, toggle device mode, and set Chrome to emulate that device type.

An annoying feature of DfP is that it will sometimes fill slots with random adverts, rather than the line item you want. Swearing and mashing the settings is one solution.

Another source of frustration is the delays. Edits in DoubleClick can take 10 minutes to percolate through the slow-as-treacle systems and actually take effect. This multiplies the pain of the trial-and-error stress test that is working with DfP. To minimise this, we moved our html code to being dynamically generated, with the DoubleClick creative reduced to a single .js script tag.

Now we're serving adverts...

Bugs from the host-page CSS: It's easy to break a SafeFrame's ability to expand to full-page. A common css rule goes something like:
iframe, some other element types {
 max-width: 100%;

Looks reasonable, but it restricts the iframe's width to 100% of the parent element's - which is almost always very small. Your SafeFrame does an expand... to the same size it was before.

If the publisher is cooperative, they can fix this by adding a very specific CSS rule such as:

iframe[id^='google_ads_iframe_'] { max-width: none; }

25 April 2017

The Council of the Gods, by Kit Wright

Lay no blame. Have pity.
Put your fingers in the wounds of the Committee.

They never reached your item.
Disputing Item One ad infinitum.

Lay no blame. Be tender.
The retrospective start of the agenda.

Was all they managed treating.
Consider, pray, the feeling of the meeting.

(They felt awful). Not surprising
They never came to matters not arising.

From Matters Arising:
Who took the chair when the standing committee last sat?
Who kept the minutes for hours and hours and hours?
Who tabled the motion,
Who motioned the table
The standing committee
Have pity.
Put your fingers in the wounds of the committee.

The gods have not been sleeping.
All night they sat, in grief and boredom, weeping.

By Kit Wright, Amazon book link

Good-Loop Unit