Logs for jdev
[00:15:01] * darkrain_ left the chat.
[00:17:49] * Treebilou left the chat.
[00:23:55] * Treebilou joined the chat.
[00:24:49] * Treebilou left the chat.
[00:24:52] * Treebilou joined the chat.
[00:41:27] * Florob left the chat.
[00:49:14] * scippio left the chat.
[01:47:45] * jameschurchman left the chat.
[01:50:50] * Treebilou left the chat.
[01:51:04] * Treebilou joined the chat.
[02:24:13] * johnstep joined the chat.
[02:26:50] * johnstep left the chat.
[02:26:56] * johnstep joined the chat.
[02:36:20] * johnstep left the chat.
[03:21:19] * notKev joined the chat.
[03:27:37] * notKev left the chat.
[03:51:59] * johnstep joined the chat.
[03:52:21] * johnstep left the chat.
[04:15:50] * aholler joined the chat.
[05:26:53] * Lance left the chat.
[05:33:28] * harrykar joined the chat.
[05:34:57] * Lance joined the chat.
[05:35:09] * Lance left the chat.
[05:50:30] * justin left the chat.
[06:28:15] * teo left the chat.
[06:28:29] * teo joined the chat.
[06:30:56] * Asterix joined the chat.
[07:12:32] * luca tagliaferri joined the chat.
[07:15:32] * johnstep joined the chat.
[07:16:57] * tkoski joined the chat.
[07:16:58] * tkoski left the chat.
[07:17:23] * thkoch2001 joined the chat.
[07:39:22] * alkino joined the chat.
[07:45:01] * Alex joined the chat.
[07:57:17] * Asterix left the chat.
[08:09:03] * johnstep left the chat.
[08:16:04] * aholler left the chat.
[08:18:52] * guus joined the chat.
[08:19:25] * Asterix joined the chat.
[08:20:47] * rtreffer joined the chat.
[08:23:40] * aholler joined the chat.
[08:26:24] * petermount joined the chat.
[08:26:47] * alkino left the chat.
[08:27:09] * Tobias joined the chat.
[08:27:13] * teo left the chat.
[08:27:13] * teo joined the chat.
[09:00:40] * rtreffer left the chat.
[09:00:56] * rtreffer joined the chat.
[09:33:34] * guus left the chat.
[09:36:16] * guus joined the chat.
[09:59:36] * rtreffer left the chat.
[10:09:34] * scippio joined the chat.
[10:13:18] <Asterix> Hi
[10:13:25] <Asterix> is U+FDEF an allowed chat in xmpp?
[10:13:31] <Asterix> char*
[10:29:34] * jameschurchman joined the chat.
[10:31:47] <Asterix> in fact all the non-chaacter code as defined in C-4 of nameprep
[10:39:34] * jameschurchman left the chat.
[10:45:17] * Asterix left the chat.
[10:55:07] * luca tagliaferri left the chat.
[11:12:16] * jameschurchman joined the chat.
[11:18:23] * jcea joined the chat.
[11:21:05] * jameschurchman left the chat.
[11:21:42] * jameschurchman joined the chat.
[11:23:23] * jameschurchman left the chat.
[11:32:45] * luca tagliaferri joined the chat.
[11:35:47] * rtreffer joined the chat.
[11:46:53] * lastsky joined the chat.
[11:50:21] * marseille left the chat.
[11:50:36] * marseille joined the chat.
[11:52:05] * gigam joined the chat.
[11:52:19] * xnyhps left the chat.
[11:52:20] * xnyhps joined the chat.
[11:54:06] * guus left the chat.
[12:03:03] * lastsky left the chat.
[12:07:36] * nielsvh joined the chat.
[12:07:36] * jcea left the chat.
[12:12:42] * guus joined the chat.
[12:15:33] * scippio left the chat.
[12:17:14] * scippio joined the chat.
[12:38:23] * Florob joined the chat.
[12:47:22] * naw joined the chat.
[13:00:29] * notKev joined the chat.
[13:13:56] * teo left the chat.
[13:15:36] * naw left the chat.
[13:22:09] * Tobias left the chat.
[13:23:09] * Tobias joined the chat.
[13:34:22] * gigam left the chat.
[13:36:08] * notKev left the chat.
[13:38:10] * gigam joined the chat.
[13:38:24] * Lance joined the chat.
[13:38:50] * gigam left the chat.
[13:43:46] * teo joined the chat.
[13:59:42] * deryni left the chat.
[14:00:43] * deryni joined the chat.
[14:01:29] * Alex left the chat.
[14:13:19] * deryni left the chat.
[14:38:15] * Florob left the chat.
[14:41:55] * thkoch2001 left the chat.
[14:45:03] * darkrain_ joined the chat.
[14:54:47] * marseille left the chat.
[14:55:13] * marseille joined the chat.
[15:05:13] * deryni joined the chat.
[15:22:28] * Treebilou left the chat.
[15:26:22] * marseille left the chat.
[15:26:29] * xnyhps left the chat.
[15:26:37] * marseille joined the chat.
[15:26:44] * stpeter joined the chat.
[15:27:01] * xnyhps joined the chat.
[15:33:03] * justin joined the chat.
[15:40:28] * marseille left the chat.
[15:42:25] * marseille joined the chat.
[15:46:52] * Tobias left the chat.
[15:54:31] * Tobias joined the chat.
[15:57:59] * guus left the chat.
[16:00:36] * Lance left the chat.
[16:00:37] * Lance joined the chat.
[16:29:43] * Asterix joined the chat.
[16:34:26] * whatever left the chat.
[16:35:42] * whatever joined the chat.
[17:15:49] * petermount left the chat.
[17:38:20] * Xificurk joined the chat.
[17:54:35] * guus joined the chat.
[18:03:56] * scippio left the chat.
[18:04:05] * naw joined the chat.
[18:48:36] * jameschurchman joined the chat.
[18:51:16] * nabatt joined the chat.
[18:51:39] * notKev joined the chat.
[18:53:04] * naw left the chat.
[18:53:15] * jameschurchman left the chat.
[18:58:24] * rtreffer left the chat.
[18:58:58] * rtreffer joined the chat.
[19:00:03] * harrykar left the chat.
[19:01:53] * rtreffer left the chat.
[19:02:23] * rtreffer joined the chat.
[19:10:28] * jameschurchman joined the chat.
[19:11:44] <Tobias> stpeter, hi
[19:14:02] * jameschurchman left the chat.
[19:14:02] * jameschurchman joined the chat.
[19:14:02] * jameschurchman left the chat.
[19:28:05] * jameschurchman joined the chat.
[19:28:28] * jameschurchman left the chat.
[19:32:57] <stpeter> hi Tobias
[19:33:11] <stpeter> sorry, too many windows open here, I didn't see this tab
[19:33:26] <Tobias> http://xmpp.org/extensions/xep-0260.html is it intentional that the s5b SID in example 1 and example 2 are the same?
[19:35:47] <stpeter> I think so, but let me check
[19:36:21] <stpeter> example 2 doesn't have a SID
[19:37:02] <Tobias> i meant example 3
[19:37:04] <Tobias> :)
[19:37:10] <Tobias> not the IQ reply
[19:37:33] * rtreffer left the chat.
[19:37:38] <stpeter> right
[19:37:40] <stpeter> /me thinks
[19:38:16] * nabatt left the chat.
[19:39:08] <Tobias> the implications of this: if both sides have the same proxy in their candidates, those candidates are selected by each other
you'd already have 2 working connections to the proxy (both due to candidate selection mechanism). what's left is activating
the proxy and using it.
[19:39:32] <dwd> Anyone happen to know of any issues with Pidgin and RTL text? A customer of mine is seeing a disconnection very shortly after
an otherwise normal IM message stanza with mixed arabic and latin present.
[19:39:44] <Tobias> darkrain might know
[19:40:04] <Tobias> if one would use different SIDs, the provider of the candidate would have to create a new s5b session to the proxy, activate
it and use it
[19:40:24] <dwd> /me considers just pasting the stanza's body text in here and see who drops...
[19:40:34] <Tobias> stpeter, don't know what case is wanted, if all of this should be supported or whatsoever
[19:40:42] <stpeter> Tobias: yes, those are the implications
[19:41:10] <deryni> fjkfdklj כגכג fdfsd
[19:41:19] <stpeter> heh
[19:41:33] <deryni> I sent that from pidgin, and have done so before, so I doubt that's the issue itself.
[19:41:36] <Tobias> stpeter, how do s5b proxys behave if a 3rd connection is initiated to the same proxy session (same DST.ADDR)?
[19:41:38] <dwd> <body>ؤاثؤن :yes:</body>
[19:41:38] * harrykar joined the chat.
[19:41:46] * harrykar left the chat.
[19:42:00] <deryni> Send again?
[19:42:06] <Tobias> nothing of that has been displayed RTL though here
[19:42:09] <dwd> That's what it's getting. Interestingly, I can't copy the text in GNOME without also copying the surrounding body.
[19:42:21] <dwd> ؤاثؤن :yes:
[19:42:30] <dwd> Oh, yes I can, but the UI is wacky. :-)
[19:42:43] <dwd> (I have to highlight each part in the right direction...)
[19:42:47] <stpeter> dwd: hang out in the indonesia@conference.jabber.org room if you want lots of RTL and mixed text :)
[19:43:02] <deryni> Yeah. Cursor direction in mixed text is a nightmare. =)
[19:43:04] <dwd> stpeter, It's not that I want it...
[19:43:12] <stpeter> Tobias: I'm going to look at the specs here for a few minutes, brb
[19:43:22] <Tobias> stpeter, kewl...thx
[19:43:35] * alkino joined the chat.
[19:44:31] <deryni> Is pidgin disconnecting or being disconnected? Does pidgin notice immediately (is the stream being closed or dropped)? Does
it happen with other mixed RTL/LTR messages or just ones that might accidentally be triggering some sort of smiley
[19:44:32] <deryni> ?
[19:44:38] <dwd> deryni, No chance that an old build or library might be causing it to choke?
[19:44:55] * harrykar joined the chat.
[19:45:11] <dwd> The stream isn't closed, just dropped.
[19:46:05] * harrykar left the chat.
[19:46:15] <aholler> Tobias: they should send 0x05 (REP= connection refused), that is at least what I've implemented ;)
[19:47:03] <dwd> deryni, :
(19:30:19) Send (406)
<message from='jid@remote.domain/c4c93f0f6c4346b3' to='jid@local.domain/3133db4b1d142bd6' type='chat' id='purple9736f4d7'><active
xmlns='http://jabber.org/protocol/chatstates'/><body>ؤاثؤن :yes:</body><html xmlns='http://jabber.org/protocol/xhtml-im'><body
xmlns='http://www.w3.org/1999/xhtml'><p><span style='direction:rtl;text-align:right;'>ؤاثؤن :yes:</span></p></body></html></message>
(19:30:19) Send (194)
<message from='jid@remote.domain/c4c93f0f6c4346b3' to='jid@local.domain/3133db4b1d142bd6' type='chat' id='purple9736f4d8'><active
xmlns='http://jabber.org/protocol/chatstates'/></message>
[19:47:15] <stpeter> Tobias, both sides will not have the same proxy in their candidates if the responder follows this rule from Section 2.2 of
XEP-0260:
However, the responder MUST NOT offer as a candidate any host/port combination that has already been offered by the initiator;
this helps to prevent failure of negotiation with S5B proxies.
[19:47:20] <dwd> deryni, That's all we see. I didn't think it'd be the second stanza.
[19:47:30] * harrykar joined the chat.
[19:47:46] <stpeter> Tobias, I'm not sure how existing proxies handle such scenarios, we'd need to do some testing
[19:48:08] <Tobias> stpeter, ahh..so the responder is forbidden of providing the same proxy as the initiator?
[19:48:13] <stpeter> yes
[19:48:25] <Tobias> good to know :)
[19:49:00] * nielsvh left the chat.
[19:51:22] <stpeter> FYI from the OTR list: http://chrisballinger.info/?e=19 + https://github.com/chrisballinger/Off-the-Record-iOS
[19:53:06] <deryni> Sending that message is causing the problem? What happens from the pidgin side of things exactly?
[19:54:58] <stpeter> Tobias: the same rule (about not sending candidates that the initiator already sent) applies to ICE, IIRC
[19:55:33] <stpeter> brb
[19:55:34] <Tobias> stpeter, yeah..makes sense to prevent overcomplex scenarios
[19:55:38] <stpeter> right
[19:56:39] <dwd> deryni, So they get an "XML parse error", and then disconnect.
[19:56:45] * Hermitifier left the chat.
[19:58:13] <deryni> What version of pidgin? Error codes reported before/after the parse error?
[19:59:01] * pawan.neupane joined the chat.
[19:59:14] <stpeter> hi pawan.neupane :)
[19:59:15] * pawan.neupane left the chat.
[19:59:18] <dwd> deryni, I see "XML Parse error" in the roster window. Can't tell the version from this, but it's Windows.
[20:00:17] * dwd-test joined the chat.
[20:00:36] <aholler> according rfc 1928 X'02' connection not allowed by ruleset
[20:01:11] <aholler> would fit too to refuse a third connection
[20:02:24] <Tobias> aholler, ahh nice...do you have a public testing instance of your s5b proxy?
[20:02:30] <aholler> But I assume a client will just check for 0 or !=1 as reply field
[20:04:35] <aholler> Tobias: hmm, sorry, currently only as responder. I would have to give an account and that is something I currently don't really
want.
[20:05:01] <Tobias> aholler, ok..no problem
[20:05:27] <deryni> Hm... Without debug window output I'm not sure how much more I can help here. This isn't an issue that I'm currently recalling
for whatever that's worth. Clarifying once again so I'm sure I followed correctly (too many things going on at once) receiving
the message is causing the problem?
[20:06:14] <aholler> maybe in 1 or 2 weeks when I've hopefully all the stuff on my todo list.
[20:06:24] <aholler> +finished
[20:08:43] * Hugin joined the chat.
[20:09:30] <dwd> deryni, As far as I can tell, yes.
[20:09:50] <aholler> Tobias: but feel free to play without an account. others do that too, e.g. someone killed the server some month before with
a billion laughts ;)
[20:09:51] <dwd> I think it's even *sent* from the same Windows Pidgin version.
[20:10:35] <Tobias> stpeter, http://mail.jabber.org/pipermail/jingle/2011-August/001711.html <-- we decided there that the DST.ADDR is always
SHA1 Hash of: (SID + Jingle Initiator + Jingle Responder), right?
[20:12:26] * xnyhps left the chat.
[20:12:57] * dwd-test left the chat.
[20:13:10] * xnyhps joined the chat.
[20:13:10] <Tobias> stpeter, for the case that the candidate came from the responder, proxy activation won't succeed...the IQ for activation will
come from the Responder and i think the proxy expect it to be from the Initiator
[20:13:14] <Tobias> or not?
[20:13:54] * xnyhps left the chat.
[20:14:03] <aholler> no
[20:14:43] <aholler> if the candidate comes from the responder the responder should be able to activate the proxy
[20:14:57] <Tobias> *should* be able
[20:15:00] <Tobias> in a perfect world
[20:15:16] <aholler> otherwise he shouldn't provide the proxy as candidate
[20:15:42] <Tobias> from: http://xmpp.org/extensions/xep-0260.html#example-9 <-- how does the proxy know if who is initiator and who the responder?
[20:16:58] <aholler> the proxy doesn't care.
[20:17:38] <Tobias> it does, it has to construct the DST.ADDR from the 3 parts, IQ from, <activate/>-CDATA and sid attribute
[20:17:47] <Tobias> so it knows what session to activate
[20:18:21] * luca tagliaferri left the chat.
[20:19:02] <aholler> but that doesn't say something about who is the responder
[20:19:29] * xnyhps joined the chat.
[20:19:44] <Tobias> for Jingle, the DST.ADDR is supposed to be SHA-1(S5B Session ID + Initiator JID + Responder JID)
[20:20:35] <Tobias> aholler, i can imagine this being a problem..because the other way around it works..if the proxy candidate of the initiator
wins selection and thus is activated by the initiator
[20:20:59] * xnyhps left the chat.
[20:21:13] <deryni> dwd: I don't have any bright ideas. It would be interesting to see if a more prosaic mixed RTL/LTR message causes the problem
too. Debug Window output from the disconnecting client is likely the most useful thing at this point.
[20:22:11] <dwd> deryni, I'll see what I can do.
[20:22:12] <aholler> Tobias: I think we are getting confused between the on who offered the proxy as candidate (and thus can activate the connection)
and the terms initioator and responder.
[20:22:50] <aholler> or maybe I'm getting confused at moment ;)
[20:23:10] <Tobias> initator/responder in my case are the Jingle session initiator/responder
[20:23:45] * xnyhps joined the chat.
[20:24:15] <aholler> Tobias: and xep-0065 talks about requester and target
[20:24:19] <aholler> ;)
[20:24:30] <Tobias> aholler, exactly :)
[20:25:02] <Tobias> aholler, i started a discussion on this some weeks ago http://mail.jabber.org/pipermail/jingle/2011-August/001711.html
[20:25:07] * McKael left the chat.
[20:25:59] <aholler> i found it very easy to implement s5b, so I assume xep-0065 doesn't leave much questions open ;)
[20:26:14] * MattJ joined the chat.
[20:26:31] <Tobias> implement s5b = what exactly, a s5b proxy, jingle s5b transport method, s5b in SI?
[20:26:39] * McKael joined the chat.
[20:26:50] <Tobias> stpeter, is the new dstaddr-attribute required so this corner case works?
[20:27:19] <aholler> Tobias: just xep-0065, so the s5b proxy
[20:27:26] <Tobias> aholler, ahh..ok
[20:28:21] <aholler> haven't read through the other stuff, as I assume that is for clients only
[20:29:35] * evilotto joined the chat.
[20:32:06] * stpeter joined the chat.
[20:33:20] * Tobias joined the chat.
[20:34:18] * Neustradamus joined the chat.
[20:34:43] <Tobias> .
[20:35:05] <stpeter> Tobias, yes I think we need the 'dstaddr' attribute for this case
[20:35:29] <stpeter> which means that probably we need to change it from MAY to SHOULD
[20:35:43] <stpeter> and add a few notes about its function here
[20:35:51] <Tobias> right..otherwise the responders proxy won't work
[20:36:00] <stpeter> yes
[20:36:13] <stpeter> this scenario was not possible in XEP-0065
[20:37:16] <Tobias> /me reads the relevant parts of the XEP again and adjusts his code :)
[20:37:26] * guus joined the chat.
[20:38:52] * xnyhps joined the chat.
[20:40:02] <stpeter> Tobias: I'll strengthen the text a bit
[20:40:08] <stpeter> let me do that now before I forget :)
[20:40:28] * aholler joined the chat.
[20:40:38] * elmex joined the chat.
[20:41:05] * Neustradamus left the chat.
[20:41:14] * Neustradamus joined the chat.
[20:44:31] * naw joined the chat.
[20:44:42] <Tobias> stpeter, http://xmpp.org/extensions/diff/api/xep/0260/diff/0.5/vs/0.6#added-diff-4 <-- in the problem case the DST.ADDR would
have to be SHA-1(S5B SID + Jingle Responder + Jingle Initiator), right?
[20:45:45] <Tobias> this should be made clear, especially in relation to the XEP-0065 stream activation method
[20:47:56] * Xificurk joined the chat.
[20:48:06] <stpeter> hmm
[20:49:02] <Tobias> see http://xmpp.org/extensions/xep-0065.html#mediated-proto-activation
[20:49:49] <Tobias> requester being IQ's from, target being <activate>'s CDATA
[20:50:20] * scippio joined the chat.
[20:50:31] <stpeter> there are two things going on here
[20:51:36] <stpeter> in XEP-0065 the purpose of the 'dstaddr' was to communicate the DST.ADDR to the target, because the real JIDs might be different
from the JIDs used to negotiate (typically through a chatroom)
[20:52:03] <stpeter> but that does not solve the problem of activating the bytestream from the target/responder side (which is unique to XEP-0260)
[20:52:28] <stpeter> so either we need a different attribute for that, or we need the initiator to always activate the bytestream
[20:53:11] <Tobias> ahh..so the problem you addressed there in that change is different from my problem case?
[20:53:23] <stpeter> I think there are two different cases here
[20:53:54] <stpeter> dstaddr solves the MUC case, but not the case of the responder activating the bytestream at the proxy (instead of this being
done by the initiator)
[20:54:24] <Tobias> but if proxy candidates have a dst.addr attirbute, i.e. the value to be used as dst.add in S5B protocol connections, wouldn't
that solve my problem too?
[20:55:10] <stpeter> oh
[20:55:11] <stpeter> dug
[20:55:14] <stpeter> duh, even
[20:55:59] <stpeter> sure, in your case the *responder* needs to send a 'dstaddr' to the initiator so that the initiator can send the right DST.ADDR
to the proxy
[20:56:24] <stpeter> it can do that by including the 'dstaddr' to the initiator
[20:56:40] <stpeter> that would be in http://xmpp.org/extensions/xep-0260.html#example-3
[20:57:08] <Tobias> and that DST.ADDR, the one that the responders adds to his candidates would be SHA-1(S5B ID + own JID/responder + initiator),
right?
[20:57:11] <stpeter> I don't think we'd include that in each <candidate/> because the DST.ADDR is the same for all candidates
[20:57:15] <stpeter> yes
[20:57:16] <stpeter> exactly
[20:57:50] <Tobias> right..it could be an attrib on the transport node
[20:58:04] <Tobias> so zlib doesn'T have to do so much heavy lifting :P
[20:58:24] <stpeter> yes
[20:58:27] <stpeter> fixing the spec now
[20:58:31] <Tobias> coolio
[20:58:39] <stpeter> good catch :)
[20:59:09] <Tobias> i had no choice by implementing this stuff :)
[20:59:21] <aholler> stpeter: thanks for hint of that crypto list. funny to read ;)
[20:59:31] <stpeter> oh yeah
[20:59:33] <stpeter> that's a fun list
[20:59:41] <Tobias> is it high traffic?
[20:59:46] <stpeter> comes and goes
[20:59:49] <stpeter> not too bad
[21:00:07] <stpeter> there are some smart people on that list
[21:00:12] <stpeter> and opinionated :)
[21:00:27] <Tobias> compared to all the other lists you're on? ;)
[21:00:31] * dwd joined the chat.
[21:00:35] <stpeter> Tobias: right :)
[21:02:46] * scippio left the chat.
[21:03:58] * rtreffer joined the chat.
[21:10:35] * guus left the chat.
[21:17:25] * darkrain_ joined the chat.
[21:24:06] <stpeter> ok this is much better
[21:25:22] * Hermitifier joined the chat.
[21:26:49] <Tobias> i'll see
[21:27:08] <stpeter> announced
[21:27:10] <stpeter> http://xmpp.org/extensions/diff/api/xep/0260/diff/0.8/vs/0.9 is the diff
[21:27:24] <stpeter> or reload http://xmpp.org/extensions/xep-0260.html
[21:27:26] <stpeter> or both
[21:27:27] <stpeter> brb
[21:28:39] * scippio joined the chat.
[21:28:47] * scippio left the chat.
[21:29:34] * scippio joined the chat.
[21:30:10] <Tobias> maybe we should leave one two words about dstaddr attrib being the base64 encoded version of the hash, since S5B protocol
doesn't encode it further
[21:31:24] <stpeter> XEP-0065 talks about that
[21:31:36] <Tobias> ah..oka
[21:31:39] <Tobias> ah..okay
[21:32:13] <stpeter> well XEP-0065 says:
The hostname MUST be SHA1(SID + Requester JID + Target JID) where the definition of the SHA1 hashing algorithm is as specified
by RFC 3174 [14] and the output is hexadecimal-encoded (not binary)...
[21:32:30] <Tobias> stpeter, yeah..hex encoded
[21:32:32] <Tobias> not base64
[21:38:06] * alkino joined the chat.
[21:44:12] <Tobias> stpeter, shall i fix that or will you?
[21:45:37] <stpeter> what needs to be fixed?
[21:46:17] <Tobias> you chose to encode dstaddr attribute as base64, your quote says it should be hexified
[21:46:26] <stpeter> haha
[21:46:28] <stpeter> my error
[21:48:54] * naw left the chat.
[21:49:15] <stpeter> it would be great if you could fix that because I need to log off soon for an hour or so
[21:49:58] <stpeter> or just paste them here and I can update the spec later
[21:51:39] <Tobias> k..i'll fix it..hope the version number doesn't need an update for that
[21:53:12] <stpeter> I don't think so, it's just repairing a small, dumb mistake by the document editor :)
[21:53:16] <stpeter> ok, bbiab
[21:53:51] <stpeter> Tobias, if you send me your proper info I'll make you one of the authors, too
[21:54:11] <Tobias> k
[21:55:13] <stpeter> /me wanders off
[21:55:17] * stpeter left the chat.
[21:59:59] * alkino left the chat.
[22:27:36] * Tobias left the chat.
[22:44:27] * justin joined the chat.
[23:04:16] * jameschurchman joined the chat.
[23:04:28] * rtreffer left the chat.
[23:04:39] * rtreffer joined the chat.
[23:29:40] * jameschurchman left the chat.
[23:29:52] * jameschurchman joined the chat.
[23:33:47] * jameschurchman left the chat.
[23:42:05] * jameschurchman joined the chat.