Robert's Blog

|

Professional and Personal Blather

Arduino WiFly Day 2

March 22nd, 2011

I have successfully ran a “Hello, World” web server on the Arduino. Surprisingly, the WiFly_WebServer example works perfectly!

Taxonomy of Ambient Information Systems

March 22nd, 2011

Zachary Pousman and John Stasko. 2006. A taxonomy of ambient information systems: four patterns of design. InProceedings of the working conference on Advanced visual interfaces (AVI ’06). ACM, New York, NY, USA, 67-74.

Define the term ambient information system:

  • Displays information that is important but not critical
  • Can move from the periphery to attention and back
  • Presents a tangible representation
  • Provides subtle changes
  • Aesthetically pleasing

Define four dimensions that can be used to classify ambient displays:

  1. Information Capacity – how many “nuggets” of information is displayed?
  2. Notification Level  - how much are alerts meant to interrupt the user?
  3. Representation Fidelity – how does the display represent information (e.g.,concrete (photograph), or abstract (waterfall))?
  4. Aesthetic Emphasis – How aesthetically pleasing is the display?

Define four common design patterns for ambient displays:

  1. Symbolic Sculptural Display – Display few (one) piece of information, usually in an abstract sculptural way.
  2. Multiple Information Consolidator – Displays multiple pieces of information in a consolidated manner (often on a screen).
  3. Information Monitor Displays – A peripheral part of a computer desktop.
  4. High Throughput Textual Displays – Use text and very simple graphics.

Heuristic Evaluation of Ambient Displays

March 22nd, 2011

Jennifer Mankoff, Anind K. Dey, Gary Hsieh, Julie Kientz, Scott Lederer, and Morgan Ames. 2003. Heuristic evaluation of ambient displays. In Proceedings of the SIGCHI conference on Human factors in computing systems (CHI ’03). ACM, New York, NY, USA, 169-176.

Describes a modified set of Nielson’s heuristic evaluation criteria for ambient displays:

  • Sufficient information design: The display should be designed to convey “just enough” information. Too much information cramps the display, and too little makes the display less useful.
  • Consistent and intuitive mapping: Ambient displays should add minimal cognitive load. Cognitive load may be higher when users must remember what states or changes in the display mean. The display should be intuitive.
  • Match between system and real world: The system should speak the users’ language, with words, phrases and concepts familiar to the user, rather than system- oriented terms. Follow real-world conventions, making information appear in a natural and logical order.
  • Visibility of state: An ambient display should make the states of the system noticeable. The transition from one state to another should be easily perceptible.
  • Aesthetic and pleasing design: The display should be pleasing when it is placed in the intended setting.
  • Useful and relevant information: The information should be useful and relevant to the users in the intended setting.
  • Visibility of system status: The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
  • User control and freedom: Users often choose system functions by mistake and will need a clearly marked “emergency exit” to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.
  • Easy transition to more in-depth information: If the display offers multi-leveled information, the display should make it easy and quick for users to find out more detailed information.
  • “Peripherality” of display: The display should be unobtrusive and remain so unless it requires the user’s attention. User should be able to easily monitor the display.
  • Error prevention: Even better than good error messages is a careful design which prevents a problem from occurring in the first place.
  • Flexibility and efficiency of use: Accelerators – unseen by the novice user – may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.

Arduino WiFly Day 1

March 21st, 2011

I finally soldered the headers onto my new WiFly shield and am trying to get it working. First step was to try the WiFly Terminal library. Uploading the sketch showed that it initialized the device, but it wouldn’t respond to the $$$ that should have sent it into command mode. In fact, all I could see was garbage being dumped out by the WiFly.

My second attempt was the “experiemental” alpha 2 WiFly library available from http://forum.sparkfun.com/viewtopic.php?f=32&t=25216. Inside that package is a HardwareFactoryReset sketch that will completely reset the WiFly. Uploading the sketch does exactly that. The WiFly then responded to my $$$. I could then “scan” for available networks, and could “get mac” to see my MAC address.

Good success so far. Next will be to see if I can get it talking with my router.

Ubicomp Fundamentals Chapter 8

March 8th, 2011

Chapter 8 continues from the previous chapter on location and discusses context-aware computing.

  • “The goal of context-aware computing is to use context as an implicit cue to enrich the impoverished interaction from humans to computers”
  • “…to help determine what information or services to make available or to bring to the forefront for users.”
  • Location, identity, time, and activity are the most common types of context.
  • “A system is context-aware if it uses context to provide relevant information and/or services to the user, where relevancy depends on the user’s task.” [Dey and Abowd, 2000]
  • Three canonical types of context-aware apps: tour guide, reminders, environmental controls.
  • Nice outline of how to go about designing context-aware apps.
  • Also provides a quick survey of available toolkits for context awareness.
  • The last section presents challenges in writing context-aware papers. However, the points given are equally appropriate for other sub-fields of ubicomp.

Avoid Arduino Uno Reset from Serial Communication

March 7th, 2011

This seems to be a big problem for Unix and Mac machines. Every time you send something across the serial line the Arduino Uno will reset itself. There is a bunch of information on this at arduino.cc, but most of it is geared toward the Duemilanove. In fact, the instructions (110 ohm resistor trick) are useless on the Uno.

To avoid a reset, I simply used a 100uF capacitor between GND and RST. That’s it! (The short lead goes to GND)

Ubicomp Fundamentals Chapter 7

February 28th, 2011

Chapter 7 explains the importance of determining, and the techniques of finding location in ubicomp systems.

  • The chapter rightly points out that besides being useful by itself, knowing a user’s location can help the system infer other information, like the task he is working on, his social relationships, etc.
  • There is no one perfect location technology. Every system differs in its cost, ease of deployment, and accuracy.
  • Location can be represented in absolute, relative, or symbolic form.
  • Location can be calculated by the device itself, the network in which the device is communicating, or by both cooperating.
  • The chapter clearly describes several location technologies.

Ubicomp Fundamentals Chapter 6

February 22nd, 2011

Chapter 6 covers “ubiquitous user interfaces” or UUI. It lays out the primary challenge as being designing input and output subsystems that allow a device to “remain in the periphery”. “Input” can mean things other than mouse and keyboard. They can include location, identity, resource availability, etc.

A really valuable part of the chapter is the Ten Rules for UUI Design. It provides ten heuristics for design a user interface.

Three design methodologies are presented are particularly useful UUI. (1) User-centered design: focus on the user and what they need to accomplish. The challenge is that users often can’t conceive of completely different I/O metaphors. (2) Systems design: User needs set the goal, but the system is designed from all of the various components and situation. (3) Genius design: The designers make all the decision, not the user.

The next major component of the chapter deals with classes of UIs. A large number of examples are given in the areas of tangible user interfaces (TUI) – integration of control into physical things, surface user interfaces (SUI) – control by self-illuminated displays, and ambient user interfaces (AUI) – output only device that can be ignored.

The chapter concludes with another useful set of heuristics. This time “Seven Key UUI Usability Metrics”. These are general heuristics that help identify the “quality” or “usability” of a UUI.

Paper Review (Hazelwood et al.)

February 17th, 2011

William R. Hazlewood, Kay Connelly, Kevin Makice, and Youn-kyung Lim. 2008. Exploring evaluation methods for ambient information systems. In CHI ’08 extended abstracts on Human factors in computing systems (CHI ’08). ACM, New York, NY, USA, 2973-2978.

Several things stand out from the paper. First, is a nice definition of ambient displays:

  • “Display information that is important, but not critical.
  • Can move from the periphery to the focus of attention.
  • Focus on tangible representations in the environment.
  • Provide subtle changes to reflect updates in information.
  • Are aesthetically pleasing.”

I think that’s a pretty accurate summary of ambient displays.

The focus of the paper is on how to best evaluate ambient displays. They point out that virtually no one has done a long-term in-situ study.

In their particular study, they gave ambient orbs to some professors and invited their students to rate their confidence in the subject matter. The student confidence level was display via the orb. There was also a web site where the professors could log into dig into the data further. In total, they ran the study for 68 days without intervention.

The results were pretty interesting. The web site never got used. The professors indicated that the orb showed that students were content, so why bother to check the web. That makes sense. It does point out the need to carefully think about the granularity at which to display information. Change the orb frequently, then it ceases to be “calm”. Change it to little, and it gets forgotten (or at least users don’t perceive the need to seek for further information).

The authors also point out an interesting design flaw. If an orb turns red, does that mean the entire class is unhappy, or that only a few disgruntled students responded? Again, a lesson that can certainly be carried into other research areas.

Ubicomp Fundamentals Chapter 5

February 14th, 2011

Chapter 5 is concerned it ethnography in ubicomp research. What a terribly useless chapter for someone already not an ethnographer. I get the basic idea: “ethnography can be thought of as a sensibility or ‘way of seeing’ one adopts in collecting and interpreting field study materials”, and “ethnography is usually characterized by an ethnographer spending time in a place among a distinct group of people.”

Most of the chapter is spent trying to explain how ethnography work, but gives no practical information. In fact, even the chapter itself tells the reader that it’s not going to show you how to even start: “The best preparation is to read past ethnographies, prodigiously, in the hope of learning how others have grappled with sensitizing themselves to the settings and peoples they are studying.”

By far, the weakest chapter in the book so far.