I quite often carry out web development work on computers running the Linux operating system. I also have an interest in mobile and ubiquitous computing and own an HP Jornada 720 "handheld computer." In recent months, I have been spending (quite a few) spare moments searching, downloading, installing, configuring and generally prodding around to see to what extent this platform could support the equivalent of what I do with desktop computing. This is just to share some experiences. It is by no means a definitive guide.
After a while, I found Rainer Keuchel's site, a prodigious source of software for Windows CE, including ports of some major open source software packages. One of these is a port of XFree86, an open source implementation of the X Window System. I eventually set aside a couple of hours in which to try it out.
I have found it very convenient to use a compact flash card to store all the files, saving the internal memory for actually running the programs. After quite a lot of fiddling with registry settings (and ensuring that my font path was set in double quotes), I duly managed to get the X server working and Xclock popped up in corner, but other apps failed - I couldn't load Xedit and Xcalc displayed a solitory zero inside a single box. I left it and returned a few days later and discovered that I hadn't placed the .twmrc file in the right location. Afterwards, it worked fine.
The Xserver comes with just a handful of compiled apps, including a window manager, TWM. As you can see in the screenshots, it looks much like it would on any other display. However, instead of pointing and clicking with a mouse, the stylus is needed, which replaces the left mouse button. As yet there is no support for right or middle buttons.
With few apps and such a constraint on the interface, was this genuinely useful? If you carry out searches using Google, you'll very likely come across PDF documents. Although Google offers HTMLised versions, they are often rather crude by comparison, so a dedicated reader is needed. For Pocket PC2002 there is a version of Adobe's Acrobat Reader, but it doesn't run on the Jornada. I couldn't find a satisfactory alternative ... until I came across the port of XPDF.
I soon found it handy to check bus times (see the Oxford Bus Company site), which took a while to download but was subsequently fine and I duly found the information I needed:
Another application that has been ported is XEdit, which I used to produce almost all of this Web page to gauge how practical it can be to work in this environment. Here is what it looked like when editing the header:
It loads fast and typing within X windows is fine - the response to key presses seems good, navigation with the arrow keys is fine. However, other aspects weren't so smooth, partly because I'm not so familiar, but I guess also because some features aren't supported. For instance, it seems that either there is no text buffer or accessing it doesn't work properly - whereas I could select a region and delete it with CTRL-W, I couldn't paste with CTRL-Y. Also, Caps Lock doesn't appear to have any effect. More generally I couldn't access symbols normally obtained by use of the fn key, e.g. the tilde, but maybe I'm missing some extra configuration? Most inconvenient was when I became rather absent-minded and pressed CTRL-S, which performs a save operation in many editors, but here instead of initiating a search it just crashed the program!
Up till this point the port of XFree86 might be considered mainly of interest to developers, with just a few handy programs for the general user. However, at Keuchel's site you can also download a port of OpenSSH. I use ssh at work to connect from a desktop that runs an X server on top of Windows 2000. Typically I connect to a remote machine running X Windows, which forwards X11 connections that it receives down the line to my desktop. So could this be done on my handheld?
Yes :-) Just need to set a '-X' flag to tell the ssh client to switch on the support for X11 forwarding. So to log on to a remote host I simply run Keuchel's console, W32console and enter:
ssh -X username@remote.host
Once connected, you should find that the DISPLAY environment variable has been set to something like LOCALHOST:10.0 So in order for the Jornada's X server to actually accept connections, I just added a line to the X0.hosts file that simply reads localhost. Now it was ready to launch all those fancy X apps and have them displayed in the palm of my hand...
In general, applications could launch from just a second, through to 10 minutes, so it sometimes requires quite a lot of patience! For this to be practical you need high bandwidth - at least a DSL line. At least it can be done - see the two screenshots below of the GNOME desktop and the Nautilus file manager:
One thing that might be useful to the developer/porter is to compare behaviours of apps running off native OS with the ports. So, for interest, I launched Xedit from the Linux host, and duly found that the text buffer works - in particular I could paste text with CTRL-Y, search with CTRL-S... etc. In fact, the interface was far more usable all round.
If the handheld is really going to enable me to carry out my day-to-day work, then I need to properly preview the pages in a selection of browsers. Although the implementation of IE that comes with the Jornada is pretty good, particularly in its support for CSS, it does have limitations such as no display of PNG and no support for plugins. So I tested a couple of browsers, Netscape and Mozilla and the following shows how Mozilla can be quite good in saving space:

They took 3-4 minutes to load. Once available, they worked reasonably well, and as with WinCE's IE, the widescreen display is good. Better still is the fact that you can have the latest standards-compliant version instead of a static product. However, the screen refresh was a bit slow.
Testing pages in mainstream desktop browsers is essential For the Web Developer. In some project work, I developed NetWedit, a small WYSIWYG tool that enables Mozilla and Netscape users to apply limited formatting to text. Specifically, it provides a widget to the textarea box in Web forms. I can now use the Jornada to develop code (using emacs etc) and preview. In the following screenshot I've just highlighted the word 'select' and pressed the 'I' button to apply italicised formatting.
The behaviour was just as I'd expect it on a desktop - windows pop up, button clicks trigger the expected events, etc. The selection is actually made via a JavaScript call to the getselection() method that extracts selected text as a string. So it passed the main tests in terms of the user interface.
Let me say straightaway that I am no graphics designer, so in many ways I am just guessing with my comments. However, using a handheld can offer in a very compact setting similar facilities to graphics tablets. So, I ran a quick test of the GIMP, which offers many features similar to Adobe Photoshop. The screenshot simply shows a quick doodle:
From the quick trial, the process of drawing itself is fun with the stylus, though allowances need to be made for the slight delay in response - for instance, when tracing a shape, the lines won't appear until perhaps half a second later. However, the popup dialogue box used to define the dimensions of a new layer is of fixed dimensions and the OK button is off the screen. I had to use the TAB key to activate it, guessing on the number of TABs needed.
Where the screen really is too small, it would be useful to have a virtual desktop ...
The port of XFree86 works, especially the core X server. The interface may not be complete and there are only a few X apps available that have been ported, but using X11 forwarding under ssh offers many possibilities and makes the X Windows support genuinely useful! There are alternatives: for those of hardy disposition, there is NetBSD or Linux, but there are many obstacles, not least the fact that the ROM is not erasable. Alternatively, there is vnc, which I'd like to try one day, but that requires a network connection and I don't find it aesthetically pleasing and from my limited experience of it, I don't expect the performance to be tremendous. Maybe someone can say otherwise? :-)
My experiences have been very encouraging and curiosity is growing among colleagues at work. This prompts me to speculate about how things will develop. As bandwidth increases, perhaps new thin wireless clients will be running X windows with almost all the apps delivered remotely? I hope others will investigate and take this much further.
(c) Paul Trafford
(and typed in a comfy chair at home)
(Email address available via this contact search page)
Page created: 3 August 2003