Thursday, 2009-07-02

*** tpb has joined #melange00:00
*** tpb has joined #melange00:08
*** jamtoday has quit IRC00:26
*** tansell_laptop has quit IRC00:40
*** tansell_laptop has joined #melange00:53
*** madrazr has joined #melange01:42
*** ChanServ sets mode: +v madrazr01:42
*** jamtoday has joined #melange01:46
*** madrazr has quit IRC02:29
*** madrazr has joined #melange03:34
*** ChanServ sets mode: +v madrazr03:34
*** penyaskito has quit IRC04:37
*** solydzajs has joined #melange04:37
*** ChanServ sets mode: +o solydzajs04:37
*** madrazr has quit IRC05:00
*** MatthewWilkes has joined #melange05:16
*** jamtoday_ has joined #melange05:57
*** Merio has joined #melange05:58
*** ChanServ sets mode: +v Merio05:58
jamtoday_ajaksu: comparing your patch to my implementation...I just responded to your thread with a patch of my latest changeset06:01
*** jamtoday has quit IRC06:02
*** jamtoday has joined #melange06:14
*** jamtoday_ has quit IRC06:14
*** jamtoday has quit IRC06:26
*** dhans has joined #melange06:52
*** madrazr has joined #melange07:02
*** ChanServ sets mode: +v madrazr07:02
*** Merio has quit IRC07:19
*** florinciu has joined #melange07:28
*** Merio has joined #melange07:32
*** ChanServ sets mode: +v Merio07:32
*** solydzajs has quit IRC07:33
*** solydzajs has joined #melange07:45
*** ChanServ sets mode: +o solydzajs07:45
*** madrazr has left #melange08:03
dhansMerio: ping?08:54
Meriodhans: pong!08:55
dhansMerio: just pushed json responses for more statistics08:55
Meriowow in the live instance?08:55
MerioCan't wait to see them at work!08:55
dhansMerio: now, to repository08:55
dhansMerio: because you wrote that you uploaded to live instance some changes that hadn't been commited08:56
Meriodhans: you're right. I'm going to tell you which changes are (I don't push them because they're incompatible with seed_db)08:57
MerioSo you can change them in your local repository08:57
MerioAnd push in the live instance yourself, this part is your work you should have the honor to push it :)08:58
Merioso, content/js/templates/soc/statistic_dashboard/dashboard.js08:58
dhansMerio: ;p08:58
MerioLine 126, line 159: change from "gsoc2009" to "gsoc"08:59
dhansMerio: but now, without those changes, should I see the new charts on the dashboard ?08:59
Merio(we will need to have them sent by the list so we don't need to do this of all statistics, but we'll do soon)08:59
Meriodhans: yes09:00
dhansbecause the created charts are empty ;-/09:00
MerioI'm committing the other difference, since it's just to create the new widgets in the third column (provisional)09:01
Meriooh really?09:01
Meriowell so just let me pull your changes and have a look the09:01
dhansits content is like "comment for: 1246539624264 - New chart"09:01
Meriodhans: just wait a minute, going to reseed the db and collect the statistics :)09:02
Meriodhans: the JSON is correctly sent to the client?09:02
dhansalso I suggest changing BATCH_SIZE :P09:03
MerioAlso, your scope path is gsoc2009?09:03
Merioyep really ^__^09:03
Meriobatch size to 200?09:03
Merioor something less than 50?09:03
MerioYep, don't know why you change them back to 50 :P09:03
dhansI changed it to 50 because of testing tasks09:03
Meriosounds sensible :D09:04
dhansand yes, my scope_path is google/gsoc200909:04
Meriogoing to collect statistics for students per age too09:04
Merioyou collect also students with 0 age?09:05
MerioBecause in seed_many their birth date is now()09:05
dhansyes :P09:05
Meriook perfect :)09:06
dhansthen click visualize, you should see a table09:06
Meriouff slowness :( Want a new computer sic :P09:07
dhansat mine it's also not very fast09:09
dhansbut you said yesterday it is like 3 minutes to refresh?09:09
MerioWell not so much09:09
dhansuff ;)09:10
MerioHowever I think for statistics we should change index.yaml in agreement with devs09:10
MerioBecause they would help with statistics09:10
dhansbut on the other hand it's not so important (collecting stats), as they are going to be done in background by tasks...09:11
Meriook students per degree and students per age collected, going to see visualize for students per age and then statistics dashboard09:12
dhansanyway, this table is not sorted, I'll have to fix that, because even if you want to sort it by age, they will be sorted lexically09:12
dhansit's not the highest priority now, but I'll add it to the issue tracker09:13
Meriodhans: yes, even if with other statistics and jLinq we can sort anyway we want client side, but yes they should be sorted from backend09:13
Meriook let's see what's going on with statistics dashboard09:14
*** b0le has joined #melange09:15
Meriohere the table for students per age is shown09:16
b0lewhen I'm trying to create a document (on, and I submit it, I keep getting a "500 Server Error". Is this a known problem?09:16
Meriob0le: hmm I do remember there is something related here =>
tpb<> (at
Meriob0le: going to ask around, wait a minute :)09:19
Meriodhans: still there?09:20
dhansMerio: sure09:21
Meriodhans: I said, here the table is shown, I'm wondering why it doesn't happen to you09:21
Meriodhans: do you receive a JS error?09:22
dhanswhen you create a new widget, does it show a table?09:22
Merioit shows the table with all ages, same as in visualize09:23
Meriobut perhaps... are you using Safari?09:23
dhanslet me try firefox09:24
Meriodhans: eheheheh =>
tpb<> (at
Meriosolydzajs: ping09:25
Meriob0le: Still trying, if I don't get response would you please file a bug in our issue tracker? So you can also star it and follow changes09:26
dhansMerio: hmm indeed, but I even thought you changed something, because the problem fixed itself, because the main table (I mean Task / Hours Per Day) is displayed :P09:26
b0leMerio: ok09:26
Meriob0le: thanks, sorry but I can't help you better atm :)09:27
dhansMerio: ok, on Firefox it's working :)09:27
Meriodhans: hmmm that's strange we should try to do something for it :)09:28
solydzajsMerio: pong09:28
dhansbut also, new widgets are created in the first column09:28
Meriosolydzajs: b0le has a problem on creating documents (receive 500s)09:28
solydzajsMerio: probably cleaner issue, I will have a look09:29
Meriob0le: here it is :)09:29
Meriosolydzajs: ok, don't know if b0le already filed the bug :)09:30
b0lenot yet.09:30
solydzajsb0le: please do :-)09:30
solydzajsok I see it09:30
solydzajsUnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 3950: ordinal not in range(128)09:30
Meriodhans: yes this is the other change09:31
Merioin melange.graph.chart, line 57... just change "column": 1 to "column": 3 and you'll change the default column09:31
b0lesolydzajs: I'm not sure how to replicate it though. I just tried a test (putting test in every field rather than what I was trying before) and it worked. But tried the other one and it failed again09:32
Meriodhans: I can push it in the repository however09:32
dhansMerio: ok :)09:32
dhansMerio: but I think in the final version we could consider having two columns... is it possible?09:33
Meriodhans: we can, especially if we divide all the GUI in tabs. For the moment I thought three would be sufficient to play with it09:34
dhansMerio: sure, for now it's great :)09:34
Meriodhans: two were too few, and even if they're small we will need a "full screen" view (in a thickbox?) anyway09:35
Meriosmall I mean the visualizations in the widgets09:35
Meriodhans: so... if you want just push it in the live instance (with manual edits of my files), can't wait to play with it :)09:35
solydzajsb0le: it's only in fields that allow HTML09:35
dhansMerio: ok09:36
Meriodhans: I think for today we should try to parametrize the scope path and beginning to save/load in the backend, and I guess we need to work in close sync. Can you work this afternoon?09:36
Meriodhans: I can... after lunch :P (still hadn't :))09:37
dhansMerio: me neither :P09:37
Meriodhans: so my proposal... just break for lunch and then back to code ^__^09:37
Meriodhans: I'll ping you when I'm back :)09:37
dhansMerio: ok :) I had breakfast not so long ago, so I'll wait with lunch :)09:38
b0lesolydzajs: submitted. Also, the problem is with {foo,bar} or [foo,bar] in the content field (which I also added here:
tpb<> (at
solydzajsb0le: thx09:43
Meriodhans: ok, sorry but I need pasta in my stomach now :D09:44
b0lesolydzajs: actually, "(anything)" will do it.09:45
b0lewhich is annoying, because I abuse brackets :)09:45
*** Lennie has joined #melange09:58
*** ChanServ sets mode: +o Lennie09:58
*** Lennie sets mode: +v dhans10:00
dhansLennie: thanks :) yesterday I registered an account at last :)10:01
Lennieyou did10:01
*** dhans was kicked by Lennie (Lennie)10:02
*** dhans has joined #melange10:02
*** ChanServ sets mode: +v dhans10:02
Lennieit works10:02
dhansLennie: thanks :)10:03
*** kblin is now known as kai10:03
*** MatthewWilkes has quit IRC10:05
*** tansell_laptop has quit IRC10:05
*** madrazr has joined #melange10:05
*** ChanServ sets mode: +v madrazr10:05
*** MatthewWilkes has joined #melange10:05
*** tansell_laptop has joined #melange10:05
Lenniehmm interesting I talked to b0le in the wrong channel ^^10:05
Lenniehi MatthewWilkes :D10:05
*** kai is now known as kblin10:06
b0leLennie: your comment definitely makes more sense in this context, though I must admit I am still not quite sure what you meant10:08
Lennieyou gave us a testcase :)10:08
b0leoh. Well, I guess I must take too much for granted then. To me, that would be the normal approach ;)10:09
LennieWhen your 'clients' are software engineers or something yes10:10
Lenniebut when they are normal people, no :P10:10
Lennietheir response would be, ahahahah it's broken10:11
Lennieand that's it :)10:11
*** Lennie is now known as Lennie|Away10:15
*** MatthewWilkes has quit IRC10:43
*** MatthewWilkes has joined #melange10:43
*** Lennie|Away is now known as Lennie10:47
Meriodhans: ping11:04
dhansMerio: pong11:47
dhansMerio: the music was so loud I didn't hear :P11:47
Meriodhans: you put sounds in pidgin? :)11:48
dhansMerio: I have something like Colloquy and sounds were set by default :)11:49
Meriodhans: ah great :) So ... did you push the new live instance?11:49
dhansMerio: yes11:50
Meriodhans: great... sent the mail to the dev list?11:51
Meriodhans: if it's working, do it... and update the demos wiki :) then ping me and we'll see next steps to do together :)11:52
Lenniesolydzajs: ping11:54
Lenniesolydzajs:  I've pushed a number of new revision can you take a look and see if you are happy with the way the code currently works?11:54
*** puneeth has joined #melange12:01
*** puneeth has left #melange12:01
dhansMerio: ping12:08
dhansMerio: wiki updated, but I couldn't even check if it works... I'm getting a lot of 500s, but there's probably something wrong with appengine12:09
dhansMerio: I couldn't even login to the admin console12:09
*** Merio has quit IRC12:11
*** Merio has joined #melange12:12
*** ChanServ sets mode: +v Merio12:12
solydzajsLennie: yes will do12:13
Meriodhans: sorry Daniel, keyboard stuck, had to reboot12:13
Lenniesolydzajs: thanks12:13
dhansMerio: sure thing12:13
Meriodhans: going to have a look at the live instance yup!12:26
dhansMerio: yeah, it works :)12:28
dhansMerio: I mean the instance12:28
dhansMerio: but I have some problems with the last upload, so maybe that's why new widgets are in the first column12:29
Meriodhans: have you changed the defaults in melange.graph.chart?12:30
dhansMerio: yes12:30
dhansMerio: but there must be still some problems because I can't upload12:30
Meriodhans: what do you mean?12:30
Merio(I can't retrieve any statistic from the live instance? I've tried mentors and student per country and students per age...?)12:31
dhansI mean, when I upload, I get:12:31
dhansHTTPError: HTTP Error 409: Conflict12:32
dhansError 409: --- begin server output ---12:32
dhansAnother transaction by user Daniel.M.Hans is already in progress for this app and major version. That user can undo the transaction with's "rollback" command.12:32
dhanswhen I rollback: Server Error (500)12:32
dhansA server error has occurred.12:32
Meriohmmm weird12:33
dhansactually now, the admin console shows that the last version is yours from yesterday12:34
MerioDon't know how to deal with that... is there something in the admin panel? Perhaps there's some other former upload of yours pending12:34
MerioDon't know, try to rollback again, because it's something from your user12:35
dhansyes and I don't know why rollback does not work - it worked some time before12:35
dhansI think it's still something wrong with gae. For example I can't open some links on admin console12:37
tpb<> (at
Meriohave you seen this in the admin panel? =>  /statistic_dashboard/show_dashboard/dhans    7    3049 (2575)    36%12:38
Meriodhans: great, so just wait, they're working for us :)12:38
dhansMerio: :P12:39
dhansMerio: but we may just set up live instance later...12:39
Lenniegreat :)12:40
LennieGAE failures (12:40
Meriodhans: yes, it was only that I was thrilling to see that working :)12:41
Meriodhans: so now we should work on saving changes on the server.. that leads us to a problem: a big "save" button or constant dialogue with the server for every change?12:42
dhansI'd go for the second :)12:43
Meriodhans: I would sponsor the latter12:43
Meriodhans: eheheh12:43
dhansMerio: :P12:44
Meriodhans: have you had a look at the chart/dashboard model? They're not perfect, because I need to play with python to see how things works and refine them, but at least you're able to have an idea of the infrastructure I was thinking of... so we can talk about it and change it if needed or better ideas come12:45
dhansMerio: I have seen for dashboard. it's not a lot of python :P12:47
dhansMerio: but if we want to save changes, it leads us to developing chart, so let me see it12:47
Meriodhans: yes it's not ^__^12:47
Meriodhans: model logic and view skeletons are in place12:48
Meriodhans: so you might want to see just what I want to store (even if there's something missing perhaps)12:48
* Merio makes some coffee12:49
dhansMerio: can't find statistic_chart :P12:50
Meriodhans: =>
tpb<> (at
dhansyep, eclipse thing :-) you have to refresh file explorer to see new files12:52
Meriodhans: .... IDEs...12:53
Meriodhans: ehehehe :P12:53
dhansnothing's perfect :P12:54
Meriodhans: just kidding ^_^12:54
dhansMerio: the things you store seems to be cool (at least at this point)12:56
MerioWell...we'll learn to hate them now when we're going to implement them, especially frontend side eheheheh12:57
dhansMerio: hehe12:58
MerioActually I left open the possibilty to have more than one dashboard per user12:58
MerioHowever we need to create the logic for dashboard entity creation as soon as the user enters the dashboard page without having one inside12:58
MerioAnd then.. a chart every time the user creates one, to be edited every time the user edits something in the frontend (all via JSONs)12:59
dhansthat's exactly what I was writing so I am not gonna duplicate you :)12:59
Meriodhans: you mean in the code or here in IRC? :)12:59
Merioeheh sorry was a little bit distracted with the coffee :P13:00
MerioSo, how do we want to divide our work?13:01
dhansMerio: I don't know, I've never drunk coffee :P13:01
dhansMerio: frontend / backend or something else? :)13:02
Meriodhans: don't you? Italian coffee here, you should ;)13:02
Meriodhans: Don't know, perhaps we would want to work in "rows" as James Crook suggested13:02
dhansMerio: rows?13:02
Meriodhans: yep, working both on python and JS each of us13:03
Meriodhans: to be fair, this is mostly backend work13:03
dhansMerio: oh.. I wouldn't find it out by the word 'rows' ;p13:03
Meriodhans: at least at the moment, to begin implementing the feature, so perhaps we might want to divide the backend work13:03
dhansMerio: sure13:04
Meriodhans: it was a quote from James Crook's mail :)13:04
*** Lennie is now known as Lennie|Away13:04
dhansMerio: don't we need references to charts from dashboard?13:05
dhansMerio: ok. forget about this question :P13:06
Meriodhans: AFAIK it's created automatically13:06
Meriodhans: I mean from the reference to the dashboard in chart model13:06
Meriodhans: is it so?13:06
dhansMerio: yes, I just didn't notice dashboard reference in chart13:07
*** Lennie|Away has quit IRC13:07
Meriodhans: ok, I was afraid to have misunderstood something :)13:08
Meriodhans: ok, so the preference on how to divide this work is up to you (providing that I work on some Python, I need to :P)13:08
dhansok, so the first thing that we need it is a list of all charts when a dashboard is loaded ?13:08
Meriodhans: Yes, but I think we should begin from a void dashboard to see what happens, going through the steps we'll find what we need. But it's ok to plan it :)13:10
dhanshmm but just tell me why do you think there is so much backend work?13:10
MerioNo I don't think there's "so much", it's just load and save13:11
dhansexactly :)13:12
dhansbut on the other hand I think there is an awful lot of frontend work :)13:12
Merioafter we have load/save in place yes13:12
MerioBecause all the interaction will be in the frontend13:13
MerioBackend is more or less something that interacts with the datastore, not so much more13:13
Meriodhans: so, I can work on the backend stuff and then we can start working in the frontend together. If we go this way, do you have something to do? It's just to plan and be sure to do the right thing both13:15
dhansMerio: hmm, I don't know...13:15
Meriodhans: perhaps today/tomorrow you can try to deal with the bugs in JS. So you will do some JS and I will do some Python13:17
dhansit's going to be difficult for me, but I can try. Also I will add cron job support for stats collection13:18
Meriodhans: and also you can try to see if there's some library to parse JSON without eval() apart from json2 (which, if you remember, doesn't like {key: "value"} but only wants {"key":"value"}13:18
dhansI remember. it's for half-cooked jsons?13:19
Meriodhans: well it's for many things. If you see bug #10 =>
tpb<> (at
Meriodhans: you'll be find in the linked page in the issue that jQuery's getJSON is risky because it parses the JSON using eval()13:20
dhansbut we use getJson...13:21
Meriodhans: this is risky because eval() actually interprets any JS code, so it could be used also to run arbitrary JS code, which is not something we really want, even if we can easily assume that JSONs coming from backend are safe .. but... well, this is something we might want to do for the whole Melange as well (to avoid getJSON from jQuery)13:21
Meriodhans: yes, because json2 doesn't like all JSONs... we need something not too strict as json2, but not too loosy as jQuery13:22
dhanshmm I don't get it... we are using jQuery, so can we use another functions that are not from that framework?13:24
dhansyou mean, jQuery may load some external libraries and we may use functions from them instead?13:24
Meriodhans: yes, we can. We have json2 already integrated, which is another standalone library. Even jLinq is something standalone13:25
Meriodhans: other libraries are loaded with base.html template and with some backend logic that says which javascript scripts are to be loaded with the page13:25
Meriodhans: this is something I would like to change, to be fair, because we would like at least to think about dependencies13:26
Meriodhans: but, just have a look to that code13:26
MeriouseJavascript, js_uses and so on13:26
dhansyes, I recollect that13:27
dhansso we need something that accepts { key: "value" } ?13:29
Meriodhans: yes. well actually I have already some solutions code. But perhaps it's better to see if there's something we can do for json2, or a better library13:30
Meriodhans: one good example is
tpb<> (at
dhansMerio: remember that13:32
Meriodhans: but well, just have a look around you too, so you can get to know what the real problem is and if there are better ways to deal with that. But please let me know the solutions you find and have them discussed before coding them13:32
dhansMerio: I will13:32
Meriodhans: thx :) now 10 minute break, bbs. If you're still around this evening I might ping you for help with Python ;)13:33
dhansI am going to be here13:33
Meriodhans: perfect :)13:33
dhansMerio: if you can, write me which library or something you used for the dashboard widgets13:34
dhansMerio: it may be helpful to fix bugs :P13:34
Meriodhans: it uses jquery UI sortable and draggable libraries, as seen in the tutorial from inettuts (you can find the link in the resolved issue)13:35
Meriodhans: ==>
tpb<> (at
Meriodhans: obviously I took some code but it's changed much because we wanted to do something different from them13:35
dhansyes I know inettuts, but thought I could also use some other stuff except jquery13:36
dhansMerio: last thing: where the js logs are written to? :)13:38
*** EllenKo has joined #melange13:42
Meriodhans: what do you mean? At the moment there is a decorator function to log, but it does only console.debug() for Firebug13:47
Merio(if isDebug is set to true)13:47
dhansI saw that function and I am wondering what I have to have to actually see those logs13:48
MerioJust Firebug, but it's better for debugging that you use it inline, because we need to enhance that function to use console.debug() or console.dir() depending on the object or some argument13:48
MerioBecause console.debug() prints strings, but if you want to print an object structure you have to use console.dir()13:49
Meriodhans: (try to push it again in the live instance to see if it works :))13:50
dhansMerio: ok, I will need to read what this firebug is13:51
Meriodhans: yes, have a look at their documentation, is the most useful tool you have for debugging Javascript13:52
dhansyeah, as I said, one year ago I had to work for some time with js and I wish they had had some debugging tool :P13:53
dhansMerio: upload doesn't work13:53
dhansMerio: be back in 20 minutes13:55
*** EllenKo has quit IRC14:06
*** dhaun has joined #melange14:28
*** florinciu has quit IRC14:34
*** MatthewWilkes has quit IRC14:34
*** jamtoday has joined #melange14:52
*** Mek_ is now known as Mek15:03
Meriodhans: ping15:27
*** madrazr1 has joined #melange16:33
*** jamtoday_ has joined #melange16:36
*** madrazr has quit IRC16:42
*** madrazr1 is now known as madrazr16:42
*** ChanServ sets mode: +v madrazr16:42
*** jamtoday has quit IRC16:42
*** jamtoday_ has quit IRC16:49
*** matthewwilkes_ has joined #melange17:04
*** matthewwilkes_ has quit IRC17:04
*** matthewwilkes_ has joined #melange17:04
*** matthewwilkes_ is now known as MatthewWilkes17:06
*** dhaun has quit IRC17:30
*** Lennie has joined #melange18:07
*** ChanServ sets mode: +o Lennie18:07
ajaksuLennie: hi :)18:17
Lenniehi ajaksu18:20
*** madrazr has quit IRC18:21
Lenniegtalk I guess :D18:21
*** madrazr has joined #melange18:25
*** ChanServ sets mode: +v madrazr18:25
*** MatthewWilkes has quit IRC18:27
*** MatthewWilkes has joined #melange18:29
*** solydzajs has quit IRC18:29
dhansMerio: pong :) I felt asleep ;-)18:31
*** madrazr has quit IRC18:42
Meriodhans: no problems done :)18:52
dhansMerio: cool :) I am working now...18:53
Meriodhans: ok ^__^ If you want, pull latest changes, I've done the skeleton to create user dashboard (if not present) and to retrieve the list of all user's chart. If you can just have a look and see if it's almost all correct giving Python side architecture :)18:54
dhansyou know, there is no latest changes, because my work is like to figure out why pie chart disappears when its widget is moved18:56
Merioyep, I said to pull mine so you're in sync and you're able to have a quick review of my code :)18:57
dhansoh pull :)18:57
dhansI confused it with push :P18:57
dhansmaybe it's because I am watching wrestling on eurosport :P18:58
Merioeheh maybe no probs ^__^18:58
*** solydzajs has joined #melange19:01
*** ChanServ sets mode: +o solydzajs19:01
*** Lennie has quit IRC19:03
*** solydzajs has quit IRC19:10
*** dhans has left #melange19:42
*** dukeleto has quit IRC19:44
*** jamtoday_ has joined #melange20:07
*** mithro has quit IRC20:35
*** mithro has joined #melange20:36
*** ChanServ sets mode: +v mithro20:36
*** Merio has quit IRC21:02
*** Merio has joined #melange21:08
*** ChanServ sets mode: +v Merio21:08
*** Merio has quit IRC21:20
*** dukeleto has joined #melange22:05
*** jamtoday has joined #melange22:07
*** nuba has quit IRC22:14
*** jamtoday_ has quit IRC22:24
*** jamtoday_ has joined #melange22:52
*** jamtoday has quit IRC23:14

Generated by 2.13.1 by Marius Gedminas - find it at!