Natural User Interfaces (NUI) still lacks a formal definition. It can appear as a synonym for intuitive, easy or gesture based interaction. So rather than trying to define one I will list some characteristics that are usually associated with them:
If you are new to the term, this is a cool video that has some examples and attempts to define some concepts:
In video games, the use of more natural interfaces helped technology intimidated people to get the courage to jump in and play. Even if most hard-core gamers still prefer classic game controllers, these new interaction techniques really helped to expand the market for videogame consoles. Bowling with the Wiimote seems more natural and simple than using a combination of buttons and analog sticks. The Nintendo Wii, Playstation Move and Microsoft Kinect are successful technologies that opened the path to development of more natural interactions for videogames.
It is hard to talk about an absolute natural interface, but the previous example shows that one interface can feel more natural than another. The extent of this feeling depends not only on the technology but also on the activity being performed and the actual user of the interface. This further complicate the issue since NUI relies on previous background knowledge about how things are supposed to work. This assumptions are ultimately related to culture and previous experience of each user.
With a few exceptions most user interfaces are a coolest but not so efficient way to perform a task. If we look closely we can see that in few examples, some actions performed are far from being natural. Even int the coolest complex hand/head/spirit tracking setup. In fact, a natural interaction does not require complex multiple degrees of freedom setup. Its quality emerge from the perfect coupling between the hardware, the software, the task and the user.
More on that latter. Or not.
I would like to talk a little about my new area of study. Coming from computer graphics research it is going to be very fun and challenging to learn the diversity of techniques and subtleties of the field.
Human Computer Interaction (HCI) deals with the interface between computers and people. It seeks to understand how humans behave when performing actions and interpreting computer output. At the same time it tries to develop new technologies or paradigms that can be useful to make this communication better.
The difficulties arise because we do not understand well how our brain and perception works. What are its limits and capabilities ? Computers operate on a way that is quite different from us and even the most power computer pale in comparison to small prodigies of the human mind. However computers are very useful in many specifics tasks and that is the motivation behind most research in computing.
Researchers in HCI generally employ a multidisciplinary approach when trying to devise better interaction models. One can get support from disciplines such as cognitive sciences, ergonomics, graphics design, engineering, ethnography, etc. Designs are also based on different metaphors and ideas. Windowed interfaces, for example, are available in most computers. They are based on discrete visualization areas, that you can move around, open an close, each one associated with a specific document or software. Windows like these only exists on the display and do not really represent anything. They are just abstractions that work really well. Depending on display, you can use a mouse, keyboard or touch screen to interact.
Tangible User Interfaces, on the other hand, try to associate information and actions with physical entities. In this way information can have a presence in the real world: you can grab, move, combine it with your hands. This mapping needs not be static and may change depending on the context. There are a couple of really interesting experiments with this idea.
Interfaces that are instinctive and employ mappings that are well fitted to the task or situation are called Natural User Interfaces. This approach generally makes use of more advanced techniques such as gesture recognition and head tracking to allow direct manipulation of virtual elements. This is a way to enable the use of our real world knowledge and expectations when interacting with the computer.
After some time I am back to writing. I am now a Computer Science PhD student at the Virginia Tech Graduate School. I will be doing research at the Center for Human Computer Interaction under the supervision of Dr. Doug Bowman.
I would like to take the opportunity to express my gratitude for everyone that supported me in this way here!
The city is very nice and the people very friendly. I will be inevitably posting more about HCI but expect a couple of different things from time to time.
Virginia Tech Graduate School, Blacksburg.
Every one is talking about how wearable computing might hamper smartphone growth and how big the market is supposed to get in a few years. We have been hearing rumors from possible smartwatches coming from Apple, Google and Microsoft.
While everyone expects the iWatch, Samsung has unveiled the Galaxy Gear. There already several other smartwatches on the market but Samsung is going to be the biggest electronics manufacturer to get into market. Sure Sony has already launched their watches and nobody noticed.
There have been many articles pointing out how the Gear is poised to failure. There have been critics about how it looks unappealing, about the lack of integration with other devices besides Galaxy Note III, about the sluggish software, about the strip and so on. In fact they might have passed on the chance of winning to apple or even Microsoft. However they already have launched and may be already working on version 2.0.
Being the first on the market can have its advantages if you manage to play well. Samsung indeed knows this. Besides being able to improve the project and learning how people use the device, they will also start to grow a application library before the others. We have seen this work very well for apple before. The design has a lot of issues that will make this watch hard to appeal to the general public, something that Samsung has somewhat achieved with the galaxy phones series. I have the impression that it was rushed to the market (the peeble for instance, seems much nicer).
Qualcomm also revealed its own smartwatch, called the Toq, on Wednesday. Like the Galaxy Gear device, the Toq syncs with a user's smartphone to display alerts. For now it only works with Android devices, but Qualcomm may extend the connectivity to work with Apple's iOS as well. The Toq is priced at $300 and is available for pre-order immediately, but is scheduled to hit the market Oct. 10.
if you want to see the current and future competition smartwatch.fm has a nice catalog.
Update: The gear has sold a modest amount of units and has received some software updates. Lets see if they will continue investing or will just wait for apple move (if there will be one).
Tyger! Tyger! burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?
In what distant deeps or skies
Burnt the fire of thine eyes?
On what wings dare he aspire?
What the hand dare sieze the fire?
And what shoulder, & what art.
Could twist the sinews of thy heart?
And when thy heart began to beat,
What dread hand? & what dread feet?
What the hammer? what the chain?
In what furnace was thy brain?
What the anvil? what dread grasp
Dare its deadly terrors clasp?
When the stars threw down their spears,
And watered heaven with their tears,
Did he smile his work to see?
Did he who made the Lamb make thee?
Tyger! Tyger! burning bright
In the forests of the night,
What immortal hand or eye
Dare frame thy fearful symmetry?
William Blake. 1757–1827
After some time doing only graphics and other high level stuff I went back to embedded programming. The first environment I got has only one type of variable: signed integer 16 bits. No floating point support. After a some months the "cool" feeling turned into "anger" than into "hate" and then to "suffering". The program did work with all the fixed point tricks but the sensation that a hidden bug will grab my leg at any moment remains.
Computer languages are currently the most powerful way to interact with computers, however, they are extremely complex. There are some variation among them, but even those languages considered to be high level, are still too complex to the uninitiated. They are really developed with very few people in mind: those who learned how to think like computers. Imagine if everybody could instruct the computer to do whatever it wants, not only what was pre-programmed for them ? We would need a radical change of what it means to program.
Recently I found a interesting discussion by Bret Victor about how our current programming model is flawed:
He goes on several points that shows unbelievable problems with programming, that we simply got accustomed with. It is important to note that programming encompass not only the language, but also the development environment. In Bret's words:
A programming system has two parts. The programming "environment" is the part that's installed on the computer. The programming "language" is the part that's installed in the programmer's head.
Perhaps in the future we will be able to create user interfaces for programming that will be so natural that people will not even notice that they are programming at all. Advances on natural languages an artificial intelligence will certainly take its part. The OS will evolve into a programming environment so powerful that will amplify everyone capacity to think and to dream.
For those interested, I highly recommend reading: Learnable Programming
You've asked me what the lobster is weaving there
with his golden feet?
I reply, the ocean knows this.
You say, what is the ascidia waiting for in its
transparent bell? What is it waiting for?
I tell you it is waits for time, like you.
You ask me whom the Macrocystis alga hugs in its arms?
Study, study it, at a certain hour, in a certain sea I know.
You question me about the wicked tusk of the narwhal,
and I reply by describing how the sea unicorn with the harpoon in it dies.
You enquire about the kingfisher's feathers,
which tremble in the pure springs of the southern tides?
Or you've found in the cards a new question touching on
the crystal architecture
of the sea anemone, and you'll deal that to me now?
You want to understand the electric nature of the ocean
The armoured stalactite that breaks as it walks?
The hook of the angler fish, the music stretched out
in the deep places like a thread in the water?
I want to tell you the ocean knows this, that life in its
is endless as the sand, impossible to count, pure,
and among the blood-colored grapes time has made the
petal hard and shiny, made the jellyfish full of light
and untied its knot, letting its musical threads fall
from a horn of plenty made of infinite mother-of-pearl.
I am nothing but the empty net which has gone on ahead
of human eyes, dead in those darknesses,
of fingers accustomed to the triangle, longitudes
on the timid globe of an orange.
I walked around as you do, investigating
the endless star,
and in my net, during the night, I woke up naked,
the only thing caught, a fish trapped inside the wind.
(Translated by Robert Bly)
There are some aspects that people generally use to judge the value of a programming language:
3-Availability of tools, compilers, libraries
4-Availabilty of programmers in that language
5-The cool factor
As I read once somewhere "There is nothing faster than C" lol. Besides assembly, there are not many languages that compares with C execution time. This is important for games, real-time systems and embedded systems.
If speed was the only thing the matters, you could write your code entirely on machine code or assembly. However, unless you are writing a simple routine, you will need a more higher level language to finish it on a reasonable time frame. Depending on the problem you may start looking for options better than C and C++. A language expressive power is a measure of how much you have to write vs how much you get accomplished. Of course only size is not enough. You need to minimize the program size while minimizing the number of different constructs the programmer needs to know.
Availability of tools, compilers, libraries
A language does not exist on the vacuum.A good editor and a smart compiler makes all the difference when it comes to productivity.
Availability of programmers
If you need to build a team, you will have a better luck with java than with some obscure language. A more popular language will also have a large community to contribute with help and tools. It will probably get more attention from the language developers/maintainers.
_What is design? What is its relation with innovation? I am not talking here about design as the act of planning but rather in the sense of applied arts. That’s how the book Design Driven Innovation by Roberto Verganti starts. After some discussion he quotes a definition proposed by Prof. Klaus Krippendorff on the article “On the Essential Contexts of Artifacts" or on the Proposition that "Design is Making Sense (of Things)” published on Design Issues in 1989:
“The etymology of design goes back to the Latin de + signare and means making something , distinguishing it by a sign, giving it significance, designating its relation to other things, owners, users, or gods. Based on this original meaning, one could say: design is making sense (of things). “
_The book discusses how the affective relations between the user and the product are an important aspect in the product value: When buying something you consider not only the utilitarian aspects of the product but also its intrinsic meaning. What is the meaning attached to a Porsche or a MacBook?
So, when talking about innovation we can now consider two possible dimensions: technological or meaning. Technological innovations occur when a company applies a new technological breakthrough in a product, improving its performance, price or other technical aspect. Innovation in meaning, on the other hand, happens when a company creates and introduces a different way to look at a product.
Simultaneous innovation on both dimensions has enabled companies to come up with products which are technologically safe from competitors and strongly resonate with its users even when the technology barrier falls.
Verganti states that the process of finding new meanings to products is similar to the process of developing technological innovations: both are push strategies. Companies that are recognized innovators ordinarily propose new meanings for its clients instead of asking what they want. He calls this process design-driven innovation. If companies just asked the clients what they want, they would receive requests for improving technical aspects evaluated over the current meaning of things.
For a correct development of new meanings, companies should know why people buy things and how they intend to use them. These reasons also change over time due to cultural changes, technological changes or even economy changes. Successful companies learned how to discover possible new meanings by leveraging the cultural know-how of interpreters, people which question the dominant paradigm and possess a different vision of the society.
The book has some intersections with Blue ocean strategy by W. Chan Kim and Renée Mauborgne. In both the goal is to differentiate itself by changing the rules of the game. However Verganti focuses on the language and significance associated with products while Kim and Renée give more emphasis on identifiable product features.
Verganti presents plenty of real world examples throughout the book, along with quotes that help us to understand how innovators (such as Jobs, Alessi and Gismondi )think. Some cases are really inspiring such as the case of the Swiss clock maker Swatch. The book is really great and a must read for everyone interested on innovation, especially if you do not have a social science/design background.
Today I had a nice surprise. One of my old friends and his colleagues published an article at the prestigious journal Nature. So this make a nice first entry for my blog. Here is the editor's summary:
Four trans-Neptunian objects are currently recognized as dwarf planets: Eris, Haumea, Makemake and Pluto. Of these, the 'demoted' planet Pluto has been studied for many years and has a detected atmosphere. The others are difficult to observe because of their extreme distance from the Sun, but a stellar occultation event on 6 November 2010 provided an opportunity for a closer look at Eris. The data obtained reveal Eris as a 'twin' for Pluto in terms of size, and previous work showed the two to have similar surface compositions. Eris, however, has no detectable atmosphere and its surface is bright, possibly a result of atmospheric collapse in an extremely cold environment.
I must admit that I was not aware of the 4 dwarf planets, even though I remember when the IAU (International Astronomical Union) decided to 'demote' Pluto from its planet status.
This is significant for me because my friend W. Corradi was the only professor at the physics department to encourage and support an iniciative of some crazy engineering students that decided to build their own radiotelecope from scratch. I may talk more about this sometime. For now you can take a look at the original article from Nature or a digest form National Geographic Daily News.