#instantbird log on 05 03 2014

All times are UTC.

00:02:32 * Fallen|away is now known as Fallen
00:10:33 <-- unghost has quit (Input/output error)
00:12:04 * Fallen is now known as Fallen|away
00:35:02 <-- quartzjer has quit (Quit: Leaving.)
00:59:24 <-- Mook_as has quit (Quit: Mook_as)
01:39:44 <-- Rym has quit (Ping timeout)
01:40:07 --> Rym has joined #instantbird
01:44:36 <-- Rym has quit (Ping timeout)
01:45:13 --> Rym has joined #instantbird
01:59:02 <-- Armada has quit (Connection reset by peer)
02:48:01 --> mconley has joined #instantbird
03:29:19 <instant-buildbot> build #2131 of macosx-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/2131
03:51:06 <instant-buildbot> build #1351 of win32-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/win32-nightly-default/builds/1351
04:27:33 <-- mconley has quit (Input/output error)
04:33:02 <-- jb has quit (Ping timeout)
04:41:11 <-- nhnt11 has quit (Ping timeout)
04:50:41 --> mconley has joined #instantbird
05:00:29 <-- mconley has quit (Input/output error)
05:13:21 <-- wnayes has quit (Quit: wnayes)
05:17:19 --> nhnt11 has joined #instantbird
05:39:03 <-- flo-retina has quit (Ping timeout)
05:46:37 <-- Rym has quit (Ping timeout)
05:50:00 --> dew1 has joined #instantbird
05:50:27 <-- dew has quit (Ping timeout)
06:01:03 --> mconley has joined #instantbird
06:06:20 <-- mconley has quit (Ping timeout)
06:09:05 * nhnt11 just got a call from a FedEx delivery guy
06:09:56 <nhnt11> Looks like my GSoC welcome package is coming :D
06:10:09 <nhnt11> Too bad I won't be able to see it till I go home for the summer...
06:18:39 <-- sawrubh has quit (Ping timeout)
06:22:30 --> sawrubh has joined #instantbird
06:30:20 --> mayanktg has joined #instantbird
06:31:15 <mayanktg> clokep|spiderman: Hello!
06:31:56 <mayanktg> clokep|spiderman: I tried using the OS.File.writeAtomic method. I can save a text file inside the Profile Directory :)
07:24:22 <nhnt11> mayanktg: So how's that patch coming? (Just curious)
07:24:37 <nhnt11> You're trying to encode an image from a canvas and save it to a file right?
07:29:13 <mayanktg> nhnt11: Yes. I'm able to save files now to profile Directory. Just struggling with saving the image in the canvas :|
07:32:51 <nhnt11> mayanktg: What's the problem? I'm a bit free and dabbling with OS.File myself ;)
07:33:43 * Fallen|away is now known as Fallen
07:35:00 <mayanktg> nhnt11: I'm able to use TextEncoder() and save file as text. but how can I use it to store ArrayBuffer?
07:35:19 <mayanktg> i.e. the image I have captured from the canvas?
07:37:29 <mayanktg> nhnt11: wait let me pastebin
07:40:05 <mayanktg> nhnt11: http://pastebin.instantbird.com/694091 from line 79
07:41:23 <nhnt11> mayanktg: I'm confused why you're creating a new ArrayBuffer()
07:41:34 <nhnt11> read.result should be an ArrayBuffer already
07:41:42 <nhnt11> let me look something up...
07:42:33 --> gerard-majax_ has joined #instantbird
07:43:29 <-- mayanktg has quit (Ping timeout)
07:44:07 --> mayanktg has joined #instantbird
07:44:19 <nhnt11> Yeah, let x = reader.result should work
07:44:52 <nhnt11> then you create your view, open a file using OS.File.open, and call write() on the File returned by the promise
07:45:14 <mayanktg> Ok. let me try this :)
07:46:15 <nhnt11> Look at https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread#OS.File.open%28%29 and https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread#write%28%29
07:47:15 <nhnt11> Um, wait
07:47:20 <nhnt11> Just use writeAtomic
07:47:32 <nhnt11> I was wrongly under the impression that writeAtomic couldn't write ArrayBufferViews.
07:47:50 <nhnt11> You don't need a TextEncoder, btw. Just pass the view directly
07:58:07 <-- gerard-majax_ has quit (Ping timeout)
08:09:35 --> flo-retina has joined #instantbird
08:09:35 * ChanServ sets mode +qo flo-retina flo-retina 
08:14:25 <-- EionRobb has quit (Quit: Leaving.)
08:16:21 <-- dew1 has quit (Connection reset by peer)
08:22:25 <nhnt11> mayanktg: Any luck
08:22:25 <nhnt11> ?
08:27:35 <-- mayanktg has quit (Ping timeout)
08:28:08 --> mayanktg has joined #instantbird
08:28:30 <flo-retina> for those who were curious, this is how things look under the AMI's hood now: http://queze.net/goinfre/mamie/sortie-moteur/IMG_3095.jpg
08:28:41 <flo-retina> and the parts I was looking for this week: http://queze.net/goinfre/mamie/sortie-moteur/pieces.jpg
08:29:15 <flo-retina> (plenty of other photos in the same folder, as usual, for the very curious :))
08:30:34 <-- clokep|spiderman has quit (Connection reset by peer)
08:31:47 --> clokep|spiderman has joined #instantbird
08:37:18 <-- mayanktg has quit (Ping timeout)
08:37:45 --> mayanktg has joined #instantbird
08:46:40 --> gerard-majax_ has joined #instantbird
08:47:23 --> Mic has joined #instantbird
08:47:23 * ChanServ sets mode +o Mic 
08:50:10 <-- mayanktg has quit (Ping timeout)
08:50:36 --> mayanktg has joined #instantbird
08:51:14 --> mpmc has joined #instantbird
08:55:14 <Mic> Good morning!
08:59:00 <Mic> mayanktg: I see nhnt11 already commented on the current WIP :)
08:59:35 <Mic> Make sure to also have a look at line 88 in this pastebin again.
08:59:39 <-- gerard-majax_ has quit (Ping timeout)
09:00:19 <Mic> That's because I doubt that "{tmpPath: newName.tmp}" is what you wanted to write...
09:16:56 <mayanktg> Mic: yes. that should have been {tmpPath: newName + ".tmp"} ?
09:19:41 <Mic> Yes, for example.
09:20:50 <Mic> Is it clear what clokep said about "foo.result" during the discussion about the WIP?
09:23:14 <mayanktg> no. I tried using read.result but it showed an error...
09:23:42 <mayanktg> as nhnt11 said today, let x = reader.result 
09:26:47 <Mic> Yes, "read.result" is what it should be.
09:27:20 <Mic> clokep wanted to say that there's an object with the property "results" that contains the data you need.
09:28:09 <mayanktg> ok!
09:28:33 <Mic> Can you show me what didn't work as you expected (when trying to use read.result) ?
09:31:23 <mayanktg> yes. as far I understood nhnt11 explained that there's no need of creating an ArrayBuffer again. As read.result would suffice. I'm pastebin' the diff 
09:34:21 <mayanktg> http://pastebin.instantbird.com/694197 Line 80
09:39:51 <Mic> It looks like you mixed code for using "write" and "writeAtomic". These methods work differently, so you need to make sure that you're using the right parameters there...
09:41:27 <mayanktg> ok. I want to use writeAtomic.
09:42:57 <mayanktg> Let me figure this out. 
09:49:33 * Fallen is now known as Fallen|away
09:57:16 <-- mayanktg has quit (Ping timeout)
09:58:53 --> mayanktg has joined #instantbird
09:59:33 <-- flo-retina has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
10:16:53 <-- mayanktg has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
10:47:41 <-- Mic has quit (Ping timeout)
10:53:17 --> Mic has joined #instantbird
10:53:18 * ChanServ sets mode +o Mic 
11:06:54 --> iamjayakumars has joined #instantbird
11:14:38 <-- iamjayakumars has quit (Ping timeout)
11:15:41 <Mic> mayanktg: I commented on the latest WIP that you posted. It's here: http://pastebin.instantbird.com/694292
11:28:51 --> jb has joined #instantbird
11:51:52 <-- jb has quit (Ping timeout)
11:58:20 --> Armada has joined #instantbird
12:32:14 --> mikk_s has joined #instantbird
12:36:09 --> mconley has joined #instantbird
12:37:57 <-- mconley has quit (Ping timeout)
12:50:07 * clokep|spiderman is now known as clokep
12:55:03 <clokep> Mic: You don't need a temporary file? Isn't that the point of writeAtomic?
12:58:08 <Mic> Temporary only because its has no purpose after being passed to setUserIcon (which makes a copy of it).
12:58:28 <Mic> *it
12:59:19 <-- mpmc has quit (Ping timeout)
13:00:03 --> mpmc has joined #instantbird
13:02:39 <Mic> (i.e. we only need to write the canvas data to disk temporarily because setUserIcon is expecting to receive a file as parameter)
13:03:41 <clokep> Mic: Ah OK! Then yes, makes sense. :)
13:03:41 --> mayanktg has joined #instantbird
13:03:47 <clokep> Sorry for the confusion.
13:03:50 <clokep> I'll go bcak in my corner now.
13:05:18 <Mic> On the other hand it might be nice to have a folder where you could look up images that you took earlier (and maybe re-use them if you like them a lot)?
13:05:54 <clokep> That's follow up territory.
13:06:18 <Mic> Sure (and in this case we should't throw them in the root of the profile folder either but find a nicer place)
13:07:18 <clokep>  /dev/null? :P
13:08:45 --> quartzjer has joined #instantbird
13:20:37 * Fallen|away is now known as Fallen
13:24:45 <-- chrisccoulson has quit (Ping timeout)
13:25:05 --> chrisccoulson has joined #instantbird
13:33:20 <mayanktg> Mic: and the image is saved successfully in Profile Directory :D
13:33:42 <Mic> So it worked? Great!
13:33:57 <nhnt11> Mic, mayanktg: Why not change setUserIcon to accept an ArrayBuffer or something? Wouldn't that save steps
13:34:15 <nhnt11> (i.e. eliminate writing data to a file, and then reading that same data again)
13:34:29 <nhnt11> er, not change, but rather extend
13:34:33 <mayanktg> Mic: yes. 
13:34:41 <Mic> nhnt11: I thought about that too but I think it's not worth it.
13:35:14 * nhnt11 is annoyed at the thought of writing data and reading it gain.. seems redundant
13:35:32 <nhnt11> I don't know that code though, so your call. *goes back into his corner*
13:37:41 <clokep> I'd leave it the way it is.
13:37:51 <clokep> I doubt extending it to accept multiple types of parameters is easy.
13:37:57 <clokep> Thanks for the suggestion though.
13:43:30 * Fallen is now known as Fallen|away
13:47:35 <Mic> mayanktg: do you have questions how to work with the promise that writeAtomic returns?
13:49:26 <mayanktg> Mic: yes :) . Also the user icon though saved in directory, isn't set as the user icon. What needs to done for that?
13:50:25 <Mic> Yes, it's just stored on the disk now. You still need to set it as user icon.
13:51:27 <mayanktg> I'll now have to
13:51:27 <mayanktg> * set a proper resolution for the image (lower than the present 640X480)
13:51:27 <mayanktg> * the webcam shouldn't start automatically with start of Ib
13:51:27 <mayanktg> * perform nits
13:51:34 <-- mikk_s has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
13:52:08 <mayanktg> Mic: I should figure out how setUserIcon does this...
13:52:10 <Mic> I wouldn't worry about the resolution. It's going to be scaled down while being set as user icon anyways.
13:52:25 <Mic> No, you shouldn't ;)
13:54:17 <Mic> You really shouldn't, by the way. There's no need to copy what setUserIcon is doing already.
13:55:06 <mayanktg> Ok. Then how will the captured image be set as user icon then?
13:58:40 --> aleth has joined #instantbird
13:58:40 * ChanServ sets mode +o aleth 
13:59:45 <nhnt11> mayanktg: Pass the file to setUserIcon?
14:04:34 <nhnt11> aleth: ping
14:04:45 <aleth> hi :)
14:05:19 <nhnt11> aleth: So I was thinking about how OS.File could potentially eliminate our issues with logs getting lost at shutdown
14:05:47 <nhnt11> Assuming we want to do something similar to what we already have and open a file and keep it open for continuous appending, this isn't really possible is it?
14:06:14 <aleth> I don't think that's what we should be doing (but I'm willing to be convinced otherwise)
14:06:30 <nhnt11> Unless we opened, appended, flushed, and closed every time we log (a) message(s)
14:07:16 <nhnt11> Um, I'm going to look some stuff up
14:07:19 <aleth> There seem to be two possibilities
14:07:44 <aleth> one, using AsyncShutdown is enough and we keep files open as we do atm
14:08:21 <aleth> two (probably better), make sure we close the file regularly when we are not actively writing to it
14:08:53 <aleth> Well, or like you say, the third possibility is always open/close, but I suspect that's too much File I/O overhead.
14:09:04 <nhnt11> Hmm, so for the second case, automatically close the file after a minute or something?
14:09:11 <nhnt11> (or maybe sooner)
14:09:15 <aleth> Yeah.
14:09:28 * nhnt11 doesn't know what AsyncShutdown is and looks it up
14:09:47 <aleth> AsyncShutdown is something we should use in any case imho
14:10:33 <aleth> http://dutherenverseauborddelatable.wordpress.com/2014/02/14/shutting-down-things-asynchronously/ describes the idea behind it better than the mdn page
14:10:36 * nhnt11 is reading https://bugzilla.mozilla.org/show_bug.cgi?id=913899
14:10:40 <instantbot> Bug 913899 nor, --, mozilla26, dteller, RESO FIXED, [OS.File] Ensure that OS.File doesn't lose data during shutdown
14:11:09 <aleth> Oh, that's interesting.
14:11:41 <aleth> I wonder if that means OS.File already uses it automatically so we don't have to worry about it?
14:11:55 <nhnt11> That's what I'm trying to figure out
14:12:25 <aleth> If in doubt, just ping Yoric.
14:12:47 <nhnt11> Yeah, I was thinking of that too
14:12:57 <nhnt11> I'll google a bit first though :)
14:13:18 <aleth> There's really been a lot of great improvements around file i/o etc.
14:14:59 <nhnt11> Yoric's blog is super interesting :)
14:15:01 --> mconley has joined #instantbird
14:15:27 <aleth> Yeah, very high signal/noise ratio ;)
14:17:10 <Mic> nhnt11: afaik flushing is extremely expensive on some platforms.
14:17:23 <aleth> Mic: Yes, that's definitely the case.
14:19:44 <nhnt11> Looks like I had some misconceptions with flushing
14:21:55 <-- mayanktg has quit (Client exited)
14:22:45 <Mic> I think I read that on Windows it is writing all data that's waiting to be written, not just your own file?
14:23:27 <nhnt11> Mic: Well when I used the term "flush" I just meant flush the stream
14:23:35 <aleth> Right, Windows can't flush individual files at all.
14:24:06 <aleth> So it's completely unpredictable how expensive an operation it is.
14:26:06 * nhnt11 decides to ping yoric
14:28:03 <aleth> If we just keep the file open, there's no need to use the tmp file features of writeAtomic. On the other hand if we regularly close we can use them when appending.
14:28:45 <nhnt11> aleth: you mean make a copy of the existing file, append, and replace?
14:29:15 <aleth> nhnt11: If you look at the options parameter of writeAtomic, the tmpPath
14:31:46 <nhnt11> aleth: The reason I'm skeptical about writeAtomic is that I need to pass the full text contents to be written
14:31:59 <nhnt11> (right? :S)
14:32:27 <nhnt11> I don't see an append option there
14:32:53 <aleth> Uh.
14:33:43 <aleth> I thought append was the default unless you specify overwrite somewhere?
14:34:11 <aleth> Good point though, needs checking.
14:34:22 <nhnt11> aleth: That's for write() on a File insantce
14:34:34 <nhnt11> writeAtomic overwrites the file completely
14:34:45 <aleth> Ah, there is a noOverwrite parameter.
14:34:50 * Fallen|away is now known as Fallen
14:34:57 <nhnt11> aleth: That just throws an error
14:35:00 <aleth> But then it just fails rather than appends.
14:35:04 <nhnt11> yeah
14:35:04 <aleth> Yeah.
14:35:18 <Mic> Yeah :P
14:35:30 <Mic> I need to go, have a nice day!
14:35:34 <nhnt11> Bye!
14:35:50 <aleth> nhnt11: OS.File.open(...mode:append)
14:36:22 <nhnt11> Right right. I'd be using a standard write() on the returned File though like I said
14:39:02 <aleth> I think it depends.
14:40:41 <aleth> For the appending issue, I don't see how it makes any difference.
14:41:11 <nhnt11> Wait what? What doesn't make a difference?
14:41:18 <nhnt11> writeAtomic is not available on file instances
14:42:05 * nhnt11 feels like we're talking past each other
14:42:20 * aleth thinks so too
14:42:29 <aleth> Wait, I think I get what you mean.
14:43:02 <nhnt11> I'm saying writeAtomic is a convenience method for opening a file, writing to it, and closing it, which we can't use
14:43:10 <nhnt11> (because we need to append)
14:46:19 <aleth> Yes. It's surprising to me there seems to be no way round that, I feel like I must be missing something.
14:46:38 <nhnt11> It makes sense to me
14:47:13 <nhnt11> The point of writeAtomic is to use a temp file. If we want to do that while appending, we still need to read the entire contents of hte existing file, copy it, append ,and replace
14:47:42 <aleth> Well, copy it and then append to the copy.
14:47:44 <nhnt11> writeAtomic would do the copy, append, and replace steps
14:47:57 <nhnt11> Yeah. append to the copy, replace the old file.
14:48:12 <Fallen> Yoric in #developers would know
14:48:15 <aleth> It makes sense if you think of it as a helper function, like you say.
14:48:37 <nhnt11> I don't think it makes sense to copy the contents of the file every time we want to append something..
14:48:45 <nhnt11> Yeah, I joined #developers a few minutes ago
14:48:49 <nhnt11> I'll ask him :)
14:48:50 <aleth> It doesn't!
14:49:29 <aleth> nhnt11: https://mxr.mozilla.org/mozilla-central/source/toolkit/components/osfile/modules/osfile_shared_front.jsm#416
14:49:42 <Mic> Can you copy opened files?
14:50:40 <Mic> Write to a temporary file (or append to it) and copy it from time to time to the real file. Would save have of the copy operations. Still doesn't sounds like something you want to do in my opinion.
14:50:41 <aleth> Might be easier to just take some of that code as inspiration/documentation ;)
14:51:10 <aleth> nhnt11, Mic: What I'm trying to figure out is what's the safest way to continually add to a file without losing the whole thing if there is a problem.
14:51:17 * nhnt11 thinks we just want to use open() and write()
14:51:29 * nhnt11 pings Yoric
14:51:45 <aleth> nhnt11: I agree. I misunderstood writeAtomic, I thought it could do more than it does.
14:52:02 <aleth> Which comes from never having used it ;)
14:52:11 * nhnt11 has used it ;)
14:52:50 <aleth> That was a nice clean "write the whole thing at once" though ;)
14:53:07 <nhnt11> Yeah
14:53:26 <aleth> Which apparently is what it's for, so yeah.
14:54:10 <-- Mic has quit (Quit: Instantbird -- http://www.instantbird.com)
14:54:36 <-- mconley has quit (Ping timeout)
14:57:43 * Fallen is now known as Fallen|away
14:59:37 <-- quartzjer has quit (Ping timeout)
15:01:03 <aleth> I wonder if there is any safety gain at all from closing and then reopening the same file.
15:01:09 --> quartzjer has joined #instantbird
15:02:15 <aleth> There might be for networked drives.
15:04:45 --> mconley has joined #instantbird
15:05:10 <-- mconley has quit (Input/output error)
15:05:10 <nhnt11> gtg
15:05:14 <nhnt11> Bye for now!
15:11:44 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
15:29:13 <-- quartzjer has quit (Quit: Leaving.)
15:37:08 --> mayanktg has joined #instantbird
15:53:58 <aleth> mayanktg: So you can set user icons from the webcam now? Great! :)
15:54:07 <-- BWMerlin has quit (Quit: BWMerlin)
15:54:29 <mayanktg> aleth: Yes. But I have to set this image as user icon now 
15:54:35 <mayanktg> :|
15:54:50 <aleth> What's the problem?
15:56:26 <mayanktg> Shall I use Services.core.globalUserStatus.setUserIcon(fp.file) to pass the file to setuserIcon? What should be "fp.file" here?
15:57:24 --> Rym has joined #instantbird
15:57:35 <aleth> To answer questions like that, you look at the idl file where the method is defined.
15:57:51 <mayanktg> Ok.
15:58:01 <aleth> So, search mxr for "setUserIcon" and you find it's in this idl http://mxr.mozilla.org/comm-central/source/chat/components/public/imIUserStatusInfo.idl#29
15:58:15 <aleth> This tells you that the parameter is a nsIFile.
15:58:48 <aleth> Have you written the webcam image to a file?
15:58:58 <mayanktg> aleth: Yes.
15:59:09 <aleth> Using OS.File or...?
15:59:28 <mayanktg> Using Os.File only
15:59:34 --> quartzjer has joined #instantbird
16:00:03 <mayanktg> I guess nslFile won't work here then?
16:00:15 <aleth> OK. So the problem is that nsIFile is the older file API. You'd have to close the OS.File and then reopen it with the nsIFile API and then pass that to setUserIcon
16:00:47 <mayanktg> Ok 
16:00:50 <mayanktg> got it
16:01:53 <aleth> Alternatively, you could write the webcam image directly to the user icon.
16:02:46 <mayanktg> That would be a better way
16:03:19 <aleth> Then you'd have to look at the setUserIcon code here http://mxr.mozilla.org/comm-central/source/chat/components/src/imCore.js#168
16:06:41 <aleth> Once you have that working, you'll want to find a way to organise your code so you don't end up with duplicated code.
16:08:07 <aleth> i.e. the parts of setUserIcon that you duplicate will have to be split out into methods that your code and setUserIcon can call.
16:09:02 <-- Rym has quit (Ping timeout)
16:09:39 <mayanktg> I'm trying that
16:09:48 --> Rym has joined #instantbird
16:09:54 <aleth> Can you pastebin what you have at the moment?
16:10:29 <aleth> Or do it once it's working.
16:11:25 <mayanktg> Ok. I'll do it in a few minutes
16:11:42 <aleth> Btw do you have those about.config prefs set I mentioned to you the other day? They help with debugging.
16:13:51 <mayanktg> yes. I set the values of about:config as you mentioned
16:14:18 <aleth> Cool. That way you end up with more useful information in the error console or terminal (as you prefer)
16:14:25 <mayanktg> thanks :) I didn't know about these
16:14:58 --> gerard-majax_ has joined #instantbird
16:18:15 --> Mic|mobile has joined #instantbird
16:19:39 <-- mayanktg has quit (Ping timeout)
16:19:43 <Mic|mobile> Aleth, mayamktg: Imo reopening the file is good enough for now.
16:20:24 <aleth> That's certainly the fastest option.
16:20:42 <Mic|mobile> I want to avoid running into Thema too-many-options trap again...
16:21:03 <Mic|mobile> *the
16:22:14 --> mayanktg has joined #instantbird
16:24:30 <aleth> mayanktg: This should work to go from a Promise to setUserIcon http://pastebin.instantbird.com/694561
16:25:16 <mayanktg> aleth: Ok :)
16:25:49 <aleth> I think Mic is right and we should not worry about reorganising setUserIcon in this patch.
16:26:41 <aleth> Because, thinking it over, the only clean way to do it would probably be to rewrite it so everything uses the same API... and that's for a different bug.
16:31:12 <Mic|mobile> Tbh my concern was that there might be too ways to choose again.
16:33:02 <aleth> Not that many ways to choose I think, but there are more important/useful things to be doing.
16:33:49 <aleth> It's not like this is code that gets called all the time...
16:35:49 <-- quartzjer has quit (Ping timeout)
16:37:04 --> flo-retina has joined #instantbird
16:37:04 * ChanServ sets mode +qo flo-retina flo-retina 
16:38:36 <Mic|mobile> aleth code should help with the nsIFile stuff. You'll only need to do minor modifications on it...
16:41:34 --> mconley has joined #instantbird
16:43:20 <-- nhnt11 has quit (Ping timeout)
16:43:31 <-- Rym has quit (Ping timeout)
16:44:07 --> nhnt11 has joined #instantbird
16:44:52 <Mic|mobile> gtg
16:46:44 <aleth> mayanktg: pastebin if you get stuck.
16:48:33 <-- Mic|mobile has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com ))
16:53:00 --> Rym has joined #instantbird
16:59:28 <-- gerard-majax_ has quit (Ping timeout)
17:00:21 --> petunia has joined #instantbird
17:00:35 <-- petunia has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
17:27:06 <-- mayanktg has quit (Ping timeout)
17:34:07 --> mayanktg has joined #instantbird
17:45:48 --> gerard-majax_ has joined #instantbird
17:48:21 <-- gerard-majax_ has quit (Ping timeout)
17:54:18 <-- aleth has quit (Ping timeout)
17:54:18 <-- mayanktg has quit (Ping timeout)
17:55:02 <-- Rym has quit (Ping timeout)
17:55:49 --> wnayes has joined #instantbird
17:57:31 --> aleth has joined #instantbird
17:57:31 * ChanServ sets mode +o aleth 
17:58:18 --> Rym has joined #instantbird
17:58:28 --> mpmc has joined #instantbird
18:11:10 <-- mconley has quit (Input/output error)
18:11:24 --> Mic has joined #instantbird
18:11:24 * ChanServ sets mode +o Mic 
18:17:04 <aleth> Looks like the tree is open again :)
18:35:21 --> quartzjer has joined #instantbird
18:36:30 <-- aleth has quit (Ping timeout)
18:50:17 <-- quartzjer has quit (Ping timeout)
19:25:06 --> kramolnik has joined #instantbird
19:35:30 --> quartzjer has joined #instantbird
19:59:30 <-- kramolnik has quit (Ping timeout)
20:11:00 <-- Mic has quit (Ping timeout)
20:22:39 <-- quartzjer has quit (Quit: Leaving.)
20:22:40 --> Mic has joined #instantbird
20:22:40 * ChanServ sets mode +o Mic 
20:22:54 <-- sawrubh has quit (Ping timeout)
20:26:30 --> sawrubh has joined #instantbird
20:27:58 --> quartzjer has joined #instantbird
20:49:39 <-- quartzjer has quit (Quit: Leaving.)
20:54:20 --> quartzjer has joined #instantbird
20:54:34 <-- quartzjer has quit (Quit: Leaving.)
20:58:53 <-- spiffytech has quit (Ping timeout)
21:02:09 --> spiffytech has joined #instantbird
21:13:07 --> quartzjer has joined #instantbird
21:17:35 <-- quartzjer has quit (Quit: Leaving.)
22:02:53 <-- Mic has quit (Quit: Instantbird -- http://www.instantbird.com)
23:04:35 --> BWMerlin has joined #instantbird
23:30:09 --> quartzjer has joined #instantbird
23:31:26 <-- quartzjer has quit (Quit: Leaving.)
23:44:12 <-- Suiseiseki has quit (Ping timeout)
23:44:56 --> EionRobb has joined #instantbird
23:47:06 --> Suiseiseki has joined #instantbird
23:56:09 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)