[Remind-Fans] allow *1 repeat without any start date

Ian! D. Allen idallen at idallen.ca
Wed Mar 2 14:26:04 EST 2022


A comment followed by a suggested enhancement:

On Wed, Mar 02, 2022 at 08:34:44AM -0500, Dianne Skoll via Remind-fans wrote:
> Well, that's how the grammar of Remind works.  [...]  adding this
> special case would complicate the code and I don't think it's worth
> doing because you can easily write the reminders without the *1.

Yes, you can argue with your users and tell us we should not use the
program the way we are currently using it, but the damage is already
done; we already had a bad experience with your UI.

You answered my "why" question from the point of view of how the program
code works, not from the point of view of how you *designed* the program
UI to work.

Users assume that if the program works a certain way, it's because the
author *designed* it to work that way, and if the experience is poor,
it's because the author's design is poor.

Yes, the code works that way, but did you intentionally and mindfully
write the code to force your users to use the program that way, because
that's the exact way you want us to use the program?

If "code dictates UI" is your design method, then I can't complain and
you can stop reading right here.  Sorry to have bothered you; thanks
for this useful program.  All of this may be of very small importance
given your other responsibilities.

On the other hand, if your design method is "UI dictates code", then you
are in control of our UI experience, not the code.  You decide how the
UI should function.  If your program forces me to work in a certain way,
it's because you carefully designed the UI that way and wrote the code
to serve that intentional UI design.

If you are in charge of the UI, not the code, then why would you
deliberately design the "*1" to throw an error when the meaning is
obvious?  Where does that design choice produce a good user experience?

The best UI experiences are ones where you don't even notice the UI;
it just doesn't get in the way.  Having the "*1" throw an error draws
attention to the UI, and not in a good way.

> We'd also have to disallow partal date specifications because it's not
> clear to me how to interpret something like:
> 
>       REM February *1 MSG huh?

What's not clear about that?  It should be identical to:

    REM February MSG this works fine

This also works fine:

    REM 2022 MSG this works fine

and so the above should be identical to this:

    REM 2022 *1 MSG ERROR: Must fully specify date to use repeat factor
 
> The *N syntax should really be read as:  "Every N days from the starting
> date that I gave you" and not "Every N days"

Okay, that's useful.  Please do make that change to your documentation,
or consider this enhancement:

If the "starting date" is incompletely specified, remind will pick the
first day of the incomplete specification and start there:

    REM Feb *2 MSG every second day in February, starting from Feb 1
    REM Feb 2022 *2 MSG every second day in Feb 2022, starting from Feb 1 2022
    REM 2022 *2 MSG every second day in 2022, starting from Jan 1 2022
    REM *2 MSG every second day, starting from the Big Bang (or Jan 1 1970)

Of course, having enhanced an incomplete starting date this way, an
incomplete ending date should be similarly enhanced to slide seamlessly
to the end of the period:

    REM Feb *2 UNTIL Apr MSG every second day, February 1 through April 30
    REM 2022 *2 UNTIL 2023 MSG every second day, Jan 1 2022 through Dec 31 2023

Let the computer figure out what the last day of the month is; don't
make your users do it.  Computers are good at that sort of thing.


P.S.  I could even invent a reasonable interpretation of weekdays:

    REM Mon *2 MSG every second day this week, starting from Monday

Not so useful.  Making incomplete dates work for weekdays isn't so
important.  Leaving this as an error would be fine.

-- 
| Ian! D. Allen, BA-Psych, MMath-CompSci  idallen at idallen.ca Ottawa CANADA
| Home: www.idallen.com  Contact Improvisation Dance: www.contactimprov.ca
| Former college professor of Free/Libre GNU+Linux @ teaching.idallen.com
| Improve democracy www.fairvote.ca and defend digital freedom www.eff.org


More information about the Remind-fans mailing list