*** nerd_alert has quit IRC | 00:09 | |
*** didymo has joined #schooltool | 00:16 | |
*** ignas has quit IRC | 00:20 | |
*** ACSpike[Work] has left #schooltool | 00:44 | |
*** pcardune has joined #schooltool | 00:54 | |
*** pcardune has left #schooltool | 01:53 | |
*** pcardune has joined #schooltool | 01:53 | |
*** pcardune has quit IRC | 01:55 | |
*** wrobel has quit IRC | 03:43 | |
*** pcardune has joined #schooltool | 07:47 | |
*** bhaskar has joined #schooltool | 07:53 | |
bhaskar | th1a_, hello | 07:55 |
---|---|---|
*** bhaskar has quit IRC | 08:17 | |
*** wrobel has joined #schooltool | 08:42 | |
*** lisppaste5 has quit IRC | 09:19 | |
*** pcardune has quit IRC | 09:19 | |
*** lisppaste5 has joined #schooltool | 09:31 | |
*** jfroche has joined #schooltool | 10:51 | |
*** thisfred has joined #schooltool | 10:59 | |
*** jinty has joined #schooltool | 11:09 | |
*** ignas has joined #schooltool | 12:57 | |
CrippsFX | morning all. | 13:59 |
*** didymo has quit IRC | 14:21 | |
ignas | hi | 14:37 |
*** bhaskar has joined #schooltool | 14:45 | |
*** mgedmin has joined #schooltool | 14:53 | |
*** bhaskar has quit IRC | 15:03 | |
*** ACSpike[Work] has joined #schooltool | 16:48 | |
*** alga has joined #SchoolTool | 17:16 | |
*** pcardune has joined #schooltool | 18:24 | |
*** ACSpike[Work] has left #schooltool | 18:26 | |
pcardune | there are so many people here.... | 18:32 |
*** alga has quit IRC | 18:41 | |
ignas | pcardune: hi | 18:41 |
pcardune | hi ignas | 18:41 |
pcardune | If we are all here now, we could just meet now? | 18:41 |
ignas | jfroche: ayt? | 18:42 |
* ignas has added ie6 support by adding a bit of javascript | 18:42 | |
jfroche | wuhu :) | 18:42 |
ignas | and as far as i am concerned - not supporting IE6 for schooltool is not an option | 18:42 |
pcardune | for cando then... | 18:42 |
ignas | in trunk now | 18:43 |
jfroche | ignas: great | 18:43 |
ignas | so about gradebook | 18:43 |
ignas | pcardune: what's your plan? | 18:44 |
pcardune | My plan is to do what jelkner tells me to do | 18:44 |
pcardune | at this point I'm planning on integrating what we have from cando into schooltool | 18:44 |
pcardune | to form a base gradebook that provides enough functionality from which other gradebooks can stem | 18:44 |
ignas | what kind of functionality? | 18:45 |
pcardune | mostly integration with the ability to have tree structures for assignments/activities | 18:45 |
ignas | so the gradebook will be assignment/activity based | 18:46 |
pcardune | yes | 18:46 |
pcardune | I forsee all the gradebooks being exactly the same except that they contain different sorts of grades | 18:46 |
ignas | with all the activity management left to the user and marks being for (assignement, student) pairs | 18:46 |
pcardune | one contains competency grades, one contains activity grades | 18:46 |
pcardune | yes | 18:46 |
ignas | i see | 18:47 |
ignas | seems not too much overlap with lithuanian requirements | 18:47 |
pcardune | and I'm reusing the existing gradebook code, which is based entirely off of the requirement package in schooltool | 18:47 |
ignas | as in lithuanian it's the other way - mark goes first, then teacher might assign a category to the mark (homework, test etc.) | 18:47 |
pcardune | how do they know what they are marking? | 18:48 |
ignas | meeting | 18:48 |
ignas | hmm | 18:49 |
ignas | you have section meetings | 18:49 |
jfroche | i 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 |
ignas | gradebook is a table :) | 18:49 |
ignas | yep | 18:49 |
ignas | jfroche: more like "student, timetable_event_id" | 18:49 |
ignas | more convenient | 18:49 |
ignas | timetable event will give you time and section | 18:50 |
ignas | so if you want you can store marks in the annotations of the event even | 18:50 |
jfroche | except that my section aren't map yet to a timetable | 18:50 |
ignas | so where do teachers get the time from? | 18:51 |
ignas | or you want to do gradebook without timetabling at all | 18:51 |
jfroche | gradebook shouldn't be linked to the timetable | 18:51 |
pcardune | +1 | 18:51 |
ignas | pcardune: the only problem i see is the 'schootool.gradebook' name being taken by what effectivelly is 'american.gradebook' | 18:51 |
ignas | jfroche: hmm, in lithuania it is ... | 18:52 |
jfroche | i mean so that it shouldn't be linked to the timetable package | 18:52 |
ignas | jfroche: so what is the workflow in belgium when grading students | 18:52 |
jfroche | of course i need to have notes for some defined dates | 18:52 |
ignas | jfroche: emm, so you can write some marks without a section meeting | 18:52 |
*** thisfred has quit IRC | 18:52 | |
jfroche | teacher have to provide a list of point for a certain date | 18:52 |
jfroche | point/notes | 18:52 |
pcardune | point=notes=grades=scores=marks? | 18:53 |
jfroche | these notes are the sum of the result of the student for a defined period | 18:53 |
ignas | interesting, 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 timestamps | 18:53 |
jfroche | right cause theses are more frequent than terms | 18:54 |
pcardune | I think we are being too specific with use cases here | 18:54 |
pcardune | what is a gradebook essentially: it is a collection of students, a collection of things that need to be marked, and the marks | 18:54 |
pcardune | is that right? | 18:54 |
ignas | the things in my case are "sections" | 18:55 |
jfroche | same for me | 18:55 |
jfroche | but it's essentially that | 18:55 |
pcardune | so each student has only one mark for a section? | 18:56 |
ignas | no, 0 or more marks for a section meeting | 18:56 |
ignas | most of the time 1 mark | 18:56 |
ignas | ok | 18:56 |
ignas | most of the time 0 | 18:56 |
ignas | 2 marks - exception | 18:56 |
pcardune | oooh, i see | 18:56 |
pcardune | so you go to class and you get a grade for that day in class? | 18:57 |
ignas | so essentially - timetable events | 18:57 |
ignas | or for a test you did in that meeting | 18:57 |
ignas | or for answering questions | 18:57 |
pcardune | ook | 18:57 |
ignas | or for the homework from last meeting | 18:57 |
pcardune | ok, so yes, we have students, things to mark, and the marks | 18:58 |
pcardune | in your case "things to mark" are timetable events, and in my case, things to mark are specific assignments | 18:58 |
pcardune | I think we can have 1 gradebook class, with different adapters that populate it with the right students and the right things to mark | 18:59 |
pcardune | does that make sense/ | 18:59 |
pcardune | ? | 18:59 |
ignas | hmm | 18:59 |
ignas | the problem is that I don't really want to go complicated or even complex at the moment | 18:59 |
ignas | it is possible to map the timetable event model on to the current activity based grade storage | 19:00 |
ignas | but the code to store grades on timetable events directly | 19:00 |
ignas | would be quite smaller | 19:00 |
pcardune | ok, i see how that makes sense | 19:01 |
ignas | what would be the benefits of a common store, except for the fact that it would have to implement all of our requirements | 19:01 |
ignas | ? | 19:01 |
pcardune | but the gradebook shouldn't care about storage | 19:01 |
ignas | the gradebook has 2 parts - UI and Storage | 19:01 |
jfroche | i am not sure i will ever get the timetable for my school | 19:02 |
pcardune | I think the gradebook only has one part, UI | 19:02 |
ignas | jfroche: ouch, so how do they go to lessons ? | 19:02 |
pcardune | ignas: I'm in the same boat | 19:02 |
pcardune | ignas: they go to lessons with the dashboard, which lists the sections they are instructors of | 19:02 |
pcardune | (in cando) | 19:03 |
ignas | the time for lessons is somewhere | 19:03 |
ignas | for section meetings | 19:03 |
ignas | or do you reshuffle it every day? | 19:03 |
jfroche | ignas: they have timetable but they are done by another math software from an external guy | 19:03 |
ignas | jfroche: so you can view it, yes? on the web or on paper | 19:04 |
jfroche | on paper & i don't want to encode timetable for 1000 students by hand | 19:04 |
ignas | pcardune: i kind of dropped the idea of "common storage fits all possible UIs" idea, as being not suitable pluggability | 19:04 |
ignas | jfroche: OCR FTW ;) or make students do id :) | 19:05 |
pcardune | ignas: yes, I agree | 19:05 |
pcardune | that is why we have uncommen storage, but the same UI | 19:05 |
ignas | pcardune: or uncommon storage and uncommon UI | 19:06 |
ignas | pcardune: because UI is the part lyceum wants most changes to, especially for gradebook | 19:06 |
pcardune | ok, uncommon storage, uncommon UI, but the same Interface? | 19:06 |
ignas | Interface? | 19:06 |
pcardune | IGradebook | 19:06 |
ignas | why? | 19:06 |
ignas | IGradebook on what? | 19:07 |
pcardune | IHaveGradebook | 19:07 |
ignas | hmm | 19:07 |
ignas | we might try sharing some views | 19:07 |
pcardune | especially when it comes to reports | 19:07 |
ignas | IGradebook for person, might be identical | 19:08 |
ignas | ok, not really | 19:08 |
pcardune | Right now cando gradebook has the most functionality, but eventually your gradebooks might have more functionality which I want to have too | 19:08 |
pcardune | the less I have to do to get your code to work with my code, the better | 19:08 |
ignas | i understand | 19:09 |
pcardune | If we can stick to some base interfaces, then that will be easy | 19:09 |
ignas | hmm, i don't think so | 19:09 |
ignas | though | 19:09 |
ignas | what do you suggest having in the base ? | 19:09 |
ignas | methods | 19:10 |
ignas | on IGradebook(section) | 19:10 |
ignas | what kind of functionality you think might apply to both gradebooks (functionality that only depends on the base interface) | 19:10 |
pcardune | attributes: students, "thinkgs to mark" | 19:10 |
pcardune | getMark(student, thing_to_mark) | 19:10 |
pcardune | setMark(student, thing_to_mark) | 19:11 |
jfroche | setMark(student, thing_to_mark, time) | 19:11 |
pcardune | jfroche: that would be implicit in the "thing_to_mark" | 19:12 |
jfroche | ok | 19:12 |
pcardune | *or* your implementation of getMark would get the time | 19:12 |
ignas | jfroche: no, with this interface you would have to add an object "thing_to_mark" that would be something like an event | 19:12 |
jfroche | ignas: an event with a section | 19:12 |
ignas | possibly | 19:12 |
ignas | another thingie is that my gradebook will be closely integrated with attendance | 19:13 |
pcardune | Also, I wonder whether you will be using the requirement package (I very much hope yes) | 19:13 |
ignas | what can it do for me? | 19:13 |
pcardune | ignas: IAttendace(gradebook) | 19:13 |
pcardune | it can do score systems | 19:14 |
pcardune | well I really only hope that you will use the same interface in requirement package | 19:14 |
pcardune | IEvaluation, IScoreSystem, IRequirement | 19:14 |
pcardune | (maybe not IRequirement) | 19:14 |
ignas | my problem is that: | 19:15 |
ignas | what i need is to store 1-10 or (absent, tardy) for every timetable event | 19:15 |
* jfroche whished Belgian school could be based on requirement, but no | 19:15 | |
ignas | and views that show that data | 19:15 |
ignas | and IRequirements are not giving me anything | 19:16 |
pcardune | like I said, not necessarily IRequirements | 19:16 |
ignas | i mean if it would be possible to use these interfaces somehow to find common ground | 19:16 |
ignas | and have some shared code | 19:16 |
ignas | i would be all for it | 19:16 |
ignas | but i still can't think of an example of shared code | 19:16 |
ignas | to make it worth doing additional work | 19:17 |
pcardune | ok | 19:17 |
ignas | maybe you can give me an example | 19:17 |
ignas | of how would you imagine doing a report on grades | 19:17 |
pcardune | well at first I was thinking gradebook views | 19:17 |
pcardune | reporting though seems to be a good fit | 19:17 |
ignas | that would apply to your school and my school | 19:18 |
pcardune | because you can't have to many different kind of reports | 19:18 |
ignas | pcardune: you can, that's the whole point :/ | 19:18 |
jfroche | reports are very specific | 19:18 |
ignas | precisely | 19:18 |
ignas | reports is the part that will have to be very very very customizable even when schooltool UI will be more or less stable for 90% users | 19:19 |
ignas | (looking into far future) | 19:19 |
pcardune | ok | 19:19 |
pcardune | I see your point | 19:19 |
pcardune | are any of the changes from the two schools you are working with making there way back into trunk? | 19:20 |
jfroche | some part yes | 19:20 |
ignas | hmm, pluggability of module initialization | 19:21 |
ignas | confirmation for calendar event deletion | 19:21 |
ignas | btw | 19:21 |
ignas | talking about far future | 19:22 |
jfroche | we 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 trunk | 19:22 |
ignas | the pattern ISchoolToolCalendar(person) | 19:22 |
pcardune | ok, that sounds good | 19:22 |
ignas | or IAttendance(person) | 19:22 |
ignas | or IFoo(group) | 19:22 |
ignas | etc. | 19:22 |
ignas | is used quite a lot in schooltool | 19:22 |
ignas | most of the time it stores data in person.__annotations__ etc. | 19:23 |
ignas | yes? | 19:23 |
pcardune | yes | 19:23 |
jfroche | yup | 19:23 |
ignas | but in the very long term we might want to move persons | 19:23 |
ignas | groups or pretty much any part of schooltool | 19:23 |
ignas | out of ZODB into sql database, LDAP | 19:23 |
jfroche | yup | 19:23 |
ignas | plain text files in the filesystem | 19:23 |
ignas | another planet | 19:23 |
ignas | etc. | 19:23 |
pcardune | can we leave around a persistent wrapper? | 19:24 |
ignas | pcardune: not always | 19:24 |
jfroche | there is no storage layer | 19:24 |
ignas | so the patter IAttendance(group) storing the data in app.__annotations__['lyceum.group.attendance'] | 19:24 |
ignas | or something simmilar | 19:24 |
pcardune | IAttendace(IPersonStorage(person))? | 19:25 |
ignas | or even constraining itself to only modifying data in app['lyceum.groups'] (some attendacne object) | 19:25 |
ignas | wouls be the way to go | 19:25 |
ignas | so that in the future you can remove 100% of attendance in one go, and 2 different attendance plugins | 19:25 |
ignas | do not share the database | 19:25 |
ignas | etc. | 19:25 |
ignas | the downside is - you must clean up on IObjectRemoved event | 19:26 |
ignas | the upside - you can start using lyceum.person instead of schooltool.person | 19:27 |
ignas | without ruining the database | 19:27 |
ignas | if you write schooltool.person => lyceum.person export script | 19:27 |
ignas | that creates persons with identical id's | 19:27 |
ignas | etc. | 19:27 |
ignas | but that's the very far future | 19:27 |
pcardune | ok | 19:28 |
ignas | adds a bit of inconvenience and a lot more modularity | 19:28 |
ignas | if we will have eggs for all sub packages - we will need modularity | 19:28 |
pcardune | what happens if lyceum.person and schooltool.person are both installed? | 19:29 |
ignas | at the moment - you select the active one through zcml | 19:29 |
ignas | on the first start up | 19:29 |
ignas | which is very inconvenient | 19:29 |
ignas | with such scheme - you could in theory switch between them without even shutting down | 19:30 |
ignas | through some kind of admin UI | 19:30 |
pcardune | sexy | 19:30 |
ignas | but as i have mentioned it's far future - unless i gain superpowers ;) | 19:30 |
ignas | my vision | 19:31 |
ignas | a nice word ;) | 19:31 |
ignas | is | 19:31 |
ignas | having eggs for data plugins (schooltool.person, lyuceum.person etc) | 19:31 |
ignas | and eggs for UI packages | 19:31 |
ignas | lyceum.school, schooltool.attendance | 19:31 |
ignas | UI packages depending on interfaces provided by data storage eggs | 19:31 |
ignas | so if you want to install lyceum.school - you must have evabled an ILyceumPersonStorage providing egg | 19:32 |
jfroche | and auto changing zcml :) | 19:32 |
ignas | nope | 19:32 |
ignas | no zcml changing | 19:32 |
ignas | you just select schooltool.lyceum.person, schooltool.calendar, schooltool.attendance, schooltool.groups data plugins | 19:32 |
ignas | and select "schooltool.standard" | 19:32 |
ignas | ui plugin after that | 19:33 |
ignas | and voila - a standard school | 19:33 |
ignas | unclick the UI, select different plugins, select different UI | 19:33 |
ignas | voila - a different school | 19:33 |
ignas | want an SQL person database | 19:33 |
ignas | install cando.person.sql egg | 19:33 |
ignas | configure it in the file system | 19:33 |
ignas | start schooltool, select it instead of schooltool.person | 19:34 |
ignas | and you have persons in SQL | 19:34 |
ignas | (no, we won't do ttw sql connection configuration, that would be a security hazard) | 19:34 |
ignas | but that will take a lot of time | 19:35 |
pcardune | that sounds very nice | 19:35 |
jfroche | yup | 19:37 |
ignas | that is the only way i think pluggins | 19:37 |
ignas | and database based application | 19:37 |
ignas | can coexist | 19:37 |
ignas | but i am welcome to suggestions ;) | 19:37 |
ignas | open | 19:37 |
ignas | not welcome | 19:37 |
ignas | broken english ;) | 19:37 |
pcardune | he | 19:37 |
jfroche | ignas: do we have time to create such a plugin system ? | 19:39 |
ignas | nope :) that's something we will have in a year or two | 19:39 |
ignas | just that | 19:39 |
ignas | if it's equivalently easy to store something on a person | 19:40 |
ignas | and in app['schooltol.gradebook'] | 19:40 |
ignas | you should probably store it on app | 19:40 |
ignas | having USA style gradebook | 19:40 |
ignas | as schooltool.gradebook | 19:40 |
ignas | is not too terrible | 19:40 |
ignas | ;) | 19:40 |
ignas | pcardune: if you will see anything in my code that you want to reuse - tell me i will refactor it | 19:42 |
ignas | anything else? | 19:43 |
pcardune | no, that sounds good | 19:43 |
ignas | jfroche: if you would add an event for every grade teachers add | 19:44 |
ignas | we might have a common base for storage | 19:44 |
jfroche | right | 19:44 |
jfroche | i ll anyway try to get ical export of the calendars | 19:45 |
ignas | i see | 19:45 |
*** alga has joined #SchoolTool | 19:45 | |
ignas | i guess we'll be able to coordinate more, when i will start actual work on the gradebook | 19:46 |
* ignas has to fix one more bug before that | 19:46 | |
ignas | bye | 19:46 |
ignas | was nice talking to you ;) | 19:46 |
pcardune | bye | 19:47 |
jfroche | yup have a nice weekend | 19:47 |
ignas | thanks | 19:47 |
*** ignas has quit IRC | 19:47 | |
*** pcardune has quit IRC | 19:55 | |
*** ACSpike[Work] has joined #schooltool | 20:42 | |
*** ACSpike[Work] has left #schooltool | 20:42 | |
*** jinty has left #schooltool | 20:48 | |
*** jinty has quit IRC | 20:48 | |
*** pcardune has joined #schooltool | 20:51 | |
*** Fujitsu has quit IRC | 21:10 | |
*** mgedmin has quit IRC | 21:29 | |
*** mgedmin has joined #schooltool | 21:30 | |
pcardune | Why does merging seem so painful? | 21:35 |
*** pcardune has quit IRC | 21:57 | |
*** mgedmin has quit IRC | 22:19 | |
*** jfroche_ has joined #schooltool | 23:09 | |
*** jfroche has quit IRC | 23:21 | |
*** pcardune has joined #schooltool | 23:22 | |
Lumiere | pcardune: because merging big stuff IS painful | 23:49 |
pcardune | no... i'm just talking about the commands | 23:49 |
Lumiere | ah | 23:49 |
Lumiere | probably to make sure that non-noobs aren't merging? | 23:49 |
pcardune | no... because noobs just screw it up! | 23:51 |
Lumiere | lol | 23:52 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!