Friday, 2009-05-01

*** tpb has joined #melange00:00
*** tansell-laptop has joined #melange00:09
*** jamtoday has quit IRC00:24
*** madrazr has quit IRC01:01
*** tansell-laptop has quit IRC01:06
*** tansell-laptop has joined #melange01:06
*** dqminh has quit IRC01:35
*** tansell-laptop has quit IRC01:53
*** dhaun has joined #melange03:34
*** sandy|lurk has quit IRC03:42
*** sandy|lurk has joined #melange03:43
*** forever has quit IRC03:53
*** dqminh has joined #melange04:07
*** solydzajs has joined #melange04:17
*** ChanServ sets mode: +o solydzajs04:17
*** SRabbelier has joined #melange04:32
*** ChanServ sets mode: +o SRabbelier04:32
*** mithro has quit IRC05:07
*** solydzajs has quit IRC05:18
*** jamtoday has joined #melange05:50
*** schultmc1 has joined #melange06:12
*** schultmc has quit IRC06:26
*** mithro has joined #melange07:05
*** ChanServ sets mode: +v mithro07:05
*** dqminh has quit IRC08:17
*** schultmc1 is now known as schultmc09:16
*** mithro_ has joined #melange10:01
*** ChanServ sets mode: +v mithro_10:01
*** mithro has quit IRC10:03
*** dqminh has joined #melange10:14
*** madrazr has joined #melange10:28
*** madrazr1 has joined #melange10:38
*** madrazr2 has joined #melange10:41
*** madrazr has quit IRC10:42
*** madrazr2 is now known as madrazr10:42
*** madrazr2 has joined #melange10:54
*** madrazr1 has quit IRC10:59
*** madrazr has quit IRC11:11
*** dqminh has quit IRC11:16
*** solydzajs has joined #melange12:33
*** ChanServ sets mode: +o solydzajs12:33
*** arvind_khadri has joined #melange12:51
*** SRabbelier has quit IRC13:37
*** SRabbelier has joined #melange13:39
*** ChanServ sets mode: +o SRabbelier13:39
SRabbelierjamtoday: ping13:54
SRabbeliersolydzajs: ping13:56
SRabbelierlh: ping13:56
*** Lennie has joined #melange13:57
*** ChanServ sets mode: +o Lennie13:57
SRabbelierLennie: ping as well13:57
Lenniemy IRC magically connected, I'm not here13:58
* Lennie slaps SRabbelier13:58
SRabbelierLennie: amazing13:58
SRabbelierLennie: seems like youŕe the only one there :P13:58
LennieI'm always there13:58
SRabbelierLennie: I thought that privilidge was reserved for deities/13:58
LennieI'm level 80 hush13:59
* madrazr2 holds Lennie's hands :D13:59
madrazr2Lennie: I won't allow you to slap SRabbelier :D13:59
* jamtoday just came back with his espresso13:59
SRabbeliermadrazr2: hehe, sweet :D13:59
SRabbelierjamtoday: good morning ;)14:00
SRabbelierjamtoday: did you get any sleep:?14:00
madrazr2SRabbelier: :D14:00
* jamtoday slept like a baby14:00
Lennieyou mean you wet yourself?14:01
Lenniewoke up crying14:01
jamtodayLennie: it gets cold at night14:01
SRabbelierLennie: lolol14:01
*** SRabbelier changes topic to "GSoC Discuss meeting in progress - Melange powers the Google Summer of Code 2009 site - Want to contribute? Start here: - Be a Hero and Fix Some Melange Bugs: Easy Bugs: & Minimal Effort Bugs: - Demo is running at - Logs at"14:02
LennieI had to take the oppurtunity :P14:02
LennieI always found it a weird saying14:02
SRabbelierjamtoday: let's roll :)14:02
* madrazr2 change in topic reminds me that, I need to prepare some notes, since my new mentor is a horror movie actor :P14:03
SRabbelierjamtoday: We were hoping that (given your experience with implementing surveys) you could focus on implementing simple survey support in Melange (before the midterm survey xD)14:03
jamtodayOkay so we're scheduled to discuss my GSoC project, the details and the scope14:03
SRabbelierjamtoday: I don't do official meetings if I can avoid it, freestyle ;)14:04
jamtodayinformal is good.14:04
jamtodayand this would be the Quiz Adapter as described here -  ?14:04
tpbTitle: GSoC2009Ideas - soc - Ideas List for GSoC 2009 - Google Code (at
SRabbelierjamtoday: mhhh, we can do without the Quiz Adapters for now14:06
SRabbelierjamtoday: (since those are meant as a bridge between old and new)14:06
SRabbelierjamtoday: if thereś no new yet, then a bridge doesn make much sense14:06
jamtodaySure, so in the new surveys, each item is its own entity14:06
jamtodayand actions can be programmed to be taken depending on answers.14:07
SRabbelierjamtoday: I was thinking we can use Expando so we can store an entire quiz in one enitty14:08
jamtodaySo each item is a property....14:08
* Lennie flicks his magic wand and says "Expando"14:09
SRabbelierjamtoday: right14:09
SRabbelierjamtoday: it would save a lot of db queries if we do it like that14:09
jamtodayand you could do a getattr() on the entity to get a list of its dynamic properties?14:09
SRabbelierjamtoday: and it'd  be easier (I'm guessing) to show the entire survey in one go14:10
jamtodayI'll have to look at the expando docs, but that's definitely a possibility14:10
SRabbelierjamtoday: thereś a dyannmic properties method in expando14:10
SRabbelierjamtoday: no need to use getattr14:10
jamtodayAnd there should also be a GUI for creating the surveys14:10
SRabbelierjamtoday: are you willing to work on this as first part of your GSoC though?14:10
jamtodayor else there won't be many surveys to administer :)14:10
jamtodayHonestly, it sounds like it would be easier to start with than the news feed14:11
SRabbelierjamtoday: true14:11
jamtodayAnd I'm a fan of starting with the low hanging fruit14:11
jamtodayEspecially to give me a chance to become intimately familiar with the codebase14:12
SRabbelierjamtoday: how long are you thinking this would take you ("no clue" is a valid answer)14:12
jamtodayWell, it depends on the meaning of "this" :)14:12
SRabbelierjamtoday: Yes, you could do it instead of writing tests if you prefer?14:12
jamtodayFor example, I'm looking at Google Forms right now, and you can drag and drop individual survey items14:12
SRabbelierjamtoday: this = basic survey support, with a way to create surveys14:12
jamtodayand there's a bunch of ajaxy goodness14:12
SRabbelierjamtoday: would be nice, but not a requirement14:13
jamtodayI'd imagine if it took me more than a week, I'd be "doing it wrong"14:13
SRabbelierjamtoday: hehe, how much hours do your weeks have? :P14:14
* Lennie raises his eybrow, 1 week14:14
Lenniejamtoday, I'll buy you a drink if you pull that off :D14:14
jamtodayThere also needs to be an interface for viewing results. So a basic implementation would have an interface to make surveys, take surveys, and view survey results14:15
Lenniewith the ability to expand it to mentor(student) only for midterm eval14:16
SRabbelierjamtoday: right, do you think thatś one week each, or are you going to do all that in one week (doubtful)?14:16
SRabbelierjamtoday: Iĺl be helping you of course :)14:17
SRabbelierjamtoday: if we schedule it during the community bonding period, there's no reason we can't code together on this ;)14:17
SRabbelier(except my time restrictions of course)14:17
jamtodayI'd imagine I would need to get all three going at the same time, and then including testing and improvements and permissions it would push it out to an extra week or two14:17
SRabbelierjamtoday: So you are ok with working on this during the bonding period, and then working on news feeds as your gsoc (as planned, really)14:18
* jamtoday will brb14:18
* jamtoday is sorry... "important phone call"14:27
SRabbelierjamtoday: hopefully nothing bad?14:28
*** MatthewWilkes has joined #melange14:31
jamtodayNothing bad. Just the type of call where it would be very rude to tell the person you're busy on IRC and can't talk :)14:34
SRabbelierjamtoday: heheh, ok :P14:34
jamtodayI was planning on working on some tests, I believe for the cron jobs14:34
jamtodayI can start off with the surveys instead14:34
jamtoday( and write tests for surveys, of course)14:35
SRabbelierjamtoday: no worries, Iḿ nomming in the meanwhile anyway14:35
SRabbelierjamtoday: that sounds like a good plan14:35
jamtodaynom nom14:35
SRabbelierjamtoday: to finish midterm surveys weĺl need to test that cron works properly anyway14:36
SRabbelierjamtoday: but I hoping that by then Google will have released job support14:36
jamtodayalready released i think. cron.yaml14:37
jamtodayYou just specify the URL to hit and the frequency14:37
SRabbelierjamtoday: thatś what weŕe using now14:37
SRabbelierjamtoday: but theyŕe planning on real job support14:37
SRabbelierjamtoday: (so using a Job API that calls a function, etc)14:38
jamtodayI already coded up my own implementation of that :(14:38
SRabbelierjamtoday: so did we :P14:38
jamtodayuses memcache to go through a list of tasks14:38
jamtodayAs for the news feed, I've been looking into _onCreate/_onModify14:38
SRabbelierjamtoday: ah, goo14:39
*** florinciu has quit IRC14:39
jamtodayI just added a logging statement and it seemed to work as expected, so that should be fine for the news feed framework14:39
SRabbelierjamtoday: ok, but what about ACL etc?14:39
jamtodayright so i have in my notes that the permissions should be in logic/models/feeds.py14:40
jamtodayI might want to think about all the special cases that my ACL pattern wouldn't cover14:41
jamtodaybut I suppose the whole point of ACL is that there aren't special cases14:41
jamtodayI think django.contrib.auth should cover everything I need14:43
SRabbelierjamtoday: mhhh, but weŕe not using that14:43
SRabbelierjamtoday: we have our own ACL system (which uses the different roles in Melange)14:44
jamtodayOh, well then a similar has_permission() method14:44
*** MatthewWilkes has quit IRC14:45
SRabbelierjamtoday: what are your plans wrt caching of feeds/14:46
jamtodayI'll use a memcache wrapper function. If someone edits a document and then loads a page with a news feed that should be updated to show the latest change, then I'll use a kwarg to override the memcache14:48
Lenniebrb, you keep talking :)14:48
SRabbelierjamtoday: what kind of kwarg/14:48
*** MatthewWilkes has joined #melange14:49
jamtodayforce_refresh, or something14:49
jamtodayso if that's true, then it would bypass the memcache.get() call14:49
*** arvind_khadri has quit IRC14:49
*** ajaksu has quit IRC14:49
*** rwatson has quit IRC14:49
*** ajuonline has quit IRC14:49
*** r0bby has quit IRC14:49
*** scorche has quit IRC14:49
*** solydzajs has quit IRC14:49
*** durin42 has quit IRC14:49
SRabbelierjamtoday: so how and where do you decide  to make it true14:49
jamtodayAh, so this is the type of area where I might have a little bit of trouble14:50
jamtodayand like you were saying, spike solutions help14:50
jamtodayBut when I do figure out what those cases are, the implementation will be simple14:50
*** solydzajs has joined #melange14:50
*** durin42 has joined #melange14:50
*** sets mode: +ov solydzajs durin4214:50
*** rwatson has joined #melange14:50
jamtodayI think it's safe to say that the refresh would be forced on _onCreate/_onModify14:51
*** ajuonline has joined #melange14:51
*** scorche has joined #melange14:51
jamtodayAnd then other than that, caching will last 5 minutes. It would be nice to be able to use jobs to keep it updated14:51
jamtodaySo we can avoid updating it when someone loads the page14:52
*** arvind_khadri has joined #melange14:52
jamtodayBut when  _onCreate/_onModify is called, then there's not much of a choice but to refresh the cache14:52
SRabbelierjamtoday: mhhh, but how do you set the variable to true before calling the method/14:52
SRabbelierjamtoday: do you mean it should be some sort of global?14:52
jamtodaythe force_refresh variable? I imagine it would be an optional arg, and would default to False14:53
SRabbelierjamtoday: right, but how do you give it a True value?14:53
SRabbelierjamtoday: our views are all called by Django14:53
jamtodayYeah, I see your point14:54
jamtodaywell then there's just two different methods. One gets the cached feed, and one updates the cached feed14:54
*** ajaksu has joined #melange14:55
jamtodayThat's probably for the best anyways14:55
SRabbelierjamtoday: I'm not quite clear on when that different method is called though, can you clarify/14:55
jamtodayThe get_feed() method would check the cache and only update if the cache was empty14:56
* SRabbelier nods14:56
jamtodaythe refresh_feed() would update the cache14:57
jamtodayAnd I can always implement ajax updating of the feed14:59
jamtodayBut I'll focus on getting something basic working to start with14:59
SRabbelierjamtoday: why not just clear the cache when someone edits a document?14:59
*** arvind_khadri has quit IRC14:59
jamtodayYeah, so _onCreate/_onModify would call refresh_feed()15:00
SRabbelierjamtoday: I  would prefer it to just do a memcache pop15:02
SRabbelierjamtoday: so that we have less risk of running out of processing time, no?15:02
jamtoday SRabbelier: don't quite follow...15:03
SRabbelierjamtoday: we only have a limited amount of time to complete a reques15:03
SRabbelierjamtoday: if we "piggyback" recalculating the feed on an edit, it might take too long15:04
jamtodayA memcache pop wouldn't update the memcache though15:08
SRabbelierjamtoday: correct, but the next "get" would do that, right?15:09
jamtodayupdating the memcache definitely shouldn't make the request timeout or anything15:09
SRabbelierjamtoday: but calculating the contents could, that is, unless you 'append' only?15:10
jamtodayYeah, so I would append to the news feed list, and then do a cutoff like [:10]15:10
MatthewWilkessocghop is down for me15:10
Lennietry again?15:11
* MatthewWilkes tries for the 5th time15:11
Lennieopening logs ^^15:11
MatthewWilkesHTTP/1.1 500 Internal Server Error15:11
MatthewWilkesDate: Fri, 01 May 2009 19:11:21 GMT15:11
LennieI'm getting a 500 error when trying to view the logs :P15:12
Lennietime to check appengine status console15:12
MatthewWilkesWas working about 60 seconds ago15:12
MatthewWilkesDied mis-session15:12
tpbTitle: Google App Engine System Status (at
SRabbelierLennie: nice!15:13
SRabbelierLennie: good that no-one is using socghop atm anyway :P15:13
MatthewWilkesSRabbelier: What am I, chopped liver?15:13
LennieI'm getting student acceptance flashback15:13
tpb<> (at
Lennietry and open it:S15:13
SRabbelierMatthewWilkes: yup15:13
SRabbelierMatthewWilkes: or something like that15:14
MatthewWilkesNow getting a 200 with no entity body15:14
jamtodayMatthewWilkes: works for me15:14
SRabbelierMatthewWilkes: joy :P15:14
MatthewWilkesand... we're back15:15
SRabbelierGAE failures, gotta love it15:15
jamtodaystill beats running your own server :)15:16
Lenniebut it hates when a lot of different things are going on :P15:16
LennieIt has a lot of power15:16
SRabbelierLennie: it has the power15:17
MatthewWilkesI got a bug report the other day for a <100ms outage15:17
MatthewWilkesWhat are the chances?!15:17
jamtodaySRabbelier: So we've talked about surveys, and the news feed framework in a little bit of depth. Still not sure about the security issues regarding whether or not to make Atom feeds (and pave the way for gadgets and such).15:18
Lennieawesome MatthewWilkes :P15:18
jamtodayBut that can wait until its more pressing15:18
SRabbelierMatthewWilkes: preetty sweet15:19
SRabbelierjamtoday: I think we do want feeds, but we definitely do not want a mentor leaking a feed url and a student seeing who is accepted15:19
*** Lennie is now known as Lennie|Gone15:22
Lennie|Goneokay, looking awesome :)15:22
Lennie|Gonesorry I have to leave you alone15:22
SRabbelierLennie|Gone: pffff, stop playing WoW so much you slacker15:23
jamtodayMaybe the feeds could just link back to the appropriate pages, and include anonymous information about the type of update. A program has been updated, or a document, or a person15:23
jamtodaySo we can get the pageview and the advertising $$$$15:23
SRabbelierjamtoday: brilliant :)15:24
SRabbelierjamtoday: sounds like a plan/15:24
jamtodayI'll probably be better figuring these issues out when I have a working prototype, but I'll definitely keep them in mind15:25
SRabbelierjamtoday: ok, do we want to work on what news feeds we need?15:26
jamtodaySRabbelier: sure. I'm thinking organizations and related docs, programs and related docs, projects, proposals.15:27
SRabbelierjamtoday: requests too15:27
SRabbelierjamtoday: (mentor/org admin wanting to sign up, etc)15:28
jamtodaythese should all be fine, as long as they hit _onCreate/_onModify. And if they don't, then it'll just require a special call15:28
SRabbelierjamtoday: sounds sane15:29
SRabbelierjamtoday: where do you want to put these feeds?15:29
jamtodayOn the homepage for the program, or the homepage for the organization15:39
*** madrazr2 has left #melange15:40
SRabbelierjamtoday: what about private feeds, like reviews of proposals etc?15:42
jamtodaytemplates/soc/organization/home.html, etc.15:42
*** solydzajs has quit IRC15:43
jamtodaySRabbelier: Good question. I'm not entirely sure.15:43
jamtodayBecause it starts to overlap with notifications15:44
SRabbelierjamtoday: a bit similar to dash board15:44
jamtodaySRabbelier: what do you mean?15:48
SRabbelierjamtoday: a dashboard for org admins/mentors where they can see "what's up "15:49
jamtodayOh, but not an existing feature15:50
jamtodayI was thinking "uh there a page I haven't seen?"15:51
jamtodayThat was the idea for the news feed. There's no place that aggregates all the latest changes15:51
* SRabbelier nods15:53
SRabbelierjamtoday: perhaps we can make it the first part of such a dashboard15:53
SRabbelierjamtoday: the "recent changes" feed15:54
SRabbelierjamtoday: and we can then later add stuff like "such an such is due by..." notifications15:54
jamtodaySure, i'll try to design it to be as extensible as possible15:57
jamtodayI have a couple minutes before I have to head out to class. Any other items for discussion?15:58
SRabbelierjamtoday: nope, I think we'ŕe good15:58
SRabbelierjamtoday: thanks for the chat :)15:58
jamtodayexcellent. I'll ping you if I have questions about the survey15:59
jamtodayand I'll probably be hanging around #melange in any case16:00
SRabbelierjamtoday: ok, awesome :)16:00
SRabbelierjamtoday: cya soon then :)16:00
* jamtoday is venturing into sunlight (shudder)16:02
jamtodaySRabbelier: thanks for your help today16:03
*** jamtoday has left #melange16:03
*** MatthewWilkes has quit IRC16:32
*** Lennie|Gone is now known as Lennie16:35
Lennieseems cool16:42
*** Lennie has quit IRC16:44
*** r0bby has joined #melange17:16
*** dhaun has quit IRC18:59
*** lhawthorn has joined #melange20:41
*** lhawthorn has quit IRC21:00

Generated by 2.13.1 by Marius Gedminas - find it at!