| *** alga_ has quit IRC | 02:39 | |
| *** alga has quit IRC | 02:39 | |
| *** Lumiere has quit IRC | 05:48 | |
| *** Lumiere has joined #schooltool | 06:20 | |
| *** Lumiere has quit IRC | 06:40 | |
| *** Lumiere has joined #schooltool | 06:41 | |
| *** yvl has joined #schooltool | 09:23 | |
| *** menesis has quit IRC | 11:00 | |
| *** menesis has joined #schooltool | 11:50 | |
| *** mgedmin has joined #schooltool | 12:12 | |
| *** Aiste has joined #schooltool | 12:34 | |
| *** menesis has quit IRC | 12:47 | |
| *** menesis1 has joined #schooltool | 12:47 | |
| *** menesis1 is now known as menesis | 12:47 | |
| *** alga has joined #schooltool | 13:22 | |
| *** alga_ has joined #schooltool | 13:22 | |
| *** Aiste has quit IRC | 15:07 | |
| *** Aiste has joined #schooltool | 15:12 | |
| *** Aiste has quit IRC | 15:58 | |
| *** replaceafill has joined #schooltool | 16:01 | |
| *** th1a has joined #schooltool | 16:24 | |
| th1a | Good morning yvl, menesis, replaceafill, aelkner, Lumiere. | 16:31 | 
|---|---|---|
| yvl | good morning! | 16:31 | 
| replaceafill | good morning/afternoon | 16:32 | 
| aelkner | morning | 16:32 | 
| th1a | So I spent an interesting afternoon digging into RapidSMS. | 16:33 | 
| th1a | On Friday. | 16:33 | 
| th1a | That's the UNESCO project to create a framework for SMS based apps for the developing world. | 16:34 | 
| th1a | I think that potentially we could use it to create a Django based app to aggregate data from multiple SchoolTools. | 16:34 | 
| *** alga_ has quit IRC | 16:34 | |
| *** alga has quit IRC | 16:34 | |
| th1a | Or at least it would be good for prototyping one. | 16:34 | 
| th1a | In the meantime, reading their internal development discussions in their mailing list was interesting. | 16:35 | 
| th1a | Lots of things we can relate to. | 16:35 | 
| th1a | You might enjoy: | 16:35 | 
| * Lumiere is wondering why add another environment to the ST architecture? | 16:35 | |
| th1a | http://groups.google.com/group/rapidsms/attach/0877c2f505eda059/state+of+rapid+sms.pdf?part=4 | 16:36 | 
| th1a | http://groups.google.com/group/rapidsms/browse_thread/thread/ad4b1178303ea6fa/a6ce56176ec391cb?#a6ce56176ec391cb | 16:36 | 
| th1a | http://etherpad.unicefinnovation.org/rapidsms-refactoring-tasks | 16:37 | 
| th1a | Lumiere: Nothing has been decided, but since this application would just aggregate and report data, it wouldn't share a lot of code. | 16:38 | 
| Lumiere | k | 16:38 | 
| th1a | Also, the reasons against using ZODB would be even stronger in this case. | 16:38 | 
| th1a | You'd really rather have all those national statistics in tables. | 16:39 | 
| th1a | But anyhow, the tl;dr of the above is they're in the middle of a major refactoring which will allow you to do exciting things | 16:40 | 
| th1a | like run unit tests. | 16:40 | 
| th1a | So there is no screaming rush. | 16:40 | 
| th1a | (if those hairy URLs above even work for you) | 16:40 | 
| th1a | In other news, | 16:41 | 
| th1a | Alan and I visited SLA on Wednesday, | 16:41 | 
| th1a | and basically, we're having an amicable parting with them. | 16:41 | 
| th1a | I sent them an email saying, we need to figure out what needs to be squared away before we start ignoring you for an indefinite period of time, | 16:42 | 
| th1a | and they said, well actually, we're writing our own SIS now in PHP. | 16:42 | 
| th1a | So... that's a little discouraging, but we've got to keep our focus on the developing world now anyhow, so it is ok. | 16:44 | 
| yvl | what were the main reasons? | 16:44 | 
| th1a | Well, they want to integrate course management and content creation (e.g., Google Apps) | 16:45 | 
| th1a | into one system that works together nicely. | 16:45 | 
| th1a | And there just aren't protocols for doing so across applications. | 16:45 | 
| th1a | And Chris (the principal) is a PHP programmer, and Chris (the tech guy) is a PHP programmer. | 16:46 | 
| aelkner | that's your main reason right there | 16:46 | 
| aelkner | also, they didn't lke that they couldn't inspect schooltool data like an sql table | 16:47 | 
| th1a | And they've got this weird (weirder than I had realized) relationship with Chris (the tech guy) where he's also got a successful web development shop going and SLA is kind of his hobby for 40 hours a week. | 16:47 | 
| th1a | They're just used to SQL. | 16:47 | 
| th1a | Like every other programmer in the universe. ;-) | 16:47 | 
| replaceafill | :/ | 16:47 | 
| th1a | But anyhow, they actually have the capacity to do a pretty big project with local resources. | 16:48 | 
| th1a | Interoperability is the big sticking point. | 16:48 | 
| th1a | As always. | 16:48 | 
| aelkner | you can be sure they will have on app writing into sql tables of aother app | 16:49 | 
| th1a | Not necessarily. | 16:49 | 
| aelkner | pretty much like i was trying to do with moodle integration | 16:49 | 
| th1a | But anyhow. | 16:49 | 
| th1a | These things and other recent events have inspired me to come up with a new SchoolTool strategy document to send to Mark with the next batch of invoices. | 16:50 | 
| th1a | Which you will probably appreciate as well. | 16:50 | 
| yvl | can you roughly outline it now? | 16:51 | 
| th1a | Which will basically focus on "SchoolTool as SIS appliance for the developing world." | 16:51 | 
| th1a | That's pretty much it. | 16:51 | 
| th1a | More that, less everything else. | 16:51 | 
| yvl | sounds interesting | 16:52 | 
| yvl | is it a long term strategy, or..? | 16:52 | 
| th1a | Well, it is the niche where we can be successful in the medium term, at least. | 16:53 | 
| yvl | more like "two years and then we'll see" or "indefinitely"? | 16:53 | 
| th1a | We'll see what? | 16:53 | 
| th1a | If we can do more? | 16:53 | 
| yvl | hmm, I think you answered my poorly formulated question already :) | 16:54 | 
| yvl | just ignore it.. :) | 16:54 | 
| th1a | np | 16:54 | 
| th1a | It isn't a change of direction from what we've been doing, just making it more focused and starting to more clearly articulate that as our message. | 16:55 | 
| yvl | I got that correctly then :) | 16:56 | 
| th1a | OK, enough chatter from me. | 16:56 | 
| th1a | yvl: What have you been up to? | 16:56 | 
| yvl | I'm writing the ZODB exporter now | 16:57 | 
| yvl | scope of it grew somewhat, but the stuff is going to be useful for me later on | 16:57 | 
| yvl | basically, it's an XLS exporter for 0.11.4 database | 16:57 | 
| yvl | that does not use any of ST code | 16:57 | 
| yvl | and no Zope except for ZODB | 16:58 | 
| replaceafill | yvl, nice script the one of the broken objects :) | 16:58 | 
| yvl | thanks, replaceafill | 16:58 | 
| replaceafill | yvl, i learned a few tricks from it ;) | 16:58 | 
| yvl | well, the exporter is based on a similar thing | 16:58 | 
| yvl | I'm done 65% | 16:59 | 
| yvl | or something | 16:59 | 
| yvl | ah, and it works on newer Ubuntu versions of course | 16:59 | 
| yvl | (it'll probably work on anicent ones also) | 17:00 | 
| th1a | What data objects does it work on? | 17:00 | 
| yvl | at the moment - person records, sections, courses, terms | 17:01 | 
| yvl | but technically I don't care that much what to extract | 17:01 | 
| yvl | (still, at those times there wasn't a lot of data, like you said) | 17:01 | 
| th1a | Right. | 17:01 | 
| yvl | I forced 0.11.4 to run on Karmic, by the way | 17:02 | 
| th1a | Yeah, for this specific case, we don't need to get a lot out. | 17:02 | 
| th1a | So don't go crazy. ;-) | 17:02 | 
| yvl | I'm trying to resist | 17:02 | 
| th1a | Please. | 17:02 | 
| yvl | sure | 17:02 | 
| th1a | When you're done with that back to timetables? | 17:02 | 
| yvl | just I'll need some of the stuff for evolution later on (likely) | 17:02 | 
| yvl | yes | 17:03 | 
| yvl | one more thing about this | 17:03 | 
| yvl | if we need to populate SQL databases or export data in some way | 17:03 | 
| yvl | this approach is a viable option | 17:04 | 
| yvl | I mean - just using the database code | 17:04 | 
| yvl | and loading in python what we need | 17:04 | 
| yvl | it's a bit scary, but useful | 17:04 | 
| th1a | It is definitely something that is good for us to have experience with. | 17:05 | 
| yvl | yes | 17:05 | 
| th1a | Makes me feel more confident. ;-) | 17:05 | 
| * yvl too, actually :))) | 17:06 | |
| yvl | well, that's my status report for now | 17:06 | 
| th1a | Thanks! | 17:06 | 
| th1a | menesis? | 17:06 | 
| menesis | yes, hi. | 17:07 | 
| menesis | I was busy with schooltool releases first few days | 17:07 | 
| menesis | backported a lot of bugfixes to the 1.0 series | 17:08 | 
| menesis | i.e. for hardy | 17:08 | 
| menesis | discovered a couple of bugs in xls import | 17:08 | 
| th1a | Yes. We have to refuse to do that again. | 17:08 | 
| replaceafill | +1 | 17:08 | 
| th1a | Lucid or bust! | 17:08 | 
| aelkner | xls import bugs? | 17:09 | 
| menesis | wasted a day or two fixing it and redoing releases | 17:09 | 
| replaceafill | th1a, is it possible to "officially" drop support for older versions? | 17:09 | 
| replaceafill | just curious :) | 17:09 | 
| menesis | well, what is support? | 17:09 | 
| replaceafill | menesis backporting stuff | 17:10 | 
| menesis | last time I made releases for Hardy was in March | 17:10 | 
| menesis | February, rather | 17:10 | 
| menesis | aelkner: your importer_fixes branch introduced a bug and was missing some error texts | 17:10 | 
| th1a | Well, technically we only need to do security fixes as support for old versions, right? | 17:11 | 
| menesis | I exported everything, imported back, and all Persons were broken because it was reading birth_date as text, not date. | 17:11 | 
| th1a | Or major bugs. | 17:11 | 
| replaceafill | ah | 17:11 | 
| aelkner | menesis, is your diff in trunk already? | 17:12 | 
| th1a | We don't have to keep them compatible with future plugins. ;-) | 17:12 | 
| menesis | aelkner: yes. or, https://code.launchpad.net/~menesis/schooltool/importer_fixes | 17:13 | 
| aelkner | menesis, thanks | 17:13 | 
| menesis | I've updated release notes in the book, sent announcements.. | 17:14 | 
| menesis | moved on to other things, preparing to upgrade trunk to newest zope packages from bluebream 1.0. | 17:15 | 
| menesis | fixed a bug in python-central.. | 17:16 | 
| menesis | will start updating zope packages for maverick | 17:16 | 
| aelkner | menesis, i see you had to bump the number of xls errors displayed to 25 for testing | 17:16 | 
| menesis | tomorrow. | 17:16 | 
| menesis | aelkner: yes, is that bad? | 17:17 | 
| th1a | menesis: Excellent news! | 17:17 | 
| aelkner | i wasn't sure what number would be appropriate there | 17:17 | 
| aelkner | i figured too many would mean the user would have to scroll down to get past the errors | 17:17 | 
| aelkner | and see the rest of the form, so i wasn't sure what number was appropriate | 17:18 | 
| aelkner | i guess 25 is ok though | 17:18 | 
| menesis | yes, too much is not needed | 17:18 | 
| menesis | but I have added two more tests cases to the XLS file and could not find why the last error disappears for a few hours | 17:19 | 
| aelkner | yeah, that part of your diff left me wondering | 17:19 | 
| menesis | ok | 17:19 | 
| aelkner | menesis, i don't get your change to test_all.py | 17:21 | 
| aelkner | i thought i did that already | 17:22 | 
| aelkner | to get it to pick up the txt files? | 17:22 | 
| menesis | level=2? | 17:23 | 
| menesis | it was like that before, because export/import tests are slow | 17:23 | 
| menesis | so are not run by default | 17:24 | 
| aelkner | how then? | 17:24 | 
| menesis | to get those tests run, use bin/test --at-level 2 | 17:24 | 
| aelkner | ooh, gross | 17:24 | 
| replaceafill | :)) | 17:25 | 
| aelkner | how amy i going to remember that?! | 17:25 | 
| yvl | make testall | 17:25 | 
| yvl | same thing | 17:25 | 
| th1a | bash alias? | 17:25 | 
| yvl | make rule | 17:25 | 
| aelkner | ok, so i just have to remember to look at Makefile | 17:25 | 
| replaceafill | yvl, it's not possible to filter packages using make testall, right? | 17:26 | 
| replaceafill | like saying i just want to test the gradebook, etc | 17:26 | 
| yvl | no, I think | 17:26 | 
| replaceafill | bin/test -s schooltool.gradebook --at-level 2 | 17:26 | 
| menesis | no, but you can pass all kinds of options to bin/test | 17:27 | 
| yvl | yes, replaceafill, yes menesis :) | 17:27 | 
| th1a | OK... moving on? | 17:28 | 
| menesis | yes | 17:29 | 
| th1a | Thanks menesis! | 17:29 | 
| th1a | Good luck uploading packages. | 17:29 | 
| th1a | replaceafill? | 17:29 | 
| replaceafill | ok | 17:29 | 
| replaceafill | 1. i know it's not a priority, but i learned a few things trying to install schooltool offline :) | 17:29 | 
| replaceafill | i guess that is a use case for el salvador | 17:30 | 
| th1a | It is a reasonable priority. | 17:30 | 
| replaceafill | 2. th1a, i focused on el calvario's work last week | 17:31 | 
| th1a | If not an *immediate* one. | 17:31 | 
| replaceafill | and i met with them on thursday | 17:31 | 
| replaceafill | i showed them the gradebook and they all agreed on using it | 17:31 | 
| replaceafill | as usual, some teachers are not used to computers | 17:31 | 
| replaceafill | and they handle evertything on paper | 17:32 | 
| replaceafill | some of them have spreadsheets already with this year's grades | 17:32 | 
| replaceafill | and they asked me if it was possible to get those spreadsheets and load them | 17:32 | 
| replaceafill | so they don't have to type them again | 17:32 | 
| replaceafill | i told them i would ask you | 17:33 | 
| replaceafill | also, the principal showed me a few reports she need for the end of the year | 17:33 | 
| replaceafill | we're planning they can enter grades from july-october | 17:34 | 
| replaceafill | they have vacation next week, and they asked me if it was possible to have everything ready for the second week of august | 17:34 | 
| th1a | As for the import, it doesn't seem like it would be too hard. | 17:35 | 
| replaceafill | no, not at all | 17:35 | 
| th1a | That all sounds good. The main thing is to not completely stop and lose touch with Cambodia. | 17:35 | 
| replaceafill | working on el calvario's gradebook made me realize something and i want you guys to confirm | 17:36 | 
| replaceafill | report sheets were designed for schools that use the same gradebook schema in all sections, correct? | 17:36 | 
| replaceafill | since they're deployed term-wide | 17:36 | 
| replaceafill | and they appear in all the sections | 17:36 | 
| th1a | Yes. | 17:37 | 
| replaceafill | report sheets work well for el calvario | 17:37 | 
| replaceafill | but they won't for cambodia :( | 17:37 | 
| replaceafill | cambodia has 2 grades with different grade needs | 17:37 | 
| replaceafill | 9 and 12 | 17:37 | 
| replaceafill | where you only have to store 2 semester grades | 17:37 | 
| th1a | Well, you'll have to judge how difficult it would be to make report sheets do that. | 17:38 | 
| replaceafill | i wasn't sure if report sheets were inteded to do that | 17:39 | 
| th1a | You have to stop thinking that way. | 17:39 | 
| replaceafill | i always thought of them as being a fast way to set up things | 17:39 | 
| th1a | They're meant to do whatever they need to do. | 17:39 | 
| replaceafill | oh ok, understood | 17:39 | 
| th1a | I mean, at a certain point, it just may be too complicated from a coding and/or UI point of view. | 17:40 | 
| replaceafill | yes, i always have the feeling like i'm bending stuff | 17:40 | 
| th1a | It is meant to be bent. | 17:40 | 
| replaceafill | got it :) | 17:40 | 
| th1a | In a sense, the priority is avoiding re-writing the gradebook interface five times. | 17:40 | 
| th1a | And making teachers look in five places for where to put their grades. | 17:41 | 
| replaceafill | ok, th1a this week i'm going to leave el calvario again and focus on cambodia | 17:41 | 
| *** ColonelPanik has joined #schooltool | 17:42 | |
| th1a | What's the next step with them? | 17:42 | 
| replaceafill | using defaults for the form, address data mostly | 17:43 | 
| replaceafill | like "last province used" | 17:43 | 
| th1a | OK. | 17:44 | 
| th1a | Keep that feedback loop going with them. | 17:44 | 
| replaceafill | yes | 17:44 | 
| th1a | OK. Sounds good. | 17:44 | 
| th1a | Thanks replaceafill! | 17:44 | 
| th1a | aelkner? | 17:44 | 
| aelkner | i got the two csv exports written | 17:45 | 
| aelkner | the graebook one delivers the csv to the browser | 17:45 | 
| aelkner | the intervention one delivers a zip file containing the two csv files, messages and goals | 17:46 | 
| th1a | (these are for SLA) | 17:46 | 
| aelkner | yes, but you wanted them to be permanent parts of the gradebook and intervention | 17:46 | 
| aelkner | and that the links go in the Manage tab, remember? | 17:46 | 
| th1a | Just adding some context for the audience. | 17:46 | 
| aelkner | ok, sorry | 17:47 | 
| th1a | yvl: Actually, sometime in the next month we need contact export in the big .xls. | 17:47 | 
| th1a | I assigned a bug to you. | 17:47 | 
| yvl | sure | 17:47 | 
| yvl | I've been itching to write it for a while now ;) | 17:48 | 
| th1a | So you should be done with SLA, aelkner? | 17:48 | 
| aelkner | in order to create the zip file, i had to do someting that schooltool hasn't done yet | 17:48 | 
| aelkner | namely, using tempfile | 17:48 | 
| aelkner | menesis, yvl: is there any reason that it would be a mistake to use tempfile in a zope app? | 17:48 | 
| aelkner | the zipfile lib needs filenames | 17:49 | 
| aelkner | so feeding it a StrinIO file isn't possible like the csv lib allowed | 17:49 | 
| yvl | hmm | 17:50 | 
| yvl | I think you can pass it string io | 17:51 | 
| yvl | import zipfile | 17:51 | 
| menesis | I don't know why using temp files would be a problem. | 17:51 | 
| aelkner | i looked at the code | 17:51 | 
| yvl | data = StringIO() | 17:51 | 
| aelkner | it does an os.stat on the filename passed | 17:51 | 
| yvl | zipfile.ZipFile(data, 'w', zipfile.ZIP_DEFLATED) | 17:52 | 
| aelkner | it doesn't check to see if it is a file-like object | 17:52 | 
| yvl | and so on | 17:52 | 
| aelkner | so that doesn't work | 17:52 | 
| yvl | well, the code I wrote should work | 17:52 | 
| aelkner | it won't | 17:52 | 
| aelkner | yvl, sorry, you thought i meant the file for the zipfile | 17:53 | 
| aelkner | that can be a strinio | 17:53 | 
| aelkner | it's just the write() method | 17:53 | 
| aelkner | that expects a filename | 17:53 | 
| aelkner | so there i need to use tempfiles | 17:54 | 
| *** ColonelPanik has left #schooltool | 17:54 | |
| yvl | yep, it works | 17:54 | 
| yvl | just tested | 17:54 | 
| yvl | you don't need tempfiles | 17:54 | 
| aelkner | you didn't test passing a stringio file to the write() method | 17:54 | 
| aelkner | or it would have failed | 17:54 | 
| yvl | ok, you write to the zipfile like this: | 17:55 | 
| yvl | output = zipfile.ZipFile(data, 'w', zipfile.ZIP_DEFLATED) | 17:55 | 
| aelkner | what data? | 17:55 | 
| yvl | output.writestr('myfile.zip', 'hello\nworld\n') | 17:55 | 
| aelkner | we have two files that are zipped | 17:56 | 
| yvl | the data you want zipped | 17:56 | 
| yvl | "in order to create the zip file" | 17:56 | 
| yvl | I'm assuming you are zipping data | 17:56 | 
| yvl | not unzipping | 17:56 | 
| aelkner | zipping files | 17:56 | 
| aelkner | not data | 17:56 | 
| aelkner | who zips data anyway?! | 17:56 | 
| menesis | output.writestr('goals.csv', goals.read()) | 17:56 | 
| yvl | yes | 17:57 | 
| menesis | oor whatever. write() takes an existing file, writestr() takes a filename and bytes | 17:57 | 
| yvl | exactly :) | 17:58 | 
| aelkner | i didn't see that in the docs i found, but i could try that out today | 17:58 | 
| aelkner | th1a, in the meantime, i was going to send alfano a note asking for their Data.fs | 17:59 | 
| aelkner | and that they don't have teachers changing it anymore | 17:59 | 
| aelkner | we agreed that i don't need to deploy, right? | 17:59 | 
| th1a | aelkner, Sounds good. | 17:59 | 
| th1a | Not unless there turns out to be a reason to do so. ;-) | 18:00 | 
| aelkner | i tried running sla with the new schooltool core, and the Home page crashes | 18:00 | 
| aelkner | it looks like something in zope changed | 18:00 | 
| th1a | It should be fine to just hand them the data. | 18:00 | 
| aelkner | so that the CourseInfoViewlet has to pass more to the base class | 18:00 | 
| th1a | OK, sounds good. | 18:01 | 
| th1a | Hopefully we'll hear from Mrs. Taiwo today. | 18:01 | 
| th1a | OK, let's wrap this up. | 18:01 | 
| th1a | Thanks gentlemen! | 18:01 | 
| th1a | Have a great week! | 18:01 | 
| aelkner | thanks, you too | 18:01 | 
| * th1a drops the bag of gravel | 18:01 | |
| replaceafill | thanks guys | 18:02 | 
| yvl | great week to you all :) | 18:02 | 
| *** replaceafill has quit IRC | 18:30 | |
| *** mgedmin has quit IRC | 18:32 | |
| *** menesis has quit IRC | 18:58 | |
| *** menesis has joined #schooltool | 19:58 | |
| *** menesis1 has joined #schooltool | 20:20 | |
| *** menesis has quit IRC | 20:20 | |
| *** menesis1 is now known as menesis | 20:20 | |
| *** alga has joined #schooltool | 22:09 | |
| *** jelkner has joined #schooltool | 22:22 | |
| *** jelkner has quit IRC | 22:23 | |
| *** replaceafill has joined #schooltool | 23:04 | |
| replaceafill | menesis, removing the logo from the pdf footer fixed the CTE Resource Center virtualhost problem :) | 23:05 | 
| *** replaceafill has quit IRC | 23:13 | |
Generated by irclog2html.py 4.0.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!