#instantbird log on 06 30 2015

All times are UTC.

00:05:51 <nhnt11> clokep: So Mozilla has string.trimRight() (non-standard), can we use that?
00:07:25 <nhnt11> Do we (want to) support sending trailing whitespace on purpose?
00:07:54 <clokep> nhnt11: We have to for OTR. :P
00:08:08 <nhnt11> I mean, displaying trailing whitespace. sorry
00:08:22 * clokep isn't sure what you're asking.
00:08:28 <clokep> nhnt11: And yes, we can use trimRight().
00:08:50 <nhnt11> clokep: The submitted patch will remove whitespace that OTR didn't add
00:09:06 <nhnt11> (i.e. if someone purposefully typed a message with trailing whitespace, it will get trimmed)
00:09:32 <clokep> nhnt11: Right so I talked about that earlier, is there a usecase for caring about that?
00:10:10 <clokep> (I don't think so.)
00:11:49 <nhnt11> clokep: Is there a use case for displaying leading whitespace?
00:11:54 <nhnt11> if not, we can just trim() then
00:12:02 <clokep> nhnt11: Yes, indentation for code. ;)
00:12:07 <nhnt11> hmm
00:12:22 <clokep> (I think Mook_as made us fix that at some point.)
00:12:40 <flo-retina> yeah, leading whitespace has been broken in the past, and it's been super painful. Especially for people writing python code ;)
00:12:47 --> BlueMaxima has joined #instantbird
00:13:29 * nhnt11 thinks that sending trailing whitespace is a weird way to communicate that we have OTR
00:13:47 <clokep> Why?
00:13:52 <flo-retina> nhnt11: especially for XMPP, where the protocol can trivially be extended :(
00:14:24 <clokep> Btw, to be clear, that's not an IB thing, it's an OTR thing. :-D
00:14:32 <nhnt11> clokep: I know it is
00:14:34 <nhnt11> flo-retina: right, and xmpp is one of the most widely used protocols...
00:14:54 <clokep> I don't know if it was when OTR was designed.
00:15:08 <nhnt11> hasn't XMPP been around for ages? :S
00:15:10 <nhnt11> (google talk?)
00:15:21 <clokep> Doesn't mean it was *widely used*. :)
00:15:28 <clokep> And Google Talk hasn't been around for *that* long.
00:16:21 <nhnt11> Hmm, OTR is a year old than Google Talk
00:16:21 <nhnt11> OK
00:16:31 * nhnt11 didn't know that
00:20:32 * nhnt11 wonders if Unicode was popular when OTR was invented
00:20:42 <clokep> Is it not now? :-D
00:21:09 <nhnt11> It would have been nicer to use a sequence of invisible Unicode characters (I suspect one or two exist) that can't be typed on standard keyboard layouts vs. whitespace
00:22:04 <nhnt11> U+FEFF would work (zero width no-break space)
00:22:26 * nhnt11 shrugs
00:22:47 <nhnt11> (there's also U+200B (zero width space) if anyone is interested :P)
00:22:59 <clokep> I think certain protocols are ASCII?
00:23:16 <clokep> (And things like IRC theoretically don't have an encoding at the proto level)
00:23:26 <nhnt11> yeah ok
00:23:35 * nhnt11 was just sad that someone had to make that decision
00:26:26 <arlolra> nhnt11: thanks for the review
00:26:36 <arlolra> maybe you're excited to review this too
00:26:36 <arlolra> https://bugzilla.mozilla.org/show_bug.cgi?id=1175706
00:26:39 <instantbot> Bug 1175706 nor, --, ---, nobody, UNCO, Listen for logging pref changes
00:26:55 <nhnt11> ah yeah, that was in my queue. sorry for the dealy
00:26:57 <nhnt11> dleay*
00:26:59 <nhnt11> delay*
00:27:01 <arlolra> ha
00:27:04 <nhnt11> too much caffeine :D
00:27:16 <arlolra> i was going to say no problem
00:27:20 <arlolra> but maybe that's a problem
00:27:26 <nhnt11> heh
00:29:17 <flo-retina> arlolra: by the way, how are things progressing for the gcrypt/NSS thing?
00:31:27 <arlolra> I started working on it but then priorities a few other things. I've given myself the hard deadline of july 17th to get that doen
00:31:29 <arlolra> done
00:31:33 <arlolra> flo-retina: ^
00:31:51 <arlolra> so it's ready for review at the meeting
00:32:48 <flo-retina> it would be really useful to have that working before the meeting indeed!
00:33:07 <flo-retina> (this is the reason why I'm starting to get a little bit concerned to not have seen obvious progress ;))
00:34:10 <arlolra> i'll post some progress soon in good faith, to ease your worries
00:35:54 <flo-retina> :)
00:36:05 <clokep> arlolra: I expect that to take a bit of time to figure out so...don't leave yourself like an hour to do it. :-D
00:37:59 <nhnt11> arlolra: I should have noticed this before, but your patch for bug 1175706 won't work
00:38:01 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1175706 nor, --, ---, nobody, UNCO, Listen for logging pref changes
00:38:08 <nhnt11> It will cause a second header to be written to an existing log file
00:38:57 <arlolra> hmm
00:39:18 <nhnt11> arlolra: I would like that bug to wait for bug 1025522
00:39:20 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1025522 nor, --, ---, nhnt11, ASSI, Split log files to prevent them from growing too large
00:39:35 <nhnt11> That allows more than one file for a single conversation
00:39:39 <-- sherief has quit (Ping timeout: 121 seconds)
00:39:48 <flo-retina> and hopefully that's landing soon, right? ;)
00:39:53 <nhnt11> arlolra: The whole reason for that aCreate flag was to ensure we never append two headers in weird scenarios
00:39:55 <nhnt11> flo-retina: yeah
00:40:07 <arlolra> so maybe it should depend on that then
00:40:10 <nhnt11> flo-retina: If you are jet lagged and not sleeping soon you can steal that review :P
00:40:31 <flo-retina> I'm jetlagged, and will force myself to go to sleep very soon
00:40:34 <arlolra> clokep: thanks
00:41:24 <flo-retina> Good evening/night/whatever all :)
00:43:15 <-- BlueMaxima has quit (Quit: Leaving)
00:46:25 <arlolra> nhnt11: thanks
00:48:38 <-- arlolra has quit (Connection closed)
00:48:58 <clokep> arlolra: Btw I'd like to use trimRight instead of the regex. :)
00:53:55 <Mook_as> arlolra: For that pref watching thing, when does the observer get removed?  Does it need to be?
00:54:12 <Mook_as> (Yes, I realize he left 5 minutes ago)
00:56:44 <clokep> Mook_as: I don't think we remove the current observer.
00:56:49 <clokep> But nhnt11 should think about that.
01:05:22 <nhnt11> Mook_as: Well I guess it currently gets leaked at shut down
01:05:23 <nhnt11> hmm
01:05:51 <nhnt11> well "leaked" as in, it never gets removed, but we want it to be there till shutdown...
01:10:45 <Mook_as> observe shutdown?
01:10:51 <clokep> Yeah, we should probably do that.
01:10:55 * nhnt11 shrugs
01:11:02 * clokep isn't entirely sure why it matters if you leak at shutdown. ;)
01:11:04 <nhnt11> That code has been around for a while :P
01:11:19 <clokep> You touched it last.
01:11:21 <clokep> :P
01:11:34 <Mook_as> Mostly to shut up leak detecting tests I think
01:11:57 <-- Mook_as has quit (Client exited)
02:07:28 <-- clokep has quit (Ping timeout: 121 seconds)
02:16:30 <-- flo-retina has quit (Ping timeout: 121 seconds)
02:37:05 --> gerard-majax has joined #instantbird
02:46:28 <-- nhnt11 has quit (Ping timeout: 121 seconds)
03:24:01 <-- EionRobb has quit (Ping timeout: 121 seconds)
03:50:19 --> Mook has joined #instantbird
03:53:39 --> EionRobb has joined #instantbird
04:06:48 <-- gerard-majax has quit (Ping timeout: 121 seconds)
04:22:14 <instant-buildbot> build #2739 of macosx-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/2739
04:29:25 --> nhnt11 has joined #instantbird
04:29:25 * ChanServ sets mode +h nhnt11 
04:29:26 <-- nhnt11 has quit (Connection closed)
04:29:26 --> nhnt11 has joined #instantbird
04:29:26 * ChanServ sets mode +h nhnt11 
04:30:05 <instant-buildbot> build #1444 of linux-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/linux-nightly-default/builds/1444
04:42:58 --> BlueMaxima has joined #instantbird
05:25:45 <-- nhnt11 has quit (Ping timeout: 121 seconds)
05:30:50 --> afiksof has joined #instantbird
05:58:16 <-- EionRobb has quit (Quit: Leaving.)
06:12:10 --> gerard-majax has joined #instantbird
06:23:15 <-- afiksof has quit (Ping timeout: 121 seconds)
06:24:10 <-- Mook has quit (Client exited)
06:25:10 --> mpmc has joined #instantbird
06:34:16 --> EionRobb has joined #instantbird
07:13:31 --> akronix_laptop has joined #instantbird
07:19:59 <-- gerard-majax has quit (Ping timeout: 121 seconds)
07:26:19 <-- Suiseiseki has quit (Ping timeout: 121 seconds)
07:55:08 --> gerard-majax has joined #instantbird
08:09:13 --> Suiseiseki has joined #instantbird
08:13:35 --> afiksof has joined #instantbird
08:17:56 --> Bollebib has joined #instantbird
08:21:12 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
08:48:56 <instant-buildbot> build #358 of linux64-nightly-default is complete: Failure [4failed compile]  Build details are at http://buildbot.instantbird.org/builders/linux64-nightly-default/builds/358
09:13:46 <freaktechnik> hmm, is there anything else to do when unregistering a protocol, other than removing it from the category manager? Because I get an undefined protocol when replacing my extension during runtime. Restarting fixes it.
09:44:46 --> aleth has joined #instantbird
09:44:47 * ChanServ sets mode +o aleth 
09:57:41 --> mpmc has joined #instantbird
10:13:27 <freaktechnik> How do I send the CAP REQ? I'm having trouble with what the arguments for sendMessage should look like.
10:15:18 <freaktechnik> I need to send CAP REQ :twitch.tv/membership
10:18:48 <aleth> freaktechnik: here's an example https://dxr.mozilla.org/comm-central/source/chat/protocols/irc/ircSASL.jsm#126
10:19:31 <-- afiksof has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
10:20:07 --> BWMerlin has joined #instantbird
10:30:23 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
10:38:24 <freaktechnik> oh, an array.
10:41:24 <freaktechnik> thanks aleth
10:51:51 --> clokep has joined #instantbird
10:51:51 * ChanServ sets mode +o clokep 
10:52:10 <-- clokep has quit (Connection closed)
10:52:19 --> clokep has joined #instantbird
10:52:19 * ChanServ sets mode +o clokep 
11:00:39 <-- chrisccoulson has quit (Quit: OSError: [Errno 130] Owner died)
11:00:56 --> chrisccoulson has joined #instantbird
11:03:22 --> afiksof has joined #instantbird
11:14:28 <freaktechnik> how is the protocol image shown in the accounts manager determined=
11:14:29 <freaktechnik> ?
11:17:55 <clokep> freaktechnik: You add it with the proper chrome URL.
11:18:23 <clokep> freaktechnik: You might want t look at https://bitbucket.org/clokep/lj-talk/src for a bunch of that sort of stuff.
11:18:27 <clokep> I think there's some bad docs around too.
11:18:35 --> mpmc has joined #instantbird
11:19:05 <freaktechnik> ok, so it's based pn the iconBaseURI, which works for the 16px version,b ut not the bigger one
11:20:25 <clokep> What did you name the bigger one?
11:20:40 <clokep> icon.png, icon32.png and icon48.png look like what we expect them to be called.
11:20:50 <freaktechnik> oh, I have a dash in it...
11:21:52 <clokep> You had another question earlier?
11:22:16 <freaktechnik> 11:13:06 - freaktechnik: hmm, is there anything else to do when unregistering a protocol, other than removing it from the category manager? Because I get an undefined protocol when replacing my extension during runtime. Restarting fixes it.
11:22:49 <freaktechnik> uninstalling remove the entry, but then installing the extension again shows an undefined protocol
11:22:55 <freaktechnik> *removes
11:23:19 <clokep> All within the same session?
11:23:23 <clokep> Are you trying ot make this restartless?
11:23:24 <freaktechnik> yep
11:23:34 <freaktechnik> hmm, it's possibly because the component doesn't get unregistreed.
11:23:41 <clokep> Right.
11:23:48 <clokep> I'm not sure that works or not.
11:23:59 <clokep> (Although we'd definitely *want* it to.)
11:24:16 <freaktechnik> because I remember some stuff with unload only firing for shutdown but not disables/uninstalls
11:24:50 <freaktechnik> well, there is a different issue, the issue of accounts only working if the extension is around from the start, which would probably need infrastructure on the instantbird side, but I'm not yet worried about that...
11:26:15 <freaktechnik> okay, icon is fixed :D
11:29:05 <clokep> freaktechnik: I *think* we load the list of protocols once at start-up.
11:29:11 <clokep> So we'd probably need to change that somehow.
11:29:42 <freaktechnik> you load the protocol list dynamically for new accounts, but there is no way for you to know, that a new protocol has showed up either way.
11:29:46 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
11:30:43 <freaktechnik> (well, there is probably an observer notification for new topic entry registrations, which would actually be what is needed, and the extension wouldn't have to do anything extra)
11:32:11 <clokep> Right.
11:38:54 --> flo-retina has joined #instantbird
11:38:55 * ChanServ sets mode +qo flo-retina flo-retina 
11:39:40 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
11:39:48 --> flo-retina has joined #instantbird
11:39:49 * ChanServ sets mode +qo flo-retina flo-retina 
11:40:31 <freaktechnik> yep, there's a notification. For removal too. http://mxr.mozilla.org/mozilla-central/source/xpcom/build/nsXPCOM.h#383
11:41:50 * clokep awaits a patch. ;)
11:47:13 <-- EionRobb has quit (Quit: Leaving.)
11:50:49 <-- BlueMaxima has quit (Quit: Leaving)
11:51:47 <-- clokep has quit (Ping timeout: 121 seconds)
12:18:32 <-- afiksof has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
12:25:24 --> clokep_work has joined #instantbird
12:25:24 * ChanServ sets mode +o clokep_work 
12:38:03 <-- BWMerlin has quit (Client exited)
13:15:56 --> afiksof has joined #instantbird
13:58:39 <-- afiksof has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
14:20:05 --> mpmc has joined #instantbird
14:41:19 <freaktechnik> does an IRC message handler return false if it didn't handle a message?
14:41:53 <clokep_work> freaktechnik: Yes.
14:42:01 <freaktechnik> nice
14:42:41 <clokep_work> freaktechnik: And they fall through in order of priority.
14:42:51 <clokep_work> So you'll probably want your priority to be high for network specific processing.
14:43:01 <clokep_work> And if a handler doesn't implement a method it just searches (in order of priority) for one that does.
14:43:16 <freaktechnik> that's as much as I guessed, but I wasn't sure about the return values
14:43:48 --> afiksof has joined #instantbird
14:44:06 <clokep_work> True/False seemed to work so I went with it. :)
14:44:11 <clokep_work> I haven't wanted anything more complicated yet.
14:44:44 <freaktechnik> well, you have the priority voting chain and you have throw in JS in case something goes wrong
14:45:28 <clokep_work> Yep.
14:46:28 <clokep_work> :) I'm glad that architectue is working.
14:49:31 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
14:50:13 <freaktechnik> the irc implementation doesn't support tags yet?
14:51:06 <clokep_work> freaktechnik: There's been little IRCv3 support, I have not yet written support for tags...it's on my LONG todo list.
14:51:11 <clokep_work> I'd happily accept a patch.
14:51:21 <freaktechnik> I guess I'll have to write it then, yeah.
14:51:26 <clokep_work> Only if it uses crazy regex. ;)
14:51:44 <freaktechnik> crazy like the one for the CAP params parsing?
14:52:36 <clokep_work> Does that have a crazy regex? :-S
14:53:05 <clokep_work> Crazy like http://mxr.mozilla.org/comm-central/source/chat/protocols/irc/irc.js#63
14:53:28 <freaktechnik> In my book this counts as crazy, even when I'm wearing the xkcd regex shirt... http://mxr.mozilla.org/comm-central/source/chat/protocols/irc/ircCAP.jsm#26
14:53:35 <aleth> always fun when you have to modify it
14:53:43 <clokep_work> Ah-ha!
14:53:48 <clokep_work> Yes...I like regexp, what can I say?
14:54:04 <aleth> regexp is a great tool
14:54:12 <freaktechnik> I understand you. RegExps are great when you wrote them
14:54:26 <flo-retina> do we still need cryptography once we have regexps? ;)
14:54:49 <freaktechnik> but understanding someone else's regexp, especially when you don't know its intent it just looks crazy
14:55:03 <clokep_work> I have a comment above it. ;)
14:55:07 <clokep_work> That regex could probably uses tests.
14:55:30 <aleth> all regexes could use tests...
14:55:33 <clokep_work> Was there a bug in it or did you just come across it and go WTF?
14:56:17 <freaktechnik> I tried to request a capability, and didn't know the arguments had to be an array... So I looked through the code until I gave up and asked here ;)
15:00:44 <flo-retina> (I just read the log) hmm, I don't think we ever thought about removing prpls without restarting
15:01:08 <flo-retina> I guess we would need a way to temporarily reload the account using the unknown prpl
15:01:41 <clokep_work> And ensure the socket is closed. ;)
15:01:44 <freaktechnik> the much more complex case is when an extension is updated.
15:02:05 <freaktechnik> I think cleaning up the connection is the extension's problem, tbh
15:02:41 <clokep_work> aleth: What do you think of adding |renameParticipant| being in jsProtoHelper?
15:02:58 <-- afiksof has left #instantbird ()
15:03:27 <flo-retina> clokep_work: I assume we could unInit the account before reloading it, so the socket should get closed without us even having to think about it
15:04:06 <clokep_work> flo-retina: Yeah. :) I assume so too.
15:08:02 <aleth> clokep_work: if the xmpp matches the irc one, it would be a good idea
15:08:11 <aleth> maybe it's also related to bug 954662
15:08:13 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=954662 nor, --, ---, nobody, NEW, Join/part messages should be handled by imConversations.js.
15:09:20 <clokep_work> aleth: I was thinking of doing it as part of that current bug which is going on...
15:09:45 <freaktechnik> So if I want to set the colour of a message I'd do that with the observer, of which I forgot the name? Or can I do that with the message handlers too?
15:09:46 <aleth> certainly the strings are duplicated
15:10:02 <clokep_work> Anyone know the iMessage protocol? I suspect it's jabber.
15:14:43 <aleth> http://imfreedom.org/wiki/IMessage ?
15:14:48 <clokep_work> Yeah we foudn that. :)
15:14:53 <clokep_work> Debate at work. ;)
15:14:59 <clokep_work> aleth: I commented on the bug, we'll see...
15:15:01 <aleth> Doesn't look like XMPP, just XML
15:16:05 <clokep_work> Yeah.
15:19:46 --> afiksof1 has joined #instantbird
15:31:37 <-- gerard-majax has quit (Ping timeout: 121 seconds)
15:36:03 --> mpmc has joined #instantbird
15:40:13 <-- aleth has quit (Ping timeout: 121 seconds)
15:42:11 --> aleth has joined #instantbird
15:42:12 * ChanServ sets mode +o aleth 
15:53:21 --> iamjayakumars has joined #instantbird
15:54:47 <-- AlexanderSalas has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
15:58:37 <-- Bollebib has quit (Ping timeout: 121 seconds)
16:04:48 --> myk has joined #instantbird
16:11:57 <-- iamjayakumars has quit (Quit: )
16:31:19 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
16:33:31 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
16:33:36 <-- aleth has quit (Ping timeout: 121 seconds)
16:40:05 <-- afiksof1 has quit (Ping timeout: 121 seconds)
16:42:06 --> afiksof has joined #instantbird
16:48:22 --> arlolra has joined #instantbird
17:06:45 --> Mook_as has joined #instantbird
17:46:19 --> nhnt11 has joined #instantbird
17:46:20 * ChanServ sets mode +h nhnt11 
17:57:15 --> aleth has joined #instantbird
17:57:16 * ChanServ sets mode +o aleth 
18:01:44 <clokep_work> nhnt11: WebSocket should be enabled.
18:02:01 <nhnt11> context: http://pastebin.mozilla.org/8838148
18:02:03 <clokep_work> Did you properly set the security stuff in the ontext?
18:02:14 <nhnt11> clokep_work: I think so.
18:02:16 <nhnt11> Not entirely sure
18:02:24 <nhnt11> (don't remember all the things I tried)
18:02:51 <clokep_work> :-\
18:02:57 <clokep_work> I'd need to see code / the error.
18:03:04 <nhnt11> yeah
18:03:18 <nhnt11> The error appears for a split second
18:03:22 <-- afiksof has left #instantbird ()
18:03:27 <nhnt11> Because there are a ton of JS/CSS warnings from loading the page
18:14:27 <nhnt11> aleth: you have a good point
18:14:38 <nhnt11> about people not restarting their Tb
18:14:58 <nhnt11> let me think...
18:15:44 <nhnt11> aleth: I think it would be ok to expose a new API to get the log file currently being written to, does that sound fine to you?
18:16:13 <aleth> Yes
18:16:20 --> Bollebib has joined #instantbird
18:16:28 <nhnt11> The problem is that currently the imILogger API doesn't provide any notification or whatever that there is a new file
18:16:31 <nhnt11> Ok, cool
18:16:33 <aleth> Or modify the return value of the existing API so the last entry in the array is the current file or something like that
18:17:02 <nhnt11> aleth: By the way, your point about queuing a write on file 1 while waiting for file 2 is valid even if we use Promise.all
18:17:06 <aleth> Look at the current consumers of that function, there may be none outside of gloda, then you can do as you like
18:17:23 <aleth> nhnt11: Yes, that's true
18:17:24 <nhnt11> I looked at the implementation of that yesterday and it basically has a count of the number of promises left and decrements it in the then() of each promise
18:17:50 <nhnt11> hmm
18:18:05 <nhnt11> I'll take a look later and give you a new patch
18:18:08 <aleth> nhnt11: The subtelty is to make sure the previous log file is fully indexed when starting to indec a new file
18:18:10 * nhnt11 is glad this is moving along again
18:18:31 <aleth> Yup! Should land on the next cycle or two I think :-)
18:18:57 <aleth> And then hopefully we can forget about gloda, at least ;)
18:19:58 <nhnt11> aleth: Good point about the previous log file thing. We should likely make the actual queuing of the indexing job synchronous to prevent that if we change the API to only return the current log file
18:20:20 <nhnt11> well, s/syncrhonous/work somehow/ :P
18:20:36 <aleth> I don't see a problem with returning all the files, if that helps, as long as you have a defined order
18:21:02 <nhnt11> Aren't we already returning all the files/
18:21:04 <nhnt11> ? *
18:21:10 <aleth> Yes
18:21:15 <aleth> (in your current patch)
18:21:16 <nhnt11> I mean, the point of this exercise is to not do that, right?
18:21:31 <nhnt11> Or did you just want to avoid that loop
18:21:51 <aleth> The point is ultimately to avoid as many file system i/o calls as possible
18:22:02 <nhnt11> right...
18:22:03 <nhnt11> My bad
18:22:18 <aleth> e.g. in that loop to get the last modification time for each file
18:22:20 <nhnt11> I was under the impression that logger.js was doing a directory traversal to get all the paths
18:22:21 <-- myk has quit (Connection closed)
18:22:30 <nhnt11> Which is why I thought we wanted to do that
18:22:32 <nhnt11> Obviously, it's not.
18:22:33 <aleth> iirc it's an array in the log writer
18:22:36 <nhnt11> yeah
18:22:39 <aleth> or a map or something
18:22:44 <nhnt11> It's been a long time since I wrote that :]
18:22:56 <nhnt11> It's an array, and it's in order
18:23:04 <nhnt11> I guess we can just look at the last two paths in the array!
18:23:13 --> myk has joined #instantbird
18:23:18 <nhnt11> OK, I should get back to Fx work
18:23:26 <nhnt11> Glad we got this rolling
18:24:34 <aleth> do you have to land stuff before the merge?
18:25:56 <nhnt11> No
18:29:55 <freaktechnik> wow, mach bootstrap is some proper black magic.
18:30:25 <clokep_work> Just python. ;)
18:31:22 <nhnt11> python, black magic... tomayto, tomahto
18:48:40 --> chrisccoulson_ has joined #instantbird
18:51:12 <-- chrisccoulson has quit (Ping timeout: 121 seconds)
19:01:36 --> Mnyromyr has joined #instantbird
19:24:25 * nhnt11 is now known as Nhnt11 
19:26:22 <freaktechnik> clokep_work: so... I'm thinking about that IRC tags thing... After considering the spec it'd be best to have a new property for the message which just exposes the tags in a key-value fashion (frozen object?).
19:26:34 <freaktechnik> I'm not yet sure how to parse the xn-- entities.
19:27:06 <freaktechnik> oh wait, that's only for domain names of vendor specific tags, so that shouldn't matter, I guess?
19:27:20 <freaktechnik> as in, just set the key of the tag to whatever it is in the raw message?
19:30:26 <clokep_work> freaktechnik: Using a Map or an object seems reasonable, yes.
19:30:42 <clokep_work> the ircMessage would have an extra field (tags) which is a mapping of key to value, yes.
19:30:47 * Fallen|away is now known as Fallen 
19:31:16 <freaktechnik> per spec only the value is actually escaped and should not be exposed as-is, right?
19:31:51 <clokep_work> I'm not sure what that means.
19:31:53 <clokep_work> Also please link me. :-D
19:31:56 <clokep_work> I don't know that spec very well.
19:32:00 <freaktechnik> http://ircv3.net/specs/core/message-tags-3.2.html
19:32:19 <freaktechnik> well, in the value you escape things like spaces, semicolons and linebreaks
19:32:38 <freaktechnik> (not sure about unescaping linebreaks though, as we're still in js)
19:33:04 <aleth> yet another escaping scheme for irc? :-/
19:33:33 <freaktechnik> from looking at it, the only unescaping that needs to be done is replacing \: with ; and \s with a space
19:33:34 <-- Bollebib has quit (Ping timeout: 121 seconds)
19:34:06 <clokep_work> And new lines...
19:34:28 <freaktechnik> but a newline is \n in a js string...
19:34:52 <clokep_work> freaktechnik: The "sequence in <escaped value>" is two physical characters, it isn't showing you an escaped string.
19:35:12 <clokep_work> So in that there's a \ character followed by an n charactter.
19:35:27 <clokep_work> Now a single character of octal 012
19:35:40 <clokep_work> *not
19:36:08 <freaktechnik> right, \n only works in literals?
19:36:23 <freaktechnik> (which would make sense, thinking about it)
19:40:38 <freaktechnik> hmm, is there any reason to use a map over an object? So there is no collision with the object prototype?
19:41:15 <freaktechnik> on the other hand there is no need for anything more than what Map provides.
19:41:25 <clokep_work> freaktechnik: I kind of like Maps...
19:41:41 <clokep_work> aleth might have an opinion
19:41:58 --> Bollebib has joined #instantbird
19:42:18 <clokep_work> freaktechnik: I'd be OK leaving a TODO for the punycode thing btw. ;)
19:42:34 <freaktechnik> punycode thing?
19:42:45 <clokep_work> "In cases if the domain name contains non-ASCII characters, punycode MUST be used, e.g. xn--e1afmkfd.org/foo."
19:42:54 <freaktechnik> oh, that's on the server side
19:42:58 <freaktechnik> so we don't have to handle that.
19:43:21 <freaktechnik> at least from how I understand the spec
19:43:36 <clokep_work> Umm....I guess, yeah.
19:43:44 <clokep_work> Unless we wanted to allow authors to use unicode to get them.
19:43:49 <clokep_work> So sure just ignore it.
19:44:50 <freaktechnik> I can leave a comment along the lines of // BTW unicode characters in domain names aren't escaped back to their original form in tags
19:44:59 <freaktechnik> since the code seems to be the documentation of instantbird ;)
19:45:55 <clokep_work> :-[
19:46:03 <clokep_work> Writing documentation is hard and time consuming.
19:46:12 * freaktechnik appreciates doxygen
19:46:34 <freaktechnik> no need for more documentation, just not having to wade through code itself and having working cross references can be great sometimes
19:46:44 <clokep_work> Yeah.
19:46:51 <freaktechnik> plus custom documentation tags like @CID or @contractID can be magic
19:46:58 <clokep_work> I actually hate doxygen because it makes documentation that's essentially unreadable.
19:47:07 <clokep_work> But the concept is good.
19:47:13 <freaktechnik> I guess it's a question of what you're used to...
19:47:13 <clokep_work> I've never found a good way for JavaScript though.
19:47:20 <freaktechnik> it's like me not liking hg ;)
19:47:30 <clokep_work> All version control systems suck.
19:47:56 * Nhnt11 is now known as nhnt11 
19:50:06 <freaktechnik> compiling on some intel pentium netbook sucks too.
19:57:23 <clokep_work> Sounds likely. :-D If it's just JS you can theoretically just unpack the jar, but I don't remember how to do that exactly.
19:57:41 <freaktechnik> yeah, I know that
19:57:56 <freaktechnik> but once it's built I can do incremental builds...
19:58:05 <freaktechnik> which is way less trouble
19:58:16 <freaktechnik> or I could have made a jarless build for even more convenience
20:02:20 <clokep_work> Builds are jarless by default.
20:02:23 <clokep_work> And symlinked on *nix.
20:03:57 <freaktechnik> wow, symlinks is an improvement over what we have with nightingale. But a nightingale build is way faster. I guess there's a lot of bloat in Gecko ;)
20:04:08 <clokep_work> Really?
20:04:17 <clokep_work> Firefox has gotten much faster to build recently...
20:04:22 <clokep_work> Although maybe you're before the peak. :)
20:05:00 <freaktechnik> 1.9.2 is way before the peak...
20:05:11 <Mook_as> I thought we got to Gecko 4 at some point?
20:05:51 <freaktechnik> well, not working. I mean, it builds, but the tabbrowser is still browser, and I seem to be the only one knowing how to fix it and I haven't had an motivation to do it in the last two years...
20:06:15 * Mook_as thought we copied the tabbrowser stuff over. Meh, offtopic.
20:06:15 <freaktechnik> *broken
20:07:03 <freaktechnik> there are like 3 or 4 branches with attempts, so it's possible there's one with a working tabbrowser...
20:11:22 <freaktechnik> 101 minutes.
20:16:20 <clokep_work> Ouch.
20:16:39 <clokep_work> freaktechnik: You should be able to |mach build chat/protocols/irc| and that should be "instant"
20:16:57 <freaktechnik> yeah, now I have a base build
20:17:00 <freaktechnik> which helps
20:17:27 <freaktechnik> I'm hoping I can just do mach build in
20:27:50 --> flo-retina has joined #instantbird
20:27:50 * ChanServ sets mode +qo flo-retina flo-retina 
20:29:25 <clokep_work> Sure, I usually specify the path for fun though.
20:29:31 <clokep_work> (It's usually faster)_
20:36:26 <instantbot> rkent@caspia.com set status-thunderbird to fixed on bug 1175462.
20:36:28 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1175462 nor, --, 1.6, aleth, RESO FIXED, Automatic MUC rejoins don't always work
20:50:57 <freaktechnik> Can I hide certain commands if the user doesn't fullfill certain prequisites?
20:51:21 <clokep_work> Do you mean slash commands (/join blah blah)
20:51:23 <clokep_work> ?
20:51:26 <freaktechnik> yep
20:51:33 <clokep_work> Hmm...I'm not sure.
20:51:40 <clokep_work> You mean like not showing /op unless yo're an operator, right?
20:51:41 --> EionRobb has joined #instantbird
20:51:42 <clokep_work> (As an example.)
20:51:43 <freaktechnik> at least irc doesn't do it...
20:51:47 <freaktechnik> yep
20:51:56 <clokep_work> flo-retina: Any opinion on that?
20:52:02 <clokep_work> I can't think of a straightforward way...
20:52:12 <clokep_work> (/ an opinion on *if* we'd want to support it.)
20:52:32 <freaktechnik> from what I can see, you can currently restrict commands to chatrooms?
20:52:35 <flo-retina> currently the only condition is chat vs im
20:53:06 <flo-retina> extending that could make sense, if the use case deserves it :)
20:54:30 <freaktechnik> it's not  much more than hiding multiple levels of privileged commands
20:54:35 <freaktechnik> so I don't think it's an issue
20:54:42 <freaktechnik> I was just curious if it was possible
20:55:06 <flo-retina> freaktechnik: the kind of privileged states would vary from one protocol to another
20:55:12 <freaktechnik> yep
20:55:16 <flo-retina> some commands should possibly also be hidden when the account is offline
20:55:36 <clokep_work> freaktechnik: Also, for IRC, the privileges vary based on the channel you're in which is a pain.
20:56:14 <freaktechnik> so you'd have to do a callback based on the conversation the command comes from, from what I can see, since you can get the account from that.
20:56:19 <freaktechnik> :P
20:57:22 <clokep_work> Something like that.
21:10:13 <freaktechnik> clokep_work: oh, I just noticed the value for a tag is optional... null as value?
21:12:25 <clokep_work> freaktechnik: null or undefined, sure.
21:12:39 <clokep_work> It should match what we do for ISUPPORT.
21:13:30 <freaktechnik> okay
21:16:42 --> EionRobb1 has joined #instantbird
21:16:43 <-- EionRobb has quit (Ping timeout: 121 seconds)
21:27:39 <freaktechnik> hmm, hg diff is a mistake.
21:28:26 <clokep_work> ?
21:28:49 <freaktechnik> because it goes through all the files
21:29:02 <freaktechnik> hg diff chat/protocols/irc/irc.js is way better...
21:29:34 <clokep_work> Yes.
21:31:29 <freaktechnik> so, for incoming tags, everything that would have to be done is http://pastebin.com/JDzEGH0M from what I can tell.
21:34:42 <clokep_work> Meh that comment doesn't make much sense. :(
21:34:45 <clokep_work> My fault, not yours. ;)
21:35:15 <freaktechnik> I understood what the regexp does, so it can't be that bad...
21:35:24 <clokep_work> Just poor English.
21:36:22 <freaktechnik> I'm more curious of what I think of my de-escaping method. It's the only way I could think of, where \\n wouldn't be decoded as linebreak.
21:36:25 <clokep_work> freaktechnik: Could you add tests too? Also, some minor nits: put a space after "if" (before the "("), no { } around one line statements.
21:36:41 <freaktechnik> where would tests go?
21:37:00 <freaktechnik> even if the one line block is in an else to a multi line if?
21:37:14 <clokep_work> Yes.
21:37:24 <freaktechnik> interesting
21:37:28 <clokep_work> Assuming the scoping works appropriately, of course.
21:37:28 <freaktechnik> :)
21:37:48 <clokep_work> freaktechnik: There's a 'test' directory under the 'irc' one you're working in, in that there's a set of tests for messages.
21:37:59 <freaktechnik> okay, I think I'll find my way.
21:38:20 * clokep_work is on his way out...
21:38:27 <clokep_work> I think we somewhere do a weird cool mapping to escape things...
21:41:36 <clokep_work> Something like http://mxr.mozilla.org/comm-central/source/chat/protocols/irc/ircCTCP.jsm#31 is an interesting way to do it, but maybe doesn't scale well...
21:41:48 <freaktechnik> hm, the test for ircMessage is for outgoing messages, from what I can tell
21:41:57 <clokep_work> Why do you say that?
21:41:59 <clokep_work> They're tests for messages...
21:42:17 <clokep_work> The protocol inbound and outbound is the same.
21:42:45 <clokep_work> Especially look down at the other tests besides the RFC ones.
21:42:52 <clokep_work> You'll probably want to add a new section.
21:43:52 <clokep_work> Something like http://mxr.mozilla.org/comm-central/source/chat/protocols/irc/test/test_ircMessage.js#170 but for tags
21:44:00 <freaktechnik> oh, that dequoting in CTCP look sinteresting.
21:45:36 <clokep_work> Goodnight.
21:46:13 <clokep_work> freaktechnik: Btw that patch looks mostly good. :)
21:47:34 <clokep_work> I think it would be slightly clearer if you did: let value = null; if (tag.length > 1) { value = stuff... }; message.tags.set(tag[0], value);
21:47:44 <clokep_work> Also please two space indent everywhere.
21:48:02 <freaktechnik> ...I'm trying my best to keep it at two spaces
21:48:06 <clokep_work> And put a nice comment above the escaping part saying what it does.
21:48:43 <freaktechnik> hmm, looking at the unit tests, always setting the map will be trouble
21:49:42 <-- arlolra has quit (Connection closed)
21:50:19 <freaktechnik> on the other hand I'll have to extend isEqual either way
21:52:07 <-- clokep_work has quit (Ping timeout: 121 seconds)
21:52:23 <instantbot> aleth@instantbird.org changed the Resolution on bug 1171717 from --- to FIXED.
21:52:25 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1171717 nor, --, 1.6, aleth, RESO FIXED, Replace usage of NetUtil.asyncFetch2 in XMPP and Yahoo
22:01:09 --> sherief has joined #instantbird
22:02:48 --> mpmc has joined #instantbird
22:15:25 --> clokep_work has joined #instantbird
22:15:25 * ChanServ sets mode +o clokep_work 
22:19:51 <aleth> Fallen: you might find this useful (it looks like znc supports it) http://ircv3.net/specs/extensions/server-time-3.2.html
22:21:25 <clokep_work> On my TODO list...
22:21:40 --> freaktechnik_ has joined #instantbird
22:21:48 <Fallen> nice, very useful :-)
22:22:06 <aleth> looks like freaktechnik might be taking care of the tag part already ;)
22:22:31 <freaktechnik_> yep
22:22:45 <freaktechnik_> just have to pass my own tests ;)
22:23:15 <-- freaktechnik has quit (Ping timeout: 121 seconds)
22:23:15 * freaktechnik_ is now known as freaktechnik 
22:25:19 <freaktechnik> can I somehow get more info on what's failingby adding additional logging or similar in tests?
22:26:35 <clokep_work> aleth: ^
22:27:29 <aleth> yes, with do_print
22:29:07 <aleth> also ok, equal, etc have an optional message parameter
22:30:43 <freaktechnik> okay, what's nice is mach advising to try with --sequential, which doesn't work...
22:32:35 <aleth> mach claims one can remote debug xpcshell tests
22:33:15 <freaktechnik> I see...
22:34:01 <clokep_work> (o_O)
22:34:07 <clokep_work> I usually just print stuff, yeah
22:36:03 <-- sherief has quit (A TLS packet with unexpected length was received.)
22:36:42 <nhnt11> you can also just dump() afaik
22:38:10 <clokep_work> I always forget if you can print() or dump(). :-D
22:49:42 <-- Mnyromyr has quit (Connection closed)
22:55:15 <-- clokep_work has quit (Ping timeout: 121 seconds)
23:05:49 * Fallen is now known as Fallen|away 
23:12:57 <-- aleth has quit (Quit: :tiuQ)
23:31:26 --> BlueMaxima has joined #instantbird
23:35:00 <-- Bollebib has quit (Ping timeout: 121 seconds)