#instantbird log on 01 12 2017

All times are UTC.

00:00:44 <matrixisreal> flo-retina: By UI, i meant front-end stuff.
00:01:04 <-- clokep_work has quit (Connection closed)
00:01:07 --> clokep_work has joined #instantbird
00:01:07 * ChanServ sets mode +o clokep_work 
00:02:10 <clokep_work> matrixisreal: So two things I acn think of are finishing up the Facebook protocol or finishing up the Matrix protocol or adding a protocol from scratch (Hangouts? Bonjour?)
00:04:40 <matrixisreal> clokep_work: I dont know if it is appropriate to ask this, but how long doing one of them might take, as I go to college and have to manage time for it.
00:05:04 <matrixisreal> Btw, It sounds very interesting for me to work on. :)
00:07:49 <clokep_work> matrixisreal: That's really hard for me to judge. ;)
00:08:23 <clokep_work> I think the Matrix one probably needs 10 - 20 hours more work? Maybe a bit more. (But there's an SDK and a lot of the initial footwork has been done!)
00:08:42 <clokep_work> (But that's what it would take me, where I know a bunch of this stuff already...)
00:09:15 <matrixisreal> clokep_work: I understand , that was a very bad question though :P
00:09:27 <clokep_work> Bonjour might be on the same amount of time, but would be completely from scratch. Google Hangouts / Facebook probably a quite a bit more (including some reverse engineering and such).
00:09:41 <clokep_work> matrixisreal: Not a bad question! Just hard to answer for someone else.
00:10:23 <clokep_work> Would you like to see some of the bugs I'm talking about?
00:10:25 <flo-retina> reality is that it always takes several times what we estimate because there are always surprises ;)
00:11:00 <matrixisreal> flo-retina: yeah :P
00:11:12 <matrixisreal> clokep_work: sure :D
00:11:21 <flo-retina> but where would the fun be if there was no surprises? ;)
00:11:27 <matrixisreal> and any reading stuff would be helpful too. :D
00:13:25 <clokep_work> matrixisreal: bug 1199855 (I have a slightly updated patch for that which adds a bunch of notes/ todos); bug 1141674
00:13:28 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1199855 nor, --, ---, nobody, NEW, Add Matrix as a supported protocol
00:13:29 <instantbot> Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1141674 maj, --, ---, clokep, ASSI, Reimplement Facebook Chat not using XMPP
00:13:31 <clokep_work> Doesn't seem to be a bug for Hangouts or for Bonjour.
00:13:49 <clokep_work> Bonjour is https://en.wikipedia.org/wiki/Bonjour_(software); it's a LAN chat thing.
00:16:09 <clokep_work> (/me has to leave soon.)
00:17:40 <matrixisreal> clokep_work: Great, Ill look into those.
00:18:07 <matrixisreal> any links on learning bout Facebook and matrix prototcols?
00:19:02 --> Alex1 has joined #instantbird
00:19:52 <clokep_work> matrixisreal: The matrix doc links should be in the bug.
00:20:33 <clokep_work> Facebook is reimplementing https://bitbucket.org/pidgin/main/src/7ccb54f5d342f6c1d6baac2b631a79317e237484/libpurple/protocols/facebook/?at=default
00:20:42 <clokep_work> (No docs, it's reverse engineered.)
00:20:54 <clokep_work> So Matrix isn't so much implementing the low-level protocol, more of hooking things up to their SDK.
00:22:00 <clokep_work> SDK docs are at https://matrix-org.github.io/matrix-js-sdk/0.7.3/index.html probably want to skim https://matrix.org/docs/spec/intro.html first
00:22:21 <EionRobb> or js-ctypes and get facebook for 'free' ;)
00:24:41 <flo-retina> EionRobb: I doubt it would be free
00:24:52 <EionRobb> no, not free, 'free'
00:24:52 <flo-retina> as we would need to compile it and all its dependencies on all platforms
00:25:10 <EionRobb> I thought the whole idea of js-ctypes was not needing to recompile libpurple everywhere?
00:26:37 <flo-retina> where did you get that?
00:27:37 --> mconley|livehacking has joined #instantbird
00:27:48 <flo-retina> the binary shouldn't be an xpcom component anymore (because binary xpcom components are no longer supported by the mozilla platform :(), but we would still need to make a binary, and it should probably expose very few symbols
00:28:04 <flo-retina> so we would need some C or C++ code to call the libpurple APIs
00:28:05 * instantbot frowns at flo-retina
00:28:56 <flo-retina> there would probably be 2 symbols, one to send messages to libpurple, and one way to register a callback that the binary linked to libpurple would call each time a notification should reach the UI
00:28:58 <clokep_work> I think EionRobb is suggesting calling the libpurple APIs directly.
00:29:17 <EionRobb> oic, yes but not necessarily compiling libpuprple yourselves for every platform.  we just had differernt ideas of the "it" you were talking about
00:29:51 <flo-retina> well, we aren't going to provide libpurple an eventloop using js-ctypes...
00:30:55 <EionRobb> looks like a similar train of thought happened at https://github.com/swick/mozilla-gnome-keyring/issues/2
00:31:15 <EionRobb> a pity there's not gobject introspection bindings for js-ctypes
00:35:56 <matrixisreal> clokep_work: Well,Thanks a lot everyone, Ill be back with a lot of questions soon :D
00:36:02 <flo-retina> :)
00:36:41 <clokep_work> matrixisreal: Sounds good! Feel free to ping me.
00:37:12 <matrixisreal> sure.
00:37:54 <-- gerard-majax has quit (Ping timeout: 121 seconds)
00:45:42 <-- mconley|livehacking has quit (A TLS packet with unexpected length was received.)
00:50:17 --> gerard-majax has joined #instantbird
01:02:41 <-- clokep_work has quit (Ping timeout: 121 seconds)
01:08:45 <EionRobb> oh, https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/Using_js-ctypes/Declaring_and_Using_Callbacks might let you use a javascript-written eventloop in libpurple
01:10:41 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
02:40:33 <-- aleth has quit (Quit: Instantbird 53)
02:52:36 <-- gerard-majax has quit (Ping timeout: 121 seconds)
02:56:19 --> gerard-majax has joined #instantbird
03:07:37 <-- gerard-majax has quit (Ping timeout: 121 seconds)
03:08:50 --> gerard-majax has joined #instantbird
03:12:59 <instant-buildbot> build #944 of linux64-nightly-default is complete: Failure [4failed compile]  Build details are at http://buildbot.instantbird.org/builders/linux64-nightly-default/builds/944
03:16:17 <instant-buildbot> build #3423 of macosx-nightly-default is complete: Failure [4failed compile]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/3423
03:22:09 <-- gerard-majax has quit (Ping timeout: 121 seconds)
03:22:50 --> gerard-majax has joined #instantbird
03:36:40 <-- gerard-majax has quit (Ping timeout: 121 seconds)
03:39:15 <-- EionRobb has quit (Quit: Leaving.)
03:39:23 --> gerard-majax has joined #instantbird
03:45:41 <-- gerard-majax has quit (Ping timeout: 121 seconds)
03:51:52 --> gerard-majax has joined #instantbird
03:58:13 <-- gerard-majax has quit (Ping timeout: 121 seconds)
03:58:27 --> gerard-majax has joined #instantbird
04:29:39 <-- bgmCoder has quit (Ping timeout: 121 seconds)
05:11:49 <-- matrixisreal has quit (Quit: Connection closed for inactivity)
05:56:17 --> Bollebib has joined #instantbird
06:55:15 <-- Bollebib has quit (Ping timeout: 121 seconds)
07:14:15 <-- mdhr has quit (Connection closed)
07:38:41 <-- qheaden has quit (Ping timeout: 121 seconds)
07:39:07 --> qheaden has joined #instantbird
08:10:04 <-- gerard-majax has quit (Ping timeout: 121 seconds)
08:29:32 <-- qheaden has quit (Ping timeout: 121 seconds)
08:31:41 --> qheaden has joined #instantbird
09:01:57 <-- qheaden has quit (Ping timeout: 121 seconds)
09:02:14 --> qheaden has joined #instantbird
09:14:56 <-- FilipMosner has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
09:18:31 --> fredw has joined #instantbird
09:18:44 --> gerard-majax has joined #instantbird
09:28:25 <-- gerard-majax has quit (Ping timeout: 121 seconds)
09:51:49 --> FilipMosner has joined #instantbird
09:54:04 <-- fredw has quit (Client exited)
10:07:14 <-- Alex1 has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
10:13:25 --> matrixisreal has joined #instantbird
10:16:46 --> mpmc has joined #instantbird
10:24:27 <-- mpmc has quit (Connection closed)
10:28:04 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
10:53:58 --> gerard-majax has joined #instantbird
10:59:55 --> flo-retina has joined #instantbird
10:59:55 * ChanServ sets mode +qo flo-retina flo-retina 
12:00:40 --> fredw has joined #instantbird
12:15:35 --> aleth-mob has joined #instantbird
12:22:28 --> mpmc has joined #instantbird
12:41:22 --> clokep_work has joined #instantbird
12:41:22 * ChanServ sets mode +o clokep_work 
12:47:23 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
13:44:47 <-- fredw has quit (Ping timeout: 121 seconds)
14:16:27 --> fredw has joined #instantbird
14:42:52 <-- fredw has quit (Connection closed)
14:44:55 --> fredw has joined #instantbird
14:50:57 <-- fredw has quit (Ping timeout: 121 seconds)
14:55:14 --> mpmc has joined #instantbird
14:58:11 --> mconley|livehacking has joined #instantbird
15:02:38 <-- mconley|livehacking has quit (Quit: NO CARRIER)
15:06:45 --> fredw has joined #instantbird
15:44:42 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
15:54:29 <matrixisreal> clokep_work: I would like to discuss about the facebook protocol, ping me when you are free.
16:04:08 <clokep_work> matrixisreal: Need a few more minutes.
16:05:30 <matrixisreal> clokep_work: Ill ping you after an hour then.
16:11:26 --> bgmCoder has joined #instantbird
16:23:31 <clokep_work> matrixisreal: Should be free now.
16:29:17 --> Bollebib has joined #instantbird
16:51:38 --> flo-retina has joined #instantbird
16:51:38 * ChanServ sets mode +qo flo-retina flo-retina 
16:56:37 <matrixisreal> clokep_work: ping
16:57:40 <clokep_work> matrixisreal: You can just ask questions. :)
17:00:19 <-- gerard-majax has quit (Ping timeout: 121 seconds)
17:02:11 <matrixisreal> clokep_work: So,I have decided to work on Facebook protocol, and have tried to understand your previous patch and also the libpurple library. But it seemed like it might take a bit long reading to understand whats happening before coming up with an action plan.
17:02:44 <clokep_work> matrixisreal: OK.
17:02:48 <clokep_work> What's your question? ;)
17:03:14 <matrixisreal> So, could you guide on how/what to read.
17:03:26 <matrixisreal> Itd be helpful to speed my work up :D
17:04:21 <matrixisreal> especially the entrypoints.
17:05:40 <clokep_work> I don't really understand that libpurple code, first of all.
17:05:45 <clokep_work> I think I've mostly forgotten how it works.
17:05:53 <clokep_work> (I didn't write it.)
17:07:00 <clokep_work> matrixisreal: So that wasn't very helpful. :)
17:07:08 <clokep_work> You could try running it and seeing hwat happens thoug. ;)
17:07:11 <clokep_work> Does it work still? :P
17:07:29 <clokep_work> What entry point do you want?
17:07:34 <clokep_work> In the JS code? In the libpurple code?
17:08:03 <matrixisreal> Js for now.
17:08:54 <clokep_work> I thought I had notes about the Facebook stuff, but I can't find them...
17:09:01 <clokep_work> I wonder if they're on my other computer.
17:09:51 <clokep_work> matrixisreal: So the facebook/facebook.js file is the "main" file.
17:10:05 <clokep_work> That's the one that the Instantbird backend knows about and calls into.
17:10:18 <clokep_work> It has the description of what a facebook protocol, account, conversation, etc. do.
17:10:24 <clokep_work> And that uses a bunch of the other files to do that.
17:12:36 <matrixisreal> and what are the classes that protocol, account, conversation etc inherit from.
17:13:11 <matrixisreal> clokep_work: is every protocol supposed to implement them?
17:15:32 <clokep_work> matrixisreal: They're required, yes.
17:15:57 <clokep_work> So if you see there's a FacebookProtocol object, it's prototype has a __proto__ of GenericProtocolPrototype?
17:16:10 <clokep_work> That's from jsProtoHelper (https://dxr.mozilla.org/comm-central/source/chat/modules/jsProtoHelper.jsm)
17:17:14 <-- fredw has quit (Client exited)
17:17:16 <clokep_work> Which is to implement https://dxr.mozilla.org/comm-central/source/chat/components/public/prplIProtocol.idl
17:20:53 <matrixisreal> clokep_work:hmm.. And 
17:21:12 <clokep_work> And what? :P
17:21:13 <matrixisreal> Does prpl in prplProtocol refer to purple ?
17:21:25 <clokep_work> protocol plugin.
17:21:31 <clokep_work> Which is the same reason purple is called purple.
17:22:15 <matrixisreal> Oh. :P
17:22:25 <matrixisreal> So its not about Pidgins Purple ?
17:22:29 <clokep_work> No,
17:22:44 <clokep_work> But we have an adapter for it (which is not currently working) that lets us use protocols from libpurple.
17:24:18 <matrixisreal> clokep_work: So, in facebook.js you were trying to reimplement in Js what was written in C, right?
17:27:56 <clokep_work> Pretty much.
17:28:07 <clokep_work> But only part of it.
17:28:25 <clokep_work> The MQTT code was split out to a separate file; it uses XmlHttpRequest instead of doing everything by raw sockets, etc.
17:29:35 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
17:30:30 --> gerard-majax has joined #instantbird
17:30:53 <matrixisreal> clokep_work: So, if you remember can you briefly tell me what have you implelemented so far.?
17:31:37 <clokep_work> matrixisreal: Pretty much what https://bugzilla.mozilla.org/show_bug.cgi?id=1141674#c10 says.
17:31:40 <instantbot> Bug 1141674 maj, --, ---, clokep, ASSI, Reimplement Facebook Chat not using XMPP
17:32:20 --> mpmc has joined #instantbird
17:32:21 <clokep_work> I got it to the point where it uses some HTTP, some MQTT to initialize a connection, does 2FA if it's configured, downloads the contact list, connects to MQTT and can send/parse "messages" (I think that's referring to *MQTT* messages, not like real messages you'd send with text in them).
17:34:18 <matrixisreal> great, what do you think would be the best thing for me to do next .
17:39:26 <matrixisreal> clokep_work: and wat do u mean by "*MQTT* messages, not like real messages you'd send with text in them"
17:41:56 <not-freaktechnik> MQTT messages is a data structure
17:42:26 <not-freaktechnik> that the protocol uses to pass info about all kinds of things, one of which are messages for the end-user
17:42:47 <clokep_work> Maybe "packet" is a better term.
17:43:09 * clokep_work wonders where freaktechnik is and why we're stuck with not-freaktechnik.
17:43:32 <not-freaktechnik> freaktechnik is trapped in a LAN and I haven't found a tunnel out of there yet.
17:44:00 <not-freaktechnik> I called it data structure because WebSockets also like to use MQTT messages.
17:44:07 <clokep_work> matrixisreal: Yeah so there's no conversations implemented yet, so definitely only MQTT level packets are handled.
17:44:10 <clokep_work> Oh?
17:44:16 <clokep_work> I didn't know WebSockets were related to MQTT.
17:44:24 <clokep_work> Well I guess it's a transport and a protocol so...whatever. Ignore me.
17:45:18 <not-freaktechnik> from what I understand MQTT happens to be easy to use in a web environment - though I've even seen MQTT being used as a transport protocol for IRC. So websockets -> mqtt -> irc
17:47:16 <clokep_work> That makes my head hurt. :)
17:48:54 <matrixisreal> clokep_work: So, Though the packet is received/sent it is not processed yet?
17:49:42 <-- gerard-majax has quit (Ping timeout: 121 seconds)
17:49:49 <matrixisreal> But, If this is so, sending an mqtt packet should be able to send the message too.. ?
17:50:15 * clokep_work is looking.
17:51:19 --> gerard-majax has joined #instantbird
17:51:23 <clokep_work> matrixisreal: Right buy you have to figure out how to *ENCODE* the message into the MQTT packet.
17:51:34 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
17:51:41 <clokep_work> And yeah, the onBinaryDataReceived method just prints out the packet after parsing it in facebook-mqtt.jsm.
17:54:12 <matrixisreal> clokep_work: Okay, So ill start working on the sending/receiving messages part.
17:54:23 <clokep_work> that's probably the next piece.
17:54:38 <clokep_work> You might also need to do pings or something to stay connected to the server.
17:56:33 <matrixisreal> clokep_work:Okay, Ill see, and regarding using your patch, do i need to make any changes other than the patch?
17:56:54 <clokep_work> I don't think so.
17:57:08 <clokep_work> You might need to flip a pref to make the protocol visible.
17:57:59 <matrixisreal> flip a perf ?
18:02:37 <-- gerard-majax has quit (Ping timeout: 121 seconds)
18:05:01 <clokep_work> Yes.
18:05:11 <clokep_work> You might need to enable showing the protocol via a preference
18:05:26 <clokep_work> matrixisreal: But it doesn't look like it if you look at chat-prefs.js.
18:05:55 --> gerard-majax has joined #instantbird
18:17:03 <-- gerard-majax has quit (Ping timeout: 121 seconds)
18:17:20 --> gerard-majax has joined #instantbird
18:45:30 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
18:48:41 <-- gerard-majax has quit (Ping timeout: 121 seconds)
19:02:39 <matrixisreal> clokep_work: are you/anyone-else planning to mentor an instantbird/Chatcore project this GSoc?
19:03:06 <clokep_work> matrixisreal: I'll probably plan to, aleth might, maybe nhnt11 or flo-retina or qheaden.
19:03:10 <clokep_work> (Or some combination of that.)
19:04:19 <matrixisreal> Sounds great :D
19:09:46 <clokep_work> I can't promise anything though. ;)
19:23:47 <matrixisreal> clokep_work: not a prob :)
21:05:41 --> flo-retina has joined #instantbird
21:05:41 * ChanServ sets mode +qo flo-retina flo-retina 
22:03:55 <-- clokep_work has quit (Ping timeout: 121 seconds)
22:35:48 --> Mnyromyr has joined #instantbird
22:39:26 <-- Mnyromyr has quit (Quit: ChatZilla 0.9.93 [SeaMonkey 2.46/20161213175921])
22:40:49 --> clokep_work has joined #instantbird
22:40:49 * ChanServ sets mode +o clokep_work 
22:51:50 <-- matrixisreal has quit (Quit: Connection closed for inactivity)
23:13:18 <-- Bollebib has quit (Ping timeout: 121 seconds)
23:28:18 <clokep_work> flo-retina, aleth-mob: So any hints on how I should try to fix the Windows/Linux mintrayr bustage?
23:28:29 <clokep_work> Do I need to compile the component into libxul?
23:28:33 <flo-retina> yes
23:28:50 <clokep_work> OK. I guess I should find something else that does that
23:29:09 <flo-retina> there may be mail/ examples
23:30:27 <aleth-mob> Look at the bug for libical, eg
23:31:06 <aleth-mob> it's not exactly the same but it might help 
23:34:06 <clokep_work> I found something.
23:34:07 <clokep_work> Let's see.
23:34:08 <clokep_work> Thanks! :)
23:36:53 --> clokep has joined #instantbird
23:36:53 * ChanServ sets mode +o clokep 
23:37:21 <clokep> Writing config.status, that's a good sign! :-D
23:46:54 <clokep> Meh> I just tried to update on Windows.