The iPad

15th of March 2010

Apple's new product, the unfortuately named iPad, became available to pre-order a few days ago, and sold 51,000 units in the first 2 hours.

There has been a huge amount of excitement for the new device which some think will revolutionize the publishing industry the same way that the iPod revolutionized the music industry.

It's simple gesture based interface has many people excited about simplifying computing for the less computer literate.

And yet despite the allure of sleek glass and brushed aluminium, I can't help a slight feeling of dread about what this direction means for the future of our industry.

One of the key objections I, and many of my peers in the industry, hold is Apple's overly controlling distribution platform, The App Store.

At the moment, to create an application for the iPad or the iPhone, developers must sign up for Apple's developer program. After writing their app, they must submit it to Apple for an audit before it can be sold in Apple's monopolistic app store. The verification review is a black hole of conflicting rules, whereby apps may be rejected for 'Adult content', competing with Apple's products, or simply rubbing the reviewer the wrong way.

Apple clearly wants to position themself in the lucrative middle-man spot, where they can take a cut of each app sold, but in the process they have created an orwellian platform that alienates many of the people that want to create applications.

Great articles have been written about how the App Store kills hobbyist innovation and prevents people from tinkering with their software, one of the main ways people enter our industry.

I have a big problem with the ethos of the App Store, but there's another big problem that scares me with the iPad in particular.

The iPad's interface is incredibly simple, manipulating the screen with multiple fingers controls the content in an intuitive way — pages in the book application can be turned by stroking the screen, maps can be zoomed by pinching. Additionally, applications themselves are represented by a very simple metaphor, icons on the home screen.

The simplicity of this interface has been touted as one of the key innovations of the iPad. And yet, I cannot help but feel that the iPad does not just simplify computing, rather that it dumbs it down.

Consider for example the language of the marketing campaign, and count how many times the word magic is used.

Our society is moving towards a future where the use of computers is as fundamental as reading or writing. Some have suggested that 'Programming is the new literacy'. It is hard to dispute the fact that in an ever more technology reliant civilization the ability to manipulate computers, to bend their power to your will, will become an invaluable skill. In the future everyone will be programmers.

Traditional computer interfaces have supported growth in this direction. New computer users have been offered simple metaphors to help them understand basic tasks such as manipulating applications. But as they become more adept at using the computer, and as their confidence grows, the interface expands to allow the user more control of their machine. Applications can be scripted to automate common tasks. Interfaces can be modified. Ultimately the user will encounter the command line, a dauntingly powerful tool that allows complete power over the computer at the expense of learning some cryptic commands, and a basic understanding of the technology behind the operating system's friendly facade.

And from then it is only a very small step before the user is creating applications themselves. The learning curve is gradual, but eventually yields to complete control over the computer.

These steps are essentially the ones that I followed growing up, and that mean that now I can make a computer do whatever I want, and am in high demand as a skilled software developer.

That is not to say that existing interfaces are perfect, of course there is a huge amount that can be done to simplify them, especially at the initial steps which are the main stumbling point for the computer illiterate. The point I want to get across is that there is a constant opportunity to learn and increase your control over the computer.

The iPad destroys this ability. You can learn to use it's gestures, and indeed become incredibly proficient at using it, however you'll never be able to go further. You'll always be limited to using it in the way a few engineers have invisioned, you'll never be able to dive behind the magic that makes it work. The iPad treats you like a dumb user, and you can never reverse the roles and become it's master.

If the next generation learns computing on a platform like the iPad, we could be setting ourselves back years, by hiding the skills that we'll increasingly need in the future.

There is already a huge demand for programmers and people that can bend computers to their will. We need to be lowering the barrier of entry to this, as well as introducing computers to the older, less computer literate generation.

Permalink
Posted by Peter Braden. — Modified 15/03/2010 (1 comment) Tagged: technology usability

Pronounceable Hashing

4th of August 2009

Abstract

It has become common practise to present hex encoded hashes to users. While this does provide the advantage of brevity, the hashes are easily forgettable and intimidating to some. This article describes an alternative encoding, taking advantage of peoples propensity to remember pronounceable gibberish.

Introduction

Hex encoding has arisen as a popular way to encode binary data as it provides an approachable way to encode 16 bits. For technical users this is great - we are well aware of the motivations behind hex, and are comfortable dealing with binary data.

Unfortunately, it has become fairly common practise to use hex encoded data in user facing situations which is less than ideal from a usability perspective. The lay person perceives such data as a stream of random letters, not caring about the link between the letters and the underlying data. In many url shortener web services, for example, the users are even expected to memorise this mumbo-jumbo.

One of the main culprits are hashes, in which hex has become the de-facto encoding. While we talk about hashes in this article, the same techniques can be used with any binary data - hashes are merely the most prominent example.

In an attempt to focus attention on this usability issue this paper proposes one approach to tackling the disconnect. By creating a meaningless, but pronounceable, phrase to represent binary data it is hoped to show that binary data can be represented in an approachable way. In short it is hoped to show that a method that presents hashes as Barafa-Muduga is nicer than presenting them as 3CA415

Literature Review

I am not affiliated with any academic institution, and therefore cannot afford the extortionate costs required to do proper background research. A quick google shows several random pronounceable password generators, but nothing that encodes data in a pronounceable way. It may be that I am replicating the work of someone else - I haven't heard of it, but if you know of similar work then please let me know.

Implementation

The simplest way of implementing such a scheme would be a simple block cipher, encoding to base N, where N is the number of syllables in the alphabet. This poses the constraint that all syllables must be of equal length to facilitate the proper decoding.

Another solution is the n-ary huffman encoding of the data - this allows syllables of varying length. If the encoding tree is deterministically created from a list of syllables then, assuming the list is known by both the encoder and decoder, a dictionary is not required.

The solution I used as a proof of concept is worse than both of these - based upon the huffman tree scheme, it simply provides 16 syllables, thus allowing a hex symbol to be mapped to the syllable. Using a tree created from this list, the resulting words can be decoded. Although not optimal in terms of output (far more data could be encoded by using more syllables) this method was the result after I had hacked at several other approaches.

Hyphenation

As the resulting syllable stream can be fairly long, I found it more readable to randomly insert hyphens into the syllable stream. These are simply stripped when the data is converted back. This does mean that the resulting words change every time, and it may be advantageous to use a deterministic method if the possibility for repetitive encoding exists.

From Hex and Back Again

As a simple example of the technique, the form below allows a sequence of hex to be converted into a pronounceable form and back again below.

To examine the code, view the source of the page.

Conclusion

In practise a block cipher would probably be preferable as it would be trivial to construct an alphabet of 2 letter syllables, and the simpler code probably outweighs the benefits of the more complicated n-ary huffman encoding.

This article was little more than a thought experiment in usability, but there is little doubt that a better method for displaying user-facing binary data exists.

License

All code is released into the public domain without any warranty. If you want to show your appreciation then you can buy me a beer or offer me a job.

Thanks to Philip for proofreading this for me
Permalink
Posted by Peter Braden. — Modified 4/08/2009 (1 comment) Tagged: code usability

Newest Items

Photography

Recent Writing

Subscribe

Like what you see?

Subscribe to the RSS feed and be notified whenever there's something new…