IRC log of #schooltool for Thursday, 2006-01-12

srichterpcardune: not a use case for me00:00
pcardunewell, it would have been a use case for my english/math/TOK teacher last year00:00
pcarduneok, here is a good example with IB schools00:01
pcarduneIB grades on a scale of 1-700:01
srichterhonestly, in this case he can keep a spreadsheet himself and convert the grades to the system the school wants00:01
pcardunethere are assignments mandated by IB that are graded by two different people, the teacher, and some external IB examiner00:01
srichterthere is no need that SchoolTool needs to know about his system00:02
srichteryeah, but all this is far beyond to what I have to fulfill at this point00:02
pcarduneok, thats fine00:02
pcardunemaybe I will implement it on my own later then :)00:03
pcardunebut yeah, the use case still exists for us00:03
srichterok, in which case the design in st.requirement is good00:03
pcarduneso if there isn't a huge difference in implimentation difficulty, then I'd like to keep them seperate00:04
srichterI think it makes it much more difficult actually00:04
srichterfor the gradebook00:04
srichterbut for the gradebook I am writing a new class Activity(Requirement), so I can do what I want00:05
pcardunewell, what about both?00:07
pcarduneactually right now in cando, it does both00:07
srichterboth what?00:07
pcardunethe scoresystem can either be attached to the evaluation or to the competency/requirement00:08
pcarduneif it's attached to the evaluation, then that takes precedence00:08
srichterI would always attach the scoresystem to the evaluation as well00:09
srichtersince the teacher might change it and I want to know which one was used when the evaluation was made00:09
pcardunewell then it seems like we're talking about the same thing00:10
srichterI think the evaluation API is all good00:10
srichterthen we are cool00:10
pcarduneok, so then when the evaluation is made, the scoresystem is set to be the same as the requirement00:11
pcardunebut if the requirement's scoresystem is changed, the evaluation maintains the original link00:11
pcarduneok, yeah i am in total agreement with that00:11
*** povbot has joined #schooltool00:18
*** alga_ has joined #SchoolTool00:19
*** alga_ has quit IRC00:20
srichterpcardune: do you have a need to sort your requirements?00:20
srichterit is clear that you want to be able to do this in the gradebook00:21
srichterhow do you do this right now?00:21
pcardunewell, in cando, they are in a list00:22
pcarduneand that is arbitrarily ordered00:22
srichter(I am wondering whether we should support this in the Requirement API or make it a presentation issue)00:22
srichterbut sub-requirements are implemented as a BTree, which is a mapping00:22
srichterbut sub-requirements are implemented as a BTreeContainer, which is an unsorted mapping00:23
pcardunewell the thing is, virginia orders their competencies by these id numbers... but then the those competency groups they are in are ordered by the id numbers of the competencies they contain00:23
pcardunemeaning, group foo, has competencies 1, 2, and 3.  group bar, has competencies 4, 5, and 600:24
pcarduneit's easy to order within the groups based on the id00:24
pcardunebut foo must always appear before bar00:24
srichteryeah, ok, so you are all set00:24
srichterI might implement this separately then00:26
pcarduneam I? how do i sort the groups of competencies then?00:26
srichterwell, you have ids for those too00:26
pcarduneif I make a subclass for them00:27
pcardunewhich, i can do...00:27
srichterwell, the point it that your order is not arbitrary00:28
srichterit is well defined00:28
srichterso in your UI you can always do a sort00:28
srichterin a gradebook, as you might imagine, the order is defined by the user00:28
srichterso this info has to be sotred somewhere00:29
srichterso this info has to be stored somewhere00:29
pcardunewell i'd like that capability also00:29
pcarduneit's only not arbitrary the way virginia does it00:29
srichterok, I think about it00:30
*** alga has quit IRC00:30
srichterAll it should take is that IRequirement inherits IOrderedContainer instead of IContainer00:30
*** povbot` has quit IRC00:30
pcardunewe can sort arbitrarily ordered containers however we like in the UI, but we can't make unordered containers arbitarily ordered with the UI00:33
pcarduneso, in your gradebook implementation, are you going to have activities with subactivities? and will you have two different subclasses of Requirement for them?00:48
srichterI only need a base Requirement that is stored directly in the annotation00:49
srichterand this requirement contains all activities00:49
srichterand activities can only be declared for courses and sections in the gradebook case00:49
pcardunebut how are you going to configure it with zcml?  If I use a similar methodology, then the configurations will contradict each other00:51
pcardunewe can't both register views for IRequirement00:51
srichterI register everything on higher-level APIs00:51
srichterlike IActivities, IActivity, IGradebook, etc00:52
srichterdon't worry, I will not be in your way00:52
pcardunebut then, will you have an Activities class that implements IActivities and is a subclass of Requirement?00:53
srichterno, it will just use the Requirement00:53
srichtermaybe it will inherit it I am not sure, but either way it will not matter00:54
srichterbecause I never register anything for IRequirement00:54
srichteractually, I just looked at my Sci-Fi and had made up my mind already00:54
srichterActivities will inherit Requirement00:55
pcarduneso then you are in fact making two subclasses of Requirement... one for Activities and one for Activity00:56
srichterin fact I might call Activities -> Gradebook00:57
pcarduneok, it just seems counterintuitive to me to make a subclass of Requirement that in no way extends it... except for purposes of having different views00:57
pcardunebut maybe this is a common practice in Zope3?00:58
srichteryep, prime example are containers00:58
srichteralthough I note that Gradebook and Activity does extend Requirement00:59
srichterActivity will also store the score system00:59
srichterGradebook will store weight scale and maybe some other stuff00:59
pcardunei thought we had agreed that Requirement should store score system also?01:00
*** th1a has joined #schooltool01:00
srichteroh, I did not realize that we did due to your requirements01:00
srichterI think it is safer if we don't01:00
srichterwe can move it any time01:01
pcardunebut remember, we were talking about the same thing?01:01
srichterI know01:01
srichteroh ok01:01
srichterright, I see what you are saying01:01
srichterthough I still think there are use cases where you want it separate01:02
pcardunewell, if you want it seperate, then the UI can handle that01:02
pcarduneit can just automatically reset the evaluation's scoresystem01:02
srichteryep, for you this is certainly the case01:02
srichtersince you really have only one score system for all competencies01:03
srichtermy case is the opposite; I have pretty much a different score system for each activity01:03
pcarduneeither way, storing scoresystem in the Requirement object works for both of us01:05
pcarduneoh wait a second01:05
pcarduneno no, it does work01:05
pcarduneso long as it can inherit the score system from it's parent requirement01:06
srichterhe he, and that's the reason we are not going to do it now :-)01:06
srichterbecause what happends if you have multiple parents/bases?01:07
srichterwhich one do you choose?01:07
pcarduneit only ever has one parent01:08
pcarduneso you use that one01:08
srichterwe are supporting multiple bases01:09
pcardunemultiple bases, but not multiple parents01:09
srichterbut what is the parent of a requirement?01:10
srichterok, never mind01:10
srichterI see what you are saying01:10
srichtermy bad01:10
srichteryou are right01:10
pcarduneok, you have requirement program, with sub requirement forloop, then you have requirement pyprogram with subrequirement iterator, program is a base of pyprogram01:10
pcarduneso when you look up requirements of pyprogram, you will get forloop01:10
pcardunebut when you score it, you will use the score system defined by program, not pyprogram01:11
pcarduneand for iterator, you will use the score system defined my pyprogram01:11
pcarduneso then, we should have requirement store scoresystem, and also be able to get it from it's parent01:13
pcardunewhat's the term they use for that all over zope2?01:13
pcardunethat's what i'm thinking of01:13
srichterpcardune: still there, because you left zope3-dev01:16
pcardunesrichter: I'm going to leave the RequirementView class in schooltool because I think it provides some decent functionality that others might want to use someday01:55
pcarduneit's based off of an example in your book!01:56
srichterhe he01:56
srichterok sounds good01:56
pcardunesrichter: ayt?02:59
*** didymo has joined #schooltool03:10
srichterpcardune: yep03:30
pcarduneI wanted to make a menu item with an action of ++competencies++03:31
pcardunebut it in getting the menu items, it makes sure they work by calling them03:31
pcarduneof course, ++competencies++ traverses to the competencies object, for which calling is forbidden03:32
pcardunecan you make a menu item that is just a plain link?03:32
pcarduneoh wait... maybe i just need to make the action ++competencies++/@@index.html03:32
pcardunei always seem to figure it out right after I ask someone....03:38
pcarduneok, but i'm still have trouble with dealing with inherited requirements03:38
pcardunei'll do some debugging03:38
pcarduneand maybe get back to you if i can't figure it out03:39
srichterok, sounds good03:39
srichterth1a: any idea when you will come over tomorrow?03:39
pcarduneI finally looked at a tutorial on how to really use the pdb... soo good... why didn't i know this 4 years ago?!03:41
pcardunei guess that is jelkner's fault... ha ha... if the pdb even existed back then03:41
srichterhe he03:48
srichterI think it is around forever03:48
srichterpcardune: if you use WingIDE, the debugger is even mcuh better03:49
pcarduneooo... that's bad that he doesn't teach his kids to use it...03:49
pcarduneyeah... i'll get WingIDE after I get some more ram for my laptop03:49
pcardune256 just won't do it if i am running two zope3 servers at the same time and a bunch of KDE apps03:50
pcardunei look at my CPU usage and it is 20 percent. while the hard drive is being read like crazy... hmmm... swap is slow03:50
th1asrichter:  Lunchtime?03:51
srichtersoudns good to me03:52
srichterany time after 7:30 is okay with me :-)03:52
th1aI'll have a long day, so I can't get up too early.03:52
pcardunesrichter: our Requirement keys method is broken :)03:53
pcarduneif creates a set of keys... but keys are not unique among all requirements03:53
srichtermmh, how so?03:55
pcardunei have two requirements:  somecourse/++comp++/testComp and global/++comp++/testComp03:56
pcarduneif the second is a base of the first03:56
pcardunethen calling keys on the first will return a set with one value, 'testComp'03:56
pcardunethe key isn't good enough, we need the entire path03:57
pcardunea key is only unique within it's containers03:57
srichterof course03:57
srichterthat's why it is called a nmae and not an id03:58
pcarduneunfortunately, and i found this out earlier, we can't use python's fun id() because it doesn't work on persistent objects apparently03:58
pcardunedo you have any suggestions of the proper way to do this?03:59
srichternote that there is an intid utility in Zope 3 that does what you want03:59
pcarduneoh, i wasn't familiar with that04:00
pcarduneso, I will change it to use that instead of the keys04:00
*** th1a has left #schooltool04:01
pcardunewow... old style unit tests are just horrifying to look at04:01
pcarduneyou wouldn't happen to know where I could find some decent docs on IntId specifically?04:09
srichteryou could write some while learning it :-)04:10
srichterbasically, what it boild down to is you feed it an object and it gives you a system-wide unique id04:11
srichteru = InIds()04:11
pcarduneright, except it seems strange that you have to instantiate IntIds to use that04:11
srichteruid - u.register(obj)04:11
srichterwell you have to store it locally too04:12
srichterof course you have to instantiate it04:12
srichterthe utility stores the mapping04:12
srichteruid -> obj and obj -> uid04:12
pcarduneI'd think it would be something done for everything in the entire zodb04:12
pcarduneso that everything implicitly has a unique id04:13
srichterwell, first of all, Zope 3 should not depend on ZODB features04:13
pcardunemmm... i suppose that is true04:14
srichterand second I think that there is something strange about the oid changing sometimes04:14
pcarduneso IntIds is a utility, and i dont have to keep an instance around after i have registered my object04:15
srichteryou have to keep it around04:16
srichterit is a local utility04:16
srichterit has to be stored in the site management folder04:17
pcarduneahh... i skimed the global utility chapter of your book... woops04:17
srichteryou should have read on to the local utility04:21
pcarduneblargh, i just need an example of where it has been used before04:26
pcardunedid you say you knew a program for searching within lots ot text files?04:26
srichterwell, the catalog/index code uses it04:31
srichterit was developed for it04:31
povbot/svn/commits: * srichter committed revision 5592:05:10
povbot/svn/commits: It's decorator time; groovy.05:10
povbot/svn/commits: * srichter committed revision 5593:05:11
povbot/svn/commits: Initial design ideas.05:11
*** pcardune has left #schooltool05:23
*** th1a has joined #schooltool05:54
*** Aiste has joined #schooltool10:58
*** Aiste has quit IRC11:28
*** vidasp has joined #schooltool12:25
*** mgedmin has joined #schooltool12:46
*** alga has joined #SchoolTool13:04
*** Aiste has joined #schooltool13:35
*** Aiste has quit IRC13:41
*** mgedmin has quit IRC14:03
*** ignas has joined #schooltool14:16
*** pcardune has joined #schooltool14:25
*** jinty has joined #schooltool14:29
*** jinty has joined #schooltool14:31
*** mgedmin has joined #schooltool14:37
*** thisfred has joined #schooltool15:09
povbot/svn/commits: * mg committed revision 5594:15:13
povbot/svn/commits: Days in timetables and timetable schemas now have a homeroom_period_id attribute.15:13
pcardunesrichter: ok, i read both of the chapters on utilities in full.  I'm still confused as to how I register the IIntIds utility, or where it has to be instantiated to that zapi.getUtility will look it up15:25
pcarduneok, lunchtime, i'll be back in 30-45 mins15:27
*** mgedmin has quit IRC16:04
pcarduneok, i'm back16:04
*** mgedmin has joined #schooltool16:07
*** erchache has joined #schooltool16:11
erchachewhat happs with interlingua?16:12
*** Aiste has joined #schooltool16:25
*** erchache has quit IRC16:32
*** erchache has joined #schooltool16:33
erchachehi again16:34
povbot/svn/commits: * mg committed revision 5595:16:37
povbot/svn/commits: Add an overview of the timetable schema wizard functional test.  Scale down the images.16:37
povbot/svn/commits: A good way to make sense out of this ftest is to download from and run ttschema-wizard.txt16:37
*** th1a has quit IRC16:42
povbot/svn/commits: * mg committed revision 5596:16:46
povbot/svn/commits: Move all images into a subdirectory, so they do not clutter the ftests package.16:46
povbot/svn/commits: * mg committed revision 5597:16:55
povbot/svn/commits: Add a script to update the images.16:55
povbot/svn/commits: Usually comitting generated files into a source control repository is a Bad Idea, but not doing that would introduce an unnecessary dependency on graphviz and ImageMagick.16:55
povbot/svn/commits: * mg committed revision 5598:16:58
povbot/svn/commits: Eradicate evil TAB characters.16:58
povbot/svn/commits: * ignas committed revision 5599:17:02
povbot/svn/commits: Replaced CalendarListView with an identical subscriber.17:02
pcarduneok srichter, i've really gotten deep into this, and now I finally figured out how to use IntIds, but now it's claiming that it can't adapt a Requirement to IKeyReference, except that there is already an adapter for IPersisten->IKeyReference17:18
povbot/svn/commits: * mg committed revision 5600:18:11
povbot/svn/commits: Convert old-style http("...") bits into testbrowser code that is used for the rest of the functional test.18:11
povbot/svn/commits: * mg committed revision 5601:18:15
povbot/svn/commits: Indentation consistency.18:15
povbot/svn/commits: * mg committed revision 5602:18:19
povbot/svn/commits: Update the test plan to include the new homeroom steps.  Add the "do you have a homeroom?" question step to the timetable wizard.18:19
pcardunemgedmin: Can you think of any reason why schooltool components would not be adaptable to IKeyReference?18:23
*** th1a has joined #schooltool18:23
pcardunewhois th1a18:24
th1aYou know who I am.18:25
pcardunei was just looking to see if you were at stephan's place18:25
th1aerchache:  I need to talk to bskahan about the server setup.18:26
srichterpcardune: the adapter from IPersistent to IKeyReference does not seem to be regiatered18:26
erchacheth1a: ok18:26
srichterI cannot see it in configure.zcml18:26
erchachewhen are avalaible?18:26
pcardunesrichter: it's registered in zope/app/keyreference/configure.zcml18:27
th1aerchache:  I would think next week.18:27
erchacheok :-D18:27
*** erchache has quit IRC18:31
*** erchache has joined #schooltool18:33
srichterpcardune: oh ok18:34
srichteroh I know18:35
srichterzope.appkeyrefernce's ZCML is not loadde in schooltool18:35
pcardunewhy not?  isn't like the entire zcml loaded in schooltool?18:36
pcarduneok, well i will add it to schooltool/configure.zcml then18:36
mgedminpcardune, what's IKeyReference?18:36
pcardunemgedmin: some interface that an object needs to implement for it to have a unique id using IntIds18:37
pcardunethat's as much as I know at this point about it18:39
povbot/svn/commits: * mg committed revision 5603:18:58
povbot/svn/commits: The timetable wizard now has a working step for selecting homeroom periods.  It does not save the information in the created timetable schema yet.18:58
*** Aiste has quit IRC19:31
*** jinty has quit IRC19:46
povbot/svn/commits: * mg committed revision 5604:20:01
povbot/svn/commits: Oops.  Fix two broken ftests.20:01
povbot/svn/commits: * mg committed revision 5605:20:02
povbot/svn/commits: Expose timetable homeroom periods via the RESTive views.20:02
povbot/svn/commits: (I am not proud of the convoluted TALES expression that sets that attribute.  I am unsure if the "version number" in the XML namespace should be increased or not.)20:02
povbot/svn/commits: * ignas committed revision 5606:20:34
povbot/svn/commits: Modified the IAttendance.makeCalendar to take no arguments.  Added a ICalendarProvider subscriber that provides attendance calendars.20:34
erchacheth1a: what is bskahan email?20:35
erchachei dont have this...20:35
th1aI sent him an email last night.20:36
erchacheok...but i want to have it20:36
erchachecan you tell me?20:36
erchacheany problem? :-S20:39
povbot/svn/commits: * mg committed revision 5607:20:39
povbot/svn/commits: Refactor period name computation when periods are designated by time.20:39
povbot/svn/commits: * ignas committed revision 5608:20:48
povbot/svn/commits: Registered the subscriber that provides attendance calendars.20:48
erchachebye...see tomorrow!20:50
*** erchache has quit IRC20:50
th1apcardune:  I'm working on a final revision of my presentation on evaluation.  I'll send it to you shortly and see if you have any feedback.20:59
pcarduneth1a: ok21:00
pcardunesrichter: I think i nearly figured out the whole IntIds thing, but we need to rethink our implementation of IContainer in Requirement21:02
pcardunewhat does keys() return? a list of keys, which are __name__ attributes? or a list of unique ids?21:06
pcardunehow about __getitem__, does it take __name__ attributes as the key, or unique ids as the key?21:06
srichterkeys() always returns the name of the requirement, not the id21:07
srichterbecause any key returned must be a valid value for __getitem__21:07
srichterI think our implementation of keys is just fine21:08
pcarduneright, but keys also looks into the bases, but they keys are not unique between all the bases21:08
pcardunethat is the whole reason we needed unique Ids21:08
srichteroh, darn21:09
pcarduneso, i propose that we just reuse the Container or BTreeContainer implementation of IContainer, and then add a method for getting inherited requirements21:09
povbot/svn/commits: * mg committed revision 5609:21:10
povbot/svn/commits: Finished homeroom work in the ttschema wizard: it now stores your selection in the data structure.  Changed the wizard to only show those periods that are actually present in a day in the dropdown.21:10
*** ignas has quit IRC21:10
pcarduneso, keys and items and values and such, will return objects in requirement21:10
srichterbut that removes the transparency that we wanted21:11
srichterI have to think about that21:11
srichterI am not sure I agree21:11
pcardunei would like the transpareny too21:11
pcardunebut implementing that becomes a lot more difficult when we have to deal with keys and ids21:11
srichterin this case I'd rather reimplement the keys and getitem methods21:11
pcardunethe question is how21:12
srichterplease produce a test that fails in the README.txt and then comment it out21:12
pcardunei'll work on that now21:13
*** srichter has quit IRC21:26
povbot/svn/commits: * pcardune committed revision 5610:21:32
povbot/svn/commits: added a commented out failing test for inheritence with conflicting keys21:32
pcarduneth1a: just fyi, i gotta be out of here in 30 minutes to go out to dinner21:33
th1apcardune:  Well, I'm almost done, but by the time I wrap it all up and get it to you, it'll be too late.21:33
th1aSo don't worry about it.21:33
pcardunethat's fine21:33
th1aYou and Stephan ended up talking so much the past couple days that a special meeting wasn't necessary.21:34
*** srichter has joined #schooltool21:34
th1aHe and I went over the SIF stuff this morning.  It doesn't look like there is any problem there.21:34
*** _pcardune has joined #schooltool21:38
*** pcardune has quit IRC21:41
*** srichter has joined #schooltool21:47
*** mhz has joined #schooltool21:53
_pcardunesrichter: the failing test is in the repo21:54
mhzhi all21:54
_pcardunehi mhz21:54
mhzis part of the roadmap to incroporate Moodle or Claroline with Schooltool?21:54
mhzhi _pcardune21:55
th1aAt this point, I'm waiting to see what web services arrive in Moodle 1.6.21:55
th1aAlthough the roadmap seems pretty vague other than "there will be webservices in Moodle 1.6."21:55
th1aIt isn't clear when Moodle 1.6 is supposed to arrive.21:56
th1aBut yes, Moodle integration is an important feature.21:57
th1aWe use different underlying technologies, so web services would be the best option.21:57
mhzth1a: more than Claroline?21:58
srichter_pcardune: I think the easy solution to our problem is to make setitem more restrictive21:58
th1amhz:  Personally, I talk to more Moodle users, but Moodle is bigger here in the US.21:59
mhzother q. From Edubuntu... which port is schooltool running?21:59
th1aThe open source LMS market in kind of regional.21:59
mhzand what infor I need for login?21:59
mhzth1a: indeed21:59
th1a7080 login:manager passwd:schooltool21:59
mhzth1a: IMHO Claroline and Moodle are the ones best fitting universality22:00
_pcardunesrichter: what about setitem do you want to change?22:00
_pcardunesrichter: restricting setitem means restricting urls22:00
mhzth1a: hmmm. ''connection refused when attemting to contact 7080" :(22:02
mhzany ideas? it's there and running AFAIK22:02
_pcardunesrichter: so then, it would only allow names/keys that are unique among all the requirements on the server?22:03
srichterno, only unique in you inheritance tree22:03
th1amhz: 7180?22:04
th1aCan you do 'sudo /etc/init.d/schooltool restart'22:04
srichteryou know I am actually surprised that we get this failure22:04
srichter_pcardune: isn't this like overriding an inherited requirement?22:04
_pcarduneit is22:05
srichterso the local version should win22:05
_pcarduneand it does...22:05
_pcarduneexcept we don't want them to be overridden22:05
srichterI thought we do22:06
_pcardunewell maybe... but then we want extra permissions for overriding22:07
srichtermmh, I thought this was a clear promise of the API22:08
_pcarduneand also, what happens when bases are added, and the prexisting requirements conflict22:08
srichterthen the local old one always wins22:09
*** pcardune has joined #schooltool22:10
*** tiredbones has quit IRC22:10
*** mhz has quit IRC22:10
pcardunepower went out22:10
srichterthen the local old one always wins22:11
srichterso the current behavior of values is incorrect22:12
srichterit gets the global goodPerson, but should get the local one22:12
pcarduneno, it gets the local one22:12
*** vidasp has quit IRC22:13
srichterI just ran your test and it got the global one22:13
pcarduneFailed example:22:13
pcardune    print localCitizenship.values()22:13
pcardune    <BLANKLINE>22:13
pcardune    ...Requirement(u'Be a good person globally.')...22:13
pcardune    [Requirement(u'Be a good person locally.')]22:13
pcardunelook at got... it got the local one22:13
srichterI have:22:14
srichterFailed example:22:14
srichter    print localCitizenship.values()22:14
srichter    [Requirement(u'Be a good person globally.')]22:14
srichter    [InheritedRequirement(Requirement(u'Be a good person globally.'))]22:14
srichteroops, I mean:22:14
srichteroh, hold on22:14
*** _pcardune has quit IRC22:15
srichterpcardune: ok, so we get the same result22:15
srichterI think it behaves correctly22:15
pcardunein any case, there should at very least be a screen that checks with the user whether they *really* want to override another requirement22:15
srichteryeah, you can do this in the UI easily22:16
srichterAnother option would be to disallow this sort of thing, but as you pointed out this opens a can of worms I do not want to open22:17
pcarduneand then what about when bases are later added and there are conflicting requirements... then i suppose the user would be presented with a list of conflicts and be able to select which ones to override?22:17
srichterand it currently behaves exactely like inheritance or acquisition22:17
pcarduneok fair enough then22:17
pcardunewell... at least i know a little bit more about some random zope thing22:18
pcarduneand utilities22:18
*** srichter has quit IRC22:20
*** mhz has joined #schooltool22:23
pcardunei've got to go to dinner.  bye all22:24
*** pcardune has quit IRC22:24
*** thisfred has quit IRC22:25
*** mhz has quit IRC22:33
*** srichter has joined #schooltool22:48
*** mhz has joined #schooltool22:51
*** mhz has quit IRC23:01
*** alga has quit IRC23:16
*** th1a has quit IRC23:19
*** mgedmin has quit IRC23:19

Generated by 2.15.1 by Marius Gedminas - find it at!