Palm’s Monty Boyer on Developing for Pilot
From the Original Pages
Click a page to enlarge · Alt-click to open the full issue
Pen-Based Computing. What was your inspiration for creating a partitioned operating system?
Monty Boyer. Our experience in creating desktop connections for other handheld systems taught us that it is difficult to do a great job at data sharing and synchronization. That capability is usually given low priority as a feature of a handheld system and often created as an afterthought after the product is complete.
We realized that the way to do it really well was to design the system for this purpose from the beginning. This means being able to manage both sides of the connection to optimize the efficiency of the data transfer and to optimize the efficiency of the synchronization task.
“We realized that the way to do (data sharing and synchronization) really well was to design the system for this purpose from the beginning.”
Pen-Based Computing. Could you give us a bit more insight into conduits. What does the vertical application developer encounter when attempting to integrate a desktop-based information system with Pilot in terms of protocols and data formats?
Monty Boyer. We have tried to make the task of the conduit developer as simple as possible. We provide a high level SyncManager API that a conduit uses to access data on the Pilot handheld. This API isolates the conduit from all the intricacies of the data communication protocols and from the operating system on the handheld.
This API presents a straightforward C language interface that provides functions to create, delete, read, write and otherwise manipulate application data on the handheld. The functions are oriented towards support for activities that conduits need to do, such as the ability to read the next data record that has been modified since the last synchronization.
The format for application data includes both standard system data and application specific data. The system data includes a unique identifier for each data record and a collection of status flags that indicate, for example, that a record needs to be synchronized or has been deleted. The application specific data can be of any format. The built-in applications all use highly compact data formats but the data is not compressed.
Included in the tool kit for conduit developers is a collection of code that can be used to easily extract and transform the data records for the built-in applications to and from their native formats.
Pen-Based Computing. Is information stored in volatile or non-volatile memory on Pilot? What are the implications for critical data captured for an application before it is synchronized with the desktop?
Monty Boyer. Data is stored in “semi-volatile” memory. By this I mean that the memory is being maintained by the two AAA batteries in the Pilot. We expect these batteries to provide approximately three months of operation. When the batteries begin to run low, the system alerts the user with warnings. (In addition there is a battery gauge that the user can see very easily.) When this happens a HotSync should be performed as soon as possible to back up the Pilot data.
If the battery voltage gets very low the system will automatically shut down and refuse to restart until new batteries are provided. Pilot will keep all the data for approximately 3 minutes while the new batteries are being installed. If the batteries are removed for an extended period of time, all the data on the Pilot will be lost. However, the next HotSync process will restore the data from the desktop.
Pen-Based Computing. The memory manager employs a database model using “chunks” of data less than 64K. Is this the practical limit for a single piece of data, such as a manual or electronic book? How would a developer get more than 64K of domain specific information into the device?
Monty Boyer. The 64K limit is for a single record of information. A nearly unlimited number of records can be collected into a single Pilot database. It is an application design decision how it can best use this structure. For example, the built in Memo Pad application stores each memo in a separate database record. This allows each memo to be several pages in length and for a large number of memos managed by the application. The built in To Do List application stores the description, priority, due date and other information for a to do item as variable length fields within a single database record.
If an application requires more than 64K for a single unit of data could manage that be creating linkages between multiple database records via the unique record id.
Pen-Based Computing. How does Palm OS’ database model compare with the frame and soup-based model of Newton? In other words, is it equally easy for any application to access all the information stored on Pilot?
Monty Boyer. The Palm OS database model is simpler than Newton’s. Each database is owned by a specific application and contains data in an application specific record format. Each database record also contains standard system information that allows one application to access data owned by another application. This is used by the Sync application on Pilot to perform all the synchronization tasks without requiring the owner applications to get involved.
“The Palm OS database model is simpler than Newton’s. Each database is owned by a specific application and contains data in an application specific record format.”
In addition, Pilot applications are designed to be able to provide services to the system and to each other. This is used on Pilot to provide the system wide search facility. Each application can provide an entry point that the system can call to ask the application to search it’s database for a string of text.
Pen-Based Computing. Why doesn’t Pilot support “ink” input. Is it related to memory management issues?
Monty Boyer. Pilot’s memory management and data storage facilities are flexible enough to handle ink data. We choose to not include ink mostly for lack of support or importance of ink on desktop computers. It is certainly possible for a Pilot application to provide support for ink data.
Pen-Based Computing. Does the memory system need to perform “garbage collection”?
Monty Boyer. The memory manager does do automatic compaction of free memory when necessary.
Pen-Based Computing. Is Palm OS object-oriented by design?
Monty Boyer. No, although its design is certainly influenced by object oriented concepts and techniques.
Pen-Based Computing. Is the system architected to easily accept third-party recognizers? Is it possible for developers to modify or extend Graffiti, with domain specific symbols for example?
Monty Boyer. Pilot is optimized for Graffiti data entry. Traditional handwriting recognition mechanisms might be supported but currently are not. The Graffiti symbols are system wide and are not available to be changed by a developer. However, Graffiti does include the Shortcuts facility. This provides a way for a user, or an application developer to create Graffiti extensions.
Pen-Based Computing. Are standard (relatively high-level) interface widgets part of the Palm OS, enabling developers to create “standard” looking applications with little effort?
Monty Boyer. Yes. The Pilot system provides many UI widgets including several kinds of buttons, check boxes, text edit fields, lists and popup lists, menus, labels and strings, alert dialogs, tables and forms. In addition higher level, combination widgets are provided for time and date selection, Graffiti status indication, online help and the system find facility.
Transcribed from Pen-Based Computing, Volume 6, Number 3 — March 1996. Pages 4, 5.