Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-31 Thread Marcos


Hi,

thanks for your feedback Georg, really appreciated.

Georg Lukas writes:

> I could imagine an ad-hoc command for adding reminders, and otherwise
> just regular PEP access to a node, with backend server logic to "expire"
> reminders when they are due and to convert them into messages.

I can see that a solution based on PEP makes listing your reminders a
matter of checking some well-known node. But, maybe I just misread your
message, why would you use an ad-hoc command for adding reminders
instead of PEP's publish mechanism?

> For groupchat reminders, it might be a little bit more complicated,
> because the occupant who triggered the message might have left. However,
> a reminder might well be sent from the room's bare JID.

I had the idea (unspecified in the ProtoXEP, though) that in the case of
groupchats the reminder shall be sent to the room's bare JID.


I'll try to sum up the feedback received up to now.  I wanted to send
this earlier, but last weeks, unsurprisingly, have been hectic, to say
the least.

So, I think there's agreement at least on:

 * a way of retrieving current reminders must be provided
 * not using IQ stanzas but, probably, ad-hoc commands (now also maybe PEP?)
 * use the more common  element for the reminder's text instead of
   
 
And som kind of agreement on using XEP-0004, but given that datatypes
are not well defined in there, XEP-0122 may be useful for both
validation and display hints for clients.

Lastly, I found interesting Jonas' comment on possible changes on the
tzdata information and how this can be handled by providing both the
localtime and the timezone indication.  I think this can be worth
having.

Any feedback would be appreciated.

Thanks for your attention,
-- 
Marcos
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-11 Thread Georg Lukas
Hello,

I agree with the sentiments that there should be a way to query for
existing reminders, and also that ad-hoc command syntax is probably not
too bad for this kind of use case.

However, I think we have yet another mechanism that might be used /
useful for that kind of data, and it's PEP.

I could imagine an ad-hoc command for adding reminders, and otherwise
just regular PEP access to a node, with backend server logic to "expire"
reminders when they are due and to convert them into messages.

Indeed I'd say that for a personal reminder, the message should have a
 with the string value and be sent to the own bare JID.

For groupchat reminders, it might be a little bit more complicated,
because the occupant who triggered the message might have left. However,
a reminder might well be sent from the room's bare JID.


Georg


signature.asc
Description: PGP signature
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-03 Thread Jonas Schäfer
On 3 March 2020 14:49:13 CET, Florian Schmaus  wrote:
>On 3/2/20 5:18 PM, Jonas Schäfer wrote:
>> On Montag, 2. März 2020 11:56:58 CET Marcos wrote:
>>> thanks for your comments, Florian.
>>> Florian Schmaus writes:
 I think creating/canelling a reminder should rather be an ad-hoc
>command
 and not an IQ. This way, clients do not need to implement another
>IQ
 protocol-flow, but can re-use their (potentially) existing ad-hoc
 infrastructure.
>>>
>>> This probably escapes from my current understandings of the
>protocol, so
>>> thanks for pointing it out and I'll try to have a read over IQ
>handling
>>> logic, specially at client side (an issue Andrew already exposed).
>> 
>> Ad-Hoc commands would definitely be a way to do this. Using a
>specified 
>> command name (like XEP-0401 does) would allow for automated entities
>to 
>> interact with this and also gives immediate basic client support for
>clients 
>> which already support Ad-Hoc commands.
>> 
>> For clients which do not, and which also do not support Data Forms at
>all, 
>> this will be more of a pain to implement even without offering
>extensive user 
>> interaction.
>
>I doubt that it will be much pain, and even if, I would consider
>implementing data forms and ad-hoc commands are worth the pain.
>
>> This is always a trade-off, and I’ve stated elsewhere that I consider
>data 
>> forms a bad thing to have due to their lack of supporting arbitrary
>structured 
>> and dynamic data.
>
>I don't think I agree with that. They are flexible enough to serve a
>large portion of data-exchange use-cases. I am also not sure why they
>shouldn't support dynamic data.
>
>> And this specification needs timestamps, which are a kind of
>structured data.
>
>Right. I would suggest to use xep122 "data forms validation" to provide
>a client with the hint that this form field is a xep82 data time
>format.
>Clients could use this to show a data/time picker UI when this form
>field is selected.
>
>> For a naive Ad-Hoc client, specifying the timestamp in XEP-0082
>format will be 
>> massively annoying for the user.
>
>Agreed, especially if no xep112 hint (cf. xep112 example 2) is used.
>But
>still better than a naive client not being able to participate at all
>IMHO. Not sure how massive the annoyance for the user would be, though.
>Guess it depends on the user.
>
>> For a client which adds specific support for 
>> this ProtoXEP, the cost of doing so is likely less high than adding a
>custom 
>> IQ support
>
>Correct: For a client (library) already supporting data forms,
>implementing an ad-hoc/data-form based protocol is far easier then
>implementing a pure IQ based protocol.
 Also  § 5.2 / Example 7 "Server sends a reminder" should include
>just a
 , and not invent another -like extension element
>().
>>>
>>> Makes sense.
>>>
 The 'timezone' attribute in  is not necessary, xep82
>data-time
 profiles already encode the timezone (the 'Z' at the end of the
>String).
>>>
>>> Indeed, this slipped in from an early write up where no reference to
>>> XEP-0082 was yet present.  It has been already amended.
>> 
>> Actually, timezones is a good keyword.For timestamps in the future,
>it is 
>> generally better to use localtime+timezone specifier instead of a UTC
>
>> timestamp. After all, if you are in the Europe/Berlin timezone and
>set a 
>> reminder for a year from now and Europe switches to UTC+2 all year
>round, you 
>> don’t want your reminder to fire at the wrong hour.
>
>Fair point, but I believe the timezone is unnecessary and hence
>contributes to protocol bloat and potentially causes confusion. Clients
>could just set the right future timestamp taking the timezone into
>account. A note about this in the XEP sure would be sensible.

No, because the timezone definitions may (and they often enough do, look at the 
tzdata version history) change between when the client sets the reminder and 
the reminder fires. Hence my example about EU deciding to abolish DST.

>
>- Florian
>___
>Standards mailing list
>Info: https://mail.jabber.org/mailman/listinfo/standards
>Unsubscribe: standards-unsubscr...@xmpp.org
>___


-- 
Sent from my mobile device. Please excuse my brevity.
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-03 Thread Florian Schmaus
On 3/2/20 5:18 PM, Jonas Schäfer wrote:
> On Montag, 2. März 2020 11:56:58 CET Marcos wrote:
>> thanks for your comments, Florian.
>> Florian Schmaus writes:
>>> I think creating/canelling a reminder should rather be an ad-hoc command
>>> and not an IQ. This way, clients do not need to implement another IQ
>>> protocol-flow, but can re-use their (potentially) existing ad-hoc
>>> infrastructure.
>>
>> This probably escapes from my current understandings of the protocol, so
>> thanks for pointing it out and I'll try to have a read over IQ handling
>> logic, specially at client side (an issue Andrew already exposed).
> 
> Ad-Hoc commands would definitely be a way to do this. Using a specified 
> command name (like XEP-0401 does) would allow for automated entities to 
> interact with this and also gives immediate basic client support for clients 
> which already support Ad-Hoc commands.
> 
> For clients which do not, and which also do not support Data Forms at all, 
> this will be more of a pain to implement even without offering extensive user 
> interaction.

I doubt that it will be much pain, and even if, I would consider
implementing data forms and ad-hoc commands are worth the pain.

> This is always a trade-off, and I’ve stated elsewhere that I consider data 
> forms a bad thing to have due to their lack of supporting arbitrary 
> structured 
> and dynamic data.

I don't think I agree with that. They are flexible enough to serve a
large portion of data-exchange use-cases. I am also not sure why they
shouldn't support dynamic data.

> And this specification needs timestamps, which are a kind of structured data.

Right. I would suggest to use xep122 "data forms validation" to provide
a client with the hint that this form field is a xep82 data time format.
Clients could use this to show a data/time picker UI when this form
field is selected.

> For a naive Ad-Hoc client, specifying the timestamp in XEP-0082 format will 
> be 
> massively annoying for the user.

Agreed, especially if no xep112 hint (cf. xep112 example 2) is used. But
still better than a naive client not being able to participate at all
IMHO. Not sure how massive the annoyance for the user would be, though.
Guess it depends on the user.

> For a client which adds specific support for 
> this ProtoXEP, the cost of doing so is likely less high than adding a custom 
> IQ support

Correct: For a client (library) already supporting data forms,
implementing an ad-hoc/data-form based protocol is far easier then
implementing a pure IQ based protocol.
>>> Also  § 5.2 / Example 7 "Server sends a reminder" should include just a
>>> , and not invent another -like extension element ().
>>
>> Makes sense.
>>
>>> The 'timezone' attribute in  is not necessary, xep82 data-time
>>> profiles already encode the timezone (the 'Z' at the end of the String).
>>
>> Indeed, this slipped in from an early write up where no reference to
>> XEP-0082 was yet present.  It has been already amended.
> 
> Actually, timezones is a good keyword.For timestamps in the future, it is 
> generally better to use localtime+timezone specifier instead of a UTC 
> timestamp. After all, if you are in the Europe/Berlin timezone and set a 
> reminder for a year from now and Europe switches to UTC+2 all year round, you 
> don’t want your reminder to fire at the wrong hour.

Fair point, but I believe the timezone is unnecessary and hence
contributes to protocol bloat and potentially causes confusion. Clients
could just set the right future timestamp taking the timezone into
account. A note about this in the XEP sure would be sensible.

- Florian
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-02 Thread Jonas Schäfer
On Montag, 2. März 2020 11:56:58 CET Marcos wrote:
> Hi,
> 
> thanks for your comments, Florian.
> 
> Florian Schmaus writes:
> > I think creating/canelling a reminder should rather be an ad-hoc command
> > and not an IQ. This way, clients do not need to implement another IQ
> > protocol-flow, but can re-use their (potentially) existing ad-hoc
> > infrastructure.
> 
> This probably escapes from my current understandings of the protocol, so
> thanks for pointing it out and I'll try to have a read over IQ handling
> logic, specially at client side (an issue Andrew already exposed).

Ad-Hoc commands would definitely be a way to do this. Using a specified 
command name (like XEP-0401 does) would allow for automated entities to 
interact with this and also gives immediate basic client support for clients 
which already support Ad-Hoc commands.

For clients which do not, and which also do not support Data Forms at all, 
this will be more of a pain to implement even without offering extensive user 
interaction.

This is always a trade-off, and I’ve stated elsewhere that I consider data 
forms a bad thing to have due to their lack of supporting arbitrary structured 
and dynamic data.

And this specification needs timestamps, which are a kind of structured data. 
For a naive Ad-Hoc client, specifying the timestamp in XEP-0082 format will be 
massively annoying for the user. For a client which adds specific support for 
this ProtoXEP, the cost of doing so is likely less high than adding a custom 
IQ support -- given that it saves converting the Data Form data into something 
sensible to work with (including handling of unknown/unexpected fields, random 
field order, fields not adhering to the schema etc.).

Thus, no strong opinion. It needs a fixed Ad-Hoc command node name though so 
that clients can easily provide a more sophisticated layer (with proper date 
picker and stuff) on top of it.


> > Also  § 5.2 / Example 7 "Server sends a reminder" should include just a
> > , and not invent another -like extension element ().
> 
> Makes sense.
> 
> > The 'timezone' attribute in  is not necessary, xep82 data-time
> > profiles already encode the timezone (the 'Z' at the end of the String).
> 
> Indeed, this slipped in from an early write up where no reference to
> XEP-0082 was yet present.  It has been already amended.

Actually, timezones is a good keyword. For timestamps in the future, it is 
generally better to use localtime+timezone specifier instead of a UTC 
timestamp. After all, if you are in the Europe/Berlin timezone and set a 
reminder for a year from now and Europe switches to UTC+2 all year round, you 
don’t want your reminder to fire at the wrong hour.

I do not think that XEP-0082 date-time supports this at all, though; it 
requires to give a fixed UTC offset, which is only partially useful. A 
separate timestamp attribute alongside that would help to clarify with which 
timezone the reminder shall wander, but allows for ambiguous cases (e.g. if a 
reminder is set for one hour from now in Europe/Berlin timezone, but specified 
with a +00:00 or +02:00 offset).


kind regards,
Jonas

signature.asc
Description: This is a digitally signed message part.
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-02 Thread Marcos

Hi,

thanks for your comments, Florian.

Florian Schmaus writes:

> I think creating/canelling a reminder should rather be an ad-hoc command
> and not an IQ. This way, clients do not need to implement another IQ
> protocol-flow, but can re-use their (potentially) existing ad-hoc
> infrastructure.

This probably escapes from my current understandings of the protocol, so
thanks for pointing it out and I'll try to have a read over IQ handling
logic, specially at client side (an issue Andrew already exposed).

> Also  § 5.2 / Example 7 "Server sends a reminder" should include just a
> , and not invent another -like extension element ().

Makes sense.

> The 'timezone' attribute in  is not necessary, xep82 data-time
> profiles already encode the timezone (the 'Z' at the end of the String).

Indeed, this slipped in from an early write up where no reference to
XEP-0082 was yet present.  It has been already amended.

Best regards,
-- 
Marcos
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-02 Thread Florian Schmaus


On 2/27/20 5:43 PM, Jonas Schäfer (XSF Editor) wrote:
> The XMPP Extensions Editor has received a proposal for a new XEP.
> 
> Title: Reminders
> Abstract:
> This specification provides a way to set up reminders.
> 
> URL: https://xmpp.org/extensions/inbox/reminders.html

I think creating/canelling a reminder should rather be an ad-hoc command
and not an IQ. This way, clients do not need to implement another IQ
protocol-flow, but can re-use their (potentially) existing ad-hoc
infrastructure.

Also  § 5.2 / Example 7 "Server sends a reminder" should include just a
, and not invent another -like extension element ().

The 'timezone' attribute in  is not necessary, xep82 data-time
profiles already encode the timezone (the 'Z' at the end of the String).

- Florian
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-02 Thread Andrew Nenakhov
пн, 2 мар. 2020 г. в 04:10, Marcos :
> > Just build a bot that would send you reminders. No need to bloat the
> > already huge number of extensions,
>
> Having the reminder implemented with a bot doesn't eliminate the need of
> defining (somewhere) how would you tell such a bot to set up a reminder.
> I think that having the format of the requests specified can be
> interesting, specially to XMPP clients so they can interoperate with any
> "reminder bot" available out there.
>
> I don't see "bloat", I see convenience.

Convenience for whom? For developers of 50+ XMPP clients,  who would
have to consider support for yet another obscure XEP?

Speaking of bots, clients can interact with them in a very convenient
way using Data Forms (a long-neglected XEP-0004, which actually has a
lot of potential for lots of various things, we definitely plan to
build good support for them).


-- 
Andrew Nenakhov
CEO, redsolution, OÜ
https://redsolution.com
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-03-01 Thread Marcos

Hi,

thanks for your comments.

Andrew Nenakhov writes:

> пт, 28 февр. 2020 г. в 20:05, :
>> While thinking on this, being able to set arbitrary content into the reminder
>> idea crossed my mind (specifically something along the lines of "please,
>> remind me of this message in 20m" and then the reminder actually store the
>> referenced message), but in the end I rather preferred to keep it simple.
>
> Just build a bot that would send you reminders. No need to bloat the
> already huge number of extensions,

Having the reminder implemented with a bot doesn't eliminate the need of
defining (somewhere) how would you tell such a bot to set up a reminder.
I think that having the format of the requests specified can be
interesting, specially to XMPP clients so they can interoperate with any
"reminder bot" available out there.

I don't see "bloat", I see convenience.

Best regards,
-- 
Marcos
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-02-29 Thread Andrew Nenakhov
пт, 28 февр. 2020 г. в 20:05, :
> While thinking on this, being able to set arbitrary content into the reminder
> idea crossed my mind (specifically something along the lines of "please,
> remind me of this message in 20m" and then the reminder actually store the
> referenced message), but in the end I rather preferred to keep it simple.

Just build a bot that would send you reminders. No need to bloat the
already huge number of extensions,

-- 
Andrew Nenakhov
CEO, redsolution, OÜ
https://redsolution.com
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-02-28 Thread marcos
Hi,

first of all thanks for the comments, being it my first proposal
I really appreciate them.

February 28, 2020 3:41 PM, "Marvin W"  wrote:

> While I do like the idea, I think this could be done more elegantly
> using a generic "send a message later" functionality. That way the
> reminder can also be send to others and can also have arbitrary message
> content. However such feature would require the own server to implement
> that feature (whereas the proposed reminder spec can be implemented on
> remote domains)

While thinking on this, being able to set arbitrary content into the reminder
idea crossed my mind (specifically something along the lines of "please,
remind me of this message in 20m" and then the reminder actually store the 
referenced message), but in the end I rather preferred to keep it simple.

> Regarding this specification:
> - I think it is weird that the server acknowledges the reminder creation
> by sending the full reminder.

Yes, this was already pointed out in xsf@ and I do agree that this might be
weird.  I've already amended this.

```The server MUST inform the user of the success. The response MUST include 
an empty  element that specifies the 'id' of the created reminder.


  

```

> - This specification lacks the feature to request a list of all pending
> active reminders.

You're right.  I think it could be added.  I left it out because for the use
case I had in mind does not apply, but I understand this can be desirable.

> - It is unclear what happens to reminders when the creating resource
> (that would normally receive the reminder) is not online. I believe
> current servers will route it to some other resource that is online at
> that time, but the message is not carbon copied or stored in MAM.

I assumed the existing routing logic of the resource's server will apply 
and that it's not an aspect this specification should care.  Nonetheless,
may it be desirable to add some text indicating that implementations MAY
add storing hints?  Although I still have not a strong use case in my mind
where a user might want to received outdated reminders...

Best regards,
--
Marcos
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] Proposed XMPP Extension: Reminders

2020-02-28 Thread Marvin W
While I do like the idea, I think this could be done more elegantly
using a generic "send a message later" functionality. That way the
reminder can also be send to others and can also have arbitrary message
content. However such feature would require the own server to implement
that feature (whereas the proposed reminder spec can be implemented on
remote domains)

Regarding this specification:
- I think it is weird that the server acknowledges the reminder creation
by sending the full reminder.
- This specification lacks the feature to request a list of all pending
active reminders.
- It is unclear what happens to reminders when the creating resource
(that would normally receive the reminder) is not online. I believe
current servers will route it to some other resource that is online at
that time, but the message is not carbon copied or stored in MAM.

Marvin
___
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___