The Schedule application is much weaker than the corresponding PalmOS app. (And it's incomparably weaker than DateBk4, which is what I'm used to using on PalmOS. DateBk4 is an utterly fine piece of software.) For one thing, the Schedule application provides fewer views on your calendar than Datebook does. The PalmOS Datebook app lets you see a weekly view as well as a monthly view and a daily view. And really, the Agenda's monthly view isn't really a view of your schedule so much as a navigation panel; it tells you (by underlining and displaying dates in bold) whether or not you have an appointment on a particular day, but it gives you no sense of how many appointments you have or when they are as the PalmOS app does. That's one bit of information per day.
The Schedule application does provide a compact list view, which starts with today's appointments and shows you as many as will fit on the screen (which might be a week's worth if you don't have a lot of appointments). However, it's very slow.
That actually brings me to the major complaint I have about Schedule - it's just abysmally, almost unusably slow if you have a realistic number of appointments. (At least for me. I have a lot of repeating appointments, and I have a suspicion those may be what are killing it.) It takes me about two seconds to go backwards or forwards a day in the daily view. It takes me about twenty to forty seconds just to bring up the month view! And that's the only (straightforward) way to go directly to another date without traversing all the days in between! And then if I need to go forward a couple months to find the date I want, it's another twenty to forty seconds per month before I can tap on the date I want. So if I want to jot down an appointment (or just check to see if I have any conflicts on a particular date) later in the year, it could easily take me more than a minute just to get to the right date! I recently found a workaround (described below), but it's extremely non-intuitive, and Agenda is really going to have to fix this if people are going to actually use the Schedule app.
(Update 2001.07.19: I just tried the Schedule app with a recent SNOW romdisk from http://www.desertscenes.net/agenda/snow/. In general, SNOW speeds up the Agenda quite a bit. However, it has very little effect on the speed of Schedule with my appointments. So while you can expect that SNOW romdisks will make the Agenda in general faster, they don't have a whole lot of effect on the really slow parts of the Schedule app.)
It seems to me that the Schedule app is so slow at least partly because of its handling of repeating events. I haven't taken a thorough look at the source code, but I suspect that it may be processing all the repeating events to see if any of them fall on the current date for each date it cares about. To display a new date in the daily view, that would involve a linear search of the repeating events - not the most efficient thing imaginable, but not ridiculous. But for the monthly vew, that would mean that each repeating event would need to be processed 28 to 31 times (for a net result of just one bit of information displayed per date), and that would account for the monthly view being so incredibly slow. If my guess is correct, it ought to be possible to improve that tremendously by caching the information from one pass through the repeating events. That would mean that viewing a single date would take a couple seconds, and bringing up the month view would take three or four seconds. That's still way to slow, but it would be enough that people wouldn't yearn for a paper day-timer :-), and I'm sure there are other speed improvements that can be made.
Assuming my guess about what's going on here is correct, a simpler, quick-and-dirty fix would be to modify the month display code so as not to highlight dates with an appointment. It looks like you can do this by commenting out three lines (starting at line 300) in the Multi_View::update_month_view method in aps-schedule-1.0/view.cxx as indicated:
void Multi_View::update_month_view() { // int flags[31]; // get_events_flags(flags, cal_date()); // event_calendar->day_flags(flags); static char tmp[64]; sprintf(tmp, "%s %d", _(month_name[event_calendar->month() - 1]), event_calendar->year()); caption->label(tmp); caption->redraw(); event_calendar->update(); time_t t = time(NULL); current_date = make_time(t, event_calendar->day(), event_calendar->month() - 1, event_calendar->year() - 1900); }I've confirmed under Linux/Intel that these changes stop the month view from boldfacing and underlining dates with appointments, but I haven't yet gotten it cross-compiled for the Agenda, so I can't check whether it actually makes the sort of speed difference I'd expect. Also, the binary I produce occasionally segfaults, so I seem to be breaking something else as well.
The right solution long-term, in my opinion, would be a `Month' entry that produces the current month view (ideally with more useful information per date, and with a progress bar to let you know that it's not just hung when it takes the better part of a minute to display a month), and also a `Go...' entry that just pops up a bare-bones date picker - basically, the month view without the event highlighting. The `Go...' would be what you'd normally use for navigation, and the `Month' would be used to actually get an overview of your month's appointments (assuming that's useful to anybody - perhaps there are people who average fewer than one appointment a day, but I don't know any :-) Perhaps the Agenda's greyscale capability could be used by displaying dates in shades of grey depending on how many appointments they had. Something like the Palm's morning/afternoon/evening appointment display would also be useful. Personally, I love DateBk3's ability to use icons to remind you what particular events you have on a particular date in its month view.)
Screenshot 4 | Screenshot 5 | Screenshot 6 | Screenshot 7 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Schedule (Today) | Schedule (Month) | Schedule (Journals) | Schedule (Page) |
Screenshot 8 | Screenshot 9 | Screenshot 10 |
---|---|---|
![]() |
![]() |
![]() |
Schedule Edit | Datebook time set (PalmOS) | DateBk4 time set |
Since the Agenda uses a little numeric field to represent which weekday of the month the event should repeat on, it would be nice to allow negative numbers to represent counting from the end of the month `1' would be the first (e.g.) Sunday; `5' would be the 5th Sunday if there was one, -1 would be the last Sunday, and -2 would be the second-last Sunday. It's a perverse organization that schedules events on the third-last Sunday of every other month, but I know some perverse organizations. :-)
By contrast, under PalmOS you tap on the time to change it, bringing up a Set Time dialogue box (see Screenshot 9 above), which lets you set times within 12 hours of the current time with at most two taps (one if your time is on the hour). At most, it will take five taps to set any time: one to bring up the Set Time panel, one to scroll the hour field, one to set the hour, one to set the minutes, and one for `OK'. On the other hand, the standard PalmOS time selection box only gives you 5-minute resolution.
The DateBk4 time selection box in Screenshot 10 above is faster and more complete; it lets you set any time without scrolling, in 3 taps for hour resolution, 4 taps for 5-minute resolution or 5 taps for one-minute resolution. I'd love to see that borrowed for the Agenda.
Also, the Agenda's `Journals' can't repeat, so if you want to create US Independence Day (July 4 every year) as a repeating event, you have to assign a time to it.