The PHP PDA PIMset
It's been said that when you have a hammer, everything looks like a nail. And indeed, this is often true. Unfortunately, this bromide often causes people to put down perfectly functional hammers and start pounding nails into wood using screwdrivers.
Ever since getting my Sharp Zaurus to replace the perfectly functional Sony Clie I had been using up till that point, I've been exploring the various ways in which it can be used. The power of Linux on a handheld is muay strong in the hands of someone who's halfway motivated to use it; between python and PHP/MySQL/Apache I was able to code up solutions for almost any need that I had.
"Hmmm," I mused idly one day. "You could probably write a whole PIM suite using just a web browser."
Three weeks later and the thought was still bouncing around the cavernous, empty shell of my head. Clearly this was something that required further thought.
I'm not entirely sure I'll ever try this, though at least some of the apps below will be created within the next six months. Writing a PIM app is hard work after all. But why, you might ask, would someone want to create such a suite when the work has already been done? I'm glad you asked that. Let's pro/con this...
Pros
- Customization - Let's face it, no two people use their personal information management softs the same way. Writing them yourself would provide a degree of customization that could not be achieved with existing applications.
- Interoperability - Some PIM suites make vague gesturing motions towards the idea of having their applications work together. The logical extension of this would be to customize (see above) how the applications work together for one's own best practices.
- Speed - Apache working with PHP and MySQL can achieve blazing fast access speeds. This is less a factor on a PalmOS device, which keeps everything in flash-memory at once, but is a major factor on the Zaurus which works like a real computer rather than a toy.
- Range of Operation - The Zaurus is a networked device. There's nothing to stop you (and nothing has stopped me) from just accessing it like a server from your desktop machine, letting you use your PIM suite from a sit-down computer and then take that with you (VNC lets you do this with a non-browser-based system, but let's pretend it doesn't for now).
- Backups - Backing up your PIM information is as simple as downloading your MySQL database. With Range of Operation above, synching is not even a necessity.
- Portability - If you move between systems enough, you'll search for applications that work 'sort of like' your old ones on your new system. With a web-system, however, you can run the same apps for as long as you have access to apache/mysql/php.
Cons
- Work - My God, writing a PIM suite would take forever and a day. Is that really how I want to spend my coding free time?
- Alarms - I've not yet looked into how hard it would be to implement alerts with this system. It might be a matter of just letting the system set up a crontab to launch a small PythonQT app to pop up and make a noise; or it might be much, much harder than that.
- Security - My personal server has several PHP apps on it, and I employ a login system for those; with PIM apps that are available via HTTP, a similar system would have to be implemented (though with sessions properly configured, it would only be a factor every time the browser was started/stopped).
And I think that's it. What I'm considering building are...
- Finances - Already built! A simple system that tracks how much money I've got in all my accounts at any given moment; it's saved me a lot of stomach acid and guesswork already.
- Recipe - This is going to be built, whether or not I go ahead with the whole suite. It will store recipes that I want to have access to... and since it will be HTTP-based, I can use my desktop browser and just enter recipes fairly easily (as I have most of them stored on flat files right now).
- Shopper - This is going to be built no matter what. Shopping list function. Recipe will be able to dump ingredients into it.
- To-Do - A basic to-do list. With percentage complete functionality and category storing.
- Addresses - The usual contact information tool that every PDA sports in some flavour or another.
- Datebook - Appointment keeper, that will access functionality from the To-Do list as a secondary function. This might be hard depending on how well I can implement alerts.
That's it so far. There may be more that come to me. I hope you enjoyed this ramble.
Back to ramblings Back to the main page.