#instantbird log on 09 07 2013

All times are UTC.

01:38:05 --> mconley has joined #instantbird
01:53:36 <-- mconley has quit (Ping timeout)
02:59:01 --> mconley has joined #instantbird
03:14:37 <-- mconley has quit (Input/output error)
03:37:10 <-- wnayes has quit (Quit: wnayes)
03:49:17 <instant-buildbot> build #963 of linux-nightly-default is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/linux-nightly-default/builds/963
03:58:59 --> mconley has joined #instantbird
04:06:22 <instant-buildbot> build #985 of macosx-nightly-default is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/985
04:36:41 <-- mconley has quit (Input/output error)
05:37:11 --> mconley has joined #instantbird
05:41:24 <-- mconley has quit (Ping timeout)
06:50:40 <instant-buildbot> build #1064 of win32-nightly-default is complete: Failure [failed compile]  Build details are at http://buildbot.instantbird.org/builders/win32-nightly-default/builds/1064
07:55:52 --> Mic has joined #instantbird
07:55:52 * ChanServ sets mode +h Mic 
08:04:22 <-- Even has quit (Input/output error)
08:15:13 --> qlum has joined #instantbird
08:30:30 --> dionisos has joined #instantbird
08:52:10 <-- dionisos has quit (Ping timeout)
09:06:05 <-- qlum has quit (Ping timeout)
09:16:51 <-- Mic has quit (Ping timeout)
10:25:24 <-- chrisccoulson has quit (Ping timeout)
11:28:26 --> qlum has joined #instantbird
11:32:15 --> aleth has joined #instantbird
11:32:15 * ChanServ sets mode +h aleth 
11:43:06 <aleth> flo-retina: I didn't know you'd packaged the profiler as an add-on! :)
11:43:55 <aleth> Afaik the gsoc project includes writing an add-on that allows one to operate the profiler, debugger, scratchpad etc remotely from FX
11:44:31 <aleth> That's what I was referring to. I'm not sure it'll make any difference now you've already written an add-on for IB...
12:01:50 --> Even has joined #instantbird
12:01:50 * ChanServ sets mode +o Even 
12:07:41 <-- Even has quit (Ping timeout)
12:14:15 <flo-retina> aleth: I have it as an add-on, but it doesn't work in nightly builds unfortunately :(
12:15:35 <flo-retina> aleth: well, I've not "written an add-on". The Gecko Profiler is by default an add-on. What I've done was just to tweak a few lines to get it to accept Instantbird (the add-on sdk has this stupid idea of hardcoding the list of existing XUL application :'() and to add Ib-specific code to add /start /stop and /profiler commands.
12:16:42 <flo-retina> my previous attempt to have a UI similar to what Tb does with buttons in the status bar (I was targeting the blist's status bar) didn't work, and I haven't been able to figure out why (actually, it worked only if the add-on was enabled after Ib was already started, so to use it I had to go to the add-on manager and disable/reenable it after each restart)
12:16:52 <flo-retina> I like the version with commands better ^^
12:17:43 <aleth> flo-retina: Btw while I wasn't following those patches, afaik qheaden was looking at using a nsITimer for yahoo pings or keepalives. Maybe using a regular interval (after x sec, check a boolean to see if there was a message in the interval) rather than constantly clearing and resetting the timeout would solve the performance problem you spotted.
12:17:49 <aleth> flo-retina: Commands sounds perfect for IB
12:18:48 <flo-retina> aleth: the problem with commands is that you need a conversation window, which usually means you need to have a connected account. That makes profiling account connections difficult
12:19:06 <flo-retina> for it's good enough to profile the UI, which is where I think most of our current performance issues are
12:19:31 <flo-retina> s/for/but/
12:19:36 <aleth> flo-retina: But you could probably trigger the command via code?
12:19:53 <flo-retina> or find something better; or whatever
12:20:11 <flo-retina> I didn't spend a huge amount of time on this; I was more focused on trying to _use_ it ;)
12:20:50 --> Even has joined #instantbird
12:20:50 * ChanServ sets mode +o Even 
12:21:19 <aleth> Right, the main interest is for the UI. And to avoid stabbing around in the semi-dark like nhnt11 at times yesterday ;) Though admittedly half the problem there was that he had to use a debug build to reproduce the issue and that's not typical anyway.
12:22:47 <aleth> I'm not convinced he should spend time on things like queueing at the socket right now if the existing patch is enough for pref'd on nightlies.
12:23:14 <flo-retina> aleth: I'm quite confused by what the next steps are
12:23:26 <-- qlum has quit (Ping timeout)
12:23:49 --> qlum has joined #instantbird
12:23:50 <aleth> I'd say review bug 2160 and the other simple followups, and get ranking landed.
12:23:53 <flo-retina> my problem is: on my debug build, things freeze for 5 minutes. On my optimize profiling build, stuff is mostly smooth and occasionally freezes for a second or two (not reliably reproducible though :-/).
12:23:59 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2160 nor, --, ---, nobody, NEW, UI lags while stats service is receiving chat rooms
12:24:35 <flo-retina> aleth: I also wonder if the bandwidth of the internet connection could make a significant difference here
12:25:01 <flo-retina> I have 24Mbps at home (where I tested Thursday night) and about 3 here (at my parents') where I tested yesterday night.
12:25:15 <aleth> I experienced a freeze during freenode due to having an error console open without noticing it. The patch in bug 2153 should fix that. Without an error console, it's a near freeze, but not for long
12:25:20 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2153 nor, --, ---, aleth, ASSI, Don't log UTF-8 conversion warnings during LIST
12:25:26 <instantbot> clokep@gmail.com granted review for attachment 2840 on bug 2150.
12:25:29 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2150 maj, --, ---, qheaden, ASSI, Conference invites don't work
12:25:30 <flo-retina> we freeze until the whole LIST has been processed is receiving the data from the server is faster than we can process it.
12:25:42 <aleth> flo-retina: I would have expected less bandwith to cause less problems as we have more time to handle things
12:25:52 <flo-retina> if we process the data fast enough to keep up with the rate at which it arrives, there's no freeze at all.
12:26:05 <aleth> Right, exactly.
12:26:21 <flo-retina> aleth: yeah, it may be the reason why yesterday on my optimized build things were smooth. I was also testing with a much (almost 10 times) slower connection
12:26:29 <instantbot> clokep@gmail.com granted review for attachment 2841 on bug 2093.
12:26:32 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2093 nor, --, ---, qheaden, ASSI, "Adding chat buddy twice" error when inviting someone to a chatroom
12:26:42 <flo-retina> so the problem is; we are changing too many variables at once, and I don't have confidence in any of the measurement we made.
12:27:17 <aleth> I am concerned about relying on debug builds for figuring out what needs optimizing.
12:27:31 <flo-retina> I'm not relying on them
12:27:50 <flo-retina> I just used one thursday because I didn't have an optimized build around
12:28:04 <aleth> The question I have is whether on low-spec machines, doing /list (no awesometab involved) freezes the UI
12:28:30 <flo-retina> aleth: on the other hand, I don't think it's acceptable to freeze for more than a few seconds even on a debug build. Thursday it was literally frozen for 5 minutes
12:28:41 <flo-retina> aleth: that seems likely
12:28:42 <aleth> That would mean we do need to do some throttling at the socket level, to avoid being overloaded with incoming messages faster than we can handle them
12:29:01 <flo-retina> aleth: and there's another can of worms we haven't opened yet: what happens if the server tab is enabled and one opens the awesometab
12:29:52 <aleth> flo-retina: Hmm yes. Never tried that.
12:30:12 <flo-retina> aleth: I wonder if we shouldn't somehow add a global service to handle throttling of long JS operations.
12:30:27 <instantbot> clokep@gmail.com denied review for attachment 2843 on bug 2153.
12:30:28 <flo-retina> we can't replicate the current hack everywhere; it won't work several times at once.
12:30:29 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2153 nor, --, ---, aleth, ASSI, Don't log UTF-8 conversion warnings during LIST
12:31:17 <aleth> flo-retina: Interesting idea! That may be the cleanest way to do it
12:31:50 <aleth> Poor man's threading...
12:31:58 <flo-retina> aleth: another optimization I would like to try today is to get rid of nsIClassInfo on the RoomInfo object, and implement QueryInterface directly in the RoomInfo prototype, rather than through several levels of prototype inheritance. The time we spend in QueryInterface and getInterfaces calls in our profiles is IMHO very excessive.
12:32:11 * aleth tries opening the awesometab on freenode with a servertab
12:32:21 <flo-retina> good bye aleth :-P
12:32:49 <aleth> Actually it does not freeze
12:32:54 <aleth> Only a severe stutter :D
12:33:25 <aleth> However, the servertab is still adding messages (progress bar) :P
12:33:31 <flo-retina> ahah!
12:33:33 --> clokep_wp8 has joined #instantbird
12:33:42 <flo-retina> good thing we have a progress bar there :-P
12:33:48 <flo-retina> clokep_wp8: Good morning :)
12:34:01 <aleth> So I don't think we need worry about the servertab :)
12:34:29 <clokep_wp8> Fyi, i don't understand this "queueing at the socket" that seems VERY wrong to me.
12:35:07 <clokep_wp8> Hello flo-retina. :-) My friends sleep late, figured I'd do reviews!
12:35:24 <flo-retina> heh :)
12:35:46 <aleth> flo-retina: I don't know enough about interfaces to know how to optimize the QueryInterface/getInterfaces calls.
12:35:49 <flo-retina> clokep_wp8: I'm pretty sure it makes some sense. But it seems wrong to me to do it without any profiling before to check that it's actually the culprit ;).
12:36:17 <clokep_wp8> Handling thinga fri
12:36:22 <aleth> Right, we should profile /list without a servertab on freenode.\
12:36:34 <flo-retina> optimizing random stuff that isn't causing the actually performance issues is very close to code obfuscation IMHO ;)
12:36:48 <clokep_wp8> Handling things from a socket seems like a perfect place to use threads. :'(
12:36:50 <aleth> clokep_wp8: Good morning :)
12:37:47 <flo-retina> clokep_wp8: the stuff we actually want is a way for JS code to execute for a while and be able to stop automatically if it's about to cause UI unresponsiveness
12:37:59 <flo-retina> I'm pretty sure gloda has a significant amount of confusing code to handle that
12:38:30 <clokep_wp8> :-) Can we steal it? :-P
12:38:35 <flo-retina> no :-P
12:39:00 <flo-retina> I abuses generators everywhere, and during the 'short' experience I had with it, that made debugging very painful
12:39:18 <flo-retina> I would like us to do something a little bit less magical, but way easier to understand
12:41:08 <flo-retina> s/I abuses/It abuses/
12:41:12 <flo-retina> typing is hard these days :(
12:44:20 <-- clokep_wp8 has quit (Connection reset by peer)
12:47:28 <instantbot> aleth@instantbird.org requested review from clokep@gmail.com for attachment 2845 on bug 2153.
12:47:31 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2153 nor, --, ---, aleth, ASSI, Don't log UTF-8 conversion warnings during LIST
12:51:50 <aleth> I'm unsure about that last change...
12:52:43 <aleth> I think I would prefer one DEBUG per correctly handled message.
12:57:25 <flo-retina> ah, we log the raw message after the unicode convert already?
12:57:37 <aleth> Yes.
13:04:03 <flo-retina> that seems suboptimal indeed
13:06:53 * aleth thinks he's going to provide an alternative patch
13:07:27 <flo-retina> extra lols ftw :-P
13:07:50 <aleth> I like to provide a choice of lols :)
13:15:20 --> Mic has joined #instantbird
13:15:20 * ChanServ sets mode +h Mic 
13:35:39 <Mic> Hi
13:36:39 <aleth> Hi :)
13:36:50 --> nhnt11 has joined #instantbird
13:37:37 <nhnt11> Good evening
13:39:06 --> dew has joined #instantbird
13:40:18 <-- dew1 has quit (Ping timeout)
13:40:22 <-- Mic has quit (Quit: Instantbird -- http://www.instantbird.com)
13:40:46 <-- nhnt11 has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
13:40:50 --> nhnt11 has joined #instantbird
13:40:58 --> Mic has joined #instantbird
13:40:58 * ChanServ sets mode +h Mic 
13:42:26 <nhnt11> flo-retina: http://log.bezut.info/instantbird/today/#m73 I wanted to make the /list command use the room info callback API too, so that the server tab isn't spammed by the awesometab
13:42:30 * nhnt11 should file a bug
13:42:47 <-- Mic has quit (Quit: Instantbird -- http://www.instantbird.com)
13:43:42 --> Mic has joined #instantbird
13:43:42 * ChanServ sets mode +h Mic 
13:43:43 <nhnt11> http://log.bezut.info/instantbird/today/#m75 I was wondering about this during the discussion about two conversations loading at the same time, but I didn't know it would be feasible enough that flo-retina would wonder about it too :P
13:44:14 <aleth> nhnt11: Or just disable writing to the servertab if it's an automatic LIST
13:44:30 * nhnt11 realizes he doesn't have Not Today installed anymore
13:44:36 <nhnt11> Is it still broken?
13:44:42 <nhnt11> aleth: How would we know if it was automatic?
13:44:51 <Mic> nhnt11: I haven't fixed it yet :(
13:45:26 <Mic> I have a new development add-on though, maybe it will be useful for some of you:
13:45:27 <Mic> https://addons.instantbird.org/en-US/instantbird/addon/355/
13:45:27 <aleth> nhnt11: List of callbacks isn't empty?
13:46:02 <nhnt11> What if a /list is done while the callbacks list isn't empty? :P
13:46:03 <Mic> It clears the cache as soon as an add-on is disabled. That means you can just disable/enable an add-on in development to load the latest version.
13:46:09 <nhnt11> edge case though I guess
13:46:37 <nhnt11> Mic: Cool, checking it ou
13:46:38 <nhnt11> out*
13:46:57 <Mic> It's only useful if you're using proxy files.
13:47:02 <aleth> Nice!
13:47:06 <nhnt11> Yeah I figured
13:47:31 <Mic> Thanks clokep, for the clear cache code snippet that you posted not long ago! :)
13:48:58 <Mic> It's extremely simple :)
13:49:05 <Mic> http://pastebin.instantbird.com/323792
13:50:59 <nhnt11> :)
13:51:29 * nhnt11 isn't sure what he should/is expected to work on next
13:52:17 <aleth> Are you blocked by reviews?
13:53:01 <nhnt11> aleth: Nope. I was wondering if there's any optimization stuff I should keep looking at, or start addressing your review comments on bug 2143
13:53:05 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2143 enh, --, ---, nhnt11, NEW, Stats service should maintain statistical data for conversations and use it for sorting.
13:53:45 <aleth> Up to you... maybe there are some straightforward followups you could fix if you prefer
13:53:55 <-- qlum has quit (Ping timeout)
13:54:19 --> qlum has joined #instantbird
13:54:32 <aleth> The stats patch didn't seem far from being ready though :)
13:54:34 <flo-retina> nhnt11: finding a way to not display automatic LIST in the server tab sounds useful (as a thing to work on soonish)
13:54:34 <nhnt11> right, I should do the get default chat room field values i guess
13:54:44 <nhnt11> ok
13:54:49 <flo-retina> ah yes, that one too!
13:55:41 <nhnt11> brb
14:02:47 * nhnt11 has to leave in half an hour and challenges himself to get patches uploaded for both things
14:14:58 <nhnt11> aleth: At LISTEND, if there are no callbacks, we still return true right? Since technically, we "handled" it by not doing anything
14:15:45 <aleth> Yes, otherwise you will get an unhandled IRC message warning.
14:16:52 <nhnt11> aleth: I really think we should change the /list command to use the api, because by bypassing the api it doesn't set this._pendingList and so on (i.e. causes problems)
14:17:07 <nhnt11> So if someone does a /list and opens an awesometab, the results likely won't be pretty
14:17:21 <aleth> nhnt11: Using the API sounds cleaner anyway.
14:17:26 <nhnt11> Yeah
14:18:56 --> aleth_dev has joined #instantbird
14:19:41 <-- aleth_dev has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
14:19:59 <-- dew has quit (Ping timeout)
14:20:20 --> mconley has joined #instantbird
14:23:39 <instantbot> aleth@instantbird.org requested review from clokep@gmail.com for attachment 2846 on bug 2153.
14:23:45 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2153 nor, --, ---, aleth, ASSI, Make UTF-8 conversion warnings less noisy
14:27:27 <nhnt11> Bah, I have to go
14:27:36 <nhnt11> I'll be back in ~3 hours I guess.
14:27:39 <-- nhnt11 has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
14:47:08 <-- Mic has quit (Quit: Instantbird -- http://www.instantbird.com)
15:31:46 <instantbot> aleth@instantbird.org denied review for attachment 2844 on bug 2160.
15:31:49 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2160 nor, --, ---, nobody, NEW, UI lags while stats service is receiving chat rooms
15:38:18 --> nhnt11_phone has joined #instantbird
15:40:44 <nhnt11_phone> aleth: I didnt include the enumerator in that patch because when I profiled, it saw more red /with/ the enumerator code than without it
15:41:04 <nhnt11_phone> This was very surprising, so i figured i should do more testing before including it in the patch
15:41:17 <aleth> nhnt11_phone: OK, that /is/ surprising.
15:41:27 <nhnt11_phone> Theoretically the results i got werr totally wrong.
15:41:46 <aleth> Leave it as it is for now then, but it would be great to understand what is going on there.
15:41:59 <nhnt11_phone> So I think i was doing something wrong and therefore excluded it for now
15:42:01 <nhnt11_phone> Yeah
15:43:14 <-- nhnt11_phone has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com ))
16:07:50 <-- mconley has quit (Input/output error)
16:09:50 <instantbot> florian@instantbird.org denied review for attachment 2844 on bug 2160.
16:09:53 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2160 nor, --, ---, nobody, NEW, UI lags while stats service is receiving chat rooms
16:33:06 --> wnayes has joined #instantbird
16:57:39 --> dew has joined #instantbird
17:14:00 --> nhnt11 has joined #instantbird
17:15:25 --> mconley has joined #instantbird
17:16:27 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
17:17:26 <nhnt11> flo-retina: With 25 channels per batch, all 25 were processed in 40ms so there was kinda no point in the queuing. Changing 250 to 25 in the first place was like a workaround to the problem that queuing fixes.
17:17:58 <-- mconley has quit (Ping timeout)
17:17:59 <flo-retina> nhnt11: the batching itself feels like a workaround
17:18:14 <flo-retina> if stuff was fast enough on the other side, we could potentially send each channel individually
17:18:39 <aleth> The batching in combination with an enumerator should save us a lot of wrappers. I thought that was the motivation for keeping it.
17:18:57 <flo-retina> (well, the ideal thing to do would be to send a batch that corresponds to all the data we have already received on the socket; so maybe that means an executeSoon in the irc code, and sending everything available after that)
17:19:09 <flo-retina> aleth: the enumerator doesn't save us any wrapper
17:19:21 <flo-retina> aleth: it just creates them lazily
17:19:37 <aleth> flo-retina: Ah, thanks. I misunderstood that then.
17:20:11 <nhnt11> As I understand, the enumerator prevents all the wrappers being created while returning the array
17:20:12 <aleth> I was under the impression you only needed one and getnext transferred data through it.
17:20:19 <flo-retina> nhnt11: this is correct.
17:20:42 <flo-retina> it lets the wrappers be created when we actually use the object, rather than when we pass the array around
17:20:54 <nhnt11> right
17:21:53 <flo-retina> nhnt11: "all 25 were processed in 40ms so there was kinda no point in the queuing." you make this sound like a bug. Queuing is not a goal, it's a workaround. If you don't need it on your fast machine, that's great; not something negative.
17:22:36 <nhnt11> Good point
17:22:38 <aleth> flo-retina, nhnt11: In that case it seems to me we can do without the enumerator and go back to batches of 25 (or possibly less)
17:23:09 * flo-retina doesn't know what is being discussed / what problem we are trying to fix.
17:23:37 <nhnt11> Basically I think we all agree that the patch is fine as it is, if I change 250 back to 25 and address your comments
17:23:50 <flo-retina> ok
17:24:00 * flo-retina trying to look at the QueryInterface thing nowish
17:24:04 <aleth> (I asked in my review comment why the enumerator was gone, that's what I was referring to)
17:24:20 <flo-retina> I'll first do 2-3 profiles without changes, to see if things look relatively reproducible or not
17:24:31 <nhnt11> Right so thinking about it, it's not surprising that the enumerator didn't help in my profiles
17:24:49 <nhnt11> I guess creating the enumerator was just useless overhead
17:24:51 <aleth> nhnt11: yup.
17:25:08 <flo-retina> nhnt11: if you didn't push the enumerator to the queue and pushed instead its element; it was just overhead
17:26:19 <flo-retina> int main(void) {while(1);return 0;}
17:26:24 <nhnt11> :)
17:26:26 <flo-retina> let's see if this changes my profiles ;)
17:26:31 <aleth> :D
17:26:37 * nhnt11 used that too
17:27:52 <nhnt11> flo-retina: It didn't push my cpu's to a full 100% though. I wonder if putting in some basic arithmetic in the loop would help
17:28:40 <aleth> Calculate some logarithms of random numbers ;)
17:29:09 <flo-retina> nhnt11: how many times did you start it?
17:29:14 <nhnt11> 8 times
17:30:05 <flo-retina> these don't take 100% CPU because the OS takes some CPU
17:30:20 * aleth wonders how that while loop can't take all the CPU the OS will allow it
17:30:21 <flo-retina> top shows 0% idle CPU
17:30:58 <nhnt11> I would expect one or two instances to be at 97% because of the OS, but not all...
17:30:59 <nhnt11> whatever
17:32:00 <-- flo-retina has quit (Ping timeout)
17:32:01 <nhnt11> |int main(void) {while(1) 1+1; return 0;}| takes 100% ;)
17:33:03 <nhnt11> All my cores are above 99% now
17:33:07 --> florian has joined #instantbird
17:33:36 <-- qlum has quit (Ping timeout)
17:34:04 --> qlum has joined #instantbird
17:34:50 --> flo-retina has joined #instantbird
17:34:50 * ChanServ sets mode +qo flo-retina flo-retina 
17:34:56 <-- florian has quit (Ping timeout)
17:36:20 --> florian has joined #instantbird
17:36:38 <-- flo-retina has quit (Ping timeout)
17:37:52 <-- florian has quit (Connection reset by peer)
17:45:45 --> florian has joined #instantbird
17:46:00 --> flo has joined #instantbird
17:46:01 * ChanServ sets mode +qo flo flo 
17:47:12 <flo> the wifi stopped usefully working on my retina macbook. I wonder if this is related to heating the 8 cores, but that makes profiling anything quite difficult ;).
17:47:25 --> flo-retina has joined #instantbird
17:47:25 * ChanServ sets mode +qo flo-retina flo-retina 
17:47:32 <flo> ah :)
17:50:19 <flo> Instantbird receiving LIST results doesn't take more than 13% of the CPU
17:50:27 <flo> results likely arrive way too slowly :(
17:53:54 --> mconley has joined #instantbird
17:53:54 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
17:54:32 <-- mconley has quit (Input/output error)
17:54:50 --> florian has joined #instantbird
18:00:39 <flo-retina> I can't do any useful LIST profiling, so I'm profiling the display of a large log instead
18:02:25 <flo-retina> Bubbles seems to do an insane amount of clearTimeout/setTimeout
18:04:17 <flo-retina> and that seems quite pointless!
18:04:36 <flo-retina> I'm looking at the code in updateLastInsertTime
18:04:49 <flo-retina> what's the point of cancelling a pending timeout to create another timeout of 0ms?
18:05:32 <flo-retina> ah, that's in case the existing timeout was for a non-0 time
18:05:46 <flo-retina> ok, plenty of room for optimization here
18:06:49 <nhnt11> Optimize all the things! :)
18:15:16 <-- aleth has quit (Quit: Ciao)
18:15:22 --> aleth has joined #instantbird
18:15:22 * ChanServ sets mode +h aleth 
18:16:36 <-- aleth has quit (Quit: Ciao)
18:16:39 --> aleth has joined #instantbird
18:16:39 * ChanServ sets mode +h aleth 
18:20:20 <-- aleth has quit (Quit: Ciao)
18:20:23 --> aleth has joined #instantbird
18:20:24 * ChanServ sets mode +h aleth 
18:21:28 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
18:21:49 --> florian has joined #instantbird
18:22:52 <-- aleth has quit (Quit: Ciao)
18:22:55 --> aleth has joined #instantbird
18:22:55 * ChanServ sets mode +h aleth 
18:26:27 --> chrisccoulson has joined #instantbird
18:29:01 <instantbot> New Instantbird (UI) bug 2161 filed by florian@instantbird.org.
18:29:02 <instantbot> florian@instantbird.org requested review from aleth@instantbird.o rg for attachment 2847 on bug 2161.
18:29:04 <flo-retina> not a huge win, but easy wins are still worth doing
18:29:07 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2161 tri, --, ---, nobody, NEW, Bubbles' updateLastInsertTime function wastes a lot of time setting and clearing timeouts
18:29:16 <flo-retina> even if it takes only 2% off the total conversation display time
18:31:57 <-- dew has quit (Ping timeout)
18:40:52 <instantbot> aleth@instantbird.org granted review for attachment 2847 on bug 2161.
18:40:55 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2161 tri, --, ---, nobody, NEW, Bubbles' updateLastInsertTime function wastes a lot of time setting and clearing timeouts
18:46:26 <-- aleth has quit (Quit: Ciao)
19:14:57 --> mconley has joined #instantbird
19:33:18 <-- Suiseiseki has quit (Ping timeout)
19:34:33 --> Suiseiseki has joined #instantbird
19:38:01 <-- mconley has quit (Input/output error)
19:57:29 <-- qlum has quit (Ping timeout)
19:57:51 --> qlum has joined #instantbird
20:09:10 --> mconley has joined #instantbird
20:13:13 <-- florian has quit (Ping timeout)
20:14:20 <-- flo-retina has quit (Ping timeout)
20:15:54 <flo> the wifi stopped working _again_ :(
20:16:57 --> florian has joined #instantbird
20:17:08 --> flo-retina has joined #instantbird
20:17:08 * ChanServ sets mode +qo flo-retina flo-retina 
20:19:35 <nhnt11> flo-retina: Even without loading the CPUs? :(
20:19:42 <flo-retina> yeah
20:20:14 <flo-retina> maybe something somewhere in the house moved and made the signal awful between the modem/router and my desk
20:20:28 * nhnt11 is having problems
20:20:32 * flo-retina used to have RJ45 wires all other the house
20:20:44 <nhnt11> I thought making the list command use the api would be simple
20:20:59 <nhnt11> But I keep getting "callback.onRoomInfoAvailable is not a function"
20:21:00 <nhnt11> :(
20:21:08 * nhnt11 will pastebin a diff soon
20:22:09 <nhnt11> I have a feeling I'm not using the correct "account" object...
20:22:44 <nhnt11> But then how would the list be happening at all...
20:22:46 * nhnt11 is confused
20:23:52 <nhnt11> http://pastebin.instantbird.com/324227
20:23:55 <nhnt11> flo-retina: ^
20:24:02 <nhnt11> Is there something obviously wrong in that? :-/
20:24:44 <nhnt11> Oh
20:24:53 * nhnt11 feels a bit foolish
20:25:19 <nhnt11> Wait but that doesn't explain the TypeError..
20:25:33 <nhnt11> I'm using the wrong conversation object
20:25:50 <nhnt11> (I need to get the servertab conversation and use that)
20:27:03 <flo-retina> nhnt11: the account you are using here is the JS object of the ircAccount, without xpconnect wrapper.
20:27:21 <flo-retina> so xpconnect can't do any magic with the function keyword on the callback interface
20:27:30 <nhnt11> Oh
20:27:33 <flo-retina> and you can't pass a function as a parameter to requestRoomInfo
20:27:46 <flo-retina> you need to add {onRoomInfoAvailable: ... }
20:28:10 <nhnt11> So should I be using an object or trying to get it with the xpconnect wrapper?
20:28:13 * nhnt11 guesses object
20:28:14 <nhnt11> ok
20:28:28 <flo-retina> I think I replied before you asked ;)
20:28:31 <nhnt11> yeah
20:28:36 <flo-retina> (unless the wifi delayed my messages very significantly :-S)
20:28:49 <nhnt11> nah
20:29:04 <nhnt11> I had already typed most of the message so I finished
20:29:05 <nhnt11> it
20:29:44 * nhnt11 should've guessed what was happening considering it says aConv.wrappedJSObject right there.
20:31:23 <nhnt11> flo-retina: Should I display a message saying "please enable the server tab" or whatever if the server tab is disabled?
20:32:48 <flo-retina> nhnt11: maybe even if it's enabled
20:33:00 <flo-retina> as it's "surprising" that the results of the command don't appear where the command was typed
20:33:14 <flo-retina> nhnt11: but maybe if the server tab isn't enabled the command should just fail
20:33:22 <flo-retina> (hmm, or open the server tab automatically?)
20:33:37 <nhnt11> I think the server tab should be force opened
20:34:16 <flo-retina> that makes some sense
20:39:53 <nhnt11> Hmm, so it's working but they're not showing up as system messages
20:40:08 <flo-retina> how are they displayed?
20:41:35 <nhnt11> flo-retina: http://puu.sh/4lxKC.png
20:44:14 <nhnt11> flo-retina: Do we care about optimization for this right now? It's slow as hell.
20:44:21 <flo-retina> nhnt11: btw, displaying as system messages may not be actually wanted
20:44:35 <flo-retina> nhnt11: but if you don't display them as system messages, you should display them as regular messages
20:44:35 <nhnt11> True, they're greyed out. I had the same thought.
20:44:49 <nhnt11> But considering that I specified "system", I would have expected them to be system messages here
20:44:54 <flo-retina> depends what you mean by "optimization" ;)
20:45:11 <nhnt11> flo-retina: Making it so that I can scroll and.. stuff.
20:45:23 <flo-retina> stuff? :-P
20:45:33 <-- Even has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
20:47:34 <nhnt11> Yeah. You know, like have conversations and talk to people and.. stuff
20:47:35 <nhnt11> :P
20:47:46 <nhnt11> have conversations and talk to people are the same thing, meh
20:48:08 <flo-retina> and that's not included in "stuff", as you needed to add it again :-P
20:48:36 <nhnt11> flo-retina: Don't tell me that having conversations is all Instantbird lets you do :P
20:48:53 <flo-retina> it also lets me spend my nights optimizing stuff :-P
20:49:13 <nhnt11> And dragging around windows just because you can since it doesn't lag... oh wait.
20:49:27 --> Even has joined #instantbird
20:49:27 * ChanServ sets mode +o Even 
20:49:35 * nhnt11 gets back to work
20:49:35 <flo-retina> dragging windows even of frozen applications doesn't lag on OS X :-P
20:49:55 * nhnt11 shrugs.
20:50:04 <nhnt11> Let's go back to the scrolling thing.. :P
20:50:15 <nhnt11> ok ok
20:52:40 <flo-retina> if anybody's curious, this is the stuff I'm currently poking at: http://pastebin.instantbird.com/324240
20:59:22 * nhnt11 thinks Instantbird 1.5 will be pretty cool
20:59:29 <nhnt11> a pretty cool update*
21:00:36 <flo-retina> yeah :
21:00:37 <flo-retina> )
21:00:58 <flo-retina> and it will be even better (or shinier) if we manage to use webrtc ;)
21:11:30 --> dew has joined #instantbird
21:16:28 <-- mconley has quit (Input/output error)
21:45:48 <-- florian has quit (Input/output error)
21:46:06 --> florian has joined #instantbird
21:46:54 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:47:26 --> florian has joined #instantbird
21:47:33 <-- Even has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:48:13 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:48:29 --> florian has joined #instantbird
21:48:59 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:52:12 --> florian has joined #instantbird
21:53:36 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
21:53:58 --> florian has joined #instantbird
21:55:10 <flo-retina> alright, my instantbird is now able to display messages again :)
21:55:31 * flo-retina is tinkering in convbrowser.xml and had broken a few things before
22:02:39 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:02:57 --> florian has joined #instantbird
22:03:56 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:04:08 --> florian has joined #instantbird
22:07:16 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:07:30 --> florian has joined #instantbird
22:09:18 <nhnt11> flo-retina: By the way, not making LIST results system messages has the effect of giving them a decent score with the current state of the stats patch
22:10:11 <flo-retina> you mean give the server tab a decent score?
22:10:18 <nhnt11> Yeah
22:10:25 <flo-retina> maybe we should exclude it?
22:10:33 <nhnt11> I guess that's something to do in the stats patch though
22:10:33 <nhnt11> yeah
22:10:36 <flo-retina> my patch _almost_ works
22:10:44 <flo-retina> the freeze when opening a large log is gone
22:10:53 <nhnt11> Excellent! :)
22:10:54 <flo-retina> but the progressbar doesn't disappear when the log is fully displayed
22:11:02 <flo-retina> and I've got a JS error in the console
22:11:03 <nhnt11> Ah
22:11:06 <flo-retina> (and I'm puzzled by it)
22:16:53 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:17:13 --> florian has joined #instantbird
22:18:54 <flo-retina> uh, actually the progress bar sometimes gets hidden
22:18:57 <flo-retina> that's strange :-S
22:19:03 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:19:54 --> florian has joined #instantbird
22:21:06 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:21:26 --> florian has joined #instantbird
22:23:58 <instantbot> New Core - IRC bug 2162 filed by nhnt11@gmail.com.
22:24:00 <instantbot> nhnt11@gmail.com requested review from aleth@instantbird.o rg for attachment 2848 on bug 2162.
22:24:05 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2162 nor, --, ---, nobody, NEW, IRC's /list command should use the requestRoomInfo API
22:25:15 --> jb has joined #instantbird
22:29:26 --> nhnt11-testing has joined #instantbird
22:29:28 <-- nhnt11-testing has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:30:06 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
22:30:55 <instantbot> nhnt11@gmail.com requested review from aleth@instantbird.o rg for attachment 2849 on bug 2157.
22:30:58 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2157 nor, --, ---, nhnt11, NEW, Call getChatRoomDefaultFieldValues lazily for awesometab roomInfos
22:31:00 --> florian has joined #instantbird
22:32:19 <flo-retina> heh, poking at this with a debug build revealed with a JS warning that I had a silly typo. I removed 2 characters and now everything works :).
22:32:33 <nhnt11> :)
22:33:00 * flo-retina fires the profiler again
22:34:23 <flo-retina> ahah, the part that used to freeze before the beginning of the display of the conv now takes only 0.6% of the total time
22:34:30 <flo-retina> (we still have the sync disk I/O :()
22:34:42 <nhnt11> :) :(
22:35:13 <nhnt11> OS.File is pretty neat
22:35:31 <nhnt11> (in that it wasn't at all a pain to use as I expected)
22:35:33 <-- jb has quit (Ping timeout)
22:35:57 <flo-retina> nhnt11: :)
22:36:19 --> mconley has joined #instantbird
22:36:25 <flo-retina> nhnt11: the issue here will be that the code expects a value to be returned synchronously ;)
22:36:56 <nhnt11> Yeah, OS.File may not be a pain but converting sync stuff to async /is/.
22:40:02 <flo-retina> apart from QueryInterface, and making the I/O async, I don't see anything that can obviously be optimized in the log display profile
22:40:10 <flo-retina> so I'll decide it's time to file a bug, attach a patch, and go to bed :)
22:40:12 * nhnt11 doesn't know how to show a Warning in the error console
22:42:24 <flo-retina> WARN?
22:43:06 <nhnt11> flo-retina: Is that always available to use?
22:43:22 <-- qlum has quit (Quit: Getting the <censored> out.)
22:43:28 <nhnt11> I couldn't find where that function is defined :/
22:45:42 <nhnt11> flo-retina: Should I be using initLogModule in imXPCOMUtils?
22:47:07 <instantbot> New Instantbird (UI) bug 2163 filed by florian@instantbird.org.
22:47:08 <flo-retina> possibly
22:47:08 <instantbot> florian@instantbird.org requested review from aleth@instantbird.o rg for attachment 2850 on bug 2163.
22:47:09 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2163 min, --, ---, florian, NEW, Displaying a large conversation log freezes the UI for a while before the first messages get display
22:47:20 <flo-retina> from where do you want to put a warning in the console?
22:47:31 <nhnt11> Stats service log sweeper
22:47:55 <flo-retina> you likely need initLogModule, yes
22:48:11 * flo-retina hopes that patch looks reasonable
22:51:21 <-- mconley has quit (Input/output error)
22:52:06 <flo-retina> nhnt11: I think I would also r? clokep on bug 2162
22:52:10 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2162 nor, --, ---, nobody, NEW, IRC's /list command should use the requestRoomInfo API
22:52:37 <nhnt11> Ah yeah ok
22:53:24 <instantbot> nhnt11@gmail.com requested review from clokep@gmail.com for attachment 2848 on bug 2162.
22:53:43 <flo-retina> and bug 2157 is likely f- from me.
22:53:47 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=2157 nor, --, ---, nhnt11, NEW, Call getChatRoomDefaultFieldValues lazily for awesometab roomInfos
22:54:46 <flo-retina> that patch seems to make the assumption that the prplIChatRoomFieldValues object can be created from the room's name.
22:55:38 <nhnt11> flo-retina: That's how getChatRoomDefaultFieldValues works...
22:55:51 <nhnt11> hmm
22:56:02 <nhnt11> are you saying aDefaultChatName needn't be the name in the RoomInfo?
22:56:05 <flo-retina> *default* in that name means "what you have in the structure before the data has been filed"
22:56:36 <nhnt11> So I need to have another defaultChatName attribute in prplIRoomInfo
22:56:51 <flo-retina> no
22:57:01 <flo-retina> you need prplIChatRoomFieldValues
22:57:14 <flo-retina> and it should be implemented as a lazy getter by the IRC code
23:00:09 <nhnt11> I don't get it
23:00:10 <flo-retina> (btw, I'm not surprised that you misunderstood this API; it's awful, so don't feel bad about it :))
23:00:36 <nhnt11> If prplIRoomInfo still needs a prplIChatRoomFieldValues attribute, how can it be gotten lazily?
23:06:07 <flo-retina> nhnt11: something like this: http://pastebin.instantbird.com/324405
23:07:24 <flo-retina> nhnt11: and you also need to ensure the stats service doesn't call the getter before we actually call createConversation
23:08:32 <nhnt11> flo-retina: I'm confused by line 18
23:08:45 <nhnt11> Is that supposed to be there?
23:09:09 <nhnt11> (other than that, I get it now, thanks)
23:10:03 <flo-retina> no, it's not! :)
23:10:03 <flo-retina> sorry
23:10:49 <flo-retina> "this.getChatRoomDefaultFieldValues" at line 22 wouldn't work either. You need the account instead of "this"
23:11:04 <flo-retina> this wasn't a real patch; just a way to explain what I had in mind faster than with plenty of words
23:11:04 <nhnt11> Yeah
23:11:16 <nhnt11> No worries, I understand the concept
23:11:46 <nhnt11> I'm trying to figure out the best way to make sure we don't call the lazy getter until necessary
23:11:59 <flo-retina> just put a dump in it
23:12:03 <flo-retina> and check if you are calling it ;)
23:12:32 <nhnt11> What? Aren't we sure to be calling it if we store it somehow?
23:12:46 <flo-retina> you don't want to "store it"
23:13:12 <nhnt11> Either I need to store the RoomInfo object, or find another way to keep the getter without calling it
23:13:14 <flo-retina> you likely want to store the RoomInfo object in your PossibleConversation object
23:13:28 <nhnt11> Yeah
23:13:34 <flo-retina> and have the attribute of the PossibleConversation just forward to the RoomInfo getters
23:13:40 <flo-retina> (other attributes may also be getters)
23:13:41 <nhnt11> Yep
23:15:39 <flo-retina> Good night
23:15:44 <nhnt11> Good night
23:17:02 --> mconley has joined #instantbird
23:19:41 <-- florian has quit (Quit: Instantbird 1.5a1pre -- http://www.instantbird.com)
23:38:53 <-- nhnt11 has quit (Ping timeout)
23:38:57 --> nhnt11 has joined #instantbird
23:39:27 <-- mconley has quit (Input/output error)