Process-one
ejabberd
ejabberd@conference.process-one.net
Wednesday, January 23, 2019< ^ >
zinid has set the subject to: ejabberd discussions: https://docs.ejabberd.im
Room Configuration
Room Occupants

GMT+0
[00:00:39] alexis leaves the room
[00:01:22] alexis joins the room
[00:07:41] rincewind leaves the room
[00:08:46] Alberto leaves the room
[00:10:46] rom1dep joins the room
[00:11:56] frainz leaves the room: Machine going to sleep
[00:17:37] rom1dep leaves the room: Machine is going to sleep
[00:17:50] mrDoctorWho joins the room
[00:18:12] rincewind joins the room
[00:18:55] rincewind leaves the room
[00:23:50] frainz leaves the room
[00:23:55] frainz joins the room
[00:32:14] rom1dep leaves the room
[00:32:26] rom1dep joins the room
[00:37:59] rom1dep leaves the room
[00:38:37] rom1dep joins the room
[00:39:53] alexis leaves the room
[00:40:18] alexis joins the room
[00:42:01] cippaciong leaves the room
[00:49:18] rom1dep leaves the room
[00:54:34] alexis leaves the room
[00:54:58] alexis joins the room
[01:02:23] 4223 leaves the room
[01:26:48] mozart leaves the room: Disconnected: Replaced by new connection
[01:26:48] mozart joins the room
[01:29:07] ave leaves the room
[01:37:46] lorddavidiii leaves the room
[01:37:50] lorddavidiii joins the room
[01:38:16] lorddavidiii leaves the room
[01:38:32] lorddavidiii joins the room
[01:38:35] mozart leaves the room
[01:38:35] mozart joins the room
[01:41:29] mrDoctorWho leaves the room
[01:47:17] alexis leaves the room
[01:47:42] alexis joins the room
[01:48:56] alexis leaves the room
[01:49:26] alexis joins the room
[01:49:44] alexis leaves the room
[01:59:45] mozart leaves the room
[01:59:45] mozart joins the room
[02:07:46] VC leaves the room
[02:07:58] VC joins the room
[02:07:58] VC leaves the room
[02:09:00] mrDoctorWho joins the room
[02:09:01] alexis joins the room
[02:09:45] chrys leaves the room
[02:10:42] carlos leaves the room
[02:10:46] carlos joins the room
[02:13:46] alexis leaves the room
[02:14:13] alexis joins the room
[02:17:19] mozart leaves the room: Disconnected: Replaced by new connection
[02:17:20] mozart joins the room
[02:17:20] Licaon_Kter leaves the room
[02:25:30] Licaon_Kter joins the room
[02:26:00] rincewind leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[02:31:18] jeremy leaves the room
[02:31:28] jeremy joins the room
[02:32:53] doctor leaves the room
[02:34:20] Licaon_Kter leaves the room
[02:34:36] Licaon_Kter joins the room
[02:40:40] VC joins the room
[02:40:40] Licaon_Kter leaves the room
[02:41:36] Licaon_Kter joins the room
[03:00:34] maddl joins the room
[03:03:37] Licaon_Kter leaves the room
[03:04:57] mozart leaves the room: Disconnected: Replaced by new connection
[03:04:57] mozart joins the room
[03:29:43] alexis leaves the room
[03:30:07] alexis joins the room
[03:34:49] alexis leaves the room
[03:35:25] alexis joins the room
[03:36:16] alexis leaves the room
[03:38:41] alexis joins the room
[03:40:53] alexis leaves the room
[03:41:20] alexis joins the room
[04:05:20] maddl leaves the room
[04:07:54] alexis leaves the room
[04:08:18] alexis joins the room
[04:09:29] nekit joins the room
[04:13:17] nekit leaves the room
[04:13:18] nekit joins the room
[04:15:54] rincewind joins the room
[04:25:11] 404 joins the room
[04:48:47] alexis leaves the room
[04:49:12] alexis joins the room
[04:52:01] ma1uta joins the room
[04:56:17] alexis leaves the room
[04:57:58] integrationsfigur joins the room
[04:58:39] alexis joins the room
[04:59:26] rincewind joins the room
[05:00:54] maddl joins the room
[05:05:55] ludo joins the room
[05:09:07] alexis leaves the room
[05:09:31] alexis joins the room
[05:10:09] alexis leaves the room
[05:10:31] alexis joins the room
[05:12:13] Marzanna joins the room
[05:12:27] alexis leaves the room
[05:16:32] pod joins the room
[05:17:09] alexis joins the room
[05:19:01] torus371 joins the room
[05:28:33] pod leaves the room
[05:29:11] mozart leaves the room: Disconnected: Replaced by new connection
[05:29:11] mozart joins the room
[05:30:26] alexis leaves the room
[05:30:50] alexis joins the room
[05:31:32] ChaosKid42 joins the room
[05:35:14] alexis leaves the room
[05:35:40] alexis joins the room
[05:45:41] Marzanna leaves the room
[05:50:03] alexis leaves the room
[05:50:27] alexis joins the room
[05:50:55] alexis leaves the room
[05:51:16] alexis joins the room
[05:52:25] Sergio joins the room
[05:53:15] alexis leaves the room
[05:57:24] 404 leaves the room
[06:05:03] alexis joins the room
[06:15:30] torus371 leaves the room
[06:16:07] torus371 joins the room
[06:16:29] lorddavidiii joins the room
[06:18:44] maddl leaves the room
[06:21:58] pod joins the room
[06:22:49] pod joins the room
[06:28:00] lorddavidiii leaves the room
[06:32:43] Odin joins the room
[06:34:31] marek joins the room
[06:37:44] Licaon_Kter joins the room
[06:38:10] lorddavidiii joins the room
[06:41:48] rom1dep joins the room
[06:42:32] cippaciong joins the room
[06:43:15] rincewind leaves the room
[06:45:50] 4223 joins the room
[06:46:00] 4223 leaves the room
[06:46:10] 4223 joins the room
[06:46:29] jonny leaves the room
[06:47:02] Licaon_Kter leaves the room
[06:51:35] jonny joins the room
[06:53:28] ChaosKid42 leaves the room
[06:53:57] alexis leaves the room
[06:55:30] rincewind leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[06:57:34] alexis joins the room
[06:58:07] alexis leaves the room
[06:58:30] alexis joins the room
[06:59:12] ChaosKid42 joins the room
[07:00:29] SouL joins the room
[07:00:30] alexis leaves the room
[07:00:42] maddl joins the room
[07:00:51] Licaon_Kter joins the room
[07:11:06] ta joins the room
[07:13:18] lorddavidiii leaves the room
[07:14:28] alexis joins the room
[07:14:32] sezuan joins the room
[07:15:06] lorddavidiii joins the room
[07:16:50] rincewind joins the room
[07:16:56] ChaosKid42 leaves the room
[07:18:05] frainz leaves the room
[07:18:20] frainz joins the room
[07:21:16] lorddavidiii leaves the room
[07:21:21] ThUnD3r|Gr33n© leaves the room
[07:21:28] alexis leaves the room
[07:22:20] erik leaves the room: Connection failed: timeout
[07:22:46] erik joins the room
[07:22:58] ChaosKid42 joins the room
[07:24:06] lorddavidiii joins the room
[07:24:15] mozart leaves the room: Disconnected: Replaced by new connection
[07:24:27] mozart joins the room
[07:26:16] ThUnD3r|Gr33n© joins the room
[07:27:12] mrDoctorWho leaves the room
[07:27:26] 404 joins the room
[07:27:56] sezuan leaves the room: Rechner geht in den Ruhezustand
[07:29:21] mrDoctorWho joins the room
[07:30:38] mimi89999 leaves the room
[07:31:15] maddl leaves the room
[07:32:04] mimi89999 joins the room
[07:33:06] ChaosKid42 leaves the room
[07:34:12] marek joins the room
[07:35:16] pod leaves the room
[07:44:41] frainz leaves the room
[07:45:06] torus371 leaves the room
[07:45:07] torus371 joins the room
[07:45:09] frainz joins the room
[07:47:45] 404 leaves the room
[07:54:06] marek leaves the room: Machine is going to sleep
[07:54:13] fp joins the room
[07:58:05] ave joins the room
[07:59:20] frainz leaves the room
[07:59:46] frainz joins the room
[08:00:36] Sergio leaves the room
[08:00:38] Sergio joins the room
[08:02:32] pod joins the room
[08:03:34] cromain joins the room
[08:04:52] mozart leaves the room: Disconnected: Replaced by new connection
[08:04:52] mozart joins the room
[08:05:32] jeremy joins the room
[08:07:39] jeremy leaves the room
[08:08:09] bowlofeggs joins the room
[08:09:05] jeremy joins the room
[08:12:14] alexis joins the room
[08:14:02] marc joins the room
[08:17:54] mozart leaves the room: Disconnected: Replaced by new connection
[08:17:55] mozart joins the room
[08:24:14] frainz leaves the room
[08:24:29] frainz joins the room
[08:26:57] SouL leaves the room
[08:27:03] SouL joins the room
[08:28:30] marek leaves the room
[08:30:11] shara joins the room
[08:36:18] rincewind leaves the room
[08:38:05] rincewind joins the room
[08:38:46] doctor joins the room
[08:38:59] <zinid> Holger, regarding mod_push_keepalive, there is wake_all() function which is called on start. So if there are 1M of users it will traverse the whole table with 1M records on start?
[08:40:34] Licaon_Kter leaves the room
[08:41:17] Licaon_Kter joins the room
[08:41:18] mozart leaves the room
[08:41:18] mozart joins the room
[08:41:29] <Licaon_Kter> zinid: _gotta wake them all_
[08:44:23] debalance leaves the room
[08:48:58] <Holger> zinid: That's why it's disabled by default 🙂
[08:49:28] paul leaves the room: Stream closed by us: Replaced by new connection (conflict)
[08:49:34] paul joins the room
[08:51:05] torus371 leaves the room: Disconnected: Replaced by new connection
[08:51:06] torus371 joins the room
[08:51:10] fp leaves the room
[08:51:18] <zinid> damn, I hate all this mobile push crap
[08:51:20] fp joins the room
[08:51:22] marek joins the room
[08:52:38] pod leaves the room
[08:53:07] pod joins the room
[08:53:18] <zinid> Holger, I also have problems creating such complex table for DynamoDB
[08:53:32] <zinid> it requires lookup by jid, node, timestamp, wtf?
[08:53:50] <Holger> I think the whole mod_push_keepalive thing is wrong.  We need to fix MUC notifications and then it can go away.
[08:53:55] <Holger> Ah.
[08:54:00] info-screen leaves the room
[08:54:21] <zinid> how many nodes are we expecting a single JID to have?
[08:54:24] alexis leaves the room
[08:54:38] zuglufttier joins the room
[08:54:42] <zinid> and why we lookup session by timestamp?
[08:54:48] <Holger> I'll check the node lookup.  But it definitely needs to lookup by session.  {JID, Timestamp} is a session ID.
[08:54:48] <zinid> it's a session's timestamp?
[08:54:51] lorddavidiii leaves the room
[08:54:51] <Holger> Yes.
[08:55:00] alexis joins the room
[08:55:10] <zinid> so we keep in disc storage data from RAM storage?
[08:55:17] <Holger> A bare JID can have n nodes for n clients.
[08:55:19] <zinid> and if the node restarts it becomes useless?
[08:55:30] <zinid> is the PushJID bare?
[08:55:34] <Holger> And Daniel asked me to support multiple nodes per full JID just a few ours ago :-)
[08:55:53] <Holger> A the PushJID.  No that's push.conversations.im.
[08:56:04] badlop joins the room
[08:56:21] <Holger> > if the node restarts it becomes useless?
No.
[08:56:39] <zinid> how so? it points to non-existent session, right?
[08:57:16] <zinid> PushLJID = jid:tolower(PushJID),
    Service = jid:encode(PushLJID),
[08:57:20] <Holger> I need to map push registrations to sessions.  At least in order to suppress notifications for connected clients.
[08:57:37] <zinid> that confused be, if PushJID is just namepart, then why we have encode? whatever
[08:57:49] <Holger> So the point is precisely to make sure the session is non-existent before generating a notification.
[08:58:08] <zinid> ah, okay
[08:58:44] <Holger> PushJID *can* have a user part.
[08:58:46] fp leaves the room
[08:59:05] <Holger> I mean the XEP doesn't forbid that, and I use that for unit tests.  And Daniel has plans to abuse it for MUC notifications.
[08:59:21] <zinid> ok, but it's always bare, right?
[08:59:24] frainz leaves the room
[08:59:26] <zinid> it's important
[08:59:37] <Holger> I think it isn't for our tests, I'll have to check.
[08:59:45] <Holger> And Daniel would like to see support for full JIDs.
[08:59:45] frainz joins the room
[09:00:04] <Holger> He wants to register the full client JID for MUC notifications.
[09:00:19] <Holger> To cope with s2s crap and such.
[09:00:27] mozart leaves the room: Disconnected: Replaced by new connection
[09:00:28] mozart joins the room
[09:00:35] alexis leaves the room
[09:00:41] maddl joins the room
[09:01:41] bowlofeggs leaves the room
[09:01:45] <Holger> https://github.com/processone/ejabberd/blob/9e0baef23332/test/push_tests.erl#L186
[09:01:50] <Holger> PushJID = ?config(peer, Config),
[09:01:56] <Holger> That's a full JID, right.
[09:02:28] <Holger> And during the tests it'll receive IQs.  Guess that goes wrong if the IQs are addressed to the bare JID.
[09:02:59] chrys joins the room
[09:04:05] jonny leaves the room
[09:04:24] <zinid> can I use (User, Server, NowTS) as a unique key?
[09:04:31] jonny joins the room
[09:05:44] marek leaves the room
[09:06:06] <Holger> I'd say 'yes'.  One of the things Daniel asked for last night is to have multiple registrations per client.  But I guess that unique key can still lookup a list of registrations.  Or we just say 'no' (he'll cope somehow).
[09:06:39] <Holger> The problem is I'm planning to touch the DB schema anyway, in order to support this MUC notifications idea.
[09:06:45] marc leaves the room
[09:06:58] <Holger> This will be another case where my changes would create work for you I guess :-/
[09:07:21] marek joins the room
[09:08:07] <zinid> > But I guess that unique key can still lookup a list of registrations
Not, it's not possible with dynamo
[09:08:22] marek joins the room
[09:08:29] <zinid> the point of unique key is to point to a single item
[09:08:38] <Holger> I mean I'll need some identifyer different from the session timestamp.  But maybe I can abuse the *timestamp* field without schema change.  I didn't think this through yet.
[09:08:39] <Holger> Ok.
[09:08:49] prefiks joins the room
[09:09:23] debalance joins the room
[09:11:13] jeremy leaves the room
[09:11:55] <Holger> zinid: So I'd say go for it, we just support a single registration per (User, Server, NowTS).
[09:13:11] <Holger> zinid: I lost track.  Your other problems are registration of a full PushJID, and supporting Lookups of (LUser, LServer, PushJID, Node)?
[09:14:03] jeremy joins the room
[09:14:16] mightyBroccoli joins the room
[09:14:36] mightyBroccoli joins the room
[09:14:46] <zinid> Holger, dynamo only supports (hash-key, index-key) as unique pointer to the item, so I'm going to use (server@user, timestamp) for this, and will use pushjid as an index (only a single index in lookups is supported)
[09:14:47] nico joins the room
[09:15:18] <zinid> in this case I can implement all functions in mod_push backend module
[09:15:25] debalance leaves the room
[09:15:31] <Holger> Ok.
[09:15:50] mozart leaves the room: Disconnected: Replaced by new connection
[09:15:51] mozart joins the room
[09:15:51] <zinid> if you change something I obviously need completely destroy and re-create the table
[09:15:59] <zinid> and rewrite the majority of code ;)
[09:16:03] <Holger> Sigh.
[09:16:16] <Holger> I'll try my best to minimize changes.
[09:16:24] <Holger> But I think the feature would be good.
[09:16:28] <zinid> just let's discuss what you want to do
[09:17:25] <Holger> The idea is letting the (local or remote) client subscribe to 0357 notifications generated by the MUC room.
[09:18:00] <zinid> maybe fuck this? we're going to use MIX anyway with Daniel
[09:18:13] <Holger> I.e. when the client joins a room, it sends the push <enable/> to the room JID rather than its own account JID.
[09:18:30] <Holger> MIX ...
[09:18:56] <zinid> so a single session will be bounded to multiple (pushjid, node)?
[09:19:09] <Holger> > we're going to use MIX anyway
That's what the XSF tells me whenever I try to fix MUC fuckup.
[09:19:52] <zinid> Holger, well, currently it's not just empty talks, we have some code in ejabberd already which implements the core XEP fully
[09:19:56] <Holger> The registration will no longer be bound to a c2s session.  But to the client's "MUC session".
[09:20:06] <Holger> Yes I know.
[09:20:50] <Holger> If you convince Daniel that MUC support is no longer needed I'll shut up.
[09:20:57] bowlofeggs joins the room
[09:21:05] joekokker leaves the room: Stream closed by us: Replaced by new connection (conflict)
[09:21:06] joekokker joins the room
[09:21:09] maddl leaves the room
[09:22:09] <zinid> > The registration will no longer be bound to a c2s session.  But to the client's "MUC session".
I don't understand this. What will be the identificator of "MUC session"? NowTS still?
[09:22:29] <Holger> > I mean I'll need some identifyer different from the session timestamp.  But maybe I can abuse the *timestamp* field without schema change.  I didn't think this through yet.
[09:22:52] <Holger> I started thinking about this stuff a few hours ago.
[09:22:57] <Holger> Coincidence ...
[09:23:34] joekokker leaves the room: Stream closed by us: Replaced by new connection (conflict)
[09:23:36] joekokker joins the room
[09:23:44] Holger leaves the room
[09:24:04] <zinid> Holger, you have delete_old_something() btw, so you still need timestamps ;)
[09:24:29] Holger joins the room
[09:24:38] <Holger> Heh, right.  Maybe I can just use the time the client joined or something.
[09:25:25] <zinid> maybe we can put thoughts into it? In the next few days. It's not that urgent, I can wait a bit
[09:25:46] <zinid> god thanks I asked you :)
[09:25:47] flow joins the room
[09:26:25] <Holger> Yes sure!  I'll have a look, maybe I can come up with questions/suggestions.
[09:27:37] <zinid> but the idea of all these hacks already looks complicated, hehe
[09:27:56] <zinid> I think with all these it's impossible to write either client or a server from scratch ;)
[09:29:44] nico leaves the room
[09:29:44] mightyBroccoli leaves the room
[09:29:55] <zinid> but honestly, if you still need timestamps, I don't see many variants
[09:32:08] <Holger> You want push notifications for groupchat messages.  They must be generated either by your local server or by the MUC service.  Right now we're leaving it to your local server (which requires mod_push_keepalive hacks which are terrible).  Letting the MUC service generate the notification directly doesn't necessarily feel hacky to me.
[09:33:04] shara leaves the room
[09:33:05] shara joins the room
[09:34:11] frainz leaves the room
[09:34:27] shara leaves the room
[09:34:29] shara joins the room
[09:34:44] <Holger> I mean you avoid one hop in the conference.remote.com --> local.example.com --> push.conversations.im chain.
[09:34:59] nico joins the room
[09:35:09] <zinid> okay, but the MUC service also should support this, right?
[09:35:10] <Holger> But I guess with MIX it might be more natural to leave push notifications to the local server like we're doing right now.
[09:35:12] mightyBroccoli joins the room
[09:35:24] <Holger> Yes only the MUC service needs to support this.
[09:35:26] frainz joins the room
[09:35:37] <Holger> So groupchat notifications will work even if your local server doesn't support 0357 :-)
[09:35:46] <Holger> Like MUC MAM works when the MUC service supports it.
[09:37:00] debalance joins the room
[09:41:37] <zinid> okay, I suggest the following:
1) instead of NowTS we use just integer identifier. In the case of c2s it will be a session timestamp, in the case of MUC it will be hash(muc)
2) we also provide a real time which will be used in purging. In the case of c2s it will be just equal to a session timestamp. Actually it's better to use "expire" for this, so for example DynamoDB can purge it automatically.
[09:41:48] <zinid> but all this requires schema changes
[09:42:22] <zinid> or we don't need integer, just any binary
[09:43:15] jonny leaves the room
[09:43:22] <zinid> or maybe you have better ideas, dunno ;)
[09:44:28] jonny joins the room
[09:44:51] debalance leaves the room
[09:45:23] <Holger> I'll have a look at the code and think about it a bit, better than adding confusion by talking crap.
[09:48:24] mozart leaves the room
[09:50:51] debalance joins the room
[09:54:29] mozart joins the room
[09:58:30] bowlofeggs leaves the room
[09:58:30] bowlofeggs joins the room
[09:59:21] shara leaves the room
[09:59:22] shara joins the room
[09:59:38] bowlofeggs leaves the room
[10:14:49] 404 joins the room
[10:16:25] Alexander joins the room
[10:18:29] doctor leaves the room
[10:28:53] <Holger> zinid: One step back please.  The timestamp/ID issue (and your Dynamo limitations) aside.  What I need for the main lookup is:
For 1:1: BareUserJID --> [PushRegistrations]
For MUC: BareRoomJID --> [PushRegistrations]
Maybe storing the [PushRegistrations] as a single value would do the trick.  Leave it to mod_push.erl to iterate/filter the list.  *Except* I donnu how to do expiry then, without traversing the full table.
[10:29:02] <Holger> Expiry is somewhat optional though :-)
[10:29:23] ThUnD3r|Gr33n© leaves the room
[10:30:11] doctor joins the room
[10:30:34] bowlofeggs joins the room
[10:32:30] <Licaon_Kter> zinid:
>  just slow down arrival rate
That's helps with the initial storm, memory wise, but not CPU wise since those users add a load.
So yeah, 550 is kinda max (at least for my RPi3+ on plain Debian *arm64*; some internet testers found that while there's a gain in speed on 64bit, but more memory is used).
Not sure I'll bother with the official 32bit Raspbian, as I'm pretty bored to look at those (otherwise nice) graphs.
[10:42:15] <zinid> Holger, the problem with the multiple items per key is read-modify-write races, do we have such races?
[10:42:48] <Holger> zinid: Good point.  Answer is probably "yes".  Sigh.
[10:43:40] <Holger> Transacations yay yay yay.
[10:44:39] 404 leaves the room
[10:45:43] <zinid> yeah, no-brainer ;)
[10:46:02] <Holger> So with Dynamo you only have an index on a single unique key (plus explicit expiry support)?
[10:47:08] <zinid> Holger, I have a *compound* key consisting of hashkey and rangekey plus multiple indexes, but only one index can be used for efficient query (multiple indexes scanning will work at O(N))
[10:47:31] <Holger> Ah.
[10:47:53] cantor joins the room
[10:48:09] <zinid> well if I limit scanning to hashkey only (user@server in our case) then it's efficient though
[10:48:11] torus371 leaves the room
[10:48:11] torus371 joins the room
[10:48:35] <zinid> we don't expect hundreds of sessions per jid, right?
[10:48:46] <Holger> For rooms we might.
[10:48:53] shara leaves the room
[10:48:54] <zinid> haha
[10:49:01] <zinid> what an excellent module :)
[10:49:06] <zinid> even hard than mam, lmao
[10:49:10] <zinid> *harder
[10:49:30] <Holger> A groupchat message is sent to room@muc.example.com, so I need to look up all push notification recipients for that room.
[10:50:02] doctor leaves the room
[10:50:19] <zinid> oh great :)
[10:50:47] <Holger> Performance-wise a transaction might be okay.  I mean the table is usually only written to on <enable/>.
[10:51:30] shara joins the room
[10:51:42] <zinid> I don't have transactions in dynamo
[10:51:47] <Holger> Hah.
[10:52:00] <zinid> well, there are some (kinda), but I don't want to mess with them
[10:52:24] <zinid> they have even more limitation, because transactions are meaningless in distributed systems
[10:52:37] <Holger> Okay.  So I need a weirdo-schema to cope with DB engines.
[10:53:15] <zinid> for the record, performance wise dynamo is damn good
[10:53:28] <zinid> also, capacity wise, you can store terabytes there
[10:53:39] <zinid> also it's cheaper in comparison to full blown SQL instance
[10:54:04] <Holger> Would be bad if ditching features wouldn't help with performance :-P
[10:54:19] <zinid> Holger, MongoDB :D
[10:54:23] <Holger> Haha.
[10:54:28] <zinid> or Riak
[10:54:45] <Holger> Performs bad?  I have zero Riak experience.
[10:54:52] <zinid> Holger, yes, terrible
[10:55:00] <zinid> psql is like 10 times faster
[10:55:20] <zinid> but in comparison with dynamodb, psql sucks
[10:55:26] <Holger> k
[10:55:35] <zinid> I was able to make 50k writes per second in dynamo
[10:55:59] <zinid> and I think I could do more, just didn't check it
[10:56:28] <zinid> I don't know what I should do with my psql instance to reach that level
[10:56:46] <Holger> Can you self-host DynamoDB?
[10:56:51] <zinid> Holger, no
[10:57:03] <Holger> k.  Well nobody self-hosts these days anyway.
[10:57:12] <zinid> I think that's the point, they have like million nodes cluster, that's why they are fast
[10:59:44] <zinid> initially for amazon they reported 900 nodes, but when they went dynamo hosting I think million is the right estimation
[10:59:57] <Holger> Nice :-)
[11:00:10] <zinid> since they use consistent-hashing it's scalable to billions, so why care
[11:00:18] frainz leaves the room
[11:00:26] frainz joins the room
[11:00:41] maddl joins the room
[11:02:00] maddl leaves the room
[11:02:58] info-screen joins the room
[11:11:17] torus371 leaves the room
[11:11:45] joekokker leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[11:13:09] mozart leaves the room
[11:13:35] fp joins the room
[11:13:52] doctor leaves the room
[11:13:53] doctor joins the room
[11:16:14] panpansh leaves the room
[11:16:16] <Holger> I think the only reason besides expiry support for needing the session timestamp is that I didn't want to rely on the assumption that different clients won't use the same resource string.  Client A goes online, enables push, goes offline, client B goes online with the same resource string.  A message arrives.  If mod_push now checked whether the *resource* string is still online, it would wrongly suppress the notification.
[11:17:10] <Holger> Maybe that's overcautious and we can just assume unique resource strings.  In that case I wouldn't need a timestamp for MUC-Push (except for expiry).
[11:18:41] <zinid> dunno :)
[11:18:49] shara leaves the room
[11:18:57] <Holger> Otherwise I see no alternative to adding a "session timestamp" to https://github.com/processone/ejabberd/blob/9e0baef23/include/mod_muc_room.hrl#L74
[11:19:19] <Holger> But I see how this would be a bit invasive just for my purpose.
[11:19:49] mozart joins the room
[11:20:59] <Holger> Or I could rely on resource strings for MUC and keep the timestamp for 1:1 :-)  Makes sure nobody will ever again understand the code.
[11:24:16] joekokker joins the room
[11:25:03] <Holger> To make things more complicated I think it *would* be good to support multiple push registrations per client (regardless of Daniel's request).  I can imagine other use-cases, and 0357 sounds like this should work.
[11:25:53] <Holger> So assuming I'll rely on resource strings, the unique key would be {FullUserJID, PushJID, PushNode}.
[11:26:52] <zinid> Holger, so how should I encode this in hashkey+rangekey?
[11:27:56] shara joins the room
[11:28:23] <Holger> Won't that work as a hashkey?  (No range involved?)
[11:28:44] <zinid> then how to lookup by FullUserJID?
[11:29:25] <Holger> Probably not needed.  All in all the fields would be something like this: [{FullUserJID, PushJID, PushNode}, BareUserOrRoomJID, XML, TimestampForExpiry].   When a message arrives, I'll look up BareUserOrRoomJID.
[11:30:08] <zinid> so there will be an index on BareUserOrRoomJID?
[11:30:10] <Holger> I might look up {FullUserJID, PushJID, PushNode} when the client sends <disable/>.
[11:30:24] <Holger> Ah no then I'd need the BareUserJID dammit.
[11:30:28] <Holger> zinid: Yes.
[11:30:36] <Holger> I certainly need that.
[11:30:43] <zinid> well I can use BareUserJID as index
[11:31:15] <zinid> lmao, you will need a complete redesign of the module and its tables ;)
[11:31:52] <Holger> Yeah I would probably just always use BareUserOrRoomJID as the lookup key when reading from the DB (except expiry).
[11:32:11] <Holger> {FullUserJID, PushJID, PushNode} is only needed for your uniqueness requirement.
[11:32:50] <Holger> But I'm just thinking out loud, still unsure.
[11:34:29] <Holger> Damn I think this is only almost correct.  Per 0357 you can't have different full JIDs with the same {PushJID, PushNode} tuple.  So!
[11:35:13] <Holger> [{{LUser, LServer}, PushJID, PushNode}, LResource, BareUserOrRoomJID, XML, TimestampForExpiry].
[11:35:20] <Holger> ...
[11:35:50] bowlofeggs leaves the room
[11:35:54] <Holger> "Upgrade notes for 19.02: DITCH YOUR push_session TABLE!"
[11:36:48] <zinid> yeah, now I only need to understand how to concatenate those 3 values into a single string key
[11:37:13] <Holger> term_to_binary?
[11:37:27] <zinid> Holger, nah, I typically avoid that
[11:37:34] <Holger> Why?
[11:37:48] <zinid> Holger, because it looks weird in dynamo admin console
[11:37:52] <Holger> Ah.
[11:38:12] <zinid> I will use (server@user/node, pushjid)
[11:38:15] <Holger> So is there a safe separator?
[11:38:28] <zinid> if the jid is bare we can use /
[11:38:51] <Holger> A node name won't include ", "? :-)
[11:39:04] <zinid> I will not use jid:decode
[11:39:08] <zinid> so I don't care
[11:39:26] <zinid> probably better to have (server@user/pushjid, node)
[11:40:54] marek leaves the room
[11:40:59] <Holger> pushjid could be "u@s/r, x" though I guess.  Ok the ", x" part probably won't happen in practice.[tm]
[11:41:35] <Holger> If you split on the first "/" and the last ", " then yes I guess it'll work in practice.
[11:41:58] <zinid> I don't understand why would I care, dynamo doesn't care what's there in the string
[11:42:13] <zinid> and I will use binary:split()
[11:42:31] <zinid> so I don't care what will be there after "/"
[11:43:18] <zinid> ah, I don't even need to split anything
[11:43:26] <zinid> just to make sure this will be unique
[11:44:05] <zinid> so, hashkey is server@user/pushjid, rangekey is node (it doesn't matter though in our case, just for the sake of separation)
[11:44:13] <Holger> If you split after the first "/" that splitting is safe, yes.  But you also need to split pushjid vs. node, no?  And I was wondering whether ", " is a safe separator.
[11:44:20] <zinid> no
[11:44:21] <Holger> Ah.
[11:44:25] <zinid> node is a rangekey
[11:44:29] <Holger> kk
[11:44:35] <zinid> it's separated from hashkey by design
[11:44:43] <Holger> Yes I missed that part.
[11:45:24] <Holger> Mickaël is bored?
[11:45:51] <Holger> Or has given up getting his slaves to clean up the trackers? :-)
[11:45:53] <zinid> ah, fuck
[11:46:14] <zinid> I cannot make index queries without providing a hashkey :)
[11:46:21] <Holger> $%^&*()P
[11:46:22] <zinid> somehow forgot about that, lmao
[11:46:27] <Holger> BUT IT'S FAST!
[11:46:48] <zinid> Holger, and distributed
[11:47:02] <zinid> I also want to see how you will implement distributed database without hashkeys ;)
[11:47:16] <zinid> well, there are global indexes :)
[11:47:34] <Holger> Maybe I should do client development.
[11:48:16] <zinid> Holger, and instead of zoo of databases you will cope with mega zoo of devices ;)
[11:48:31] <Holger> True.
[11:49:09] <zinid> also, client development sucks because OOP aproach to writing GUI is totally rotten
[11:49:33] <Holger> Okay so I need to look up multiple values for a key but the key must be unique and I can't use transactions.
[11:50:20] Holger goes making coffee.
[11:52:21] <zinid> Holger, currently you have barejid in every query
[11:52:42] <zinid> actually current design is possible to implement, you just want to make everything more complicated :D
[11:53:03] Holger leaves the room
[11:53:31] <Holger> What's the hashkey with the current design?
[11:53:37] <zinid> user@server
[11:53:44] <zinid> well, it's server@user, but whatever
[11:53:59] <Holger> But that's not unique of course?
[11:54:00] <zinid> and nowts is rangekey
[11:54:03] <Holger> Ah.
[11:54:09] <zinid> with rangekey it's unique
[11:54:13] <Holger> (hash, range) must be unique.
[11:54:15] <Holger> Right.
[11:55:11] <zinid> well you cannot read push users by room jid in this design :)
[11:55:17] <Holger> Yup.
[11:55:31] <zinid> I see only a separate table
[11:56:03] <zinid> at least for dynamo I can do that, but it will require 2 PUT requests at every write
[11:56:18] <Holger> You lost me.
[11:56:33] Holger joins the room
[11:56:40] <Holger> A for MUC I would use *both* tables?
[11:57:53] <zinid> I don't think you need that for mnesia and sql
[11:58:01] <zinid> that will be my headache
[11:58:08] <zinid> with dynamo
[11:58:47] <Holger> Yeah, I was just trying to take your headache into account :-)
[11:59:45] info-screen leaves the room
[12:00:10] <zinid> I can use global index after all
[12:01:38] <zinid> but global indexes don't guarantee read-your-writes ;)
[12:02:17] <zinid> so you write an item, then there is some probability that you won't be able to read by the index, because the data is not propogated to the global index table yet
[12:03:07] <zinid> > Because of this, your applications need to anticipate and handle situations where a query on a global secondary index returns results that are not up-to-date.
[12:05:04] <Holger> Probably not an issue in practice for this use case.
[12:05:11] <zinid> maybe
[12:06:02] info-screen joins the room
[12:07:44] 404 joins the room
[12:08:23] <zinid> I actually don't understand why mod_push should care about mapping of rooms to pushed users
[12:08:34] <zinid> sounds to me like this table should be maintained by mod_muc
[12:09:09] <zinid> since mod_muc is a push application server in our case
[12:09:19] <Holger> Isn't this like saying ejabberd_c2s should maintain the push table for 1:1 pushes?
[12:09:29] <Holger> Hrm.
[12:09:55] <zinid> but ejabberd_c2s doens't maintain any tables ;)
[12:10:06] mozart leaves the room
[12:10:33] <zinid> and I think this is different
[12:11:11] <zinid> I think it should be mod_muc_push or something with its own table
[12:11:24] <zinid> weird shit
[12:11:39] <Holger> mod_push implements the optional 0357 extension.  We usually (not always) have a module per XEP, but of course it could be done differently.
[12:11:49] <Holger> mod_muc_push hrn.
[12:11:57] jannic leaves the room
[12:12:15] <zinid> Holger, I don't see in the XEP how mod_push should maintain a reverse table pushjid -> jids
[12:12:16] <Holger> I would assume there won't be much MUC-specific code in there.
[12:12:27] <Holger> At least no more than in mod_mam.
[12:12:40] <zinid> a just suggest a separate table then
[12:13:01] <zinid> irrespective of where the code will be located
[12:13:14] <Holger> Reverse table?
[12:13:32] <zinid> we currently have jid -> pushjids, now you want the reverse, yes
[12:14:07] marek joins the room
[12:14:19] <Holger> Nah.  What I *really* want is what I said above.  BareMessageRecipient --> [PushRegistrations].  Both for 1:1 and MUC.
[12:14:33] <Holger> The rest is working around DB engine requirements.
[12:14:47] <Holger> PushJID is push.conversations.im.
[12:14:53] bowlofeggs joins the room
[12:14:54] bowlofeggs leaves the room
[12:14:56] bowlofeggs joins the room
[12:15:02] <zinid> you also want PushJID -> [PushRegistrations] or something, don't you?
[12:15:07] bowlofeggs leaves the room
[12:16:25] mozart joins the room
[12:16:36] <Holger> $ grep '^lookup_session' src/mod_push_sql.erl
lookup_session(LUser, LServer, PushJID, Node) ->
lookup_session(LUser, LServer, NowTS) ->
lookup_sessions(LUser, LServer, PushJID) ->
lookup_sessions(LUser, LServer) ->
lookup_sessions(LServer) ->
[12:16:45] <zinid> that's in current design
[12:16:48] <Holger> ... is what I'm currently doing.
[12:16:52] <Holger> Yes.
[12:17:05] <zinid> yes, I obviously know what you're doing currently ;)
[12:17:13] <zinid> already :)
[12:17:42] <zinid> and **this** I can implement easily
[12:19:21] frainz leaves the room
[12:19:27] frainz joins the room
[12:20:56] <Holger> Sorry I need to get back to work.  Gonna think about it ASAP.  Maybe you're right and this should just go into a separate table, dunno.
[12:22:13] jannic joins the room
[12:22:53] frainz leaves the room
[12:23:15] frainz joins the room
[12:31:04] integrationsfigur leaves the room
[12:31:59] ChaosKid42 joins the room
[12:33:13] torus371 joins the room
[12:33:24] bowlofeggs joins the room
[12:40:09] mightyBroccoli leaves the room
[12:40:24] mightyBroccoli joins the room
[12:41:29] integrationsfigur joins the room
[12:42:06] panpansh joins the room
[12:44:39] <Holger> zinid: So how would the separate table look like?  [(RoomJID, {User, Server, PushJID, Node}), Resource, TS], something like this?
[12:45:20] <zinid> well I don't know what info a room needs
[12:45:38] <Holger> Would that work?
[12:45:53] <zinid> I don't know the purpose, I cannot answer
[12:46:05] <zinid> roomjid is pushjid, no?
[12:46:17] <Holger> No.  PushJID is p2.siacs.eu.
[12:46:38] <zinid> sigh
[12:48:28] <Holger> I'd need to lookup either all (RoomJID, _) records or read/write the (RoomJID, {User, Server, PushJID, Node}) record.
[12:49:28] <Holger> (Right now I also support disabling all {User, Server, PushJID, _} records because the XEP supports that, but I doubt that's useful in practice, I could just return an error if <disable/> doesn't include a Node.)
[12:50:08] frainz leaves the room
[12:50:21] mrDoctorWho joins the room
[12:50:42] frainz joins the room
[12:51:10] <Holger> So not good either?
[12:51:17] frainz leaves the room
[12:51:39] frainz joins the room
[12:52:29] frainz leaves the room
[12:52:34] daniel joins the room
[12:52:50] frainz joins the room
[12:54:28] <daniel> I wasn't reading the entire backlog but for MUC we probably need disable.
[12:54:37] <daniel> You'll sent that when you leave
[12:55:00] <daniel> But I'm sure the client can be bothered to include the node or whatever else is necessary
[12:55:47] <Holger> Yes disable is fine, just not sure the client needs support for <disable/> without node attribute.
[12:56:59] <Holger> I mean I don't see the use case.  You don't want to disable notifications for other Conversations instances.
[12:57:34] <daniel> Right
[12:58:01] <Holger> I already reject <enable/> without node attribute even though (as usual) the XEP only says it SHOULD be included.
[12:59:04] marek leaves the room: Machine is going to sleep
[12:59:29] frainz leaves the room
[12:59:49] frainz joins the room
[13:00:05] <daniel> Yes. Enable w/o node doesn't make much sense
[13:01:05] badlop leaves the room
[13:01:10] badlop joins the room
[13:01:34] lorddavidiii joins the room
[13:02:00] ChaosKid42 leaves the room
[13:02:39] frainz leaves the room
[13:03:00] frainz joins the room
[13:03:50] frainz leaves the room
[13:04:09] frainz joins the room
[13:07:11] maddl joins the room
[13:07:12] maddl leaves the room
[13:11:26] <zinid> and pushjid is full or bare?
[13:13:42] info-screen leaves the room
[13:17:24] <Holger> Usually bare, but the tests need support for full.  And daniel would like to (ab)use that too.
[13:24:31] mozart leaves the room
[13:30:19] mozart joins the room
[13:30:48] erik leaves the room: Stream closed by us: Replaced by new connection (conflict)
[13:30:56] erik joins the room
[13:31:32] erik leaves the room: Stream closed by us: Replaced by new connection (conflict)
[13:31:36] erik joins the room
[13:34:52] Marzanna joins the room
[13:39:08] 404 leaves the room
[13:43:20] Alexander leaves the room
[13:44:18] Alexander joins the room
[13:46:05] Akasch joins the room
[13:47:21] chrys leaves the room
[13:47:24] Sergio leaves the room
[13:47:26] Sergio joins the room
[13:48:37] mozart leaves the room
[13:49:32] <panpansh> hey, hello everyone, I'm using OTR, sending image, but images is on the server and accessible
[13:51:18] cantor leaves the room
[13:51:38] info-screen joins the room
[13:54:03] <Licaon_Kter> panpansh: but encrypted....
[13:54:20] <Licaon_Kter> Or else...your client is broken...which client?
[13:54:54] frainz joins the room
[13:55:16] <panpansh> xabber
[13:55:33] ma1uta leaves the room
[13:55:40] <Licaon_Kter> Try Conversations Legacy too
[13:57:14] <panpansh> ok
[13:57:32] info-screen leaves the room
[13:57:46] <panpansh> its a client side problem ejabberd store it but encrypted ok
[14:02:30] badlop leaves the room
[14:08:51] ave leaves the room
[14:09:06] vogt leaves the room
[14:09:34] mozart joins the room
[14:10:44] vogt joins the room
[14:10:57] daniel joins the room
[14:11:26] panpansh leaves the room
[14:11:44] panpansh joins the room
[14:16:04] mrDoctorWho leaves the room: Machine is going to sleep
[14:16:06] jeremy leaves the room
[14:20:18] zuglufttier leaves the room
[14:30:32] info-screen joins the room
[14:34:06] mozart leaves the room: Disconnected: Replaced by new connection
[14:34:06] mozart joins the room
[14:34:13] 404 joins the room
[14:38:00] jeremy joins the room
[14:39:54] doctor joins the room
[14:44:01] 4223 leaves the room
[14:44:40] jeremy leaves the room
[14:51:26] adrien joins the room
[14:53:48] jeremy joins the room
[14:59:21] <panpansh> https://github.com/redsolution/xabber-android/issues/861
[14:59:30] doctor leaves the room
[14:59:48] <panpansh> closed in less 5 minutes hhh
[15:01:31] Alexander leaves the room
[15:02:32] cromain leaves the room
[15:02:34] jeremy leaves the room
[15:04:05] <Licaon_Kter> panpansh: looks fixed to me :))
[15:04:55] <daniel> Well thankfully xabber is not the only client. Conversations can do e2ee image transfers that is compatible to gajim, dino and chatsecure
[15:05:18] <daniel> Not with otr. But omemo > otr anyway
[15:05:21] ave leaves the room
[15:08:08] Holger leaves the room
[15:08:43] cromain joins the room
[15:09:36] Holger joins the room
[15:09:48] ave joins the room
[15:13:56] jeremy joins the room
[15:14:28] <panpansh> otr is most secure in point of view
[15:14:31] adrien leaves the room
[15:16:30] mozart leaves the room: Disconnected: Replaced by new connection
[15:16:30] mozart joins the room
[15:16:48] Holger leaves the room
[15:17:41] ChaosKid42 joins the room
[15:20:50] <panpansh> I don't want multi devices and new keys each time I start it. I want challenge to auth my contact from ONE device. did you see ?
[15:21:15] <panpansh> s/and new keys each time I start it/and want new keys each time I start it/
[15:24:20] Holger joins the room
[15:31:18] Holger leaves the room
[15:33:23] rincewind leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[15:36:53] nekit leaves the room
[15:36:53] nekit joins the room
[15:37:38] ChaosKid42 leaves the room
[15:39:26] marek joins the room
[15:43:57] nekit leaves the room
[15:43:59] nekit joins the room
[15:44:41] Holger joins the room
[15:45:29] daniel leaves the room
[15:45:32] daniel joins the room
[15:47:01] rincewind joins the room
[15:52:56] Holger leaves the room
[15:54:51] Holger joins the room
[15:55:54] doctor joins the room
[15:58:15] cromain leaves the room
[15:58:41] jeremy leaves the room
[16:00:10] rincewind leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:01:01] Holger leaves the room
[16:01:29] bowlofeggs leaves the room
[16:03:46] Holger joins the room
[16:04:03] jannic leaves the room
[16:04:17] fp leaves the room
[16:05:21] adrien joins the room
[16:05:53] adrien leaves the room
[16:12:08] jannic joins the room
[16:13:48] <Licaon_Kter> panpansh: that's not true.....do you get a new key on each start?
[16:15:45] doctor leaves the room
[16:16:20] <panpansh> when I close the connection and restart it I can't read the content of precedent encrypted messages. idk if really yes but it looks like yes
[16:18:34] <Licaon_Kter> panpansh: nevermind, do your thing
[16:18:59] cromain joins the room
[16:19:49] jonny leaves the room
[16:20:09] <panpansh> lol ok I have the same key on the client I can't read it on another client sorry
[16:21:10] pod leaves the room
[16:22:11] <panpansh> I don't want multi devices. I want challenge to auth my contact from ONE device. => stay true
[16:22:39] <panpansh> (omemo vs otr)
[16:25:53] torus371 leaves the room
[16:26:24] <Licaon_Kter> panpansh: what client?
[16:27:15] ChaosKid42 joins the room
[16:34:08] joekokker leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:35:06] joekokker joins the room
[16:39:13] ChaosKid42 leaves the room
[16:41:36] Holger leaves the room
[16:42:14] Holger joins the room
[16:44:22] zuglufttier joins the room
[16:47:10] ChaosKid42 joins the room
[16:48:21] zuglufttier leaves the room
[16:51:50] erik leaves the room: Connection failed: timeout
[16:53:41] Holger leaves the room
[16:54:24] Holger joins the room
[16:54:27] vogt joins the room
[16:56:38] nico leaves the room
[16:56:43] nico joins the room
[16:57:36] ChaosKid42 leaves the room
[16:57:52] mightyBroccoli leaves the room
[16:58:04] mightyBroccoli joins the room
[17:00:42] maddl joins the room
[17:00:45] maddl leaves the room
[17:02:41] torus371 joins the room
[17:02:42] jannic leaves the room
[17:05:23] nico leaves the room
[17:05:29] nico joins the room
[17:07:50] Holger leaves the room
[17:08:41] Holger joins the room
[17:11:08] ta leaves the room
[17:13:26] shara leaves the room
[17:13:28] jannic joins the room
[17:13:28] shara joins the room
[17:15:02] nico leaves the room
[17:15:03] nico joins the room
[17:16:01] nico leaves the room
[17:16:02] nico joins the room
[17:27:56] chrys joins the room
[17:28:07] mightyBroccoli leaves the room
[17:31:39] prefiks leaves the room
[17:33:23] marc joins the room
[17:34:05] cromain leaves the room
[17:34:40] fp joins the room
[17:39:22] jonny joins the room
[17:40:16] fp joins the room
[17:40:37] nekit leaves the room
[17:40:37] nekit joins the room
[17:41:30] nico leaves the room
[17:42:23] nico leaves the room
[17:42:23] nico joins the room
[17:44:21] nico joins the room
[17:50:14] nico leaves the room
[17:50:15] nico joins the room
[17:50:37] marc leaves the room
[17:59:01] marek leaves the room: Machine is going to sleep
[17:59:22] 404 leaves the room
[18:05:58] erik joins the room
[18:09:53] nico leaves the room
[18:09:59] nico joins the room
[18:13:49] m7273 joins the room
[18:19:00] nico leaves the room
[18:19:00] nico joins the room
[18:19:42] nico leaves the room
[18:19:43] nico joins the room
[18:26:29] Sergio joins the room
[18:26:47] ChaosKid42 joins the room
[18:27:58] ta leaves the room: Disconnected: Replaced by new connection
[18:28:08] ta joins the room
[18:29:23] chrys joins the room
[18:29:32] torus371 leaves the room
[18:29:40] shara leaves the room
[18:31:34] m7273 leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[18:31:58] nico leaves the room
[18:31:58] nico joins the room
[18:32:44] nico leaves the room
[18:32:44] nico joins the room
[18:36:10] chrys leaves the room
[18:37:25] tyler joins the room
[18:38:33] marc joins the room
[18:39:47] mozart leaves the room
[18:40:37] mozart joins the room
[18:42:14] tyler joins the room
[18:43:15] cippaciong joins the room
[18:44:22] m7273 joins the room
[18:44:56] nico leaves the room
[18:44:56] nico joins the room
[18:45:10] mightyBroccoli joins the room
[18:46:19] mozart leaves the room: Disconnected: Replaced by new connection
[18:47:58] Akasch leaves the room: Rechner geht in den Ruhezustand
[18:49:15] cippaciong leaves the room
[18:49:17] mozart joins the room
[18:55:44] shara joins the room
[18:57:41] <panpansh> https://user-images.githubusercontent.com/790586/51629870-f9c42b00-1f48-11e9-8462-19b6c2bc5b67.jpg
[18:57:45] <panpansh> hhh
[18:58:26] chrys joins the room
[18:59:37] daniel leaves the room
[18:59:54] ma1uta joins the room
[19:02:41] ChaosKid42 leaves the room
[19:02:43] info-screen leaves the room
[19:03:58] mightyBroccoli leaves the room
[19:03:58] nico leaves the room
[19:04:43] nico joins the room
[19:04:56] mightyBroccoli joins the room
[19:12:55] Steven Roose joins the room
[19:14:31] <Steven Roose> I'm looking to how to get third-party components to work with ejabberd. Does it need to expose a separate port for each?
[19:20:21] <Steven Roose> I'm trying to do Jitsi Meet, so first up is Jicofo: https://github.com/jitsi/jicofo
[19:21:03] ludo leaves the room
[19:21:53] <Steven Roose> Or can I use one port for multiple external components?
[19:22:04] ThUnD3r|Gr33n© joins the room
[19:26:18] torus371 joins the room
[19:35:24] chrys leaves the room
[19:36:53] ulrich leaves the room
[19:38:03] mozart leaves the room
[19:39:29] ulrich joins the room
[19:40:53] rom1dep leaves the room
[19:41:23] rom1dep joins the room
[19:42:11] ulrich leaves the room
[19:42:13] doctor leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:42:13] ulrich joins the room
[19:43:30] Odin leaves the room
[19:43:33] Odin joins the room
[19:43:42] shara leaves the room
[19:43:43] ChaosKid42 joins the room
[19:44:19] doctor joins the room
[19:45:12] Steven Roose joins the room
[19:46:39] mozart joins the room
[19:48:43] torus371 leaves the room
[19:52:38] ChaosKid42 leaves the room
[19:53:32] maddl joins the room
[19:53:33] maddl leaves the room
[19:56:44] ludo joins the room
[19:58:59] marek leaves the room
[19:58:59] marek joins the room
[20:03:24] rom1dep leaves the room
[20:05:17] maddl joins the room
[20:05:18] maddl leaves the room
[20:15:12] rom1dep joins the room
[20:16:16] rincewind joins the room
[20:20:16] ChaosKid42 joins the room
[20:22:10] jannic leaves the room
[20:22:49] jannic joins the room
[20:23:08] integrationsfigur leaves the room
[20:23:24] nico leaves the room
[20:23:28] shara joins the room
[20:23:29] nico joins the room
[20:24:38] maddl joins the room
[20:24:39] maddl leaves the room
[20:26:36] mozart leaves the room
[20:27:05] mightyBroccoli leaves the room
[20:27:32] rincewind joins the room
[20:30:54] m7273 leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:30:55] debalance joins the room
[20:31:09] rom1dep leaves the room
[20:31:40] lorddavidiii leaves the room
[20:33:35] mozart joins the room
[20:34:07] marek leaves the room
[20:34:07] marek joins the room
[20:34:31] pod leaves the room
[20:36:25] maddl joins the room
[20:36:27] maddl leaves the room
[20:36:46] maddl joins the room
[20:36:46] maddl leaves the room
[20:37:15] maddl joins the room
[20:37:16] maddl leaves the room
[20:39:17] nico leaves the room
[20:39:17] nico joins the room
[20:39:58] Steven Roose leaves the room
[20:40:19] marek joins the room
[20:42:08] marek leaves the room
[20:42:10] marek joins the room
[20:42:11] nekit leaves the room
[20:45:01] vogt leaves the room
[20:46:12] marek leaves the room
[20:46:37] mozart leaves the room: Disconnected: Replaced by new connection
[20:46:49] mozart joins the room
[20:49:04] info-screen joins the room
[20:50:08] shara leaves the room
[20:50:10] shara joins the room
[20:52:29] ave leaves the room
[20:52:30] ave joins the room
[20:52:48] panpansh joins the room
[20:53:27] marek joins the room
[20:54:12] chrys leaves the room
[20:56:14] chrys joins the room
[21:03:05] nico leaves the room
[21:03:11] nico joins the room
[21:05:12] doctor joins the room
[21:06:06] marc leaves the room
[21:10:13] Sergio leaves the room
[21:11:11] marek leaves the room
[21:12:02] ChaosKid42 leaves the room
[21:12:12] marek joins the room
[21:13:03] rom1dep joins the room
[21:17:33] marek leaves the room
[21:17:36] marek joins the room
[21:18:11] Sergio leaves the room
[21:18:18] shara leaves the room
[21:18:18] shara joins the room
[21:21:08] marek leaves the room
[21:21:15] marek joins the room
[21:22:26] ChaosKid42 joins the room
[21:25:30] sezuan joins the room
[21:28:44] torus371 joins the room
[21:30:02] daniel leaves the room
[21:30:53] Marzanna leaves the room: Bye!
[21:35:57] marek leaves the room
[21:46:40] nekit joins the room
[21:51:26] ma1uta leaves the room
[21:52:41] shara leaves the room
[21:54:32] debalance leaves the room
[21:54:33] torus371 leaves the room: Disconnected: Replaced by new connection
[21:54:33] torus371 joins the room
[21:55:46] zinid leaves the room
[21:57:06] torus371 leaves the room: Disconnected: Replaced by new connection
[21:57:08] torus371 joins the room
[21:59:54] shara joins the room
[22:05:53] shara leaves the room
[22:05:56] shara joins the room
[22:08:35] ave joins the room
[22:11:54] Odin leaves the room
[22:13:05] nekit leaves the room
[22:14:43] sezuan leaves the room: Rechner geht in den Ruhezustand
[22:15:29] rom1dep leaves the room
[22:15:29] rom1dep leaves the room
[22:16:33] shara leaves the room
[22:16:35] shara joins the room
[22:17:14] carlos leaves the room
[22:17:15] carlos joins the room
[22:17:25] ave leaves the room
[22:20:37] rom1dep joins the room
[22:21:48] Servant leaves the room
[22:22:43] panpansh leaves the room
[22:22:53] panpansh joins the room
[22:23:23] rom1dep joins the room
[22:25:59] info-screen leaves the room
[22:29:31] info-screen joins the room
[22:32:13] torus371 leaves the room
[22:35:38] fp leaves the room
[22:36:26] Akasch joins the room
[22:39:05] mozart leaves the room
[22:40:20] rom1dep leaves the room
[22:40:20] rom1dep leaves the room
[22:41:11] chrys leaves the room
[22:41:49] rom1dep joins the room
[22:42:31] 4223 joins the room
[22:42:36] 4223 leaves the room
[22:42:45] 4223 joins the room
[22:43:11] rom1dep joins the room
[22:43:12] chrys joins the room
[22:44:55] rincewind leaves the room
[22:45:51] mozart joins the room
[22:49:21] fp joins the room
[22:56:17] Akasch leaves the room: Rechner geht in den Ruhezustand
[22:57:55] 4223 leaves the room
[22:57:56] fp leaves the room
[22:58:11] 4223 joins the room
[23:14:09] cippaciong joins the room
[23:14:31] fp joins the room
[23:18:37] fp leaves the room
[23:19:06] nico leaves the room
[23:19:07] nico joins the room
[23:22:15] mozart leaves the room
[23:23:00] panpansh leaves the room
[23:25:31] panpansh joins the room
[23:26:13] ludo leaves the room
[23:26:53] nico leaves the room
[23:26:54] nico joins the room
[23:27:42] mozart joins the room
[23:27:58] Licaon_Kter joins the room
[23:29:38] frainz joins the room
[23:34:23] frainz leaves the room
[23:35:52] fp leaves the room
[23:39:22] mozart leaves the room: Disconnected: Replaced by new connection
[23:39:32] mozart joins the room
[23:39:44] fp joins the room
[23:43:00] fp leaves the room
[23:43:10] fp joins the room
[23:44:49] ChaosKid42 leaves the room
[23:47:33] nico leaves the room
[23:47:33] nico joins the room
[23:47:44] mightyBroccoli joins the room
[23:54:31] rincewind leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[23:58:23] info-screen leaves the room
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!