/* $Header: /cvs/faces/faces/TODO,v 1.8 2002/03/05 12:27:09 devface Exp $ * * Copyright (C) 1990-2002 Rich Burridge, Sun Microsystems Inc. * All rights reserved. * * Permission is given to distribute these sources, as long as the * copyright messages are not removed, and no monies are exchanged. * * No responsibility is taken for any errors on inaccuracies inherent * either to the comments or the code of this program, but if reported * to me, then an attempt will be made to fix them. */ /* $Header: /cvs/faces/faces/TODO,v 1.8 2002/03/05 12:27:09 devface Exp $ */ Things needed for the first general v1.7.x release: * Things to fix in the POP support (from MisterBlue): > If POP can't log in, it doesn't display a nice error dialog. > I've been testing with one commercial POP server, but another one doesn't log in for some reason. I haven't figured out why. * Things to fix in the IMAP support (from Misterblue): > The CRAM-MD5 authentication is not accepted by the servers. The code was borrowed from Mutt and I can't see why it doesn't work. The insecure, raw LOGIN command works fine. * From Misterblue The configuration requires the latest autoconf version 2.50 which is not the one distributed in some of the current Linux's (Mandrake 8.1 in particular). ---- * From Ian Donaldson From Daniel Klein Is it possible to have the faces cleared automatically once the mail has been read? I'm clearing by clicking on the window at the moment. * From Lindsay F. Marshall There is a byte-order assumption somewhere that screws up any X bitmaps read in from a file - why dont you use the procedure provided by the system rather than writing your own?? That copes with the problems correctly. * From Pat Lashley An entry of the form `+domainname=community' in the machines.tab file to indicate that if a hostname is found without domain specifier, and it doesn't match any other machines.tab entry, and YP (oops, NIS) access to a server for `domain' is available, and the host matches a key in that domain, consider it part of the indicated community. `+=community' indicates that the current NIS domain should be used. This should probably be enabled by a compile-time option for those who don't run NIS. * From Pat Lashley An option to display unknown users individually with the username, instead of clustered under a single `unknown' user. Really hot would be some way to specify this on a per-community basis... * From Pat Lashley Accept SIGHUP as an indication that various internal databases should be updated from the files (i.e. machines.tab), and that the display should be immediatly updated to reflect current state instead of waiting for the polling period to end. * From Pat Lashley Accept SIGALRM as an indication that the current polling period should be immediatly terminated, and the display updated. * From Pat Lashley More internal comments and a general design document. * From John Mackin If the mailbox is empty, or contains just one mail item, faces -a starts out 10 icon-widths long (with the right-hand part being white instead of background grey), then shrinks to one icon-width as soon as a mail item arrives or you delete the mail. I don't care about this since I don't use -a, but what I _would_ like to see (here comes the wishlist item) is an option that you can use with monitor-new that keeps the window always 10 (or -c if specified) icon-widths wide, but adds extra rows of icons as needed if more than 10/-c new mail items arrive between clearings of the window, and shrinks the window back to one row/-c widths when it is cleared. * From Pat Lashley Change window header to show what is being monitored (mail, lp1, users, etc.) * From John Mackin A comment on the domain lookup algorithm. According to the manual page: $DIR/machine.dom.ain/uid/iconname $DIR/dom.ain/uid/iconname $DIR/ain/uid/iconname $DIR/misc./uid/iconname $DIR/machine.dom.ain/unknown/iconname $DIR/dom.ain/unknown/iconname $DIR/ain/unknown/iconname $DIR/misc./unknown/iconname This leads to a top-level directory with a _lot_ of subdirectories. I think this is responsible for much of faces' CPU time; it's well known that large directories are a UNIX performance no-no. What I would like to see instead (or in addition, or as an option, perhaps compile-time) is the following. $DIR/ain/dom/uid/iconname $DIR/ain/uid/iconname $DIR/misc./uid/iconname $DIR/ain/dom/machine/unknown/iconname $DIR/ain/dom/unknown/iconname $DIR/ain/unknown/iconname $DIR/misc./unknown/iconname The idea is that at each level, if the next component exists and is a directory, you descend into it and look there. * From John Buckle With faces v1.4, I've been having trouble in sorting out my faces directory path. On the old version (v1.3) I used -f .faces, this meant that my directory was searched last which also meant that my misc. face was used. Using FACEPATH I haven't been able to do this, it either seems to use one directory or the other, but not both. FACEPATH=:.faces - uses /n/faces/misc. for things stored .faces FACEPATH=.faces: - uses my misc. for things in /n/face Further comment from John Mackin This effectively means that under 1.4, you cannot have your own misc./unknown icons. The first directory in the FACEPATH to contain a misc./unknown icon will be the last directory searched; any directories after that will be silently ignored. An unfortunate sude-effect of the make_iconname() routine. * From Lindsay F. Marshall With the X11 version under twm, there is a notitle white line problem. Also seen under Open Windows. This shows up as a thick white line along the bottom of my faces window. The white bar at the bottom is exactly twm title sized...... * From Lindsay F. Marshall The button1clear bug is weird - you click button1, nothing happens until you click button two!! * From John Mackin If you have a machine.tab entry in an earlier directory in FACEPATH instead of a symlink, further directories down the FACEPATH are not searched. * From Mike Bolotski We've made (and are planning to make more) changes to the faces package. Some changes: - add flag to allow faces to be compiled to always run -U. - added EXCLUDE_UPDATE_DOMAIN so that mail from local users does not result in continuous updates - fixed icon2ikon to understand the icon format as output by the PBM package (no leading 0x) - fixed icon2ikon to extract the center 48 pixels instead of just the top 48.  Planned changes: - change the basic data structure to either a hash table or a balanced tree - automatic clearing of old faces once the mail has been read (does that exist already?) - hooks to emacs (RMAIL and VM) to allow automatic X-Face inclusion) - lots more, since several students at the AI Lab are fascinated by the package. * From Michael Schmidt With NIS (YP domain fb17i, mail domain uni-paderborn.de) I want to put a line "fb17i=uni-paderborn.de" in the machine.tab, so that for all hosts in the YP domain faces are looked up under their mail domain. [Set of diffs included]. * From Lindsay F. Marshall Some suggestions: - people.tab/machine.tab per face database - caching of icons to reduce file accesses - re-reading people.tab/machine.tab when modified - access to gnu finger (face) service * Convert ~/.facerc to Xdefaults format. * Possibly convert command line arguments to word equivalents. * Convert all fixed length string handling in faces to use malloced strings. * From Steve Kinzler A major inadequacy with the current -e mechanism is the inability (or inconvenience) of faces application programs/scripts to save any state -- they're re-invoked fresh every time period. We may need application programs that run concurrently with faces with bi-directional communication. * From Mark Shand Add a one or two word hashed key of the X-Face: bitmap to each internal faces record, so that two identical X-Face'd records from the same user can just generate one icon with the -a option. * From Daniel Klein It would be nice if I could display faces vertically and not just horizontally, (gee, a scroll bar would be great, but not essential). * From Daniel Klein Autoscaling the faces window would be nice too (so I don't have empty squares) * From John Mackin A huge performance win for people just running faces, monitoring for new mail, can be had in one of two ways: (1) read and scan the mail file backwards just extract the required number of messages (10 by default). (2) scan all the messages, but just cache the info for locating the face for the last -c number of messages, and defer looking up icons until you hit EOF. The first suggestion is harder to program neatly and efficiently, but much cuter; it does, of course, defeat the kernel's read-ahead, but what the hell. [Note from Misterblue : this has been implimented for the POP and IMAP scanning routines.] * From John Mackin As it currently stands, it's not possible to use machine.tab and people.tab, except in the last directory tree on the faces search path. * From Mark Shand Uncompface is still far from robust in the face of maliciously or erroneously constructed faces. I just received an X-Face: header in which the X-Face: keyword was duplicated. Not only did this face decode incorrectly, but subsequent, correctly formed face headers were also corrupted. Uncompface() needs to have bullet-proofing added. * From Victor A. Riley Modify the Makefile.dist file so that the 'make tables' entry installs the misc. faces in the correct place. * From Lindsay F. Marshall I still want faces to work the way that the old V8 vismon did which is that new faces slid gently in from the side of the window and didn't just pop up suddenly. * From Philippe-Andre Prindeville Another suggestion about face_update: it would be nice if it did a "umask 022" at the very beginning, and if it were explicitly installed to run as "daemon,daemon" as setuid/setgid. We run our mailer in locally in "secure" mode, God knows why, and this causes ownership and security problems... * From Alan Skea Sometime between versions 1.4.9 and 1.5.1, some change to compface/uncompface has made it produce different output. The face resulting from the uncompression of a 1.4.9 X-Face: using the 1.5.1 algorithm seems to shift the whole image to the left a bit (or maybe two - I don't really have time to check this out thoroughly) and introduces some corruption into the bottom right of the face. Caveat: these observations are made on the basis of a sample space of 1 face. From John Mackin The situation, so that everyone knows (Rich already knows) is this: there are definite problems with post-1.4 compression and decompression. I am liasing with James Ashton, but he is very busy too now and has little time to look at it; what I was hoping was that I could work out what was wrong and then discuss the fix with him. * From Dirk Craeynest With the remote hostname/user monitoring facility within faces it would be nice to have an option specifying that every user should only be shown once (perhaps with the number of logins). * Convert the [un]compface code to read/write X bitmap files (as opposed to Blit ikon files). * From Rohit Aggarwal - It would be nice to change the -v option such that the version is displayed in the window-tool header instead of printing it out on the screen. - Add: tbl faces.man | {nroff,troff} -man to the README to print out the man page. - It would be nice to a default.au file that is played if a X.au file is not found in the user directory. This is similar to the default icon functionality you have. This way one can have a common X.au file for each community. You can have a directory called audio in which one can have the default sound file. - I have just updated to OW3.0pre-fcs and in the faces window where the user-name does not fill the entire icon-bits the workspace color is showing through. This did not happen in OW2.0. Not a big deal just thought I might let you know. * Integrate the compface and xface directories into one set of sources that do both jobs. * From Jim R. Oldroyd An option to get faces to read a single email message containing the X-Face on the stdin, and to produce the face-update email, containing the 48x48x1 on the stdout. (I.e., like -U, but output not mailed.) This will allow users to install a separate update scheme, even if the administration won't allow a `facemaker' alias! * process_info() in mon.c needs to be reworked so that make_iconname() is not called if this is an X-Face:, and audio support isn't enabled and there is no updating of the faces database (-U command line option). * Faces no longer chdir's to the top of each facepath element before it does it's searching. This functionality (somehow) needs to be reinstated. Comment from Steve Kinzler: To fix it within faces, I could see implementing the concept of a lookup root directory. Just during face lookup, the program would chdir here and then any relatively specified (ie, don't begin with "/") db directories would be relative to this directory. The program already has a default facepath=/usr/local/faces -- we could make this the default lookup root directory with the default facepath=".". * From Harald Vogt Faces shouldn't use an obsolete format for the X-Face: image. Something like XBM would be much more appropriate. [We will have to support the old X-Face (blit ikon) format for a while, so perhaps the best approach is to also look for X-Face-XBM: header lines which will be the compressed XBM format]. * Optimise. ---- * From: Craig Eric Kapfer On the IMAP front, one thing I would like is support for SSL a la pine or tkbiff...shouldn't be hard to add, and seems needed. Both interface with openssl--pine requires that openssl be linked in with pine; I think tkbiff just needs to know where openssl lives. * Some possible Gtk/Gdk enhancements: - Adjust the reading of the various command line options to use a "struct poptOption" format. - Need to consider if any of the following should be added to the faces property sheet: > Monitoring new or all mail. > Adjusting the numbers of rows, column and the display size per icon. > Toggling the enabling of audio support (if audio compiled in). > Label unknown name as "unknown" (default disabled). > Alternative command for playing the audio. > Name of an alternative background image file. > Alternate faces db directory. - Describe the properties sheet in the faces man pages. - Convert the graphics from a simple GtkDrawingArea to a custom widget, for each picon that contains a GdkDrawing area, but also understands things like resizing, and contains a tooltip to get move information about each picon. * Use the #define's and macros in textutil.h to I18N/L10N all the message strings in the faces distribution. Will need to add the filenames that use the _() macro to po/POTFILES.in * When Gtk+2 has been officially released, we should be able to adjust the get_xbm_icon() function in gtk.c to use gdk-pixbuf routines in read in the bitmap data.