Domain: flyingbuttmonkeys.com
Stories and comments across the archive that link to flyingbuttmonkeys.com.
Stories · 8
-
Scanning The Landscape Of Palmtop GUIs
If the iPAQ looks nice, the Yopy looks sexy, the Agenda intrigues you, and a V-Tech Helio running Pocket Linux looks interesting to you ... then you may enjoy this sweep of the available Palmtop GUIs with an emphasis on Free ones, written by reader 1010011010.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 EnvironmentQPE 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. -
Slashback: Quakery, Lifespans, Barcodes
Today's Slashback calls out to you with puppy-dog eyes, pleading with you to read on for addenda, errata, et cetera regarding previous Slashdot stories and other updates from the world. Read below for ... the all-singing, all-dancing, topless, hatless and reckless Cue Cat review (one night only) ... one reaction to Stephen Hawking's idea of the world's (human) life expectancy ... some Official Words from the Quakemakers ... and as usual, a few bits and pieces.Just stick around and collect on this bet. mindriot writes "The German climatic researcher Manfred Stock has rejected Stephen Hawking's theory which states that man would not exist on earth for another 1,000 years. To him this seems rather unlikely. Stock expects that, in 50 years, mankind will have switched to alternative power resources. Read the german article here." Oder, wenn Sie nicht Deutsch kann, bitte Babelfish benutzen. It's a much more optimistic view of things, but hardly the words of a Pollyanna.
CD-Rs are cheap, cheap, cheap. David Hume writes: "Fox News is reporting that '[a] three-judge panel decided to allow the popular service to continue allowing users to share music files over the Internet, pending further deliberations.' ... "The judges seemed to need more information from the recording industry and were more antagonistic to the RIAA," said copyright expert Leonard Rubin, who observed the proceedings."'
Overall, it sounds like Napster is taking neither the "shoo-in" or "dropped anchor" tacks that many people predicted. The article points out (and presumably the judge knows) that peer-to-peer file transfers have long since left the gate.
Well, they are the guys who make it, after all! You might remember the stink raised by the release of the Q3 1.25 patch. Now Bob Mintern writes: "iD Software, in hue of their current Point Release for Quake 3 1.25, has released a FAQ highlighting sevral issues of the 1.25 patch and what it breaks. The FAQ can be located here. I wonder when the "offical" patch will work and everything will be normal again..."
After this I'll try to shut up for a while about it, OK? There's been so much about the CueCat that perhaps you (and / or digital convergence) are sick of hearing about it. I pledge not to mention it for at least a week, on penalty of an early bedtime or perhaps more vacation days. But today, you must deal a few I thought were neat ;) First, bk1e asks the musical question: "Why :de:claw your :Cue:Cat when you can get it :spayed in about two minutes with a soldering iron? Simply solder on one jumper and it acts like any other barcode scanner." Heh.
Or, even without doing that, hangel points to this "A CueCat decoder for Zope by stevea," which includes source. Specifically, this one will let you scan in a book's bar code and look it up on Amazon.
Finally, photon317 writes: "There's a make-fun-of-DC site at www.digitaldivergence.org." This I leave to your own judgement, but as R. Crumb might say, not everything is for everybody. Think iBrator.
-
Slashback: Quakery, Lifespans, Barcodes
Today's Slashback calls out to you with puppy-dog eyes, pleading with you to read on for addenda, errata, et cetera regarding previous Slashdot stories and other updates from the world. Read below for ... the all-singing, all-dancing, topless, hatless and reckless Cue Cat review (one night only) ... one reaction to Stephen Hawking's idea of the world's (human) life expectancy ... some Official Words from the Quakemakers ... and as usual, a few bits and pieces.Just stick around and collect on this bet. mindriot writes "The German climatic researcher Manfred Stock has rejected Stephen Hawking's theory which states that man would not exist on earth for another 1,000 years. To him this seems rather unlikely. Stock expects that, in 50 years, mankind will have switched to alternative power resources. Read the german article here." Oder, wenn Sie nicht Deutsch kann, bitte Babelfish benutzen. It's a much more optimistic view of things, but hardly the words of a Pollyanna.
CD-Rs are cheap, cheap, cheap. David Hume writes: "Fox News is reporting that '[a] three-judge panel decided to allow the popular service to continue allowing users to share music files over the Internet, pending further deliberations.' ... "The judges seemed to need more information from the recording industry and were more antagonistic to the RIAA," said copyright expert Leonard Rubin, who observed the proceedings."'
Overall, it sounds like Napster is taking neither the "shoo-in" or "dropped anchor" tacks that many people predicted. The article points out (and presumably the judge knows) that peer-to-peer file transfers have long since left the gate.
Well, they are the guys who make it, after all! You might remember the stink raised by the release of the Q3 1.25 patch. Now Bob Mintern writes: "iD Software, in hue of their current Point Release for Quake 3 1.25, has released a FAQ highlighting sevral issues of the 1.25 patch and what it breaks. The FAQ can be located here. I wonder when the "offical" patch will work and everything will be normal again..."
After this I'll try to shut up for a while about it, OK? There's been so much about the CueCat that perhaps you (and / or digital convergence) are sick of hearing about it. I pledge not to mention it for at least a week, on penalty of an early bedtime or perhaps more vacation days. But today, you must deal a few I thought were neat ;) First, bk1e asks the musical question: "Why :de:claw your :Cue:Cat when you can get it :spayed in about two minutes with a soldering iron? Simply solder on one jumper and it acts like any other barcode scanner." Heh.
Or, even without doing that, hangel points to this "A CueCat decoder for Zope by stevea," which includes source. Specifically, this one will let you scan in a book's bar code and look it up on Amazon.
Finally, photon317 writes: "There's a make-fun-of-DC site at www.digitaldivergence.org." This I leave to your own judgement, but as R. Crumb might say, not everything is for everybody. Think iBrator.
-
Digital Convergence Likes Hackers (?)
sconeu writes "Wired News has this article wherein they claim that they like hackers, and that the whole thing is overblown. It says that 'Doug Davis, Digital Convergence's CTO, said he applauds the hackers' ingenuity and 'chuckles' at some of the ideas they have dreamed up.' " Meanwhile, driver sites remain offline and software writers continue to be threatened. That's how much they like it. C'mon, guys. -
Inside the CueCat Hardware
HaveBlue writes "Apparently not content to simply go after those writing software for the CueCat, Digital Convergence is now giving the evil eye to hardware hackers. I just got a letter via FedEx this morning almost exactly like the one sent to Michael Rothwell and other developers. DC just doesn't seem to understand that they can't control hardware that's given away for free..." The second link is an extremely detailed discussion of the internals of the CueCat. Mirror it while you can. -
CueCat At It Again
Michael Rothwell (the author of Foocat) wrote in to tell us that our friends at Digital Convergence are not giving up on their quest to defend their 3rd grader calibre "encryption" of their "intellectual property". Since they've changed their EULA, and mass mailed California, they have no excuse (the old EULA has no restrictions on reverse engineering the hardware, and mass mailing in California makes it irrelevant anyway). Anyway, you can read DC's response (a misnomer since they don't actually answer any of the questions). The site has other fun tidbits like reports of DC visits, and linkage to all sorts of good info about how to remove the serial number from the CueCat, and what DC is planning on doing with your info (besides giving it to crackers). -
Linux Drivers For Free Barcode Scanner Cease-And-D...
On Aug. 30 several folks who have written Linux drivers and apps relating to the free barcode scanner mentioned here a few days ago were sent cease and desist orders demanding that they stop distributing the code. [updated by timothy 20:00 GMT: Please note that what flyingbuttmonkeys received is not officially a "cease and desist" letter; instead, it merely says that the longer the drivers are available, the "longer damages will accrue," citing "intellectual property rights owned by Digital Convergence." ] The barcode scanner is called a CueCat (with some lame marketroid colons that I'm not using because it irritates me when people name things like that). The code included a device driver written by Pierre-Philippe Coupard and a reader/decrypter written by Michael Rothwell. The code is afaik unavailable, but hopefully folks who downloaded it will have mirrors soon. I asked Michael to describe to me what his decoder did, and a few other questions.> How complicated is the driver/what does it do?
It isn't terribly complicated. There's two programs that I wrote in the package, and one I did not. All are based on the "libcue" I wrote, also in the package. The deocder algorithm is a simple modified base-64 XOR 67. Jean-Philippe 'JP' Sugarbroad figured it out, and Colin Cross wrote code based on it and made me aware of it. I re-implemented it for the learning experience. The program named "decode" reads in a line of output from the cuecat for stdin or as first argument. CueCat output looks like this:
<ALT-F10>.C3nZC3nZC3nYDhv7D3DWCxnX.cGf2.ENr7C3b3DNbWChPXDxzZDNP6.
decode splits the Cue output into fields separeted buy ".". It ignores the first field and runs the rest through the base64+XOR decoder. This becomes the first line output. Digital Converegence added some additional "encryption" to their Web service; their program takes the output of the cuecat and inverts its case befoe sending it off to http://[server].dcnv.com/CRQ/1..[activation code].04.[cuecat scan].0
[Server] can be a, o, s, t, or u. [activation code] is supposed to be the activation code you get from your registration, but can be simply "ACTIVATIONCODE", which is actually what my spftware puts there. [cuecat scan] is the raw output of the device, minus the ALT-F10, with case inverted. Their servers send back a little blob of text containing several fields, including a suggested URL and description. Libcue parses those out and makes them available to its clients. Here's the scan of an NADA car-guide book:
The output of decode looks like this
DATA 000000001768443202 IB5 978034533392650599
CUE 0345333926
AMAZON 0345333926
http://www.amazon.com/exec/obidos/ASIN/0345333926/104-2159322-9263954
Ringworld Larry Niven
http://images.amazon.com/images/P/0345333926.01.LZZZZZZZ.gifThe gnome panel applet reads in CueCat scans, looks up the :Cue at DCNV servers, and redirects Netscape to the suggested site, if any.
> What does their commercial software do exactly?
The same thing mine does, without the amazon lookup and with some annoying GUI features, like a tabbed CueCat panel.
> How many lines of code?
1258 according to "cat cuecat-applet.c cuecat-applet.h decode.c decode.h libcue.c libcue.h | wc -l"
Michael makes another interesting point in a seperate e-mail
When they sent the letter (Aug. 30), my software did not touch the DCNV servers to look up :Cues. It simply decoded the data, and if an ISBN number was scanned, the panel applet made Netscape go to the Amazon page blindly: http://www.amazon.com/exec/obidos/ASIN/[isbn number here].
So it was not the use of DCNV servers they objected to, but the mere decoding of the output of the cuecat. I didn't release the :Cue and Amazon lookup-enabled version until yesterday (Aug. 31), when the FedEx letter arrived by overnight delivery.
Thanks to Michael for taking the time to answer this stuff. It's pretty scary when the stuff that you have can't be poked at without a corporation demanding you stop. Imagine if Ford had said you can't open the hoods of your car a hundred years ago.
Update: 09/01 02:49 PM by CT : Freshmeat has a perl script CueCat Decoder that will also decode the CueCat's output.
Update: 09/01 02:57 PM by CT : Russel Nelson pointed out that Lineo's Driver has also been taken down following a cease and desist from Digital Convergence (CueCat's parent).
-
Linux Drivers For Free Barcode Scanner Cease-And-D...
On Aug. 30 several folks who have written Linux drivers and apps relating to the free barcode scanner mentioned here a few days ago were sent cease and desist orders demanding that they stop distributing the code. [updated by timothy 20:00 GMT: Please note that what flyingbuttmonkeys received is not officially a "cease and desist" letter; instead, it merely says that the longer the drivers are available, the "longer damages will accrue," citing "intellectual property rights owned by Digital Convergence." ] The barcode scanner is called a CueCat (with some lame marketroid colons that I'm not using because it irritates me when people name things like that). The code included a device driver written by Pierre-Philippe Coupard and a reader/decrypter written by Michael Rothwell. The code is afaik unavailable, but hopefully folks who downloaded it will have mirrors soon. I asked Michael to describe to me what his decoder did, and a few other questions.> How complicated is the driver/what does it do?
It isn't terribly complicated. There's two programs that I wrote in the package, and one I did not. All are based on the "libcue" I wrote, also in the package. The deocder algorithm is a simple modified base-64 XOR 67. Jean-Philippe 'JP' Sugarbroad figured it out, and Colin Cross wrote code based on it and made me aware of it. I re-implemented it for the learning experience. The program named "decode" reads in a line of output from the cuecat for stdin or as first argument. CueCat output looks like this:
<ALT-F10>.C3nZC3nZC3nYDhv7D3DWCxnX.cGf2.ENr7C3b3DNbWChPXDxzZDNP6.
decode splits the Cue output into fields separeted buy ".". It ignores the first field and runs the rest through the base64+XOR decoder. This becomes the first line output. Digital Converegence added some additional "encryption" to their Web service; their program takes the output of the cuecat and inverts its case befoe sending it off to http://[server].dcnv.com/CRQ/1..[activation code].04.[cuecat scan].0
[Server] can be a, o, s, t, or u. [activation code] is supposed to be the activation code you get from your registration, but can be simply "ACTIVATIONCODE", which is actually what my spftware puts there. [cuecat scan] is the raw output of the device, minus the ALT-F10, with case inverted. Their servers send back a little blob of text containing several fields, including a suggested URL and description. Libcue parses those out and makes them available to its clients. Here's the scan of an NADA car-guide book:
The output of decode looks like this
DATA 000000001768443202 IB5 978034533392650599
CUE 0345333926
AMAZON 0345333926
http://www.amazon.com/exec/obidos/ASIN/0345333926/104-2159322-9263954
Ringworld Larry Niven
http://images.amazon.com/images/P/0345333926.01.LZZZZZZZ.gifThe gnome panel applet reads in CueCat scans, looks up the :Cue at DCNV servers, and redirects Netscape to the suggested site, if any.
> What does their commercial software do exactly?
The same thing mine does, without the amazon lookup and with some annoying GUI features, like a tabbed CueCat panel.
> How many lines of code?
1258 according to "cat cuecat-applet.c cuecat-applet.h decode.c decode.h libcue.c libcue.h | wc -l"
Michael makes another interesting point in a seperate e-mail
When they sent the letter (Aug. 30), my software did not touch the DCNV servers to look up :Cues. It simply decoded the data, and if an ISBN number was scanned, the panel applet made Netscape go to the Amazon page blindly: http://www.amazon.com/exec/obidos/ASIN/[isbn number here].
So it was not the use of DCNV servers they objected to, but the mere decoding of the output of the cuecat. I didn't release the :Cue and Amazon lookup-enabled version until yesterday (Aug. 31), when the FedEx letter arrived by overnight delivery.
Thanks to Michael for taking the time to answer this stuff. It's pretty scary when the stuff that you have can't be poked at without a corporation demanding you stop. Imagine if Ford had said you can't open the hoods of your car a hundred years ago.
Update: 09/01 02:49 PM by CT : Freshmeat has a perl script CueCat Decoder that will also decode the CueCat's output.
Update: 09/01 02:57 PM by CT : Russel Nelson pointed out that Lineo's Driver has also been taken down following a cease and desist from Digital Convergence (CueCat's parent).