#instantbird log on 12 10 2010

All times are UTC.

00:02:41 <zachlr> update nightly builds every week or so.  I assume ib doesn't auto update for non-release versions.
00:02:56 <clokep> Yes it does.
00:03:00 <clokep> Nightly builds update nightly.
00:03:04 <clokep> Automatically.
00:03:10 <zachlr> Oh, really?  I didn't know that.
00:03:12 <clokep> (As long as a nightly was built. :))
00:03:25 <zachlr> Well I don't even need to worry about it then :)
00:04:30 <Mic> If you don't want an update each day just make sure to set it up to ask if it should update
00:04:42 <Mic> Have a look at the advanced preferences then
00:05:07 <zachlr> Presumably that's the only way to do it, since the file on the ftp site hasn't been updated since last year, according to the modified date.
00:05:11 <clokep> Mine usually just updates fire thing in the morning, which works well for me.
00:05:37 <-- micahg has quit (Ping timeout)
00:05:38 <clokep> The file on the ftp site is dated as today?
00:05:53 <Mic> I'm frequently trying things on mine so automatic updates would only interfere
00:06:09 <clokep> My developer laptop I update manually. :)
00:06:26 <zachlr> I see.  If I'd known it was that easy I wouldn't have put it off so long. 
00:06:51 <clokep> Put what off? Updating? Running nightlys?
00:07:10 <zachlr> installing the nightly build
00:07:16 <zachlr> vs the release
00:10:04 <zachlr> should I install the nightly and replace my current version, or in addition to the current one?
00:10:23 <clokep> I've been using the nightly for...ever...pretty much.
00:10:24 <Mic> At the moment you can even run them on the same profile
00:11:08 <Mic> Some extension are ready for nightly builds only, so they won't run on the release
00:11:34 <Mic> I think I have .. four or five copies of instantbird installed
00:11:39 <clokep> And some must be forced on nightlies. :)
00:11:56 <Mic> yes, indeed
00:12:07 <zachlr> what's that mean?
00:12:56 <Mic> Some extension will work with the nightly builds even though they're not officially compatible
00:13:27 <zachlr> ah, okay
00:13:33 <Mic> Some messagestyle themes as it seems
00:13:53 <zachlr> I've never actually used any of the themes
00:14:05 <clokep> Me neither.
00:14:13 <clokep> I use a lot of extensions though...
00:14:19 <Mic> I changed from simple to bubbles recently
00:14:26 <Mic> Looks quite ok
00:14:32 <zachlr> There aren't that many extensions availiable are there?
00:14:44 <clokep> There's a good amount.
00:14:47 <clokep> Wait a second....
00:14:51 <clokep> bug 500
00:14:57 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=500 nor, --, ---, nobody, NEW, Improve Join Chat menu
00:14:58 <clokep> Bah. my autolink extension isn't working....
00:15:01 <Mic> ?
00:15:27 <clokep> Didn't link that for me.
00:15:50 <Mic> LinkBugzilla worked :P
00:16:18 <Mic> I could make that restartless maybe
00:16:57 <clokep> I have 12 installed, 2 disabled.
00:17:09 <clokep> Yes. Something must be broken in it...I don't feel like looking at it right now.
00:17:30 <Mic> I should really release a version of buddy status compatible with the nightlies
00:17:48 <zachlr> I just use the Tray and Status extensions
00:18:10 <Mic> Buddy Status doesn't work with the nightlies at the moment
00:18:15 <clokep> Yes, up the minimum version if you don't want it compatibile w/ both Mic.
00:18:34 <Mic> I should rather reduce the max version atm
00:19:14 <Mic> I have a working version here but it's rewritten to a good part
00:19:21 <Mic> and I haven't really debugged it yet
00:19:29 <clokep> Ah OK.
00:19:41 <clokep> I have 0.2 installed, but disabled it since i don't really like it. :)
00:19:57 <Mic> What don't you like about it?
00:20:24 <zachlr> wait.  I have them both installed, but it's telling me just MinimizeToTray is incompatable?
00:20:24 <clokep> I don't like things popping up and annoying me when people sign on. ;)
00:20:31 <clokep> Aka I don't like the whole idea of it haha.
00:20:40 <clokep> But I understand a lot of people do. Almost all my friends have similar things.
00:20:51 <clokep> Oh. MinimizeToTray is definitely not compatible btw.
00:20:56 <Mic> zachlr: it's compatible by version number but won't work 
00:21:35 <Mic> well, if you don't mind installing an experimental thing I could upload my development version
00:21:45 <zachlr> oh, okay, so they're both incompatable in some way?
00:23:35 <Mic> Sorry, no idea about MinimizeToTray
00:23:50 * zachlr is now using Instantbird Nightly! :)
00:23:58 <clokep> MinimizeToTray is not compatible. No one has made it AFAIK.
00:24:49 <zachlr> Wait so I'm going to have to keep the window open all of the time?  oh well :(
00:25:28 <clokep> Actually...I think he did update it finally.
00:25:39 <Mic> You could try a version from his page
00:26:05 <zachlr> whose page?
00:26:18 <clokep> zachlr: Give me a few seconds. :)
00:26:37 <clokep> zachlr: https://addons.mozilla.org/en-US/firefox/addon/12581/versions/
00:26:44 <clokep> Download the newest version 0.8b5
00:26:51 <clokep> And then force it to install. I think it will work.
00:27:20 <zachlr> addons for firefox?
00:27:45 <clokep> It's fine. DOn't worry about it. :)
00:28:11 <zachlr> now I'm /really/ confused :P  So I download the xpi, and install it on ib?
00:28:34 <clokep> Yes.
00:28:51 <clokep> The extension is made to be compatible with a whole bunch of programs (Firefox, Thunderbird, Instantbird, etc.)
00:29:00 * clokep is testing it.
00:29:08 <zachlr> oh, okay, got'cha
00:29:09 <-- clokep has quit (Quit: Instantbird 0.3a1pre)
00:29:31 --> clokep has joined #instantbird
00:29:31 * ChanServ sets mode +h clokep 
00:29:35 <clokep> Works fine. :)
00:29:53 <Mic> Here's my current development version of Buddy Status. It's the only one that works with current nightlies:
00:30:00 <Mic> http://rapidshare.com/files/435983432/buddystatus-0.2.1pre-dev.xpi
00:30:15 <Mic> You even get buddy images on the notification window ;)
00:30:50 <Mic> Works best with square images like on Facebook
00:31:00 <Mic> Looks terrible with others at the moment
00:31:06 <clokep> Hahah.
00:31:44 <clokep> Mic: I'll try it once I restart. :)
00:31:56 <zachlr> Clicking install from file, and selecting a file seems to do nothing?
00:31:59 <Mic> I'm preserving the aspect ratio at least ;)
00:32:15 <clokep> zachlr: Drag & Drop should work.
00:32:27 <zachlr> I tried that too
00:32:34 <clokep> Although Install from file worked fine for me.
00:33:11 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
00:33:12 <zachlr> yeah, it's weird
00:33:33 --> Mic has joined #instantbird
00:33:34 * ChanServ sets mode +h Mic 
00:34:16 <clokep> Apparently the guy that makes MinimizeToTray goes to TU Braunschweig ? You know what that is Mic?
00:34:25 <Mic> Error: Cc['@tn123.ath.cx/trayservice;1'] is undefined, Source File: resource://mintrayr/services.jsm
00:34:33 <Mic> That's a university
00:34:45 <Mic> TU means "Technical University"
00:34:58 <Mic> Braunschweig is a town in central to north germany
00:35:25 <zachlr> Tried restarting ib.  conclude Install From File is totally broken.
00:35:28 <clokep> Mmhmm.
00:35:42 <clokep> Mic: You got an error using the newest version 0.8b5?
00:35:57 <Mic> oh? 0.8.what?
00:36:13 <Mic> No, 0.5.4 iirc
00:36:16 <Mic> let me see ;)
00:36:45 <clokep> https://addons.mozilla.org/en-US/firefox/addon/12581/versions/
00:36:56 <clokep> It's a beta version he has there.
00:37:19 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
00:37:34 --> Mic has joined #instantbird
00:37:35 * ChanServ sets mode +h Mic 
00:37:37 <-- clokep has quit (Quit: Instantbird 0.3a1pre)
00:37:47 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
00:37:52 --> clokep has joined #instantbird
00:37:52 * ChanServ sets mode +h clokep 
00:38:12 --> Mic has joined #instantbird
00:38:13 * ChanServ sets mode +h Mic 
00:38:21 <zachlr> Yeah, 0.8b5, that is the one I was supposed to install, right?
00:38:28 <Mic> Minimizing works once you've installed it btw
00:38:42 <clokep> Yes zachlr. Thanks for confirming Mic.
00:38:49 <clokep> I should probably let him know...
00:39:21 <clokep> I don't want to make a github account bah.
00:40:27 <Mic> Having to create an accounts is the biggest obstacle that keep me from commenting or reporting something usually
00:40:36 <zachlr> bugmenot.com?
00:40:55 <clokep> I wouldn't care if I could just use my openID(i.e. my Google account)
00:41:27 <clokep> Mic: What should I have him bump the version to? 0.3a1pre?
00:41:32 * Mic doesn't like google
00:41:35 <Mic> yep
00:41:44 <zachlr> how can you not like google?
00:41:51 <clokep> I hate Google to actually.
00:42:02 <clokep> But my FOSS email is from Gmail, so....
00:42:05 <Mic> Google's worse than MS. If MS stopped their services today, noone would really notice for a while
00:42:06 <zachlr> btw, Buddy Status 0.2.1pre installed fine
00:42:07 <clokep> I use it for stuff like that. ;)
00:42:20 <Mic> If Google pulled the plug today .. good night
00:42:58 <zachlr> Google is indistructable
00:43:10 <clokep> SkyNet.
00:43:19 <clokep> Look where that got us.
00:43:19 <Mic> Sort of
00:44:30 <clokep> I think I'm about ready to have flo look over my code for IRC.
00:44:39 <Mic> :)
00:44:55 <clokep> Not that it's anywhere near done.
00:45:00 <clokep> But abotu time to look at stuff.
00:45:05 <Mic> Do you have an idea what would be useful to have for jsProtocols in general?
00:45:19 <clokep> I've extend jsProtoHelper a bit already.
00:45:26 <Mic> I saw that
00:45:34 <clokep> By "a bit" I mean I've added a few objects to it.
00:45:49 <clokep> We also want to remove the sockets code from mine and make it general.
00:49:36 <Mic> What about the participants list?
00:50:09 <Mic> Would it be useful to have a premade thing for it?
00:50:35 <Mic> you just push new participants to it or tell it to remove someone?
00:50:59 <clokep> I think so.
00:51:09 <clokep> I actually wrote a function that does that.
00:51:13 <clokep> Uhh...one second.
00:52:01 <clokep> https://hg.instantbird.org/experiments/file/IRC-JavaScript/components/ircProtocol.js#l106
00:56:05 <clokep> Mic: The problem for me with Buddy Status is my Facebook account people sign on/off every 3 seconds.
00:58:55 <zachlr> It'd be useful to be able to enable it for specific accounts only.
00:59:08 <clokep> I think the plan is to use tags? Maybe?
00:59:19 <zachlr> tags?
00:59:31 <clokep> They don't exist in the UI yet, just the backend.
00:59:39 <zachlr> ah
00:59:42 <Mic> I was wondering if I should do it this way
01:00:02 <Mic> actually implementing a sort of level of interest system as mentioned on the wiki
01:00:16 <clokep> I think so, make a tag for each thing "All-Alerts" "Sign-On-Alert" "Sign-Off-Alert" blah blah.
01:02:25 <hicham> Mic : MinTrayR for Windows doesn't work on IB-0.3 yet ?
01:02:42 <clokep> hicham: There's a version that does.
01:02:58 <hicham> clokep: ok
01:17:30 <-- clokep has quit (Ping timeout)
01:17:55 <Mic> nn
01:17:59 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
01:21:16 --> micahg has joined #instantbird
01:24:20 <-- micahg has quit (Input/output error)
01:25:23 --> micahg has joined #instantbird
01:56:06 --> clokep has joined #instantbird
01:56:07 * ChanServ sets mode +h clokep 
02:38:21 <-- hicham has quit (Client exited)
04:53:58 <-- zachlr has quit (Ping timeout)
04:56:13 --> zachlr has joined #instantbird
04:59:25 <-- zachlr has quit (Ping timeout)
05:00:12 --> tymerkaev has joined #instantbird
05:03:26 <-- clokep has quit (Quit: Instantbird 0.3a1pre)
05:06:12 * zz_auscompgeek is now known as auscompgeek
05:28:11 <Morian> !8ball Is instantbot going to crash within the next 7 days?
05:28:12 <instantbot> Morian: What are you asking me for?
05:28:26 <Morian> !8ball Are you going to crash within the next 7 days?
05:28:27 <instantbot> Morian: No clue.
06:04:27 --> Even has joined #instantbird
06:04:27 * ChanServ sets mode +o Even 
06:25:27 <-- tymerkaev has quit (Ping timeout)
08:24:27 <-- Even has quit (Connection reset by peer)
08:24:51 --> Even has joined #instantbird
08:24:51 * ChanServ sets mode +o Even 
08:24:53 --> flo has joined #instantbird
08:24:54 * ChanServ sets mode +qo flo flo 
08:26:23 <flo> Good morning :)
08:35:13 --> Even1 has joined #instantbird
08:36:23 <-- Even has quit (Ping timeout)
08:44:34 --> Even has joined #instantbird
08:44:34 * ChanServ sets mode +o Even 
08:45:47 <-- Even1 has quit (Ping timeout)
09:03:33 <-- flo has quit (Quit: Instantbird 0.3a1pre)
09:03:53 --> Ornthalas has joined #instantbird
09:23:03 <-- Ornthalas has quit (Quit: KTHXBYE)
09:24:37 <-- micahg has quit (Ping timeout)
09:28:14 * auscompgeek is now known as zz_auscompgeek
10:16:42 --> tymerkaev has joined #instantbird
10:22:56 --> Even1 has joined #instantbird
10:24:08 <-- Even has quit (Ping timeout)
10:31:45 <-- sabret00the has quit (Quit: Leaving)
10:37:18 --> Even has joined #instantbird
10:37:18 * ChanServ sets mode +o Even 
10:38:39 <-- Even1 has quit (Ping timeout)
10:53:10 --> Even1 has joined #instantbird
10:54:21 <-- Even has quit (Ping timeout)
11:03:38 <-- Even1 has quit (Connection reset by peer)
11:04:02 --> Even has joined #instantbird
11:04:02 * ChanServ sets mode +o Even 
11:12:24 --> Even1 has joined #instantbird
11:13:43 <-- Even has quit (Ping timeout)
11:37:16 --> Even has joined #instantbird
11:37:17 * ChanServ sets mode +o Even 
11:38:44 <-- Even1 has quit (Ping timeout)
12:18:29 --> Andrey has joined #instantbird
12:24:35 <-- tymerkaev has quit (Ping timeout)
12:27:43 <-- chrisccoulson has quit (Client exited)
12:41:30 --> Mic has joined #instantbird
12:41:30 * ChanServ sets mode +h Mic 
12:42:20 <-- Even has quit (Connection reset by peer)
12:43:09 --> Even has joined #instantbird
12:43:09 * ChanServ sets mode +o Even 
12:46:01 --> chrisccoulson has joined #instantbird
12:58:33 --> hicham has joined #instantbird
13:10:18 --> clokep has joined #instantbird
13:10:18 * ChanServ sets mode +h clokep 
13:18:09 <Mic> hi clokep
13:24:05 --> tymerkaev_away has joined #instantbird
13:24:18 <-- tymerkaev_away has quit (Quit: I must go. Good bye!)
13:25:11 <-- Even has quit (Connection reset by peer)
13:25:32 --> Even has joined #instantbird
13:25:32 * ChanServ sets mode +o Even 
13:27:35 --> flo has joined #instantbird
13:27:35 * ChanServ sets mode +qo flo flo 
13:29:00 <clokep> Hi Mic.
13:29:08 --> tymerkaev has joined #instantbird
13:29:28 <flo> Hello all :)
13:30:56 <clokep> Hello.
13:31:01 <tymerkaev> hi
13:31:47 <flo> no new reply from the twitter API team. I guess I'll need to try to use the normal OAuth... :-|
13:35:40 <Mic> flo: what do you mean with your comment on Mossop's blog?
13:36:21 <flo> I would like to know what I should CC myself to to get notified when "serious" discussion happen
13:37:03 <flo> I'm quoting the interesting (for me) parts of the slides linked in the post (the mockup on page 49 especially which looks interesting for us)
13:38:47 <Mic> I didn't look at the slides yet
13:39:06 <flo> ok, I guess the comment is rather cryptic then ;)
13:46:46 <clokep> flo: I think your comment is rather straightforward and doing just what he asked. :)
13:50:55 <Mic> I got it now, and the appearance UI looks interesting.
13:51:17 <Mic> Th two separate parts make clear that you can select one of each imo
13:51:58 <flo> Even: there are 3 httpd processed that have been taking together 100% of the CPU on the server for at least 10 minutes, and make Apache unable to process new requests.
13:58:46 <Mic> lol
13:59:02 * Mic just tried to get his tech news read by a text2speech service
13:59:25 <clokep> Embedded preferences would be a good use of that space. :) I like that idea.
13:59:27 <Mic> "Firefox 3.6.13" ended as "Firefox 3rd of June 2013"
13:59:34 <flo> clokep: http://pastebin.com/C9dcVgiY Am I right that this is the minimum stupid code we have to copy and paste for each new protocol plugin?
14:00:03 <clokep> flo: Ignoring comments I assume? :)
14:00:08 <flo> of course
14:00:15 <flo> and the onConnected method too
14:00:44 <clokep> I think that's the base code, yes.
14:01:31 <flo> I think we could (should?) simplify this a bit
14:01:47 <clokep> Probably.
14:01:55 <clokep> Also you have an extra "get noPassword() true,"
14:02:14 <flo> my having an accountPrototype property in the protocol prototype, and moving all the crap like "getAccount: function(aKey, aName) new Account(this, aKey, aName)," and "this._init(aProtoInstance, aKey, aName);" into jsProtoHelper
14:02:28 <flo> s/my/by/
14:05:17 <clokep> So you want to extend GenericAccountPrototype more?
14:05:20 <clokep> I think that'd be agood idea.
14:05:36 --> rikki1 has joined #instantbird
14:05:41 <-- rikki has quit (Connection reset by peer)
14:06:03 <flo> that would rather be: put a default implementation of getAccount in GenericProtocolPrototype
14:07:14 <clokep> :) Yes, it would probably be a good idea.
14:08:04 --> GeekShadow has joined #instantbird
14:18:17 --> iLobster has joined #instantbird
14:19:14 <iLobster> Greetings.
14:19:58 <clokep> Hello.
14:20:46 <iLobster> What "Internal server error (500)" during check for update can means? It's "Error: no element found
14:20:46 <iLobster> Source File: https://update.instantbird.org/1/Instantbird/0.3a1pre/20101208041804/WINNT_x86-msvc/en-US/nightly/Windows_NT%206.1/update.xml?force=1
14:20:46 <iLobster> Line: 1" in error console
14:21:12 <flo> Even: more work for you!
14:21:51 <Mic> AIO isn't accessible at all and gives a blank page for me
14:21:53 <flo> iLobster: it means we are currently having server issues. Should be fixed in a few minutes or hours
14:22:23 <iLobster> oki, thanks for info
14:22:34 <flo> Even is actively working on it.
14:25:56 <Mic> What about announcing maintenance work like on PMO? So people will know they can savely ignore any problems and just have to check back later?
14:29:04 <flo> Mic: I would have liked to know it before actually ;)
14:32:04 <clokep> flo: I was thinking about it more and it might be good to go over some of the IRC code soonish before it goes wayy too massive. :) Maybe after you've worked on Twitter a bit to see what issues you run into?
14:32:25 <flo> ok.
14:32:36 <flo> this evening? this week-end? next week?
14:33:42 <clokep> Let me think.
14:33:56 <clokep> Is it 6 hours difference between us?
14:34:25 <flo> yes
14:34:48 <flo> but on friday I can stay up and only later ;)
14:34:55 <flo> s/only/online/ :(
14:35:22 <clokep> I hvae class until 2:00 PM EST, so really any time after that would work for me.
14:35:45 <clokep> Maybe a litle after that so I can eat lunch. :)
14:36:17 <clokep> (Or I can do any time after that, as long as it's not like 7 or 8 at night, but that would be like 1 or 2 AM for you.)
14:38:15 <flo> ok.
14:38:43 <flo> I'll probably be available at 10 or 11 pm (my time) and later
14:39:10 <clokep> 4 or 5 here, that's fine. :)
14:50:57 <-- clokep has quit (Ping timeout)
15:00:44 * tymerkaev is now known as tymerkaev_away
15:02:59 * tymerkaev_away is now known as tymerkaev
15:27:58 <flo> "Failed to validate oauth signature and token" hmm...
15:30:55 --> zachlr has joined #instantbird
16:04:23 <-- hicham has quit (Ping timeout)
16:04:36 --> clokep has joined #instantbird
16:04:36 * ChanServ sets mode +h clokep 
16:07:47 <clokep> flo: You've probably seen this, but did you check out the Twitter test console thing? http://dev.twitter.com/console
16:08:09 <clokep> Oh, wait...that doesn't show what headers you send. :(
16:08:13 <clokep> That's rather useless haha.
16:08:34 <flo> I guess it's helpful once everything work
16:08:55 <flo> I'm looking for a way to display HTTP requests with their headers in Instantbird
16:09:08 <flo> getting LiveHTTPHeaders or Firebug to work in Instantbird would be great
16:09:32 <clokep> Couldn't you use something like Wireshark to watch the HTTP traffic in the mean time?
16:09:43 <flo> not for HTTPS
16:09:54 <clokep> Ah touche.
16:12:01 <clokep> Oh, actually you can see the request headers haha, but I guess not being able to see them in Instantbird is the bigger issue. :)
16:13:21 <flo> "You should use the POST HTTP method when using this end point. SSL is recommended." Hmm... recommended means I don't have to use it, right? :)
16:13:53 <clokep> Use HTTP until it works.
16:14:21 --> rikki has joined #instantbird
16:14:30 <-- rikki1 has quit (Connection reset by peer)
16:24:49 <flo> wow. The header is really not what I thought I was sending
16:28:38 <flo> too bad the error message is still the same after fixing it :(
16:28:50 <clokep> :(
16:29:13 <clokep> What are you sending? I'm not sure how much I remember all of this stuff though actually. :-\
16:32:38 <flo> my code and the request sent: http://pastebin.instantbird.com/496
16:33:32 <flo> should have included the hash function too http://pastebin.instantbird.com/497 (although I'm almost sure it works right)
16:35:04 <clokep> It's stil not working?
16:35:11 <-- Even has quit (Quit: Instantbird 0.3a1pre)
16:36:04 <flo> and the things it prints in the terminal: http://pastebin.instantbird.com/498
16:37:17 <clokep> Of what I remember it seems OK...except I thought the nonce was a number not a random set of characters?
16:37:48 <flo> the nonce function is copied from oauth.js
16:37:57 <flo> timestamp too
16:39:06 <clokep> Ah OK.
16:42:17 <clokep> flo: From The console compared to what you sent: http://pastebin.instantbird.com/499
16:42:35 <clokep> Some stuff is in a different order, idk if that matters.
16:43:13 <clokep> And they escaped all the " it seems?
16:43:53 <flo> that escaping seems strange
16:45:04 <clokep> I agree. In fact it seems "wrong", but who knows.
16:45:22 * flo compares to a working request from oauthizer
16:45:47 <flo> http://pastebin.instantbird.com/500
16:46:12 <flo> ignore the leading "N#2PPEp@@NPs6`PU" ;)
16:46:34 <clokep> Haha OK.
16:47:05 <clokep> Oh, he's doing a get request...
16:48:30 <Mic> Since I haven't found it in the chat history: have you checked your system time? (cf http://blainegarrett.com/2009/07/14/failed-to-validate-oauth-signature-and-token-on-twitter-oauth-check-your-cloc/ )
16:49:27 <flo> if it's wrong, it's not by more than 1 or 2 minutes
16:49:48 <flo> I've seen in several places that twitter may be checking that it's in a 5 minutes interval around the time they have
16:50:16 <flo> but as oauthizer works, I don't think the time is the problem
16:50:35 <flo> there's probably a silly mistake somewhere
16:51:12 <flo> I wonder if the oauth_callback and all the other parameters included in the Authorization header should be repeated as headers or as POST parameters
16:54:27 <clokep> Could see if https://github.com/mdesjardins/buzzbird does something different?
16:54:45 <clokep> I feel like the oauth_callback shouldn't be part of it though. :-\
17:00:13 <flo> the consumerSecret is in plain text in buzzbird
17:01:34 <clokep> Yes. :) I know.
17:01:44 <clokep> The consumer secret is in my code too that's on Google Code.
17:01:45 <flo> ok, I got a request from buzzbird with Wireshark, but the result displayed in the UI is "Whoops, that didn't work! Want to try again?"
17:02:07 <flo> clokep: yeah, but you haven't released an application with it
17:02:33 <clokep> True. :)
17:03:51 <clokep> Idk if Buzzbird still works. he no longer works on it.
17:04:41 <flo> and buzzbird uses xAuth...
17:06:30 <flo> ah, I guess xAuth doesn't work at all with http, as the password is in plain text in the request
17:06:58 <-- tymerkaev has quit (Ping timeout)
17:07:11 <clokep> Haha, he probably just failed to mention that it's OSS.
17:08:22 <flo> right
17:08:33 <flo> (= buzzbird works if I revert the URL to https)
17:08:54 <flo> the error received in HTTP was 403 forbidden, not 401
17:12:48 <flo> so this is a correct OAuth request: http://pastebin.instantbird.com/501
17:13:35 <clokep> So the spaces are messing it up?
17:13:57 <flo> the spec says the parameters should be separated by a comma and optional whitespace
17:14:32 --> micahg has joined #instantbird
17:14:35 <flo> hmm, I think now I'll put my key in oauthizer to ensure it really works.
17:14:57 <clokep> What was different? The spaces?
17:15:16 <flo> no idea
17:15:56 <flo> there's also the added realm="" at the beginning of the header, but the spec says it's optional too.
17:17:55 --> Even has joined #instantbird
17:17:55 * ChanServ sets mode +o Even 
17:19:06 <-- micahg has quit (Ping timeout)
17:21:29 <clokep> Ah, I see. What's it for anyway?
17:22:42 <flo> I'm not sure, but you are supposed to put a domain name there, so maybe to avoid identifying the request for a wrong subdomain, or something... :-S
17:23:06 --> micahg has joined #instantbird
17:26:20 <flo> my key doesn't seem to work in oauthizer :-S
17:28:55 <clokep> :-\
17:28:59 <clokep> Try using mine?
17:30:40 <-- Andrey has quit (Quit: )
17:31:32 <flo> clokep: the oauthizer key doesn't work in my code though ;)
17:31:43 <clokep> Ah, I see.
17:46:46 <clokep> I hate oauth, it's so overly complicated. :-\
17:52:44 <flo> ahah, I found a bug in my implementation :)
17:52:57 <flo> the callback URI needs to be URL encoded before URL encoding it again
17:53:55 <clokep> Seriously?
17:53:59 <clokep> Isn't that a big...excessive?
17:54:01 <flo> yes
17:56:23 <flo> ah, but that's only when building the signature base, not the authorization header where it needs to be encoded only once. Grrr.
18:00:26 <flo> Received response: oauth_token=RlRM86aYSzpj7xyrCQoMeF02cZU7VmUN5bbuTfpWk&oauth_token_secret=JuuNPxJ6aj1BlQxEzQvyPO0dBCSiLIF0HeVfBzhm8&oauth_callback_confirmed=true
18:00:29 <flo> :)
18:01:48 <flo> that was with oauthizer's key
18:02:15 <clokep> :) Congrats.
18:02:15 <flo> with mine I receive this instead: http://pastebin.instantbird.com/502
18:02:38 <clokep> Oh, did you choose desktop application when you registered? :-\
18:02:55 * flo feels the need to punch someone in the head.
18:03:16 <clokep> flo: Use application type Browser.
18:03:20 <flo> clokep: I think so. I don't see how I would have requested xAuth otherwise
18:03:29 <clokep> Ohhh...probably.
18:03:53 <clokep> To use a callback it must be a Browser.
18:04:09 <flo> that didn't prevent that first reply from saying "Thank you for your interest in xAuth. Unfortunately, website-based applications will not be given access to xAuth and must use the normal OAuth workflow instead."
18:07:23 --> tymerkaev has joined #instantbird
18:07:33 <flo> so, how long will it take for them to apply the new setting?
18:08:03 <flo> seriously, why did they need to put that silly restriction?
18:09:54 <clokep> I don't know how long it'll take them to apply it? :-\ I can go into edit and it gives me an option thinking it could happy immediately?
18:10:13 <flo> I changed it there, but still get the error message
18:10:32 <clokep> Oh. :-\
18:10:44 <flo> oh, it's even nicer than that :-D
18:11:15 <flo> you change it, then click on "Save", it returns to the page with the summary saying it's been saved and... nothing! It's still the same when coming back to "Edit settings"
18:12:18 <flo> ah, that was because I didn't fill the useless "Callback URL:" field
18:13:16 <flo> ok, now it works.
18:13:24 <flo> next request...
18:14:05 <clokep> :)
18:16:46 --> kaie has joined #instantbird
18:23:42 <-- micahg has quit (Input/output error)
18:29:09 <flo> so now I need to figure out how I can open a browser from the protocol plugin code :-S
18:30:05 <Even> Little news : the update system now returns valid answers to requests
18:30:22 <flo> cool :)
18:30:42 <Even> Was php_mysqli missing, as I expected
18:30:58 <Even> As soon as it was compiled and a little apache restart later, it was fixed.
18:30:59 <clokep> flo: Notifiy the UI and make a "I need a browser element to authenticate" component?
18:31:46 <Even> And about the "bad mozilla build" thing related to the IRC notification, updating to yesterday's afternoon nightly did not help
18:32:36 <Even> I had a grey one today before getting home (home sweet home!)
18:32:56 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
18:33:35 <flo> "getting home (home sweet home!)" such a good idea! Let me do the same and ponder the solutions for that stupid browser while driving
18:33:40 <flo> back later! ;)
18:33:54 <Even> k
18:34:02 <Even> I will let you.
18:34:03 --> Mic has joined #instantbird
18:34:03 * ChanServ sets mode +h Mic 
18:34:14 <Even> But only because I'm a good guy ;à
18:34:16 <Even> ;)
18:34:16 <-- flo has quit (Quit: Instantbird 0.3a1pre)
18:34:37 <clokep> Even: If you join another channel after you've been running does the topic bar work OK? Mine does.
18:34:53 <clokep> I only get the gray one for channels that autojoin.
18:34:56 <Even> Don't know. I can't try here.
18:35:04 <clokep> OK. :)
18:35:11 <Even> So bad :)
18:35:18 <Mic> clokep: do mesages from services affect this?
18:35:26 <Mic> *messages
18:35:41 --> hicham has joined #instantbird
18:35:45 <clokep> Mic: Idk I have nickserv killer.
18:36:18 <Mic> I'll get that one and try again
18:38:00 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
18:38:10 --> Mic has joined #instantbird
18:38:10 * ChanServ sets mode +h Mic 
18:38:28 <Mic> Ah :)
18:38:34 <clokep> Is that the issue?
18:38:38 <Mic> Now the topic bar is gone for me as well
18:39:15 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
18:39:33 --> Mic has joined #instantbird
18:39:33 * ChanServ sets mode +h Mic 
18:39:36 <clokep> Hm. I wonder what's affecting it...
18:40:31 --> micahg has joined #instantbird
18:42:22 <Mic> We don't have a bug on this yet as it seems
18:42:39 <clokep> No. I don't think we ever filed. :-[
18:43:29 <Mic> Is there anything more to it than was said before?
18:44:10 <Mic> Even: do you also have NickservKiller?
18:45:01 <Mic> When did the problem start by the way?
18:45:12 <clokep> Mic: a few days ago.
18:45:23 <clokep> Either two or three I believe.
18:47:14 --> DGMurdockIII has joined #instantbird
18:48:35 <Even> Mic: yes, I'm using NickServKiller....
18:49:00 <Even> clokep: I concur, with you, not more than 4 days
18:50:48 <clokep> Mic: You wrote the notification code, right? Any ideas? :)
18:51:03 <Mic> Yes, I did
18:51:06 <Mic> No, not at all
18:51:20 <Mic> Seems to be only a visual problem
18:51:39 <Mic> Double clicking the area changes its height, like it does when entering the edit mode
18:51:57 <Mic> Clicking where the close icon should be removes the blank space so I assume it really closes
18:52:05 <Mic> I haven't look at it with DOMi yet
18:52:40 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
18:52:47 --> Mic has joined #instantbird
18:52:47 * ChanServ sets mode +h Mic 
18:53:53 <-- clokep has quit (Ping timeout)
18:57:38 --> Ornthalas has joined #instantbird
19:00:31 <DGMurdockIII> 2(Even2): have you seen this http://dev.guardedcode.com/projects/ircutils
19:00:56 <Even> Not at all.
19:02:36 <Mic> Even: What OS are you using when seeing this problem?
19:02:47 <Even> Win7
19:07:12 --> clokep has joined #instantbird
19:07:13 * ChanServ sets mode +h clokep 
19:08:20 <instantbot> New Instantbird (UI) bug 617 filed by benediktp@ymail.com.
19:08:21 <instantbot> benediktp@ymail.com added attachment 415 to bug 617.
19:08:23 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=617 nor, --, ---, nobody, NEW, Display problem with topic bar
19:08:42 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
19:08:54 --> Mic has joined #instantbird
19:08:54 * ChanServ sets mode +h Mic 
19:09:18 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
19:09:26 --> Mic has joined #instantbird
19:09:26 * ChanServ sets mode +h Mic 
19:09:31 topic changed by Mic to "Ask questions about Instantbird here. Official website: http://www.instantbird.com. Latest release: 0.2. Read http://blog.instantbird.org/. Nightlies: http://nightly.instantbird.im/ (testing purpose only), IRC logs: http://log.bezut.info/. | ICQ troubles-> http://tinyurl.com/ICQError"
19:09:37 <Mic> ups
19:10:25 <Mic> These new graphics glitches are annoying
19:10:32 <-- clokep has quit (Quit: Instantbird 0.3a1pre)
19:10:39 --> clokep has joined #instantbird
19:10:39 * ChanServ sets mode +h clokep 
19:12:18 <-- Mic has quit (Quit: Instantbird 0.3a1pre)
19:12:27 --> Mic has joined #instantbird
19:12:27 * ChanServ sets mode +h Mic 
19:25:49 <Mic> zachlr: everything working fine after the update?
19:58:28 <-- hicham has quit (Ping timeout)
20:35:39 <-- chrisccoulson has quit (Quit: Ex-Chat)
20:42:32 <-- GeekShadow has quit (Quit: The cake is a lie !)
20:43:17 --> chrisccoulson has joined #instantbird
20:48:04 <-- clokep has quit (Quit: Instantbird 0.3a1pre)
20:48:07 --> clokep has joined #instantbird
20:48:08 * ChanServ sets mode +h clokep 
21:04:18 <-- tymerkaev has quit (Ping timeout)
21:32:13 --> flo has joined #instantbird
21:32:13 * ChanServ sets mode +qo flo flo 
21:41:57 <flo> so is the problem with the topic bar only with NickServKiller?
21:42:15 <clokep> flo: Yes.
21:42:29 <flo> or is it when the first tab of a window is a chat?
21:43:10 <flo> to test it, one of you could disable nickservkiller and check that option to group chats in a separate window.
21:43:44 <clokep> I'll try it on my other machine. :P One second.
21:44:00 <flo> there's no rush ;)
21:44:04 <clokep> Wait, if you disable nickservkiller the issue goes away.
21:44:10 <flo> I'm getting your IRC code
21:45:08 <clokep> OK. I just pushed changes 20 minutes ago?
21:45:20 <clokep> Or rather 7. :)
21:45:31 <flo> just pulled 11 changesets
21:46:11 <clokep> I'm sure you have the newest. :)
21:47:08 <flo> so where do we start? the irc component or the changes to jsProtoHelper?
21:47:24 <clokep> Start w/ jsProtoHelper.
21:48:07 <clokep> I added GenericChatConversationPrototype and GenericConvChatBuddyPrototype I believe.
21:49:09 <flo> http://pastebin.instantbird.com/503
21:49:45 <flo> the setBaseURI thing looks like something I've removed after you forked
21:49:59 <clokep> Yeah, I probably just never removed it.
21:52:19 <flo> you should remove the   _lastId: 0, line (first line in GenericChatConversationPrototype)
21:52:48 <clokep> OK.
21:53:25 <flo> and I really need to rewrite the conversation handling so that the ids are generated by a service shared between all protocol plugins
21:53:47 <flo> those ids are supposed to be unique across all the life of the process.
21:53:58 <clokep> But for now what I have is OK?
21:54:21 <flo> not more broken than what I already put there ;)
21:55:23 <flo> what was the problem when doing GenericChatConversationPrototype.__proto__ = GenericConversationPrototype;?
21:55:33 <clokep> It didn't properly inherit.
21:55:59 <clokep> I didn't really figure out the issue, but it was keeping me from actually working on stuff, so I gave up and just copied the Conversation prototype for the parts I needed.
21:56:11 <flo> ok
21:56:52 <flo> I guess I'll need to figure it out :)
21:58:34 <flo> if you have an object that only implements purpleIConvChat you can remove the purpleIConvIM specific stuff from it: http://lxr.instantbird.org/instantbird/source/purple/purplexpcom/public/purpleIConversation.idl#102
21:59:12 <clokep> I thought I did, but perhaps I missed part.
21:59:51 <flo> sendTyping, and most likely updateTyping are useless
22:00:00 <flo> setBaseURI too! :)
22:00:18 <clokep> Oh, yes. Just saw those three. :)
22:00:20 <clokep> Thanks.
22:03:28 <flo> in the getParticipants function you are creating a new array that is a snapshot of the current state of _participants, right?
22:05:57 <clokep> I set up this._participants as an object.
22:06:21 <clokep> So it would contain _participants["flo"], _participants["clokep"], etc.
22:06:34 <clokep> So it needs to convert it to an array.
22:06:51 <-- micahg has quit (Ping timeout)
22:06:55 <clokep> Idk if there's a better way to keep track of the ConvChatBuddy or not.
22:06:58 <-- kaie has quit (Quit: Leaving)
22:07:03 <iLobster> nn
22:07:06 <-- iLobster has left #instantbird ()
22:09:22 --> hicham has joined #instantbird
22:09:35 <flo> clokep:   _participants: [], <-- that looks a lot like an array to me
22:11:03 <-- chrisccoulson has quit (Connection reset by peer)
22:11:16 <clokep> Yes, it should be an object.
22:11:35 <clokep> I believe the correct term is a "map"? Right? We need to be able to look people up by their nick.
22:12:16 <-- DGMurdockIII has quit (Connection reset by peer)
22:12:48 <flo> clokep: where is your object created?
22:12:54 --> chrisccoulson has joined #instantbird
22:12:58 <clokep> In ircProtocol.js
22:13:29 --> DGMurdockIII has joined #instantbird
22:13:44 <clokep> (I changed it to _participants: {} btw -- it should definitely be that.)
22:14:01 <flo> I don't see where in ircProtocol.js
22:14:26 <clokep> Chat inherits from that.
22:14:31 <clokep> And has the IRC specific code.
22:14:48 <clokep> And _getParticipant function in that creates the components of _participants
22:15:25 <flo> I'm looking for <something>._participants =<something> and find no result in ircProtocol.js
22:16:19 <flo> adding things into the array/object of the prototype is incorrect, those things would become shared across all the conversation objects.
22:16:28 <clokep> Line 108 is what I was talking about.
22:16:44 <clokep> Alright.
22:17:06 <flo> you need to create a new array/object in the constructor (or here I would suggest the _init method which is in jsProtoHelper)
22:17:21 <clokep> Wait, I'm confused.
22:17:47 <flo> you have     this._observers = []; in _init, you should have this._participants = {}; there too.
22:17:55 <clokep> OK.
22:18:17 <flo> oh well, just move the _participants: {}. The prototype doesn't need it.
22:18:49 <flo> still confused? don't hesitate to ask if it's unclear :)
22:19:13 <clokep> I just didn't realize that things were shared like that in JavaScript, but I guess I was using different things different ways.
22:19:19 <clokep> Some that way, some assuming they'd be recreating. :)
22:19:25 <clokep> s/creating/created.
22:19:50 <flo> if you tested with only a single conversation, you probably didn't notice the issue ;)
22:20:21 <clokep> I was gettin errors with two, but hadn't debugged yet. :)
22:22:13 <flo> I wonder if Object.keys(this._participants) is doing the same thing as your 3 lines of code in getParticipants
22:24:02 <clokep> Probably.
22:24:04 <clokep> I think so.
22:24:22 <clokep> Is there a better way to keep those btw?
22:24:42 <clokep> Wait, no it doesn't.
22:24:47 <clokep> Object.keys returns an array of the keys.
22:24:52 <clokep> I'm creating an array of the objects.
22:25:11 <flo> probably need to add .map(function (k) this._participants[k])
22:27:58 <flo> const GenericConvChatBuddyPrototype = { ... } <-- this is an assignment, and should have a ; at the end
22:28:17 <flo> (same for const GenericChatConversationPrototype = {)
22:28:58 <clokep> k :)
22:31:12 <flo> the nsIClassInfo implementation in GenericConvChatBuddyPrototype is missing a few things
22:31:36 <Mic> Automatic ;-insertion to the rescue? ;)
22:31:54 <clokep> contractID and such? Or...?
22:32:03 <flo> yes
22:32:32 <flo> classDescription, contractID, getHelperForLanguage, implementationLanguage, flags
22:32:34 <clokep> I just copied that block from above.
22:32:56 <flo> I'm lookint at the implementation in GenericProtocolPrototype
22:33:47 <flo> you can probably copy the whole block and change the name of the interesting interface
22:34:01 <flo> or take it from Message.prototype
22:34:10 <flo> I don't remember the meaning of .DOM_OBJECT
22:34:39 <flo> mdc says "Specifies that this class is a DOM object. ". Thanks, that helps a lot! :-P
22:35:45 <clokep> :)
22:38:31 <flo> hmm, iirc if it's a DOM object, the consumer will have the right to set random properties on the object (those properties won't be visible from the original implementation which is still "safe")
22:38:43 <flo> I don't think it matters either way here
22:39:43 <clokep> OK.
22:40:15 <flo> I don't remember how the alias of purpleIConvChatBuddy is used, but if it's as in the buddy list (.alias || .name), you will want to set the default value to an empty string
22:40:53 <clokep> OK.
22:41:30 <flo> ok, lxr tells me it's not used at all...
22:42:04 <flo> I'll try to look into the inheritance problem later, let's look at the other more interesting file :)
22:42:19 <clokep> OK. :)
22:43:54 <flo> hmm, dump... we will probably need to provide a better way to report debugging information.
22:44:20 <clokep> Probably, but it works well for what I need right now. :)
22:44:34 <flo> sure
22:45:06 <flo> the LOG function (not exported) of jsProtoHelper does the same
22:45:36 <clokep> Maybe we should export it in case we ever have better logging facilities?
22:47:08 <flo> there was a log4moz.js module in oauthizer, maybe we should see if it's interesting
22:47:38 <clokep> It's from https://wiki.mozilla.org/Labs/JS_Modules#Logging
22:47:54 <flo> ok
22:50:40 <clokep> Let me know if something isn't clear. :)
22:51:25 <flo> the reason why you need to this.notifyObservers(null, "update-conv-title"); for a new conversation ;)
22:51:41 <flo> the code around that in conversation.xml doesn't look great
22:52:11 <clokep> When I was making new conversations it was also "Chat Conversation" as the title, so I figured I'd notify the observer it changed, it worked. :)
22:52:44 <flo> and if you swap the order of this._init and this._name?
22:53:12 <clokep> That worked. :)
22:54:27 <flo> we could also add aName as a second parameter of _init and let it handle it
22:55:11 <clokep> Yes.
22:56:25 <flo>   get name() this._name, can move to the generic prototype too
22:56:34 <flo> with   _name: "Chat Conversation",
22:56:40 <clokep> OK. :)
22:57:28 <clokep> Also the topic and topic setter?
22:57:34 <flo> (nit)    this.notifyObservers(null,"chat-update-topic"); <-- missing a space after the coma
22:57:51 <clokep> OK.
22:58:06 <flo> yes
22:58:08 <clokep> setTopic isn't what is used when the UI set's the topic, correct?
22:58:46 <flo> I don't know how the UI does it
22:58:50 <flo> Mic probably knows better ;)
22:59:06 <Mic> hmm?
22:59:07 <clokep> I'm realizing I might have thought that did the wrong thing. :)
22:59:16 <Mic> Let me have a look
23:00:10 <Mic> Iirc I', just sending a /TOPIC command and the UI and everything related gets updated after the server responds with the new topic
23:00:23 <Mic> *I
23:00:44 <flo> ahah!
23:00:45 <clokep> Mic: If I double click in the topic UI after I hit enter, what happens?
23:01:03 <flo> clokep: http://lxr.instantbird.org/instantbird/source/instantbird/content/topicNotification.xml#107
23:01:04 <clokep> How does the protocol know to send the command I guess I'm asking? Do you just manually send "/topic..."?
23:01:05 <Mic> Should go back to edit mode again
23:01:10 <flo> it sends a /topic command into the conversation
23:01:14 <Mic> yep
23:01:21 <clokep> Ah, I see. :)
23:01:28 <flo> that's crappy
23:01:34 <clokep> I think it should probably do a "changeTopic" in the protocol or something.
23:02:02 <flo> http://lxr.instantbird.org/instantbird/source/purple/purplexpcom/public/purpleIConversation.idl#133 the "topic" attribute should just be settable
23:02:07 <Mic> flo: I'm sure you reviewed that back then ;)
23:02:39 <Mic> Would be much better, the /TOPIC solution is quite IRC centric
23:02:54 <flo> Mic: yeah, I'm not accusing you of hiding crappy code :).
23:03:05 <flo> I've probably said at the time "we will need to fix that later"
23:03:57 <flo> clokep: I don't understand the _getParticipant function
23:04:38 <flo> or if I understand it correctly there are 2 bugs in it.
23:04:41 <clokep> It attempts to return the object for the wanted participant of a chat, if the participant isn't in the chat yet, it creates the object and returns it.
23:05:18 <flo> ok
23:05:38 <clokep> Bugs would not surprise me. :)
23:05:44 <flo> so first, why is the check done with a normalized nickname, and the rest of the function with the original parameter?
23:05:58 <clokep> Because it's wrong. :)
23:06:21 <flo> add aNick = normalize(aNick, true) as the first line maybe
23:06:26 <clokep> Yes, did that. :)
23:06:31 <flo> or let nick = ... if you don't want to override the parameter value
23:06:38 <clokep> Except...that's wrong as well.
23:07:00 <flo> (by the way, coding style nit, removeStatus -> aRemoveStatus in normalize)
23:07:03 <clokep> ConvChatBuddy needs the real nick, not the normalized one.
23:07:36 <flo> ok, so let nick = ... :)
23:08:38 <Mic> A _get function that changes the participants list sounds misleading
23:08:39 <clokep> Yes. :)
23:08:51 <Mic> What about renaming it?
23:08:58 <flo> ! :)
23:09:17 <flo> clokep: second bug, what happens if my nick is "toString"? :)
23:09:35 <clokep> Perhaps, it's meant to ALWAYS return it. The places where it's used are when we need to find it or create it and return it -- idea for a better name Mic?
23:09:45 <clokep> flo: That sucks. :)
23:10:00 <clokep> It gets normalized to "tostring" and saved that way. :)
23:11:09 <flo> ok, then my nick is __proto__ :)
23:11:39 <clokep> I say ouch and my code crashes? :) How would I fix that?
23:12:21 <flo> replace     if (!this._participants[nick]) by if (!this._participants.hasOwnProperty(nick)
23:13:37 <flo> another ; missing after Chat.prototype = { ... }
23:14:17 <clokep> flo so then I could access the buddy via ["__proto__"] and the real proto via .__proto__?
23:14:23 <clokep> (Just making sure I understand.)
23:14:49 <Mic> clokep: sorry, I can't come up with a good other name either
23:15:18 <Mic> why don't you add something for disambiguation?
23:15:19 <clokep> "get" kind of makes sense since you're "getting" the participant. :) But you're right "get" is usually read-only.
23:15:21 <flo> .__proto__ would give you the buddy too, until you delete it
23:15:27 <clokep> Ah OK.
23:15:47 <Mic> Do the keys actually be the name of the participant?
23:15:53 <Mic> Can't you just prepend something?
23:15:58 <clokep> Sorry, what?
23:16:33 <clokep> You mean can't I just prepend b_ or something so they an never overwrite __proto__ or whatever?
23:16:38 <Mic> yes
23:16:55 <flo> I don't think we need such a hack
23:16:55 <clokep> Eh, I don't think it really matters. I'm not using any other properties of _participants.
23:17:45 <Mic> Using an object as associative array is a hack in itself imo;)
23:17:46 <-- chrisccoulson has quit (Connection reset by peer)
23:18:09 <clokep> But it's an /accepted/ hack. :)
23:18:15 <flo> Mic: using JS instead of writing is asm is a hack too :-P
23:18:25 <Mic> hmm?
23:18:31 <flo> s/is/in/
23:21:01 <flo> let mode = {}; mode["@"] = "op"; mode["%"] = "halfOp"; mode["+"] = "voiced"; if (aName[0] in mode) this[mode[aName[0]]] = true;
23:21:04 <flo> is this shorter?
23:21:39 <flo> the creation of the mode object could be moved out of the ConvChatBuddy constructor so that it's created only once.
23:22:04 <clokep> Probably.
23:22:21 <clokep> That's IRC specific, isn't it flo?
23:22:40 <flo> yeah.
23:22:50 <-- rikki has quit (Ping timeout)
23:22:52 --> rikki has joined #instantbird
23:22:54 <flo> outsite of the constructor = 3 lines above in the same file
23:23:57 --> chrisccoulson has joined #instantbird
23:24:04 <clokep> Sorry, I didn't catch that flo.
23:24:05 <flo> I'm not really a fan of the switch/case construction. It's easy to forget a "break"
23:24:55 <clokep> OK.
23:25:07 <Mic> let mode = { "@": "op", "%": "halfOp", "+": "voiced"};  should work as well in this case, if I'm not mistaken
23:25:20 <clokep> I just did that. :) Trying it now.
23:25:33 <Mic> Error console says yes :)
23:25:37 <flo> Mic: I think you will be disappointed
23:25:39 <flo> ah?
23:26:03 <flo> what's your error console saying?
23:26:15 <Mic> var mode = { "@": "op", "%": "halfOp", "+": "voiced"}; mode["%"]
23:26:16 <clokep> Mic: That works.
23:26:19 <flo> mine says "invalid label"
23:26:24 <Mic> outputs halfOp
23:27:50 <flo> ah, I understand. It needs something to understand that it's a value and not some code inside a code block.
23:27:56 <flo> ok, it's even shorter then :)
23:28:11 <flo> then "const mode", not var :)
23:28:33 <clokep> Should the mode be defined outside the function then?
23:28:33 <Mic> I'm always using var on the error console
23:29:26 * clokep thinks flo isn't gonna like the switch statement that's coming up then. ;)
23:29:29 <flo> hmm. I'm not sure the performance difference would be noticeable, so I guess whatever is most readable is ok
23:30:00 <flo> Mic: I tend to put things inside (), that works too :)
23:30:56 <flo> can't this   get name() this._name thing be moved to jsProtoHelper?
23:31:21 <flo> and then ConvChatBuddy.prototype = GenericConvChatBuddyPrototype;
23:31:32 <clokep> Yes. :)
23:32:32 <clokep> Is there any particular reason I can't just store stuff in name btw?
23:32:36 <clokep> And it has to be a getter?
23:33:26 <flo> probably not
23:34:29 <clokep> OK.
23:35:36 <flo>   _conversations: {}, and   _buddies: {}, in Account.prototype sound like things that should go inside the constructor with an "=" instead of ":"
23:36:18 <clokep> Probably all of those things should be?
23:36:38 <Mic> flo: sorry for interrupting, but why is it better to do it this way (moving them to the constructor)
23:36:42 <clokep> I need to put them in the constructor with = if they'll be different for every object created, right?
23:36:43 <flo> only the array and object
23:36:58 <flo> clokep: yes
23:37:38 <clokep> But only for objects/arrays? For just a variable they'll be unique each time I create it?
23:39:17 <flo> Mic: try this in the error console: http://pastebin.instantbird.com/504
23:40:43 <flo> clokep: the simple values don't exhibit this problem because you can't modify them, so if you change the value, you will necessarily assign the new value, which will override the prototype value for this instance only.
23:41:17 <clokep> Ah, OK. :)
23:41:29 <clokep> Inheritance in JS is very strange :-\
23:41:52 <Mic> That is strange
23:41:56 <flo> it's very logical once you understand it correctly... and very different from what people know.
23:42:16 <clokep> I'm used to Java's form of inheritance, but it's all honestly very fuzzy at this point.
23:42:27 <flo> Mic: no, it's not. The prototype is an object shared by all instances.
23:43:38 <clokep> flo: I believe the next part is the fun part? :)
23:43:49 <flo> the big switch?
23:43:57 <clokep> No. The socket code.
23:44:00 <flo> ah
23:44:04 <clokep> Which should be removed and made more...general.
23:44:31 <flo> didn't you say you had a bug with some messages cut in the middle by the way?
23:44:40 <clokep> Yes.
23:44:59 <flo> it's probably caused by the code in the onDataAvailable function
23:45:00 <clokep> I think it has to do with the onDataAvailable cutting in the middle.
23:45:06 <clokep> Yes. :)
23:45:26 <flo> it should not attempt to handle the last item of the data array 
23:45:43 <clokep> I wasn't sure if that was the proper way to handle it or not and just left it.
23:45:46 <flo> and keep that for the next time
23:46:01 <clokep> Do I need to manually keep it? Like create a buffer variable and add it back in?
23:46:08 <flo> I don't know if that's "the proper way", but if should make the bug disappear
23:46:33 <flo> I don't know that API well enough
23:46:44 <clokep> The documentation is pretty eh on it.
23:46:53 <flo> maybe you can push it back to handle it the next time onDataAvailable is called
23:47:02 <clokep> I feel like I could use count, but only if I got the same # of characters each time.
23:47:21 <flo> Mic: is it clear now or do you need more explanation / to sleep on it? :)
23:48:22 <Mic> the latter ;)
23:51:31 <flo> clokep: for now I would suggest you just store the incomplete data in a string buffer inside your object
23:52:50 <clokep> flo: I just wrote some code for that. I think it'll work...
23:53:37 <flo> what were these empty messages? (      if (data[i].length) // Skip empty messages)
23:53:49 <clokep> They're gone now. :)
23:53:59 <flo> was always the last one? ;)
23:54:02 <clokep> When you split on \r\n, you'd end up with an empty string at the end.
23:54:10 <clokep> Yes. But now I just set that to the buffer and voila it should all work.
23:54:27 <flo> seems great
23:54:45 <flo> I hope it will work better after all those changes :)
23:55:10 <clokep> Ah, I hope it will work at all. :)
23:55:40 <flo> I thought it was already usable. :-)
23:56:34 <flo> _connnectionRegistration remove an "n" :)
23:56:44 <clokep> I hope I don't break it I mean! :)
23:57:59 <flo> I'm looking at _connnectionRegistration. Is the RFC really asking for the password before the nick?
23:58:09 <flo> that seems a strange order
23:58:41 <clokep> http://tools.ietf.org/html/rfc2812#section-3.1
23:58:57 <clokep> RECOMMENDED ORDER: 1 Pass message, 2. Nick message, 3. user message
23:59:07 <clokep> I guess if you don't have the pass it doesn't even like you on at all.
23:59:13 <clokep> Since the password has nothing to do with your nick?
23:59:54 <flo> those people are crazy :-D