My January column[Lee] presented a preview of the X Consortium's Technical Conference. The conference was held in sunny San Jose, California over February 12-14, 1996. Hopefully you were able to attend as the conference was, as usual, very informative. For those who missed it, this month's column presents a brief review of the conference.
I'll only cover the sessions that I attended. Papers for many of the sessions were published in the conference proceedings[Proceedings] and other are available on-line[X FTP].
The first day of the conference was dedicated to tutorials during the day and some BOF sessions in the evening. This is the only day of the conference with multiple sessions running simultaneously.
I attended the half-day tutorial GUI Programming Using Java, by Jan Newmarch of the University of Canberra, Australia. This was a long version of Jan's article in the February issue of TXA.
Java is, of course, one of the hottest new World Wide Web technologies. This tutorial focused on the Abstract Window Types (AWT) toolkit for Java. AWT allows WWW developers to easily create simple graphical user interfaces within WWW pages. AWT uses a single application programming interface (API) for a variety of WWW platforms. The UNIX version is based on the Motif toolkit (version 1.2) and X Window System.
The tutorial focused on the ins and outs of the AWT API, with an emphasis on its mapping to Motif. The initial AWT release provides only a fraction of Motif's functionality, but it does allow Java programmers to create functional, cross-platform user interfaces. Hopefully, it will improve with future releases.
I didn't attend any of the other tutorial, so I'll just list them here for your information. Material from the tutorials does not appear in the proceedings. Many are, however, probably taught at other X or UNIX oriented conferences. Some are also taught through corporate education programs.
Several BOFs were held Monday evening and I attend Steve Mike's BOF on The X Advisor. The BOF allowed the TXA management, a few of us authors, and several of you readers to discuss the status of the magazine and future plans. I enjoyed meeting the readers and hope you felt likewise. The TXA readership is rapidly growing and Steve has big plans for the future.
The main part of the X Conference is the technical talks. As I mentioned in my January column, many of the projects were related to a few key technical themes:
I'll only present my impressions of each talk. For more information on each talk, see the paper in the proceedings[Proceedings] or, if available, any material that the author has made available on the X Consortium's FTP site[X FTP].
Presenters: Jan Newmarch and Huimin Xu, University of Canberra.
Many times, you've probably used an application program and wished that the program had just one more feature. Unfortunately, since you didn't have access to the source code for the application, you couldn't make the change.
This talk looked at ways to make applications more extensible by the end user, including changes that involve new code that operates on existing application data structures. Their techniques were based on an extended version of tclMotif, a Motif toolkit for the popular tcl scripting language.
Presenter: Susan DeTar, SCO
This talk presented an overview of SCO's Visual Tcl product. Like the tclMotif toolkit discussed in the previous talk, Visual Tcl allows programmers to develop Motif applications using the tcl scripting language. Scripting languages like this allow programmers to develop simple applications very easily. Programmers that frequently develop small applications, e.g., system administrators developing in-house tools, should consider these languages. Another choice is the Desktop KornShell, which is part of the Common Desktop Environment and is discussed in Stephen Pendergrast's monthly TXA column.
Scripting languages can often be used in place of traditional programming languages such as C and C++. The scripting languages are generally interpreted (not compiled) and have simpler syntaxes. Because of this, they work best with smaller applications, perhaps being written by beginning or non-professional programmers. They are very popular, for example, with system administrators.
Scripting languages are often poor choices for larger applications, however, because they run more slowly and they often scale poorly. Long term support for some of the languages may also be an issue.
Authors: John Mani and Kapono Carter, Sun
Multi-threading is becoming a popular application programming technique. It can improve the performance of certain types of applications, including GUI applications that want to interact with the user while at the same time performing lengthy internal computations.
Unfortunately, Motif 1.2 and 2.0 do not support multi-threading. If you call Motif functions from more than one thread, Motif will often crash. This presentation discussed multi-threading capabilities that will be available in a future version Motif. New features allow widget writers to write thread-safe widgets and allow application programmers to write multi-threaded applications.
Presenter: David Bainbridge, ICS
Most of you are probably familiar with the low level X Toolkit widgets, such as buttons and scroll bars. Many Xt application programmers find themselves using the same collections of widgets over and over. Xt does provide a mechanism, called compound widgets, that allows programmers to create higher level widgets that encapsulate several primitive widgets. Motif's file selection box and other dialog widgets are examples of these. Application programmers can create their own compound widgets, but most are reluctant to do so because of the complex syntax.
This talk discussed an alternative, using the C programming language and a single extensible widget class. The syntax is still cumbersome, but simple cases are simpler than writing real compound widgets.
Programmers interested in this subject may also want to consider C++ based solutions. Many of the C++ X Toolkit frameworks provide similar functionality, but with a C++ syntax (constructors, destructors, etc.).
Presenter: Axel Deininger, Hewlett-Packard
Users have long complained that X does not have a standard solution to printing. Currently, applications that want to produce high quality output (i.e., 300+ dpi, not 72 dpi) must provide two separate rendering modules, one for the screen and one for the printer.
Fortunately, CDE will solve this (in it's next release) with a print service. CDE will extended the X server so an application can use the X protocol to render to a printer. It also provides a new print widget that helps the user select printer configuration options.
Presenters: Gunnar Rønning and Svein Johansen, University of Oslo
Å is a programming language designed for graphics animations. Å has a syntax similar to the C language, but the Å data types declare graphical objects and Å operators perform graphical operations, such as animations. This is an interesting research project with several potential applications. More information on Å and related projects is available at http://www.sn.no/~candle/.
Presenters: Yongguang Zhang and Son K. Dao, Hughes Research Laboratories
Hughes is studying the feasibility of distributed computing via satellite, such as connecting an X client with an X server over a satellite link. Unlike telephone lines, where bandwidth is limited and latency is low, satellite have very high bandwidth but very high latency. Unfortunately, even non-interactive X clients perform many round-trip X requests (mostly during startup) and, thus, perform poorly over satellite.
Hughes is trying to improve the startup performance using a scheme similar to the X Consortium's LBX (duplicating X server functionality in the client, caching whenever possible, etc.), but have only limited success so far. Perhaps more research will improve their results.
Presenter: Keith Packard, Network Computing Devices
WinCenterPro is an X-based multi-user NT system. One problem with combining X and NT is rendering text. They optimized this process by using NT fonts to render X text. They accomplish this by loading the fonts into the X server via the X Font Service (XFS) protocol.
These techniques are interesting because the X Consortium's Broadway project can take advantage of them. The next several talks at the conference were about Broadway.
Speaker: Bob Scheifler, President of the X Consortium
This talk introduced Broadway, an exciting new project at the X Consortium. A major goal is to run existing X applications, without modification, over the World Wide Web. One of the major problems with the current state of World Wide Web programming is that companies must convert their existing software to a new set of network protocols, programming toolkits, and possibly even programming languages. If the Broadway project is successful, that extra work will not be necessary.
The major components of Broadway are:
The conference proceedings did not include a paper for this talk. You can, however, find the slides on the World Wide Web at: http://www.x.org/consortium/broadway.html. More information also appeared in the November, 1995 issue of The X Advisor.
Presenter: Kaleb Keithley, X Consortium
This talk covered one part of the Broadway project: embedding X servers in WWW browsers. The X Consortium has tested several techniques for embedding X in WWW browsers and the results are promising.
There was no paper for this talk in the conference proceedings, but much of the material was previously published in the July issue of TXA.
Presenters: Ray Tice and Mark Welsh, X Consortium
This talk covered Broadway's audio system. Like the X Window System, it uses a client-server networked architecture. While it can be used over a local area network, as X currently is generally used, the audio system will also be WWW-capable.
The slides from this presentation are available at ftp://ftp.x.org/contrib/conferences/XTech96/audio_slides.ps.
Presenter: Stephen Gildea, X Consortium
Most X applications are currently run over trusted local area networks, where security is often not a major issue. Security can become much more important when applications, often from untrusted hosts, are run over the World Wide Web. This talk examined many aspects of X security, including authorization, data interchange, and resource sharing.
The slides from this presentation are available at ftp://ftp.x.org/contrib/conferences/XTech96/security-gildea/.
Presenter: Oliver Pfaff, Siemens Corporate Research and Development
This talk discussed more serious levels of security than are currently being considered for Broadway, including encrypting the X data stream. Such levels of security are important when users need to keep their data private, rather than just protecting their systems from hackers.
Presenter: Glenn Faden, Sun Microsystems Federal
Like the previous talk, this talk discussed high security applications of X. In particular, they are developing a version of the Common Desktop Environment (CDE) that meets military security requirements. These requirements include both network security, as in the previous talk, and inter-client security , such as mediating cut-and-paste between clients with different security levels.
Presenter: Ralf Keller, University of Mannheim
This talk discussed a distributed multimedia system based on X. Their system considers not only the traditional transmission and synchronization problems, but also issues such as equipment control in a client-server environment.
Presenter: Mike Patnode, SCO
This talk reviewed recent work on an X Consortium distributed video project being sponsored by SCO. The major parts of this project are a X Media Services Broker which uses a new X Video Stream (XVS) extension to the X protocol. This broker and protocol allow X applications to control the synchronization of external video streams. This control is necessary for high quality distributed video playback.
Presenter: Kenton Lee, consultant to Silicon Graphics, Inc.
This was my talk, so I won't say much about it here. An updated version of the conference paper is available at http://www.rahul.net/kenton/xconf96/mw.html.
Presenters: Shinobu Matsuzuka, Hidetoshi Takima, and Alexender Gelfenbain, SunSoft
X11R6 defined a framework for international text input models. This talk discusses ways to extend the X11R6 framework using dynamically loadable input method models. Dynamic loading allows many input models to be supported by an application (choosing as a configuration option). It also allows new input models to be added without modifying the application.
Presenter: Mark Kilgard, Silicon Graphics
Traditionally, X has been used to one X server render user interfaces on behalf of many remote X clients. This project looked at a reverse problem: several low-end X servers sharing a remote high-end graphics rendering engine. Since high-end graphics engines are often not used continuously, this system can help some user groups use the otherwise idle resource.
Presenter: Ido Sarig, Mercury Interactive Corp.
As long time UNIX programmers know, lint is a (once popular) program that checks your programs for many common C programming syntax errors. This talk discussed a similar sort of error checker for X Toolkit programs. Unlike the original lint, WidgetLint is implemented in an instrumented library with which your applications should link. At run time, the library looks for semantic errors in your X Toolkit function calls. Some Xt programming errors can be hard for programmers to identify, but easy for programs like this.
Sankar Chakrabarti and Sunil Girdhar, Hewlett-Packard
Many U.S. companies get half or more of their revenue from international sales. These customers generally require that their user interfaces use their local languages and idioms. Since there are many such languages, testing costs can be high. This talk discusses some "locale neutral" testing techniques that can simplify the testing of internationalized applications.
Presenters: Sami Mohammed, X Consortium, and Sankar Chakrabarti, Hewlett-Packard
This talk looks at ways to test X applications through non-public interfaces. They have implemented a "RemoteGetval" protocol for retrieving data, such as widget resources values, from X clients being tested. Such a tool can greatly simplify the process of automatically testing X clients.
Presenter: David Wiggins, X Consortium
This talk discussed the details of the RECORD protocol extension, which is new in X11R6.1. RECORD allows an X client to capture the X protocol stream of another X client. This data can be valuable when testing or debugging an X application.
I hope you were able to attend the conference. Attendance was lower this year than in past conferences, though this is not surprising considering that X is now twelve years old and this is the tenth annual conference.
Still, the technical content was interesting. There were plenty of opportunities to meet our colleagues. Also, in contrast to previous conferences that were held in Boston's freezing winters, the weather in San Jose was sunny and 80F degrees for most of the conference.
If you'd like to present a paper at next year's conference, watch the comp.windows.x.announce newsgroup or the X Consortium's web site. The call for papers is usually released during August or September. Proposals are due in October and final proceedings papers are due in December.
Ken Lee is an independent software consultant specializing in X Window System application software. He has been developing UNIX graphical user interface software since 1981. Ken may be reached by Internet electronic mail at kenton @ rahul.net or on the World Wide Web at http://www.rahul.net/kenton/.
Ken has published over two dozen technical papers on X software development. Most are available over the World Wide Web at http://www.rahul.net/kenton/bib.html.