*** alga has quit IRC | 04:00 | |
*** replaceafill has joined #schooltool | 04:09 | |
*** ignas has joined #schooltool | 04:57 | |
*** aks has joined #schooltool | 05:37 | |
*** ignas has quit IRC | 06:37 | |
*** ignas has joined #schooltool | 07:15 | |
*** ignas has quit IRC | 07:32 | |
*** replaceafill has quit IRC | 07:58 | |
yvl | hi aelkner | 08:39 |
---|---|---|
*** rmrf has joined #schooltool | 08:40 | |
yvl | FIY, I'm reviewing your latest changes ;) | 08:40 |
*** menesis has joined #schooltool | 08:53 | |
*** yvl has quit IRC | 10:59 | |
*** yvl has joined #schooltool | 11:01 | |
*** ignas has joined #schooltool | 11:32 | |
*** rmrf has quit IRC | 12:57 | |
*** alga has joined #schooltool | 13:07 | |
*** aks has quit IRC | 13:21 | |
*** menesis has quit IRC | 14:11 | |
*** menesis has joined #schooltool | 14:53 | |
*** replaceafill has joined #schooltool | 15:43 | |
*** ignas has quit IRC | 16:15 | |
*** th1a has joined #schooltool | 16:28 | |
th1a | HI yvl, menesis, replaceafill, aelkner. | 16:31 |
th1a | So this has turned out to be the weekend I've been dreading since I became a parent. | 16:31 |
th1a | The weekend in which everyone in the house has a cold at the same time. | 16:31 |
replaceafill | good morning/afternoon | 16:31 |
aelkner | morning | 16:31 |
th1a | And I thought mine was getting better but instead it got worse. | 16:31 |
th1a | Luckily, not much energy is required for an IRC meeting. | 16:32 |
yvl | good morning :) | 16:33 |
th1a | One thing I want to get rolling is getting communication going with Critical Links leading up to the meeting. | 16:33 |
th1a | So I'll be sending some follow up emails to them. | 16:33 |
th1a | We should make sure we take care of our (one) action point from the meeting: | 16:33 |
th1a | #3 [ ] gediminas: Send to Helder the packaging instructions. | 16:34 |
yvl | (just read about your cold.. get better, th1a ) | 16:34 |
th1a | Did we do that? | 16:34 |
yvl | menesis just went to get some coffee | 16:35 |
yvl | as far as I'm aware - no... | 16:35 |
th1a | OK. We should do that as I prod them to get their stuff to us. | 16:35 |
th1a | Moving on... | 16:36 |
th1a | yvl: How are things coming. | 16:36 |
yvl | umm | 16:37 |
yvl | moved things forward ~20 hours worth | 16:37 |
yvl | dev velocity is increasing | 16:37 |
yvl | bonus looks hard, but doable | 16:37 |
yvl | that's that, I guess | 16:38 |
yvl | last week had 1.5 days off total, by the way | 16:38 |
yvl | random things | 16:38 |
th1a | ok. | 16:39 |
* th1a looks up the east coast weather report... | 16:39 | |
th1a | replaceafill? | 16:39 |
replaceafill | ok | 16:39 |
* menesis : | 16:40 | |
replaceafill | i kept working on adding tests to the gradebook | 16:40 |
replaceafill | found several things that needed fixes | 16:40 |
replaceafill | reported some of them as bugs | 16:41 |
replaceafill | wrote down all of them in my notes | 16:41 |
replaceafill | menesis, i requested a merge for cando on this one: https://bugs.launchpad.net/cando/+bug/701786 | 16:41 |
replaceafill | no hurry though | 16:42 |
menesis | I see, at the top of the starred email queue | 16:42 |
replaceafill | aelkner, helped me find some edge cases in the gradebook code | 16:42 |
replaceafill | that i need to add tests for | 16:43 |
replaceafill | i realized that coverage is not the perfect metric for code like the gradebook | 16:43 |
replaceafill | but we've improved it a little: http://img88.imageshack.us/img88/9550/pantallazogn.png | 16:43 |
replaceafill | just the pdf views need some more | 16:44 |
replaceafill | i'm testing the rml of them as yvl suggested once | 16:44 |
replaceafill | and last week th1a assigned me a lot of bugs that i'm going to check and select some to fix | 16:45 |
aelkner | yeah, that was helpful | 16:45 |
replaceafill | ah just one question | 16:45 |
replaceafill | the fckeditor widget | 16:45 |
replaceafill | if i write something like: AdiĆ³s | 16:46 |
replaceafill | the widget translates it to: <strong>Adi&oacute;s mundo.</strong> | 16:46 |
replaceafill | yvl, could you confirm that? | 16:46 |
replaceafill | the thing is that if that line is used in a template (like the mygrades view) | 16:46 |
replaceafill | and we use content="structure content" | 16:47 |
replaceafill | you get the strong letters | 16:47 |
replaceafill | but the text becomes: | 16:47 |
replaceafill | Adiós | 16:47 |
replaceafill | in bold | 16:47 |
yvl | hmm, that looks like a bug | 16:47 |
replaceafill | maybe we could tell the fckeditor not to escape content? | 16:48 |
replaceafill | th1a, also i'll need your help with a UI message again for an edge case that i'm going to test later | 16:48 |
replaceafill | but that will be later | 16:49 |
yvl | sorry, can't remember right away | 16:49 |
replaceafill | th1a, i guess that's it from me | 16:49 |
replaceafill | yvl, np, i'll look at it too | 16:49 |
th1a | OK, thanks replaceafill. | 16:49 |
th1a | aelkner? | 16:50 |
menesis | about fckeditor: should I try to convert the widgets to CKEditor? | 16:50 |
th1a | Looks like rain and some snow Tue/Wed. | 16:50 |
aelkner | did you have a chance to read yvl's latest email post regarding demo fields? | 16:50 |
yvl | menesis - wasn't that done already? | 16:50 |
th1a | I did. | 16:50 |
aelkner | i'm almost done there, but we need to resolve one more thing | 16:50 |
aelkner | could we take a bold step | 16:51 |
aelkner | and disable Perspns link in Manage tab if no school year is active | 16:51 |
aelkner | give me asecond to defend this motion | 16:51 |
aelkner | notion | 16:51 |
th1a | I don't see any problem with it. | 16:51 |
aelkner | it seems silly that we let users add persons when there is no schoolyear, hense no groups | 16:52 |
aelkner | ah, good, yvl? | 16:52 |
yvl | you can imagine my opinion on that :) | 16:52 |
aelkner | actually, i can't | 16:52 |
aelkner | please opine away | 16:53 |
yvl | umm | 16:53 |
yvl | I think that the default groups being only in schoolyears is plain wrong | 16:53 |
menesis | I think it is strange that basic groups need a schoolyear to exist | 16:53 |
aelkner | where's ignas when we need him to defend his architecture | 16:54 |
th1a | It is probably my fault. | 16:54 |
aelkner | th1a? | 16:54 |
aelkner | oh, sorry, you were saying | 16:54 |
aelkner | if we disable Person, we have a solution, no? | 16:55 |
th1a | Well, anyhow, the original sin here is not just requiring people to be only teachers, students, etc. | 16:55 |
th1a | That simplifies everything. | 16:55 |
th1a | What we really need is just a system that more or less stops you from doing anything at all until you have an initial year. | 16:56 |
menesis | maybe the first schoolyear can be created automatically? I think Cambodia does that? | 16:56 |
replaceafill | menesis, no | 16:56 |
replaceafill | cambodia only shows 'School Years' under Manage by default | 16:56 |
yvl | I'd say we need to work on the views more | 16:58 |
yvl | year 2009 could have the teachers roster, easily accesible an manageable | 16:58 |
yvl | and should | 16:59 |
yvl | I haven't decided on non-schoolyear groups yet | 17:00 |
yvl | in my opinion, they should exist | 17:00 |
aelkner | i don't know if that's such a good idea | 17:00 |
aelkner | a lot of code gets the schoolyear from the group container | 17:00 |
aelkner | it would be a real pain to track that down | 17:00 |
yvl | we shouldn't | 17:00 |
yvl | groups are very basic concept in ST | 17:01 |
yvl | and that is good | 17:01 |
yvl | it should be possible to get the schoolyear from the groups of that shcoolyear | 17:01 |
th1a | I think there is an advantage to making group membership per year so explicit. | 17:01 |
aelkner | yes | 17:01 |
aelkner | different school years can have different members of these core groups | 17:02 |
aelkner | i don't see the need to reachitect the whole thing | 17:02 |
yvl | I did not suggest that | 17:02 |
aelkner | we just need to get the user to create a schoolyear | 17:03 |
aelkner | and disable UI until then | 17:03 |
yvl | well | 17:04 |
yvl | I won't object | 17:04 |
yvl | but I'm not fan of hiding trash under the carpet | 17:04 |
aelkner | there are many meals at the sprint where we can discuss this | 17:04 |
th1a | Moving on... | 17:04 |
aelkner | but for getting the branch merged and into the release | 17:04 |
aelkner | can we agree to disable Persons from Manage | 17:05 |
yvl | my vote is - strongly no; but it's not my place to vote ;) | 17:05 |
aelkner | it's not a democracy, but we have a benevolent dictator :) | 17:05 |
th1a | I don't have a problem with it. | 17:05 |
* yvl sighs | 17:06 | |
yvl | but it's ok | 17:06 |
*** ignas has joined #schooltool | 17:06 | |
menesis | does adding a person fail when there are no schoolyears? | 17:06 |
aelkner | can you make that last change yourself as you merge, pretty please :) | 17:06 |
yvl | no | 17:06 |
aelkner | it does not fail | 17:06 |
aelkner | but the user will be confused by the group not being set | 17:07 |
aelkner | so it's better not to offer that possibility | 17:07 |
yvl | for the record, I still think that those action buttons should be moved to schoolyear | 17:07 |
yvl | and instructions put at Manage->Persons page | 17:07 |
yvl | with links | 17:08 |
aelkner | i'm not sure i agree on that one, th1a? | 17:08 |
yvl | it's just for the recor | 17:08 |
yvl | d | 17:08 |
yvl | :) | 17:08 |
aelkner | can it wait until the sprint? | 17:08 |
th1a | Oh... | 17:08 |
th1a | Well, | 17:08 |
th1a | yvl's plan is probably bettter. | 17:09 |
th1a | Add student and teacher only from within a year. | 17:09 |
aelkner | a user clicks on Persons and finds no Add Teacher, but then goes to the schoolyear and finds it?!!! | 17:10 |
yvl | "To add teachers and students pleas _create_a_school_year_" | 17:10 |
aelkner | that sounds confusing | 17:10 |
yvl | link to new school year page | 17:10 |
th1a | Well, it is inherently confusing. | 17:10 |
aelkner | if we force the user to add a schoolyear, then the confusion is avoided | 17:10 |
aelkner | keeping person links in the person cotext makes more sense to me | 17:11 |
yvl | I hope we'll fix the group thing some time | 17:11 |
th1a | Realistically, one thing that is probably going to go away is the whole construct of navigating through the year. | 17:12 |
yvl | until then there's no good solution - just tradeoffs | 17:12 |
th1a | I think the cleaner interim solution is to do add teacher/student/etc through the year. | 17:12 |
th1a | That's easy enough, right? | 17:12 |
aelkner | boo | 17:13 |
aelkner | first, it's not easier | 17:13 |
aelkner | second, it's hostile to the user | 17:13 |
aelkner | the user wants to add person | 17:13 |
aelkner | so they, naturally, hit the PErsons link | 17:13 |
aelkner | if they need to go to the schoolyear to add persons, booooooooooooooooo | 17:13 |
th1a | It is no more hostile to the user than anything else about navigating to the year. | 17:13 |
aelkner | schoolyears have courses, groups, etc. | 17:14 |
aelkner | persons are found at the Persons link | 17:14 |
th1a | Which is, arguably all hostile, but consistently hostile is better than inconsistent and hostile. | 17:14 |
aelkner | it's consistent now | 17:14 |
aelkner | it just does not make sense to use schooltool at all without a scholyear | 17:15 |
yvl | ok, how about a compromise | 17:15 |
aelkner | it fails all over the place, safely mind you | 17:15 |
yvl | disable the teacher and student links if no schoolyear | 17:15 |
yvl | but when there's no school year, add this text: | 17:15 |
aelkner | why not disable Persons link? | 17:15 |
yvl | "To add teachers and students pleas _create_a_school_year_" | 17:15 |
yvl | under Manage->Persons | 17:15 |
yvl | ___ is a link | 17:16 |
aelkner | ah, when they hit the PErsons lnk, they get that message | 17:16 |
aelkner | which forces them to add a schoolyear? | 17:16 |
th1a | Whatever we do at this point is a band-aid. | 17:16 |
menesis | yvl: agree | 17:16 |
yvl | true, th1a | 17:16 |
aelkner | yeah, but some bandads are better than others | 17:16 |
aelkner | simpler is better for one thing | 17:17 |
* menesis thinks that "Persons" should be a toplevel menu item like Calendar :-X | 17:17 | |
aelkner | can we agree that the person container view will show a message 'must add schoolyear' | 17:17 |
aelkner | a redirect | 17:17 |
aelkner | so that there are no person links | 17:18 |
menesis | that's how other places that need a year/term do | 17:18 |
aelkner | right | 17:18 |
menesis | so I agree | 17:18 |
aelkner | i had to create my own no schoolyear redirect view in the gradebook | 17:18 |
aelkner | it would be nice if we had one in schooltool core | 17:18 |
th1a | I'm not going to kick up a fuss. | 17:19 |
yvl | ok, let's move on then | 17:19 |
th1a | aelkner: Do you want to come up here on Thursday? | 17:19 |
aelkner | wait | 17:19 |
aelkner | i want us to agree on the no schoolyear redirect and get that branch merged, please | 17:20 |
yvl | why redirect? | 17:21 |
yvl | just show the message | 17:21 |
yvl | with a link | 17:21 |
aelkner | if the person container view redirects | 17:21 |
aelkner | then the context can be app | 17:21 |
aelkner | and no person add links will show | 17:21 |
aelkner | that's why | 17:21 |
aelkner | look at the gradebook code | 17:21 |
yvl | it's not that hard to disable them | 17:21 |
yvl | really | 17:21 |
yvl | really | 17:21 |
yvl | and you won't get the add school year view | 17:22 |
yvl | by hitting | 17:22 |
yvl | Manage->Persons | 17:22 |
yvl | I'll do that and merge | 17:22 |
yvl | tomorrow, if it's ok | 17:22 |
aelkner | ok, that would be just fine | 17:22 |
aelkner | thanks | 17:22 |
aelkner | th1a, Thursday is ok for me if the whether holds up | 17:22 |
aelkner | i saw the report for ice on tues | 17:23 |
aelkner | so i am ore comfortable with thurs than wed | 17:23 |
th1a | Sure. | 17:23 |
aelkner | how about we see tomorrow? | 17:23 |
aelkner | before you book any room | 17:23 |
th1a | I'm not booking anything until you leave the house. | 17:24 |
aelkner | :) | 17:24 |
aelkner | i can work on the report system design this week and email you before coming up | 17:25 |
th1a | OK. | 17:25 |
aelkner | now that yvl has been kind enough to take demos off my plate, thanks again for that | 17:25 |
th1a | Or just call. | 17:25 |
aelkner | i know how you prefer email to talking, so... :) | 17:26 |
aelkner | but seriously, email does force me to get more concrete with my thoughts | 17:26 |
th1a | Whichever. | 17:26 |
aelkner | we can do both | 17:26 |
th1a | Super. | 17:26 |
th1a | Thanks aelkner. | 17:27 |
th1a | menesis? | 17:27 |
aelkner | anyway, can i call after the meeting to talk Steelers? | 17:27 |
th1a | aelkner: Perhaps we can save it until I regain my voice. | 17:27 |
aelkner | sure | 17:27 |
menesis | I have done little the last week | 17:28 |
menesis | fought with zope.html packaging to use system fckeditor/ckeditor | 17:28 |
replaceafill | menesis, in a related topic: adding FCKConfig.IncludeLatinEntities = false; to the fckeditor config fix the problem i described earlier | 17:29 |
menesis | yvl: we upgraded to newer zope.html that contains ckeditor, but still use the old FCKEditor | 17:29 |
menesis | replaceafill: fixes entities | 17:30 |
menesis | and escaped <strong>? | 17:30 |
replaceafill | http://docs.cksource.com/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options/IncludeLatinEntities | 17:30 |
replaceafill | no | 17:30 |
replaceafill | strong works | 17:30 |
replaceafill | the content of strong is shown correctly | 17:31 |
th1a | Should replaceafill switch us to ckeditor? | 17:31 |
menesis | no need for setting to replace strong with b? | 17:31 |
replaceafill | menesis, strong and b work the same, right? i mean visually and they both work in pdfs | 17:32 |
replaceafill | i mean, reportlab | 17:32 |
menesis | they are the same | 17:32 |
menesis | so if both work then ok | 17:32 |
menesis | th1a: well, since replaceafill was testing ckeditor last days maybe he wants to continue on that | 17:33 |
replaceafill | hhmm i did it because the gradebook needed it :P | 17:33 |
th1a | It seems like something to clear up. | 17:33 |
replaceafill | but i can work on that | 17:34 |
yvl | yep, it would be nice to switch to CK | 17:34 |
* replaceafill wonders about the differences with F and no F | 17:34 | |
menesis | for me they both cause headaches because they are both included in zope.html, but implemented differently | 17:35 |
th1a | We need to deprecate fck. | 17:35 |
menesis | and also yvl copied most of the code to schooltool.skin.widgets and made yet another similar implementation | 17:35 |
menesis | replaceafill: CKEditor is just a less offensive name :) | 17:36 |
replaceafill | :)) | 17:36 |
aelkner | yeah fck is really unfortunate | 17:36 |
menesis | also, a rewrite | 17:36 |
yvl | replaceafill, you'll have to play with it a bit | 17:36 |
menesis | but I couldn't find a migration guide today. probably little, some options were renamed | 17:37 |
menesis | http://www.turnkeylinux.org/blog/upgrading-fckeditor-to-ckeditor | 17:37 |
th1a | replaceafill: Consider this added to your list. | 17:38 |
replaceafill | got it | 17:38 |
replaceafill | https://bugs.launchpad.net/schooltool/+bug/485898 | 17:38 |
replaceafill | kid of related | 17:38 |
replaceafill | kind | 17:39 |
yvl | it's a memo to switch to CK | 17:39 |
menesis | I did upgrade to the newest zope.html | 17:39 |
yvl | zope.html upgraded | 17:39 |
yvl | replaceafill, don't forget to test this https://bugs.edge.launchpad.net/schooltool/+bug/258951 | 17:39 |
replaceafill | wow mod-rewrite | 17:40 |
replaceafill | yvl, ok | 17:40 |
yvl | see hack in schooltool/skin/resource/editor_config.js | 17:40 |
menesis | because of this bug the code is duplicated | 17:41 |
menesis | from zope.html | 17:41 |
menesis | I would like to fix this in upstream zope.html | 17:41 |
yvl | and more code duplicated because we also need a z3c.form widget | 17:42 |
menesis | because I will want to make a new zope.html release anyway | 17:43 |
menesis | to match (f)ckeditor versions in ubuntu | 17:43 |
yvl | well, we should probably stop torturing Tom about now... ;) | 17:44 |
th1a | menesis: Did you see the reminder about packaging instructions for Critical LInks? | 17:44 |
menesis | so not sure who (me or replaceafill) should work on this ckeditor upgrade | 17:45 |
menesis | th1a: yes I saw, waited for my turn | 17:45 |
th1a | I think replaceafill can handle it. | 17:45 |
menesis | haven't written this email. it might not be useful to him but still I promised to send whatever I do. | 17:46 |
th1a | Yeah, we just need to hold up our end. | 17:46 |
menesis | at the top of my list | 17:46 |
th1a | OK. | 17:47 |
th1a | Thanks, menesis. | 17:47 |
menesis | got distracted by various issues last week | 17:47 |
th1a | I will now go celebrate Martin Luther King Jr. Day by lying down. | 17:47 |
menesis | have much mail to reply, started today | 17:47 |
aelkner | feel better soon, th1a | 17:47 |
yvl | get better, th1a | 17:48 |
replaceafill | get well th1a and your family too :) | 17:48 |
th1a | Have a great week, gentlemen! | 17:48 |
* th1a drops the bag of gravel. | 17:48 | |
replaceafill | thanks everybody | 17:48 |
aelkner | great week to all | 17:48 |
menesis | ! | 17:48 |
replaceafill | aelkner, could you help me with something? | 17:51 |
aelkner | sure | 17:51 |
replaceafill | again, a piece of code i cannot get to :) | 17:51 |
replaceafill | open gradebook.browser.gradebook.py | 17:51 |
aelkner | already open | 17:52 |
replaceafill | hold on, i think it's not there | 17:52 |
* replaceafill checks | 17:52 | |
replaceafill | crap i lost it, aelkner give me a minute to look for the line :( | 17:53 |
replaceafill | aelkner, found it | 17:57 |
replaceafill | MyGrades class | 17:57 |
replaceafill | MyGradesView | 17:57 |
replaceafill | you're looking at trunk, right? | 17:57 |
aelkner | yeah | 17:58 |
replaceafill | ok, line 734 | 17:58 |
replaceafill | if value is not None and value is not UNSCORED: | 17:58 |
replaceafill | there's a check for a score, right? | 17:59 |
replaceafill | then there's a check for a ICommentScoreSystem | 17:59 |
replaceafill | and the next elif | 17:59 |
replaceafill | checks a IValueScoreSystem | 17:59 |
replaceafill | in there there's another check for a IDiscreteScoreSystem | 18:00 |
aelkner | yep and yep | 18:00 |
replaceafill | where value is retrieved again | 18:00 |
replaceafill | value = ss.getNumericalValue(value) | 18:00 |
replaceafill | so my question is, could line 732 return None and line 744 return not None | 18:01 |
replaceafill | in the same activity + student | 18:01 |
replaceafill | i checked the getNumericalValue of the scoresystem | 18:02 |
replaceafill | and the case when None is returned is when the score is UNSCORED | 18:02 |
replaceafill | and that was already checked in line 732 | 18:03 |
replaceafill | so, i cannot write a test to get to that line :( | 18:03 |
aelkner | comment scores don't have a numerical value, right? | 18:03 |
replaceafill | if i leave a score empty, line 732 bypasses the whole block | 18:03 |
replaceafill | i dont think so | 18:03 |
aelkner | if the score is Nonw or UNSCORED, it goes to the else | 18:04 |
aelkner | i'm not sure what you are asking here | 18:04 |
replaceafill | sorry that i'm not being clear | 18:04 |
replaceafill | let me show you something | 18:05 |
replaceafill | aelkner, http://img52.imageshack.us/img52/5677/pantallazo1dvt.png | 18:06 |
replaceafill | my question is, how could you get to the red line? | 18:07 |
aelkner | ah, None is only returned if score is UNCORED which is not possible inside that if | 18:08 |
aelkner | i get it | 18:08 |
replaceafill | :) | 18:08 |
aelkner | considering the fact that you are improving test coverage (yay!) | 18:08 |
aelkner | i'd say go ahead and remove that | 18:08 |
aelkner | fail safe is not needed when test coverage is there | 18:09 |
replaceafill | ok, just wanted to check if was missing something : | 18:09 |
replaceafill | :) | 18:09 |
replaceafill | like getEvaluation returning something different than getNumericalValue under some condition | 18:10 |
aelkner | getEvaluation is about retrieving the annotations | 18:11 |
aelkner | getNumericalValue is a scoresystem conversion ting | 18:11 |
aelkner | they shouldn't be intertwined | 18:11 |
aelkner | they aren't, right? | 18:11 |
replaceafill | no | 18:11 |
aelkner | ok, good | 18:12 |
replaceafill | different methods on different classes | 18:12 |
replaceafill | the only common logic is the check for UNSCORED | 18:12 |
aelkner | i'll trust your judgement on this as you are looking at the code a lot lately | 18:12 |
aelkner | and i'm glad the code is getting a lot of love in the form of test coverage | 18:12 |
replaceafill | aelkner, right but you know it better ;) | 18:12 |
replaceafill | look at our getSource discussion of the other night ;) | 18:13 |
aelkner | well, i have more historical knowledge, but you have more recent brain load | 18:13 |
replaceafill | cool, i'll keep working then | 18:13 |
replaceafill | thank you very much aelkner | 18:13 |
aelkner | together we make a good team :) | 18:13 |
aelkner | always a pleasure | 18:13 |
*** alga has quit IRC | 18:33 | |
*** menesis has quit IRC | 20:19 | |
*** alga has joined #schooltool | 21:51 | |
*** menesis has joined #schooltool | 21:59 | |
*** ignas has quit IRC | 22:14 | |
*** dadeng has joined #schooltool | 23:23 | |
dadeng | aelkner, hi | 23:24 |
dadeng | did u see my email? | 23:24 |
*** dadeng has quit IRC | 23:31 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!