Wednesday, May 1, 2002

Hacks and the enterprise

POWER USER POWER

By Michael Connick

This is the first article in a series on using hacks to extend the power of your Palm handheld in the enterprise. This article will introduce you to the concept of the hack and discuss hack management software. Subsequent articles will cover three hacks that I use on my Palm handheld: LapTopHack, MegaWiki, and MacroPlay. Any or all of these can be used to greatly increase the power and usability of your Palm handheld as an enterprise tool.

What in the world is a hack?

A hack is a special type of program that extends the capability of the Palm OS. Although sounding somewhat sinister due to its closeness to the term "hacker," hacks are simply operating system extensions that can give your Palm handheld new and powerful capabilities.

Rather than referring to a hacker, the term hack refers to a clever and non-traditional programming approach. The hack is really quite similar to the extension of the Macintosh OS, and it serves the same function. You can think of it as a simple plug-in to the Palm OS that gives it new capabilities.

Who came up with the idea of hacks?

An MIT student by the name of Edward Keyes created a technique for taking advantage of the fact that the Palm OS invokes certain of its functions through an indirect trap table. Instead of directly calling these functions from the operating system code, they're invoked through a trap table containing the address of each of the functions. Edward discovered that by replacing a trap table address with an address pointing to code he wrote, he could have his own code executed before the operating system function was performed. He called these special programs, which replace trap table addresses and execute custom routines, "hacks".

He also discovered that he needed a special manager program to control the setup and execution of hacks. This he called HackMaster, which was the first hack manager program.

What can hacks do?

In general, hacks do two things. They improve upon existing operating system functions, and/or they provide new functionality.

For example, the three hacks that I use on my Palm handheld utilize this ability to extend the device's operating system in the following ways.

LapTopHack

LapTopHack (at http://home.columbus.rr.com/nevai/palm/) allows you to make fuller use of a keyboard with your Palm handheld. If you currently use a keyboard with your Palm handheld, you'll have undoubtedly experienced some frustration with the fact that you regularly need to remove your hands from the keyboard and use your stylus to perform many Palm OS operations. The LapTopHack provides keyboard commands for most of these stylus operations and thereby makes your keyboard much more effective and easier to use.