Scanning The Landscape Of Palmtop GUIs
There are several Linux-based palmtop OSes emerging, and I would like to know what people are expecting from a non-WinCE, non-PalmOS handheld. I have put together minature reviews of three current offerings that I was able to test on my iPaq for comparison.
The TrollTech Qt
Palmtop Environment
QPE was demoed recetly at Comdex, and in my opinion is the best-looking hand-held Open Source OS so far, even though it is merely a demo of Embedded QT and has not been released as a product. On the iPaq; instead, it installs a new /usr filesystem on top of handhelds.org linux distro.
I think there are a number of advantages to using Embedded QT rather than an X windows + toolkit solution. One, it does not use X, but writes directly to the frame buffer instead, which makes it lighter than X-based solutions, and provides the capability to do things X cannot -- like anti-aliasing and alpha compositing. [Ed. Note: See also recent Slashdot stories on just such developments.]Another nice (future) feature might be cleartype-rendering for the final output, to improve sharpness for all display elements (not just text). The X Window system's most useful feature is remote display. QPE also includes support for remote display -- it can draw to a VNC framebuffer as well as the Linux framebuffer.
Another advantage to QPE is that it uses the popular QT toolkit, making porting applications from KDE relatively easy, and easing cross-platform development (QT also runs on Windows and other non-unix OSes). Addtionally, QT and QPE are both very space-efficient, all handheld-type applications included. The libraries, framebuffer driver, etc. fit into a 3.7MB .tgz file for the iPaq (mirror). If anyone knows of an Embedded GTK project, please post a link below.
One of the most compelling features of QPE is the variety of input methods it allows. It includes five input methods: pickboard, handwriting, keyboard, opti (modified keyboard), and unicode (apparently understands Cherokee out of the box). Every method includes -- this is the really cool part -- dictionary look-ahead. If you type out part of a word, a ticker presents a list of likely candidates. You simply tap on one to erase the partial you already typed and insert the entire word in its place. This is, I think, its best feature, and one that other environments would do well to copy. it also includes support for "right-clicking" -- tap and hold -- to bring up context menus, set flags in minesweeper, etc.
And though perhaps unpolished, QPE is anything but incomplete: it includes 14 applications -- address book, games, etc. -- plus several applets (like a slider to set backlight brightness and a load monitor) and some silly stuff, like a Tux plush-doll simulator (a shaped window with Tux in it). It also includes an HTML-based help browser. And, of course, it's both Open Source and Free Software.
For all of its niceness, QPE does have some cons as well. A lot of them are related to the fact that QPE is a demo, not a released product. For instance, there's no way to suspend the iPaq. It must be shut off, which requires re-calibrating the display each time. There's a menu option for exiting QPE, but it does not also shut down Linux, so you have to power off the running OS, which can't be good. Crashing applications can bring down the whole GUI. For instance, playing a bad MPEG video in the MPEG player hangs the whole UI. I can restart it using the serial-port console, but that's not really a solution. It currently does not have working audio, which is a shame, because the MPEG player also plays MP3s.
Handhelds.org provides the father of all iPaq linux distros (which is also a required base install for QPE). It runs TinyX, written by Jim Gettys. It's really kind of minimalist and unintegrated. However, it's linux, it's free, and Compaq and the iPaq team should be congratulated for providing Linux support on the iPaq. Compaq also provides some other benefits, such as you ability to compile apps using their Skiff Cluster -- making development much easier, as there's no space for a compiler on 16MB of flash. The UI for the Handhelds distro is pretty ghastly -- X + TWM + xterm + TWM menus for few installed apps and administrative tasks, such as changing brightness of backlight.
TWM and xterm are quite tedious to use with a stylus. They're also pretty unattractive. It includes a lot of utilities and programs, but very few GUI apps, which is what you need on a handheld. The three major apps are "scribble" for handwriting recognition, a qwerty keyboard, and a statically-linked GTK mp3 player (note: menus don't work well with stylus). And Xterm makes four, if you want to bother counting it.
The two input methods are strange to use -- you have to get the input focus set just right, and be careful to not obscure the scribble or keyboard app with the target app. In contrast, WinCE and QPE both resize the display area available for apps when the input methods are invoked, and reserve space at the bottom of the screen for the input handler.
Again, the major thing about the handhelds.org Linux distro is that it exists; it's not really meant to be a useful PDA environment. However, it does illustrate the numerous reasons why an unmodified desktop GUI does not belong on a handheld.
PocketLinux is an interesting beast. It is linux-based, but the GUI and all of its apps run in Kaffe and use XML for interface definition and other data storage. The GUI is themeable, and PocketLinux included several themes. I actually didn't care for any of them. Perhaps they should look at SkinLF, a skin engine for Java/Swing.
They have certainly achieved Buzzword compliance with the use of Java + XML. The downside is, it's slooooow. The UI is simply not very responsive, and the iPaq is the most muscular of the current handhelds. The upside is, it's portable. And since it's Java, I imagine it's theoretically possible to beam apps and data to other PocketLinux devices, even if they use a different processor. That's not an insignificant advantage. Plus, because all apps run in the Java VM, it's likely to be stable (assuming the VM is) thanks to the garbage collection, lack of pointers, etc. that Java provides. Plus, the PocketLinux environment can be used to develop (both compile and test) apps off-unit without having to resort to using a special cross-compiler setup and ftping or syncing builds of apps to just see if they run.
Like QPE, it uses the framebuffer; but it does not include any remote display functionality. I'm not certain that's really an issue with a handheld, anyway -- although it might be nice to open your handheld display on your desktop PC while it's in its cradle so that you can use a mouse and a keyboard to more quickly use the UI to manage the device.
The major downfalls of PocketLinux are its slowness and its clunky UI. It's better than xterm, but not as nice as either QPE or WinCE. Otherwise, it's in the same vein as QPE -- includes all the usual suspects as far as apps go, and an MPEG player to boot.
Thoughts -- I am interested in what you all are looking for in a handheld GUI. Please post! I'm looking for a number of things:
- Flexible, easy to use "sync" feature. This would preclude ActiveSync, as it does not work (at all, either USB or serial) on my iPAQ.
- Standard file formats. None of the Linux handhelds options I've discussed here provide a way to "sync" data to another computer, but when they do, a standard resource file format would be nice.
- Easy to use interface. This means, no need to type out words to start apps (or to use most apps). A "start menu" is the best thing going in the launcher department that I've seen, and the use of things like context menus and QPE's dictionary lookahead make using a stylus easier.
- Free Software.
- I actually spent a couple of months getting to know WinCE before I wiped it, and I never did really care for it. It does include Microsoft Reader, though. All handheld environments should include a good, standard document reader. I reccommend PDF rather than MS Reader or any other proprietary format, because it's an open spec and tools to create and view it are available as free software. It also supports sophisticated layout and compression and delivery of all document elements as one file -- something XML and HTML cannot do.
- Variety of working, non-intrusive input methods. QPE's dictionary is great. WinCE and QPE both resize apps to reserve an area for the input method at the bottom of the screen. This is much better than handhelds.org's TWM focus-game method.
- Standard app toolkit. There's not a lot of space on handhelds, but handhelds need a rich GUI toolkit to be useful and provide a way to write lightweight apps. Palm does this well, even though it is a very limited platform. I can't install GTK and QT and whatever, because there's not a lot of space. I use Gnome on my desktops and laptop, and program for GTK, but am very happy with the slim, trim QT/Embedded used in QPE. PocketLinux sort of half-wins. Demerits for slowness and ugly themes. Handhelds' X+TWM+Xterm wins in the oops-thought-this-was-a-desktop category. WinCE does a moderate job; It looks mostly like windows, but different enough to be mildly strange at the beginning. And, of course, Media Player is totally different. What is it with media players these days? Do they all have to be ugly and slow?
- Speed. Handhelds.org and QPE win here. PocketLinux, of course, does not.
- Support for common features: syncing, serial/ppp/ethernet/other connectivity setup, etc. No one does this yet.
- Apps. Including games. MPEG video player optional. Really. Mp3 player would be cool. Doc reader a requirement.
- Attractive interface. I don't mean gaudy. I mean, easy to look at. Microsoft's cleartype for text does make a difference. QPE's anti-aliasing and alpha-compositing both make a difference in this area. Handhelds.org gets no points here. QPE wins, and PocketLinux, while themeable, is somewhat cluttered and awkward to use.
Note: You may also be interested in reading this piece on PocketLinux and reading more about the iPAQ.
Why no EPOC, PalmOS or whatever. Surely comparing these without reference to the base standards is pointless ? This isn't the windows arena where a lack of stability is a problem this is palmtop where the two standard UIs are pretty much as solid as a rock.
I'll stick to EPOC that works rather than go for some unstable bells and whistles.
An Eye for an Eye will make the whole world blind - Gandhi
So what does the Newton OS do that's so nice?
- Pen usage is integral. None of this menu-bar wannabe WinDoze stuff.
- Full handwriting recognition. Yeah, Doonesbury spoofed the hell out of it when it first came out, but for five years it's been a better speller than I am. Like QPE, it uses dictionary lookup, though without the "ticker" QPE uses. Frankly, the ticker seems distracting - Newton groks full cursive, and it's easier to simply keep writing the word. If it chooses the wrong one, double-tap on the word, and a menu appears of alternatives (along with options for character-by-character recognition (good for names and acronyms) and access to keyboard or per-letter writing space).
- Customizable abbreviations. I write "mtg" and it expands to "meeting". You can write "mt" or "foo" and it will expand to "meeting" if you want. This further obviates the ticker.
- Full use of the screen - you can write anywhere at any time, so no need for silkscreen Grafitti space, or even a pop-up writing area (like on Windoze). Where you write is where it shows up. If you want to write someplace in particular, tap where you want, and a caret cursor shows up. Then write anywhere and text shows up at the cursor.
- Comprehensive use of editing gestures -
capitalize, lowercase, delete (scrub out, like you're using an eraser, only it figures it out automatically without needing to flip the pen or select "eraser mode"), select (tap and hold, option to then highlight by drawing through selection or circling it), split word, merge words, cut, copy, and paste, a visible clipboard that doesn't get in the way (and a freeware option to enable as many clipboards as you want - you can finally swap using cut-n-paste).
- Comprehensive data sharing between applications. Your datebook knows about names in your address book, and so does your email reader, your printer, and your fax.
- Esthetically pleasing layout that still uses minimal screen real estate. Next to the Newton, the Palm (and Windoze) simply looks bad. Nice touches ranging from good choice of line widths, to choosing when icons don't need a border, even if they work like a button (and the reduction in visual noise really matters on a palmtop), to the smallest "scrollbars" out there (and knowing when not to use scrollbars).
- Clever reasonable assumptions. When I write "Lunch with Pam", I tap the lightbulb. Up pops a meeting slip, saying it is for "Lunch", with a time set to 12noon for either today or tomorrow (depending on what time of day it is when I write it), with "Pam" chosen from my address book (and a pop-up menu to choose from multiple Pams). "Call Dave", "Find John", "Remember to fix the sink" (a to-do on your calendar), "Meet with Susan next week", all work.
- Finally, an extensible object model like you wouldn't believe. You can customize everything, from adding new kinds of stationary to your notepad (and the stationary can be "smart," e.g., graph paper) to adding menus or buttons to existing apps to replacing existing apps, etc. etc.
So QPE developers, go check out the Newton OS and rip it off as much as you can.-----
Klactovedestene!
The Palm is clearly an incredibly useful tool - so many people use it. I don't think it is the be-all and end-all of pen UIs, though. My favorite comment on this one is the following:
The Newton is big, yes. But taking notes in a meeting on a Palm is a bit like taking notes on a Post-It. Sure, you can do it, but nobody does it by choice. Taking notes on a Newton is more like taking notes on a steno pad - quite reasonable, though many people prefer a full-size pad of paper (the thought of a tablet-sized Newton makes me drool, but it will never be).Both I and the earlier poster suggested looking at the Newton OS as an example for directions in pen user interfaces. Despite the presence of many Newton features in the Palm, the Newton still has more, and more powerful implementations of the ones the Palm has. It is still a good example of where to go in pen UIs as Moore's Law continues to bring price down for a given performance.
Let's take one example - handwriting recognition. Grafitti only succeeded (again, IMNSHO) because of marketing. After the early Newton debacle with handwriting, claiming "100% accuracy" went a long way towards tooting Grafitti's horn. Is it a better user interface? I think not - writing on a Newton is like writing on paper, only you can edit and format the text, either immediately, or later. It makes for an immediately usable UI (very low learning curve) that doesn't hamper power users. Of course, Grafitti wasn't originally designed for the use to which it is being put now. When PARC first came up with the approach of a different alphabet for single pen strokes, it was intended to be used on a pager display. Something even smaller than a Palm, where you never expected to enter more than a few characters, e.g., a "yes", "no", or maybe a phone number. Using Grafitti to write has the same indirectness problems of using a mouse to draw - you can do it, but anyone who's drawn on a touch-sensitive LCD knows you get better drawing there than with a mouse (I can manage to write my name with a mouse, but most people can't).
As with much open source stuff, there's too much of a tendency to settle with duplicating the status quo. I'd suggest trying for something better.
-----
Klactovedestene!
1) Graffitti, while difficult to learn compared to typing, eventually is much more natural than typing on a tiny keyboard which only serves to make the device larger.
2) Simple GUI. The palmos GUI is really really simple. You have one app open at a time, and that seems to work well for a handheld device. If you don't like the palm interface, there is a better one that I use called LauncherIII. It's free and has a few enhancements over the standard palm interface. If you want something different, there are others, such as Silver Screen, that you can get.
Also, concerning free software. There's a ton of it out there. I usually go to www.palmgear.com to get everything I need for the palm pilot. There's a lot of software out there, a good amount of it is free. You can also get a version of C, Basic, Java, etc. for the palm pilot if you wish to do your own programming but don't want to learn a new language to do so.
The palm pilot is not the most advanced piece of equipment out there, but for me it is the most useful of the handheld machines. CE is based on windows 95, and thus works better on machines with keyboard and very small laptop type computers. What will truly advance the handheld computer will be voice recognition but it's so hard to do it correctly, so I'll stick with my palm pilot for now.
Mas vale cholo, que mal acompañado.
Hello All Slashdotters (/ME puts on flame retardant suit, just in case)
I just want to say hi. I am a sysadmin at handhelds.org and would like to clarify/expand on some stuff mentioned above.
Note: all of the following comments are mine and do not represent the handhelds.org community as a whole or part
First of all I'd like to say that handhelds.org is not an IPAQ only community and we are currently looking to setup websites/mailing lists/etc that will help anyone looking to port linux to ANY handheld device. So if you are a developer looking to put up your work, please let me know (edwardam@handhelds.org).
The Handhelds.org (hh.org) iPAQ distro is also the base for the pocketlinux distro, they just add their java environment and get rid of our X server (they write directly to the fb), which in my opinion is a technical mistake.
The hh.org distrobution is very minimalistic at this time. We are stsill working on some core issues (that will benefit QTE & pocketlinux) like Advanced Power Management (what we have now I would not consider Advanced), X screen rotation (what we have now is a gross hack; some of the people working on this are Keith Packard and Jim Gettys), jffs (so you can write to the fs; currently we are using cramfs a read-only comrpessed filesystem) and jffs compression (so we can get the same storage we are used to with cramfs)
Our X server sources have been rolled back into the main Xfree 4 tree. Jim Gettys has made a lot of size improvements to xfree and it's xlibs, and I believe there is still more improvement to be made. So everyone will benefit from the work. And let me just say that X is NOT TOO BIG for a handhel!!!! (heck even IBM's Linux Watch runs X.
Lets see what else: We are also replacing xterm with rxvt ('cause xterm is too big).
There is also work going on (with xstroke and xscribble) to do full screen character recognition, so all of the focus issues related to text input will go away (No popups and stuff, just write what you want; Eat your heart out CE). As a matter of fact xstroke is what I currently use on my ipaq
Some other things of interest:
Languages like tcl, python, perl and java are being worked on. One of which may make the standard distro at some point. P.S Just use python (that's my baby), it already has support for unicode, xml, gtk and libglade on the ipaq.
Various people (Alan Cox included) are working on several Window Managers that are PDA specific like pdawm, swm and various hacks on aewm and other.
There is of course NO timetable for any of the above. :-)
edwardam@handhelds.orgPalin...
2. Scratch out 97.5% of them.
3. Build your gui and base it on the remaining 4 items.
People working on handheld gui's need to step out of the freaking desktop paradigm. Icons and flashy menus are not the way to create a good handheld interface. Who needs enlightenment in your freaking handheld? Apart from wankers, I can't think of anyone.
tcd004 Tired of election coverage? How about some UNCOVERAGE?
Look no further than henzai.com.
---
In summary, you need a fast, easy input method, with a fast, intuitive way to launch apps, and a way to view all the necessary data at the same time (color and screen use both come into play here). After all, what are these things for if not fast, easy access to the data we can't go 2 minutes without having access to? I'm curious, though, what features do people think are really necessary in these things? I for one think MP3 players and most network connectivity are overrated. I also only care about getting the files off the device and being able to use them in other applications. Syncing, for me, is just another buzzword, as I keep my phone book and appointments in only one place (on the handheld). I know others will take issue with these points, though. Flame on.
Some of these items have been covered in other posts since I started writing this tome, but I'm going to post it anyhow since they weren't covered in the detail I wanted to see.