Dinosaur Forced to Evolve

For many years — nine to be exact — I have used Sidekick 98 a calendaring / to-do-list program that I am very fond of. I particularly like the way it allows me to define multi-day projects (e.g. trips out of town) with a bright text bar that extends across the dates and makes a month at a glance easy.

Like other rabid Sidekick 98 fans, I accept no substitutes: Sidekick 99 was a lousy, stripped-down nonfunctional mistake. Sidekick 2000 or whatever they called it wasn't even worth thinking about. And then Starfish Software cratered. Someone got them to do a Y2K patch, which was necessary, and I thought I was good for long while.

I sure didn't expect that there would be a Year 2006 bug. Yes, even with the Y2K patch, Sidekick 98 gets very unhappy about dates in 2006 and 2007.

So it may be that the time has come to find myself a nice iCal compliant calendar with good privacy features (desiderata that leave out the two biggest contenders, Outlook and Google Calendar).

Hard to make the move, but getting harder not to. And hard too to pick what to move to. Whatever I pick has to be something I can have resident on both office and home desktops, with data transferred via a USB drive (can't be solely via the net since I want it on my laptop too, and that's not always in use where there is internet access).

Nothing seems to offer the great color-coded monthly views I've gotten to depend on. But the two leading contenders are scrappy Rainlendar and sleek Essential PIM. (I don't think I like the look of Time & Chaos, which is more contact manager than scheduler, so that's a third, outside, choice.)

Advice anyone?

This entry was posted in Software. Bookmark the permalink.

5 Responses to Dinosaur Forced to Evolve

  1. so the code went final in 1997? sold in ’98 there was a year 2000 fix… and now you are having problems in 2007/2008 I cannot help but wonder if the year 2000 fix was merely someone going in and remapping 2007/08 back to ’97 ’98, thus keeping the same table. coincident that the bug is at +10… probably not.

  2. Michael says:

    According to a posting dated 29 Jan 06 in this thread in the sidekick users’ forum, the problem is complex and weird:

    It is possible to change the highest end-date in order to add entries with a date after 2005-12-31. Now I can choose dates like 2006-01-30. This is good news.

    However, TrueSync Desktop itself has a _very_ weird internal date format for ToDo entries, which actually is different from the internal date format for Call entries.

    The _very_ weird internal date format format is as follows:

    It is a 32 bit number composed of following bits (MSB to LSB):

    1y0ddddd 1yyymmmm 10000000 10000000

    yyyy are 4 bits denoting the years from the year 1990
    mmmm are 4 bits denoting the months from the start of the year
    ddddd are 5 bits denoting the days from the start of the month

    Months start with zero, so mmmm=0 means January, mmmm=1 means February, mmmm=2 means March ….

    so the date 2004-06-29 is encoded as
    yyyy=14 (14 years from 1990)
    mmmm= 5 (5 months from the start of the year)

    As you can see, the bit #3 of the year number (call it “y3”) is already “displaced” (it is not neighbouring to the ohther year-bits).

    The internal date calculation is as follows:

    The “Microdate”-software-component (sitting in “micrdate.dll”) returns an ordinary UNIX-time to TrueSync Desktop (this is a time measured in seconds since 1970-01-01 00:00:00 UTC).

    This ordinary UNIX-time is broken up into (year,month,day of month,hour,minute,second). However, year is measured here as years from year 1900. So year 2007 is represented as number 107. TrueSync desktop takes this year and subtracts 90 from it to create year2 (year2 is an 8-bit-value). So for year 2007, it calculates year2 = 107-90 = 17. For year 1994, it calculates year2 = 94-90 = 4. For year 1989, it calulates year2 = 89-90 = 255. (!) (This is unsigned 8-bit-subtraction, so negative values “wrap around”).

    Then TrueSync Desktop compares this value (year2) wether it is greater than 7. If year2>7 (this is true for years from 1980 inclusie to 1990 exclusive and for years from 1998 on), the bit y3 is set to 1, otherwise it is set to 0. The other bits y2y1y0 are set to the lowest 3 bits of year2, the highest 5 bits of year2 are silently dropped.

    for year 2004, yyyy = 0b1110 = 14 meaning year 2004
    for year 2007, yyyy = 0b1001 = 9 meaning year 1999
    for year 1994, yyyy = 0b0100 = 4 meaning year 1994
    for year 1989, yyyy = 0b1111 = 15 meaning year 2005

    This fully explains the odd behaviour when selecting different years on the ToDo entry dialog, resulting in other years than intended.

    However, this also makes things more problematic. Unlike in many other date formats, the date format

    1y0ddddd 1yyymmmm 10000000 10000000

    has no obvious place where to store additional year information. Whoever created this particular part of TrueSync Desktop or Sidekick (this very weird and inusable date format) must have been very very stupid and inexperienced. sad

    Maybe the ‘0’ in “1y0ddddd” can be set to 1 do represent dates beyond year 2005, but this is unkown.

    Interestingly, the Call entry list (the listing of whom to be called up to which limit time) below the ToDo entry list uses a different date format, which basically is as follows

    10000000 1yyyyyyy 1mmmmmmm 1ddddddd


    yyyyyyy is the number of years since year 1900

    The Call entry date format is actually a bit different (I have not found it out yet, as the Call date format was not my objective), but what counts: it leaves enough room for additional days beyond 2006 (namely up to year 2027).

    It is notable that actually there are two different date formats for no apparent reason. Maybe different software developers worked on different parts of SideKick|TrueSync Desktop. It may also be that these measures were taken to obfuscate the data format – to make it difficult to create compatible software. I do not know. Using two different date formats in the same software application als also very stupid (as this increases costs and bugs and interoperability problems).

    To summarize: there is not much hope that any ToDo list entry can have a year 2006 or greater as part of its expiry date. (However, if any user manages to create such a ToDo list entry, please write me.)

    But there is hope that one can use the Call entry list to simulate ToDo entries, including expiration of entries and so on.

    And, as noted later in the same thread, on 4 Feb 06,

    If one changed the year base from year 1990 to year 2000 (in every function operating on the weird dates), one would have another 10 years. However, the meaning of current date entries would change (so, for example, old ToDo entries would become new ToDo entries).

    But even if that was not a problem, I’m currently unable (lack of time) to locate every function which translates ToDo due dates to various other date formats (like to the “micrdate.dll” date format or the date format used to display the due date in the due date column).

    Talk about legacy code!

  3. Bret Fausett says:

    I am particularly fond of Trumba for calendaring. It’s an online calendar (though it can sync with desktop apps), and I like it because (a) my wife can put things on my calendar (and vice versa); and (b) it is available anywhere. (http://www.trumba.com). I’ve been using it for a couple of years. I also like Ta Da for my to do list, for the same reasons (http://www.tadalist.com).


  4. Michael says:

    Trumba has recently raised its price to … $100/month. I will pay for a great calendaring app, but one-time, and we’re talking at most two figures, not three.

    The recent price increase (from 9.95/month) has many users up in arms. The company seems to have shut down its blog (blog.trumba.com), perhaps because of comments from angry users?

  5. LACJ says:

    Ha a 10X price increase? Oh, that’s going to go over real well.

Comments are closed.