Perl 6 - the future is here, just unevenly distributed

IRC log for #webwork, 2014-04-04

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

All times shown according to UTC.

Time Nick Message
02:55 rbeezer joined #webwork
12:49 mgage joined #webwork
14:16 shdw_work joined #webwork
14:44 rbeezer joined #webwork
14:55 aubreyja joined #webwork
14:55 aubreyja joined #webwork
15:11 goehle joined #webwork
15:28 mgage joined #webwork
15:48 mgage joined #webwork
18:16 mgage joined #webwork
19:41 mgage joined #webwork
19:50 mgage goehle:  hi
20:26 goehle hey mgage
20:26 goehle if set has a many to many relationship with course
20:26 goehle is due date a set attribute
20:26 goehle or a setCourse attribute
20:27 goehle (is due date something defined for a set in abstract, or only for a set defined to a specific course?)
20:28 goehle also are tags going to be something implemented at a perl level
20:28 goehle (like tags are just a frozen array)
20:28 goehle or at the database level
20:28 goehle (so there is a big table with tag information)
20:29 mgage for the first I say that it is a setCourse attribute
20:30 mgage I’m not sure about tags.  I have to think about it — my gut reaction is database.
20:30 goehle this database is huge
20:30 mgage I’m still finishing grading for the topology course — taking a break and I’ll start up again once I get home.
20:30 goehle just those decisions add about a half dozen tables
20:30 goehle actuall
20:30 goehle y
20:30 goehle tagging is too hard
20:30 mgage Sorry I’ve been out of the loop on this — I’m hoping to catch up with the conversation between you and Peter soon.
20:31 goehle I would need to add another table for every single tag table in the course
20:31 goehle to represent a many to many relationship
20:31 goehle although it would mean you could easilly *share* tags between stuff
20:31 goehle still
20:31 goehle yeesh
20:31 mgage what kind of tags are you talking about here?
20:31 goehle like the kind that go on issues at github
20:32 goehle generic labels
20:33 mgage I’ll have to go review the description to come up with a sensible opinion.  — give me an example of a generic label
20:33 mgage or of sharing tags between courses
20:35 goehle like if you were labelling students by what year they are
20:35 goehle so freshman, sophmore etc...
20:35 goehle or if you were labelling sets by chapter
20:35 goehle or by subject
20:35 goehle or both
20:36 goehle so then how widely do you want tags available
20:36 goehle should you see all the tags you have created
20:36 goehle or all of them for the course
20:36 goehle should tags for students appear as possible tags for sets?
20:37 mgage hmm
20:37 mgage labeling of student by year — using a database for that seems like overkill
20:38 goehle well I guess the question is this
20:38 goehle when you are assigning tags there should be a list of tags that have already been used
20:38 goehle to avoid duplication and for consistency
20:38 mgage having a database of tags for texts, chapters and subjects seems reasonable — isn’t that what we have in the library databases at the moment?
20:38 goehle (like in github, when you make an issue you can click on tags to assign them, or make a new one)
20:38 goehle do you want to generate that list by pulling up all of the students
20:39 goehle unfreezing their tag arrays, and then condensing that into a unique list of tags?
20:39 goehle or do you want to have two extra tables in the database
20:39 goehle bu tyou can generate the list of tags by querying for all tags in the tagStudent table with a where that includes all the students in the course
20:40 goehle returning a list of tag ids, which you use to get the tag labels
20:40 goehle (the actual content of the tag doesn't really matter here.  You could tag things by gibberish)
20:41 mgage I don’t have a quick answer.  It seems to me that a candidate schema has to be set up and then run that against the use cases that we described.
20:41 goehle too hard
20:41 goehle its a pain enough to set up both of them that it can't be done
20:41 goehle not to mention that I'm not actually implemetning tags
20:42 goehle I'm just preparing the way for their eventual implementation
20:42 mgage then there is a tradeoff between how long it takes to do a query and how often it is done.
20:42 goehle the sql thing is almost certainly faster
20:42 goehle in particular, if you want a tag you put on a set to automatically appear as a tag you could put on a student
20:42 goehle then sql is really the only way to go
20:43 goehle because you cant afford to dredge up every set and every student from the database, and then do a bunch of string comparisons, every time you want that list
20:43 mgage as opposed to having a separate database you mean?
20:43 mgage that’s true.  — you don’t want to do that
20:43 goehle but it really does mean half a dozen new tables
20:43 goehle a tag table
20:44 goehle and then a relationship table between tag and every single object that can contain tags
20:44 mgage That’s true if you are expecting many to many relations.
20:45 goehle tags are definitely many to many
20:46 goehle one thing can be tagged with multiple labels
20:46 goehle and it doesn't make sense to do that unless the labels can be attached to multiple things
20:46 mgage I guess that is right.
20:46 goehle ah but now that we have added a half dozen new tables
20:46 goehle (with another 4 or 5 now that sets are many to many with courses)
20:47 goehle we have 40 tables
20:48 goehle and all (most) of them need half a dozen accessor methods and what not in DB.pm
20:48 mgage but can’t we have just one relational table?     key is an id  type_of_id   value is tag
20:48 goehle well it would be
20:49 goehle key_id, thing_id, type_of_thing_id
20:49 goehle but we don't have a type_of_thing_id table
20:49 mgage something that makes id’s unique across tables and not just within one table —— sorry I’m thinking on the fly here.
20:49 goehle I dont think there is an "autoincrement' for a global database
20:50 mgage I see the problem.  Just don’t have an immediate solution.
20:51 goehle eh
20:51 goehle so the table thing is the right thing to do
20:52 goehle but the number of tables is straining how DB.pm works
20:52 goehle lots of long skinny tables is good
20:52 goehle but not when you have to, by hand, write accessor methods for all of them
20:52 mgage here some initial pointers to what moodle does:  https://moodle.org/mod/forum/discuss.php?d=200625   looks like they have a lot of tables also
20:53 goehle it is the "proper" way to go for mysql
20:53 goehle many to many relationships should produce lots of thin tables with only two or three entries
20:53 mgage there are some perl modules that can help with accessor methods —
20:54 goehle the issue is I imagine they have a dbi which automatically generates where/search/accessor functions
20:54 goehle we could switch to dbix::class for example
20:54 mgage yes.  —
20:55 goehle but then where does it end, I wonder.  Thats why I've been kind of pessimistic in my dealings with Peter
20:55 mgage or perhaps Moose (although a while ago I’d heard this was a bit slow) or Moo (which seems to be faster)
20:55 goehle well Moose and Moo are methods for creating and defining objects in a more Java-esque way
20:55 goehle and less of a Perly way
20:55 goehle not a bad choice if we were doing OO
20:56 goehle then you would have moose objects
20:56 goehle and in the moose objects you would have your dbix::class calls
20:58 goehle its pretty in theory
20:58 goehle my $user = new User(user_id)
20:58 mgage I’m interested in the “new” ways we could use structure, but I also don’t want to rush into them.  Unfortunately I’ve been pretty busy recently and haven’t had a chance to think through some of the choices you are Peter have been discussing.  I’ll try to catch up this weekend.
20:58 goehle automatically gets a fleshed out user object from the database
20:58 goehle yeah
20:58 goehle unfortuantelly its all being pressed by this JITAR stuff
20:59 goehle I don't want to bolt it onto the side of things like Gateway
20:59 goehle which means redoing how set work
20:59 goehle which means redoing how set is stored
20:59 goehle which means ..... you get the idea
20:59 goehle the question is where to draw the line and say
20:59 mgage yep —
20:59 goehle it won't be done right if we do it this way, but nevertheless
20:59 mgage here is a moodle schema from that conversation I sent earlier:  http://www.examulator.com/er/
20:59 mgage just for reference
21:00 goehle yeah
21:00 goehle so they defininelly have some sort of high end dbi
21:00 goehle because they aren't doing all of those sql calls manually
21:00 mgage will you have some time later this weekend?  I have to finish this grading first — then I’ll try to devote myself to studying what you and Peter have been saying.  Then I might be able
21:00 mgage to give some reasonable feedback.
21:01 mgage php — has pretty high end dbi calls — it’s what it is for.
21:01 mgage if that is the only barrier I think we can provide that in perl as well — we just haven’t bothered so far.
21:01 goehle I think you are right too, but it means replacing DB and its substructures
21:02 goehle with something that is more fancy
21:02 goehle before you go though
21:02 goehle any thoughts on this
21:02 goehle http://agora.cs.wcu.edu/~goehle/Dragons.jpg
21:02 mgage perl autoload  could be used. — I’ve tried to avoid it as a security risk, but if you are careful it’s actually ok
21:02 goehle I want to send them some stuff
21:02 goehle I don't think autoload is up for it
21:03 goehle https://github.com/openwebwork/webwork2/blob/master/lib/WeBWorK/DB.pm#L1189
21:03 goehle its all these methods
21:03 goehle none of them indivudually are hard
21:03 mgage on the dragons — http://agora.cs.wcu.edu/~goehle/Dragons.jpg  — they look a bit flatter than what you sent me eariler.  in particular the tails are all straight as opposed to curved — is that just this particular pose?
21:04 goehle but when you have 40 tables, well you get the idea
21:04 mgage yes.  I do
21:04 goehle this is more formal concept art stuff
21:04 goehle so they haven't been animated or anything
21:04 goehle but they aren't in any particular poses either
21:04 goehle I think its so that you see as much of the creature as possible, without being destracted by other elements
21:05 mgage I guess I don’t know quite how to read them.  So they are probably ok    — in the link you sent me earlier they looked a bit more attractive.
21:05 mgage less stiff.
21:06 mgage by the way for the egg — animating the breakout might take some art work of various kinds?
21:06 mgage not just articulation in that case.
21:06 mgage can you send me the earlier art work link again?
21:08 mgage are we supposed to make choices between the a, b,c, columns?
21:08 goehle http://agora.cs.wcu.edu/~goehle/PreDragons.jpg
21:09 goehle for the egg -- state changes like that are hard.  Likely what will happen is the egg will shake around, then there will be a blinding light, and then when it recedes there will be the little dragon
21:09 goehle (actually thats what all the transformations will look like)
21:09 goehle you start out as green
21:09 goehle then could be green or blue by "Drake"
21:10 goehle then green can become green or brown at Dragon
21:10 goehle and blue can become Blue or Gold
21:10 goehle (a branching tree)
21:10 mgage that’s probably ok — although an art picture of an egg with a broken chip in it might be useful — not necessary though
21:11 mgage I see.
21:11 mgage I like the scales on the tail in the PreDragons dragon
21:12 mgage (I like the names dragonling, drake, wyvern  etc as well — hope we can work those in somehow.)
21:14 mgage like the open mouth in the PreDragons picture as well — can that be animated? or is that too complicated?   it isn’t clear in the Dragons.jpq picture whether you can see the teeth in the mouth.
21:14 mgage I do like the view of the eye teeth sticking out. when the mouth is closed.
21:15 mgage I like the spurs on the legs in the adult dragons.
21:16 goehle the mouths should open and close
21:17 goehle I do like the bulkier tail
21:17 mgage I think that is why I like the predragons.jpq picture — they are more interesting with an open mouth
21:17 mgage yes — I think that is good.
21:17 mgage what about the schoolboy bib on the drake — It thought that was kind of neat.  What do you think?
21:18 goehle yeah
21:18 goehle I think he is eating a book
21:18 goehle the concept art drawings are much more "anatomical" in nature
21:18 goehle but I think its supposed to be that way
21:18 goehle in particular they aren't something we are going to be able to use to do anything
21:18 mgage oh — ok  — for some reason I thought it was like an English schoolboy custume.
21:19 mgage for the dragonling predragons.jpg   — the head is a bit bigger and bigger eyes — this is typical of babies.
21:20 goehle yeah
21:20 goehle I think that one looks pretty much the same for the other art
21:20 mgage I wonder if that should be exaggerated just a bit in the drongs.jpg
21:20 mgage I guess you are right — i was looking at the drake
21:21 mgage what about the growth in the wings between drake and wyvern — should that be greater?  e.g. make the drake wings smaller?
21:23 goehle yeah, it might be cuter with tiny wings
21:23 mgage ok — my list so far:   possibly and egg drawing with a crack in it? (shouldn’t be hard)  — thicker tail on the adult dragen — smaller wings on the drake
21:24 mgage manipulating the wings and tail on the dragon are going to be a key to how they look when animated I think —
21:24 goehle yeah
21:24 goehle thats going to be the real test
21:25 mgage in particular the curves in the tail for the wyvern and dragon are what make the predragon pictures look more sympathetic
21:25 mgage what do you think about the shading and scales on the draongs
21:25 mgage (differences between blue, green,  etc.
21:26 goehle yeah, I dont know how the skeleton works for crazytalk
21:26 goehle Hopefully it allows for tails
21:27 mgage were you thinking of using shading of the colors to help transition between growth spurts?  — gives you some visible intermediate stages between levels.
21:27 goehle not right away
21:27 mgage or perhaps could be used for sickness/health   depending on how your homework is going :-)
21:27 goehle I want to build in pallet swaps and things
21:27 mgage ok
21:28 goehle but changing that stuff on the fly with js seems hard to me
21:28 goehle (right now the plan is to change things in crazytalk and export new gifs)_
21:28 goehle actually the initial contract is only for the type A dragons
21:28 mgage for my homework this weekend.  — can you point me to your initial requirements for the JITAR use of sets? — without going down the long road of all the other things that have to change
21:28 goehle (the others are a taste of what the extra 3000 would get me)
21:29 goehle I'll send you my design doc for JITAR
21:29 mgage that is ok I think.
21:29 mgage ty
21:29 mgage one could do quite a lot with the A dragons — it is best to see how that works out before springing for more artwork
21:30 mgage got it — thanks
21:30 goehle not a lot of that is reflected in my db changes
21:30 goehle I just have some plans in mind to make set something gneeral enough to support default, gateway and jitar
21:31 mgage right — and my first steps — in addition to catching up on the conversations that have been flashing by me — will be to try to think of what framework I would want to make those three things fit comfortably — then I can compare it with yours and peters
21:32 mgage so on the dragons — what do you think about the three items I listed above?
21:34 mgage and maybe the eyes could be a bit bigger on the dragonling — but I’d respect the artists take on what makes the dragonling cute
21:39 mgage kk — I’m heading home now — back on later after I’ve grade another question or two. :-)
21:42 goehle sorry
21:42 goehle I was sending emails
21:42 goehle I've asked about the things  you mentioned
21:43 goehle well see what they say :)
21:43 goehle in the meantime I'll give some more thought to the dB
21:43 goehle left #webwork
21:43 mgage np — feel free to ignore what I’ve said also.
21:43 mgage ttyl
23:32 mgage joined #webwork

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