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.