#instantbird log on 07 02 2013

All times are UTC.

00:12:20 <qheaden> clokep: Would ERROR_AUTHENTICATION_IMPOSSIBLE be appropriate for missing credentials?
00:12:37 <clokep> Umm....possibly.
00:14:33 <EionRobb> how could credentials b emissing though?
00:14:51 <EionRobb> username is compulsory and optional passwords is defined in the prpl?
00:14:51 * clokep doesn't know.
00:15:03 <clokep> I agree.
00:15:09 <qheaden> I]
00:15:10 <clokep> So I'm not entirely sure what qheaden is talking about. ;)
00:15:21 <qheaden> I'm just matching them up with Yahoo! server errors.
00:15:31 <qheaden> Doesn't mean the error will come. ;)
00:17:34 <-- clokep has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
00:17:58 --> clokep has joined #instantbird
00:17:58 * ChanServ sets mode +o clokep 
00:24:03 <qheaden> Well I must go now. I will be on again tomorrow.
00:24:12 <qheaden> clokep: My hours should be less weird tomorrow. :)
00:24:22 <clokep> qheaden: Goodnight.
00:25:23 <qheaden> Goodnight. And thanks for the help. :)
00:26:37 * qheaden is now known as qheaden_away
00:35:45 <-- wnayes has quit (Ping timeout)
00:39:45 --> wnayes has joined #instantbird
00:41:29 <-- Kaishi has quit (Quit: Kaishi)
00:48:32 <-- qlum has quit (Client exited)
00:54:42 <-- mpmc has quit (Connection reset by peer)
00:55:34 <-- myk has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
01:51:22 <-- clokep has quit (Connection reset by peer)
02:09:12 <-- rosonline has quit (Client exited)
02:22:20 <-- wnayes has quit (Quit: wnayes)
02:33:43 --> SCIF has joined #instantbird
02:43:10 <-- SCIF has quit (Connection reset by peer)
02:43:58 --> SCIF has joined #instantbird
03:00:40 <instant-buildbot> build #897 of linux-nightly-default is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/linux-nightly-default/builds/897
03:03:30 <-- Optimizer has quit (Ping timeout)
03:17:17 --> Optimizer has joined #instantbird
03:34:27 <instant-buildbot> build #889 of macosx-nightly-default is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/889
03:43:33 <-- SCIF has quit (Connection reset by peer)
03:44:02 --> SCIF has joined #instantbird
03:52:08 <-- SCIF has quit (Connection reset by peer)
03:52:46 --> SCIF has joined #instantbird
03:56:30 <-- SCIF has quit (Ping timeout)
04:00:35 --> SCIF has joined #instantbird
04:09:32 <-- SCIF has quit (Ping timeout)
04:13:06 --> SCIF has joined #instantbird
05:40:35 --> jb has joined #instantbird
05:50:12 <instant-buildbot> build #992 of win32-nightly-default is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/win32-nightly-default/builds/992
05:54:23 <-- SCIF has quit (Connection reset by peer)
05:56:18 --> SCIF has joined #instantbird
06:01:10 <-- SCIF has quit (Connection reset by peer)
06:01:25 --> SCIF has joined #instantbird
06:06:10 <-- SCIF has quit (Connection reset by peer)
06:09:40 --> SCIF has joined #instantbird
06:11:24 <-- jb has quit (Ping timeout)
06:14:11 --> jb has joined #instantbird
06:14:31 <-- SCIF has quit (Connection reset by peer)
06:15:38 --> SCIF has joined #instantbird
06:16:27 --> dionisos has joined #instantbird
06:30:03 <-- EionRobb has quit (Quit: Leaving.)
06:40:27 <-- jb has quit (Ping timeout)
06:49:03 <-- SCIF has quit (Connection reset by peer)
06:50:49 --> SCIF has joined #instantbird
06:58:12 <-- dionisos has quit (Ping timeout)
06:58:22 --> dionisos has joined #instantbird
07:02:21 --> atuljangra has joined #instantbird
07:10:16 --> mpmc has joined #instantbird
07:13:22 <atuljangra> Good Morning :D
07:30:18 --> Even has joined #instantbird
07:30:18 * ChanServ sets mode +o Even 
07:31:34 --> Mic has joined #instantbird
07:31:34 * ChanServ sets mode +h Mic 
07:33:21 <Mic> HI
07:41:55 <atuljangra> Hey Mic :)
07:42:05 <Mic> Hi atuljangra, how is it going?
07:42:56 <atuljangra> Mic: Good :D Hoping to get file transfer to work today.( if I'm not blocked by anything)
07:43:08 <Mic> OK, great.
07:43:10 <atuljangra> :)
07:43:16 <Mic> You're starting with XMPP, aren't you?
07:43:23 <atuljangra> yes. 
07:45:48 --> nhnt11_phone has joined #instantbird
07:46:50 <nhnt11_phone> Hi
07:47:08 <atuljangra> Hey nhnt11_phone. :D
07:47:08 <Mic> nhnt11_phone: Hello! I'm currently looking at your patch. Should I wait for a new one first? ;)
07:47:41 <nhnt11_phone> Hi atuljangra :) Mic: Haha, no, go ahead :P
07:48:05 <nhnt11_phone> Mic: I'm going to start on the AwesomeService today.
07:48:17 <nhnt11_phone> (No, im not actuallt going to call it that)
07:48:34 <nhnt11_phone> (Excuse my typos)
07:49:13 <Mic> OK, nice. So no "/me sighs when reading the name." needed then ;)
07:49:40 <nhnt11_phone> :P
07:50:13 <nhnt11_phone> Btw, if youve got a better internal name for awesometab, I don't mind changing it..
07:50:31 <nhnt11_phone> newConversation seems a bit too long though :/
07:50:39 * nhnt11_phone likes "awesometab"
07:51:20 --> jb has joined #instantbird
07:51:53 <Mic> I was thinking about "newConv" as it has the same number of characters as "awesome" and thus won't mess with your linebreaks.
07:52:36 <nhnt11_phone> Ah okay. I dont mind.
07:53:54 <Mic> That can always be changed later.
07:54:01 --> EionRobb has joined #instantbird
07:55:11 <nhnt11_phone> Cool.
07:55:26 <Mic> flo-retina: you have Instantbird working with your high resolution display now, don't you?
07:56:54 <Mic> Have you tried if that can have a positive effect for the time bubbles feature (on the bottom of the conversation) which slowly makes that last bubble go up?
07:57:09 <flo-retina> Mic: yes
07:57:21 <flo-retina> no
07:57:39 <flo-retina> hmm
07:57:46 <Mic> It's jumping here but maybe that can be worked around by increasing the margin in steps < 1px?
07:57:51 <flo-retina> Mic: it scrolls 2px at once
07:58:08 <flo-retina> Mic: yeah, maybe I should try doing it 0.5px by 0.5px
07:58:58 <Mic> Maybe a carefully crafted CSS animation could also work here?
07:59:18 <flo-retina> oh wait, I'm at the full resolution now
07:59:35 <flo-retina> and it still jumps 2px by 2px
07:59:44 <flo-retina> Mic: if we could get one that works, yes, that would be the best plan :)
08:00:14 <-- jb has quit (Ping timeout)
08:01:23 <Mic> I wouldn't expect an improvement on displays where 1 CSS pixel = 1 pixel on the screen but maybe it will help people with higher resolutions.
08:04:33 <flo-retina> it would also help for people who zoom in :)
08:07:37 <nhnt11_phone> I'll be back later, after lunch and possibly a nap
08:07:48 * nhnt11_phone is tired this morning.
08:07:57 <nhnt11_phone> Er.. Afternoon.
08:10:09 * flo-retina agrees with the s/awesometab/newConv/ suggested change.
08:10:52 <-- dionisos has quit (Ping timeout)
08:10:54 --> dionisos has joined #instantbird
08:10:56 <flo-retina> I don't mind keeping "awesometab" here and there in some code comments, but in file names and variable names, it's not a good idea to have non-descriptive names.
08:23:14 --> nhnt11|phone has joined #instantbird
08:23:18 --> jb has joined #instantbird
08:24:30 <-- nhnt11_phone has quit (Ping timeout)
08:42:20 <nhnt11|phone> By the way, I was thinking.. Is a new service the best way to go, or should I try integrating the ranking stuff into the existing contacts service? 
08:43:03 <nhnt11|phone> Also, Mic, I want to spend some time implementing a way to get statistics from existing logs like you said. Should I do that first? 
08:57:39 --> aleth has joined #instantbird
08:57:40 * ChanServ sets mode +h aleth 
09:03:53 <-- nhnt11|phone has quit (Ping timeout)
09:05:53 <-- jb has quit (Ping timeout)
09:12:47 <Mic> Do you know already how you would like the interface of the service to be?
09:13:28 --> jb has joined #instantbird
09:14:01 <Mic> I'd say a self-contained service would be a good way to start.
09:15:48 <Mic> Maybe we already have something in wnayes account import code that can work on (our) log files in the background? Maybe there is something that could be reused?
09:16:07 <aleth> atuljangra: This may have useful resources http://wiki.xmpp.org/web/Main_Page (note in particular the MUC Rooms if you have questions about specs)
09:17:52 <aleth> Mic: If the name needs changing, instead of "newconv" how about "newtab"?
09:18:37 <aleth> Not that it matters... but we have too many things called xyzconv already imho
09:19:56 <aleth> Yet another set of files and variables that are "somehow related to conversations" doesn't help with search...
09:21:50 <-- SCIF has quit (Quit: Good bye)
09:25:08 <atuljangra> aleth: Thanks a lot :D
09:26:29 <aleth> atuljangra: It might be productive to ask there if the spec isn't clear on targetResources etc
09:27:29 <aleth> We've had contact with some XMPP people before afaik and they were very friendly
09:27:47 <atuljangra> aleth: yes I had that doubt before implementing also, but I thought I should code it up and figure out. For now, I've skipped targetResource thing and am currently implementing the further steps.
09:28:03 <atuljangra> Oh, which xmpp people? Like on their irc channel?
09:28:16 <aleth> atuljangra: Sounds great :) Must be more fun now you are making visible progress ;)
09:28:28 <atuljangra> yes :D
09:28:45 <aleth> atuljangra: It seems from that page they use XMPP MUCs not IRC :P
09:28:47 <aleth> (not surprising I guess )
09:29:21 <atuljangra> yes :P
09:29:22 <aleth> I think Peter Saint-Andre tested IB at one point and quite liked it...
09:29:40 <aleth> flo would know.
09:30:44 <atuljangra> I would contact them as and when needed :D
09:30:54 * atuljangra feels hungry :s
09:31:14 <atuljangra> I am going for lunch, and will be back to work in an hour :D
09:31:26 * atuljangra is now known as atul_lunch
09:31:57 <-- flo-retina has quit (Ping timeout)
09:32:10 --> flo-retina has joined #instantbird
09:32:11 * ChanServ sets mode +qo flo-retina flo-retina 
09:33:03 <-- Even has quit (Input/output error)
09:37:02 <-- dionisos has quit (Ping timeout)
09:37:22 --> dionisos has joined #instantbird
09:38:17 --> nhnt11_phone has joined #instantbird
09:38:20 <-- gerard-majax_ has quit (Ping timeout)
09:38:53 <nhnt11_phone> Mic: Not fully, no.
09:39:27 <aleth> nhnt11_phone: those screenshots look great already :) let's land :D
09:39:33 <nhnt11_phone> Hmm. I'll check out wnayes' code.
09:39:37 * aleth should do a review
09:39:40 <nhnt11_phone> aleth: :D
09:40:11 <nhnt11_phone> aleth: I dont remember if I requested review from you... Oops
09:40:22 <aleth> You did
09:40:26 * nhnt11_phone is always confused by that
09:40:34 <nhnt11_phone> For the latest patch? If so, great :)
09:41:24 <aleth> nhnt11_phone: I would suggest fixing the /list bug soon too (or at least experimenting with the results we get from various servers a bit), so you have a better idea of what kind of data you will have to handle for MUCs before you start implementing too much of the structure of the backend
09:41:35 <nhnt11_phone> Makes sense.
09:41:57 <-- dionisos has quit (Ping timeout)
09:42:11 --> dionisos has joined #instantbird
09:42:36 <nhnt11_phone> I should probably do that first. So it's 1)fix /list, 2) work on importing logs, 3) write the service
09:43:39 <nhnt11_phone> I should probably research on MUCs on other protocols too while i work on list. Im not familiar with any other than IRC.
09:43:52 <-- dionisos has quit (Ping timeout)
09:45:01 --> dionisos has joined #instantbird
09:51:40 <aleth> nhnt11_phone: oh right, you didn't r? me on your latest patch
09:51:41 <flo-retina> Mic: for the logs, would looking only at the file sizes be a good enough heuristic?
09:51:45 <aleth> I can leave it to Mic then :P
09:52:03 <flo-retina> nhnt11_phone: don't do your stuff in the contacts service. The contacts service would be completely off topic for IRC channels.
09:52:22 <flo-retina> aleth: if you want to look there and send feedback, that doesn't hurt ;)
09:52:34 <nhnt11_phone> Ah right.
09:53:00 <nhnt11_phone> flo-retina: That's an interesting thought about file sizes
09:53:26 <flo-retina> aleth: newtab is good for me too :)
09:53:35 <aleth> flo-retina, nhnt11_phone: I don't think it would be file /sizes/ so much as number of files
09:54:02 <nhnt11_phone> aleth: I think it could be a combination of both.
09:54:39 <flo-retina> aleth: if you've got plenty of log files with 1 line in each (because you closed the conv after each message), it's really different than a log file with 500kB of messages ;)
09:54:51 <aleth> Good point! I guess it's all a matter of weights...
09:55:04 <flo-retina> aleth: my worry though is that we may want to weight more channels where the user has actually participated, rather than just busy channels.
09:55:17 <flo-retina> so if we want to extract the messages from the user, we still need to open the files
09:55:20 <aleth> Btw I don't think wnayes' patch has an IB importer
09:55:44 * flo-retina has some code locally to go through the log folder and parse all the JSON log files asynchronously
09:56:00 <flo-retina> it's actually the only part of my "indexed logs" work that was actually finished.
09:57:01 <nhnt11_phone> Does it make sense to first make this all work for normal conversations ,and then add MUC support, or do you guys think its better to do both at once? 
09:57:29 <aleth> As far as trawling the logs goes, unless you actually look at the contents of the file, there is no difference.
09:57:37 <flo-retina> nhnt11_phone: start both
09:57:58 <nhnt11_phone> Cool
09:58:10 <flo-retina> nhnt11_phone: you may even skip the log thing for now and start playing with IRC's /list while we review your current patch and get it landed
09:58:21 <nhnt11_phone> Thats what i plan to do yes
09:58:51 <nhnt11_phone> "(nhnt11_phone) I should probably do that first. So it's 1)fix /list, 2) work on importing logs, 3) write the service" :)
09:59:15 <flo-retina> "importing logs" ?
09:59:21 <nhnt11_phone> Not importing 
09:59:27 <nhnt11_phone> I mean, processing logs for stats
09:59:47 <flo-retina> I have code to give you to go through the logs folders and parse the logs
10:00:30 <flo-retina> I'll just have to think about how we can use it for both indexing logs, and collecting the stats you need
10:00:33 <-- nhnt11_phone has quit (Connection reset by peer)
10:00:36 <flo-retina> or maybe it should do both in the same pass?
10:00:47 <flo-retina> anyway, I've got to go, will be back in half an hour
10:00:48 <-- flo-retina has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
10:07:29 --> qlum has joined #instantbird
10:07:56 --> clokep has joined #instantbird
10:07:57 * ChanServ sets mode +o clokep 
10:10:24 --> novabyte has joined #instantbird
10:24:25 --> flo-retina has joined #instantbird
10:24:26 * ChanServ sets mode +qo flo-retina flo-retina 
10:25:54 * clokep keeps being confused by what you guys mean with "start with /list". :-/
10:26:06 <clokep> atul_lunch: You should definitely be asking the XMPP people questions if the specs confuse you.
10:26:25 --> gerard-majax_ has joined #instantbird
10:27:40 <aleth> clokep: As far as I'm concerned, it's looking at bug 866 and parsing the result. If it then only gets dumped to the server tab atm (until the awesometab does something with it) that's fine with me.
10:27:44 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=866 min, --, ---, nobody, NEW, Handle /list for IRC
10:28:06 <clokep> aleth: It really gets dumped to the server tab.
10:28:14 <clokep> s/really/already/
10:28:26 <aleth> clokep: That's why I said the key thing is to parse it ;)
10:28:53 <aleth> The main goal would be not to spend a lot of time on it, but for nhnt11 to get some idea of the scope of the data
10:29:38 <clokep> OK.
10:29:57 <aleth> He can display it in the awesometab later (I think we can skip writing it to the conversation as system messages :D )
10:30:13 <clokep> Yes, we haev to remove the /list command then.
10:30:37 <clokep> (I guess my point is that you want him to look at the LIST output, not the actual /list instantbird command.)
10:31:10 <aleth> clokep: Right, the command is just a shorthand for that. I think you're right that ultimately we should just remove it.
10:33:05 <clokep> :)
10:33:15 * clokep kind of hates commands.
10:33:43 <aleth> Commands are just there to make people coming from crappy clients feel at home ;)
10:33:43 <Mic> gtg
10:34:12 <Mic> nhnt11: will look at the backlog later (hopefully during afternoon (UTC)) this time.
10:34:17 <-- Mic has quit (Quit: Instantbird -- http://www.instantbird.com)
10:34:50 * qheaden_away is now known as qheaden
10:34:55 <qheaden> Hello everyone.
10:37:41 <clokep> Hello.
10:44:00 --> nhnt11 has joined #instantbird
10:45:56 * nhnt11 's phone battery died.
10:46:04 <nhnt11> I kinda like commands :/
10:47:05 <aleth> You're a developer though ;)
10:47:23 <nhnt11> :P
10:47:41 <atul_lunch> clokep: yes :-)
10:47:45 * atul_lunch is now known as atuljangra
10:48:00 <nhnt11> aleth: So is cloke_p though ;)
10:49:36 <nhnt11> atuljangra: Just a request, could you append _lunch to atuljangra instead of just atul please? That way your nick colour won't change :)
10:49:43 <-- Optimizer has quit (Connection reset by peer)
10:50:01 * nhnt11 has gotten used to the nick colors of people on #instantbird.
10:50:22 <aleth> E ven better, don't change the nick, change your status and status message ;)
10:51:18 <atuljangra> aye aye captains :D
10:53:00 <clokep> nhnt11: I didn't mean I hate using them, I hate coding them.
10:53:10 <clokep> And for some reason everyone thinks they're built into the IRC protocol...
10:53:23 <nhnt11> clokep: Ah, that makes more sense.
10:53:28 <aleth> Real Hackers Use /quote.
10:54:04 <clokep> Real hackers use telnet.
10:54:08 <nhnt11> Yeah one of my friends tried Instantbird and his first comment when he discovered commands was "This is like IRC!"
10:58:55 * flo-retina just got someone in the coworking space to install Instantbird
10:59:03 <flo-retina> he configured Gtalk, Facebook and Twitter
10:59:16 <nhnt11> :)
10:59:26 <qheaden> Taking over the world one person at a time huh? ;)
10:59:36 <flo-retina> on the top protocols screen, he tried to do a multiple-selection, hoping the wizard would make him go through the configuration of all the selected protocols one after the other
11:00:04 <flo-retina> qheaden: I like looking at someone discovering it. It's interesting to get the feedback about the first user experience, what puzzles people, etc...
11:00:20 <qheaden> Interesting, and valuable.
11:02:02 <-- nhnt11 has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
11:02:06 --> nhnt11 has joined #instantbird
11:03:17 <flo-retina> clokep: "we haev to remove the /list command then." I disagree. It's useful for infrequent use cases (Gerv had one a while ago).
11:03:23 <qheaden> Is it possible to start a conference chat using the current Yahoo prpl from libpurple?
11:03:44 --> Optimizer has joined #instantbird
11:03:50 * nhnt11 starts digging in the IRC prpl to figure out where to parse LIST data from the server.
11:03:55 <aleth> flo-retina: If we keep it we have to add some useful parameters to filter the output
11:03:57 <clokep> flo-retina: Then we need to make it actually work. ;)
11:04:19 <flo-retina> I also disagree with "Commands are just there to make people coming from crappy clients feel at home". A keyboard-only UI is usually faster for fast typers. No reason to prevent them from using it just because we have something that looks nicer (but is slower).
11:04:27 <nhnt11> flo-retina, aleth, clokep: I think the /list command should open an awesometab with an array of channels instead of contacts.
11:04:58 <aleth> nhnt11: That's definitely not what you should implement to start with though
11:05:01 <nhnt11> Right.
11:05:02 <flo-retina> and it looks like what clokep really hates isn't commands, but people who assume they know how things work and talk about it, when they actually don't have a clue.
11:05:11 <nhnt11> Just a thought for the future of /list :P
11:06:05 <flo-retina> nhnt11: I don't think I agree with that
11:06:07 <aleth> flo-retina: "A keyboard-only UI is usually faster for fast typers. No reason to prevent them from using it just because we have something that looks nicer " I don't disagree with that. What I meant was that many people are used to commands being the /only/ convenient way to do things.
11:06:26 <clokep> flo-retina: Yes, that's mostly it. :)
11:06:40 <aleth> nhnt11: Ultimately 99% of the use cases for /list should be handled by the awesometab without the need for anything extra
11:07:11 <nhnt11> Right. Actually it may be more relevant with the current blist-tab more than in the future.
11:07:35 <nhnt11> (I think it would be trivial to implement it once the data is nice and parsed)
11:07:41 <nhnt11> But first things first, never mind about this.
11:07:49 <flo-retina> aleth: then intentionally breaking their workflow isn't the best way to make these people discover less crappy ways to do things
11:08:02 <aleth> flo-retina: Did I suggest that?
11:08:37 <aleth> "making people feel at home" means they can keep their workflow until they discover alternatives ;)
11:08:52 <-- clokep has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
11:09:53 <flo-retina> aleth: you said "ultimately we should just remove it."
11:11:05 <aleth> flo-retina: If we can't come up with a way to make it useful, yes. What was gerv's use case btw?
11:11:13 <qheaden> Conference chats can only be started from the YMSG Windows Desktop client. :-/
11:11:25 * qheaden goes to get his other laptop.
11:14:54 <EionRobb> you haven't tried starting a conference with libpurple?
11:15:26 <qheaden> Is it possible?
11:16:03 <EionRobb> well I see an "Initiate Conference" option in the blistnodemenu, but whether that actually works or not is another story :)
11:17:09 <EionRobb> looks like it created the conference but didn't invite anyone in
11:18:02 <qheaden> I don't see an Initial Conference option.
11:18:09 <qheaden> *Initiate
11:18:12 <EionRobb> it could be the buddy I'm trying to invite though :)  if you give me your yahoo id I can try invite you
11:18:20 <EionRobb> its in the right-click menu from Pidgin
11:19:07 <qheaden> Is it in the menu of Instantbird?
11:19:10 <flo-retina> EionRobb: we don't let libpurple put stuff in menus.
11:19:26 <EionRobb> you're so mean :)
11:19:37 <flo-retina> EionRobb: we also don't let it popup modal dialogs
11:19:41 <EionRobb> you're butchers!
11:20:02 <flo-retina> EionRobb: we work for the user's tranquility ;)
11:20:02 <-- Optimizer has quit (Ping timeout)
11:20:16 <EionRobb> how do you handle captcha's?
11:20:31 <flo-retina> we don't
11:20:35 <EionRobb> k
11:20:46 <flo-retina> although we could handle them in the same way that we handle OAuth for Twitter
11:20:55 <flo-retina> ie popup a dialog containing an iframe that displays stuff
11:21:00 <flo-retina> that OAuth UI sucks :(
11:21:10 <flo-retina> oh btw, it would be really nice to put that in a tab (nhnt11 ;))
11:21:12 <EionRobb> so why not allow libpurple to popup dialogs if your twitter does it?
11:21:41 <flo-retina> EionRobb: well, we could allow libpurple to display web pages that way
11:21:57 <flo-retina> EionRobb: we just don't want the random error messages popping up as crappy dialogs
11:22:06 <EionRobb> and that 'web page' can be the content of the dialog
11:22:21 <EionRobb> why not just the request api then, and not the dialog api
11:22:22 <flo-retina> EionRobb: and a dialog should always be caused by a user action. Connecting a twitter account for the first time always comes from a user action.
11:22:37 <flo-retina> EionRobb: that request API is a piece of crap :-P
11:22:43 <EionRobb> :)
11:23:13 <flo-retina> EionRobb: there's no way a libpurple client can make a decent UI for it, because all these requests miss information about the context in which the request is made
11:23:22 <EionRobb> all I see is your users tranquillity being disturbed by not being able to enter a captcha ;)
11:23:34 <flo-retina> EionRobb: is this specifically about QQ?
11:23:35 <EionRobb> how do you mean "miss info about the context"?
11:23:46 <EionRobb> qq... steam...  potentially others
11:24:00 <EionRobb> the old fb plugin, other libpurple plugins in future
11:24:04 <EionRobb> :)
11:24:08 <flo-retina> EionRobb: we are open to a patch to fix it for the captcha specific case
11:24:12 <EionRobb> ok
11:24:24 <flo-retina> the old facebook plugin? Why did it need a captcha?
11:24:49 <flo-retina> EionRobb: What we don't want in general is a prpl doing stuff related to the UI.
11:24:50 <EionRobb> if you logged in with a bad password too many times, or logged in from a country where you'd never connected before, it'd do a recaptcha captcha
11:25:07 <EionRobb> flo-retina: even if the user requested it?
11:25:37 <flo-retina> EionRobb: The user never requested to have a modal dialog in his face :-P
11:25:40 <EionRobb> change password?  set nickname? 
11:25:58 <EionRobb> buddy search?
11:26:23 <EionRobb> don't implement it as a modal dialog then, just as a popup text entry thing? 
11:27:31 <-- jb has quit (Ping timeout)
11:27:41 <flo-retina> that should be done from the account manager, not from modal dialogs implemented by each prpl
11:28:06 <flo-retina> set nickname doesn't require a dialog at all
11:28:16 <flo-retina> it's just done from the top of the buddy list window
11:28:17 * qheaden wonders if Ib can join a conference using the Join Conversation dialog and the room name>
11:28:19 <qheaden> ?
11:28:30 <flo-retina> qheaden: it may be possible
11:28:44 <qheaden> EionRobb: Could you create another conference room?
11:28:53 <flo-retina> qheaden: but I've never tried it for prpls other than IRC and XMPP (and XMPP-based)
11:29:28 <EionRobb> qheaden: sure, I just created one called eionrobb-3 I think?
11:30:44 <qheaden> Hmm. It doesn't seem to do anything.
11:32:05 <qheaden> EionRobb: Send me an invite. The username is ibprpltest
11:32:33 * nhnt11 got a phone call and now has a load of scrollback to read :P
11:35:30 <qheaden> flo-retina: EionRobb was able to invite me to a conference successfully.
11:35:42 <qheaden> Now I just have to add support for joining and creating conferences.
11:37:15 --> Optimizer has joined #instantbird
11:38:04 <-- EionRobb has quit (Quit: Leaving.)
11:39:57 <aleth> flo-retina: How did gerv want to use /list?
11:51:54 --> clokep_ has joined #instantbird
11:52:19 <nhnt11> Hmm so there's RPL_LIST and RPL_LISTEND
11:52:45 <nhnt11> So each line of the channel list is prefixed with 322.
11:53:24 <aleth> nhnt11: You've found ircBase.jsm?
11:53:45 <nhnt11> aleth: Yes.
11:53:53 <nhnt11> I'm looking at the function that handles it now.
11:53:59 <aleth> clokep_ can point you at the RFC for the specs...
11:54:13 <nhnt11> aleth: It's already pretty clear from the comments in the code :)
11:55:17 <aleth> Cool :)
11:57:11 * qheaden doesn't expect to make a lot of coding progress today. :(
11:57:47 <nhnt11> clokep_: Should I bother handling the obsolete RPL_LISTSTART?
11:58:15 <nhnt11> (I assume RPL_LISTEND is a counterpart to this and hence also obsolete? Or is it used with RPL_LIST too?)
11:59:19 <aleth> nhnt11: How do you know when to start and stop listening for a batch of responses without them?
11:59:52 <nhnt11> Btw, the comment in the code says <channel> <# visible> :<topic>, but moznet sends <channel> <# visible> <modes> <topic>.
12:00:05 <nhnt11> aleth: It appears each channel is sent with the command prefix.
12:00:09 <aleth> LISTSTART you can just leave the way it is.
12:00:18 <nhnt11> Therefore, I don't need to listen for a batch response. Just handle each line.
12:00:36 <aleth> nhnt11: What I meant is, you need to know when you have received all the entries.
12:00:57 <nhnt11> Hmm.
12:01:15 <aleth> Otherwise you have to watch out for duplicates :P
12:01:18 <nhnt11> What do I gain by knowing when it ends if everything is async?
12:01:20 <nhnt11> Ah
12:01:34 --> clokep__ has joined #instantbird
12:01:50 <-- clokep_ has quit (Quit: http://www.mibbit.com ajax IRC Client)
12:01:54 <nhnt11> Where do you suggest I display the parsed channel list right now?
12:02:14 <clokep__> nhnt11: What would you even do with it?
12:02:28 <nhnt11> clokep__: I don't know.
12:02:32 <clokep__> nhnt11: If RPL_LISTEND was obsolete it would say it was obsolete.
12:02:36 <clokep__> (I.e. it's not.)
12:02:40 <nhnt11> Okay.
12:03:00 <nhnt11> I'm not sure what you guys are expecting me to do with this, having seen the code
12:03:22 <nhnt11> I can add parsing to put channel, #visible, modes, and topic in a "channel" object or something.
12:03:23 <clokep__> nhnt11: I don't understand "<nhnt11> aleth: It appears each channel is sent with the command prefix."
12:03:34 <nhnt11> clokep__: Disregard that
12:04:26 <nhnt11> (i was trying to say, each line the server sends is something like "322 <channel> <#visible> blabla")
12:04:58 <clokep__> Yes
12:05:13 --> jb has joined #instantbird
12:05:19 <aleth> nhnt11: The main thing is you have a sense of how many entries you typically get and the kind of data for each entry
12:05:30 <nhnt11> Cool.
12:06:38 <nhnt11> So should I do anything with this right now?
12:06:43 <nhnt11> Or leave it for now and move on?
12:07:03 <nhnt11> (I would need to revisit this when I'm working on the awesomeservice)
12:07:24 <aleth> You can revisit it later if you like.
12:08:12 <aleth> For the command itself flo-retina said he had an example of how someone tried to use it (was the server tab output enough for that case? Should we add a parameter to /list to filter the output?)
12:08:14 <clokep__> We'll need to think about something to add to prplIAccount that will get the chatrooms available.
12:08:18 <flo-retina> aleth: I think he wanted a list of popular channels
12:08:39 <flo-retina> aleth: so it's possible the awesometab could do it
12:08:42 <clokep__> nhnt11: I don't expect you to improve the IRC prpl at all, you have enough other stuff.
12:08:44 <flo-retina> but I think he also needed to copy/paste it
12:09:02 <flo-retina> and I don't see us adding text selection support to the awesometab ;)
12:09:05 <aleth> Copy/paste would work fine from the server tab
12:09:21 <aleth> flo-retina: I wonder if we should add a sort parameter to /list then?
12:09:52 <flo-retina> aleth: why is it difficult to display the result in the tab where the command was typed?
12:09:55 <nhnt11> aleth: The IRC LIST command takes channel names as parameters, I don't think we implement this?
12:10:10 <nhnt11> flo-retina: It's not difficult, just that the data is too big
12:10:23 <nhnt11> It would flood the conversation window.
12:10:32 <flo-retina> aleth: I tend to have with IRC commands not displayed in the right tab the same reaction that you have with normalized names; still thinking "why isn't this just working and easily?" ;-S
12:10:59 <aleth> flo-retina: That's a general problem with IRC and one we should look at :-S
12:11:03 <aleth> It's not easy though
12:11:43 <flo-retina> aleth: how would it sound to display the /list result in a separate tab (maybe even the server tab) opened automatically
12:12:01 <clokep__> flo-retina: Yes, we should fix that.
12:12:06 <clokep__> It's not sexy and no one wants to do it.
12:12:07 <nhnt11> flo-retina: The awesometab code could be used for this... it's what I suggested earlier
12:12:21 <flo-retina> I don't remember what behavior we have when sending messages from the server tab :-S
12:12:32 <aleth> nhnt11: NOT the awesometab, we want something copy-pasteable for commands
12:12:32 <flo-retina> clokep__: "It's not sexy and no one wants to do it." hence the comparison with the normalized mess ;)
12:13:01 <flo-retina> I think we are spending more time thinking about the /list command UI than it's currently worth :-|
12:13:09 * nhnt11 hides
12:13:33 <flo-retina> what I see as the important thing now (for nhnt11) is to have a way to send a LIST command to the server, and then parse and *cache* the results, for use in the awesometab.
12:13:37 <clokep__> flo-retina: I agree! That was my point earlier. I don't understand why anyone is talking about the command, all nhnt11 might care about is the output of sending LIST to the server.
12:13:46 <aleth> We're all agreed on that
12:14:04 <nhnt11> Right, so this will go in the awesomeservice.
12:14:05 <flo-retina> clokep__: he also needs a way to send LIST to the server without the result ending up visible anywhere (even on the server tab)
12:14:20 <flo-retina> nhnt11: yes. And that's why you don't want this to be a Contacts service ;)
12:14:26 <nhnt11> Yeah
12:14:38 <aleth> I just wanted him to take a real look at the LIST output so he had a sense of what he would be dealing with ;)
12:14:42 <nhnt11> I think a simple way to do it would be to add a callback to the function that sends the list command
12:14:53 <nhnt11> Then the function that receives the list command would call the callback if it exists
12:14:57 <nhnt11> Or else, dump to server tab
12:15:46 <-- atuljangra has quit (Quit: He didn't quit, he'll be back!)
12:16:25 --> atuljangra has joined #instantbird
12:16:30 <nhnt11> Hmm, that might cause problems if one consumer asks for LIST, and while the output from the server is still being received, another consumer asks for LIST.
12:16:38 * atuljangra closed the wrong instance of IB :/
12:16:44 <nhnt11> So maybe the callback should be called from LISTEND
12:16:54 <aleth> nhnt11: You would want to parse the LIST output in ircBase, store the result in a property of the account, and add a way to retrieve it when it is done. You would probably inform your service via a notification and not a callback.
12:18:02 <nhnt11> aleth: Hmm right.
12:18:21 <nhnt11> Also this should be done lazily right? i.e. Retrieved and cached only when something asks.
12:18:26 <aleth> I'm not sure how the awesomeservice should trigger LIST... maybe a new method in the account interface is needed
12:18:59 <nhnt11> Do accounts have a way of letting consumers know if MUCs are supported?
12:19:14 <aleth> There are subtleties we should discuss... e.g. how often do you update the data etc
12:19:53 <clokep__> nhnt11: Yes, did you look at the account interface?
12:20:09 <-- dionisos has quit (Ping timeout)
12:20:16 <nhnt11> clokep__: I haven't yet, I'll look at it now.
12:21:14 <qheaden> clokep__: I don't expect to make too much coding progress today. I'm mainly doing some analysis on how conference works with Yahoo! Messenger.
12:23:56 --> dionisos has joined #instantbird
12:25:01 <clokep__> qheaden: OK.
12:25:29 <nhnt11> clokep__: Is imIAccount.canJoinChat what I'm looking for?
12:25:35 <nhnt11> Yeah okay it is.
12:26:44 * nhnt11 wonders what exactly getChatRoomFields() returns.
12:26:59 <aleth> nhnt11: The channel parameter of LIST doesn't seem very useful
12:27:24 <nhnt11> aleth: It can serve as a way to check if a channel has been updated, but yeah other than that I guess not.
12:28:22 <aleth> nhnt11: chatRoomFields is the info you need to reconnect to a chatroom, loosely speaking
12:28:41 <aleth> e.g. including a room password
12:28:52 <nhnt11> Ah. okay.
12:29:04 <clokep__> It's a funky interface.
12:29:18 <flo-retina> atuljangra: I usually put ac_add_options --with-branding=instantbird/branding/halloween in the mozconfig of my debug build to make closing the wrong instance less likely (because the icons for the instance I really want to close are obviously different)
12:29:59 <atuljangra> flo-retina: Cool :-) Trying that. :D
12:30:44 <atuljangra> flo-retina, clokep__: Current progress is I've got the xep-0096 initialization working, now I'm doing the IBB file transferring.
12:30:56 <flo-retina> ok
12:31:15 <flo-retina> I thought that was already the status yesterday evening, but maybe xep96 wasn't debugged yet :)
12:32:17 <atuljangra> yes, I've cleaned and debugged the xep96. There were small problem that I left for today.
12:32:36 <atuljangra> xep96 stuff is over now.
12:33:20 <nhnt11> Hmm, thinking about it, I should probably start with the service before the collecting stats from logs stuff. That would go /in/ the service.
12:34:25 <nhnt11> Here we go again. What should this be called? ConvRankService?
12:34:33 <nhnt11> newConvService?
12:34:49 <aleth> Put all your backend stuff into newTabService for now ;)
12:34:58 <nhnt11> Cool.
12:35:09 <aleth> You can always disagreggate later if that seems useful
12:37:36 * clokep__ is now confused at what is going to be worked on next. :-S
12:38:02 <nhnt11> clokep__: I'm going to start writing the service now.
12:38:28 <nhnt11> My initial goal is that the data structures used in the blist-tab right now should be handled by the service instead.
12:38:38 <nhnt11> (contacts, contactsById, imContactsById)
12:39:05 <qheaden> clokep__: So basically, I need to create a YahooConferenceConversation object that is a child of GenericConvChatPrototype?
12:39:50 <nhnt11> I think this sounds reasonable? After that I'll need to decide how stats are stored/processed, following which I can work on extracting stats from logs.
12:40:59 <nhnt11> Btw, in instantbird/components, what does the ib prefix mean in some of the files?
12:41:28 <aleth> It means instantbird-only (not in /chat, not shared with TB)
12:41:55 <nhnt11> Isn't that already implied since they're all in instantbird/ ?
12:42:30 <nhnt11> (I'm mainly confused why some files /don't/ have the prefix (e.g. contentHandler.js)
12:42:44 <aleth> I don't know.
12:43:19 <clokep__> nhnt11: But they all end up in one place after a build.
12:43:21 <nhnt11> Hmm. I'm going to keep the ib prefix for now.
12:43:32 <clokep__> nhnt11: It should have an ib prefix.
12:43:42 <clokep__> qheaden: YahooConference should be enough, no?
12:44:35 <qheaden> clokep__: That will work. :)
12:45:23 <flo-retina> nhnt11: ConvRankService or ConvStatsService
12:45:35 <nhnt11> I like ConvStatsService.
12:45:51 <nhnt11> ConvRank sounds like PageRank ;)
12:47:18 <clokep__> qheaden: And yes, that's pretty much what it is...and you'll have to implement the chatroomfields thing.
12:47:57 <nhnt11> Is there a way I can do stuff in queues, but still be able to commit relatively small changes to my repo without the commit showing up in the patch?
12:49:02 <qheaden> clokep__: Is the aName argument passed to GenericConvChatPrototype._init() the name of the chat room?
12:49:31 <clokep__> qheaden: It's the name that'll be in the tab,  think.
12:49:35 * clokep__ is now known as clokep_
12:49:46 <qheaden> Okay.
12:50:11 <clokep_> qheaden: If things aren't clear in jsProtoHelper, please add comments.
12:50:27 <qheaden> libpurple sets the title as the chat room name. So I'll follow suit.
12:50:38 <clokep_> Yes, that's what you should od.
12:52:15 <nhnt11> instantbot: uuid
12:52:16 <instantbot> 1d9be575-87a4-4f2f-b414-c67a560f29fd (/msg instantbot cid for CID form)
12:54:56 <clokep_> qheaden: By the way, I'd imagine that we can lazily create conference so we don't need a special UI for it?
12:54:57 * nhnt11 is looking up how the manifest files here work.
12:55:33 <nhnt11> What's the "contract" here?
12:55:52 <qheaden> clokep_: What do you mean?
12:55:58 <qheaden> Starting conferences?
12:56:07 <nhnt11> Ah got a reference, never mind.
12:56:45 <clokep_> qheaden: http://log.bezut.info/instantbird/today/#m295
12:57:27 <qheaden> clokep_: Ahh okay.
12:57:31 <clokep_> I'm not really sure what you don't understand in the phrase "starting conferences" :-S
12:57:52 <clokep_> Like for IRC there's no UI specific for creating a channel, you just join it and it creates it.
12:58:27 <qheaden> clokep_: I see what you mean.
12:58:50 <nhnt11> Does "contract @instantbird.org/conv-stats-service;1 {uuid}" look right?
13:00:15 <nhnt11> And category profile-after-change?
13:01:35 * clokep_ doesn't know.
13:01:37 <clokep_> Sorry. :(
13:01:50 <clokep_> What does the contacts service yes?
13:02:51 <nhnt11> contract @mozilla.org/chat/contacts-service;1 {uuid}
13:02:54 <nhnt11> No category :/
13:03:03 * nhnt11 isn't sure how these things work
13:04:37 <clokep_> flo-retina: ^
13:04:54 <flo-retina> nhnt11: what's the question?
13:05:02 <nhnt11> flo-retina: I need help with the manifest
13:05:11 <nhnt11> One sec
13:05:29 <nhnt11> Does this look right? http://pastebin.instantbird.com/236843
13:06:42 <flo-retina> yes
13:06:56 <nhnt11> Cool
13:07:15 <qheaden> clokep_: I'm going to start with conference joining, then I'll work on creation.
13:07:30 <qheaden> I might be able to implement joining today.
13:08:00 <clokep_> qheaden: Yes, that's the perfect way to do it. :)
13:09:14 <clokep_> qheaden: Probably get joining and sending / receiving messages, etc. all working first.
13:09:16 <nhnt11> flo-retina: I want to drop the "Service" from "ConvStatsService". Good idea, do you think?
13:09:19 <clokep_> And then do creation.
13:09:36 <qheaden> clokep_: Sounds great.
13:09:58 <flo-retina> nhnt11: no opinion
13:11:28 * clokep_ wonders if we should add this to imServices.
13:11:47 * nhnt11 wonders that too ^
13:11:59 <nhnt11> This may be useful in Tb in the future :/
13:12:05 <aleth> nhnt11: Services.ConvStatsService would be double service ;)
13:12:11 --> mconley has joined #instantbird
13:12:21 <nhnt11> aleth: Yeah, I'm changing it to "ConvStats"
13:12:56 <clokep_> Oh, imServices is chat, right?
13:12:58 <clokep_> Yeah, enver mind.
13:13:14 <clokep_> aleth: But that name doesn't have to match anything else, they're just hard coded and chosen.
13:14:40 <aleth> clokep_: I found it confusing at first that e.g. Services.conversations code was in ... imWindows. Maybe we can try to avoid that kind of thing...
13:15:17 <-- dionisos has quit (Ping timeout)
13:16:55 <clokep_> aleth: I don't know what you mean it's in the implementation of imIConversationsService: http://lxr.instantbird.org/instantbird/source/chat/modules/imServices.jsm#22
13:17:08 <clokep_> nhnt11: I'd prefer it be ConvStatsService, this matches all our other services.
13:17:17 <nhnt11> Okay
13:18:16 <aleth> clokep_: Sorry, confused it with the Conversations object :-/
13:19:22 <aleth> You're right.
13:19:42 <flo-retina> aleth: imWindow and the Conversations object suck ;).
13:21:11 --> Mic|web has joined #instantbird
13:22:03 <Mic|web> aleth: just don't make it avaialble as Services.ConvStatsService then ;) @ http://log.bezut.info/instantbird/130702/#m543
13:23:05 <Mic|web> http://lxr.instantbird.org/instantbird/source/chat/modules/imServices.jsm#10
13:24:07 <Mic|web> The other services also don't have "their name" on Services.* either..
13:24:44 <-- mconley has quit (Quit: Leaving...)
13:26:03 <clokep_> Mic|web: It doesn't matter, it can't go there anyway.
13:27:26 <Mic|web> It *can't* go there? I only wondered if it doesn't need to have that alias (and lazy getter) because I think the number of places from where it will be called will be quite limited.
13:27:56 <Mic|web> nhnt11: will the ConvStatsService service also collect the necessary data or only make it available to consumers of that service?
13:28:20 <nhnt11> Mic|web: I intend for it to do all the data collection, serving, etc.
13:28:28 <flo-retina> Mic|web: imServices is shared with Tb
13:28:35 <flo-retina> Mic|web: nhnt11's service won't
13:28:50 <flo-retina> Mic|web: it already exists in Tb, it's called "gloda" ;)
13:28:51 <Mic|web> ibServices! :P
13:29:01 <flo-retina> and you don't want to touch it :-P
13:29:21 <nhnt11> What does "gloda" mean :S
13:29:29 <Mic|web> "Use Gloada, it's going to be fun, they said!" ;)
13:29:35 <Mic|web> *Gloda
13:30:12 <clokep_> nhnt11: global database, I believe.
13:30:17 <nhnt11> Ahh
13:30:34 <Mic|web> nhnt11: how would it collect the data?
13:31:22 <nhnt11> Mic|web: Listen for observer notifications, I was thinking, but haven't put too much thought into this just yet
13:31:23 <flo-retina> Mic|web: "it's going to be fun" who said that?
13:33:25 <nhnt11> Mic|web: From what I've seen, there are enough observer notifications to collect stats just from those.
13:33:42 <Mic|web> flo-retina: nevermind, it was a reference to a meme ;)
13:33:55 <nhnt11> If required though, I may need to do something else (like using the conversation binding?)
13:34:49 <Mic|web> Like this http://25.media.tumblr.com/tumblr_m2bspq1nLc1rrf1eeo1_500.jpg ;)
13:35:06 <nhnt11> :D
13:35:55 <-- mpmc has quit (Connection reset by peer)
13:38:30 <Mic|web> I thought the ConvStatsService would collect data from 'modules' (not in the JS sense, rather like components of a particular category) and provide it to consumers with additional ranking information.
13:39:16 <nhnt11> Mic|web: I'm not sure I understand that.
13:39:39 <Mic|web> e.g. having data collected from the logs, live information (status/availabilty of contacts), channel list from IRC, ..
13:40:06 <nhnt11> Mic|web: So we collect all of the history data from logs only?
13:40:09 <Mic|web> I'm not sure it makes total sense;)
13:41:40 <nhnt11> Hmm.
13:41:50 <nhnt11> Okay this probably needs discussion
13:42:05 <Mic|web> Opened tabs might be a different source ("Switch to tab"). Not sure how feasible all this is though ;)
13:42:22 <nhnt11> I'll finish that milestone I mentioned (data structures managed by the service) and let you know, is that alright?
13:42:31 <nhnt11> (I want to finish this before discussing more details)
13:42:46 <Mic|web> I guess flo could jump in and debunk this poorly thought-through thing ;)
13:43:14 <nhnt11> Probably :P
13:43:27 <flo-retina> maybe. I should ask him :-P.
13:44:05 <-- jb has quit (Ping timeout)
13:44:21 --> Kaishi has joined #instantbird
13:57:43 <flo-retina> http://mxr.mozilla.org/mozilla-central/source/content/base/src/nsSandboxFlags.h#21 seems interesting
13:59:38 <clokep_> qheaden: Btw did we have a question about cookies for flo-retina?
13:59:51 <clokep_> (Something about whether he wants chocolate chip or oatmeal?)
13:59:53 <flo-retina> clokep_: no :-P
14:00:41 <atuljangra> heh :P
14:01:57 <clokep_> Who doesn't like cookies? :(
14:03:02 <flo-retina> clokep_: haven't you heard that people dislike third party cookies?
14:06:48 <clokep_> Touche. :)
14:12:58 <atuljangra> flo-retina: http://pastebin.instantbird.com/236877
14:15:49 <clokep_> atuljangra: Sounds like that's exactly what the sesionid is for
14:17:05 <qheaden> clokep_: The cookies question dealt with buddy tooltips.
14:17:17 <flo-retina> atuljangra: "keeping a hash with sessionID as key?" sounds OK.
14:17:41 <qheaden> clokep_:  You have to query the Yahoo address book for detailed buddy information, but getting that information requires you pass some cookies to the web request so that the server knows you are authenticated.
14:17:54 <flo-retina> an array could also work, as I don't expect us to have a lot of ongoing file transfer at once
14:18:14 <qheaden>  But I don't want to deal with tooltips right now. We will discuss that more when the time comes. ;)
14:18:37 --> dionisos has joined #instantbird
14:18:51 <flo-retina> the session id is coming from the network, so you can't trust it to not have an annoying value like "watch" or "hasOwnProperty"
14:20:29 <Mic|web> ...
14:21:25 <Mic|web> flo-retina: you think that we could use these flags with the about-browser?
14:21:36 <aleth> Mic wants to say: Use a set or map to not have to worry about annoying values ;)
14:21:54 <aleth> (or maybe ... meant something different, idk ;) )
14:22:05 <Mic|web> aleth: no, that was perfect.
14:23:52 <-- dionisos has quit (Ping timeout)
14:24:21 <flo-retina> Mic|web: I was more thinking about convbrowser, where I would be happy to get rid of the click handler and the use of the externalProtocolService
14:25:02 <flo-retina> aleth: in this case I think we don't care about hashing ;)
14:26:01 <clokep_> atuljangra: Use a Map().
14:26:48 * nhnt11 is back after dinner
14:26:59 <nhnt11> (I mean I was away for dinner and am back, not that I'm going now)
14:29:58 <-- Optimizer has quit (Ping timeout)
14:29:58 * flo-retina wonders where this enthusiasm for Map and Set comes from :-P
14:30:18 <clokep_> I like that it has a clearer API than just using objects.
14:30:28 <Mic|web> clokep++
14:33:15 <nhnt11> Okay, I'm trying to take cues from the Contacts service. ContactsService.initContacts() is called from imCore.js. I can't do this because imCore is in chat/. So I'm thinking the way to go is to listen for "prpl-init" and initialize the stats service from there.
14:33:27 <-- Kaishi has quit (Quit: Kaishi)
14:33:34 <atuljangra> Sorry was on phone.
14:33:55 <atuljangra> Okay, I will use a hash, per account?
14:34:16 <Mic|web> nhnt11: if it's a component, it can be loaded by adding it to one of these startup categories.
14:34:26 <atuljangra> clokep_: So per account map it is?
14:34:28 <Mic|web> profile-after-change is one of them afaik.
14:34:28 <clokep_> atuljangra: Yes.
14:34:34 <nhnt11> Can I add "prpl-init" as the category in the manifest? Or should I keep it "profile-after-change", and add an observer when this notification is received?
14:35:00 <nhnt11> Mic|web: The thing is, I need to be sure the contacts service has already performed its initialization, since I'll be getting contacts from there.
14:35:03 <-- clokep_ has quit (Quit: http://www.mibbit.com ajax IRC Client)
14:35:11 <atuljangra> clokep_: Awesome. I recall using it somewhere in TB. :)
14:35:19 --> clokep_ has joined #instantbird
14:35:49 <clokep_> atuljangra: OK.
14:35:56 <clokep_> Can we see some code today? :)
14:36:11 * clokep_ is curious how much was required to implement the XMPP FT stuff.
14:36:31 <Mic|web> nhnt11: you can load it from there and check if the core was initialized already and if not wait for prpl-init.
14:36:48 <atuljangra> Yes :D Should I complete this map before pushing?
14:36:50 <Mic|web> Give me a minute to look something up on lxr.
14:36:54 <nhnt11> Mic|web: "prpl-init" is sent right after core initializes
14:37:08 <clokep_> atuljangra: If it's in a semi-working state, no.
14:37:08 <atuljangra> Or whatever the case is, I'll push the code before sleeping today. I hope that'd fine?
14:37:15 <nhnt11> Mic|web: http://lxr.instantbird.org/instantbird/source/chat/components/src/imCore.js#267
14:37:16 <clokep_> Plus I want to look at it over lunch which is in ~ 1 hour.
14:37:24 <Mic|web> prpl-init is a notification, not a component categroy.
14:37:28 <clokep_> That works atuljangra .
14:37:33 <nhnt11> Okay
14:37:38 <atuljangra> clokep_: okay, so I will complete it and submit it before sleeping :)
14:37:53 <nhnt11> But isn't profile-after-change received as a notification?
14:38:04 * nhnt11 isn't sure how this works and is trying to understand from looking at existing code
14:39:02 --> Optimizer has joined #instantbird
14:39:09 <Mic|web> https://developer.mozilla.org/en-US/docs/XPCOM/Receiving_startup_notifications
14:39:13 <clokep_> atuljangra: OK.
14:39:19 <atuljangra> :D
14:39:42 <qheaden> clokep_: I've got the conference window popping up on a conference invite. I'm getting there. :)
14:40:01 <Mic|web> nhnt11: afaict there's just a category that is loaded at the time that this notification is sent.
14:40:24 <nhnt11> Mic|web: Hmm. I'll look that up then.
14:40:43 <clokep_> qheaden: Congrats. :)
14:40:47 <flo-retina> nhnt11: I just attached a WIP in bug 1584
14:40:48 <clokep_> Must feel good to have UI responding. ;)
14:40:51 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=1584 enh, --, ---, nobody, NEW, Indexed logs & efficient search
14:41:08 <nhnt11> flo-retina: Thanks, I'll check it out.
14:41:14 <flo-retina> "final-ui-startup" may be the notification you want
14:41:23 <nhnt11> Hmm okay.
14:41:28 <nhnt11> Right now, here's what I've got: http://pastebin.instantbird.com/236898
14:41:31 <aleth> qheaden: That was quick :)
14:41:34 <flo-retina> (and that patch gives an example of how to use it)
14:41:45 <nhnt11> flo-retina: I'll look at it now then. :)
14:41:58 <flo-retina> nhnt11: mostly right, you need a Services.obs.removeObserver call ;)
14:42:06 <nhnt11> Right.
14:42:33 <atuljangra> Reading Map on MDN and I see "This is an experimental technology" :s
14:43:14 <clokep_> atuljangra: Ignore the warning.
14:43:23 <atuljangra> clokep_: Yes :D
14:43:31 <flo-retina> clokep_: is it used widely in Mozilla code?
14:43:43 <atuljangra> Was just concerned.
14:43:57 <clokep_> flo-retina: It's used, I don't know how widely.
14:44:12 <qheaden> From what I remember from coding for Mozilla, they like to use it.
14:44:22 <nhnt11> flo-retina: I think "prpl-init" would be better than "final-ui-startup", why do we need to wait for the UI?
14:44:30 <flo-retina> clokep_: just checked; enough that it won't disappear
14:44:31 <qheaden> Its only experimental in that it works in Mozilla stuff only. No other browsers.
14:44:33 <nhnt11> (For the stats service)
14:44:34 <Mic|web> Mxr returns > 180 results.
14:44:48 <flo-retina> nhnt11: because you don't want your stuff to compete for resources with the UI during startup.
14:44:50 <clokep_> flo-retina: I found 152 hits.
14:44:52 <Mic|web> for "new Map"
14:44:56 <nhnt11> Cool, makes sense.
14:45:36 <clokep_> Mic|web: Did you limit to JS files?
14:46:18 <flo-retina> I think stuff hooking into prpl-init should be only stuff that needs to be executed before any account is connected.
14:47:20 <nhnt11> flo-retina: I need to ensure that either the stats service is done initing before the user tries to open a new conversation tab, or when the user opens one, it waits for the stats service if it isn't done init'ing yet.
14:47:49 <Mic|web> clokep_: nope, I didn't think of that.
14:48:01 <flo-retina> nhnt11: do you mean "I need to add a throbber in the awesometab"?
14:48:24 <nhnt11> I'd rather ensure stats service is done before an awesometab can be opened :P
14:48:42 <flo-retina> so you want to freeze the UI?
14:48:52 <nhnt11> No :(
14:49:16 <flo-retina> anyway, you can worry about that later
14:49:25 <flo-retina> do it fully asynchronously for now
14:49:26 <nhnt11> Okay.
14:49:45 <flo-retina> the likelihood of the user attempting to open a new tab before you are done initializing is extremely small
14:49:49 --> dionisos has joined #instantbird
14:50:08 <flo-retina> (and final-ui-startup is fired as soon as the UI is visible; users won't do anything before that ;))
14:50:23 * nhnt11 doesn't like approximations like that :( but okay.
14:50:35 <aleth> An open awesometab will have to be able to deal with data updates coming in anyway
14:50:42 <aleth> (e.g. contacts going offline if nothing else)
14:50:49 <nhnt11> aleth: That's already done :)
14:51:02 <flo-retina> nhnt11: so just display an empty list until you get data ;)
14:51:13 <nhnt11> flo-retina: Cool
14:51:16 <flo-retina> nhnt11: you'll be in that case if the user has no contact and no previous conversation anyway
14:52:27 <nhnt11> Btw, you do agree that moving all the data structures to the stats service makes sense right? It will mean that all of the this.contacts in awesometab.xml will change to StatsService.getContacts()
14:52:59 <flo-retina> you'll get only the n-first contacts
14:53:08 <nhnt11> flo-retina: Yep.
14:53:18 <flo-retina> but yes, all the data that needs to stay around should be stored in the service, so that it's shared if you have several windows at once
14:53:23 <Mic|web> You'll request the matches for a pattern and a number of results you'd like to receive.
14:53:38 <nhnt11> Mic|web: So you say do the filtering in the service too?
14:53:47 <flo-retina> nhnt11: of course! :)
14:53:52 <nhnt11> Cool.
14:53:54 <nhnt11> Great.
14:53:56 <nhnt11> Makes sense.
14:54:26 * nhnt11 is excited about the future of awesometab :)
14:54:42 <flo-retina> the service does its stuff, collects all the data it needs, and returns N possible conversations the user is likely to want to start, that match the given constraints (likely a string the user typed in the search box)
14:54:53 * flo-retina wonders if we want the results to change based on the time of the day
14:55:23 <flo-retina> I guess there are people one is more likely to want to contact during the work day, and others one wants to contact during the evening/week-ends
14:55:39 <clokep_> That can be refined later on, right? :)
14:55:42 <clokep_> But yes, most likely.
14:55:55 <nhnt11> Yeah that seems like something that will come later.
14:56:20 <aleth> One day, the awesometab will parse your conversations and predict when you want to PM based on the current discussion in a channel ;)
14:56:56 <-- dionisos has quit (Ping timeout)
14:57:02 <flo-retina> aleth: are you volunteering to implement that? :)
14:57:03 <aleth> The weekday/weekend/time thing sounds like a really good idea though
14:57:07 <nhnt11> One day, the awesometab will learn how you think and write messages for you ;)
14:57:31 <flo-retina> aleth: the idea seems interesting, but I'm not sure it's actually useful
14:57:46 <aleth> Something to experiment with at the end of gsoc...
14:58:03 <flo-retina> aleth: another interesting idea though: include in there recommendations to talk to people you used to like, but haven't talked to recently, and who are available right now
14:58:15 <flo-retina> or even after GSoC, with add-ons :)
14:58:50 <clokep_> Sounds like a great way to be reminded of an ex-girlfriend. ;)
14:59:36 <nhnt11> That would be... creepy.
15:00:09 <-- novabyte has quit (Quit: bye bye)
15:00:17 <Mic|web> Is that something for the suggested search results?
15:01:11 <flo-retina> clokep_: if it's someone you blocked or removed, I assume we wouldn't show her ;)
15:01:36 --> jb has joined #instantbird
15:02:12 <clokep_> :)
15:02:19 <clokep_> We don't support blocking. ;P
15:02:31 <flo-retina> but she uses something that supports it, and blocked you :-P
15:02:55 <nhnt11> What about "Let's stay friends"? :P
15:03:08 <clokep_> OK, OK. :)
15:06:46 <nhnt11> Hmm.
15:06:57 <nhnt11> I'll need to observe for contact-* notifications in the stats service
15:07:13 <nhnt11> And I'll need to make awesometabs add themselves as observer to the stats service
15:07:26 <nhnt11> To ensure that they receive contact-* notifications only after the stats service does.
15:07:55 <Mic|web> Couldn't the service forward what the tabs need to know?
15:08:25 <nhnt11> Right.
15:08:41 --> dionisos has joined #instantbird
15:09:13 <Mic|web> hmm, no. It can't know what each tab will need to receive.
15:09:27 <nhnt11> Mic|web: Why not?
15:10:00 <nhnt11> Let's say there was a "contact-added". The stats service receives this, and adds the contact to its list. Then it forwards the notification, and awesometabs receive it, upon which they refilter.
15:10:18 <clokep_> I thought the service was doing filtering?
15:10:36 <nhnt11> clokep_: Right, let me be more clear
15:10:58 <nhnt11> Um
15:11:06 <Mic|web> Is a service the right thing for this?
15:11:31 <nhnt11> :S
15:11:32 <clokep_> Yes
15:11:37 <nhnt11> Are you saying it's more like an interface, Mic|web?
15:11:47 <nhnt11> Wait, not
15:11:48 <nhnt11> no*
15:12:26 <Mic|web> clokep_: there's only one instance of a service for all consumers.
15:12:31 <aleth> nhnt11: By "forwards the notification" you probably mean "sends one of its own data-updated notifications"
15:12:41 <nhnt11> I'm confused
15:13:04 <-- dionisos has quit (Ping timeout)
15:13:05 <nhnt11> aleth: That's what I said initally, but then when Mic said I could forward it, I thought that would do.
15:13:07 <clokep_> Mic|web: Did you see earlier how we discussed how that's the right thing to do?
15:13:27 <nhnt11> Mic|web: There is only one instance here..
15:13:33 <aleth> nhnt11: It makes no sense to forward as tabs already receive all those notifications, if they listen for them
15:14:08 <aleth> If that's enough then you don't need any new notification at all...
15:14:25 <clokep_> The issue is that the tabs don't know if they care about that notification or not (ok, a contact was added. Do I need to display it?)
15:14:27 <nhnt11> aleth: I was thinking, the awesometabs could listen for notifications on the service.
15:14:28 <Mic|web> clokep_: could you give me a pointer?
15:14:46 <nhnt11> wait, lemme draw a flow chart or something
15:15:06 <clokep_> Mic|web: http://log.bezut.info/instantbird/today/#m719
15:15:12 <clokep_> Also, MIbbit's tab complete is awful. :(
15:15:18 <clokep_> And sorry for the today links. ;)
15:19:38 <Mic|web> I think it would be nice if the tab just had to display the results.
15:20:03 <Mic|web> If it could get a notification that an item should be added, removed or updated.
15:20:06 <qheaden> clokep_: Does jsProtoHelper provide a method to add a participant to the conference chat list?
15:20:43 <clokep_> qheaden: I don't think so, maybe it should though.
15:21:02 <clokep_> Mic|web: I think I agree. :)
15:21:26 <clokep_> qheaden: I've also thought, by the way, that we should normalize some of our naming between prpls so we don't have to redefine things like _conversations on each account and can then abstract code.
15:21:31 <clokep_> But maybe that's not a good idea. :)
15:22:10 <qheaden> Possibly.
15:22:13 <nhnt11> http://pastebin.instantbird.com/236901
15:22:22 <nhnt11> Mic|web, clokep_: That's the flow I'm thinking of.
15:22:32 <nhnt11> (SS is stats service)
15:23:35 <qheaden> I'll return in a bit.
15:23:37 <clokep_> nhnt11: That seems reasonable.
15:23:55 <nhnt11> clokep_: I hope it was clear what I meant by awesometabs filtering again.
15:24:02 <nhnt11> The SS is still the one doing the actual work.
15:24:18 <clokep_> They're not filtering, they're just marking their data as dirty, as if the user had typed more characters.
15:24:28 <nhnt11> Right.
15:24:33 <aleth> nhnt11: That looks good.
15:26:46 * nhnt11 wants to finish this milestone by midnight.
15:27:09 <nhnt11> (It's 9pm, and I didn't sleep well yesterday night :( )
15:27:45 <nhnt11> So awesometabs should add themselves as observers to the SS, correct?
15:28:03 <-- aleth has quit (Quit: Ciao)
15:28:03 <nhnt11> (I mean, rule out global notifications)
15:29:25 <clokep_> I think so, yes.
15:29:44 <clokep_> Although if you're just using it to mark the data is out of date, do you even need new notifications?
15:30:02 <clokep_> Or is the Stats Service going to check the notification against each observers
15:30:11 <clokep_> 's last list to see if they care about it or something?
15:31:02 <-- nhnt11 has quit (Ping timeout)
15:37:39 --> nhnt11 has joined #instantbird
15:38:00 <nhnt11> Sorry, got a phone call
15:39:21 <clokep_> No need to apologize.
15:39:50 <nhnt11> For some reason, 3G Wifi tethering doesn't work when I'm on a call. Oh well. :-/
15:39:53 <Mic|web> clokep_: I'd prefer if the tabs would only get what they need.
15:40:09 <nhnt11> Mic|web: They do get only what they need :-/
15:40:50 <clokep_> Mic|web: OK, works for me. :)
15:41:20 <Mic|web> nhnt11 with "what they need" = changes to contacts matching the pattern of the tab?
15:42:07 <nhnt11> Oh, you're saying directly tell them which contact changed, or update their lists directly from SS, or something?
15:42:16 <Mic|web> Yes.
15:42:24 <nhnt11> Hmm, I guess that would be nice.
15:42:53 <nhnt11> First I'll fully move the current implementation to the SS.
15:43:18 <nhnt11> Then I'll try to optimize things like that.
15:43:25 <nhnt11> Makes sense.
15:44:14 <nhnt11> By the way, should I submit patches on this in the awesometab bug (1583), or file a new one?
15:44:54 <Mic|web> And I haven't even finished reviewing the last one ... ;)
15:45:51 <nhnt11> Heh.
15:45:57 <nhnt11> I don't think it'll be ready /that/ soon :P
15:48:14 <Mic|web> OK.
15:48:21 <Mic|web> See you later!
15:48:33 <-- Mic|web has quit (Quit: http://www.mibbit.com ajax IRC Client)
15:56:59 <qheaden> Back
15:58:56 <nhnt11> http://pastebin.instantbird.com/236922
15:59:12 <nhnt11> The second way is the right way, right? ^
16:00:03 <clokep_> nhnt11: If it's a singleton they can just be in the prototype.
16:00:44 <nhnt11> Cool.
16:01:00 <nhnt11> clokep_: By singleton you mean having only one instance, right?
16:01:20 <clokep_> That's the definition of singleton, yes. :)
16:01:57 <nhnt11> Wanted to make sure I remembered correctly, I've nearly never used that term :)
16:02:17 <clokep_> nhnt11: http://en.wikipedia.org/wiki/Singleton_pattern
16:02:44 <nhnt11> Thanks.
16:04:05 <qheaden> clokep_: Should a make a YahooConferenceBuddy class?
16:14:00 <nhnt11> Hmm. With the current awesometab code, it would be better for the SS to return the full filtered list, and not worry about the number of contacts needed. This is so that the awesometab can re-use the filtered list when it needs to display more elements, and not have to ask the SS again. Of course, after I implement Mic's suggestion that the SS should maintain the filtered lists for each awesometab, this will probably change.
16:17:16 <clokep_> qheaden: You need to make something like that, yes.
16:17:43 <clokep_> nhnt11: Seems like a reasonable milestone.
16:18:01 <clokep_> qheaden: Did you push your code from yesterday?
16:18:07 * clokep_ can't remember if he read it last night or not. :-S
16:18:24 <qheaden> clokep_: Yeah, I did.
16:18:35 <qheaden> I think you left one comment on my commit.
16:19:19 <clokep_> OK. :)
16:19:29 * clokep_ is growing forgetful.
16:20:32 <qheaden> Don't feel bad. I forgot to write my daily log before I went to bed last night. Had to do it this morning. :P
16:20:42 <nhnt11> A thought about how awesometabs can make sure the SS is inited: Awesometabs listen for an "inited" notification before doing anything. The SS sends this after initing. If it was already inited, it sends the notification immediately to observers when they add themselves.
16:20:57 <nhnt11> qheaden: Oh no, you just reminded me about mine for yesterday :(
16:21:04 <qheaden> lol
16:22:25 <nhnt11> Guess I'll do yesterday's and today's together..
16:25:53 --> froglegstew has joined #instantbird
16:27:06 <froglegstew> hi installed add-ons in instantbird unable to view their effect like i two smileys but no option to use them
16:27:18 <froglegstew> any smiley add-on for fb
16:28:05 <nhnt11> froglegstew: If you're trying to change your emoticon theme, it's in Preferences->Themes->Emoticons
16:29:40 <-- gerard-majax_ has quit (Quit: Ex-Chat)
16:29:42 --> gerard-majax__ has joined #instantbird
16:29:45 <nhnt11> froglegstew: I don't think there's a Facebook emoticon pack, sorry.
16:33:43 <-- gerard-majax__ has quit (Ping timeout)
16:36:33 <flo-retina> nhnt11: I don't think updating the content of an already displayed awesometab when a contact is added is something very important
16:37:48 <flo-retina> I don't expect the awesometab to stay open for a long time (the reason why it's awesome is that I can find *quickly* the conversation I want, and replace that tab by the conversation)
16:38:11 <clokep_> What if I open a new tab and walk away?
16:38:16 * clokep_ frequently does that with Fx tabs.
16:38:28 * atuljangra too
16:38:39 <flo-retina> clokep_: with something typed in the URL bar?
16:38:59 <nhnt11> flo-retina: That's true.
16:39:22 <flo-retina> clokep_: and I'm not saying we shouldn't address that case. Just that it's an edge case and I don't mind us handling it in a follow up after the general case is in nightlies.
16:39:36 --> Mook_as has joined #instantbird
16:40:16 <clokep_> flo-retina: Usually not, but sometimes.
16:40:18 <flo-retina> most likely the way to address it will be to just have the stats service fire a global notification saying it's got newer data and anything displaying data from it before should refresh.
16:40:26 <clokep_> flo-retina: I see your point and agree.
16:40:40 <nhnt11> flo-retina: That's kinda what I'm doing right now..
16:41:30 <nhnt11> s/kinda/pretty much
16:41:49 <nhnt11> It's not a big deal to implement, either, the code for it is mostly already there ;)
16:42:01 <nhnt11> I'm just moving stuff around :)
16:42:33 <flo-retina> ok
16:42:52 <flo-retina> I'm afraid what you are currently doing may bitrot if we have review comments for your existing patch :-/
16:43:38 <nhnt11> flo-retina: I don't think it'll be enough bitrot to make it a waste of time right now :)
16:44:25 <nhnt11> I'll be back soon.
16:48:13 <-- flo-retina has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
16:57:59 <froglegstew> WHENEVER WE SEARCH FOR ADD-ONS MANY TIMES ALL ADD-ONS CAN'T BE SHOWN AT ONE PLACE SO THERE IS GET MORE.. LINK BUT WHEN WE CLICK ON IT IT ASKS FOR CHOOSING APPLICATION WHAT APPLICATION TO CHOOSE TO VIEW THEM ALL
17:01:02 <froglegstew> ?
17:04:40 <froglegstew> ANYONE?
17:04:51 <nhnt11> re
17:06:18 <nhnt11> froglegstew: Please don't use caps lock.  I'm not sure which "Get more.." link you're talking about, could you please post a screenshot?
17:07:05 <nhnt11> froglegstew: Are you referring to addons.instantbird.org?
17:07:39 --> novabyte has joined #instantbird
17:07:39 <-- novabyte has quit (Input/output error)
17:07:41 <froglegstew> ok
17:10:33 <froglegstew> how to paste photo here
17:11:24 <nhnt11> You can upload the image to any image sharing site (for example, http://imgur.com) and paste the link here.
17:11:35 <froglegstew> file:///home/dell/Pictures/Screenshot%20from%202013-07-02%2022:38:35.png
17:12:53 <froglegstew> http://imgur.com/PwTCpzr
17:13:20 <nhnt11> Thanks.
17:13:42 <froglegstew> you will find see all 18 results but needs application
17:14:17 <nhnt11> Does it say something like "There is no application to handle this link" or something?
17:14:38 <nhnt11> It appears your default browser may not have been configured properly. I believe atuljangra may know more about this bug.
17:15:13 <nhnt11> froglegstew: If it asks you which application, choose your browser (Firefox)
17:15:32 <froglegstew> ok
17:16:30 <nhnt11> Let me know if it works.
17:18:27 <froglegstew> no
17:18:43 <nhnt11> :(
17:20:22 <froglegstew> for example when i open irc then it will ask me choose application then i will have mibbit in list to choose but for this there is nothing
17:21:22 <nhnt11> Hmm, is there a way you could manually choose an application? For example, does it show you an "Other" button below the empty list?
17:22:00 <nhnt11> Sorry, I don't use Linux, maybe atuljangra or qheaden could be of more help.
17:22:50 <froglegstew> yes but from i was not able to locate mozilla 
17:24:06 <nhnt11> I don't know how that dialog works or where Firefox is installed by default, so I can't help you much further :(
17:24:35 <nhnt11> You'll have to wait for one of the Linux users on this channel to respond, I'm afraid.
17:24:52 <froglegstew> no problem
17:24:57 --> rosonline has joined #instantbird
17:28:47 --> gerard-majax__ has joined #instantbird
17:30:11 <atuljangra> That
17:30:34 <atuljangra> That's the pbm with os integration. Never tried that.
17:31:35 <nhnt11> It works fine for me on Mac.
17:32:28 <atuljangra> This works fine on windows too iirc.
17:32:35 <atuljangra> Lemme check here.
17:34:34 <atuljangra> How do I "open irc"? :-o
17:36:08 <nhnt11> atuljangra: I think by clicking on an irc://..... link?
17:36:17 <atuljangra> hmm
17:36:43 <nhnt11> Does the link in the addons window work for you?
17:37:17 <atuljangra> Yes iirc. Trying now.
17:38:02 <atuljangra> I click on link and it opens in the browser. <? 
17:38:43 <nhnt11> Hmm. froglegstew, which version of Instantbird are you using?
17:39:12 <atuljangra> froglegstew: Are you able to open links in conversation?
17:39:20 <atuljangra> like this: www.example.com
17:39:49 <nhnt11> That's what I was thinking too :)
17:40:52 <nhnt11> froglegstew: You may want to see this: https://bbs.archlinux.org/viewtopic.php?pid=907398#p907398
17:40:55 <froglegstew> yes i can open this
17:41:09 <nhnt11> atuljangra: He's on mibbit.
17:42:23 <-- qlum has quit (Ping timeout)
17:44:29 <nhnt11> froglegstew: Did you see that link?
17:48:54 <froglegstew> nhnt11 yes it worked 
17:49:03 <nhnt11> Cool!
17:51:51 <froglegstew> but dear there we have only download option not install one
17:53:23 <nhnt11> froglegstew: So download and install from file in Instantbird? :)
17:53:48 <froglegstew> will try
17:54:11 <clokep_> We don't handle IRC links, that's a totally different issue.
17:54:38 <clokep_> froglegstew: Firefox has no way of knowing that that file belongs to Instantbird, you can drag & drop the link onto the add-on window.
17:55:57 <froglegstew> ok
17:57:48 --> flo-retina has joined #instantbird
17:57:48 * ChanServ sets mode +qo flo-retina flo-retina 
17:57:58 <nhnt11> Garh, I'm having a weird error that I'm unable to debug.
17:58:11 <clokep_> What's the error?
17:58:33 <froglegstew> it's saying they are corrupt so grag and drop dont work
17:58:42 <nhnt11> The error itself isn't weird, it's "TypeError: imContact is undefined"
17:58:48 <nhnt11> One second
17:59:06 <nhnt11> It's happening in this function at line 6: http://pastebin.instantbird.com/236987
17:59:48 <nhnt11> It's not saying contact is undefined though, and both contactsById and imContactsById are set together for a given id.
18:00:13 <clokep_> Works on Windows. ;)
18:00:23 <nhnt11> (http://pastebin.instantbird.com/236988)
18:01:24 <clokep_> nhnt11: Well that's the first time you're attempting to access it, so that's why it's erroring there.
18:01:46 <clokep_> Why would it complain that contact is undefined? :-S
18:01:49 <clokep_> You don't try to access it.
18:02:18 <flo-retina> what's contactsById vs imContactsById?
18:02:21 <nhnt11> Hmm right, contact wouldn't complain. But I don't get why imContact is complaining.
18:03:10 <nhnt11> flo-retina: imContactsById stores imIContacts, contactsById is a cache that is required so that we have a list of contacts that is guaranteed to be unchanged unless we change it.
18:03:29 <flo-retina> which kind of contacts?
18:03:31 <nhnt11> Rather, contactsById stores contacts, which are cached imIContacts, if that makes sense.
18:03:54 <nhnt11> flo-retina: It's created here: http://pastebin.instantbird.com/236989
18:04:16 <nhnt11> Basically a custom object which caches the fields we need for sorting
18:05:41 <flo-retina> it stores the imContact, so why do you need this.imContactsById too?
18:05:54 <-- gerard-majax__ has quit (No route to host)
18:06:19 <nhnt11> flo-retina: That's an addition I made while moving this to the stats service, I haven't started using it yet
18:07:40 --> gerard-majax_ has joined #instantbird
18:08:14 <nhnt11> Anyway I think I have a lead on what's causing this problem I'm having with imContact being undefined..
18:09:16 <nhnt11> Hmm, maybe not...
18:10:37 <nhnt11> Aha
18:10:39 <nhnt11> Got it
18:11:22 <nhnt11> Wait, now I'm even more confused.
18:11:26 <nhnt11> One second
18:11:59 <nhnt11> http://pastebin.instantbird.com/236990
18:12:21 <nhnt11> removeObserve is failing.
18:12:53 <nhnt11> That should mean this.initContacts() is never called right?
18:13:37 <nhnt11> initContacts is definitely being called, because I added a Cu.reportError in it and it's showing up.
18:19:41 <nhnt11> Aha
18:19:58 <nhnt11> flo-retina: final-ui-startup comes before prpl-init ;)
18:20:35 <nhnt11> So if I initialize after final-ui-startup, the contacts service hasn't loaded its contacts yet.
18:20:50 <nhnt11> I think I should listen for both, and init only after both are done.
18:21:54 --> qlum has joined #instantbird
18:23:59 * atuljangra goes for a little nap. 12 am here :s
18:27:41 <flo-retina> nhnt11: that's surprising
18:28:13 <nhnt11> Yeah, I wonder if it's because of my hardware?
18:28:21 <nhnt11> (But my laptop isn't that slow :( )
18:28:30 <nhnt11> Anyway, checking for both is the way to go I think.
18:32:20 <nhnt11> flo-retina: Is this kind of thing acceptable? http://pastebin.instantbird.com/236991
18:32:40 <nhnt11> (I realize _initChecklist is a bad name)
18:34:03 <nhnt11> This is probably better: http://pastebin.instantbird.com/236992
18:35:54 <flo-retina> nhnt11: the init order is likely deterministic
18:36:24 <nhnt11> I wouldn't know that :)
18:36:40 <nhnt11> I'll research that and change it if that's the case.
18:36:47 <flo-retina> I wonder if app-startup is what I was looking for
18:37:50 <nhnt11> Hmm, there goes my midnight deadline...
18:38:20 <flo-retina> hmm, apparently not
18:40:34 <flo-retina> oh well, just use prpl-init for now, and if there's something better I'll figure it out at review time
18:40:54 <nhnt11> Okay.
18:41:08 <-- froglegstew has quit (Quit: http://www.mibbit.com ajax IRC Client)
18:41:44 <nhnt11> flo-retina: Um, so I can't figure out the proper way to use this service in another file.
18:41:46 <nhnt11> :]
18:42:29 <nhnt11> Cc['@instantbird.org/conv-stats-service;1'].getService().wrappedJSObject?
18:42:37 <nhnt11> Is that correct? *
18:43:54 --> DGMurdockIII has joined #instantbird
18:44:28 <clokep_> .wrappedJSObject? :-S
18:44:36 <clokep_> My guess is you need to define an interface first.
18:44:42 <nhnt11> clokep_: Yeah, because there's no interface.
18:45:09 <nhnt11> According to MDN if you skip writing an interface, you can use .wrappedJSObject
18:46:41 <clokep_> You have to define wrappedJSObject msot likely then.
18:46:47 <clokep_> And do we not want to define an interface?
18:47:31 <nhnt11> clokep_: MDN says you don't need to as long as the service is intended to be used only from JS.
18:47:35 <nhnt11> I don't know though
18:47:38 <nhnt11> flo-retina: ^^
18:47:40 <nhnt11> ^ *
18:49:11 <flo-retina> nhnt11: the reason for using a component rather than a module is that then you will have to write a self-documenting interface
18:49:21 <nhnt11> Okay.
18:49:47 <flo-retina> .getService().wrappedJSObject is an ugly work around to end up with a module (and also a good solution for a quick r- :-P)
18:49:49 <nhnt11> I notice that all the components in chat/ have interfaces in public and the js files in src.
18:50:15 <nhnt11> And instantbird/components doesn't have those.
18:50:27 <qheaden> clokep_: I am now able to be invited to conference chats, and send/receive conference chat messages. :)
18:50:42 <clokep_> qheaden: :) Nice. How difficult was it?
18:50:52 <qheaden> Not that difficult.
18:51:08 <flo-retina> nhnt11: the public/ and src/ directories aren't very useful
18:51:36 <clokep_> qheaden: Great!
18:51:42 <nhnt11> So yeah I'm wondering where to put the interface.
18:52:18 <nhnt11> Directly in instantbird/components?
18:53:03 <flo-retina> nhnt11: yes
18:53:10 <nhnt11> Cool.
18:54:22 <clokep_> You guys are all getting to learn a lot about interfaces this year. ;)
18:54:41 <nhnt11> :)
18:56:20 <-- rosonline has quit (Ping timeout)
18:56:43 <nhnt11> Hmm, I think I'm getting how this stuff works a bit.
19:02:33 <clokep_> nhnt11: Ask if you have confusions.
19:03:09 <nhnt11> The uuid in the idl should be different from the uuid in the one in the manifest right?
19:03:56 <clokep_> The UUID in the manifest matches the UUID of the service, not the interface.
19:04:02 <nhnt11> Cool.
19:04:07 <nhnt11> instantbot: uuid
19:04:08 <instantbot> 1b495592-8512-4443-bcdb-49118f045e42 (/msg instantbot cid for CID form)
19:05:51 <-- atuljangra has quit (Ping timeout)
19:06:20 <clokep_> Don't use them all up. ;)
19:07:03 <nhnt11> :P
19:07:30 * nhnt11 is learning the weird syntax.
19:09:15 --> rosonline has joined #instantbird
19:11:32 <nhnt11> Hmm, the contacts, contactsById, and so on variables shouldn't be in the prototype, I think.
19:12:22 <nhnt11> Why not though, they aren't shared between multiple services unlike the contacts service..
19:12:49 <clokep_> nhnt11: What?
19:13:22 <nhnt11> clokep_: In imContacts.js, ContactsById is a global variable, not part of the ContactsService
19:13:36 <nhnt11> IIRC
19:13:48 <clokep_> OK...what's your point?
19:13:56 <clokep_> What's the difference between that and putting it on the prototype?
19:14:18 <nhnt11> If you make it global, it's accessible from all the objects defined in the file.
19:14:28 <nhnt11> That's why I said "Why not though...."
19:14:30 <nhnt11> Never mind.
19:15:19 <clokep_> It's a singleton, you could always just access the one instantiation of it.
19:15:24 <clokep_> But sure.
19:16:17 * nhnt11 is trying to figure out how to translate "contacts: []" to IDL
19:16:47 <nhnt11> Hmm, do I need to define only methods that should be accessible publicly in the idl?
19:19:10 <Mook_as> idl doesn't support arrays as attributes, I think
19:19:42 <Mook_as> and it should normally hold only public things, yes. you _might_ use a second private interface if you want, I guess...
19:19:49 <-- rosonline has quit (Ping timeout)
19:19:54 <nhnt11> Nope, that should be good then.
19:20:07 <nhnt11> If I only need to define public things, I don't need to define the arrays in the idl file.
19:20:33 <nhnt11> In fact I only need to define three or four methods then.. :)
19:22:44 <qheaden> Commit incoming.
19:24:44 <nhnt11> Hmm. Can I specify a JS object as an output?
19:24:45 <qheaden> clokep_: At what point will we be able to start landing things?
19:25:01 <nhnt11> Rather, an array of JS objects.
19:25:33 <nhnt11> Do I have to define an interface for the objects I'm returning?
19:26:06 <flo-retina> yes
19:26:28 <nhnt11> Okay, I'll make it easier for myself and return imIContacts ;)
19:26:54 <nhnt11> flo-retina: To specify that I'm returning an array of imIContacts, do I have to include anything in my idl file?
19:27:10 <nhnt11> Yeah I guess I do.
19:27:17 <flo-retina> nhnt11: look at the imITag interface
19:27:58 <nhnt11> Adding "interface imIContact;" near the top is enough?
19:28:08 <nhnt11> Cool..
19:28:08 <flo-retina> yes
19:31:32 <clokep_> qheaden: Umm....when someone looks at how to land it preffed off. :(
19:31:38 <clokep_> Or behind a preference at least.
19:32:06 <qheaden> Okay,
19:32:34 <-- DGMurdockIII has quit (Quit: ChatZilla 0.9.90 [Firefox 23.0/20130625125232])
19:32:39 <clokep_> qheaden: I think we're getting close though.
19:32:46 <qheaden> Also, what should be the behavior when a conference owner closes the conference? Should the window close or stay open?
19:33:02 <clokep_> qheaden: Stay open and it should be marked as "left".
19:33:08 <clokep_> qheaden: We need to support Yahoo JAPAN before landing.
19:33:15 <qheaden> Okay.
19:33:17 <nhnt11> flo-retina: http://pastebin.instantbird.com/237035
19:35:08 --> Mic has joined #instantbird
19:35:08 * ChanServ sets mode +h Mic 
19:35:33 <flo-retina> yes
19:35:51 <nhnt11> :)
19:35:59 * nhnt11 waves at Mic
19:36:27 <Mic> The pastebin looks good from what I've seen of interface definitions before.
19:36:38 <Mic> (I've never even changed one iirc;)
19:36:55 <nhnt11> I think I'm done with the interface actually, except for comments!
19:37:16 <nhnt11> flo-retina, Mic: http://pastebin.instantbird.com/237036
19:37:54 <nhnt11> None of the other methods in the service need to be exposed :)
19:38:20 * nhnt11 expected that to take longer and be more complicated than it was.
19:40:11 <Mic> nhnt11: seems good :)
19:40:45 <nhnt11> So now I need to make sure this all builds...
19:42:34 <nhnt11> It's asking me to define MODULE in the makefile. What would this be? (It's "chat" for the chat/components)
19:42:37 <qheaden> Its starting to storm here. So if I suddenly go offline, it might be a power outage.
19:42:56 <nhnt11> MODULE = instantbird?
19:43:19 <Mic> flo-retina: ?
19:43:32 <clokep_> qheaden: Overall looks good. :)
19:43:36 <Mic> Could you help, I've not even an idea where to start ;)
19:43:50 <clokep_> qheaden: Can you update the etherpad w/ what's done?
19:43:59 <flo-retina> nhnt11: seems ok
19:44:00 <-- jb has quit (Ping timeout)
19:44:06 <qheaden> clokep_: Once again you set a reviewing speed record. :P
19:44:11 <qheaden> I'll update the etherpad.
19:44:17 <nhnt11> Seems to be working.
19:44:31 <qheaden> clokep_: Also, I read your comment about the rooms. Each room has a unique ID associated with it.
19:44:32 <nhnt11> Yep, the build succeeded :)
19:45:04 <clokep_> qheaden: OK! I realized after writing it they just give an owner instead of setting a status for each participant. :)
19:45:54 <Mic> nhnt11: check the list of interfaces to see if it's there.
19:46:03 <qheaden> clokep_: Also, looking at the Etherpad, I'm not sure if there are participant levels in Yahoo conferences.
19:46:09 <qheaden> Only owner and non-owner.
19:46:10 <nhnt11> Mic: How do I do that?
19:46:35 <qheaden> And I think they have the same privileges.
19:50:05 <flo-retina> nhnt11: type Comopnents.interfaces.<name> in the error console
19:50:40 <clokep_> qheaden: Well we want to at least show the owner's icon.
19:50:43 <Mic> That's what I thought, but it's not working for me here... :S
19:50:48 <clokep_> qheaden: Didn't you say if the owner quits everyone has to quit? :-S
19:50:56 <clokep_> That would mean they have more privledges in a way.
19:51:19 <nhnt11> flo-retina: That's not doing anything, like Mic said
19:51:21 <Mic> nhnt11, flo-retina: nevermind. I had my error console set to show only errors.
19:51:26 <nhnt11> Do I need a debug build for it to work?
19:51:31 <nhnt11> Oh same here Mic :P
19:51:47 --> dionisos has joined #instantbird
19:51:50 <nhnt11> It works :) ibIConvStatsService
19:52:02 <-- qlum has quit (Ping timeout)
19:52:16 <Mic> Cool :)
19:52:27 <clokep_> qheaden: I added *s next to things that I think could be done after initial landing.
19:52:51 <qheaden> Okay.
19:53:25 <clokep_> qheaden: Do you agree with them? Want to add more? Remove some?
19:53:28 * clokep_ is open to discussion. :)
19:53:37 <nhnt11> Cool. To access the service, Components.classes["@instantbird/conv-statas-service;1"].getService() ?
19:53:48 <clokep_> That should be it, yes.
19:53:53 <clokep_> Without the typo.
19:54:12 <nhnt11> stats* yeah
19:54:17 <flo-retina> that won't work if it doesn't implement nsIClassInfo
19:54:29 * clokep_ didn't want you to try to C&P it and use it. :)
19:54:29 <flo-retina> and nsIClassInfo isn't really needed here
19:54:48 <clokep_> Isn't adding it like a single line though?
19:54:49 <qheaden> clokep_: That looks good to me. I think though we should remove conference participant levels. From what I see, Yahoo doesn't use levels like IRC.
19:54:51 <flo-retina> nhnt11: .getService(Components.interfaces.ibI...)
19:54:59 <nhnt11> flo-retina: Okay.
19:55:17 <-- dionisos has quit (Ping timeout)
19:55:58 <clokep_> qheaden: I think we should mark the owner as the owener, even if it doesn't give them extra permissions.
19:56:38 <qheaden> clokep_: I agree with that.
19:56:58 <clokep_> qheaden: Then what does "clokep_: That looks good to me. I think though we should remove conference participant levels. From what I see, Yahoo doesn't use levels like IRC." mean?
19:57:04 <clokep_> Oh, you mean from required before landing?
19:57:07 <clokep_> It should be like a 3 line change.
19:58:02 <clokep_> qheaden: Just do something like http://lxr.instantbird.org/instantbird/source/chat/protocols/irc/irc.js#581 but do this.name == this._conv.owner or something.
19:58:12 <qheaden> clokep_: When I saw participant levels, I initially thought of the various IRC permissions. But I now agree with the owner, non-owner separation.
19:58:37 <clokep_> It /is/ the same thing though, I just mean implementing those parts of the interface. :)
19:58:53 <clokep_> Instantbird doesn't do anything special about them except give different icons. ;)
19:59:15 <qheaden> Ahh okay. :)
19:59:28 <nhnt11> Bah, this.statsService is undefined :-/
20:00:16 <nhnt11> I put the Cc["@instantbird.org/conv-stats-service;1"].getService(Ci.ibIConvStatsService) in <field name="statsService">
20:01:18 <clokep_> nhnt11: Are Cc and Ci defined?
20:01:37 <nhnt11> clokep_: I'm using Components.classes, no shorthand
20:01:41 <nhnt11> Only used shorthand while typing here.
20:01:53 --> rosonline has joined #instantbird
20:02:19 <clokep_> That's confusing. ;)
20:02:29 <clokep_> I don't know though, sorry.
20:04:10 <nhnt11> Ah
20:04:14 <nhnt11> The problem is...
20:04:35 <nhnt11> http://pastebin.instantbird.com/237048
20:05:06 <nhnt11> flo-retina: ^
20:06:04 <nhnt11> Both the class and the interface exist... I checked.
20:06:12 <nhnt11> So I'm thinking something is wrong with getService..
20:06:50 <flo-retina> pastebin the content of the file that implements the service
20:07:11 <nhnt11> flo-retina: ibConvStatsService.js?
20:07:15 <flo-retina> yes
20:07:50 <nhnt11> http://pastebin.instantbird.com/237059
20:07:52 <nhnt11> flo-retina: ^
20:08:20 <flo-retina> looks like there's a bug in your pastebin add-on that forces you to write 2 essages ;)
20:08:48 <nhnt11> Yeah, but this time I pasted it in a different tab and then forgot to mention you :P
20:10:37 <flo-retina> what does "Cc["@instantbird.org/conv-stats-service;1"].getService(Ci.ibIConvStatsService)" do if you type it in the error console?
20:10:57 <nhnt11> Let me try
20:11:12 <Mic> Don't services need some extra code somewhere compared to normal components? I thought I had seen something about this on MDN, let me see...
20:11:54 <nhnt11> flo-retina: Same error.
20:12:05 --> jb has joined #instantbird
20:13:36 <flo-retina> oops, sorry
20:13:42 <flo-retina> line 157 is wrong
20:14:07 <flo-retina> XPCOMUtils.generateQI([Ci.nsIObserver, Ci.ibIConvStatsService]) should work better
20:14:17 * nhnt11 tries
20:15:07 <-- jb has quit (Input/output error)
20:15:09 <nhnt11> It works :)
20:15:13 --> jb has joined #instantbird
20:15:27 <nhnt11> Thanks flo-retina :)
20:15:31 <flo-retina> np
20:25:43 <nhnt11> This is weird...
20:26:15 <nhnt11> getFilteredContacts is returning an array of length 554, but when I check the length of the array returned in awesometab.xml, it's 0
20:27:45 <nhnt11> So I'm thinking something's wrong in the idl file..
20:29:25 <clokep_> nhnt11: How are you returning the data?
20:29:42 <flo-retina> nhnt11: what happens if aFilteredContactsCount is undefined?
20:29:54 <flo-retina> I think you missed a test there
20:30:23 <nhnt11> Hmm, but I have a reportError at the end before returning anything to print the number of elements being returned, and it's saying 554 :/
20:30:45 <nhnt11> Let me try though
20:30:49 <clokep_> How are you calling it? ;)
20:31:11 <nhnt11> Same thing. Returning 554, returned 0
20:31:16 <nhnt11> clokep_: What do you mean?
20:31:21 <flo-retina> are the values you return in that array implementing the imIContact interface, or are they your JS objects?
20:31:27 <nhnt11> this.statsService.getFilteredContacts(filterTxt)
20:31:35 <nhnt11> flo-retina: They are imIContacts
20:32:06 <clokep_> I meant I wanted to see how you're calling it.
20:32:11 <Mic> nhnt11: please pastebin the code (including the error reporting).
20:32:17 <nhnt11> Pasting.
20:33:58 <Mic> Isn't there a return missing in getFilteredContacts by the way?
20:34:09 <nhnt11> http://pastebin.instantbird.com/237062
20:34:12 <Mic> The one in the callback of  .filter?
20:34:44 <nhnt11> Mic: The reportError at line 15 says 554, the one at line38 says 0
20:34:50 <nhnt11> Mic: Where do you mean?
20:34:56 <nhnt11> I don't see any missing returns
20:35:41 <Mic> That's what you have (reformatted): http://pastebin.instantbird.com/237063
20:35:49 <clokep_> nhnt11: Mic is right.
20:35:55 <clokep_> You have { } therefore you need a return.
20:36:03 <nhnt11> D'oh
20:36:08 <nhnt11> Thanks
20:36:12 <nhnt11> :)
20:36:14 <Mic> We should get rid of the ): textcode by the way.
20:36:26 <nhnt11> Mic:  I hate that.
20:36:42 <clokep_> Mic: We should fix it so it doesn't become a smiley. :P
20:37:25 <nhnt11> Mic: But in the case where aFilterStr is undefined, it still says returning 554 but receives 0.
20:37:29 <Mic> clokep_: that's what I meant: we should remove ) : (minus space) from the list of textcodes.
20:37:44 <nhnt11> But wait, it partially works now :)
20:38:10 <flo-retina> Mic: I would happily r+ a patch removing ) : ;)
20:39:15 <Mic> Returning 554, receiving 277? :P
20:39:32 <nhnt11> No
20:39:44 <nhnt11> It's working for the case where aFilterStr is not blank.
20:40:02 <nhnt11> :?
20:40:03 <nhnt11> :/
20:41:22 <nhnt11> Hm
20:41:49 <nhnt11> It works perfectly without the if (!aFilterStr) return this._contacts.map(function(c) c.imContact);
20:42:35 <nhnt11> Btw, the blist-tab is now even snappier :)
20:43:27 <clokep_> Mic: I understood that perfectly, I was counter proposing that we should make our emoticon detection code suck less. :)
20:43:37 <nhnt11> Looks like everything works. I don't see any errors :)
20:43:45 <nhnt11> flo-retina, Mic: So.... should I upload a new patch :P
20:45:04 <qheaden> clokep_: Okay, I pushed a patch that flags the owner as the room founder.
20:45:22 <-- jb has quit (Quit: jb)
20:45:36 <qheaden> It seems that development is becoming slightly easier since the base framework is there.
20:46:34 --> jb has joined #instantbird
20:47:02 * nhnt11 is happy with his progress today.
20:47:45 <clokep_> qheaden: Any reason you didn't do that the way I suggested? :(
20:47:52 <nhnt11> qheaden, atul: Congrats on all your progress so far too, btw :)
20:47:52 <clokep_> qheaden: Good! It should be. :)
20:50:18 <Mic> clokep_, qheaden: I'm curious, does the order of values in these packets matter?
20:50:38 <qheaden> Mic: A lot of times, yes.
20:50:43 --> EionRobb has joined #instantbird
20:51:20 <qheaden> Mic: Mainly when there is a list involved. Sometimes keys are used more than once, so order is important to determine groups, etc.
20:51:57 <Mic> Yes, I just saw "53" two times in a packet..
20:54:26 <Mic> Would hiding the numeric values in constants improve anything by the way? For example by making it easier to read the code or less probable to use the wrong constant, ..)?
20:54:47 <nhnt11> Mic: I've pushed all the new code to my repo. I need to write my blog posts and then I'm going to bed.
20:55:03 <qheaden> Mic: I think that would make things messy with all of the different constants used.
20:55:19 <qheaden> In libpurple, they just use direct constants instead of named ones.
20:55:34 <Mic> I'll have a look and nice that you're remembering to blog about it :)
20:55:57 <nhnt11> Mic: Remembering... eheheh
20:56:25 <Mic> Did I say something wrong? :S
20:56:41 <nhnt11> Mic: No, just that I seem to forget to blog a lot.
20:57:27 <nhnt11> My last log was 3 days ago :(
20:57:49 <nhnt11> Btw, the new code is in a new branch called "statsservice", fyi.
21:01:14 <clokep_> Mic: The issue with using constants is that those values change for each packet.
21:01:16 <clokep_> Unfortunately.
21:01:33 <qheaden> clokep_: How is this - http://pastebin.instantbird.com/237064
21:01:58 <clokep_> qheaden: Simpler. :)
21:03:09 <qheaden> clokep_: I agree. :)
21:03:21 <clokep_> :)
21:03:43 * qheaden is still learning the art of simple coding.
21:05:09 <qheaden> Random thought: Does Ib allow you to change the status of each account individually? For example, I want to be available on IRC, but busy on other accounts?
21:10:25 <flo-retina> qheaden: the backend allows it. The UI would have to be in an add-on (that nobody took the time to write)
21:12:00 * qheaden smells another project on his hands. :P
21:12:12 <qheaden> Any bugs open for it?
21:12:44 <Mic> Try looking in the INVALID or WONTFIX lists? scnr ;)
21:13:19 <qheaden> :P
21:13:43 <clokep_> But seriously, we've probably WONTFIXed them. :)
21:13:49 <clokep_> qheaden: What's your use case?
21:14:07 <Mic> There might be valid cases for setting different status' on different accounts (work related accounts and others that should mutually exclusive be set to Available and Away) but the UI would suck most likely.
21:14:19 <qheaden> clokep_: When I am working, I should be available on IRC, but busy on other protocols.
21:14:20 <clokep_> Yes. ;(
21:14:25 <qheaden> Sometimes my friends can be a bit chatty.
21:14:40 <clokep_> I chat w/ people at work obviously. ;)
21:14:46 <clokep_> But understood.
21:14:52 * clokep_ might want that if he ever lands SIPE...
21:17:13 * flo-retina had an idea for an hopefully not too sucky UI to handle these cases
21:17:20 <flo-retina> never got the time to implement it though
21:17:30 <nhnt11> Done with my blog posts, going to bed. Good night everyone. Thanks for the help.
21:18:07 <qheaden> Night nhnt11. :)
21:18:42 <flo-retina> nhnt11: good night :)
21:18:51 <Mic> nhnt11: nn
21:19:32 <qheaden> I too have to sign off now. I got much more accomplished today than I thought I would.
21:20:20 <-- nhnt11 has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:20:56 <qheaden> Couldn't you just provide a right-click context menu option to set the status on each account, and use the main status bar to set the global status?
21:21:00 --> nhnt11 has joined #instantbird
21:21:01 <-- nhnt11 has quit (Quit: nhnt11)
21:21:18 <qheaden> And if there are differences between the account status, the main status bar can read "Mixed Statuses".
21:21:20 <Mic> qheaden: that's how Trillian did it years ago. It was absolutely confusing :(
21:21:29 <qheaden> :P
21:21:36 --> nhnt11 has joined #instantbird
21:22:29 <-- nhnt11 has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:22:51 <-- rosonline has quit (Ping timeout)
21:23:00 * clokep_ thinks that would be confusing as well...
21:23:15 <Mic> What about defining roles to which accounts can belong. You select the current role (Work) and rules would allow how status changes in "Work" transform to the status' of the other roles?
21:23:18 * flo-retina thinks it would be fine for an add-on
21:23:28 <flo-retina> as long as I don't have to install it or recommend it to anybody :-P
21:23:53 <Mic> *would allow to define
21:23:58 <qheaden> What about transforming the status bar into a drop down menu displaying a global status switch, and the statuses of each account?
21:24:35 --> nhnt11 has joined #instantbird
21:24:46 <flo-retina> Mic: my idea was to allow the user to have multiple identities ("Persona" would be a better word, but it's badly overloaded already). Each identity would have a separate list of accounts (there would be splitters / section headers inside the account manager's list)
21:25:08 <flo-retina> and at the top of the blist window, there would be a bar with the display name, buddy icon and status for each of the identities
21:25:08 <-- nhnt11 has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:25:59 <flo-retina> qheaden: I think you don't want to set the status of each account. What you want is to have groups of accounts that reflect the different use cases you have for IM (ie "at work" "with friends", ...)
21:28:04 <qheaden> flo-retina: I think it would be better to allow global status setting, group status setting, and individual status setting. Better granularity makes it easier to perform quick changes if needed.
21:28:32 <flo-retina> global status is what you already have.
21:28:39 <qheaden> right
21:29:11 <flo-retina> group status is what I'm suggesting. And nothing prevents a user (who obviously missed the point) from creating a group for each of his accounts.
21:29:29 --> rosonline has joined #instantbird
21:30:29 <qheaden> Hmm. OK.
21:31:16 * flo-retina wonders why DOMi doesn't work in his new debug build
21:33:54 <flo-retina> bah http://hg.mozilla.org/dom-inspector/file/dab848bd7bbb/install.rdf#l86 :(
21:34:19 <qheaden> Well, I'm ending for today. I will see you all tomorrow.
21:34:23 <qheaden> Thanks for all of the help.
21:35:07 <clokep_> flo-retina: That would work for me. :)
21:35:21 <flo-retina> is this about the UI I described?
21:36:23 * qheaden is now known as qheaden_away
21:37:46 <flo-retina> clokep_: is bug 1981 really waiting for a review? It looks like Mic's comment there is almost r- :-S
21:37:49 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=1981 nor, --, ---, clokep, ASSI, Make socket.jsm more binary friendly
21:39:59 <clokep_> flo-retina: Yes, the UI.
21:40:18 <clokep_> flo-retina: I took care of that but haven't uploaded a new patch, I decided it needs tests.
21:40:47 <flo-retina> so now I have DOMi enabled in the add-ons manager, but it's the "debug" menu that I don't have :-S
21:41:06 <instantbot> clokep@gmail.com denied review for attachment 2527 on bug 1981.
21:41:09 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=1981 nor, --, ---, clokep, ASSI, Make socket.jsm more binary friendly
21:43:52 <clokep_> ;)
21:43:59 <flo-retina> any idea of why http://lxr.instantbird.org/instantbird/source/instantbird/content/jar.mn#103 would not work?
21:44:43 <flo-retina> here is the build command: http://pastebin.instantbird.com/237098
21:45:02 <-- jb has quit (Quit: jb)
21:45:05 <flo-retina> I see a -DDEBUG on the JarMarker command line
21:45:26 <clokep_> Me too.
21:46:25 <flo-retina> if I remove the #ifdef DEBUG in the jar.mn file, the debug.js and debug.xul files get copied
21:47:30 --> jb has joined #instantbird
21:53:31 <clokep_> :-S
21:55:41 <instantbot> florian@instantbird.org granted review for attachment 2540 on bug 2026.
21:55:46 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2026 nor, --, ---, nhnt11, ASSI, Filter out empty contacts in Services.contacts.getContacts()
21:58:02 <instantbot> florian@instantbird.org granted review for attachment 2544 on bug 2028.
21:58:07 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2028 tri, --, ---, nhnt11, ASSI, User icon overflows its rounded border
22:00:57 <-- jb has quit (Ping timeout)
22:01:29 <Mic> Good night
22:01:47 <clokep_> Ciao Mic!
22:12:13 <-- clokep_ has quit (Quit: http://www.mibbit.com ajax IRC Client)
22:19:20 <instantbot> florian@instantbird.org cancelled review?(florian@instantbird .org) for attachment 2541 on bug 1221.
22:19:25 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=1221 enh, --, ---, wnayes, ASSI, Redesign buddy tooltips
22:26:23 <-- rosonline has quit (Ping timeout)
22:26:46 --> rosonline has joined #instantbird
22:28:21 <instantbot> Check-in: http://hg.instantbird.org/instantbird/rev/b60f6cc1ddf2 - Nihanth Subramanya - Bug 2026 - Filter out empty contacts in Services.contacts.getContacts(), r=fqueze.
22:28:22 <instantbot> Check-in: http://hg.instantbird.org/instantbird/rev/dce2661c3744 - Nihanth Subramanya - Bug 2030 - About pages opened in tabs should have content privileges, r=fqueze.
22:28:23 <instantbot> Check-in: http://hg.instantbird.org/instantbird/rev/d1179d867500 - Nihanth Subramanya - Bug 2028 - User icon overflows its rounded border, r=fqueze.
22:30:59 <-- Mic has quit (Quit: Instantbird -- http://www.instantbird.com)
22:31:00 <flo-retina> Good night
22:35:10 --> wnayes has joined #instantbird
22:46:43 <instant-buildbot> build #412 of macosx-onCommit is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-onCommit/builds/412
23:05:46 <-- rosonline has quit (Quit: Instantbird 1.4 -- http://www.instantbird.com)
23:09:41 --> SCIF has joined #instantbird
23:19:58 <-- EionRobb has quit (Quit: Leaving.)
23:20:58 --> clokep has joined #instantbird
23:20:59 * ChanServ sets mode +o clokep 
23:21:37 --> EionRobb has joined #instantbird
23:24:23 <dew> hey flo-retina could you link me that example prpl again?
23:35:03 <clokep> dew: I'l get you a link in a minute.
23:35:13 <clokep> But it's on the wiki.
23:35:27 <clokep> https://wiki.instantbird.org/Instantbird:Protocols_reference dew
23:35:33 <clokep> That has a bunch of examples.
23:35:52 <instantbot> clokep@gmail.com set the Resolution field on bug 2028 to FIXED.
23:35:58 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2028 tri, --, 1.5, nhnt11, RESO FIXED, User icon overflows its rounded border
23:37:23 <instantbot> clokep@gmail.com set the Resolution field on bug 2030 to FIXED.
23:37:29 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2030 min, --, 1.5, nhnt11, RESO FIXED, About pages opened in tabs should have content privileges.
23:38:24 <instantbot> clokep@gmail.com set the Resolution field on bug 2026 to FIXED.
23:38:27 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2026 nor, --, 1.5, nhnt11, RESO FIXED, Filter out empty contacts in Services.contacts.getContacts()
23:42:09 <-- EionRobb has quit (Quit: Leaving.)
23:43:09 --> EionRobb has joined #instantbird
23:53:27 <instant-buildbot> build #431 of linux-onCommit is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/linux-onCommit/builds/431