There night be room for a simpler ad-hoc protocol perhaps
pasdesushihas left
MattJ
It wouldn't be too hard to implement on the server with the same underlying commands
MattJ
But I think it's mainly forms that are the issue
harry837374884has joined
MattJ
Building good UIs is hard, and just chaining together a bunch of controls of different types doesn't suffice for anything but the most basic prompts
MattJ
I spent a whole day implementing a user-friendly time zone selector recently, and there's just no way it could be reasonably done with data forms, and yet I don't expect every client to implement a timezone selector control just for the 1 or 2 services that might use it
chipmnkhas left
Samhas left
pasdesushihas joined
MattJ
The logical step up would be allowing a HTML/CSS form, but the problems with that are hopefully obvious
chipmnkhas joined
mathieui
Should I summarize with "we can never have nice things"
MattJ
HTML 5 has a lot of form-related improvements that XEP-0004 doesn't, and if we don't adopt HTML itself and still want to pursue dataform UIs, we'd probably want to at least adopt some things that HTML has gained
Samhas joined
MattJ
But then client complexity increases, and will ultimately warrant a HTML renderer (i.e. web view) and then in 10 years people will be complaining that we didn't just allow HTML forms
MattJ
And all of this falls into the products vs protocols dichotomy, since it's only needed when the clients are supposed to interoperate with arbitrary unknown services
MattJ
A client could instead support a nice native UI for biboumi configuration
adiaholichas joined
Dele Olajidehas joined
pasdesushihas left
homebeachhas left
Half-Shothas left
Matthewhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
nikhilmwarrierhas left
adiaholichas left
msavoritiashas joined
stphas joined
nikhilmwarrierhas joined
phoeboshas joined
adiaholichas joined
pasdesushihas joined
Samhas left
stphas left
Samhas joined
Mx2has left
Wojtekhas joined
phoeboshas left
intosihas left
intosihas joined
Samhas left
goffi
MattJ: what was needed for your form? Would something like XEP-0141 helps? Regarding the particular time-zone selection, this seems generic enough to me to worth a dedicated field-type.
goffi
But yeah HTML/CSS forms would be interesting, I've had similar thoughs when I've been working on the ad-hoc based remoted control.
goffi
despite obvious security implications, there would be issues also for TUI/CLI clients, or any UI libraries not supporting direct HTML rendering/webview (like Kivy). But still, it would be nice to have.
neshtaxmpphas left
Samhas joined
neshtaxmpphas joined
inkyhas joined
Danielhas left
stphas joined
nikhilmwarrierhas left
nikhilmwarrierhas joined
MattJ
goffi: to be fair most of the complexity ended up on the server side for that (gathering, formatting and sorting the available options). Things that wouldn't be possible in XMPP currently would be automatically detecting the user's current time zone (available from the browser) and preselecting it for them.
intosihas left
pjnhas joined
antranigvhas joined
msavoritiashas left
lovetox
Html/CSS form? So the sender decides how the UI looks? Meh ...
Example of a responsive UI that just can't be done in XMPP today
intosihas joined
lovetox
I don't know what you mean, what has xmpp to do with UI
MattJ
Data forms have everything to do with UI
antranigvhas left
MattJ
When clients display them to users
lovetox
Responsive is a web dev term to me
Titihas left
MattJ
It's not a web dev term, have you used Gajim on a Linux mobile?
lovetox
I'm sure converse can build a responsive form
xnamedhas joined
cloudedhas left
MattJ
Converse doesn't have the necessary information to make a responsive form
msavoritiashas joined
Titihas joined
harry837374884has left
lovetox
What information is missing
cloudedhas joined
MattJ
If we agree that a good user interface is one that is structured logically for the data it is presenting/requesting, and that a simple flat list of controls often does not suffice, then layout is an important part of the form designer's job
debaclehas left
marc0shas left
marc0shas joined
MattJ
And given that people access the forms on a range of screen sizes and orientations, it is also the form designer's job to ensure it functions well across all of them
MattJ
HTML/CSS has a bunch of problems, but they do give you the tools to do this. XEP-0004+XEP-0141 do not.
playerthreehas left
marc0shas left
marc0shas joined
Danielhas joined
goffi
In the special case of the experiment I've made with XMPP powered remote control, I've add to make dedicated UI. It would be nice to be able to specify from the sender, and also to add stuff like volume control, timer, etc. Cf. https://www.goffi.org/b/74BwHSApD7w7Tr9L9fvR82/news-control-your-media-player-from-omemo and notably the first video.
nikhilmwarrierhas left
msavoritiashas left
goffi
I've had*
antranigvhas joined
neshtaxmpphas left
neshtaxmpphas joined
intosihas left
Samhas left
MattJ
Yeah, good example
konstantinoshas joined
intosihas joined
Samhas joined
adiaholichas left
Tim Rhas left
Tim Rhas joined
antranigvhas left
playerthreehas joined
Dele Olajide
>MattJ : Converse doesn't have the necessary information to make a responsive form
It doesn't, but it has a plugin that does.
https://github.com/conversejs/community-plugins/tree/master/packages/adaptive-cards
https://adaptivecards.io/
papatutuwawahas joined
adiaholichas joined
MattJ
Right, but XEP-0004 doesn't carry the necessary information, is my point
MattJ
Am I reading rightly that the converse.js plugin is interpreting Adaptive Card JSON in <body/>? 😬
konstantinoshas left
konstantinoshas joined
adiaholichas left
adiaholichas joined
APachhas joined
adiaholichas left
konstantinoshas left
Dele Olajide
https://xmpp.org/extensions/xep-0335.html
arcxihas left
lovetoxhas left
sebastianhas left
sebastianhas joined
lovetoxhas joined
papatutuwawahas left
papatutuwawahas joined
Zash
👉️ XEP-0141: Data Forms Layout https://xmpp.org/extensions/xep-0141.html
Dele Olajidehas left
Dele Olajidehas joined
Mx2has joined
neshtaxmpphas left
neshtaxmpphas joined
nikhilmwarrierhas joined
konstantinoshas joined
adiaholichas joined
pasdesushihas left
pasdesushihas joined
adiaholichas left
menelhas left
menelhas joined
menelhas left
menelhas joined
konstantinoshas left
chipmnkhas left
chipmnkhas joined
adiaholichas joined
harry837374884has joined
adiaholichas left
Mx2has left
nikhilmwarrierhas left
adiaholichas joined
goffi
regarding the remote control, I was thinging that SVG could actually be a neat way to do elaborated UI
goffi
and it's XML, making it straightforward to link in XMPP
goffi
it can be responsive too.
arcxihas joined
msavoritiashas joined
goffi
and there are plenty of tools that could be used, in particular inkscape.
goffi
No exactly sure about the security implications though.
Zash
"Complete this game of Tetris to enable the thing"
Zash
So, is XEP-0141 something we should obsolete? Or is it just unknown?
goffi
it has been mentioned twice today, so it's not unknown. But I don't think that there are many implementation in the wild, or are there?
adiaholichas left
marc0shas left
marc0shas joined
Dele Olajidehas left
rubihas left
kinetikhas joined
rubihas joined
papatutuwawahas left
papatutuwawahas joined
adiaholichas joined
marc0shas left
marc0shas joined
rubihas left
rubihas joined
rubihas left
rubihas joined
rubihas left
rubihas joined
rubihas left
rubihas joined
adiaholichas left
pablohas joined
rubihas left
rubihas joined
rubihas left
rubihas joined
kinetikhas left
Half-Shothas left
homebeachhas left
Matthewhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
rubihas left
rubihas joined
rubihas left
rubihas joined
lovetox
XEP-0141 seems to add light layout caps
lovetox
like adding a section or have different pages
lovetox
but thats about it
neshtaxmpphas left
rubihas left
neshtaxmpphas joined
rubihas joined
rubihas left
rubihas joined
lovetox
MattJ, probably searches for much more detailed layout
lovetox
i think, sure it would be cool, but i discovered no form in the wild where i thought i need to add a custom layout because the simple field list doesnt cut it
Andrzejhas left
lovetox
so lots of complexity for probably very few and niche use cases
wgreenhousehas left
wgreenhousehas joined
Zash
> Right, but XEP-0004 doesn't carry the necessary information, is my point
So what's missing and what is actually needed?
rubihas left
rubihas joined
Zash
Does chat clients really _need_ full HTML forms (with CSS layouts)?
nikhilmwarrierhas joined
Zash
I like to think that a lot of nice things could be done by inventing datatypes with xep-0122 and then having clients do nice things where it knows those data types. E.g. a timezone type could be smart about its default, even show a map selector.
lovetox
its either css or nothing, like what do you want to do otherwise, invent a whole new layout language that works with all the different ui frameworks out there ..
lovetox
im all for more hints about what the data is that we should display, and i think this can be easy done
lovetox
but starting with stuff like "display this filed on the right side from that field"
lovetox
i probably not going to implement something like that, sounds like a lot of work with very little gain
adiaholichas joined
marc0shas left
marc0shas joined
pablohas left
eevvoorhas joined
neshtaxmpphas left
neshtaxmpphas joined
Andrzejhas joined
moparisthebest
MattJ: yea XMPP can't be taken seriously if you can't implement a proper date picker like https://i01000101.github.io/RedditBadUIBattles/ScientificDatePicker/index.html
adiaholichas left
marc0shas left
marc0shas joined
Guusstarts to slowly clap.
pasdesushihas left
kinetikhas joined
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
neshtaxmpphas left
neshtaxmpphas joined
pasdesushihas joined
jinxdhas joined
RayTutuhas joined
Steve Killehas left
adiaholichas joined
kinetikhas left
rebeld22has joined
Paganinihas joined
Tim Rhas left
Tim Rhas joined
Half-Shothas left
homebeachhas left
Matthewhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
papatutuwawahas left
neshtaxmpphas left
neshtaxmpphas joined
adiaholichas left
neshtaxmpphas left
neshtaxmpphas joined
Dele Olajidehas joined
APachhas left
APachhas joined
cloudedhas left
chipmnkhas left
chipmnkhas joined
nikhilmwarrierhas left
adiaholichas joined
nikhilmwarrierhas joined
cloudedhas joined
adiaholichas left
antranigvhas joined
marc0shas left
marc0shas joined
Kevhas left
Kevhas joined
Dele Olajidehas left
antranigvhas left
antranigvhas joined
adiaholichas joined
antranigvhas left
konstantinoshas joined
Kevhas left
neshtaxmpphas left
neshtaxmpphas joined
Dele Olajidehas joined
Steve Killehas joined
papatutuwawahas joined
Kevhas joined
eevvoorhas left
adiaholichas left
Tim Rhas left
jl4has joined
jl4has left
marc0shas left
marc0shas joined
Link Mauvehas left
adiaholichas joined
Dele Olajidehas left
marc0shas left
marc0shas joined
BASSGODhas left
MattJ
To be clear, I'm personally not advocating adding this complexity into XMPP at all. I just see it as a necessity if we really started using ad-hoc for important things. We don't support this complexity today, which means ad-hoc commands will never be used for more than very simple things (if clients implement them at all).
Zash
Egg, meet chicken?
MattJ
I don't think today's ad-hoc + dataforms leads to good UIs, and that's why I don't push for them in modern XMPP clients
raghavgururajanhas joined
BASSGODhas joined
MattJ
Ad-hoc commands with a native UI is fine, and clients already do this (e.g. for creating invitations)
konstantinoshas left
lovetox
i thin adhoc has also value in simply providing a flow for whatever
lovetox
like if some XEP wants to provide some options to configure something on the server etc, they can simply reuse adhoc
lovetox
without inventing there own iq flow
MattJ
Yeah, I agree. And as I said earlier, it might be nice to simplify it somewhat (many of the awkward edge cases are caused by features that aren't used)
lovetox
as a client developer im not against adding a custom UI for some adhoc workflow, (not my standard rendering of a dataform)
lovetox
if its a good feature and it benefits from a custom UI why not
lovetox
but of course the fields should be fixed than
MattJ
Yep
lovetox
MattJ, about what are you thinking that you would like to do with adhoc?
Zash
Yeah, well-known ad-hoc commands with client-side custom UI can be nice.
lovetox
like until now only server and muc configs are done with adhoc
lovetox
i think the standard dataform rendering is fine enough for that use case
lovetox
as its very expert use case
Zash
MUC config is dataforms, but not ad-hoc
lovetox
yeah sorry
lovetox
actually it does not matter if its adhoc
MattJ
Well that's kind of what started this discussion: why do only the "advanced" clients implement ad-hoc commands + dataforms
lovetox
the problem for MattJ is the dataform rendering
lovetox
it does not matter in which context
lovetox
but its really dataform rendering ...
lovetox
not adhoc
lovetox
adhoc of course is a expert use case, because its only used for muc config and server config
lovetox
and server config is not really neccessary at all
lovetox
not even sure admins use this
MattJ
FWIW one thing on my to-do list is a XEP for user account config
moparisthebest
that would be excellent, could probably get rid of those terrible servers that blanket block all messages from strangers for all accounts
Zash
Step 0: define scope of that 🙂
lovetox
MattJ, but what needs to be specified in that XEP?
intosihas left
lovetox
adhoc on account is already available
intosihas joined
Zash
Something like XEP-0133 but for users?
lovetox
Adhoc is only necessary for transport config and server admin config
lovetox
thats the reason its last on the list for every client
adiaholichas left
lovetox
these are not important things users need
adiaholichas joined
lovetox
thats the reason in my opinion, and certainly not because its "to hard to implement"
MattJ
moparisthebest, yes, that's definitely one of the first things I would like to expose and standardize
Skull Fuckerhas left
MattJ
lovetox, on my list of things the XEP should support: a registry of options, types, an ad-hoc command to fetch and set them, and a mechanism to get, set and subscribe to changes in individual options
SteveFhas left
adiaholichas left
marc0shas left
marc0shas joined
lovetox
so basically you specify a set of options which should be available via adhoc@account
lovetox
and then add a notification thingy on top
lovetox
i think this is great, please stay with adhoc for fetching and setting the options
lovetox
because many servers offer already on adhoc account options
lovetox
it would be less ideal if i have to merge this with some other mechanism
marc0shas left
marc0shas joined
antranigvhas joined
marc0shas left
marc0shas joined
djorzhas joined
Kevhas left
marc0shas left
marc0shas joined
antranigvhas left
marc0shas left
marc0shas joined
adiaholichas joined
RayTutuhas left
MattJ
Ad-hoc will be one way of doing it, but I expect most clients won't use it
marc0shas left
marc0shas joined
neshtaxmpphas left
neshtaxmpphas joined
marc0shas left
marc0shas joined
intosihas left
adiaholichas left
antranigvhas joined
Kevhas joined
Thilo Molitorhas left
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
Thilo Molitorhas joined
antranigvhas left
Wojtekhas left
Kevhas left
Kevhas joined
nikhilmwarrierhas left
nikhilmwarrierhas joined
intosihas joined
marc0shas left
marc0shas joined
Samhas left
adiaholichas joined
Samhas joined
debaclehas joined
papatutuwawahas left
Samhas left
djorzhas left
wladmishas left
adiaholichas left
wladmishas joined
adiaholichas joined
intosihas left
Samhas joined
Kevhas left
intosihas joined
adiaholichas left
papatutuwawahas joined
Half-Shothas left
homebeachhas left
Matthewhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
Kevhas joined
djorzhas joined
Kevhas left
Kevhas joined
marc0shas left
marc0shas joined
Samhas left
intosihas left
Samhas joined
intosihas joined
xnamedhas left
lovetox
Why?
lovetox
Again, nothing about Adhoc is complicated or hard to implement, every other IQ flow is exactly the same
lovetox
the reason clients dont implement adhoc is because its not needed
lovetox
its basically only used by nerdy xmpp people that want to admin there server
lovetox
there is zero reason for any client to implement adhoc
mathieui
lovetox: except for configuring stuff
Kevhas left
mathieui
Even non-nerdy people want to be able to configure their bridged accounts
Matthewhas left
Half-Shothas left
homebeachhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
lovetox
no, nobody even knows what a bridge is
Zash
no, nobody uses XMPP!
mathieui
I beg to differ
moparisthebest
what do non-nerdy people bridge with? certainly not IRC
mathieui
We see plenty of non-technical people actively wanting bridges
lovetox
i dont see your argument, i said there is zero reason to implement this, and you argue "but bridge configuration" which is about the most expert thing there is on xmpp
thndrbvrhas joined
lovetox
they want bridges, they dont want to configure them
lovetox
they simply want them to work
lovetox
and most work fine without any configuration
lovetox
im not arguing that adhoc is not useful, im saying its not a good reason to not use adhoc, because "no client implements it"
lovetox
when the xmpp specs simply have no widley used usecase which uses adhoc
lovetox
then saying, clients dont implement it because its to complicated
lovetox
hence lets not use adhoc
lovetox
no event another iq flow, with 2 attributes less
pasdesushihas left
lovetox
but im looking forward to see the iq flow that is so much simpler than adhoc, but offers exactly the same functionality
lovetox, I want to support setting one option at a time, and that's a bit weird to do via ad-hoc. It would at least turn it into multiple round-trips when only a single one was necessary.
Kevhas joined
Kevhas left
Kevhas joined
MattJ
I want to present an ad-hoc interface to the configuration for clients that want to present the configuration all at once to a user (in a native or dataforms-driven UI).
Zash
{get,set,enable,disable}-${option} ?
lovetox
MattJ, if there are valid protocol reason to not do adhoc for something, because it does not fit, im all for it
lovetox
but please dont base any decision on the count of clients that implement adhoc
Zash
Hm, maybe one could make a thingy that exposes ad-hoc commands via a chat interface, probably on the bare host JID....
lovetox
clients implement jingle, adhoc is laughable
jgarthas joined
lovetox
adhoc is 200 lines of code in nbxmpp, and thats is with boilerplate
nikhilmwarrierhas left
lovetox
i think what people confuse this with is, displaying dataforms in a UI
lovetox
this is certainly not trivial
lovetox
but is not inherent to Adhoc
lovetox
a muc configuration form is also a dataform
lovetox
a IBR flow has also a dataform
Zash
+ not enough existing commands or other dataforms using things exposed that warrant implementing the UI translation routines, which I hear can be pretty complicated on some platforms
lovetox
correct, for IBR everybody uses the same dataform basically
lovetox
Conversations never had a dataform UI, and IBR worked fine
Zash
It's also got a reduced MUC config interface, which is probably fine for the majority
lovetox
For MUC config you dont need dataform UI, because most servers offer the standard configs, and only very few addtional
Steve Killehas left
adiaholichas joined
pasdesushihas left
pasdesushihas joined
Kevhas left
Kevhas joined
Half-Shothas left
homebeachhas left
Matthewhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
neshtaxmpphas left
intosihas left
intosihas joined
neshtaxmpphas joined
Alexhas left
Alexhas joined
Steve Killehas joined
adiaholichas left
adiaholichas joined
chipmnkhas left
Kevhas left
chipmnkhas joined
Steve Killehas left
marc0shas left
marc0shas joined
raghavgururajanhas left
intosihas left
Dele Olajidehas joined
adiaholichas left
adiaholichas joined
debaclehas left
Kevhas joined
Kevhas left
Danielhas left
cloudedhas left
Dele Olajidehas left
intosihas joined
cloudedhas joined
Danielhas joined
marc0shas left
marc0shas joined
adiaholichas left
pablohas joined
adiaholichas joined
intosihas left
paulhas left
paulhas joined
adiaholichas left
intosihas joined
homebeachhas left
Half-Shothas left
Matthewhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
adiaholichas joined
kinetikhas joined
papatutuwawahas left
Samhas left
Samhas joined
adiaholichas left
konstantinoshas joined
Andrzejhas left
Maranda[x]has left
Maranda[x]has joined
kinetikhas left
antranigvhas joined
Kevhas joined
intosihas left
antranigvhas left
intosihas joined
inkyhas left
jgarthas left
Tim Rhas joined
papatutuwawahas joined
pablohas left
pablohas joined
Maranda
> <lovetox> Conversations never had a dataform UI, and IBR worked fine
I dissent slightly on that
Samhas left
lovetox
Yeah you are one of the very few that adds custom additions to IBR
Ingolfhas left
Maranda
I had to specifically add exceptions for C not supporting extended fields in IBR or even just the supplemental ones
Samhas joined
antranigvhas joined
Maranda
In Metronome that is
Kevhas left
konstantinoshas left
konstantinoshas joined
xnamedhas joined
neshtaxmpphas left
neshtaxmpphas joined
papatutuwawahas left
papatutuwawahas joined
marc0shas left
marc0shas joined
Kevhas joined
Tim Rhas left
jgarthas joined
pablohas left
Samhas left
Samhas joined
marc0shas left
marc0shas joined
lovetoxhas left
intosihas left
Samhas left
Ingolfhas joined
Kevhas left
Holger
> Yeah you are one of the very few that adds custom additions to IBR
Chicken egg, I'd love to do that as well, but client side support is close to nonexistent.
Samhas joined
Holger
(Not just Conversations.)
konstantinoshas left
lovetoxhas joined
pablohas joined
adiaholichas joined
Samhas left
pablohas left
Samhas joined
adiaholichas left
marc0shas left
marc0shas joined
konstantinoshas joined
marc0shas left
marc0shas joined
adiaholichas joined
Andrzejhas joined
adiaholichas left
Steve Killehas joined
Steve Killehas left
Steve Killehas joined
Andrzejhas left
adiaholichas joined
adiaholichas left
konstantinoshas left
Ingolfhas left
inkyhas joined
Thilo Molitorhas left
Thilo Molitorhas joined
marc0shas left
marc0shas joined
antranigvhas left
intosihas joined
antranigvhas joined
jgarthas left
Half-Shothas left
homebeachhas left
Matthewhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
Kevhas joined
wgreenhouse
> they want bridges, they dont want to configure them
a bridge needs some way to enter authentication/account details for $other_network if applicable