Perl 6 - the future is here, just unevenly distributed

IRC log for #webwork, 2013-05-10

| Channels | #webwork index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 Paul_Pearson joined #webwork
00:51 mgage_ joined #webwork
02:29 Paul_Pearson joined #webwork
02:33 mgage_ joined #webwork
03:38 mgage_ joined #webwork
03:48 rbeezer joined #webwork
11:06 mgage_ joined #webwork
12:20 mgage_ joined #webwork
12:44 mgage_ joined #webwork
13:08 mgage_ joined #webwork
16:05 Paul_Pearson joined #webwork
18:51 Paul_Pearson joined #webwork
18:51 goehle joined #webwork
18:52 goehle hey mgage
19:07 mgage hi
19:07 goehle just had an interesting talk with our cs folks
19:07 mgage yes?
19:07 goehle I was walking them through and overview of webwork
19:08 goehle it brought up a some questions that I wanted to ask
19:08 mgage k
19:08 goehle first, for the database project, are we talking about redoing the table format, the DB.pm file, the database schema, or all of it?
19:11 mgage I'd like to morph DB.pm as slowly as possible -- currently all database calls (or almost all :-) ) from the rest of webwork go through that.  So if we can keep the front end of that unchanged, at least for now, that will help a lot with the transition.
19:11 mgage There is a middle layer that actually has been changed once already (but not completely cleaned up -- there is unused code lying around) and that can change.
19:12 goehle one thing we discussed was keeping the DB.pm api in tact but changing pretty much everything else
19:12 goehle including the table structure
19:12 goehle and the scheme
19:12 goehle in particular adding a standard orm like DBIx::Class
19:13 mgage The original plan was to redo the table format and schema -- make the tables contain all courses -- so instead of approx 7 tables per course there would be 7 tables and courses would be indexed within those.  --
19:14 mgage adding DBIx::Class or something like it was something that we had in mind (actually I think we originally take about one of its predecessor's) but we never actually got that done.
19:14 mgage there is some talk of making the database itself object oriented or a noSQL type database rather than using tables.
19:16 mgage the model I looked at for some time is what was done with moodle -- which is much like ours except that (1)   each table pertains to all courses, (2) e.g. users are for the site -- not in just a course user table (3) in general the tables were taller and narrower and many look ups involved left joins.
19:17 mgage one thing I'm sure about is that every row will in the future have a timestamp and a unique id (which is used as nothing but as an id) -- I wish we had done that the first time around
19:17 goehle were you planning on having the system be backwards compatible with old table schemes, or just providing an upgrade process?
19:17 mgage a lot of the stuff in the Schema.pm files can be rewritten safely or use CPAN modules -- Sam was trying to simplify the SQL lookup and it largely didn't work
19:18 mgage just provide an upgrade process.
19:18 goehle ok, sounds good
19:18 goehle yeah, the NewSQL is basically an ORM (object relational mapper)
19:18 goehle and there are more standard ones now
19:18 goehle so it wouldn't be particularly hard to move that over
19:19 mgage right -- that's what we were trying for -- to get some object orientation properties.  I don't know what the current standards are -- but I understand that there are some database backends that make this much easier.
19:20 goehle yeah, DBI::Class is pretty nice
19:20 goehle for example if you want to do a search then you just have to do
19:20 goehle get({"column_name"=> "value\s"})
19:20 goehle with nosql
19:20 mgage (when you consider the database and the website delivery (templates, contentgenerator modules and so forth) was written around 2004 by some undergraduates loosely supervised by me -- it didn't turn out that badly.  :-)
19:20 goehle not at all
19:21 goehle although there were groans about the lack of commenting :P
19:21 mgage as long as we can keep the webwork facing part of DB reasonably constant I think we can do quite a bit with the backend.
19:21 mgage fair enough :-)
19:21 mgage brb
19:22 goehle http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Manual/Joining.pod
19:22 goehle thats an example of searching/joining with DBIx::Class (and it looks pretty nice)
19:23 mgage student -- be back in about 5 min
19:23 goehle kk
19:32 mgage back
19:33 goehle hey
19:33 mgage yes -- that kind of joining is what I had in mind (and was thinking of a while ago) --- what I don't know about is whether, having waited this long -- we should look at some newer possibilities that aren't just SQL tables.
19:33 goehle Mark, the CS guy coming to the meeting
19:34 mgage another think I'd like build in this time is more diagnostic tools so that we can measure what is fast and what is taking time.
19:34 goehle is reading up on other database types over the next couple weeks
19:34 goehle so he might be able to chime in
19:34 goehle thats a good idea actually
19:34 goehle have maybe a "debug" mode for pages
19:34 goehle which shows a bunch of stats
19:34 goehle how long the database calls took
19:34 goehle how long the processing took
19:34 mgage yes -- I  saw that.  I've asked David to come as well to help keep track of things in case i get more involved with the model course stuff
19:34 goehle etc
19:35 mgage also there may be one or more guys coming from Indiana U. interested in the database overhaul.
19:35 goehle so they also pointed me to this
19:35 goehle http://www.catalystframework.org/
19:35 goehle not necessarily as something to use
19:35 goehle but as a guide
19:35 goehle notice that the models (what they use for their database) are modular and support DBIx::class
19:36 goehle but a bunch of other stuff, including non-sql
19:36 goehle and the front end, what they call view
19:36 goehle include different options
19:36 goehle including a REST based one (which fits with the new webwork api)
19:36 mgage I've familiar with that -- it came along a few years after we'd done the development.  In particular some of the Template stuff that is associated with it might be used to replace our templating system -- or perhaps we'll end up replacing it with a javascript version
19:37 mgage our Template.pm was written about the same time as the version associated with Catalyst -- but they have had more chance to refine their version.
19:37 goehle it might also allow for different views of the same stuff
19:37 goehle so for example template coudl still be used for the legacy stuff
19:37 goehle but the newer interface could be something fancier
19:38 mgage yes -- that would be fine.
19:38 goehle actually
19:38 goehle how are people implementing that new interface?
19:38 goehle are there new .pm files for the new pages?
19:38 mgage if we are lucky we might be able to allow the database stuff to use an old back end for old courses -- but I wouldn't try to hard to make that happen -- I'd actually prefer an upgrade path.
19:39 goehle or is it some sort of fancy poost processing?
19:39 mgage it's mostly javaScript -- you can see a fair amount of it in the develop branch of openwebwork  -- and more of it in peter staab's github repo
19:40 goehle yeah
19:40 goehle I was looking through there
19:40 goehle but was having trouble pulling otu stuff
19:40 mgage I can't help with a lot of details on that at the moment -- I was planning to start looking myself.
19:40 mgage I'd say ask Peter or David if you have questions.
19:41 mgage that's what I plan to do.  :-)
19:41 goehle will do
19:41 mgage kk ttyl
19:41 goehle :)
20:07 goehle left #webwork
22:54 mgage_ joined #webwork

| Channels | #webwork index | Today | | Search | Google Search | Plain-Text | summary