IRC log of #schooltool for Friday, 2007-04-27

*** nerd_alert has quit IRC00:09
*** didymo has joined #schooltool00:16
*** ignas has quit IRC00:20
*** ACSpike[Work] has left #schooltool00:44
*** pcardune has joined #schooltool00:54
*** pcardune has left #schooltool01:53
*** pcardune has joined #schooltool01:53
*** pcardune has quit IRC01:55
*** wrobel has quit IRC03:43
*** pcardune has joined #schooltool07:47
*** bhaskar has joined #schooltool07:53
bhaskarth1a_, hello07:55
*** bhaskar has quit IRC08:17
*** wrobel has joined #schooltool08:42
*** lisppaste5 has quit IRC09:19
*** pcardune has quit IRC09:19
*** lisppaste5 has joined #schooltool09:31
*** jfroche has joined #schooltool10:51
*** thisfred has joined #schooltool10:59
*** jinty has joined #schooltool11:09
*** ignas has joined #schooltool12:57
CrippsFXmorning all.13:59
*** didymo has quit IRC14:21
*** bhaskar has joined #schooltool14:45
*** mgedmin has joined #schooltool14:53
*** bhaskar has quit IRC15:03
*** ACSpike[Work] has joined #schooltool16:48
*** alga has joined #SchoolTool17:16
*** pcardune has joined #schooltool18:24
*** ACSpike[Work] has left #schooltool18:26
pcardunethere are so many people here....18:32
*** alga has quit IRC18:41
ignaspcardune: hi18:41
pcardunehi ignas18:41
pcarduneIf we are all here now, we could just meet now?18:41
ignasjfroche: ayt?18:42
* ignas has added ie6 support by adding a bit of javascript18:42
jfrochewuhu :)18:42
ignasand as far as i am concerned - not supporting IE6 for schooltool is not an option18:42
pcardunefor cando then...18:42
ignasin trunk now18:43
jfrocheignas: great18:43
ignasso about gradebook18:43
ignaspcardune: what's your plan?18:44
pcarduneMy plan is to do what jelkner tells me to do18:44
pcarduneat this point I'm planning on integrating what we have from cando into schooltool18:44
pcarduneto form a base gradebook that provides enough functionality from which other gradebooks can stem18:44
ignaswhat kind of functionality?18:45
pcardunemostly integration with the ability to have tree structures for assignments/activities18:45
ignasso the gradebook will be assignment/activity based18:46
pcarduneI forsee all the gradebooks being exactly the same except that they contain different sorts of grades18:46
ignaswith all the activity management left to the user and marks being for (assignement, student) pairs18:46
pcarduneone contains competency grades, one contains activity grades18:46
ignasi see18:47
ignasseems not too much overlap with lithuanian requirements18:47
pcarduneand I'm reusing the existing gradebook code, which is based entirely off of the requirement package in schooltool18:47
ignasas in lithuanian it's the other way - mark goes first, then teacher might assign a category to the mark (homework, test etc.)18:47
pcardunehow do they know what they are marking?18:48
ignasyou have section meetings18:49
jfrochei need notes for every section that a student is registred and serveral time during the school year so my tuple is (student , section , time)18:49
ignasgradebook is a table :)18:49
ignasjfroche: more like "student, timetable_event_id"18:49
ignasmore convenient18:49
ignastimetable event will give you time and section18:50
ignasso if you want you can store marks in the annotations of the event even18:50
jfrocheexcept that my section aren't map yet to a timetable18:50
ignasso where do teachers get the time from?18:51
ignasor you want to do gradebook without timetabling at all18:51
jfrochegradebook shouldn't be linked to the timetable18:51
ignaspcardune: the only problem i see is the 'schootool.gradebook' name being taken by what effectivelly is 'american.gradebook'18:51
ignasjfroche: hmm, in lithuania it is ...18:52
jfrochei mean so that it shouldn't be linked to the timetable package18:52
ignasjfroche: so what is the workflow in belgium when grading students18:52
jfrocheof course i need to have notes for some defined dates18:52
ignasjfroche: emm, so you can write some marks without a section meeting18:52
*** thisfred has quit IRC18:52
jfrocheteacher have to provide a list of point for a certain date18:52
jfrochethese notes are the sum of the result of the student for a defined period18:53
ignasinteresting, in that case it might be more convenient to do it separately, though you will need a separate gradebook, and a part for managing the grading timestamps18:53
jfrocheright cause theses are more frequent than terms18:54
pcarduneI think we are being too specific with use cases here18:54
pcardunewhat is a gradebook essentially: it is a collection of students, a collection of things that need to be marked, and the marks18:54
pcarduneis that right?18:54
ignasthe things in my case are "sections"18:55
jfrochesame for me18:55
jfrochebut it's essentially that18:55
pcarduneso each student has only one mark for a section?18:56
ignasno, 0 or more marks for a section meeting18:56
ignasmost of the time 1 mark18:56
ignasmost of the time 018:56
ignas2 marks - exception18:56
pcarduneoooh, i see18:56
pcarduneso you go to class and you get a grade for that day in class?18:57
ignasso essentially - timetable events18:57
ignasor for a test you did in that meeting18:57
ignasor for answering questions18:57
ignasor for the homework from last meeting18:57
pcarduneok, so yes, we have students, things to mark, and the marks18:58
pcardunein your case "things to mark" are timetable events, and in my case, things to mark are specific assignments18:58
pcarduneI think we can have 1 gradebook class, with different adapters that populate it with the right students and the right things to mark18:59
pcardunedoes that make sense/18:59
ignasthe problem is that I don't really want to go complicated or even complex at the moment18:59
ignasit is possible to map the timetable event model on to the current activity based grade storage19:00
ignasbut the code to store grades on timetable events directly19:00
ignaswould be quite smaller19:00
pcarduneok, i see how that makes sense19:01
ignaswhat would be the benefits of a common store, except for the fact that it would have to implement all of our requirements19:01
pcardunebut the gradebook shouldn't care about storage19:01
ignasthe gradebook has 2 parts - UI  and Storage19:01
jfrochei am not sure i will ever get the timetable for my school19:02
pcarduneI think the gradebook only has one part, UI19:02
ignasjfroche: ouch, so how do they go to lessons ?19:02
pcarduneignas: I'm in the same boat19:02
pcarduneignas: they go to lessons with the dashboard, which lists the sections they are instructors of19:02
pcardune(in cando)19:03
ignasthe time for lessons is somewhere19:03
ignasfor section meetings19:03
ignasor do you reshuffle it every day?19:03
jfrocheignas: they have timetable but they are done by another math software from an external guy19:03
ignasjfroche: so you can view it, yes? on the web or on paper19:04
jfrocheon paper & i don't want to encode timetable for 1000 students by hand19:04
ignaspcardune: i kind of dropped the idea of "common storage fits all possible UIs" idea, as being not suitable  pluggability19:04
ignasjfroche: OCR FTW ;) or make students do id :)19:05
pcarduneignas: yes, I agree19:05
pcardunethat is why we have uncommen storage, but the same UI19:05
ignaspcardune: or uncommon storage and uncommon UI19:06
ignaspcardune: because UI is the part lyceum wants most changes to, especially for gradebook19:06
pcarduneok, uncommon storage, uncommon UI, but the same Interface?19:06
ignasIGradebook on what?19:07
ignaswe might try sharing some views19:07
pcarduneespecially when it comes to reports19:07
ignasIGradebook for person, might be identical19:08
ignasok, not really19:08
pcarduneRight now cando gradebook has the most functionality, but eventually your gradebooks might have more functionality which I want to have too19:08
pcardunethe less I have to do to get your code to work with my code, the better19:08
ignasi understand19:09
pcarduneIf we can stick to some base interfaces, then that will be easy19:09
ignashmm, i don't think so19:09
ignaswhat do you suggest having in the base ?19:09
ignason IGradebook(section)19:10
ignaswhat kind of functionality you think might apply to both gradebooks (functionality that only depends on the base interface)19:10
pcarduneattributes: students, "thinkgs to mark"19:10
pcardunegetMark(student, thing_to_mark)19:10
pcardunesetMark(student, thing_to_mark)19:11
jfrochesetMark(student, thing_to_mark, time)19:11
pcardunejfroche: that would be implicit in the "thing_to_mark"19:12
pcardune*or* your implementation of getMark would get the time19:12
ignasjfroche: no, with this interface you would have to add an object "thing_to_mark" that would be something like an event19:12
jfrocheignas: an event with a section19:12
ignasanother thingie is that my gradebook will be closely integrated with attendance19:13
pcarduneAlso, I wonder whether you will be using the requirement package (I very much hope yes)19:13
ignaswhat can it do for me?19:13
pcarduneignas: IAttendace(gradebook)19:13
pcarduneit can do score systems19:14
pcardunewell I really only hope that you will use the same interface in requirement package19:14
pcarduneIEvaluation, IScoreSystem, IRequirement19:14
pcardune(maybe not IRequirement)19:14
ignasmy problem is that:19:15
ignaswhat i need is to store 1-10 or (absent, tardy) for every timetable event19:15
* jfroche whished Belgian school could be based on requirement, but no19:15
ignasand views that show that data19:15
ignasand IRequirements are not giving me anything19:16
pcardunelike I said, not necessarily IRequirements19:16
ignasi mean if it would be possible to use these interfaces somehow to find common ground19:16
ignasand have some shared code19:16
ignasi would be all for it19:16
ignasbut i still can't think of an example of shared code19:16
ignasto make it worth doing additional work19:17
ignasmaybe you can give me an example19:17
ignasof how would you imagine doing a report on grades19:17
pcardunewell at first I was thinking gradebook views19:17
pcardunereporting though seems to be a good fit19:17
ignasthat would apply to your school and my school19:18
pcardunebecause you can't have to many different kind of reports19:18
ignaspcardune: you can, that's the whole point :/19:18
jfrochereports are very specific19:18
ignasreports is the part that will have to be very very very customizable even when schooltool UI will be more or less stable for 90% users19:19
ignas(looking into far future)19:19
pcarduneI see your point19:19
pcarduneare any of the changes from the two schools you are working with making there way back into trunk?19:20
jfrochesome part yes19:20
ignashmm, pluggability of module initialization19:21
ignasconfirmation for calendar event deletion19:21
ignastalking about far future19:22
jfrochewe are customizing schooltool to fit to the school needs, when we see that there is a hard customization problem we change to make it easy custom and move this to trunk19:22
ignasthe pattern ISchoolToolCalendar(person)19:22
pcarduneok, that sounds good19:22
ignasor IAttendance(person)19:22
ignasor IFoo(group)19:22
ignasis used quite a lot in schooltool19:22
ignasmost of the time it stores data in person.__annotations__ etc.19:23
ignasbut in the very long term we might want to move persons19:23
ignasgroups or pretty much any part of schooltool19:23
ignasout of ZODB into sql database, LDAP19:23
ignasplain text files in the filesystem19:23
ignasanother planet19:23
pcardunecan we leave around a persistent wrapper?19:24
ignaspcardune: not always19:24
jfrochethere is no storage layer19:24
ignasso the patter IAttendance(group) storing the data in app.__annotations__['']19:24
ignasor something simmilar19:24
ignasor even constraining itself to only modifying data in app['lyceum.groups'] (some attendacne object)19:25
ignaswouls be the way to go19:25
ignasso that in the future you can remove 100% of attendance in one go, and 2 different attendance plugins19:25
ignasdo not share the database19:25
ignasthe downside is - you must clean up on IObjectRemoved event19:26
ignasthe upside - you can start using lyceum.person instead of schooltool.person19:27
ignaswithout ruining the database19:27
ignasif you write schooltool.person => lyceum.person export script19:27
ignasthat creates persons with identical id's19:27
ignasbut that's the very far future19:27
ignasadds a bit of inconvenience and a lot more modularity19:28
ignasif we will have eggs for all sub packages - we will need modularity19:28
pcardunewhat happens if lyceum.person and schooltool.person are both installed?19:29
ignasat the moment - you select the active one through zcml19:29
ignason the first start up19:29
ignaswhich is very inconvenient19:29
ignaswith such scheme - you could in theory switch between them without even shutting down19:30
ignasthrough some kind of admin UI19:30
ignasbut as i have mentioned it's far future - unless i gain superpowers ;)19:30
ignasmy vision19:31
ignasa nice word ;)19:31
ignashaving eggs for data plugins (schooltool.person, lyuceum.person etc)19:31
ignasand eggs for UI packages19:31, schooltool.attendance19:31
ignasUI packages depending on interfaces provided by data storage eggs19:31
ignasso if you want to install - you must have evabled an ILyceumPersonStorage providing egg19:32
jfrocheand auto changing zcml :)19:32
ignasno zcml changing19:32
ignasyou just select schooltool.lyceum.person, schooltool.calendar, schooltool.attendance, schooltool.groups data plugins19:32
ignasand select "schooltool.standard"19:32
ignasui plugin after that19:33
ignasand voila - a standard school19:33
ignasunclick the UI, select different plugins, select different UI19:33
ignasvoila - a different school19:33
ignaswant an SQL person database19:33
ignasinstall cando.person.sql egg19:33
ignasconfigure it in the file system19:33
ignasstart schooltool, select it instead of schooltool.person19:34
ignasand you have persons in SQL19:34
ignas(no, we won't do ttw sql connection configuration, that would be a security hazard)19:34
ignasbut that will take a lot of time19:35
pcardunethat sounds very nice19:35
ignasthat is the only way i think pluggins19:37
ignasand database based application19:37
ignascan coexist19:37
ignasbut i am welcome to suggestions ;)19:37
ignasnot welcome19:37
ignasbroken english ;)19:37
jfrocheignas: do we have time to create such a plugin system ?19:39
ignasnope :) that's something we will have in a year or two19:39
ignasjust that19:39
ignasif it's equivalently easy to store something on a person19:40
ignasand in app['schooltol.gradebook']19:40
ignasyou should probably store it on app19:40
ignashaving USA style gradebook19:40
ignasas schooltool.gradebook19:40
ignasis not too terrible19:40
ignaspcardune: if you will see anything in my code that you want to reuse - tell me i will refactor it19:42
ignasanything else?19:43
pcarduneno, that sounds good19:43
ignasjfroche: if you would add an event for every grade teachers add19:44
ignaswe might have a common base for storage19:44
jfrochei ll anyway try to get ical export of the calendars19:45
ignasi see19:45
*** alga has joined #SchoolTool19:45
ignasi guess we'll be able to coordinate more, when i will start actual work on the gradebook19:46
* ignas has to fix one more bug before that19:46
ignaswas nice talking to you ;)19:46
jfrocheyup have a nice weekend19:47
*** ignas has quit IRC19:47
*** pcardune has quit IRC19:55
*** ACSpike[Work] has joined #schooltool20:42
*** ACSpike[Work] has left #schooltool20:42
*** jinty has left #schooltool20:48
*** jinty has quit IRC20:48
*** pcardune has joined #schooltool20:51
*** Fujitsu has quit IRC21:10
*** mgedmin has quit IRC21:29
*** mgedmin has joined #schooltool21:30
pcarduneWhy does merging seem so painful?21:35
*** pcardune has quit IRC21:57
*** mgedmin has quit IRC22:19
*** jfroche_ has joined #schooltool23:09
*** jfroche has quit IRC23:21
*** pcardune has joined #schooltool23:22
Lumierepcardune: because merging big stuff IS painful23:49
pcarduneno... i'm just talking about the commands23:49
Lumiereprobably to make sure that non-noobs aren't merging?23:49
pcarduneno... because noobs just screw it up!23:51

Generated by 2.15.1 by Marius Gedminas - find it at!