UX, One Button to Rule em’ All

How would you feel if I told you that you could create rich web apps, with only one button, and no other user interface elements besides that single button?

To the right is an application, which contains almost 100 commands and actions. I can for instance send an encrypted email with it. I can search for something using DuckDuckGo, define a word at Dictionary.com, and have it do all sorts of different tasks for me. Without ever having to even touch my mouse or keyboard. In fact, I don’t even need to look at my screen to interact with my web app.

It works using speech recognition and speech synthesis, and is based upon Hyperlang. Everything is Open Source, and you can use it for free, in your own web apps. To see what I am talking about though, it is crucial that you watch the video below.

The origins of the One Button Interface

I once read a blog post years ago, which I can’t remember the link of. It told a story about Steve Jobs, and a group of sub contractors, who were going to create Apple’s CD burning software. The developers for the company who had been commissioned to create this CD burning software, were eagerly looking forward to have a meeting with Steve Jobs. The developers prepared for several months, creating a monstrous specification, covering all actions the user could possibly want to do. It had a monstrous menu, hundreds of buttons and UX elements, and it could probably do almost anything, besides splitting atoms.

As the day for their meeting with Steve came around, they were so eager to meet their “Guru”, they could barely speak. They were invited to Apple’s main HQ, and sat down and waited for Steve to come around. Steve came into the room, said “hi I am Steve”, went over to the whiteboard, created a rectangular square on the whiteboard, put another rectangular square inside the larger one, and wrote “Burn” on the smallest square. Then he said “This is the CD burning software, and this is its only UX element. Then he left the room. 5 seconds was what he had given them. 5 seconds. He didn’t even take a look at their specification …

Initially these developers felt angry, and that all their work had been in vain. However, after a couple of days, they realised that he was right, and that this was the only reasonable GUI or UX that would actually fly for the end users. Hyperlang is that button.

One button to rule em’ all!

Hyperlang is highly configurable, and you can localise it to any language on the planet. Creating a new “command” is done in seconds, by any “root account”, having developer privileges on the server.

Installation

You’ll need to install Phosphorus Five first, for then to visit the “Bazar”, and download Hyperlang. In addition, some of its commands are dependent upon Hypereval, which you can also find in the “Bazar”.

When you start it, it knows nothing. But you can import an example “dictionary” from here. This dictionary is dependent upon some of the Hypereval snippets you can find here. To upload your Hypereval snippets and/or Hyperlang dictionary, simply drag and drop the zip files into respectively Hyperlang and Hypereval, when logged in as “root”. And of course, everything is Open Source …!!

Try it out

You can test an example system I have developed in it here. However, this is installed on my home server, and running over a plain normal home user internet connection, on an old discarded Windows laptop. Have that in mind, if it is sluggish, since my server is arguably being “slash dotted” today, and it only has a 5Mb upload speed …!!

To test the system, you’ll need to login with the username of “foo” and the password of “bar”.

Have fun 😀

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s