#instantbird log on 02 10 2016

All times are UTC.

00:09:44 <-- pWnnn has quit (Ping timeout: 121 seconds)
00:11:19 <instantbot> rkent@caspia.com set status-thunderbird to wontfix on bug 1236133.
00:11:20 <instantbot> rkent@caspia.com set status-thunderbird to fixed on bug 1236133.
00:38:13 <clokep_work> nhnt11, aleth: So |Task.async| propagates |this|, but |Task.spawn| doesn't...
00:38:16 <clokep_work> That's really confusing.
00:38:20 <clokep_work> And getting in the way of what I want to do. :P
00:38:30 <aleth> true
00:39:23 <nhnt11> clokep_work: The way I interpret Task.async in my head is a shortcut for |function(params) { return new Task(function* (params) {}.bind(this)); }|
00:39:35 <nhnt11> I found that once I treated it as syntactic sugar, it was less confusing
00:39:45 <clokep_work> I find that more confusing.
00:39:45 <aleth> nhnt11: well, that's in fact basically the code ;)
00:39:56 <clokep_work> I also hate the phrase "syntactic sugar" :P
00:39:58 <nhnt11> aleth: yeah :P
00:40:06 <nhnt11> clokep_work: I find the phrase kinda hilarious
00:40:07 <clokep_work> nhnt11: What's just Task without calling async OR spawn?
00:40:12 <nhnt11> It's one of those things professors say...
00:40:17 <clokep_work> Or is that a typo?
00:40:18 <aleth> clokep_work: an object
00:40:24 <nhnt11> clokep_work: Task is an object with all these functions, exported by Task.jsm
00:40:39 <nhnt11> Task isn't a class, it's a factory :P
00:40:42 <aleth> you can't do "new Task" (also a pain)
00:40:43 <clokep_work> You're using it as a constructor there...
00:41:00 <clokep_work> That's exactly what that code above is doing. :-S
00:41:09 <clokep_work> So how the hell do I call Task.spawn with 'this'?
00:41:12 <nhnt11> sorry sorry
00:41:14 <clokep_work> Do I need to bind?
00:41:15 <nhnt11> That was my bad
00:41:19 <clokep_work> That's ridiculous.
00:41:20 <nhnt11> I meant return Task.spawn()
00:41:24 <nhnt11> clokep_work: yes
00:41:25 <aleth> Yes, you need to bind.
00:41:26 <nhnt11> you need to bind
00:41:37 <clokep_work> I don't want to bind.
00:41:46 <nhnt11> clokep_work: That's why Task.async exists, kinda
00:41:50 <clokep_work> No.
00:41:54 <clokep_work> They return completely different things.
00:41:59 <nhnt11> But yeah, it's annoying that there's no lexically scoped generator function syntax
00:42:00 <clokep_work> One makes code run async, one returns a promise.
00:42:07 <aleth> clokep_work: write your own wrapper for Task.spawn?
00:42:12 <clokep_work> :P
00:42:21 <nhnt11> clokep_work: "One makes code run async"
00:42:24 <nhnt11> That's not true
00:42:33 <nhnt11> Task.async simply creates a function around Task.spawn
00:42:40 <nhnt11> So that you can call it multiple times
00:43:00 <clokep_work> I don't understand what that means.
00:43:03 <nhnt11> The name of the function is really misleading
00:43:14 <clokep_work> FWIW I know it's not really 'async'
00:43:26 <nhnt11> Ignore the name of the function, i.e. pretend that Task.async is actually called Task.foo
00:43:27 <clokep_work> It lets you yield on promises though, which is all I care about.
00:44:02 <nhnt11> Hmm, at this point I'm not sure whether you get what Task.async does, so I'm not sure what I can say that will clear your confusion
00:44:44 <clokep_work> I'm fairly certain I understand exactly what it does.
00:45:17 <nhnt11> OK
00:47:11 <clokep_work> Ugh. Task.spawn is useless.
00:47:25 <aleth> clokep_work: but when you call the function produced by Task.async, you get a promise back. Can't you use that?
00:47:29 * aleth has never used Task.spawn
00:48:11 <nhnt11> aleth: Interesting, I've never considered that you can do something like |Task.async(function* () { ... })()|
00:48:16 <nhnt11> i.e. you can call it immediately
00:48:39 <nhnt11> I think using spawn and bind is more readable though
00:48:40 <clokep_work> aleth: Yeah, that's my plan now.
00:48:57 <clokep_work> nhnt11: I'm using everythig as methods though.
00:49:01 <clokep_work> So binding doesn't really work well.
00:49:25 <nhnt11> clokep_work: yeah, Task.async is MADE for that use case
00:49:32 <clokep_work> Wee my oauth key worked. :)
00:49:36 <aleth> :-)
00:53:06 <abdelrhman> aleth: Yes, I'm on Linux, I will work on it, but I don't know this code well. Is there a documentation / guidance for where to start?
00:56:03 <aleth> abdelrhman: The regression was caused by bug 1241764, see also bug 1243760 comment 5 and comment 6.
00:56:06 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1241764 nor, --, mozilla47, khuey, RESO FIXED, Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer
00:56:07 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1243760 nor, --, Thunderbird 47.0, philip.chee, RESO FIXED, Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer in C-C due to bug 1241764
00:56:52 <aleth> Basically you have to do similar things to the patches in those bugs to replace nsPIDOMWindow which no longer exists. You can also ask khuey if you get stuck.
00:58:17 <abdelrhman> OK, I'm going to work on it. Thanks aleth :)
00:58:21 <aleth> thank you
00:58:42 <aleth> it's the code that handles the system tray
01:03:37 <-- Bollebib has quit (Ping timeout: 121 seconds)
01:21:14 <-- EionRobb has quit (Ping timeout: 121 seconds)
01:22:40 --> EionRobb has joined #instantbird
01:27:13 <instantbot> aleth@instantbird.org changed the Resolution on bug 1245325 from --- to FIXED.
01:27:14 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1245325 nor, --, Instantbird 47, aleth, RESO FIXED, Better error reporting when outgoing messages fail
01:38:10 <clokep_work> Our socket.jsm code is a little...crusty.
01:39:15 <aleth> is it reaching its "refactor by" date? ;)
01:40:54 <aleth> I remember having some WIP for taskifying the oldschool queues in there
01:46:24 <clokep_work> Oh? That'd be nice.
01:46:40 <clokep_work> I want to make a BaseSocket object, a BinarySocket object and a Socket object.
01:46:47 <clokep_work> I think it'd clean up some of the logic in there. :)
01:46:48 <-- abdelrhman has quit (Ping timeout: 121 seconds)
01:46:50 --> abdelrhman has joined #instantbird
01:47:52 <clokep_work> There's some other weird things, like why does the constructor take a aProxy?
01:47:58 <clokep_work> We never use that and always just get it from inside.
01:48:04 <clokep_work> *from other APIs.
01:48:17 <-- abdelrhman has quit (RecvQ exceeded)
01:48:40 --> abdelrhman has joined #instantbird
01:48:51 <aleth> It was probably there "just in case"...
01:49:00 <aleth> That split would make sense :-)
01:49:09 <aleth> the WIP was https://bugzilla.mozilla.org/page.cgi?id=splinter.html&bug=1068234&attachment=8498120
01:50:39 <clokep_work> Oh wow.
01:50:43 <clokep_work> That got stuck in review hell?
01:50:56 <aleth> No, I just never got around to finishing it :-S
01:51:11 <aleth> I mean, it works, but it needed some more work...
01:51:20 <aleth> (to get it into toolkit)
01:51:32 <clokep_work> Right. :(
01:52:23 <clokep_work> OK...I get to implement MQTT now.
01:52:25 <clokep_work> Woot woot.
01:52:33 <EionRobb> I am sorry for your loss
01:52:34 <clokep_work> I should probably read their spec.
01:52:53 <clokep_work> EionRobb: Can't be *that* bad.
01:53:09 * clokep_work has dealt with some crazy protocols.
01:53:16 <aleth> Isn't it just json?
01:53:19 <EionRobb> lolno
01:53:29 <EionRobb> mqtt is the devil
01:54:11 * clokep_work grabs his holy water.
01:56:57 <EionRobb> oh, clokep, don't bother reading the official mqtt spec, because that's not what facebook uses
01:57:04 <EionRobb> save yourself some time now
01:58:37 <clokep_work> EionRobb: I just want to look briefly at how things are framed and stuff.
01:58:40 <clokep_work> Is that of any use?
01:58:49 <EionRobb> fair enough
02:03:13 * clokep_work really wishes libpurple used an evented style of code.
02:03:17 <clokep_work> It works so much nicer for networking...
02:03:54 <EionRobb> other than the read/write events, you mean?
02:05:29 <-- abdelrhman has quit (Ping timeout: 121 seconds)
02:06:00 <clokep_work> Maybe...
02:07:20 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
02:09:13 <clokep_work> Although it could just be the general lack of comments in this code. ;)
02:11:30 <-- GeekShadow has quit (Ping timeout: 121 seconds)
02:14:19 <EionRobb> self-documenting code? :D
02:22:09 <clokep_work> EionRobb: Are those thrift.h/c files auto-generated or did he write his own thrift parser?
02:22:21 * clokep_work guesses the second.
02:22:31 <EionRobb> I think he wrote his own, the apache one didn't work in C
02:23:22 <clokep_work> Ah is it C++ only? Fun.
02:23:23 <instantbot> c++ is evil
02:24:04 <EionRobb> there's lots of language bindings, but the C/glib one was incomplete
02:24:39 <EionRobb> there's c++, java, c#, python, php, ruby, erlang, perl, go, delphi bindings
02:25:12 <EionRobb> oh, there's a js one too https://github.com/apache/thrift/tree/master/lib/js
02:25:26 <EionRobb> oh, its node.  sucks.
02:25:31 <-- aleth has quit (Ping timeout: 121 seconds)
02:25:42 <EionRobb> no, there's a separate nodejs binding
02:29:46 <clokep_work> There's nodejs, jquery, etc.
02:32:33 <clokep_work> Of course this might all be useless without a thrift file. ;)
02:39:28 --> GeekShadow has joined #instantbird
03:11:13 --> Bollebib has joined #instantbird
03:36:24 --> pWnnn has joined #instantbird
04:10:14 --> nhnt11 has joined #instantbird
04:10:14 * ChanServ sets mode +h nhnt11 
04:19:14 <-- EionRobb has quit (Quit: Leaving.)
04:29:10 <-- nhnt11 has quit (Ping timeout: 121 seconds)
04:34:36 --> nhnt11 has joined #instantbird
04:34:36 * ChanServ sets mode +h nhnt11 
04:34:42 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
04:38:38 --> nhnt11 has joined #instantbird
04:38:39 * ChanServ sets mode +h nhnt11 
04:48:13 <-- clokep_work has quit (Ping timeout: 121 seconds)
04:50:41 --> micahg has joined #instantbird
04:54:15 <instant-buildbot> build #599 of linux64-nightly-default is complete: Failure [4failed compile]  Build details are at http://buildbot.instantbird.org/builders/linux64-nightly-default/builds/599
04:55:49 <instant-buildbot> build #3068 of macosx-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/3068
04:58:43 <-- nhnt11 has quit (Ping timeout: 121 seconds)
05:01:10 --> EionRobb has joined #instantbird
05:03:51 --> Mook has joined #instantbird
05:05:10 --> mpmc has joined #instantbird
05:07:00 --> nhnt11 has joined #instantbird
05:07:00 * ChanServ sets mode +h nhnt11 
05:30:07 <-- nhnt11 has quit (Ping timeout: 121 seconds)
05:52:19 --> nhnt11 has joined #instantbird
05:52:19 * ChanServ sets mode +h nhnt11 
06:27:39 <-- Mook has quit (Client exited)
06:29:29 --> Mook has joined #instantbird
06:45:14 --> EionRobb1 has joined #instantbird
06:46:31 <-- EionRobb has quit (Ping timeout: 121 seconds)
06:48:10 <-- Bollebib has quit (Ping timeout: 121 seconds)
06:49:31 --> CuriousLearner has joined #instantbird
07:04:15 <-- CuriousLearner has quit (Ping timeout: 121 seconds)
07:38:01 --> MikkCZ has joined #instantbird
07:38:10 <-- MikkCZ has quit (Connection closed)
08:05:39 <-- nhnt11 has quit (Ping timeout: 121 seconds)
08:40:03 --> nhnt11 has joined #instantbird
08:40:03 * ChanServ sets mode +h nhnt11 
09:06:09 --> gerard-majax has joined #instantbird
09:09:54 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
09:14:23 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
09:23:05 --> aleth has joined #instantbird
09:23:06 * ChanServ sets mode +o aleth 
09:23:21 --> Bollebib has joined #instantbird
09:25:41 <-- chrisccoulson has quit (Connection closed)
09:25:51 <-- mpmc has quit (Connection closed)
09:25:53 --> mpmc has joined #instantbird
09:26:20 --> chrisccoulson has joined #instantbird
09:41:21 --> flo-retina has joined #instantbird
09:41:21 * ChanServ sets mode +qo flo-retina flo-retina 
09:46:51 <-- aleth has quit (Quit: Instantbird 47)
09:47:01 --> aleth has joined #instantbird
09:47:02 * ChanServ sets mode +o aleth 
10:25:11 <-- pWnnn has quit (Ping timeout: 121 seconds)
10:27:34 <-- bittin- has quit (Ping timeout: 121 seconds)
10:28:36 --> bittin- has joined #instantbird
10:31:36 --> pWnnn has joined #instantbird
10:32:48 <-- pWnnn has quit (Client exited)
10:34:37 --> pWnnn has joined #instantbird
10:34:42 --> BWMerlin has joined #instantbird
11:11:49 <-- aleth has quit (Ping timeout: 121 seconds)
11:23:57 <flo-retina> the Linux build is broken on mintrayr _again_ :-S
11:49:53 <-- BWMerlin has quit (Client exited)
12:08:29 --> aleth has joined #instantbird
12:08:29 * ChanServ sets mode +o aleth 
12:24:31 <-- aleth has quit (Ping timeout: 121 seconds)
12:25:08 --> aleth has joined #instantbird
12:25:09 * ChanServ sets mode +o aleth 
12:25:58 --> aleth1 has joined #instantbird
12:25:59 * ChanServ sets mode +o aleth1 
12:29:11 <-- aleth has quit (Ping timeout: 121 seconds)
12:29:11 * aleth1 is now known as aleth 
12:35:59 --> clokep_work has joined #instantbird
12:36:00 * ChanServ sets mode +o clokep_work 
12:36:36 <clokep_work> flo-retina: I think we discussed that yesterday? Any ideas?
12:37:14 <clokep_work> aleth: Soo....I know we discussed this recently so sorry! :) What's the current state of modules in m-c? Is there a way to emulate a |require| statement?
12:38:48 <aleth> There's some bits of m-c that actually use require
12:39:16 <aleth> Personally I think the current state of modules is painful once you go beyond jsm
12:40:13 <clokep_work> ...but if I wanted to use some node code that uses require how badly will it explode? :-D
12:43:17 <-- aleth has quit (Ping timeout: 121 seconds)
12:45:51 --> aleth has joined #instantbird
12:45:52 * ChanServ sets mode +o aleth 
12:48:04 <aleth> clokep_work: require.js exists in toolkit/components/workerloader, maybe you can use that
12:48:39 <clokep_work> Hm. Interesting. I guess I'll just need to try it.
12:48:58 <aleth> that's what osfile.jsm uses, so it won't explode ;)
12:50:00 <clokep_work> aleth: https://dxr.mozilla.org/mozilla-central/source/devtools/client/shared/browser-loader.js#10 looks promising!
12:50:02 <clokep_work> :-D
12:50:07 <clokep_work> Loks like you just include a JSM first, yeah.
12:50:09 <clokep_work> Cool.
12:51:49 <aleth> I was thinking of https://dxr.mozilla.org/mozilla-central/source/toolkit/components/osfile/osfile.jsm#31
12:52:28 <aleth> devtools uses all kinds of stuff (react etc)
12:57:57 <clokep_work> aleth: Ah that's an interesting idea! I assume importScripts is done in the preprocessor?
12:58:13 <clokep_work> We should do that for the Twitter parsing too. ;)
12:58:23 <clokep_work> That twitter string parsing library we have.
12:59:23 <aleth> importScripts may be worker-specific
12:59:25 <aleth> idk
12:59:40 <aleth> but anyway, you know how to import scripts already ;)
13:00:09 * clokep_work wonders how hard it would be to render Markdwn.
13:00:41 <aleth> probably not that hard if you find the right library
13:00:49 <clokep_work> Looks like it's part of worker stuff yeah
13:04:30 <flo-retina> I think importScripts is worker specific, yes
13:05:10 <flo-retina> and IIRC the require stuff in osfile is the B2G code path
13:05:36 <clokep_work> IIRC jcranmer had written *something* to combine a bunch of files before including them.
13:05:40 <clokep_work> I can always do that if need be.
13:06:11 <aleth> What's the problem with just including them? require is basically a shim to include commonJS modules
13:06:29 <aleth> (one of the many JS module "standards")
13:07:13 <clokep_work> What do you mean "just including them"?
13:07:24 <clokep_work> The problem is figuring out how to load them in such a way that they can all find each other.
13:07:33 <flo-retina> what are you trying to do? Organizing in several different files your new code, or re-using existing node stuff?
13:07:59 <clokep_work> Re-use.
13:10:20 <-- Tonnes has quit (Connection closed)
13:11:13 <aleth> If they are all included into a common scope, they will find each other
13:12:00 <-- clokep_work has quit (Ping timeout: 121 seconds)
13:17:15 <-- aleth has quit (Ping timeout: 121 seconds)
13:18:03 --> aleth has joined #instantbird
13:18:03 * ChanServ sets mode +o aleth 
13:19:45 --> Tonnes has joined #instantbird
13:49:44 --> clokep_work has joined #instantbird
13:49:44 * ChanServ sets mode +o clokep_work 
13:57:09 <clokep_work> aleth: But they don't EXPORt anything so you can't just include them as modules.
14:14:08 <-- clokep_work has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
14:14:11 --> clokep_work has joined #instantbird
14:14:12 * ChanServ sets mode +o clokep_work 
14:23:23 <-- Tonnes has quit (Quit: ChatZilla 0.9.92 [Firefox 44.0.1/20160205155049])
14:24:26 <-- aleth has quit (Ping timeout: 121 seconds)
15:31:49 --> Tonnes has joined #instantbird
16:21:23 --> MikkCZ has joined #instantbird
16:23:13 <-- MikkCZ has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
16:38:08 <-- chrisccoulson has quit (Quit: OSError: [Errno 130] Owner died)
16:38:19 --> chrisccoulson has joined #instantbird
17:13:12 <-- flo-retina has quit (Ping timeout: 121 seconds)
17:14:08 --> flo-retina has joined #instantbird
17:14:09 * ChanServ sets mode +qo flo-retina flo-retina 
17:38:38 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
17:39:36 --> mconley|livehacking has joined #instantbird
17:48:34 <-- pWnnn has quit (Ping timeout: 121 seconds)
17:55:29 --> aleth has joined #instantbird
17:55:30 * ChanServ sets mode +o aleth 
17:58:34 <aleth> clokep_work: that's what's so painful about JS modules: multiple conflicting standards for how to specify what a module exports
17:59:38 <aleth> so you end up with "compilers" for an interpreted language simply to piece libraries together :-/
18:02:38 <aleth> https://medium.freecodecamp.com/javascript-modules-a-beginner-s-guide-783f7d7a5fcc#.12ltzucds
18:03:35 --> bogdan_maris has joined #instantbird
18:06:15 --> flo-retina has joined #instantbird
18:06:15 * ChanServ sets mode +qo flo-retina flo-retina 
18:12:15 <clokep_work> Fun!
18:12:22 <clokep_work> aleth: Yeah it's annoying, I'm not sure of the solution. :(
18:12:29 <clokep_work> Luckily the node packages are all really contained! :-D
18:14:07 <aleth> maybe you can just add something like EXPORTED_SYMBOLS = module.exports at the bottom
18:18:25 <clokep_work> Oh sure.
18:18:28 <clokep_work> I can modify the files.
18:18:42 <clokep_work> It's annoying to modify upstream files though! Was just trying to figure out the deal. :)
18:19:37 <aleth> yeah, maybe using the require shim is easier
18:28:19 <clokep_work> Maybe, but then you have to inject the shim into the things you require?
18:28:23 <clokep_work> That's what's hurting my head! :-D
18:28:27 <clokep_work> Or maybe once it's required it's not an issue.
18:30:19 <-- mpmc has quit (A TLS packet with unexpected length was received.)
18:32:41 --> arlolra has joined #instantbird
18:51:28 <-- EionRobb1 has quit (Quit: Leaving.)
18:53:22 <-- gerard-majax has quit (Ping timeout: 121 seconds)
19:28:36 --> Mnyromyr has joined #instantbird
19:32:28 --> unghost has joined #instantbird
19:36:33 <-- unghost has quit (Ping timeout: 121 seconds)
19:40:39 --> unghost has joined #instantbird
19:52:09 <Fallen> I'm beginning to be a channel maniac, I need tab groups for instantbird
19:52:22 --> EionRobb has joined #instantbird
19:57:08 <flo-retina> putting the channels on hold is no longer enough?
20:03:45 <Fallen> nope, too many of those
20:05:22 <-- mconley|livehacking has quit (Quit: NO CARRIER)
20:06:21 --> nhnt11 has joined #instantbird
20:06:21 * ChanServ sets mode +h nhnt11 
20:07:02 <Fallen> ok, closed a bunch. Better now :)
20:07:59 <Fallen> 6 channels alone for amo now
20:08:47 <Fallen> splitters in the tabs would be nice, then I could split channels based on general topic
20:08:55 <Fallen> that shouldn't be too hard to do either
20:16:53 <flo-retina> :)
21:19:39 --> myk has joined #instantbird
21:31:19 --> myk_ has joined #instantbird
21:31:28 <-- myk has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
21:31:28 * myk_ is now known as myk 
22:02:55 <-- freaktechnik has quit (Ping timeout: 121 seconds)
22:04:04 --> freaktechnik has joined #instantbird
22:09:32 <-- arlolra has quit (Client exited)
22:37:24 <-- unghost has quit (Ping timeout: 121 seconds)
22:37:58 --> unghost has joined #instantbird
22:51:40 <-- Mnyromyr has quit (Connection closed)
23:00:26 --> abdelrhman has joined #instantbird
23:05:37 --> EionRobb1 has joined #instantbird
23:07:05 <-- Bollebib has quit (Ping timeout: 121 seconds)
23:07:39 <-- EionRobb has quit (Ping timeout: 121 seconds)
23:09:15 <-- abdelrhman has quit (A TLS packet with unexpected length was received.)
23:10:10 <-- unghost has quit (A TLS packet with unexpected length was received.)
23:37:00 <-- clokep_work has quit (Ping timeout: 121 seconds)
23:44:12 <-- bogdan_maris has quit (Ping timeout: 121 seconds)
23:55:04 <-- nhnt11 has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
23:55:08 --> nhnt11 has joined #instantbird
23:55:08 * ChanServ sets mode +h nhnt11