27 November 2013
"Okay Google" on multiple devices

One problem I’ve spent some time thinking about is what it will be like when we have many devices around us that are all “always listening.”  Let’s say I’m on my computer, but my phone is in my pocket, my tablet is on my desk, and maybe I’m wearing a pair of Google Glass. How will a device know that I’m talking to it? If I’m searching for something on my computer, how will my phone know not to?

Right now Glass solves this problem by having a unique keyword. I say “Okay, Glass” when talking to my Google Glass, and “Okay, Google” talking to everything else. Will other Google devices get their own unique keywords? For example would I say “Okay, Chromebook” when commanding my Chromebook? Another possible solution would be to have a “primary device” that would pick up voice commands, unless it’s not around, in which case another device would.

This isn’t a huge issue, because none of these devices are “always listening” yet, except for the Moto X (which uses the phrase “Okay, Google Now” which I feel is rather long and clunky). Currently, you always need some other interaction to trigger the listening mode. With Glass, you have to tap the side or look up. With your computer, you have to navigate to the Google homepage. With your Nexus 5, you have to navigate to your home screen or Google Now.

I don’t think that this will be the case for very long though. People want truly hands-free interactions. If that day comes, and this problem isn’t solved, we may end up with something like this:

25 November 2013
Why the Moto X “always listening” feature didn’t make it to the Nexus 5

I recently got the Nexus 5, and was disappointed at the lack of the “always listening” feature of the Moto X. I’ve tried alternatives like Open Mic+, but they all leave something to be desired.

I decided to see if I could modify the Motorola Touchless Control app that runs on the Moto X to run on the Nexus 5, which has a Snapdragon 800 processor. The Snapdragon 800 has a dedicated core that should be capable of low power audio processing.

What I found was that Motorola is using Nuance’s Dragon Speech Recognition Software to perform some of their speech recognition. This is the same software that powers Apple’s Siri, and Samsung’s S Voice. This is interesting, because Motorola is owned by Google, which has its own set of speech recognition services. Including this feature from the Moto X in Android 4.4 would likely have meant that Google would have to pay royalties to Nuance for every handset sold running 4.4 

This probably explains why the “always listening” feature didn’t make it into Android 4.4 KitKat.

Here’s a screenshot showing the com>nuance>dragon>toolkit folder within the decompiled Touchless Control APK.


19 November 2013

Definitely not a bubble

10 May 2013
Preparing the Web for the High-Resolution Retina Future

The Macbook Retina and the Chromebook Pixel have led the way in introducing high resolution displays to the laptop market. Mobile phones have had Retina displays for 3 years now. With the Retina iPad mini slated to come out soon, along with a slew of other high resolution devices, why does the web still look like crap on Retina displays? Because designers are still stuck at 96 dpi.

The Solution

The solution to the Retina problem is to design your graphics at 2x the size you intend for them to be displayed on screen. If you want a background to be 200x200 px, design it at 400x400 px in Photoshop. When you’re done, save it using File->Save for Web… first at the 400x400 px resolution it was designed at with a suffix @2x (the naming convention that iPhone developers use for high resolution graphics). If your image is called background.png you would name the large version background@2x.png. Now save the file for web again, but this time change the width and height to 50% the size you designed at with the same name minus the suffix i.e. background.png.


The Code

Now in your CSS, use the half sized, suffix-less image as you normally would as a background image for your widget. For Retina displays you can add a media rule that selects resolutions above 192dpi. Inside this rule, you can add CSS that uses your suffixed, high resolution image as the background.

.widget { 
    background-image: url("background.png"); 

@media  (min-resolution: 192dpi), 
        (-webkit-min-device-pixel-ratio: 2), 
        (min--moz-device-pixel-ratio: 2), 
        (-o-min-device-pixel-ratio: 2/1), 
        (min-device-pixel-ratio: 2), 
        (min-resolution: 2dppx) {
    .widget {
        background-image: url("background@2x.png"); 

Other Options

If you are using the image tag for your images, you can use a tiny Javascript library called Retina.js using the same images.

8 May 2013
A Look into the Ridiculous History of Bitcoin

Over the past year the price of Bitcoin has gone from around $20 / BTC up to over $200 / BTC and currently sits at around $100 / BTC. With this massive fluctuation in price, some moments in the history of Bitcoin look pretty ridiculous given today’s exchange rates.

  • In October 2009, exchange rates were published at 1 USD = 1,309.03 BTC. Had you purchased just $1 worth of Bitcoin at the time, it would be worth $130,000 today.
  • In May 2010, a user named laszlo bought the first pizza with Bitcoin for 10,000 BTC, perhaps making this the world’s first million dollar pizza.image
  • As ridiculous as these Bitcoin transactions seem, in January 2011, one-hundered trillion dollar ($100,000,000,000,000) Zimbabwe notes traded at a rate of 4 BTC per note.
  • In March 2012, 50,000 BTC were stolen after a security breach at web host Linode, a $5,000,000 heist at today’s exchange rates.

With stories like these it’s anyone’s guess in which direction Bitcoin is headed. Will it be the first successful digital currency, or is it headed the way of the way of the Dutch Tulip Bubble of 1637?


8 May 2013
Exploiting The Decoy Effect on Pricing Pages

I came across a great Wikipedia article the other day, a List of Cognitive Biases. It really got me thinking about ways to exploit these biases, especially in ways that can easily be implemented by web based startups to increase conversions, drive revenue, etc. This is my first post in what I hope to be a series on cognitive biases and their applications in the startup realm.

In this post I’m focusing on The Decoy Effect. The definition Wikipedia provides for the effect is:

the phenomenon whereby consumers will tend to have a specific change in preference between two options when also presented with a third option that is asymmetrically dominated

What this means without all the game theory speak is that when a user is presented with two legitimate options, and a third option is presented that is obviously a worse deal than either of the other two options, users tend to change their preference between which of the legitimate options they select. That is, if the third option offers similar utility as the more expensive legitimate option, but is far more expensive relative to perceived value, users will see the more expensive legitimate option as a deal and will gravitate towards that option. This third option is called the decoy.

Classic Example

The classic example of the decoy effect goes like this. A test was run on two groups with different pricing options for subscriptions to the Economist. The difference between the groups was that group B was given a decoy option for a Print Only Subscription, that cost the same as the Internet and Print Subscription. This made the Internet and Print Subscription seem like the better deal, and drove users who would have selected the Internet Only Subscription towards the more expensive option.

Offer A:

  • $59 – Internet Only Subscription (68 chose)
  • $125 – Internet and Print Subscription (32 chose)

Predicted revenue – $8,012

Offer B:

  • $59 – Internet Only Subscription (16 chose)
  • $125 – Print Only Subscription (0 chose)
  • $125 – Internet and Print Subscription (84 chose)

Predicted revenue – $11,444

Example in the Wild

Loucas Papantoniou over at Usabilla tried The Decoy Effect on his pricing page by increasing the price of his Small plan to provide a decoy for the standard pricing plan.


In control case, 47% of users chose the Standard plan.

When the price of the Small plan was increased to act as a decoy for the Standard plan, Standard plans subscription increased to 58%. This is not the ideal test case for The Decoy Effect, as one of the previously legitimate options is replaced with the decoy.


The Decoy Effect is certainly not a silver bullet that will magically drive all your users to your most expensive plan. These studies do not take into account the the number of people who decide not to purchase when the decoy model is added. What it does show you is that you should A / B test your pricing page extensively to find the pricing model that best suits your company. You wont know what works until you try it.


5 May 2013

I’ve been using my Chromebook Pixel for 2 months now and I only have one word to describe it. Beautiful. Coming from a Macbook Pro, an amazing piece of hardware, this is the most solid build quality on a laptop that I have ever used. The keyboard is just right, the screen is stunning, and the trackpad is smoother than silk.

There are two things the Pixel is missing:

  1. A text editor that allows you to edit local files.
  2. A photo editor that is on par with Photoshop.

As a developer, a fully featured text editor is crucial. There are cloud based IDEs like Cloud9, but there is just something missing when you can only edit remote files. Currently I’ve been running Ubuntu along side Chrome OS using crouton to do all of my local development. This has also enabled me to take advantage of Linux’s other features - most of which I can live without. With Chrome packaged apps coming out soon, I’m working on building a text editor that works offline and allows you to edit files both locally and remotely.

The Photoshop replacement is tougher nut to crack. There are web based alternatives like Pixlr, but when you’re used to Photoshop it’s hard to move to another editor. It’s like when you’re forced to use Gimp: it does a lot of the same things, but it just doesn’t feel right. When I finish my text editor, building a photo editing suite is next.

When I get my text and photo editors, Chrome OS becomes the only operating system I need. I can kiss my Macbook Pro and Toshiba Lifebook goodbye and live in the future, full time.