zPIM documentation

 

What is zTodo?

What is zSync?

What needs to be installed?

Why donate?

Screenshot – Main screen

How stable are these programs?

Syncing for the first time

Add / Modify Detail Screen

Categories

How to add / modify a task

Other zTodo usage notes

Why not use the Palm task list manager that runs under the Garnet VM?

Can I sync across the internet?

How does it work (technical details)

Outlook Security Prompt

You are obvious very organized. How do you use all of the components you have available?

How to Install “Module2.bas”

How to install Todo.oft

Outlook Views

Outlook Forms

Can the programs run on other platforms?

I get “Connection Fails” on my Nokia

Are there alarms?

Programming Details & Acknowledgements

Optional setup

Next version

Hey, I wrote a program too and I would like to distribute it. How do I do that?

What is zTodo?

It is a To Do list manager, modeled after the task list manager from the Palm® platform. It syncs with Outlook on Windows using the zSync program. There is a Windows component to this program that does the syncing between the two programs.

What is zSync?

This is the program that communicates with Windows to move files back and forth between the Nokia and the Windows computer. There is a Windows component to this program that is always running and listening for a client (Nokia) to make requests.

What is zContactSync?

This is a set of programs that will sync Outlook contacts with GPE contacts. The program that runs on the Nokia, dumps the GPE contacts into a format that can be processed on the PC. The PC portion then processes this file against Outlook. The updates are then sent back to Nokia. Additionally, an address book is created for Claws mail (if there were any changes to any email addresses).

What is zCalSync?

This is a set of programs that will sync Outlook contacts with GPE calendar. The program that runs on the Nokia, dumps the GPE calendar into a format that can be processed on the PC. The PC portion then processes this file against Outlook. The updates are then sent back to Nokia.

What is zNotesSync?

This is a PC program that will sync Outlook contacts with mNotes. The official mNotes program does not maintain a ‘last modified date/time stamp’. I am working with the author to get this changed, but until then you will have to download the special version on of mNotes if you want to use zNotesSync.

What is zExpenses?

This is a PC program that will dump Bramblesoft Expenses data to the PC. It will dump the data in time groupings (eg. Quarters). Run the program without any parameters (eg. Double click on C:\Program Files\Zon Utilities\zToDo\zExpenses.exe) and select the Setup tab. The duration of the time grouping can be specified. How long to wait until after the end of the period is the delay field. For example, I use quarterly and 5 days of delay.

What needs to be installed?

zTodo can be installed on the Nokia and run as a todo list manager as a stand-alone application. If you want to sync with Outlook, you need to install the zSync application on the Nokia, the zSync application on Windows and the zTodo application on Windows. The PC side of the applications and all of the other extras described in this document can be found at: https://garage.maemo.org/projects/ztodo/

 

zTodo on Nokia requires pysqlite, which might not automatically install. If not, it can be found in http://repository.maemo.org/extras-devel/pool/diablo/free/source/p/pysqlite/pysqlite_2.4.1-1maemo0.dsc or from the Application Manager on the N8xx and selected python2.5-pysqlitew v2.4.1-1maemo0 from Browse Installable Applications and install it.

 

zContactsSync on Nokia requires pysqlite (see above) and pysqlite v1. V1 can be installed from http://repository.maemo.org/extras/pool/diablo/free/p/python-sqlite/python-sqlite_1.0.1-7maemo2_armel.deb.

Both the PC and Nokia components need to be installed. It uses GPE Contacts and Claws Mail,

 

zCalSync requires pysqlite (see above) and pysqlite v1 (see above). Both the PC and Nokia components need to be installed. It uses GPE Calendar but does not require it to be installed.

 

zNotesync requires pysqlite (see above) and pysqlite v1 (see above). Both the PC and Nokia components need to be installed.

 

Why donate?

My intention is to sync all Outlook functions on the Nokia – Calendar, Contacts and Notes. As a contractor, I can have more time to be working on these other components. Otherwise it is in my spare time and that will stretch out the development time.

Screenshot – Main screen

How stable are these programs?

They work for me. I have been using them since mid-March 2009 and they are working well. I am running Windows XP SP3 and Vista with Outlook 2003. Nokia N800 running OS2008. I strongly urge you to make a copy of your PST and run for first sync using that copy (setup a separate profile on Outlook would be the simplest way). The programs treat Outlook as the ‘gold’ copy of the tasks. No tasks are deleted from Outlook, unless they are explicitly tagged for deletion on Nokia. Tasks should not duplicate. Please provide feedback.

 

I have been running zContactsSync, zCalSync, zNotesSync and zExpenses since May 2009. They work for me. Again, Outlook is treated as the master copy, so unless something is explicitly tagged for deletion on the Nokia, it is not removed.

Syncing for the first time

zTodo on Nokia:

You need run zTodo on the Nokia at lease once to create all of the support files, database etc. before doing the first sync.

zCalSync

You must run GPE Calendar at lease once before Syncing calendars.

zContactSync

You must run GPE Contacts at lease once before Syncing contacts. You don’t have to have or use Claws mail, but if you do, zContactSync will replace the address book.

zNoteSync

You must run mNotes at lease once before Syncing notes.

zExpenses

You must run Expenses at lease once before Syncing Expenses.

 

zSync on Nokia:

Run zSync on Nokia and select “Setup Parms”. Select, by checking off, which application to sync. Only use the “Sync Manual” for debugging purposes. Click Save to use these parms every time; click ok just to use for this session (and revert back to the saved parms after restarting).

Type in IP address of the computer you which to sync with. Anything after the first space is ignored, so I enter something like “192.168.2.2 – Family” so I know which computer I am syncing with (I sync with 2 different computers – that point to the same Outlook, but not at the same time). zSync will remember the last 5 addresses entered.

zSync on Windows

After you install it, you will need to run the program. Click on Start | All Programs | Startup | zSync (or just reboot). The program will appear in the system tray as  Left click, or right click and select Open Console. Click on the Setup Tab. Port, userid and password must be the same as zSync (see Optional Setup below). The temp directory needs to be the same as whatever is setup for zTodo (see next paragraph). Click on SAVE to save the setup parameters and X to send the application back to the system tray.

zTodo on Windows

You will find this program in the program file directory, probably C:\Program Files\Zon Utilities\zToDo

Double click to run the program  Click on the setup tab.

Outlook Folder Name is the Task folder in Outlook.

DB path is the location of the intermediate database that is used in the syncing process. This should do someplace, like your documents folder, so it is backed up and kept safe. Don’t put into a temporary directory.

Temp path is the same path that was specified in zSync setup.

Outlook Form is the name of the form that is used to display tasks in outlook. If you use the default form, leave this field blank. See the item below regarding Outlook forms. You must proceed the name of the form with a . (eg. “.todo” – without the quotation marks).

Click on save.

Close the ztodo program. It will be launched automatically when zsync on Nokia requests the zsync database.

 

All ready to Sync? Make sure that zSync is running on Windows (is it in the system tray). Start it up if it is not. Start up zSync on Nokia and connect to the network. Enter the IP address of the computer running zSync. Click the Sync button. zTodo should pop up on Windows and start the sync process. The first sync will be slow, because Outlook needs to process each task to load into the intermediate database. Subsequent sync’s will be much faster. You can open the zSync Console to see what is happening if things are not going as I described.

Add / Modify Detail Screen

Categories

To add or edit categories, select the “Edit Categories” from the menu on the main screen. To rename, select a category, type a new name and click “Rename’. To add, type the new category and click ‘New’. To delete a category, select it and click “Delete”. There is not tight binding between the categories and the tasks. If you delete a category, the task records remain with the old category name. You just won’t be able to add any new tasks with the old category.

How to add / modify a task

Click the add butt1on + to add a new task, or click on the subject of the task to bring up the edit detail screen.

Once in the “add / modify detail” screen, select a category from the drop down list, priority from the drop down list and enter the subject text. Click on the Note button to add additional text with the task. Check off the delete box to request the item to be deleted. Note that the item is not deleted if it exists on Outlook. At the next sync, the records flagged for deletion will be removed from Outlook and then deleted on zToDo. In the meantime, the deleted records can be excluded from the being shown on the main screen by unchecking the menu item “Show Deleted”.

Other zTodo usage notes

When “Show Headers” is checked in the menu, you can drag the divider bar between the columns to resize.

From the main screen, you can mark tasks complete and change the priority. Just click on them.

Over to the far right is the notes column. The column is not labeled. If there is a note on the task, an icon will appear. You can click on this icon to display the note. You don’t have to go to the detail screen to edit the note.

 

You cannot delete a recurring task on Nokia. This will have to be deleted from the Outlook side.

zContacts / zCalendar usage notes

Because Outlook is the master data repository, deletions are only done if explicitly requested on the Nokia. To delete a Calendar record, change the description to “d+e+l” (no quotes). Do the same for the name field in contacts. In Calendar, if you delete an occurrence of a recurring event, this is considered a modification and not a deletion and it will be synced to Outlook.

Why not use the Palm task list manager that runs under the Garnet VM?

I started with this, but found out that it was not using the same version of the syncing software that my old Palm TX was using. If I marked a recurring task complete, then it deleted the task, and it no longer repeated.

Can I sync across the internet?

I haven’t tried it, but I don’t see why not. You will have to open the port (default is 5962) on your firewall and have it point to the Windows machine that runs zSync. Let me know how it works for you if you try it.

How does it work (technical details)

Zsync on Nokia copies the ztododb file to the Windows computer and then requests ztodonew.db to be returned. Zsync on Windows first deletes this file, runs the program (associated with ztodonew.db (as specified in zsync.txt), which is ztodo, and waits for ztodonew.db to show up.

Ztodo on Windows has 3 stages. The first reads all Outlook tasks and updates the intermediate database. The second stage reads the Nokia ztodo database (that was copied to the Windows computer by zSync) and updates the intermediate database. The third stage processes the intermediate database and makes changes to Outlook and the ztodo database. When the ztodo database updates are complete, the database is renamed to ztodonew.db. zSync has been waiting for this file to appear, and once it does, the file is sent to the Nokia.

zToDo and zSync on Nokia have an interlock so you cannot sync if zTodo is running and the database is in use.

 

Tasks in Outlook are modified in two internal fields. The user property “PrimeKey” is created and used to match records with the intermediate database. The “SchedulePlus field is used to keep the Nokia priority (1-5) since Outlook only supports 3 levels of priority.

Outlook Security Prompt

You will get Outlook complaining that a program is trying to access the records and should it be allowed and if so, for how long. You can’t say always allow this program. I have installed “Advance Security for Outlook” which can be found at http://www.mapilab.com/outlook/security/ and this allows you to specify to allow programs to run against Outlook and stop the security prompt.

You are obvious very organized. How do you use all of the components you have available?

In Outlook, I created a sub-folder to “Tasks”, called “Master Tasks”. On tasks, I use the view ‘Review Priorities – All’ with Tasks and “Review Priorities” on Master Tasks. See below for creating these views. When a task is opened it is displayed with the ‘Todo form’ (see below).

 

Once a week (usually on Thursdays), I review the tasks in “Master Tasks”. If there is a task that I would like to do in the following week, I set its priority to be High. Once I have reviewed all of the Master tasks, I then run the program that is in “module 2.bas” (see below for installation instructions) by clicking on its icon. This program will move all priority 1 tasks in Master tasks to Tasks.

 

After I have all of the tasks for the week in the Tasks folder, I sync with Nokia. Once Synced, I review all of the priorities. I run with headers off, and only with the subject column showing (no due date or category showing. I also do not show completed or deleted tasks). I go through each category and review the tasks. Tasks that were newly added to Outlook will have a priority 3 in Nokia. I try and never have any priority 3’s in Nokia – that way I know I have looked at all of the priorities. Priority 1 is the stuff I want to do that day. Priority 2 is stuff I want to do tomorrow or even today if time allows. Priority 3 I try and not have anything in. Priority 4 is for later that week. Priority 5 means that I am deferring that task. After I sync the next time tasks with priority 5 are set to priority Low in Outlook. The next time the Module2 program is run, all Low priority tasks are moved to Master Tasks and their priority is changed to Normal. All completed tasks in Tasks are moved to Master Tasks.

 

Special note regarding recurring tasks. When the due date for that task will happen before the next Sunday that task will have its priority changed in Master Tasks to High and this will cause it to be moved to Tasks. Also, if a file is created with the name of ‘d:\temp\override.txt’, then you will be prompted for an override date that tasks in master tasks would be moved to Tasks. I use this when we are going to be away for a few weeks, so I see what recurring tasks would come up while we are away.

How to Install “Module2.bas”

In Outlook, click on Tools | Macro | Visual Basic Editor. Click on Modules and then from the File menu item, select Import File. Once you have imported module2.bas, save your changes. In Outlook again, right click in the toolbar and select Customize. Select the Commands tab and scroll down and to Macros. Module2 should be available. Drag it up to where you want it on the toolbar. Right click it to customize its appearance – eg. turn text off and give it an icon. Once you close the customize box, you will be able to run the program.

How to install Todo.oft

This has been not tested. Please provide feedback. In Outlook, select Tools | Forms | Design a Form. Select “User Templates in Filesystem” and click browse to where you stored todo.oft. After the form is opened, you need to make a change. Right click on the categories input box and select the Value tab. In the Possible Values field, enter what categories you would like. Separate them with semi-colons. Once done, click on Tools | Forms | Publish As and select Tasks for “Look In”. Select a name of “Todo” and click Publish. Back in the main Outlook screen, right click the Tasks folder and select Properties. In the dropdown box next to “When posting to this folder use”, select the Todo form you just created. Do the same for ‘master tasks’.

Outlook Views

Review Priorities: Fields are: Priority, Categories, Complete, Subject, Due Date, Recurring. Group by is: Priority (show field in view checked) descending, Categories ((show field in view checked) ascending. Sort is by Subject ascending. Filter is complicated: Status not equal to Completed; Due Date does not exist; Due Date on or before now(); Due Date in the next 7 days.

 

Review Priorities All – is the same as above, but without the filter.

Outlook Forms

If you use an Outlook form for your tasks, you MUST add the user-property ‘PrimeKey” to the form. Otherwise the field is not visible to the program and syncing will not occur properly.  

Can the programs run on other platforms?

I don’t see why not. I did all my testing on UBUNTU, so I know it runs there. Not sure the deb file will install it properly, since that is tailored to the Nokia. I would be interested to hear if someone gets it running on the ASUS EEE platform.

I get “Connection Fails” on my Nokia

The connection seems to go to sleep some time. Try running it again. Still not working? Open up a web site in the browse and then try again.

Are there alarms?

No. Reminders on tasks in Outlook are ignored.

Ztodo running on Windows if very slow – what can I do about it.

It will be slow the first time, while Outlook is analyzed and copied to the intermediate database. After that it should speed up dramatically. If is remains slow, make sure you read the section on Outlook forms, as that can cause things to be slow.

 

If it was fast and then got slow, run the SCANPST program from Microsoft to make sure that your PST is not corrupted. If you ever have to cancel Outlook or anything like that, it can get corrupted.

Programming Details & Acknowledgements

Firstly, I could not have done this without Gene Cash’s task program to use as a starting point. I also could not have done this without Rob Brewer’s port of that program to OS2008. I learnt a lot writing these programs, here are some notes so others don’t have to go through what I did to use similar facilities. ZTodo on Nokia is written in Python and uses a generic tree view that uses an SQLITE 3 database. Do you know how few examples there are of this? I found one posted by John Stowers and used it extensively. Wrapping text in a treeview is also something not obvious and a post by Boris Terzic of code from PYCHESS provided the answer.

 

The SQLITE 3 database of zTodo is sent to Windows with zSync. zSync on Nokia is an FTP client and zSync on Windows is an FTP server. They are stripped down to only specific functions and the port has been changed to not interfere with regular FTP functionality. The server will only send files to the client if the file name is in the zsync.txt file. This, coupled with the need to a userid and password, makes it secure against improper usage.

Optional setup

Zsync on Nokia

 

You can also change the port that is used to communicate with Windows. The same port must be entered on Zsync on Windows.

You can also override the default userid and password that is used to communicate with Windows. If you can them here, you must have the same values for zSync on Windows. If you have no values here, then the internal defaults are used.

ZSync on Windows

The file zsync.txt that can be found in “C:\Program Files\Zon Utilities\zSync” can be altered to do other things. When zSync on Nokia asks for a file, that filename searched for in this file. When it is found, the program after the equal sign (‘=’) is executed and zSync on Windows waits until the file shows up. You can add other filenames and programs for other applications.

Hey, I wrote a program too and I would like to distribute it. How do I do that?

This section is so people don’t have to go through what I did.

 

To test your application as a package, use pypackager to create a deb file that will install all of the pieces of your application – icons, desktop integration etc. Once you have your application working and it installs to all of the right places on your Nokia, you are ready to share  it.

 

Create a site on garage.maemo.org for your application.

 

Create a home page, like this one, and upload it using a program like RapidSVN (in rapidsvn look at my site to see the structure). Look at the www section.

 

If you don’t already have permission to upload to extras, go to maemo.org\downloads and click on Upload to Extras. Permission can take some time.

 

Create the packages using py2deb on maemo. You cannot use pypackager. There is a sample on how to use this at http://wiki.maemo.org/Py2deb, or you can use my program py2debpgm in the files section. This program assumes that the path to all of your source files is in a subdirectory to MyDocs and is called the same as your application (eg. ztodo). It then reads the input file used by pypackager (so you have to have set it all up in pypackager first). The package name is assumed to be <app>packager (eg. todopackager).

 

From maemo.org/downloads/OS2008, click on “upload to extras”, bottom right of the screen. You will need to supply the three files created by py2deb. (I use the Extras Assistant Wizard – note that it takes a while before showing up in the respository).

 

The program is initially installed to extras-devel. You can test it from there. Browse to the repository (eg. http://repository.maemo.org/extras-devel/pool/diablo/free/z/ztodo/) and test install. If it works, uninstall your application.

 

Promote your package to the extras repository from using the instructions at: http://wiki.maemo.org/. If you application is NOT installed on your Nokia, it will show up in the Application Manager.

 

You can then have the application show up for single button installs by clicking on Add New Application at http://maemo.org/downloads/OS2008/. Everything to setup the application should be straight forward. The entry for the .install file should look like:

 

[install]

catalogues = extras

package   = ztodo

 

[extras]

name = maemo Extras

uri = http://repository.maemo.org/extras/

components = free non-free

 

Change the package name to whatever your application name is.