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.
EPOC (EPOC32, not the DOS hack that was EPOC16) is really beautiful. I could do without some graphical frilliness on some apps (Jotter, IIRC, has the spiral-notebook thing at the top of the screen that eats up a decent chunk of real estate)... but the whole thing is impressively well-designed for handheld use... ;)), and Palm users will get to experience what they've been missing all along.
Palm is supposedly in talks with Symbian to license the next-generation EPOC (ER6?) for their devices; it's interesting, because Palm basically went down the same road as Psion did years earlier; starting out with a shell over a DOS-like OS, then finding themselves in need of something a bit more powerful and integrated.
Personally, I wouldn't consider a Linux/NetBSD handheld at this point (although running such on some WinCE hardware would be fun), although QNX Neutrino and Amiga/Tao products might show something interesting in a year or two. EPOC is _the_ real road for handheld systems, and it deserves some time in the limelight as the Windows of the palmtop scene. This isn't to decry everyone else's efforts, but it's going to take the world a while to catch up.
If, or more likely when, Palm switches to their own branding of EPOC, the handheld world will be a much better place; EPOC will gain the current fleet of Palm developers (and we'll finally see some decent software for palmtops with *keyboards*
One thing EPOC lacks at present is a good, Newton-style handwriting solution, but the switch to tablet-style Symbian/Palm devices should spur some work on that front. The other thing it lacks is in-OS support for popular (MS) file formats; conversion occurs at sync time, which probably saves some space on your expensive CompactFlash storage, but means that interoperability can suffer when sending e-mail attachments and such.
I own a digital camera with a 340MB micro drive from IBM in it. I can take 500 1200x1000, quality 10, JPEGS with it before it runs out of room. Then to sync I just slip the microdrive into the PC card in my laptop and the laptop recognizes it as just another hard drive, allowing me to copy files as I see fit.
While I would much prefer to buy a hand held running linux, I'm not going to buy anything until flash memory and the like has been replace by a micro drive.
I just haven't seen anything that beats the PalmOS yet in terms of ease of use, ease of programming, and breadth of applications.
No, the Palm doesn't do MP3s -- so? I've got a Rio for that. No it won't play movies -- so? You're going to watch movies on a handheld? Why? What kind of batteries do you have in there?
The vision of PalmOS devices is that it isn't neccessarily a platform that stands alone -- it's a mediation between a desktop and a completely mobile device.
Actually, the PalmOS is probably the living incarnation of Allan Kay's Dynabook -- it's cheap, so it's not super painful if you lose one a year. It's complete, in that you can use it as a serial terminal, a web browser (tho iSilo is better than online-browsing), a note pad, a sketch pad, address book... and all this is pretty well integrated.
Other than the nerd factor of running X or Qt on a handheld, what do you hope to gain from these other platforms?
Potato chips are a by-yourself food.
I was under the impression that Linux was still not a viable alternative to WinCE on handheld devices. It is slow, it is quite unstable and the lack of good WinCE alternatives has put it on the back burner.
.02
I think it is absolutely wonderful that people are attempting to get Linux on these devices (I am getting a Cassiopeia for Xmas) but shouldn't we be working more on the backend of it rather than how good looking it is?
Just my worthless
So what does the Newton OS do that's so nice?
PalmOS does a pretty good job at this.
Jot. Write on the full screen, visible ink feedback, no funny alphabets to learn.
That said, NOTHING beats NewtOS >2.0 for HWR.
PalmOS has shortcuts.
Jot again.
....All I can say is-- NewtOS rocks.
ActionNames does a decent job at this. It's not built into the OS, but it's a good hack.
See above. AN has some really good layouts for the organizer (the only better one I've seen is MoreInfo for Newton). That said, Newton wins on widgets.
I could have sworn I saw an Asisst clone for PalmOS once, but now I can't find it.
NewtOS - 42, PalmOS 21.
I owned a MessagePad 2100 for several years... I loved it to pieces, it was easy to use, it did everything I could ever want... except fit into my back pocket. It just got too inconvenient lugging it everywhere, so now I own a Palm IIIx with all the software listed above to make it as Newt-like as I can manage. At one point, when I had SilverScreen installed, I had the Newt icon set, too!
I like the Palm (though it's no newt), but I gotta say, the color screens and nifty video/camera/mp3/x-windows stuff on the iPaq do make me wonder...
The other hand-held that hasn't been mentioned here yet is the Newton. Despite the fact that it has been discontinued, I still have yet to see a handheld that comes close to matching the elegance of the Newton.
In my opinion, it is what the other free efforts should be modling themselves after. The UI was written from the ground up to to be pen oriented, rather then being an adaptation of a desktop UI.
Also, it provides for tight integration between the OS and 3rd party applications. For example, the email program I use on my MP 2100 uses the standard contact information for getting its email addresses, and is treated by the system as simply another way to get information in and out of the system.
Thirdly, it has real, honest to God, handwriting recognition. Despite all the jokes that were made about it when the Newton was first released, it was perfected in the MP2x00. I can write at full speed, cursively, and it's accurate about 99% of the time.
Finally, the hand-held should be able to operate independently from a desktop PC. I should not have to sync it on a nightly basis with my host PC for it to be fully useable. The NewtonOS has a full TCP/IP stack, with communications being done over Ethernet, or PPP. The email, browser, ftp, irc, telnet, ect.. clients all use the standard protocols, and you can download new packages directly off of the 'net.
Anyway, if some one could produce a hand-held with these types of capabilities, I'd buy one in an instant. Until then, I'll stick with my MP2100.
My $0.02
...si hoc legere nimium eruditionis habes...
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
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.