-
jonas’
Ge0rG, what is that list of XEPs? anything useful for the compliance suites?
-
Ge0rG
jonas’: you mean the "relevant for mobile" list? I think it's covered by the suite already, plus 0184
-
jonas’
good
-
daniel
I wouldn't hold my breath for chatty though
-
Ge0rG
daniel: because of libpurple?
-
daniel
Just by extrapolating the progress of the last four month
-
Ge0rG
daniel: so because of libpurple.
-
Ge0rG
daniel: are you missing XEPs from Compliance Suite 2019?
-
daniel
Ge0rG: I don't recall anything coming up this year
-
daniel
Maybe the bookmark conversion thing?
-
Ge0rG
avatar something-something?
-
jonas’
the conversion XEPs would indeed be interesting to have
-
pep.
I was also thinking about bookmarks conversion
-
pep.
Do the xeps that go in there need to be draft or sth?
-
jonas’
isn’t even MIX in there?
-
pep.
When nobody implements it and it's not exactly clear what the benefits are over existing protocols?
-
jonas’
ah, no, it’s just an informational footnote that MIX might be coming
-
lovetox
are you talking about server implementing it or client?
-
lovetox
because client its just "dont sync pep and private storage"
-
daniel
A client should Stil know about that
-
jonas’
itym: "its just 'dont sync pep and private storage, but only if the server exposes the feature, otherwise you’re as doomed as ever'"
-
daniel
So even it's not a lot of work
-
lovetox
yes jonas, i might implement it today
-
jonas’
so yeah, clients need to know about it
-
jonas’
and even if only to relieve the developers from the nightmares they get when thinking about the mess that synchronization is
-
Guus
I'm toying with an idea, for to XSF to offer up a prize for development of the best/first/somehow-to-be-qualified new (client?) XMPP software, X-Prize style. My primary motivation is to facilitate the development of new, feature complete / representable software for things that are currently missing from the XMPP eco-system. A decent, free IOS client, perhaps? What do you guys think?
-
edhelas
I like the idea :)
-
edhelas
but maybe put a couple of categories, like the Oscars, best UX, best security, best XMPP support...
-
Guus
I don't have a concrete plan for the shape or form, so yeah, that's all possible.
-
Guus
That said: we have limited resources, so for the incentive to be interesting enough, we might not want to have to split things up to much.
-
edhelas
yeah just a few of them, it could be a simple vote and we design a some logos that the winner project can put on their README :D
-
lovetox
you have to be prepared that no client reaches the goal, that would be a bit embarasing then
-
edhelas
"Best XMPP Client of 2018"
-
Ge0rG
jonas’ [10:22]: > and even if only to relieve the developers from the nightmares they get when thinking about the mess that synchronization is _99 issues with sync in the PEP // 99 issues with sync // One bug gets squashed // 98 issues with sync in the PEP_
-
Seve
I would not split if possible, indeed. If it must be a client, I would say something missing. Either features missing in the modern times or a client for a platform with no clients/up-to-date clients
-
Ge0rG
Guus: that calls for a Jabber Software Foundation
-
Guus
You're miscounting, Ge0rG. Last number should be '100'...
-
Guus
(or more)
-
Guus
lovetox: the challenge need not be time-restricted. If no client reaches the goal, the effort will fizzle out over time, without much harm done.
-
Guus
also, I'm willing to take that chance.
-
jonas’
Guus, this will be very frustrating for developers who simply cannot invest the time without reliable source of income from the xmpp development :/
-
Guus
Ge0rG: maybe. I don't yet care at this point. 🙂
-
Guus
jonas' - that's one of my concerns - I'd not like to dissuade others.
-
Ge0rG
I'm pretty sure you won't be allowed to do that within the XSF
-
Guus
but, on the other side: the XMPP community would benefit more from having a limited amount of pretty good clients, than a large amount of very shitty ones...
-
Ge0rG
Guus: that's absolutely true
-
Guus
Ge0rG: at this time, I'm first trying to figure out if the idea itself is viable. We can worry about the appropriate vehicle later.
-
jonas’
next worry: client developers will cut corners to achieve the requested milestone
-
jonas’
while this might produce a reasonable product *at the time*, it may lead to horrible, unmaintainable code which leads the client into a dead end (at least for a while)
-
edhelas
if (xsfCheck) behaveFaster();
-
jonas’
hah
-
jonas’
#volkswagen
-
edhelas
:D
-
jonas’
edhelas, are you using https://github.com/auchenberg/volkswagen in movim yet?✎ -
edhelas
always
-
Guus
jonas' that's valid too. On the one hand, we'd have to come up with criteria that prevent the worst of this. That will be tricky to do, but should be doable
-
jonas’
edhelas, are you using https://github.com/auchenberg/volkswagen in movim yet?✎ ✏ -
jonas’
edhelas, are you using https://github.com/hmlb/phpunit-vw in movim yet? ✏
-
Guus
But also, I'm now at a point where I'd love to have a good client on IOS, even if it's unmaintainable and will be shitty in a couple of years time.
-
Kev
Yeah, I'd love to get Swift shipped properly.
-
Guus
Kev: what's keeping you?
-
Kev
Cycles.
-
jonas’
Kev, what does blender have to do with that?
-
jonas’
Guus, hm, so a prize for an iOS client?
-
Guus
maybe?
-
jonas’
that indeed sounds interesting, because that’s the worst platform at the moment
-
Guus
just floating an idea here 🙂
-
jonas’
and there’s not too much competition
-
jonas’
so less potential for frustration
-
jonas’
I’d be totally in favour of that, although that means that my chances from collecting the prize go from 1% to 0% :)
-
Ge0rG
Guus: have you had a look at Monal recently?
-
Guus
No
-
Ge0rG
Guus: you should. MUC and OMEMO aren't there yet, but there is significant progress and Anu is very responsive to feedback
-
jonas’
a working XMPP client on iOS probably needs voice chat though
-
jonas’
to get privileges for push
-
jonas’
to be finally usable
-
Guus
👍
-
Kev
A decent iOS client needs more thinking than it seems.
-
Ge0rG
I'm not sure it's really needed if we properly tackle xmpp push
-
jonas’
so… maybe that should be the goal? but then again, the number you’d have to put on the table to have a freelancer implement audio chat from scratch is .. high
-
Kev
We need to get Push properly sorted for it.
-
jonas’
Ge0rG, is it? my understanding was that push is unreliable unless you get a voip whitelist✎ -
jonas’
Ge0rG, is it? my understanding was that push is unreliable unless you get a voip whitelist mark or whatever ✏
-
jonas’
but I’m not familiar with iOS development
-
Kev
The VOIP thing was so that you could leave yourself running in the background to defeat TCP being killed when you're backgrounded.
-
Ge0rG
Maybe Monal has that.
-
jonas’
ah, right
-
jonas’
that would be better than push, indeed
-
Kev
Not really, I think.
-
jonas’
but, so, not a requirement
-
jonas’
Kev, why?
-
Kev
Push and quick resync is the better solution. But we don't have a good resync solution at the moment.
-
jonas’
except that for push, you need to go through a third-party service
-
daniel
I think you can create a decent iOS client without VoIP
-
daniel
Just by using push properly
-
jonas’
daniel, why has nobody managed to do that yet, though?
-
Ge0rG
Except Push was -1ed
-
Ge0rG
jonas’: lack of developer resources?
-
jonas’
Ge0rG, hm. "how hard can it be?"
-
Guus
jonas' : wanna win a prize? 🙂
-
daniel
> daniel, why has nobody managed to do that yet, though? Because people don't seem to know how I guess
-
jonas’
Guus, no, I’m not touching iOS
-
Ge0rG
jonas’: ChatSecure has a bug where it duplicates incoming messages, and it's unfixed for half a year now already
-
jonas’
daniel, do *you* know h ow?
-
daniel
Or don't have enough time to get familiar with it
-
jonas’
Ge0rG, yes, but that seems harder than "just" configuring your push server to send the right stuff at the right time
-
Kev
I had a fairly decent picture of what was needed, but it was less trivial than it sounds.
-
daniel
> daniel, do *you* know h ow? I know how I would do it yes
-
Kev
Unless I'm just too stupid to see the simple solution.
-
daniel
No it's not trivial
-
jonas’
daniel, maybe get in touch with $iOSClientDeveloper and get it sorted then?
-
jonas’
okay
-
Guus
Kev, did you document that?
-
jonas’
I’ll shut up then :)
-
Kev
You can get by with just Push, but to get the really good experience you also need much faster resyncs than we can currently do.
-
Kev
Guus: There are many aspects to getting this right, including MAM, MIX, Push and Routing2.
-
Kev
So yes, I've been trying to document the various needed moving parts.
-
Guus
Kev: that's why I hoped for existing documentation 🙂
-
daniel
I think Chris kinda knows it too. But since it wasn't build into chatsecure it requires heavy refactoring
-
daniel
And you probably don't want to use a traditional xmpp library
-
Ge0rG
daniel: what about just writing the magic into the XEP?
-
Kev
The thing that I would get a lot of hate for suggesting is that I think there would be value in ... XMPP over HTTP.
-
Ge0rG
Kev: different from BOSH?
-
Kev
As a quick resync mechanism, so that we could poll in the background.
-
daniel
Well I know how to start and I'm fairly confident I could figure out the missing pieces as I go. But it's not that I could write down a step by step how to
-
Kev
Ge0rG: Yes, just for polling.
-
Ge0rG
Kev: you need cookies / tokens then
-
Kev
Yes.
-
Ge0rG
Kev: also not sure what problem that'll solve, apart from paranoid firewalls
-
daniel
And nobody would then implement it so it would be a wasted effort anyway
-
Guus
Does anyone particularly dislike the idea to have some kind of prize offered up for a good* iOS client?
-
Kev
Ge0rG: It'd let you poll in the background when receiving a bodyless push to just find the content of that message so you could display a notification.
-
Kev
Guus: I do, personally. I think the XSF could better spend its money.
-
Kev
Of which it doesn't have muc.✎ -
Kev
Of which it doesn't have much. ✏
-
Guus
Kev: on what? I'd love to spend money.
-
daniel
> Ge0rG: It'd let you poll in the background when receiving a bodyless push to just find the content of that message so you could display a notification. You have to be fast and recover all state from disk
-
Ge0rG
Kev: how's that different from an XMPP connection?
-
daniel
But that's it basically
-
Kev
daniel: I don't think you need to recover anything at all, actually.
-
Kev
You could do the full resync once the client is foregrounded again.
-
Kev
Of course, this is much easier if you're willing to have your message content go over Push.
-
Kev
But if you're not, you need some mechanism that can wake the client, have it fetch the message that needs displaying, fetch it, display it, and go back to sleep again without the OS getting angry with you.
-
daniel
Right. Yes I see that your approach is valid as well. But I think one has enough time to do a regular sm catchup if we get fast resume
-
Ge0rG
Kev: that sounds like you are trying to get rid of the cruft of XMPP session setup by replacing XMPP with HTTP, instead of replacing the session setup
-
daniel
Aka instant stream resumption and the like
-
Kev
I wouldn't even try, I think. To do it over XMPP I'd just have fast reconnect, not fast resume, and then just poll that one item over MAM.
-
Kev
And leave the fast resume for when the client is woken up by the user.
-
jonas’
Kev, that doesn’t sound too bad
-
Kev
Ge0rG: Valid point, see above.
-
jonas’
soo… XMPP-over-TLS, SASL2+bind2 to do as much as possible in as few as possible roundtrips, query MAM, close connection?
-
jonas’
(or try to keep connection open if possible)
-
Kev
Something like that, yeah.
-
daniel
Yeah I mean in any case it can be done
- Ge0rG &
-
jonas’
fg
-
daniel
It's just that the developer has to have in depth knowledge of xmpp and design the client from scratch to do this
-
Ge0rG
jonas’: -EPERM
-
Kev
I'm not sure the client needs designing from scratch (I don't think we'd need to redesign Swift to do this, although it's a chunk of work), but there are certainly designs that would make it harder.
-
Kev
Ge0rG: You say that, but it clearly worked :D
-
daniel
Sure. Depends on the client of course. Maybe swiften was just designed very well
-
Holger
Kev: > The VOIP thing was so that you could leave yourself running in the background to defeat TCP being killed when you're backgrounded. Yes that's how it worked with past iOS versions, AFAIK there's no way to do get that behavior these days. Now you need the VoIP label to get silent notifications, i.e. to have your app woken up rather than notifying the user without waking the app.
-
Kev
I stand corrected.
-
Holger
Kev: > let you poll in the background when receiving a bodyless push You'd still need that VoIP flag to get that 'bodyless push' in the first place. And how does HTTP vs. XMPP help after being woken up?
-
Kev
Keep reading down :)
-
Holger
I did.
-
Kev
It doesn't, you could do the same over XMPP by having a non-session stream making a MAM request.
-
Holger
Ah ok.
-
Kev
As long as you had XMPP-over-TLS, and immediate setup instead of SASL.
- Holger didn't grasp that you were still tackling the same point here.
-
Holger
Right.
-
Holger
daniel: > I think you can create a decent iOS client without VoIP I dunno how you'd avoid "New message" notifications though.
-
Kev
Presumably by sending the content in the push notif, which some people would hate, and others would be quite happy with.
-
jonas’
you can’t do that with OMEMO
-
Holger
With a smarter push mechanism we could avoid sending multiple of those, and once the client *is* woken it can attempt to replace that notification (like ChatSecure already does), but that's not reliable.
-
Holger
Kev: Right.
-
Kev
jonas’: OMEMO is why we can't have nice things :)
-
jonas’
no, broken mobile OSes are why we can’t have nice things (in this case)
-
Holger
Yes it would be nice if we could offer a knob to optionally include message contents.
-
Kev
I think the "can't send bodyless push" thing might be broken (didn't know about that), but otherwise the whole "suspect in background" thing seems quite sensible to me (also the way Android seems to be going).
-
daniel
> daniel: > I dunno how you'd avoid "New message" notifications though. You can replace the content of a message
-
daniel
You get the new message push, catch up with the real one and then replace it
-
daniel
But yes you need to make the push a bit smarter
-
daniel
But that's not rocket science
-
Holger
Kev: Yes, the big difference so far is that Android doesn't restrict silent notifications. But who knows where they're going.
-
Kev
s/suspect/suspend/, obviously.
-
Holger
daniel: Right, that's what ChatSecure is doing. But that means in 86,9% of all cases, users see a "new message!" notification.
-
Kev
So what's WhatsApp doing here - registering as a VOIP app so it can receive push notifs?
-
daniel
I think the go the replacing route. They just don't have false positives
-
Holger
daniel: The ChatSecure app server generates both a 'New message' notification *and* a 'silent' notification. The latter one is unreliable, but *if* it's delivered, the "catch up and replace" thing is attempted. If it's not, there's no way to do that.
-
Holger
Kev, daniel: I would've assumed silent VoIP notifications.
-
Holger
But I dunno.
-
daniel
But the new message ones are reliable as well, no?
-
Kev
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_updates_to_your_app_silently Doesn't say anything about needing to be a VOIP app, AFAICT.
-
Holger
Would be interesting to know what e.g. Signal did before they had VoIP support.
-
Holger
daniel: The 'New message' ones are reliable.
-
Holger
Kev: I'll look it up, it was documented somewhere (and it clearly works that way).
-
daniel
So figure out when a notification should actually trigger a notification, send a reliable one with a dummy body and the modify it to show the actual content
-
daniel
I don't see the problem with that
-
daniel
You get 30s to modify it https://developer.apple.com/documentation/usernotifications/modifying_content_in_newly_delivered_notifications
-
daniel
This only depends on the app server to figure that and then on the client to do the catchup in 30s
-
daniel
That seems achievable
-
Kev
s/catchup/message discovery/
-
Kev
You might do message discovery with catchup, you might employ a different mechanism.
-
daniel
What ever ☺️
-
daniel
What ever meachism you deem fit to fetch a specific message within 30s
-
Kev
Right.
-
Holger
Ahh, right, "Service App Extension". That's a new thing I think, IIRC Chris mentioned that.
-
Holger
That would probably do the trick indeed.
-
Kev
Ok, I've spent a few minutes reading (more than I should, probably), and from what I can tell VOIP pushes will make things better because they're high priority pushes, but shouldn't be necessary for this to work.
-
Holger
Yes yes, I forgot about that thing. Depends on a recent iOS version I think, but apart from that it's probably fine.
-
daniel
I mean 30s is actually *a lot *
-
daniel
I'd be worried if we only had single digit seconds
-
daniel
I mean obviously my users hate metrics and an app 'calling home'. But it'd be fun to get some numbers on the median resume and catch up time in Conversations
-
pep.
Guus, re prices to give to clients, I agree with jonas’ that this will probably discourage others that don't have enough time to allocate. But I also agree that it would be nice to have some kind of incentive
-
Guus
jonas', you here?
-
jonas’
kindof
-
jonas’
Guus, what’s up?
-
Guus
mind popping over to the iteam muc?
-
Guus
Anyone in here that didn't vote yet? 🙂
-
Guus
if so: you're now looking at your IM-client. You might as well pop off a message to memberbot.
- MattJ scurries
-
MattJ
Thanks for the reminder
-
Link Mauve
Thanks, I just did it!
-
Guus
jonas’ kindly commit that missing file 🙂
-
jonas’
Guus, did
-
Syndace
daniel, Dino merged our pr for the 12 bytes IV already, nice ^^
-
daniel
Yes I saw that
-
daniel
Now we need to do something about chatsecure
-
moparisthebest
Guus: it seems like whatever prize the xsf could offer wouldn't be large enough to pay for development, so you still need a dedicated dev who wants it for themselves
-
moparisthebest
And any Dev like that doesn't want to run a crippled phone OS when they can run Android...
-
moparisthebest
Hey if Android keeps getting worse though...
-
Guus
moparisthebest: prize money is an incentive, but not paying for all of the development.
-
Zash
The real prize is the bragging rights for your marketing department if you win
-
moparisthebest
I think there are basically 2 types of devs that would do it
-
moparisthebest
One is with funding and a marketing plan, and it's not gonna be open, line WhatsApp etc
-
moparisthebest
Other is Dev that wants to scratch their own itch, with capability, and using an iPhone full time
-
moparisthebest
I don't think that second one exists
-
MattJ
It shouldn't be overlooked that we have at least two iOS clients already
-
MattJ
It's not necessarily a requirement to write a new one from scratch
-
MattJ
and therefore it may be feasible to fund shorter specific projects on top of existing iOS clients
-
moparisthebest
Yea that seems more feasible
-
Ge0rG
https://op-co.de/tmp/xep-0184.html#format - the "Note:" below example 4. I think I need to tune the wording some more.
-
Ge0rG
Maybe it's time to do some woodwork instead of writing XEPs.
-
daniel
If you started building a bicycle you might not be able to fix it into a car
-
daniel
Especially not as a third party
-
SamWhited
In that case, I feel like xmpp is a bicycle car hybrid where one person keeps taking off bike parts and putting car parts on and one person is doing the opposite and others are just randomly bolting airplane parts on wherever they'll fit.
-
SamWhited
(I missed most context there, but if I interpreted the analogy correctly my point is that I'm starting to think we need a specific mission and set of use cases)
-
daniel
SamWhited: I was talking about clients. I think there is some truth to what you are saying in regards to the protocol but I think it's more severe when it comes to specific clients
-
daniel
A multi use protocol is not an unfixable problem imho
-
daniel
Maybe a hard one
-
SamWhited
ah yah, that applies even better to most clients, assume I was talking about that too
-
jonas’
https://github.com/siacs/Conversations/issues/3125#issuecomment-440398906
-
jonas’
there is a need for a simple way to refer to another message
-
jonas’
references doesn’t have that use-case
-
jonas’
can we get that specified quickly?
-
jonas’
or alternatively rename Message Attaching, because it’s not being used for attaching apparently
-
Zash
What uses it and for what then?
-
jonas’
Zash, see that link please
-
Zash
What, read what I'm commenting on?! Unpossible!
-
Zash
Mkay
-
Zash
Don't make me submit an <in-reply-to/>
-
Zash
or "How to blockchain using thread/@parent"
-
lovetox
im not sure about this for quotation
-
lovetox
but what it actually solves nicely is the case where i want to convey a url with a message
-
lovetox
but i want to encrypt it
-
lovetox
for oob and the sorts, full stanza encryption is necessary
-
lovetox
this would solve this nicely for omemo
-
pep.
Why do we have to fix everything else when we can fix omemo :(
-
lovetox
daniel said last time, in the last sprint they furhter developed the future omemo version
-
lovetox
so i guess it will happen sometime
-
pep.
When it's already too late because the other things around it have been changed?
-
lovetox
its never too late for full stanza encryption
-
lovetox
also it about a different wireformat to evolve from signal
-
pep.
Yeah there's been discussions around that this weekend as well
-
pep.
"Furthermore, even if 3.4 covered our use case other use cases outside our scope would still have to be implemented in order to be compliant with the whole XEP.", I guess people are also often confused by this.
-
pep.
How many people say they support MUC or Pubsub entirely :)✎ -
pep.
How many people say they support MUC or Pubsub :) ✏
-
Ge0rG
lovetox [20:48]: > its never too late for full stanza encryption Nobody expects the Full Stanza Encryption!
-
Ge0rG
Zash [20:35]: > Don't make me submit an <in-reply-to/> And then rewrite Receipts and LMC on top of it!
-
Ge0rG
See discussion in jdev@ today
-
goffi
Do you know this https://omemo.im/ ? The website looks like an aggregation of publicly available informations, and it claims to be open source but I don't see any source code. Smells like malicious app
-
lovetox
its not malicious
-
lovetox
it seems to link for downloads directly to other projects
-
lovetox
like gajim, and zom
-
Zash
Except the Android one
-
lovetox
yes
-
lovetox
thats a bit weird
-
Zash
It links to Conversations in the footer
-
lovetox
but i bet its conversations
-
lovetox
relabeld
-
lovetox
but yeah, i dont know that will help the cause
-
goffi
also here https://www.reddit.com/r/xmpp/comments/9y3ib4/can_you_use_omemo_encryption_across_two_different/ "See omemo.im and test their server and app across yours." by somebody nicknames "omemo82", it doesn't smells good to me
-
goffi
nicknames
-
goffi
nickamed*
-
goffi
arg
-
goffi
nicknamed*
-
Zash
Search for omemo.im on github turns up https://github.com/froghorn82/omemo.im
-
vanitasvitae
THe commit history is... interesting 😀
-
lovetox
dont understand why people dont try to do something productive
-
Zash
Procrastinating makes the world go round ... later.