IRC log of #schooltool for Monday, 2012-04-30

*** th1a has joined #schooltool05:38
*** th1a has quit IRC06:52
*** aks has joined #schooltool07:21
*** aks has joined #schooltool07:21
*** aks has quit IRC09:11
*** aks has joined #schooltool09:27
*** yvl has joined #schooltool10:06
*** alga has joined #schooltool13:54
*** aks has quit IRC14:19
*** th1a has joined #schooltool15:34
*** eein has joined #schooltool15:46
*** replaceafill has joined #schooltool16:10
*** menesis has joined #schooltool16:22
th1ahi replaceafill, menesis, yvl, aelkner.16:30
replaceafillgood morning/afternoon16:30
th1areplaceafill has a lot of balls in the air, so we should probably start with him.16:30
th1areplaceafill:  Do you have any idea what's going on with this demo tomorrow?16:31
yvlgood morning16:31
* th1a doesn't.16:31
replaceafillth1a, not really16:31
th1aI can talk to dwelsh.16:31
th1aThere may be some kind of video chat going on.16:31
* yvl congratulates replaceafill with having a lot of balls16:31
* replaceafill starts passing balls to yvl ;)16:32
yvlth1a, can I ask a very short16:32
yvlquestion first :)16:32
yvldoes flying in on Sun, and leaving on Fri sound OK?16:32
*** menesis has left #schooltool16:32
*** menesis has joined #schooltool16:32
* yvl wants to confirm the flight, while it's still a work day here16:33
th1ayvl,  y16:33
yvl(because tomorrow is not)16:33
yvlreplaceafill, please continue16:33
replaceafillok, i worked on joe's demo last week16:33
replaceafilli cheated a little bit16:33
replaceafilli created the projects from the skills for the course16:34
replaceafilli didn't finish the "Skills" gradebook yet16:34
replaceafillbut David seemed to like it16:34
replaceafilland he made some observations to it16:34
replaceafill1. the legends for the score system16:34
replaceafilli already created something similar to the journal16:35
replaceafillfeedback on wording is welcome btw :)16:35
replaceafillor functionality ;)16:35
replaceafilli was thinking of hiding the sidebar completely with the score legends, but...16:36
th1aThe help is fine.16:36
replaceafill... don't know if that's a good idea16:36
th1aAs far as I'm concerned.16:36
th1aIt is at least plausible.  ;-)16:36
replaceafill2. David already "complained" about the worksheet navigation16:36
aelknerreplaceafill, the title at the top needs to change when the user clicks on cells, too, right?16:37
replaceafillhe thinks it's slower than the pulldown they used to have16:37
replaceafillaelkner, not really16:37
th1aHe may be getting into premature optimization from our point of view.16:37
replaceafillaelkner, we had that, but it created too much flickering16:37
replaceafillaelkner, for instance when you move with the keyboard16:37
aelknerwhy would it flicker?16:38
replaceafillaelkner, so i only copied the "old" behavior16:38
replaceafillaelkner, because it changed too quickly16:38
th1aYou mean it was just distracting?16:38
replaceafilli think some kind of timing would fix it though16:39
replaceafillit's not difficult to put it back either16:39
replaceafillok, about the third-nav16:39
replaceafilli have an idea of putting a vertical arrow on the right16:39
replaceafillsimilar to firefox16:40
replaceafillwith the list of worksheets16:40
replaceafillso the user can select from that16:40
replaceafillif he/she wants to16:40
replaceafillinstead of moving horizontally16:40
replaceafilli almost got it, just need to style it right16:40
replaceafillwill have it ready for wed so you can see it16:41
replaceafilli think those are all the observations from David16:41
replaceafill2. jelkner16:41
replaceafilli sent an email to the dev list with my findings from jelkner's problem16:42
th1aFrom a project management point of view now we just need to look at whether or not there are things replaceafill needs to be working on -- i.e., necessary infrastructure -- or just continue gradebook tweaking.16:42
th1aHopefully that will become clear in the next one to two hours.16:42
replaceafillth1a, i think pdf styles would be next for me16:42
replaceafilli mean, printed report styles16:42
th1aOh, I'd put gradebook tweaking before that.16:43
replaceafillah ok16:43
replaceafillyvl, any advice on jelkner's issue?16:43
th1aPeople use the gradebook *before* they print reports.  ;-)16:43
replaceafillth1a, :D16:43
replaceafilltrue ;)16:43
th1areplaceafill:  +1 on the vertical arrow.16:44
replaceafillth1a, great, i'll finish it and show it to you16:44
th1a1 second delay on updating the title from a cell would make sense too.  Dunno if that's a pain in javascript.16:44
replaceafilli'll try that16:45
yvlreplaceafill, sorry, I can't recall what's the issue16:45
replaceafillyvl, the journal stored int_ids for the meetings16:46
replaceafillbut the timetable now uses titles for them16:46
replaceafillfor the meeting_id attribute16:46
replaceafilldate + title16:46
replaceafilland the journal has date + int_id16:46
yvland there's an evolution script to fix that16:46
replaceafillyes, the evolution script changes from int_id to title16:47
replaceafillbut the journal doesn't change16:47
replaceafillso all the grades get out of sync16:47
yvlI'd need a Data.fs too look at that16:48
replaceafillyvl, attached it in my email to the list16:48
replaceafillwith steps on how to reproduce16:48
yvloh, sorry16:48
yvlI missed it16:48
th1ayvl:  It's a serious bug so we need to get on it.16:49
replaceafilli hope it's a jelkner thing16:49
th1aA year from now it would be a major problem.16:49
th1aRight now it only seems to affect jelkner.16:49
th1aBut this seems to be a critical, data losing bug.16:50
replaceafillat the end, i set an overrides on schooltool.pyquiz so evolve38 doesnt run16:50
replaceafillth1a, fortunately, the data is still there :)16:50
th1aOh, whew.16:50
replaceafillonly it's not visible anymore16:50
yvlreplaceafill, a short question16:51
yvldo you need to branch @ rev 3199 to reproduce?16:51
replaceafillthat's one revision before the change to date + title was made16:51
yvlif you use latest, it does not reproduce?16:51
replaceafillyvl, correct16:52
replaceafillbecause the grades are created with the current date + title logic16:52
replaceafillso everything works fine16:52
replaceafilland as i said in my email, jelkner created those timetable around september last year16:52
replaceafillbefore that change16:52
yvlok, I'll look into that16:53
yvlI think it *should* be Jeff specific16:53
replaceafillyvl, thanks16:53
* replaceafill too16:53
yvlthat's what happens when using bleeding edge ;)16:53
th1aJeff specific in what sense?16:53
yvlreplaceafill, huge thanks for tracking this down16:54
replaceafillimo, in that not many people used flourish + journal in production before november16:54
replaceafillyvl, was difficult :D16:54
replaceafillbut learned a lot about the calendars :D16:54
th1aAh, yes.16:54
yvlhence the thanks! :)16:54
replaceafillok, my last ball16:55
th1aOK, so you needed to be a pre-release user of flourish?16:55
replaceafillyvl, sorry for flooding you16:55
replaceafillth1a, correct16:55
th1aThat's not so bad then.16:55
replaceafillyvl, but i have a question on your locationproxy idea16:55
replaceafillthe thing is that the current gradebook looks into the section16:56
replaceafillfor the activities16:56
replaceafillbut in cando's case, the skills are attached to the course16:56
replaceafillis there anyway, using the locationproxy, to simulate it16:56
replaceafilllike making the gradebook think that the skills are stored in a container of the section16:56
replaceafilllike IActivities(section)16:57
yvlumm... isn't it what the location proxies are for?16:57
* replaceafill has no experience with location proxies, sorry :(16:57
replaceafilli looked for some of them in our code16:58
replaceafillbut didn't get too far16:58
yvlLocationProxy(ob, container=section, name=ob.__name__)16:58
yvlor rather the sectionskills, not section16:59
yvlfrankly, I don't know what's the best option here16:59
yvlif it's too difficult to make it work, we can "duplicate" them to sections17:00
yvlas in "deploy"17:00
replaceafillbut in that case we lose the automatic ability to add/remove to the course and update the gradebooks, right?17:01
replaceafilli mean, to add/remove skills17:01
aelknerwhy can't the adapter just use the location proxy?17:01
aelkneri mean, we do that with IGradebook(section)17:01
replaceafillhonestly, i should have tried harder before asking17:02
replaceafilli'll do that17:02
replaceafilljust wanted to be sure if it was possible17:02
* replaceafill done17:02
aelknerIGradebook(worksheet) i meant, which is now IGradebook(IActivityWorksheet)17:02
aelknerit's definitely overkill to deploy to the section17:03
aelknersince the connection to course is enough17:03
replaceafillaelkner, we only need a proper url to the section skills17:03
aelkner..../worksheet/gradebook is an example of that17:04
eeinhi.  i was looking at this project as a solution for gradebook, scheduling, report cards etc.  it looks like this does all, is that correct?17:04
replaceafillyeah, but worksheet comes from a container adapted to the section17:04
th1ahi eein.17:05
th1aeein:  It should.17:05
th1aeein:  This is the middle of our regular development meeting so it is a difficult time to chat.17:05
eeinoops my bad :-)17:05
aelknerreplaceafill, let's make a deal, i need your help with something else, so after the meeting, we swap?17:05
replaceafillaelkner, kk17:06
replaceafillth1a, that's all from me17:06
th1aOK, let's let menesis have his turn because I have a feeling the rest of this is going to drag on for quite a while...17:06
th1amenesis:  I was debating whether we should wait for this journal bug to be fixed before releasing the rest of the 2.1 packages, but if you had to be a beta tester of flourish to have the problem, I guess it is not a blocker.17:07
menesisany other blockers?17:08
menesisI can upload 2.1 packages today17:08
th1aNothing else came up.17:08
th1aThat would be fine, menesis.  Thanks.17:09
th1aDid you have a nice vacation?17:10
menesisthere is another bug that is related to calendar,
menesisimporting of localized day names17:10
menesisth1a: yes, thanks17:11
menesiswe were in Barcelona for 4 days17:11
th1aNice.  Lots of good skateboarding terrain there.17:11
menesiswas quite cold on Friday17:11
menesison the day when in Lithuania temperature records for the day were broken :)17:12
th1aHigh temps in Lithuania?17:12
menesis+29 in april :)17:13
th1alol  It has been chilly here lately but nice.17:13
menesisbut spent the weekend by the lake in lithuania, was sunny and hot17:13
menesisnice :)17:13
th1amenesis:  We need to get to that bug but I wouldn't call it a blocker at this point.17:14
th1aSo you should be set for now menesis.  Are you still working on the intelli project?17:14
replaceafillth1a, we said we'll handle it under the "importer i18n" task17:14
replaceafillaround june iirc17:14
menesiswell ok not much related17:15
menesisth1a: yes I should be working on that project this week17:15
th1aOK.  Cool.17:15
th1aLet's move on then.17:15
th1aThanks menesis.17:15
aelknerok, first, i finally got around to writing the error tests for the new Courses sheet columns and the FlatSectionsTable sheet17:16
aelknerand that led to some nice refactorings17:17
aelknerthen i created the exporters of yearly and global skills that directly correspond to the imports17:17
aelknerin so doing, i started a filename pattern that i'd like to ask everyone to continue17:18
aelknerreport.zcml should have ervey reportLink directive, every report request registration and every17:18
aelknerreport view reg, be it xls, pdf, whatever17:19
aelknerthen i created for xls views, and we should have pdf_views for those17:19
aelknerlet's try and keep this stuff tightly organized so it's easy for each of us to see each others changes17:19
aelkneranyway, i have one more task to do in the core importer before merging to trunk17:20
aelknerand that is, handle non-latin chars, but i'll discuss that with replaceafill after the meeting17:20
aelknerthat's it for me17:20
replaceafillnon-ascii chars :)17:20
aelknertrue :)17:21
th1aThanks aelkner.17:21
yvlsorry, was away for a sec17:22
yvlit's been somewhat a hectic week17:22
yvlstill working on ttw17:22
yvland tomorrow is a bank holiday, so I guess I won't have much to report on Wed also :|17:22
* yvl kind of done17:24
yvlon a trip organizational side...17:24
yvlth1a, did you rent the car last time?17:24
yvlhow does one do that?17:25
th1aI think they set it up and I paid for it.17:25
yvlah, ok17:25
th1aThey can do that.17:25
yvlI'll ask them to do that again17:25
th1aShould be fine.17:25
th1aOK, so we have to figure out what aelkner and replaceafill are going to do next, particularly since yvl will be away next week as well.17:26
th1aShould we just look at this as handing over the ttw task?17:27
th1aTo aelkner?17:27
aelkneror some part of it at least?17:28
yvlwell, probably17:28
yvlI don't know17:28
th1aIt is probably necessary.17:28
yvlwhen do you want me to stop working on it17:29
th1aWell, that would be the question.17:29
th1aDo we have score history implemented in the model?17:29
yvlno, it's a separate task17:29
yvland be careful with it17:29
th1aWell, I was thinking you might want to start on that.17:30
aelkneri'd let yvl handle the model17:30
th1aThat's what I meant.17:30
th1aHand off the basic views to aelkner.17:30
aelkneryvl, remember that the unit tests help drive the understanding of the model17:30
yvla very good point aelkner17:30
yvlthanks for constantly reminding me that17:31
yvlI really need it :)17:31
yvlsomebody cares!17:31
yvlbut really - thanks aelkner17:31
aelknerwell, i hope we care :)17:31
replaceafilli care! but i don't mention it :P17:31
yvlok, so we all care :D17:31
yvlit is good!17:31
yvlok, so I haven't pushed anything yet th1a17:32
yvland frankly it's a mess17:32
th1aOK, well step one is cleaning it up and pushing it then.17:32
aelkneryvl, perhaps you're trying to do too much at once?17:32
aelknerfor instance, the skills ui is clean, easy to understand17:33
th1aLet's get the ttw stuff off your plate then.17:33
aelknerand very helpful for the automated tests of the importer17:33
yvllet me work on it for a day or so then17:33
yvlthen again, I'll need a day to prepare for the trip17:33
yvlsay, Fri17:33
aelknerwe should be able to have a simple view to start looking at nodes to start, similar to the skillsets17:33
aelknerlike, the root level, so to speak17:33
aelknerthen, perhaps, we could branch off and devide ttw tasks from there17:34
yvland this week I basically have 3 work days left17:34
yvlWed, Thu, Fri17:34
th1aSO just clean up the ttw stuff and get ready for the trip.17:34
yvlsounds like a plane17:34
yvlplan :D17:34
yvland I'll hand it off to aelkner on Thu17:34
th1aI guess aelkner and I can start working on reports.17:35
aelknerpdf reports?17:35
th1aHTML first.17:35
aelknerfor cando?17:35
th1aWe'll need a long chat about that this afternoon.17:37
aelkneryvl, shall we meet thurs at the standard meeting time?17:37
aelknerso that we can discuss the ui and have enough time left over for you to make any quick17:38
aelkneradjustments before leaving for Portugal17:38
yvlsure aelkner17:40
th1aI'm thinking that the new version of the reports will be more dynamic -- search and filter built into the page -- so getting that set up will take a little work.17:42
aelknersounds interesting17:43
th1aIt should be fairly obvious in implementation.17:43
th1aOK, so... 1:30 chat aelkner today?17:43
th1aLet's do skype or a google hangout.17:44
aelknergoogle hangout is best, let's you show screens to each other17:44
th1areplaceafill:  Where are we with the whole skills/project, etc. thing?17:45
th1a(a nice precise question)17:45
replaceafilli'll have both gradebooks ready this week17:46
replaceafillwith ajaxy tabs17:46
replaceafill(i left that in the middle because of joe's demo last week)17:46
replaceafilli'll try to finish all these little gradebook details this week17:47
replaceafillth1a, so wait a few nagging questions from me :)17:47
th1a Yes?17:53
th1areplaceafill: ayt?17:55
th1aDo you have a nagging question?17:55
replaceafillnot now17:55
replaceafillah sorry17:55
replaceafilli mean, during the week17:55
th1aOK.  :-D17:55
th1aI guess we're done then.17:55
th1aThanks gentlemen.17:55
* th1a drops the bag of gravel.17:56
aelknerth1a, i'll call your home phone at 1:30 to start things off, ok?17:56
replaceafillthanks everybody17:56
th1aIt shouldn't be necessary to start the chat.17:56
aelknerok, we can meet here first17:56
aelknerreplaceafill, did you want to talk about the location proxy issue?17:57
replaceafillaelkner, i want to try it out first17:58
aelknerso, you're going to work on an adapter that sets the proxy, does that sound right?17:58
aelknerand you can have a traversal adapter for adding /skills or whatever17:58
aelknerwe do both of those things in schooltool.gradebook, so i'd look there17:59
replaceafillaelkner, i did17:59
replaceafillbut i think this case is different17:59
replaceafillin the regular worksheet case, you have IActivities, which contains the worksheets18:00
replaceafillso you only need that adatper18:00
replaceafillbut in the skills case, you don't have a container for worksheets18:00
aelkneryour proxy needs to be that container18:01
replaceafillbut the worksheets don't contain the activities (or skills)18:01
aelkneruntil you make them :)18:02
replaceafillanyway, i hope to figure it out today or tomorrow18:02
replaceafillaelkner, your non-ascii issue now?18:02
replaceafillor question :)18:03
aelkneryeah, i was going to ask you for pointers about how i need to test the importer18:03
aelkneri've been looking at:18:03
aelknerthat change was for resource titles18:04
aelkneri guess the question is, how do we decide what needs special non-ascii tests18:05
*** ignas has joined #schooltool18:05
replaceafillwhen it fails :D18:05
aelknerid and titles basically, or every possible field18:05
replaceafillthat was a traceback reported by someone18:05
aelkneror someting in between18:05
aelknerah, so wait for a traceback and just fix that?18:06
replaceafilli'd say that everything that user can enter is possible non-ascii18:06
replaceafilllike titles, descriptions18:06
replaceafilland so on18:06
replaceafilland some of them affect namechoosers18:06
replaceafilland that's the hard part18:06
replaceafillfor example courses with non-ascii18:06
replaceafillif you set a course with title "Comunicación"18:07
replaceafillthe ó is used by the namechooser18:07
replaceafilland if you get that into a redirect call, you need to clean it first18:07
replaceafillredirect is kind of dumb for decoding18:07
replaceafillor encoding...18:07
replaceafillsame for schoolyear and term namechoosers iirc18:08
replaceafillso in that case, you'd think you're safe only testing the title attributes18:08
replaceafillbut the url also needs testing18:09
th1aOne thing is to just never write a test without a non-ASCII character.18:09
th1aIn every field.18:09
aelknerwe've tried to make tests readable as a rule, so that future developers can learn from them18:10
aelknerand it helps debugging one's own code when one oes back to it after a long while18:11
aelknerso i guess adding non-ascii all over the place wold need to be done with that in mind18:11
th1aaelkner, thrown in a damn ó18:11
replaceafilli'd test specifically for non-ascii18:11
replaceafilllike in a separate test18:12
th1aThere is no ascii only case.18:12
th1aascii only means broken.18:12
* th1a waits for replaceafill to explain to me why that means SchoolTool is permanently broken.18:12
replaceafillsorry th1a didnt get that18:13
th1aNever mind.18:14
th1aI was afraid you were going to point out a lot of places that only accept ascii.18:15
th1aIs it just person id's?18:15
replaceafilli think so18:15
aelknerbut, practically speaking, replaceafill, does it help to always add an ó to every input field18:15
replaceafillbecause of zope security iirc18:15
th1aIt is not hard!18:15
replaceafillaelkner, sure18:15
aelknerok, so we could start doing that with new tests18:16
replaceafillbut it's more important to identify what parts are affected by non-ascii18:16
replaceafilllike it said, redirect calls for example18:16
replaceafilllike i said*18:16
aelknergetting back to that, that's a code issue, not a data issue18:16
aelkneri mean, it's not related to the importer18:17
replaceafillpay attention to the namechoosers and see if they use the title for setting the __name__18:17
replaceafilland so on18:17
aelknerin the case of importing, the xls file chooses the __name__18:17
replaceafillyou mean the user can affect __name__s, right?18:18
aelknerso i guess i should add an ó to every id in the import test files18:18
aelknerreplaceafill, yes18:18
aelknerand every other field for that matter18:19
replaceafillthen if those attributes are used in redirects, you need to clean them18:19
aelknerso, basically, if the user uses non-ascii in import ids, they could expose vulnerabilities in the views18:20
aelknerso it's not just the resource view that needs changing18:20
aelknerok, well, i don't see this as an import task per se18:20
aelkneralthough, it could be easier to cover all the cases with an import test file18:21
aelknerand visit every view that we already have tested otherwise18:21
aelknerlike person, course, section, term, etc.18:21
aelknerto make sure the redirects work, i guess, i'm not sure here18:22
replaceafillsee for example:18:22
replaceafillthat was a problem in the delete view for *sections*18:22
replaceafillcaused by the __name__ of the school year18:22
replaceafillagain, you could test for non-ascii in the schoolyear package18:23
replaceafillbut schoooltool.course is still affected18:23
replaceafillyou know what i mean?18:23
aelknerschoolyear, term, course, section, calendar, etc, etc18:23
aelknerit's not a small task to be sure18:23
replaceafillthat's what i say non-ascii tests should be specific18:24
replaceafillbut that's just my opinion18:24
replaceafilli may be wrong18:24
th1aWouldn't that be as much work or more?18:24
aelknerdoing them specifically works when you have no users, the less users the less bug reports18:24
aelknerif we assume that there will be a lot of users, it should work everywhere18:25
replaceafillmy point is that you won't catch every non-ascii issue in the existing code18:25
replaceafillbut you now know that you have to check the url you pass to redirect()18:26
replaceafillthat's more important18:26
aelknerluckily, it's not a data issue18:27
replaceafillit's not a data model issue :D18:27
replaceafilland you're breaking ground in testing non-ascii in the importers18:28
replaceafilli mean, in xls18:28
aelkneryeah, perhaps i'll expose some bugs18:29
aelkneranyway, that's all i need to discuss, thanks18:29
replaceafillthank you aelkner18:29
aelknerlet me know if you need any input on the proxy thing18:31
replaceafillwill do18:31
th1areplaceafill:  I gave Vivian her XO today.18:31
replaceafillCamila doesn't like Sugar18:32
th1aShe prefers GNOME?18:32
replaceafillor maybe it was because i didn't spent much time explaining it to her18:32
th1aShe's getting an earlier start I guess.18:32
replaceafilldoes Vivian like her XO?18:33
th1aWell, it was kind of a spur of the moment thing, and I haven't explained it yet really.18:33
th1aShe was trying to get this old pocket organizer I have to work, which I can't even remember how to use, and I figured it would be easier to just get her XO running!18:34
th1aI had started to do it earlier but got frustrated with a corrupted update file or something.18:34
replaceafillth1a, remember the laptop you took me to buy when i was in providence?18:35
replaceafillthe one i bought in that awesome place called...18:35
replaceafillah bestbuy!18:35
replaceafillthat's Camila's laptop18:35
replaceafillmissing a lot of keys now...18:35
replaceafillthat's the price i decided to pay for her getting familiar with computers :D18:36
th1aIndeed.  I'll be curious to see if the XO works out for Vivian.18:38
th1aShe may need a mouse because that trackpad is a bit of a disaster.18:38
replaceafillthat's another reason Camila didn't like Sugar i think18:39
replaceafillbecause the touchpad is the only thing she uses18:39
replaceafillshe doesn't like external mice18:39
replaceafilli've read that new sugar versions fixed that though18:39
th1aI thought it was a hardware problem.18:40
replaceafill"Work-arounds in extreme cases include using a common USB mouse with the laptop. " :/18:42
replaceafillah th1a i fwd a spanish reply to a venezuelan user18:48
replaceafilli always get the same question18:48
replaceafillpeople expect to access their ST at home from their office :/18:48
replaceafillsorry, i didn't fwd you, i bcc'ed you18:49
replaceafillwe have a faq in lp, right?18:50
th1aOh, from their home computer?18:51
th1aOK, that's good to know.18:51
th1aOK, Vivian's got Speak going.18:57
*** yvl has quit IRC18:58
th1areplaceafill:  We just had Vivian spelling "poop" and "pee" while sitting next to Julia on the potty.19:22
replaceafillthat's the behaviour i was thinking about :(20:21
th1aUh... I'm ok with it being full-time, if that's what you're saying.20:21
*** ignas has quit IRC20:27
th1aAre you getting my google hangout invite?20:35
aelknernot yet20:35
th1aAre you logged into google?20:36
th1aI don't see you on google chat.20:36
th1areplaceafill:  Do we have scores in CanDo at this point?20:53
th1aThat is, can we write a competency report?20:54
*** menesis has quit IRC20:56
* replaceafill goes to get lunch21:10
* replaceafill back22:01
*** menesis has joined #schooltool22:09
*** replaceafill has quit IRC22:10
*** replaceafill has joined #schooltool22:12
*** th1a has quit IRC22:53

Generated by 2.15.1 by Marius Gedminas - find it at!