Open in new window / Try shogun cloud
--- Log opened Sat Jun 14 00:00:32 2014
-!- zxtx_ [] has joined #shogun00:29
-!- iglesiasg [] has joined #shogun00:40
-!- mode/#shogun [+o iglesiasg] by ChanServ00:40
-!- zxtx_ [] has quit [Ping timeout: 240 seconds]01:34
-!- thoralf [] has joined #shogun01:36
-!- iglesiasg [] has quit [Ping timeout: 252 seconds]02:25
-!- thoralf [] has quit [Quit: Konversation terminated!]02:29
shogun-buildbotbuild #27 of nightly_fedora is complete: Failure [failed git]  Build details are at  blamelist: Heiko Strathmann <>, lambday <>, Fernando Iglesias <>, Parijat Mazumdar <>03:00
-!- soumyaC [uid15286@gateway/web/] has quit [Quit: Connection closed for inactivity]05:56
shogun-buildbotbuild #826 of nightly_default is complete: Failure [failed notebooks]  Build details are at  blamelist: Heiko Strathmann <>, lambday <>, Fernando Iglesias <>, Parijat Mazumdar <>07:40
-!- iglesiasg [] has joined #shogun07:52
-!- mode/#shogun [+o iglesiasg] by ChanServ07:52
-!- iglesiasg [] has quit [Quit: Leaving]08:13
-!- kislay [~Abhijeet@] has joined #shogun08:25
-!- abinash_panda [~abinash@] has joined #shogun13:47
-!- thoralf [] has joined #shogun15:08
thoralfabinash_panda: Hey.15:36
-!- thoralf [] has quit [Ping timeout: 252 seconds]16:15
-!- thoralf [] has joined #shogun16:21
-!- thoralf [] has quit [Ping timeout: 240 seconds]17:13
-!- abinash_panda [~abinash@] has quit [Ping timeout: 240 seconds]18:53
-!- abinash_panda [~abinash@] has joined #shogun19:11
-!- zxtx_ [~zv@] has joined #shogun19:25
-!- soumyaC [uid15286@gateway/web/] has joined #shogun20:04
-!- zxtx_ [~zv@] has quit [Ping timeout: 245 seconds]20:11
-!- khalednasr [~k.nasr92@] has joined #shogun20:52
-!- abinash_1anda [~abinash@] has joined #shogun20:54
-!- abinash_panda [~abinash@] has quit [Ping timeout: 244 seconds]20:57
-!- kislay [~Abhijeet@] has quit [Ping timeout: 240 seconds]20:59
-!- abinash_1anda is now known as abinash_panda21:00
-!- thoralf [] has joined #shogun21:15
abinash_pandahey thoralf !21:15
thoralfHey abinash_panda21:15
abinash_pandaI have some doubts regarding the hashing of sparse vector.21:16
abinash_pandaI went through the paper  K. Weinberger, Feature Hashing for Large Scale Multitask Learning21:16
abinash_pandaand have some confusion regarding the hashing21:16
abinash_pandaI had sent you a mail regarding it ;)21:16
thoralfI know - but I don't understand what's the difference between both formulas.21:17
thoralfAh, I see.21:18
thoralfNo, the formula is correct.21:18
thoralfYou want wo sum over all indices, which are hashed to the same value.21:18
abinash_pandathoralf: Okay. Thats what I am saying that we should sum over all the x[j] j:h(j) == i21:20
abinash_pandainstead of x[i] j:h(j) == i21:20
thoralf\xi(j) x_j21:21
abinash_pandaor \xi(i) x_j ??21:22
thoralfI see your point.  It's a typo in the paper.21:22
thoralfWe have two hashing functions over (j).21:22
thoralfOne is hashing the feature indices, the other is "toggling" the prefix of the summed value.21:23
abinash_pandaOkay. I got it.21:24
thoralfThey fixed it in this paper.21:24
abinash_pandaSo, with this I had modified my hash_vector() method and the results are21:24
abinash_panda[0.0 sec] created random sparse vector: 262144 features, 268435456 dimensions, [min;max;len]=[440;268435454;261995]21:25
thoralfBut I found out that your version is slower.21:25
abinash_panda[10.7 sec] tklein23 implementation -- 24.021:25
abinash_panda[3.2 sec] abinash implementation -- 79.821:25
thoralfYou need to create "sparse" hashed vectors.21:25
thoralfuint32_t hash_dim  = 1 << 1821:25
thoralfint32_t num_features = 1 << 1221:25
thoralfBoth parameters were switched, thus creating *dense* vectors.21:26
thoralfYour implementation always creates a *dense* vector as intermediate vector.21:27
thoralfIt has to be allocated, zero()ed, assigned and then iterated over.21:27
thoralfAnd if the hash space is big enough, this can be expensive.21:27
-!- lisitsyn [~qdrgsm@] has joined #shogun21:30
lisitsynkhalednasr: hey21:30
abinash_pandaYeah, I have seen it.21:30
khalednasrlisitsyn, hey21:30
lisitsynkhalednasr: gonna glance over your pr just now21:30
lisitsynthoralf: hah21:31
khalednasrlisitsyn, thanks! take your time21:31
abinash_pandathoralf: One minor modification required in your code:21:31
abinash_panda[0.0 sec] created random sparse vector: 262144 features, 268435456 dimensions, [min;max;len]=[440;268435454;261995]21:31
abinash_panda[10.7 sec] tklein23 implementation -- 24.021:31
abinash_pandadst.features[j].entry += (mm3 % 2 == 1 ? -1.0 : 1.0) * src.features[j].entry;21:31
abinash_pandathoralf: dst.features[j].entry += (mm3 % 2 == 1 ? -1.0 : 1.0) * src.features[j].entry;21:31
lisitsynyikes! 268435456 dimensions ;)21:32
thoralflisitsyn: :D21:33
thoralfabinash_panda: I don't see the improvement.21:33
lisitsynkhalednasr: as usual no comments :D21:33
-!- shogun-notifier- [] has joined #shogun21:33
shogun-notifier-shogun: khalednasr :develop * d254dbb / / (5 files):
shogun-notifier-shogun: Implemented Restricted Boltzmann Machines21:33
shogun-notifier-shogun: khalednasr :develop * 12ce633 / NEWS:
shogun-notifier-shogun: updated NEWS file to include changes to the NeuralNets module21:33
shogun-notifier-shogun: Sergey Lisitsyn :develop * 2490b57 / / (6 files):
shogun-notifier-shogun: Merge pull request #2304 from khalednasr/rbms21:33
shogun-notifier-shogun: Implemented Restricted Boltzmann Machines21:33
thoralfabinash_panda: No!21:34
thoralfabinash_panda: I'm only collecting the values.21:34
lisitsynit is boring you write that good code :P21:34
thoralfabinash_panda: The summing happens magically when sort_features()21:34
khalednasrlisitsyn, haha :D21:34
thoralfabinash_panda: If a sparse vector has duplicate entries, they will be summed after sorting.21:35
abinash_pandathoralf: Okay. I was not knowing it. Cool feature ;)21:36
abinash_pandathoralf: Okay. So, I am going with your implementation of hash_vector() :)21:36
thoralfabinash_panda: Well, we have to take care that sparse vectors indices are sorted and not duplicate.21:37
thoralfabinash_panda: Otherwise strange[tm] things will happen.21:37
abinash_pandaYeah...BTW I liked the *strange[tm]* comment :D21:39
abinash_pandathoralf: One more thing, if we are going to deal only with SGSparseVector, so should I put a check on features being CSparseFeatures ?21:40
thoralfabinash_panda: Good question.21:41
thoralfabinash_panda: Yes, please check it.21:42
abinash_pandaYeah...then we should also go for CHashedSparseMultilabelModel to avoid confusion ;)21:42
* thoralf hates these long names.21:43
shogun-buildbotbuild #2373 of bsd1 - libshogun is complete: Failure [failed test]  Build details are at  blamelist: Sergey Lisitsyn <>, khalednasr <>21:43
abinash_pandathoralf: Fine. Then I am going with CHashedMultilabelModel :D21:43
thoralfOther thing is that we add alternate implemation for hash_vector() and put a SGNOTIMPLEMENTED inside.21:44
thoralfabinash_panda: Haha, cool.21:44
thoralfYou know how to make people happy ;)21:44
abinash_pandathoralf: Yeah ;)21:45
abinash_pandathoralf: another implementation for hash_vector()??21:45
abinash_pandathoralf: is this for dense vectors??21:45
thoralfabinash_panda: Not yes, just a bold idea.21:45
thoralfsth like hash_vector(SGVector) and hash_vector(SGSparseVector).21:46
thoralfBut don't care about this yet.  I don't see a sense in using *dense* vectors with this approach.21:46
thoralfThis will eat up your memory, your family and your whole life.21:47
abinash_pandathoralf: lol :D21:47
thoralfabinash_panda: Have you tried the benchmark with hash_dim  = 1 << 18 and num_features = 1 << 12 ?21:48
abinash_pandaYeah, I had tried. Found that your implementation is faster ;)21:50
thoralfDifference will grow with increaing hash_dim.21:50
thoralf1 << 20 is devastating21:50
abinash_pandaOh. No, I have not tried yet.21:51
abinash_pandathoralf: Another doubt regarding get_joint_feature_vector() method?21:51
thoralfabinash_panda: Do you have doubts or are you asking me?21:52
abinash_pandaAs you have mentioned in the comment that it should be a sparse vector right?21:52
thoralfabinash_panda: Yes.21:53
-!- pickle27 [] has joined #shogun21:53
thoralfabinash_panda: My local code already uses sparse vectors for this, but it's hard to isolate...21:54
abinash_pandathoralf: But the CStructuredModel class requires that the output of this should be SGVector instead.21:54
thoralfabinash_panda: I know.  Let me check something.21:55
abinash_pandathoralf: Furthermore, solvers like PrimalMosekSOSVM and StochasticSOSVM also require ret->psi_pred and ret->psi_truth21:55
thoralfabinash_panda: In my refactoring I completely removed psi_pred and psi_truth from result set.21:56
thoralfInstead I put get_joint_feature_vector calls directly in the machines.21:57
abinash_pandathoralf: Yeah...we can do that21:58
thoralfabinash_panda: We should.21:58
thoralfOtherwise we'll get into trouble with our approach.21:58
thoralfCan you make it a separate PR and send it before the current one?21:59
thoralfiirc this is only small refactoring - but I don't remember if I had to fix unit tests as well.21:59
abinash_pandaOnce you were talking of some good git tutorial. Could you please send me the link?22:00
abinash_pandaI had messed up with my local repo22:00
thoralfabinash_panda: Mail sent.22:01
thoralfabinash_panda: It's a paid one, so please don't spread it too far.22:01
abinash_pandathoralf: Okay. I would take care of that.22:02
abinash_pandaThanks :)22:02
abinash_pandathoralf: So, tomorrow I would sending the PR refactoring the solvers :)22:04
thoralfThe machines, right?22:04
thoralfNot the solvers22:04
thoralfI grepped for psi_truth/psi_pred and found a few machines.22:05
abinash_pandaYeah..the machines.22:05
thoralfSo first refactoring is simply removing psi_pred/truth from ResultSet and calling psi() inside the machines.22:05 would be a simple task. I would do it.22:07
abinash_pandaand then we can discuss on the get_joint_feature_vector()22:07
abinash_pandawe can overload get_joint_feature_vector() method for returning SGSparseVector..right?22:08
thoralfabinash_panda: Not sure if we can have same signature but different return values.22:09
thoralflisitsyn: Master?22:09
lisitsynthoralf: ahh stop it :D22:09
thoralflisitsyn: X function(Y) can't have a Z function() implementation, right?22:09
thoralfX function(Y)22:09
lisitsynthoralf: it has some intrinsic irony and I feel I don't deserve being msc :D22:10
thoralfZ function(Y)22:10
lisitsynah covariant types?22:10
thoralfDon't know what covariant types are. :D22:10
lisitsynok in java you can22:10
lisitsynZ extends X22:10
lisitsyntotally different types?22:11
thoralfZ extends A and X extends A22:11
thoralfA = SGObject ;)22:11
thoralfso totally different22:11
* thoralf cannot imaging how dispatching to the right function should work. ;)22:11
lisitsynhow can it dispatch what function to call? ;)22:12
thoralfHaha, thanks.22:12
thoralfabinash_panda: Let's say we can't - but let's discuss that tmrw22:12
lisitsynin C++ you can22:12
thoralflisitsyn: Really?22:12
abinash_pandathoralf: Fine :)22:12
lisitsynyeah with default argument22:13
lisitsynit looks like22:13
lisitsynX function(Y, somedefault thing)22:13
lisitsynZ function(Y, some default thing)22:13
lisitsynthe trick is you need to FAIL one default thing22:14
lisitsynso it has no other choice22:14
thoralfAnd how do I fail?22:14
lisitsynhmm accessing some member of class22:15
lisitsynI mean if you ask for22:15
lisitsynand there is no T22:15
lisitsynin A22:15
lisitsynit fails22:15
lisitsynok this describes better22:15
thoralfAh!  function templates22:16
thoralfOf course.22:16
thoralfNot overloading, but templates.22:16
lisitsynthoralf: yeah sure22:16
thoralflisitsyn: In shogun we're using everything. ;)22:16
lisitsynthoralf: but in normal languages there is no such crazy thing as overloaded return type functions22:17
thoralflisitsyn: Are you calling C++ crazy? ;)22:17
lisitsynthoralf: absolutely22:17
thoralfAgree :)22:17
thoralfC++ is kind of a job guarantee. :)22:18
lisitsynthoralf: though java sucks22:18
thoralf(Java is no job guarantee itself; you need to add JavaEE or Hadoop to make it unpredictable ;))22:18
lisitsynthoralf: on the other hand java is too verbose and is no better22:18
lisitsynhmm here I had a lot opportunities with java22:19
lisitsynbut no opportunities with C++ at all22:19
thoralfTalking seriously or ironic?22:19
lisitsynno, I am quite serious22:19
thoralfopportunities always sounds like "issues" ;)22:19
lisitsynwhen I wanted to change my job22:19
lisitsynI had no C++ thing around22:20
@wikinglisitsyn: so yeah i'm moving to .sg22:20
thoralfYeah, but Java itself is easy to learn.  That's why all the companies are using Java, because developers are easier to find.22:20
lisitsynwiking: sg!22:20
thoralfC++ is hard to learn, so less people learn it :)22:20
lisitsynthoralf: yeah monkey can code java22:21
thoralfwiking: Cool.22:21
thoralfwiking: Don't do anything wrong - they may put you in chains and whip you. ;)22:21
lisitsynwiking: how do you feel about it? ;)22:21
@wikingthoralf: hhahhahah22:22
@wikinglisitsyn: well a bit ambivalent22:23
@wikingbut it's ok i always wanted to live in asia22:23
@wikingso we'll see22:23
lisitsynshogunees move around the world22:23
thoralfwiking: Wish you good luck.22:23
@wikingbut yeah after the move22:23
lisitsynwiking: when do you move?22:23
@wikingi'll be back in working on shogun22:23
@wikinglisitsyn: hehehehe i thought it's going to be 1st of august22:23
lisitsynwiking: cool we are moving at the same time hah22:24
@wikingbut now my wife checked an email and suddenly it seems we have to go on the 9th of july22:24
@wikingso suddenly it's like getting tickets22:24
pickle27wiking: where are you moving to?22:24
@wikingpickle27: singapore22:24
pickle27ahh cool22:24
pickle27I know some guys who have worked there22:24
pickle27they really like it22:24
@wikingok i need job22:24
@wikingso anybody knows anything in singapore22:25
@wikingplz let me know22:25
@wikingas currently i dont get to work in singapore (visa problems)22:25
@wikingso i need an employer who would apply for me for a working visa :P22:25
pickle27I still think you guys should all come work for shopify :p22:25
-!- travis-ci [] has joined #shogun22:25
travis-ci[travis-ci] it's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun:
-!- travis-ci [] has left #shogun []22:25
lisitsynpickle27: give me visa I am all yours haha22:25
@wikingso yeah22:25
@wikingi'm for sale at the moment22:25
@wikingas i had to quit my current job22:25
@wikingbecause of the move22:26
@wikingpickle27: shopify? work from remote? :)22:26
lisitsynpickle27: you probably don't even imagine what's the canadian visa PITA  :D22:26
pickle27we only have remote of operations at the moment22:26
pickle27all devs are in canada22:26
pickle27lisitsyn: I'll ask for you!22:27
@wikinganyhooooow thoralf if u know something at researchgate let me know :)22:27
lisitsynpickle27: haha no need yet22:27
@wikingi'm really jobless atm22:27
lisitsynpickle27: I am moving to yandex this august22:27
thoralfpickle27: Canada is great. :)22:27
lisitsyngonna try it first22:27
@wikingother than that i code for food :P22:27
thoralfpickle27: I had to cancel my canada vacation this week ;(22:27
thoralfpickle27: Shopify is looking for ML engineers?22:28
pickle27oh no! thoralf where were you visiting in canada?22:28
thoralfpickle27: I like Canada so much and I booked a flight to Boston for last week, then going to Toronto and Montreal this week, New England next week.22:29
thoralfSo the plan.22:29
thoralfBut I had to cancel a day before because my gf had a bicycle accident.22:29
lisitsynoh is it ok?22:29
thoralfShe's okay-ish now.22:29
pickle27that sucks hope she's alright22:29
thoralfYeah, but this happened the day before the flight, so the doctors said not to fly.22:30
thoralfBut I love canada. :D22:30
lisitsynthis sucks22:30
thoralfpickle27: Where are you living?22:30
pickle27we're hiring all kinds of engineers btw we are growing too fast22:30
pickle27Im in Ottawa now22:30
pickle27as in we can't hire people fast enough!22:31
thoralfpickle27: Okay, probably we're traveling to Canada this autumn.  Same tour.  Indian summer.  We'll let you know... you can even join, as we probably will rent a car and travel around. :D22:32
thoralfBoston -> Amherst -> Toronto -> ... -> Montreal -> Boston22:32
pickle27yeah totally let me know! it would be fun to meet some of you guys in rl22:33
thoralfWill you come to Berlin for the workshop?22:34
thoralfJust to let you know... I can host some of you guys here.22:34
pickle27I was thinking about it but I haven't planned anything so probably not22:34
lisitsynthoralf: ha! this would be cool22:34
thoralfSo no hotel needed, if this may change your decision.22:35
lisitsynbut I am still unavailable22:35
thoralfOnly have a sparse sofa, but enough floor space for a lot of nerds. :D22:35
lisitsyngonna rush through moscow in search of a flat exactly these days22:35
lisitsynthoralf: tell me sth about winter berlin22:36
lisitsynit is cool during winter?22:36
lisitsynis it* :D22:36
lisitsyncool not temperature wise but any other kind of coolness22:36
thoralflisitsyn: I'm living here... so you shouldn't ask me.22:37
thoralfI don't know all this tourist stuff.22:37
lisitsynthoralf: hah22:37
thoralfWaking up, going to work, going back.22:37
thoralfSpending my holiday in != Berlin ;)22:37
lisitsynthoralf: are there any sales before xmas or whatever?22:37
thoralflisitsyn: Of course, everywhere.22:38
lisitsynthis is deffs not I am interesting in but you know I have gf22:38
thoralflisitsyn: Before christmas there are some traditional markets.22:38
thoralfIn Berlin, Leipzig, N?rnberg...22:38
thoralfhot spiced wine22:38
lisitsynwe call it some german word22:39
thoralfor wine punch - however this is called.22:39
lisitsynthoralf: okay I see :)22:40
lisitsynthoralf: this is something funny22:40
lisitsynyou see you're living in kind of center of something22:40
lisitsynat least more things are going on there22:40
lisitsynsomeone is living in NYC and feel the same - wake up / work / sleep22:41
thoralflisitsyn: I'm living next to Tegel Airport and Main station.22:41
lisitsynwhat's main station?22:41
lisitsyncool place22:42
lisitsynthe only place we managed to buy things in22:42
thoralfCool place for good transport experience when hosting guests. :D22:42
lisitsynbecause I was stupid enough to not think people could ever not work during sundays22:42
thoralfpickle27, lisitsyn: I'll host all of you guys. :)22:43
lisitsynwhy? :D22:43
pickle27I really do want to visit Berlin!22:43
lisitsynpickle27: ask me about tourist things haha ;)22:44
thoralflisitsyn: You don't have to. :D22:44
lisitsynthoralf: wait wait I feel cheated :D22:44
lisitsynhow come you live near tegel22:44
lisitsynand hauptbahnhof22:44
lisitsynat the same time22:45
lisitsynaren't they far away?22:45
thoralflisitsyn: -> berlin beusselstr22:45
lisitsynthoralf: tegel is terribly far away! :D22:46
thoralfOr compute directions: Hauptbahnhof -> Beusselstr -> Tegel22:46
thoralflisitsyn: It's 5-10 minutes by Bus.22:47
thoralf5 by car22:47
lisitsynthoralf: alright ;)22:47
thoralfAnd the bus between Hauptbahnhof and Tegel stops (almost) in front of my house. :D22:47
lisitsynthoralf: this moabit thing seemed to be quiet area22:48
lisitsynis it true?22:49
thoralflisitsyn: It's getting popular because of last cheap flats near city center.22:49
thoralflisitsyn: We have lot of students here, but (not yet) many caf?s and bars.22:49
thoralfBut I think they're developing.22:50
thoralfBut it's more living area for working people, but already nice enough for hipster coming here on the weekends.22:50
lisitsynthoralf: ah btw I have opposite offer - I could host you in moscow from august ;)22:50
lisitsynand well any of you ;)22:51
lisitsynthoralf: you haven't been there right?22:51
thoralflisitsyn: Honestly I'm a concerned about Russia.  About war with Ukraine.22:51
thoralflisitsyn: Never.22:51
thoralfNever been there.22:51
lisitsynhow concerned?22:52
thoralfI don't know.  First of all, reputation of Russia is not quite good over here.22:52
lisitsynheh well22:52
thoralfRegaring police and foreign affairs.22:52
lisitsynthoralf: it is actually like not something to worry about :D22:54
lisitsynI mean the best solution is to don't bother with that stuff at all22:54
thoralflisitsyn: Well, I guess it doesn't affect tourists at all.22:55
thoralflisitsyn: Btw., before xmas the whole city is illuminated. ;)22:57
thoralf(Not what you think :D)22:57
lisitsynthoralf: haha22:58
lisitsynthoralf: I wish this ukraine madness stopped but nobody wants to stop it22:59
lisitsynthoralf: EU and the US put some sanctions but they are really insignificant22:59
lisitsynso this is a big game22:59
thoralflisitsyn: Everybody wants to stop it, but some people see big opportunities there...23:01
lisitsynthoralf: well not everybody but all but people who control23:01
lisitsynit's getting funny because our presidents does whatever he wants and EU has no real power to push him back23:02
lisitsynno real power or no real will23:02
lisitsynI am quite sure $-wise it is quite easy to put some costs on russia but it is not the case for some reason23:02
thoralflisitsyn: Everybody here is surprised as well why we can't do anything about it.23:03
thoralflisitsyn: Maybe they thing about "markets" - Russia simply is a big market and Germany lives of exports.23:04
thoralfAnd everybody else is concerned about gas?23:04
thoralfOnly guessing.23:04
lisitsynwell gas is the thing, yeah23:04
lisitsynit should be like 20% of gas import in the EU23:04
lisitsynthat comes from russia23:04
lisitsynthoralf: the most important thing is that russian elite is heavily attached to the EU23:06
lisitsynthey live there, their children live there23:06
lisitsynso this is pure fake23:06
thoralfThey have estates in Berlin, while local elite hast estates in Moscow :D23:07
thoralfJust conspiracy, no proof.23:07
lisitsynthoralf: and it is good23:08
lisitsynI mean as long as they are deeply tied to europe we will not have any kind of war :D23:08
lisitsynbut if putin's daughters are out of netherlands we can treat it as a bad sign hah23:09
thoralfGood point.23:10
thoralfWe should visualize relatives of russian politicians on a map.23:10
thoralfWe := Western secret services23:11
-!- lisitsyn [~qdrgsm@] has quit [Read error: Connection reset by peer]23:11
-!- lisitsyn [~qdrgsm@] has joined #shogun23:11
lisitsynthoralf: that's easy23:11
lisitsynyou just draw star-like topology23:12
lisitsynconnect moscow with every european city23:12
lisitsynthere is nothing outside of moscow in russia so it would look cool23:12
thoralflisitsyn: Btw., have you seen memcheck on buildbot is error free now? :D23:17
lisitsynthoralf: no clue!23:17
* thoralf pushed this since march.23:18
lisitsynthoralf: oh sounds like I should congartulate you ;)23:18
thoralfYou sound like Sheldon.23:19
lisitsynthoralf: oh no I don't like that thing :D23:19
-!- pickle27 [] has quit [Quit: Leaving]23:49
--- Log closed Sun Jun 15 00:00:33 2014