All | 43 Folders | Accessibility | BoingBoing | Books | Computer Related | Family | Films | General | Hacking | Hobbies | Humor | Java | Links | Omni | OpenSolaris | Puzzles and Games

« Sunflowers | Main | Capitola Visit »
20040708 Thursday July 08, 2004

The Faces Project

Alan Coopersmith recently mentioned faces in a blog entry. I've been meaning to write this one up for a while. It's another in the series of fun things I've done at Sun which wasn't my RealJob(TM).

Faces is a program for monitoring a list visually. Typically this is a list of incoming mail messages. For each element in the list, an icon is displayed.

It is based on the AT&T v8 face server called vismon written by Rob Pike and Dave Presotto, but is not derived from vismon sources.

Here's a pointer to the original Paper on vismon by Pike and Presotto.

Here's a simple screenshot of the last ten messages in my INBOX at that time (including X rated spam). And a little bit of trivia; the faceless image there is Peter Weinberger from Bell Labs (now at Google along with Rob Pike).

Faces now has three different modes of operation:

  1. The default will monitor for new mail. By default, only the last ten messages are displayed. Using the left mouse button it is possible to toggle the text in the faces window. This will either be the username or the time the mail message arrived. The icon shows the image of the last message to arrive.
  2. You can monitor the whole of a mail file. The open window will automatically adjust it's size to correctly show the face icons. The open window options are the username or the timestamp and number of message from that user. The icon will display the image of the last message, and a count of the total number of messages in the spool file or mail folder.
  3. Custom monitoring. You can specify a program or shell script to run. The standard output from this program will be read by the faces program, and the appropriate faces displayed using the information provided. The format of this face information is given in the faces manual page.

What makes this really useful is that, thanks to Steve Kinzler there are already huge databases of face picture icons (called picons) available to download and use with faces and a huge collection of programs and scripts that work with it too in custom monitoring mode.

What made this really innovative at the time (start of the 90's) was that the face for the sender of the mail message could be included in the message header. You still see these X-Face: header lines in messages today. Here's the one for Albert Einstein:

X-Face: }>Y~A__8Wg_4*D?SygbgH\#5+.:g"Ly4p5$v0Z[g5
        &W&rbWfoCZ1a'9wsvc"i#-G'YA8pkGz<*9PiUvb=)|Qdg.;=le5J2KC".L_,XZDZI;um
        Y(71}8l/|qj..m=We[]du);*&q,|_m5%2G%>IO#gkh)T4{EPa_RtjBRMau2D;(r6m\Lm
        Y3

Faces could take this and turn it into a small 48x48x1 (Blit ikon) black and white image of Albert and display it. If I remember my history on this (and James can correct me if I get it wrong), the text above is a compressed representation of the difference between Albert's face and the "average" face created after combining numerous initial samples.

This compression and decompression to/from an image into a string of text in the X-Face: header lines was created by James Ashton, then a student at University of Sydney. See his link for more details on this. Urge him to create a color version. Even though he might have doubts, I think there is a useful need for such a thing and the reasons that are slowing him down aren't really relevant anymore.

Here are some galleries of screenfuls of X-Face's. [1] [2] [3]

You can find a great collection of X-faces (plus the X-Face: lines they use) here.

An incredible amount of software was created to use the picons and X-Face: file format. This included conversion utilities to get your favorite image to/from the formats supported by faces and the other similar software.

Here's an image of a message with an X-Face: in an Emacs mail reader(in Japanese).

There are even some enhancement requests in the Mozilla bug database to add X-Face: support (including patches to do this) [1] [2] [3]. The oldest one actually looks the most promising, but I've been seeing this for several years with no commitment by the Mozilla owners, so don't get your hopes up.

The original version of faces at the end of the 80's, early 90's had support for a lot of different graphical toolkits at that time. One of my favorites was the NeWS implementation (initially suggested by Heather Rose and enhanced by Andrew Nicholson and Pat Lashley) which read a file.ps file containing the PostScript code to display for the image. Alert readers will recognize that you could easily provide animation this way.

Then in 1992, I got interested in other things, and Chris Liebman took over for a while with a slightly different faces-like program called xfaces

In 2001, I decided to bring faces upto date. The latest version is a GNOME/Gtk+ program that uses automake and autoconf (thanks to John Kodis) and adds in support for the XPM graphics format and POP and IMAP remote mailbox formats (thanks to Robert Adams).

Numerous other people have worked on faces over the years (including Sun folks like Hal Stern and Rich McAllister) for which I'm very grateful.

If you are interested in this latest version, you can get the source code from here. Again, it's not being actively worked on, but it should be stable and useful.

[]

( Jul 08 2004, 07:51:07 PM PDT ) [Listen] Permalink Comments [2]

Comments:

"The original version of faces at the end of the 80's, early 90's..." and late 90s, and early 2000, and now mid 2000. Plan 9 still has the faces program and always has. So nice.

Posted by Anonymous on July 09, 2004 at 07:17 PM PDT #

I think it's also really important to add face icons to blogs as well. For my own online diary, I wrote a system where users could upload a photo and then (using javascript/PHP) crop it down to just their face, and this would become their icon. It then appears next to everything they add to the site (comments, shouts, links, photos etc). I have written more about it in my article Making Faces - More Mozilla Issues

Posted by Chris Beach on August 01, 2004 at 04:22 AM PDT #

Post a Comment:

Comments are closed for this entry.