Using the ToDoList application to do a grocery list
Abstract
Just doing the list is easy, the hard part is sorting by aisle number.
This page describes the general procedure for doing the list,
then using the Sort by Due Date capability
to display the list sorted by grocery store aisle numbers.
Some mention of the freeware Shopper application is made.
Disclaimer
The techniques described here
were developed on a HandSpring Visor Deluxe PDA,
which uses an unalterable ROM containing version 3.1 of PalmOS.
It is believed that the techniques described here
should be generally applicable to all situations,
but it should be noted that some adjustment may be needed
for other devices or for later versions of the PalmOS system.
Basic Grocery List
One ToDoList item is created for each item on the shopping list.
It is convenient to create a new "Groceries" catagory
to segregate the shopping list from other to-do items.
Before going shopping the "Show" button is used
to get to the Preferences window.
"Show Completed Items" is checked and Preferences is exited.
All items will now be visible.
If an item should be bought, it should be UNCHECKED.
If an item is not to be bought, it should be CHECKED.
Yes, this is counter-intuitive, but we are kluging here.
A to-do item for X is interpreted as "make sure we have X",
thus if we in fact DO already have enough of X
the task is satisfied (therefore checked),
and if we do NOT have enough of X the task is NOT satisfied.
When at the store, "Show Completed Items" is unchecked.
Now only the unchecked items will be displayed.
As each item is bought, it can be checked,
and when checked the item disappears from the list.
At the completion of the list, no items will remain unchecked.
This is the basic procedure.
What about sorting by location?
It is possible to put the items into the list
in the exact order they occur in the store.
However,
the synching process disturbs the order of the items.
This falls out from the fact that
the Palm OS "database" abstraction does not maintain a fixed record order,
records in a database are seen as independant of each other.
It is possible to synch the database up to a Palm Desktop,
export the items to an ASCII file,
manually sort the items in the desired order,
purge the database on the Palm Desktop,
import the manually sorted file back into the Palm Desktop,
purge the database on the PalmOS device,
then synch the items down to the PalmOS device.
However, synching still disturbs the item order.
The idea currently under investigation is
to set the "Sort By:" (in Preferences) to "Due Date, Priority",
then supply a set of ersatz due dates to force the sort to the desired order.
(Another idea is to sort by "priority",
but there are only 5 levels of priority,
so at best this would allow ordering by 5 "zones" in the store).
Since the store I use has 24 aisles it is convenient
to assign one day of the month to each aisle.
That is, items stocked in aisle 2 have a due date of 4/2/2001 and
and items stocked in aisle 24 have a due date of 4/24/2001.
The "Show Due Dates" box can be checked in Preferences
to show the due dates on the right side of the display.
What about aisle zero?
So we would like to assign aisle zero
to the fresh produce section of the store,
which logically comes before aisle one.
It doesn't let us give zero as a day of the month.
We could always use January for aisle zero,
February for the numbered aisles,
and March for batteries and silly gossip magazines?
Kvetches, kvetches!
The month shows on the due date display.
If the due date happens to be a current date,
it shows up on the calendar application.
If we use a date safely in the past,
an exclamation point shows on the due date display.
We could set it safely in the future (10 years from now)
but then 10 years from now we would have to push it
even farther into the future.
And it is inconvenient to set far future dates.
Of course,
the aisle number could be added to the item name,
so the due date would not need to be displayed,
but then the item name would have to be adjusted
(in tandem with the due date) when the stock moves in the store.
What about Shopper?
There is an application specifically for this purposea
written by Andrew Webb at ParticleSoft.
We have been in correspondance as to a desired feature set.
The application is presently somewhat rudimentary,
but he says aisle numbers will be added in some future release.
For now the items are displayed alphabetically,
so one could impose an ordering by appropriate naming of the items.
For example, 00 Apples, 01 Milk, 02 Spaghetti.
Note that without the leading zero an alpha sort gives
the inappropriate sequence: 1,10,13,14,15,2,22,24,26
so putting on the leading zero forces a numeric sorting order.
particlesoft.com