This article was published on Freshmeat.net.
So, you've just gotten a PalmOS-based Personal Digital Assistant (PDA)... now what? Here are some suggestions for open source software / free software (OSS/FS) available for the Palm, grouped into the following topics: electronic books (eBooks), games, miscellaneous software, and how to locate other software. I close with a few comments about the future of Palms. For more information on the advantages of OSS/FS, see Why OSS/FS? Look at the Numbers!
PalmOS is now old, but you can still use them. You can sync a Palm on Window 7 through USB (you have to install a separate driver), and Linux-based systems still sync with them just fine.
A major use I've found for PDAs is for storing information for later use, particularly as electronic books (eBooks), so I'm going to concentrate on how to handle eBooks on PalmOS. The best eBooks are often reference books or books you can read a page or two at a time while you're waiting for something. An 8 Mebibyte PDA can store a lot of text: for example, if you use 7 of those 8 Mebibytes for text, compress the text by 43% (to 57% of its original size) and on average the text is 60 characters per line and 60 lines per page, you could store 3,577 pages of text (7MiB/(60*60*.57)). This would be a typical result when using PDOC, described below; if you use better compression algorithms (such as zlib) you can store even more text. One developer using a zlib-based approach claims that 56.5% compression (43.5% of original size) is typical; if so, that approach would let the same PDA store 4,687 pages of text. My current PDA has a 128MiB external card, which by itself can store over 65,000 pages (128MiB/(60*60*.57)).
However, to use a PalmOS PDA to read documents, you have to install at least one document reader, because PalmOS systems don't come with any built-in programs to read documents. Another complicating factor is that there are many different data formats used for storing documents, and you need a reader that can read the format of the document you're trying to use. Many PalmOS users end up installing several document reading programs.
There are basically three good OSS/FS programs for reading typical eBooks: CSpotRun (which reads the PDOC format), Weasel Reader (formerly named GutenPalm, which reads the PDOC and zTXT formats), and Plucker (which reads the Plucker format, a compressed HTML format). If you're using a Palm-based system, you should definitely install Plucker. Most people should also install either CSpotRun or Weasel Reader; I personally have all three installed. Here's a little information about each one:
At one time, a minor weakness of Plucker (as implemented by version 1.1.14 of the reader) was that large HTML pages (larger than 32k) were broken into multiple pages, which were then linked using hypertext. For some large documents this was unfortunate - you couldn't scroll through the text using the PDA scroll buttons, and you couldn't simultaneously see the text on both sides of a break. Plucker still divides up large HTML pages, but it now lets you scroll through the text and you can see "both sides" of a break. You still see where these breaks occur (there are funny hypertext links connecting each side), and there's a hesitation when the "next" section is being loaded, but these are trivial.
Plucker includes tools so that you can extract web pages (using rules you define) and then sync the results into your PDA. Plucker now has wonderful GUI tools that make this quite easy (the "Plucker Desktop"), as well as command-line tools.
Plucker can have trouble with really badly misformed HTML. In such cases, download the HTML and use a program like "tidy" to fix it up first. I've had good success with commands like this to fix up HTML files:
tidy -m -n -wrap 0 *.html
Again, if you're using eBooks on a Palm, I believe you must get Plucker. Plucker is much more capable, and given how much information in available in HTML, you can do very well with just Plucker. If you want an PDOC reader, deciding between CSpotRun and Weasel Reader is trickier. After all, they both have the same basic functionality: both display PDOC, they both support adding and jumping to bookmarks, rotated text, auto-scrolling, and searching (case-sensitive and caseless). I've compared CSpotRun 1.1.2 against Weasel Reader 1.56, and in my opinion, CSpotRun is better for reading while Weasel Reader has more ``extra'' features and is better for ``maintaining'' PDOC documents. Feel free to install both CSpotRun and Weasel Reader - I do! Here's how they compare:
Important: If you install multiple readers of the same format,
do not just delete one later.
Palms like to associate data with only one program, and if you
delete the program, all of the associated data gets deleted too.
So, if you install both CSpotRun and Weasel Reader, don't just delete
one later without taking special precautions with your PDOC documents,
or all your PDOC documents may be deleted too.
Basic synchronization won't help here; synchronization will automatically
remove the PDOC backup files in your PC, too.
Once you get the eBook readers, you need eBooks to read. The plucker website includes interesting sample documents. Large collections of older classic documents in plucker format can be found at Pluckerbooks (over a thousand), and they have links to other sources of Plucker documents. The Linux Documentation Project (LDP) generates its HOWTOs, mini-HOWTOs, and FAQs in Plucker format, so this is a good source for Linux-related documents. Bandersnatch Unpress includes various freely-available documents in several formats (including PDOC and Plucker), including the US Constitution. Memoware is a commercial eBook company (so they include a lot of documents in different, incompatible proprietary formats that you must pay for), but they also make many free documents available. You might consider documents such as The Art of War by Sun Tzu and The Script to Monty Python and the Holy Grail.
You can also create these data formats if you have the document in electronic form. You can use http://pilot.screwdriver.net, which will automatically convert arbitrary web pages into PDOC format. As I noted earlier, Plucker comes with tools to create readable documents in Plucker format.
Some textual material is easier to use by running specialized readers.
For example, I wanted the Bible on my PDA. If you do too, go to Bible+, which has a Bible reader (GPL license) as well as various translations you can install in it. Unfortunately, due to copyright issues on the translations, you have to pay for many modern translations. However, the ESV is available, and it's excellent. It does let you see two translations simultaneously, as well as searching and jumping to specific verses - I have the ESV, KJV, WEB, and ASV installed for my English translations. Especially nifty is that you can see the original koine Greek, Hebrew, and Aramaic simultaneously with your native language.
Also, I use Pocket Babylon, which is a nice French/English word translation tool (it basically functions like a French/English dictionary). It's licensed under the GPL license - you have to download the source code to find this out. The author hopes to add other languages - please help him out! Also, there seems to be a lack of good public domain word translation dictionaries; help with this general problem would be appreciated. I've found it to be useful.
The normal rules say that on your first move you must make at least 35 points or you get no points. I suggest lowering the starting minimum (e.g., to 15 points). Otherwise, it's easy to have games where the player who was lucky enough to get 35 points first (not due to any skill) is the one who wins the game.
A Z-machine like Frobnitz is merely a player for a game; you also need games to actually play. The Frobnitz release comes with the "original" 350-point Adventure (ADVENT) game that started that craze, which is still a classic game and is a good introduction to the genre. (This is where "xyzzy" entered the culture!). Here's a list of good short games, as well as pointers to longer lists. There are way too many games out there for me to list them all; you can find the good ones by looking at the highest-rated ones at Carouselchain's fiction (IF) rating statistics site and Baf's Guide (at Wurb.com) based on ratings. There are many other versions of the original Adventure available. Other resources include Xyzzy news and Brass Lantern (see Brass Lantern's intro for beginners). You might also look at the Wikipedia article on Interactive Fiction.
By the way, if you decide to create your own interactive fiction, there are some great tools out there. Inform is a particularly good toolsuite; what's especially interesting is that Inform 7 has switched to an English-language-like source code, with Prolog-like semantics underneath - it looks like an especially easy way to create these kinds of games. For more about this, see Natural Language Game Programming with Inform 7 (the Inform 7 white paper "Natural Language, Semantic Analysis and Interactive Fiction" has more technical information). One way to run this in Linux is to use pynform7.
There are many other games, but game preferences definitely vary by individuals. See the section below on locating other software.
Some useful programs I'd recommend are:
There are three weaknesses about Astro Info version 2.5 (the current version as of this writing): (1) it can't show lines connecting the stars in a constellation, (2) it can only show one database at a time, and (3) Polaris (the North Star) is referred to by the less commonly used name "Yilduz", so if you're searching for it, make sure you use that name. The Astro Info developers are aware of these weaknesses - indeed, I get the impression they're working on fixing them - and they don't detract from what's overall a great program.
If you like to fiddle with Python, you can install Pippy. Pippy is a Python implementation for Palms (MIT-style license). I've been trying out version 0.7, and unfortunately it's not very useful yet. As of version 0.7, Pippy doesn't support floating point nor complex numbers (I wish they'd support MathLib!), many important Python libraries have been removed (such as the regular expression libraries), and as far as I can tell you can't write and store files on the PDA itself. Still, this is a work in progress; I hope that the final version will be more feature-rich so that developers can write and run many kinds of useful programs.
For more (general) information on Palm-hosted programming languages, see the IBM review by Mertz and Blais and Palm OS development resources.
There are lots of programs that tutor or manipulate Morse code. abcMorse has a feature list (it primarily features the abcMorse advantages, of course, but it's still a really nice list). abcMorse is a nice program (I like its mnenomics), and lots of its functions can be used for free. Its user interface is generally nice, but it's annoying that you have to go "back" many times to change a setting (why aren't the menu options allowed anywhere?!?). However, as of 2010 it still costs money to use it at full speed. And really, if you're going to bother learning Morse code, you should learn it full speed.
Smart Morse does not have as nice a user input as a tutorial, and it has fewer features, but it's a great program for learning Morse code. In particular, you have to use palm graffitti (instead of pushing an on-screen keyboard) to enter a guess, then "OK"; to move on, you have to press "Next". It does have a reasonable tutorial mode that slowly adds letter groups. You can change the settings so you can learn at full speed, without paying extra. Note that you can set arbitrary lengths in msec; it defaults to pause/dot of 100msec, and dash of 300msec (dash is usually 3x dash), but this is slow, and many think it's a bad idea to learn the characters at such a slow rate. For a words per minute (WPM) of 13, use dot/pause of 92msec and dash of 277msec. For a words per minute (WPM) of 20, use dot/pause of 60msec and a dash of 180msec. (Since T=1200/W where T=length of dash, W=words per minute.)
Morse pilot lets you tap in Morse stuff, so it's interesting once you know Morse code, but it doesn't have a good way to incrementally learn symbols so it's lousy as a tutor. (Its "test mode" is hard to find, and only tests an entire set of letters.. it doesn't add a few at a time.) Morse pilot is now open source software (GPL), and that's cool.
Morse99 takes an absurd amount of space (over 1M; on a Palm with only 8M this is a deal-breaker), and the full version costs money too. Dot Dash doesn't generate sound, which to me is a disqualifier. Light Morse is not a tutor or general-purpose program; it converts Morse to light flashes.
As a tool for editing text, I find PDAs awful without a full-sized keyboard. Anything less than a full-sized keyboard is just too painful to use when entering lots of text - styluses and micro-keyboards just don't do the job. If you're doing a lot of text entry, you might want a laptop instead, since the small screen of a PDA isn't as nice as a laptop's screen. But, if you need both tiny size and the ability to enter lots of text, get a folded-up full-size keyboard for your PDA. I took notes at the FOSDEM 2002 conference using my PDA, and it worked out well. Once I was done, I could put both the keyboard and the PDA in my pockets, something you just can't do with a laptop. However, the built-in Memo Pad application limits each memo to 4096 characters (about one page), so it's a poor approach to entering or editing real documents.
Older versions of this document didn't have much good news to report; the OSS/FS programs for editing text weren't very capable. Happily, for simple text editing there's now a program named SiEd. It's still in development, but looks quite promising as a simple text editor.
There are other text editors, but I can't recommend them for that purpose. You could use Zurk's ZDoc (GPL license), but you have to break text documents into 4096 character chucks. I know of a variation called "ZDOCm", which doesn't have that limit; I haven't had a chance to try it. You could also use SmallBasic as a text editor. SmallBasic implements a variant of the BASIC programming language, and includes a surprisingly capable integrated development environment (IDE). Its IDE includes the ability to import and export PDOC format, and it can edit large files (each line must be 4095 characters or less, which is not restrictive at all for a text editor). Unfortunately, while SmallBasic is a really friendly IDE for program development, it's unpleasant as a general text editor; for example, you have to retype filenames (instead of choosing from a list) when importing or exporting PDOC files. Also, SmallBasic is still in an alpha stage of development and isn't really intended as a general-purpose text editor for large documents; when testing it with large files I managed to crash it twice (and one of them required a data-losing reset). Perhaps the SmallBasic developers will improve this program so it can be reliably used as a text editor.
Currently, if you must edit large documents that aren't simple text (e.g., in MS Word format) on PalmOS, you need one of the many proprietary programs that do that such as DataViz's "Documents to Go". I don't see an OSS/FS word processor for Palms in the short-term horizon (since there's no obvious project ongoing to do so), though once a text editor is available it might be expanded to do that later as well.
A good location is freshmeat.net's list for the PalmOS Operating System category. Another good organized location for Palm software that is OSS/FS is http://www.palmopensource.com. If you want free software and don't care if it's OSS/FS, one source is freewarepalm.com, but note that you have to pay to really use much of the so-called ``free'' stuff. If you're also using Linux, you can find useful information from the Linux Documentation Project's Palm OS Desktop HOWTO article (available in many formats including HTML, PDF, and Plucker).
In 2004 I said:
Given current technology, there's a lot to like about Palms. They cost much less than Wince or Linux based PDAs, simply because Palms are designed specifically for the limited memory, display, input bandwidth, CPU performance, and electrical power of today's PDAs. Linux and Wince systems weren't designed from the ground-up for that circumstance, so they require more hardware (e.g., memory and CPU speed) than PalmOS simply to run, and much of their extra hardware is is consumed by the operating system instead of being actually useful. That extra hardware costs more, and even worse, drains the batteries - Palms tend to work much longer on the same batteries.
However, it's quite likely that things will change over the next few years. I expect hardware for PDAs will continue to get better, just as it has for laptops, and then the advantages of PalmOS will be worthless. PalmOS's underlying software design and implementation are awful in many ways; there are many arbitrary and unnecessary limits (especially size limits) that make PalmOS unnecessarily difficult to program. Also, PalmOS' fundamental incompatibility with larger desktop and server operating systems is probably insurmountable (e.g., PalmOS poorly supports files and large text files, making it unnecessarily difficult to interoperate with other systems). And note that PalmOS is not OSS/FS, unlike Linux.
All of which isn't a disaster if you're using OSS/FS applications. The OSS/FS software can be ported to other architectures, and the Linux PDAs in particular will probably attract those ports.
I wrote the above around 2004; by 2007 it became clear that PalmOS had passed its prime. By 2012 Palm had essentially collapsed (in a pretty sad way). And just as I said, if you stuck with OSS/FS, this was much less of a problem.