#instantbird log on 06 03 2014

All times are UTC.

00:08:27 <clokep> mayanktg: Did you figure out your issues?
00:15:53 <-- Rym has quit (Ping timeout)
00:17:31 --> Rym has joined #instantbird
00:31:31 <-- rosonline has quit (Ping timeout)
00:32:17 --> rosonline has joined #instantbird
00:56:19 <-- Armada has quit (Connection reset by peer)
01:33:28 <-- Mook_as has quit (Quit: Mook_as)
01:50:13 <-- rosonline has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
01:59:11 <-- xangua has quit (Quit: Connection closed for inactivity)
02:11:13 <-- clokep has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
02:17:56 <-- Rym has quit (Ping timeout)
02:24:57 <-- arlolra has quit (Quit: arlolra)
02:29:54 --> mconley has joined #instantbird
02:45:15 --> Rym has joined #instantbird
02:48:37 <-- mconley has quit (Connection timed out)
02:49:16 --> mconley has joined #instantbird
03:00:00 --> xangua has joined #instantbird
03:21:23 <-- nhnt11 has quit (Ping timeout)
03:22:47 --> nhnt11 has joined #instantbird
03:25:35 <-- nhnt11 has quit (Ping timeout)
03:26:49 --> nhnt11 has joined #instantbird
03:28:39 <-- nhnt11 has quit (Ping timeout)
03:30:08 --> nhnt11 has joined #instantbird
03:36:22 <-- nhnt11 has quit (Ping timeout)
03:36:34 <-- mconley has quit (Input/output error)
03:36:54 --> mconley has joined #instantbird
03:37:51 --> nhnt11 has joined #instantbird
03:45:47 <-- nhnt11 has quit (Ping timeout)
03:46:59 --> nhnt11 has joined #instantbird
04:36:39 --> gerard-majax__ has joined #instantbird
04:39:40 <-- mconley has quit (Connection timed out)
04:40:12 --> mconley has joined #instantbird
04:42:37 <-- mconley has quit (Quit: NO CARRIER)
04:48:33 <-- gerard-majax__ has quit (Ping timeout)
05:32:31 --> Mook has joined #instantbird
06:04:09 <-- EionRobb has quit (Quit: Leaving.)
06:17:02 --> gerard-majax__ has joined #instantbird
06:24:38 <-- gerard-majax__ has quit (Ping timeout)
06:28:09 --> gerard-majax__ has joined #instantbird
06:30:14 <-- gerard-majax__ has quit (Ping timeout)
06:39:47 <-- Mook has quit (Quit: Mook)
06:44:21 <-- Rym has quit (Ping timeout)
07:32:58 --> mpmc has joined #instantbird
07:53:55 --> mayanktg has joined #instantbird
07:58:17 --> gerard-majax__ has joined #instantbird
07:59:57 --> jb has joined #instantbird
08:15:50 --> sonny has joined #instantbird
08:40:52 <mayanktg> clokep: Yes I understood what flo was said, I I need was to pass the JID's of the two clients. Sorry I couldn't respond. I can now send all the three negotiations between the clients. :)
08:43:00 <mayanktg> Here's the negotiation exchange diff http://pastebin.instantbird.com/727037
08:44:45 <mayanktg> and my XMPP WIP until now. http://pastebin.instantbird.com/727038  I'm going to add media exchange
08:53:36 --> BWMerlin has joined #instantbird
09:12:04 <-- sonny has quit (Ping timeout)
09:12:42 --> Guido has joined #instantbird
09:29:11 <-- xangua has quit (Quit: Connection closed for inactivity)
09:30:08 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
09:38:42 --> aleth has joined #instantbird
09:38:42 * ChanServ sets mode +o aleth 
09:52:22 --> flo-retina has joined #instantbird
09:52:23 * ChanServ sets mode +qo flo-retina flo-retina 
09:52:44 <-- Guido has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
10:01:00 --> clokep has joined #instantbird
10:01:00 * ChanServ sets mode +o clokep 
10:05:36 <-- aleth has quit (Ping timeout)
10:06:16 --> sonny has joined #instantbird
10:13:24 --> Armada has joined #instantbird
10:24:05 <nhnt11> Hi
10:25:25 <clokep> Hello.
10:34:26 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
10:34:33 --> nhnt11 has joined #instantbird
10:34:58 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
10:35:06 --> nhnt11 has joined #instantbird
10:52:22 <-- clokep has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
11:00:51 --> aleth has joined #instantbird
11:00:51 * ChanServ sets mode +o aleth 
11:06:11 <aleth> mayanktg: In case you didn't know, a simple "conv" in the code will refer to different things in different parts of the codebase. It can be a conversation binding or a UIConv in UI-facing code, or (usually) a prplIConversation in prpl code...
11:07:40 <aleth> mayanktg: I still doubt you should be hardcoding those various ids in your code.
11:07:55 <mayanktg> aleth: Thanks. I didn't know that. 
11:08:10 <mayanktg> aleth: Me too. But what should I use instead of that?
11:08:24 <aleth> mayanktg: That's what the XMPP RFCs should tell you ;)
11:09:23 <aleth> They must be generated at some point, but I don't know the details.
11:11:07 <aleth> Maybe it's just a stanza id.
11:11:08 <mayanktg> Ok. I'll try to figure it out. You are right btw, using hardcoded id's will bring conflicts.
11:39:35 --> clokep_work has joined #instantbird
11:39:35 * ChanServ sets mode +o clokep_work 
11:53:02 <-- BWMerlin has quit (Quit: BWMerlin)
11:53:20 <-- sonny has quit (Ping timeout)
12:02:58 <-- aleth has quit (Ping timeout)
12:07:40 --> aleth has joined #instantbird
12:07:40 * ChanServ sets mode +o aleth 
12:08:00 <clokep_work> mayanktg: So are you stuc now or still making progress?
12:13:36 <mayanktg> clokep_work: I'm making progress. I can send the stanzas . How to send exchange media after receiving the accept stanza?
12:13:47 <clokep_work> Is that a question or a statement?
12:14:22 <mayanktg> a question
12:15:53 <mayanktg> We have to use webrtc for media exchange, so after negotiation how should I call the code at conversation.xml so that stream is started? 
12:16:45 <clokep_work> I think flo-retina has better thoughts on this than I do (or maybe aleth)
12:16:52 <clokep_work> (I'm also half asleep still. :-D)
12:17:40 <mayanktg> yeah ..its too morning there :D
12:18:57 <aleth> mayanktg: Speaking very generally, what we do is send a notification which the conversation binding listens to.
12:19:41 <aleth> So the prpl calls this.notifyObservers(...) and in conversation.xml you listen for the new notification in observe()
12:20:00 <mayanktg> aleth: can you show some example?
12:20:02 <mayanktg> aleth: Ok.
12:21:20 <aleth> http://mxr.mozilla.org/comm-central/source/chat/protocols/irc/irc.js#517
12:21:48 <aleth> http://mxr.mozilla.org/comm-central/source/im/content/conversation.xml#1861
12:22:27 <mayanktg> aleth: okiess :) 
12:24:04 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
12:24:10 --> nhnt11 has joined #instantbird
12:26:33 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
12:26:39 --> nhnt11 has joined #instantbird
12:27:24 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
12:28:13 --> nhnt11 has joined #instantbird
12:28:21 <flo-retina> mayanktg: I'm confused by the question
12:28:34 <flo-retina> do you already have a PeerConnection instance and a SDP from it?
12:29:05 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
12:29:11 --> nhnt11 has joined #instantbird
12:30:18 <mayanktg> flo-retina: No. Currently I don't have it
12:30:41 <aleth> Oh, I thought that's what you wanted to pass to conversation.xml
12:31:24 <mayanktg> the parties can exchange "stub" media data using "stub" transport.
12:32:11 <flo-retina> what's the meaning of 'stub' in that sentence?
12:33:19 <aleth> Can we break up what is to be done into small landable patches? I'm not sure about the scope of what you're doing.
12:34:07 <mayanktg> flo-retina: XEP-0166 states about using "stub" media http://xmpp.org/extensions/xep-0166.html#howitworks
12:34:54 <aleth> I think you should understand those XMPP ids first before moving on.
12:34:55 <mayanktg> aleth: Ok. I'll have a separate patch for the /call command.
12:35:06 <clokep_work> flo-retina: What looks "broken" about the mode line?
12:35:20 <nhnt11> We were discussing an SMS prpl in #chatdev,
12:35:21 <nhnt11> 18:04:20 - clokep_work: How is an SMS one easy? This also sounds like #instantbird fodder.
12:35:21 <nhnt11> clokep_work: Android provides an API for SMSes (assuming we're talking about android)
12:36:30 <nhnt11> What I would do is instead of having an SMS prpl, write an app to forward SMSes to an XMPP account or something
12:36:47 <nhnt11> (that's what some solutions already do, DeskSMS uses Google Talk through the app engine I think)
12:37:28 <aleth> clokep_work, flo-retina: bug 954855
12:37:31 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=954855 nor, --, ---, nobody, NEW, Improve mode system messages
12:37:46 <-- sukhe has quit (Ping timeout)
12:37:51 <mayanktg> aleth: Ok. I'm unable to get where the ID's meaning has been defined. Whether we have to generate an id or use the same id as given 
12:39:30 <aleth> mayanktg: Almost certainly in here http://xmpp.org/rfcs/rfc6120.html
12:40:04 <aleth> e.g. 4.7.3
12:40:29 <mayanktg> Yes. I got it
12:40:39 <aleth> There may be other ids as well, but if I can find this in a couple of seconds, so can you.
12:40:52 <aleth> I mean, the section is even called "id".
12:41:10 <nhnt11> aleth: Why is only the second promise.then(x, x) a use case for finally()?
12:41:12 --> sukhe has joined #instantbird
12:41:19 <clokep_work> nhnt11: I see. That's the cheap way of doing it. ;)
12:41:44 <nhnt11> clokep_work: What's the expensive way?
12:42:01 <nhnt11> Do you mean if the computer has a cell radio?
12:42:18 <clokep_work> nhnt11: I don't mean cheap as in cost, I mean cheap as in "cheating". :P
12:42:29 <nhnt11> clokep_work: What's the fair way?
12:42:58 <mayanktg> aleth: http://xmpp.org/rfcs/rfc6120.html#stanzas-attributes-id .
12:43:23 --> sonny has joined #instantbird
12:43:32 <clokep_work> nhnt11: It was a joke. :-\
12:43:58 <aleth> mayanktg: OK, so if you read enough of the surrounding text until you are confident you understand it, you should be on your way.
12:44:00 <nhnt11> I get it, but I was wondering if you had another way in mind.
12:44:54 <clokep_work> nhnt11: https://code.google.com/p/purple-gammu/
12:45:28 <nhnt11> Ah..
12:45:42 * nhnt11 doesn't like that. I don't want to have to pair my phone or connect it whenever I want to use the prpl...
12:45:54 <aleth> nhnt11: I'm pretty sure a Promise.finally(x) should return a promise which is fulfilled/rejected if the original promise was fulfilled/rejected, independent of what x does (unless there are new errors)
12:46:53 <nhnt11> Hmm, I guess.
12:47:13 <nhnt11> (what I guess is that we don't want that behavior here)
12:48:30 <aleth> Right.
12:48:41 <aleth> Anyway, that was just a comment in passing...
12:48:46 <nhnt11> Sure.
12:50:19 <clokep_work> You asked for another solution. ;)
13:01:46 <nhnt11> aleth: How about moving LogMessage under LogConversation?
13:01:55 <aleth> That would work too.
13:02:06 <nhnt11> Makes more sense to me.
13:02:06 <aleth> or above it.
13:02:37 <nhnt11> aleth: Most object definitions in this file are below the first block that tries to create one of them.
13:02:48 <nhnt11> (Maybe s/most/all)
13:03:27 <aleth> Generally we put the consumers of certain objects under the object definitions, can we reorder things so that that is the case here too?
13:03:33 <nhnt11> Alright
13:04:04 <aleth> e.g. the actual imILogger API functions are at the bottom.
13:05:18 <aleth> Of course there's no hard rules as the goal is to make things conveniently legible.
13:05:38 <aleth> So just go with what makes most sense to you, but don't be afraid to reorder.
13:07:21 * nhnt11 is reordering
13:30:09 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
13:32:05 <nhnt11> aleth: How's this as a combined comment for DailyLogEnumerator and LogEnumerator? https://pastebin.mozilla.org/5331625
13:32:25 <nhnt11> s/array/input array./ in the last line
13:34:43 <aleth> s/maintain and enumerate/provide is simpler
13:34:47 <aleth> otherwise looks fine.
13:39:55 <nhnt11> aleth: I'm also doing s/function foo(aBar)\n{/function foo(aBar) {/ by the way.
13:40:16 <nhnt11> That wasn't very readable. I mean keeping the opening brace on the same line as the function definition
13:40:22 <aleth> OK
13:41:23 <aleth> That file was a bit of a mix of styles...
13:41:54 <clokep_work> Generally we're pretty good, but some of the files mix weird styles.
13:42:09 <clokep_work> And all the IRC code does: "} else" on the same line, which is totally my bad. :-\
13:42:13 <clokep_work> I should fix that at some point...
13:42:22 --> nhnt11-testing has joined #instantbird
13:49:08 <mayanktg> aleth: *Regarding Id's* - We'd have to use id's which are globally unique so that it can receive response/error. it should not be hard coded in our case. Since it would bring collision if calls were made / another call received in b/w.
13:51:20 <aleth> Yes.
13:51:47 <aleth> Have you looked at how the existing code adds ids?
13:52:04 <mayanktg> aleth: *using XEP 0320* - The XEP explains how to send the SDP setup attribute. But i don't know how to generate a fingerprint for the same. 
13:52:40 <aleth> Isn't that a different problem?
13:52:51 <mayanktg> aleth: Yes. It's a different thing.
13:53:32 <mayanktg> No I haven't at looked it. --> searching for it now.
13:56:56 --> flo-retina has joined #instantbird
13:56:56 * ChanServ sets mode +qo flo-retina flo-retina 
13:57:02 <aleth> mayanktg: The code you attached in bug 1018060 already handles SDPs. Maybe that code would be more useful to you if you made sure you understood it?
13:57:04 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1018060 nor, --, ---, mayanktg, NEW, Voice and video call support in XMPP using WebRTC
13:57:50 <aleth> Or maybe I'm just not understanding your question the way you mean it.
13:58:29 <-- nhnt11-testing has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
13:58:59 <aleth> It might help if you had an etherpad or a bug comment where you describe in words exactly what the code has to do, from command call to established video link.
13:59:19 <aleth> Without being vague about it.
14:00:21 * nhnt11 is trying to keep track of changes
14:00:30 <nhnt11> Hooray for interdiffs!
14:00:57 <mayanktg> aleth: Ok. I'm creating an etherpad link about the same.
14:10:17 <aleth> mayanktg: If you really need to know about the SDP fingerprints, you just have to dig into the specs. XEP320 tells you the SDP format is defined in RFC4572, that will explain what the fingerprint is exactly. Probably a hash function applied to a cert of some sort.
14:13:23 <aleth> mayanktg: So I think it would help you to put together a kind of flowchart in the etherpad, of how XMPP, Jingle and WebRTC interact.
14:13:31 <mayanktg> aleth: Ok. Yes it given here http://tools.ietf.org/html/rfc4572#section-5 
14:15:01 <mayanktg> aleth: Yes. I'll draw a flowchart about the idea I have regarding integrating Jingle and WebRTC.
14:19:50 <aleth> nhnt11: typo: this._entriePaths (I guess you can leave it and see if your tests pick it up ;) )
14:20:06 <nhnt11> :'(
14:20:15 * nhnt11 removed the s and added Paths
14:26:12 <-- nhnt11 has quit (Ping timeout)
14:27:14 <-- Armada has quit (Ping timeout)
14:27:24 --> Armada has joined #instantbird
14:28:04 --> iamjayakumars has joined #instantbird
14:29:36 --> rosonline has joined #instantbird
14:33:30 <-- aleth has quit (Ping timeout)
14:35:53 <-- sukhe has quit (Ping timeout)
14:37:22 --> aleth has joined #instantbird
14:37:22 * ChanServ sets mode +o aleth 
14:39:25 --> sukhe has joined #instantbird
14:45:52 --> nhnt11 has joined #instantbird
14:53:02 <nhnt11> aleth: Want me to post the new patch with s/entrie/entry/ or wait for comments?
14:55:56 <aleth> nhnt11: Put up a new patch if you think you'll forget otherwise, because I'm going to wait with this review until the tests catch up.
14:56:06 <nhnt11> Ah, okay
14:57:47 <aleth> Even if there was anything wrong, I probably wouldn't spot it right now anyway after having looked at it so often recently ;)
14:58:21 <nhnt11> Yeah
14:58:22 <mayanktg> aleth: I have written about how I have understood it so far regarding the implementation. Please look at it https://etherpad.mozilla.org/Ib-Webrtc-XMPP and comment whenever you have doubts.
15:02:29 <aleth> ^^ flo-retina
15:03:24 --> mayanktg-ph has joined #instantbird
15:03:45 <flo-retina> aleth: in meetings.
15:04:25 <-- nhnt11 has quit (Ping timeout)
15:05:47 --> nhnt11 has joined #instantbird
15:06:10 <nhnt11> 20:33:33 * nhnt11 thinks the ^^ emoticon really wants to be ^_^
15:07:51 <-- nhnt11 has quit (Ping timeout)
15:10:21 --> nhnt11 has joined #instantbird
15:12:41 --> mconley has joined #instantbird
15:13:49 <-- nhnt11 has quit (Connection reset by peer)
15:15:14 --> nhnt11 has joined #instantbird
15:16:58 <-- nhnt11 has quit (Ping timeout)
15:18:12 --> nhnt11 has joined #instantbird
15:19:00 --> Rym has joined #instantbird
15:19:54 <-- nhnt11 has quit (Ping timeout)
15:21:48 --> nhnt11 has joined #instantbird
15:26:54 <-- nhnt11 has quit (Ping timeout)
15:28:04 --> nhnt11 has joined #instantbird
15:29:50 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
15:29:54 --> mpmc has joined #instantbird
15:34:19 <nhnt11> aleth: I'm writing a test to ensure queued operations execute in the order that they are queued
15:34:37 <nhnt11> I'm wondering if it is important to cover all the possibilities of resolution/rejection for each promise
15:35:03 <nhnt11> i.e. If I queue A and B, test all the cases - A fail, B pass, A pass B pass, A pass B fail, A fail B fail
15:36:14 <aleth> Is it more work to do so? ie. can you just loop over the possibilites?
15:36:36 <nhnt11> aleth: currently writing a helper function to do the actual test, then I'll call it with all the combinations
15:40:42 * nhnt11 is using then(x, x) a few more times... ugly :(
15:42:21 <-- nhnt11 has quit (Connection reset by peer)
15:44:44 --> nhnt11 has joined #instantbird
15:44:59 <nhnt11> 21:11:33 - nhnt11: aleth: Would it be okay do define Promise.prototype.finally in the test?
15:44:59 <nhnt11> 21:11:40 - nhnt11: To avoid calling then(x, x) multiple times
15:45:21 <nhnt11> or Promise.prototype.onComplete or something
15:45:45 <aleth> No.
15:46:10 <aleth> That kind of thing is really fragile. Do you want to have to add a test to test your test?
15:46:35 <nhnt11> aleth: I don't want a "real" finally, just a helper for then(x, x)
15:46:49 <aleth> What you can do is define helper functions, i.e. onComplete: (p,x) => p.then(x,x) or something like that
15:46:56 <nhnt11> okay.
15:46:59 <nhnt11> That works.
15:47:00 <nhnt11> Thanks.
15:47:06 <aleth> But extending the prototype of default objects is bad.
15:47:11 <nhnt11> Alright
15:47:17 <nhnt11> (Why?)
15:47:32 <nhnt11> Unpredictability?
15:48:31 <aleth> That, and it's confusing. If you need to extend things the right way to do it is via a Proxy or object.create inheritance.
15:50:12 <nhnt11> ok
15:53:48 <aleth> One problem is for example: assume eventually a Promise.finally lands but behaves slightly differently in edge cases.
15:55:03 <nhnt11> aleth: If we defined it in the test, wouldn't our definition override the one that landed?
15:55:26 <aleth> Do you consider that a plus?
15:55:33 <nhnt11> Nope
15:55:47 <nhnt11> It would be very confusing
15:56:02 <nhnt11> Just saying the test wouldn't break or behave anomalously 
15:56:29 * nhnt11 isn't trying to argue in favor of overriding the prototype, sorry
15:58:35 <aleth> I think the word for this kind of thing is "monkey patching" ;)
15:59:57 * clokep_work prefers "duck punching"
16:00:06 <aleth> heh, never heard that one.
16:00:09 <nhnt11> "Duck punching" wut
16:00:19 <-- gerard-majax__ has quit (Ping timeout)
16:00:30 * nhnt11 cannot get the image of a duck getting punched out of his head now
16:03:03 * nhnt11 just discovered "duck typing"
16:05:19 * flo-retina would really like a better UX around joining IRC rooms with passwords
16:07:23 --> CaptainCalliope has joined #instantbird
16:13:06 <-- iamjayakumars has quit (Connection reset by peer)
16:13:44 <-- sonny has quit (Ping timeout)
16:17:27 --> iamjayakumars has joined #instantbird
16:18:31 <aleth> flo-retina: Now we open the tab early it should be possible to display a password entry field there if joining fails.
16:18:43 <flo-retina> yeah
16:19:16 <flo-retina> if joining fails and a password is requested (we have an error code telling us that, right?), we should be able to request the password in the conversation window
16:19:31 <aleth> Right.
16:20:15 <aleth> Certainly doable now, just a bit of work to get all the pieces in place.
16:22:28 <clokep_work> flo-retina: I was just thinking this the other day! :)
16:23:28 <flo-retina> :)
16:32:40 <clokep_work> Ah, is the tree back open!?
16:32:42 <clokep_work> No. :(
16:33:01 <flo-retina> we are still not building on Windows, nor on Linux ;)
16:35:51 <clokep_work> Yeah.
16:37:53 --> gerard-majax__ has joined #instantbird
16:40:23 --> Mook_as has joined #instantbird
16:41:40 --> sonny has joined #instantbird
16:43:15 <-- gerard-majax__ has quit (Ping timeout)
16:43:40 <-- mpmc has left #instantbird ()
16:50:08 --> gerard-majax__ has joined #instantbird
17:03:12 <-- mayanktg-ph has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com ))
17:03:19 <-- gerard-majax__ has quit (Ping timeout)
17:03:41 <-- jb has quit (Ping timeout)
17:03:57 --> gerard-majax__ has joined #instantbird
17:06:27 <-- Rym has quit (Ping timeout)
17:06:45 <-- gerard-majax__ has quit (Ping timeout)
17:07:43 --> mpmc has joined #instantbird
17:08:08 --> Rym has joined #instantbird
17:12:12 <-- rosonline has quit (Ping timeout)
17:22:00 <-- mconley has quit (Input/output error)
17:54:19 <-- iamjayakumars has quit (Quit: )
17:55:56 <-- sonny has quit (Ping timeout)
17:59:54 <clokep_work> nhnt11, mayanktg: You guys chugging away still?
18:00:03 * clokep_work is just going to keep IMing you when I haven't heard anything in a while. :P
18:00:24 <nhnt11> clokep_work: Took a break to get myself some hot chocolate, back on it now.
18:00:34 <clokep_work> (o_O)
18:00:41 <clokep_work> That's like last on my list of things I'd want to drink right now!
18:00:44 <clokep_work> It's very war mhere.
18:00:54 <mayanktg> clokep_work: I was on etherpad chatting with aleth :P
18:01:25 * clokep_work wants that etherpad prpl. ;)
18:01:27 <clokep_work> WHich pad is this?
18:01:37 <mayanktg> https://etherpad.mozilla.org/Ib-Webrtc-XMPP
18:05:38 * flo-retina isn't sure what's going on in that pad
18:06:24 <aleth> Chat that should really have been here, as it turns out.
18:06:52 <-- mayanktg has quit (Ping timeout)
18:07:34 --> mayanktg has joined #instantbird
18:11:43 * nhnt11 sighs
18:11:58 <nhnt11> |TypeError: Assert.equal is not a function| and I've no idea why...
18:12:13 <aleth> dump(Assert) gives?
18:13:43 <nhnt11> http://pastebin.instantbird.com/727466
18:13:46 <aleth> Shouldn't you be using your own assert object? i.e. assert = new Assert
18:14:18 <nhnt11> Well it was working before...
18:14:35 <aleth> Well if it was working before... ;)
18:14:51 * nhnt11 is very very confused
18:15:53 <nhnt11> aleth: Btw, would you rather I used do_check_* instead?
18:16:12 <aleth> I don't mind what you use. Whatever you think is best...
18:16:16 <nhnt11> Alright
18:16:43 * clokep_work is just a dinosaur. ;)
18:18:02 <nhnt11> clokep_work, aleth: Fyi do_check_* is deprecated in gecko 32
18:18:12 <nhnt11> So I'm going to use assert
18:18:31 <-- nhnt11 has quit (Input/output error)
18:18:31 <aleth> Heh. Really?
18:18:35 --> nhnt11 has joined #instantbird
18:18:49 <nhnt11> Yeah
18:18:57 <nhnt11> https://developer.mozilla.org/en-US/docs/Mozilla/QA/Writing_xpcshell-based_unit_tests#Assertions_and_logging
18:19:15 <aleth> As long as that doesn't break all our existing tests ;)
18:19:30 * clokep_work wonders how they "tell" people about this stuff.
18:19:42 <aleth> Eventually all your tests fail?
18:19:42 * nhnt11 could have sworn Assert.foo was working and his tests were passing at one point
18:19:56 <nhnt11> Now I have to rewrite all of these...
18:20:06 <clokep_work> FInd & replace?
18:20:18 <nhnt11> well, not rewrite but figure out whether to have one Assert object or create new ones...
18:21:00 <aleth> Hopefully one per file.
18:22:28 <flo-retina> the debate about replacing do_check_* is still ongoing on dev-platform
18:22:52 <nhnt11> Aha!
18:22:56 <nhnt11> https://hg.mozilla.org/mozilla-central/rev/47db23835754
18:23:05 <nhnt11> That lets you use Assert.equal and so on...
18:23:11 <aleth> Huh, that's recent.
18:23:20 <nhnt11> I'm wondering why mine stopped working
18:23:36 <nhnt11> er, s/mine/it/ and s/working/working for me/
18:23:56 <Mook_as> Yeah, the deprecation notice jumped the gun a little
18:24:27 * clokep_work wonders how they test Assert. ;)
18:24:27 <nhnt11> Interesting!
18:24:43 <aleth> Maybe you can just use equal()...
18:24:44 <nhnt11> Looks like it used to WFM before because I was importing Assert.jsm
18:24:57 <nhnt11> But now it's not working because... i'm importing Assert.jms
18:24:58 <nhnt11> jsm*
18:24:59 <nhnt11> :D
18:25:07 <aleth> :D
18:25:26 * nhnt11 updated his tree very recently
18:26:12 <nhnt11> Yup
18:26:19 <nhnt11> removing the import for Assert.jsm fixes it :)
18:26:26 <nhnt11> Yay, so I'm not crazy
18:27:00 <aleth> yeah, you should be able to drop the Assert altogether mostly, https://hg.mozilla.org/mozilla-central/rev/47db23835754#l2.147
18:27:18 <nhnt11> Nice!
18:27:44 <nhnt11> Indeed.
18:28:02 --> mconley has joined #instantbird
18:30:00 * nhnt11 's tests passed... can't be a good sign
18:30:49 <clokep_work> SHIP IT! :)
18:31:08 * nhnt11 forgot to do add_task on a couple of tests
18:31:19 <aleth> UNSHIP IT! :)
18:31:22 <nhnt11> Ah, |TypeError: JSON is undefined|. Much more like it..
18:31:29 <nhnt11> :S
18:31:33 * clokep_work wonders what an unship is. :-S
18:31:43 <clokep_work> What? (o_O) JSON is a global.
18:32:07 <nhnt11> clokep_work: https://images.vesseltracker.com/images/vessels/midres/Un-Marmara-228891.jpg
18:32:09 <nhnt11> scnr
18:33:34 * nhnt11 has no idea why JSON wouldn't be available
18:33:41 <-- Rym has quit (Ping timeout)
18:37:27 <nhnt11> I wonder if JSON is not available from the scope of a Promise...
18:37:36 <nhnt11> (when running an xpcshell test)
18:37:48 * nhnt11 adds dump(JSON)
18:38:15 <nhnt11> "[object JSON]" looks okay..
18:39:56 <nhnt11> Wow
18:40:10 <nhnt11> I did a dump(Object.keys(JSON)) and I got "JSON is not an object"
18:43:00 <nhnt11> Alright, so Object.keys(JSON) is printing ""
18:43:05 * nhnt11 does research
18:43:08 <aleth> That sounds right.
18:43:12 <clokep_work> It's not an object.
18:43:17 <clokep_work> It's a special global object.
18:44:58 <nhnt11> The full error: https://pastebin.mozilla.org/5333795
18:45:08 <nhnt11> I just saw AsyncShutdown in the last error
18:45:34 <nhnt11> last line*
18:46:24 * nhnt11 is even more confused now
18:46:40 <nhnt11> I added a dump above the offending line, and the dump is working
18:46:41 <nhnt11> BUT
18:46:49 <nhnt11> I'm getting TypeError: dump is not a function
18:47:02 <Mook_as> maybe your global went away?
18:47:29 <-- aleth has quit (Ping timeout)
18:48:57 <nhnt11> This is really weird
18:49:10 <nhnt11> I added a dump(JSON.stringify({test: "test"})); above the offending line
18:49:22 <nhnt11> And it's getting dumped just fine. Yet, "JSON is undefined"
18:49:46 <clokep_work> So I tried fixing that issue with the server password for IRC...and couldn't figure out how a prpl would recover a password from the login manager. :( Any thoughts?
18:49:50 <nhnt11> (This time, no "dump is not a function")
18:50:36 <nhnt11> Oh, the error thrown is because there is a JSON in the dump, so it throws there.
18:51:24 --> gerard-majax__ has joined #instantbird
18:51:24 <nhnt11> Ah, possibility: These dumps are happening in two different calls to the function
18:51:26 <nhnt11> And the first time, it runs fine
18:59:20 * nhnt11 doesn't get it
19:00:05 <nhnt11> I think I'm missing a yield somewhere
19:00:13 <nhnt11> And so there's a promise I'm not waiting on
19:00:26 <nhnt11> And some other code is throwing, causing the globals to be "removed" or whatever
19:00:29 <nhnt11> And the still-running promise then fails
19:00:30 <-- mconley has quit (Input/output error)
19:01:38 <nhnt11> Ah!!!!
19:01:57 * nhnt11 shakes his head vigorously
19:02:44 <nhnt11> aleth: The reason we need to return a promise from logMessage, is because it's required for tests :]
19:03:26 <clokep_work> nhnt11: That definitely needs a comment. ;)
19:03:27 * nhnt11 added that return specifically because he predicted this, but then forgot about it.
19:03:30 <nhnt11> Yeah
19:05:17 <clokep_work> Comments!
19:08:53 --> sonny has joined #instantbird
19:12:40 <nhnt11> Tests are good :)
19:12:42 * nhnt11 found a bug
19:17:57 <flo-retina> :)
19:31:37 * nhnt11 thinks all of his tests are passing
19:31:44 <nhnt11> And actually passing... not false positives :)
19:33:04 <-- sonny has quit (Ping timeout)
19:33:36 --> mconley has joined #instantbird
19:43:55 <nhnt11> brb
19:44:24 <nhnt11> flo-retina: Do you want me to add tests for reading text logs?
19:44:36 <flo-retina> why not?
19:44:49 <nhnt11> no reason. I'll do it.
19:44:51 --> Rym has joined #instantbird
19:46:28 <nhnt11> Writing* text logs rather.
19:46:40 <nhnt11> (reading them isn't done in logger.js)
19:47:26 * nhnt11 has no clue how a text log looks
19:47:35 <nhnt11> brb
19:50:04 <flo-retina> oh, I missed the word "text" in your question
19:50:40 * flo-retina was advocating for *removing* text log writing support, and couldn't care less if it's tested or not
19:50:44 <flo-retina> nhnt11: ^
19:51:16 <flo-retina> nhnt11: text logs aren't really parsable :-/
19:54:47 --> sonny has joined #instantbird
19:56:47 <nhnt11> flo-retina: Okay then. I was thinking write one or two messages, have a constant string with the expected file constants and compare... (yuck)
19:57:18 <nhnt11> I've already got a working test for writing a log and then reading it, by the way.
19:57:48 * nhnt11 will upload a patch soon
19:57:50 <flo-retina> you mean JSON this time, right?
19:57:52 <nhnt11> Yes.
19:58:04 * flo-retina uploaded another set of photos: http://queze.net/goinfre/mamie/stdizier2014/anciennes/
20:00:01 <nhnt11> brb again
20:18:23 --> rosonline has joined #instantbird
20:22:42 <nhnt11> re
20:23:56 <nhnt11> flo-retina: Is there any reason to use mxr over dxr?
20:24:21 <flo-retina> I haven't tried dxr in a while
20:25:06 * nhnt11 has been using it almost exclusively lately
20:25:28 <nhnt11> Is there a difference other than pretty UI?
20:26:05 <nhnt11> "DXR is a semantically-aware successor to MXR." that answers my question I guess
20:29:46 <-- rosonline has quit (Client exited)
20:33:08 --> rosonline has joined #instantbird
20:43:15 <nhnt11> Ah, I just realized I can do promise.then(foo).catch(bar) instead of promise.then(foo, bar)
20:43:18 <nhnt11> Looks a bit nicer :)
20:44:36 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
20:48:57 --> EionRobb has joined #instantbird
20:49:00 <-- rosonline has quit (Ping timeout)
21:02:03 <nhnt11> Yay, gloda already returns promises
21:02:26 <nhnt11> Actually idk
21:02:38 <clokep_work> nhnt11: They're probably different promises somehow. ;)
21:02:45 <nhnt11> Yeah
21:02:59 <nhnt11> I saw yield foo, but that may work for workers too (I have no idea how workers work)
21:04:40 <flo-retina> since when are there workers in gloda?
21:05:16 <flo-retina> they are probably all fake workers, I think gloda is all on the main thread.
21:05:16 <nhnt11> flo-retina: Well I saw "_worker_indexIMConversation" so..
21:05:48 <flo-retina> that's likely just something a gloda job scheduler somewhere keeps calling until it stops yielding ;)
21:06:07 <nhnt11> flo-retina: Would those yields work with Promises? /me is hopeful
21:06:23 * nhnt11 doubts it
21:06:41 <nhnt11> I'm trying to figure out what aCallbackHandle.pushAndGo returns
21:07:27 <clokep_work> It might if you wrap it in a generator?
21:07:55 <nhnt11> clokep_work: Well yield promise would return the promise and continue when called again, but the calling function would need to wait until the promise resolves
21:08:07 <nhnt11> I have no idea about the behavior of the calling function so..
21:08:43 <nhnt11> I can't find a way to just wait until a Promise resolves :-/
21:09:21 <nhnt11> i.e. if an API is made async using promises, it looks like all consumers need to be made async too, and if that consumer is itself an API, well...
21:09:58 * nhnt11 will ask on #maildev
21:10:04 <-- Armada has quit (Connection reset by peer)
21:11:24 <clokep_work> Can't you just yield it in a loop?
21:12:17 <nhnt11> Hmm
21:15:47 <clokep_work> You probably shouldn't listen to me though. :-D
21:17:33 <-- nhnt11 has quit (Ping timeout)
21:17:52 <-- gerard-majax__ has quit (Ping timeout)
21:22:12 --> nhnt11-phone has joined #instantbird
21:22:18 <nhnt11-phone> My internet died :S
21:22:39 <nhnt11-phone> Bah, I'll finish this tomorrow then. 
21:23:01 <nhnt11-phone> Good night.
21:23:08 --> nhnt11 has joined #instantbird
21:23:16 <nhnt11> Ah, never mind, it's back..
21:24:56 <-- nhnt11-phone has quit (Ping timeout)
21:25:18 --> jb has joined #instantbird
21:31:39 <clokep_work> nhnt11: flo-retina should know that code pretty well, hg blame says he wrote it. ;)
21:31:55 <nhnt11> Maybe I should wait till tomorrow then :)
21:32:12 <clokep_work> nhnt11: Maybe spend a few minutes trying to have a good specific question to ask him?
21:32:21 <nhnt11> Ah
21:32:28 <nhnt11> I think I found a way to do it
21:32:31 <clokep_work> :)
21:35:09 <-- clokep_work has quit (Ping timeout)
21:39:45 <nhnt11> Heh, I could use clokep's multiple-patch-exporter at the moment
21:39:49 * nhnt11 just exported 4 patches
21:42:44 <-- flo-retina has quit (Ping timeout)
21:46:51 * nhnt11 is sending some reviews aleth's way
21:50:20 <-- jb has quit (Ping timeout)
21:54:25 <-- CaptainCalliope has quit (Ping timeout)
21:55:12 --> CaptainCalliope has joined #instantbird
21:59:45 <nhnt11> Good night.
22:09:39 <-- CaptainCalliope has quit (Quit: CaptainCalliope)
22:19:30 <-- mconley has quit (Input/output error)
22:52:07 --> rosonline has joined #instantbird
23:18:24 --> clokep has joined #instantbird
23:18:24 * ChanServ sets mode +o clokep