[Remind-Fans] Forward scanning, how?

David bouncingcats at gmail.com
Sat Oct 31 22:09:12 EDT 2009


On Sat, Oct 31, 2009 at 12:38 PM, David F. Skoll <dfs at roaringpenguin.com> wrote:
> David wrote:
>
>> What I seek is similar to "backward scanning" but I want to go
>> *forward* in time.
>>
[snip]
>>
>>2) why did my test succeed with -1 but fail with +1 ?
>
> Because of the Remind algorithm (described in the slides at
> http://www.roaringpenguin.com/files/download/remind-oclug.pdf) this is
> tricky.
>
[snip]
>
> REM SATISFY [day(trigdate()-30) == 17] MSG Woot!

Hi David

Thank you for your reply. Thank you for providing the SATISFY solution.

In appreciation, I have reflected carefully about my misunderstanding
and offer some suggestions for the manpage to make this clearer. I am
using REMIND 03.01.06

I overlooked the trigger algorithm explanation near the very end of
the manpage. But that is not the whole story. I should have used the
-dx and -dt options to see the reason my attempts failed. It is
counter-intuitive that a sign change in an expression would lead to
different behaviour, but proper debugging by me would have revealed
why.

So I suggest the following brief clues be added be added to the
manpage more visibly, after the "INTERPRETATION OF DATE
SPECIFICATIONS" section and before the "BACKWARD SCANNING" section.

----------begin----------
HOW REMIND DETECTS THE TRIGGER-DATE

Remind starts from the current date (that is, the value of today())
and scans forward, examining each day one at a time until it finds a
date that satisfies the trigger, or can prove that no such dates (on
or later than today()) exist.

Where trigger-dates involve expressions, use of the SATISFY clause may
be required, and the -dx and -dt options may assist debugging.

See the subsection "DETAILS ABOUT TRIGGER COMPUTATION" in the section
"MISCELLANEOUS" for more information.
----------end----------

Also, I suggest that "THE SATISFY CLAUSE" section would improve if you
were to introduce it with a general
statement indicating the nature of situations where it should be used.
It currently lacks that context, and just describes how it works, not
why it is needed.

Also, I suggest that an example similar to my case

  REM SATISFY [day(trigdate()-30) == 17] MSG Woot!

would be a good addition to "THE SATISFY CLAUSE" section because
presently there is no indication that SATISFY can be used without
specifying a trigger (so that every future day is scanned).

I hope these suggestions might be useful to you. Thanks again.

Regards
David



More information about the Remind-fans mailing list