My partner and I have moved to using Class::Declare and Class::Declare::Attributes instead of Class::Contract. Why? It provides nice, clean OO-ness with access levels. Also, the built-in cloning is crucial since the interfaces we need to implement are designed for functional programming.
We spent a few hours today finalizing the design for our project and pretty much scrapping the code we turned in last week. Our professor claimed that a major part of this class is learning to doodle. Our doodling today was so damn productive, I almost want to post scans of my notebook.
Our big hitch so far is regarding the type of certain objects. The sample interface we were provided specified a few constants, like NORTH, SOUTH, EAST and WEST. We're wondering whether our directional-related elements should be subclasses of Thingey, such as Thingey::North and Thingey::East, or have properties, such as $thingey->type(NORTH). The former saves us a line in our test suites per instantiation. Hrm.
$writing_project is coming along. I'm working on converting my already-written stuff to the new writing style and format. Between tthe $writing_project, software development class, keeping tabs on the student group, psychobiology and designing language-related experiements for a different psychology class, you could say I've pretty much torn off my nose by leaning too much into the grindstone. I really wish I had this sort of work ethic and drive my freshman year, especially that trimester where I got the those burdensome grades.
Additionally, much respect goes toward Emily for sticking with me even though I stay up all night typing. Emily++