Illusory Follies Andrew Flanagan's Blog

24Nov/111

Interfaces for creating?

I’ve found this discussion a very interesting one… There’s a lot of conjecture out there that the iPad (and similar devices) shifts use of the Internet away from “creating” and towards “consumption”. To some extent, some of this seems obvious. Activities like music and video are clearly consumptive and these activities often are more convenient (and seem more of a probable use) for portable devices like the iPad. Also, in general, reading is quite easy with the iPad/Kindle but typing is harder than with a regular laptop or keyboard. I find myself definitely being a consumer far more on the iPad. Even with emails, I tend to read and mark for later handling far more with the iPad. On my desktop on the other hand, I tend to immediately reply to the emails that I can knock out in the next minute or two. I might look at pictures on my iPad but I definitely don’t any editing (although the Photoshop Mobile app is kind of neat for really simple tweaking)

So while I can agree with the observation that iPads and other smaller devices are currently being used for consumption vs. creation, I think that this may just be a phase. Computer users have used keyboards for a long time. In fact, the first keyboard appears to date to the 18th century and our current qwerty keyboard dating to 1873. In addition, the mouse, first created in 1963 but not in common use until the 1980's is also ubiquitous in modern systems. One could argue that it's a powerful device for manipulating interfaces, but I don't think it's the end-all of human-machine interfaces.

There will be something new. There always is. Touch-based computing has its strengths and weaknesses. There's an almost nauseating volume of interfaces that can all be summarized as "sort of like the interface used in Minority Report". With faster processors, better algorithms for processing inputs, etc. it simply seems a matter of time before a new breed of general purpose input devices will become standard.

How would you like to write code with this?Keyboard input (and to a slightly lesser degree computer mouse input) are currently preferred because they are precise. Learning to type is a relatively easy task and provides a very easy-to-control way of interfacing with systems. Using a mouse is trivial to learn although it is much slower to use for many tasks. Its strength is that it works very well in dealing with graphical environments that involve manipulation of elements that rely on eye-hand coordination. The combination of both in modern systems allows precise control when needed, and manipulation of complex interfaces when needed.

Touch input devices provide a more natural feel for the second type of interface, but not the first. Precise input is slow and painful The value gained is that the iPad and similar devices are instant-on devices that don't require you to sit, position yourself, or even use both hands. A user gains speed, portability, and convenience but loses precision.

Two things really interest me in this area. The first is motion-based systems like (to some extent) the Wii and more importantly the Kinect. Both systems use the concept of movement (one with a controller you hold and the other by simply viewing the user themselves). The second is voice-based systems like Siri. There have been many voice-based systems previously, but Siri seems to have attained a more natural level of interaction that I think finally makes voice control more practical.

The interesting thing about both systems is that both approaches reduce precision in the system and attempt to get at underlying intent of the input. You can ask Siri "What's the weather like", "will it rain today", or "Weather" and it will give the same response. The attempt is to map a number of inputs to the same output. It can handle heavy accents, variations in speed, pitch, and intonation and still give results that make sense. Kinect based systems are looking at standard or typical behavior and are all about averaging inputs to try to get an approximate value rather than working with precise values.

These new technologies can be leveraged in interesting ways. It's clear that games that involve more physical activity are fun and interesting. It's also clear that being able to speak to your phone to perform tasks that would take longer to do with the touch input saves time. But will anything ever replace the keyboard?

I don't have a crystal ball, but I think the important thing is that touch input, voice input, and motion-based input are really not trying to solve that issue. All of these inputs are inherently less precise (just as a mouse is less precise than a keyboard). Although there are some very interesting efforts to use a Kinect to write code in Visual Studio, it seems more likely that at best, motion technology could replace only the mouse or replace the mouse for specialized types of manipulation. Speech seems to be a good way of performing out-of-band or contexual tasks (say for example you're in the middle of a coding task and want to send the current file to a team mate for review without stopping what you're doing and performing this task manually.

Rapid but precise input is what's needed for devices like the iPad to shift the trend from consuming information to creating information. This could be accomplished by new types of one-handed keyboards (which have been attempted); I have a hard time seeing that we will be able to achieve precision with devices not controlled by the human hand. Another option is a radical change in the interfaces themselves. To give an example, instead of writing code using a complex written syntax like that in most modern languages, a special language could be developed that encapsulated the structure of the code but could be represented in a format that could be more easily parsed and understood audibly. Transitions like this have already taken place in languages like LabVIEW which attempts to represent programming code in a visual format vs. a a written syntax. I have a hard time picturing how this could be accomplished, but in theory, I can see that it may be a possibility. There will be naysayers. But there are naysayers now with regards to high-level languages which already abstract an enormous amount of "what really happens" from the user.

Any thoughts on input devices and human-computer interaction as it's currently evolving?

 

10Nov/074

Return of the Car Computer!

Well, nearly 3 years ago, I started building a car computer using a Mini-ITX 1GHz motherboard, an 8" touchscreen LCD, some custom power components, and a bunch of spare parts. $794 later I still am pretty much where I was then.

I had trouble with:

  • Building my own case -- it looked terrible and was almost taped together. Absolutely horrid.
  • Some sort of weird Windows problem (that I still haven't resolved)
  • Trouble with setting the thing up since the LCD runs off a car cigarette-lighter outlet
  • Still a high cost for Bluetooth and 802.11/a/b/g/n -- which was important to having the thing be useful

Most of these hurdles have been beaten as of this week. Weird Windows problem is solved by not using it (I got the touchscreen drivers to work under Gentoo using Enlightenment as the DM). Good bye Billy Gates! Due to some car battery issues I purchased one of those massive backup car starters, AC/DC, monstrosities. This gives me the flexibility of working with the car component in the house in the office where I can make (and leave) a mess instead of having to set up / tear down everything in the car whenever I wanted to fiddle. The cost for Bluetooth and wireless has dramatically dropped (I have a spare Bluetooth dongle hanging around and a few wireless cards).

The one outstanding issue is a case. I really haven't been looking but I'm sure there are more options now. I've considered also storing the thing in the trunk and wiring display/USB/etc up to the front. If that's the case, I can leave the components in their junky case and not worry about it.

Some other cool developments:

  • You can now get very cheap IDE-Compact Flash solid state "hard drives" for these things. Gentoo will run just great on a 2GB card. It's fast, easy, and it saves even more room.
  • VIA has iterated twice since I purchased my motherboard and has both a Nano-ITX and now a Pico-ITX (about the size of a deck of cards) motherboard. These are cool, but I likely don't need them.
  • I'm smarter now than before and can actually successfully navigate through some tricky Linux configurations for "non-standard" hardware. Many, many kudos to Steve Huskey from work who helped me initially (and got me addicted to Gentoo) and then instilled me with enough curiosity to go nuts and play with the stuff. I'm not exactly sure what a kudos is, but Steve deserves a lot of them.
  • I have some free time... No! Stop laughing, really, I do! Or at least I plan to make some. I don't have any money any more (the government and the banks take care of that) so hopefully I'll mostly be able to finish this using free software and skill.
  • People read my blog now! So maybe when I run into trouble now I can get some help instead of yelling into the dark void that was my January, 2005 blog.

So, here it is:

Car Computer 2007-11-10

See! It's only missing:

1) A car

2) A functional computer

OK, so there's a lot of work to be done... I'll keep you posted as I move along.

(By the way, the blue box is my server which just happens to be serving as a roadblock to avoid pedestrian traffic from trampling on the sensitive electronics The smallish silver square containers are the car computer itself and the LCD screen is sitting on top of the server. The orange thing is the aforementioned, large, American, AC/DC power, car-starter, utility-light, air-inflater, super-multi-tool!)