For this summer, the Computer Science Department at UofT has hired me to continue my work on the OLM project. Click on that link, or check out my other post about OLM to see what it’s all about.
I just finished my first week of work, and it finished with a long weekend. Not bad.
And I’ve got a great team – I’m working with Severin Gehwolf and Nelle Varoquaux, both excellent thinkers, programmers, and collaborators. Severin is a UofT student like myself, and Nelle has flown in specially from France (!) to work with us. They’re great, and we’re going to get a lot done.
So what have we to show for our first week of work?
Well for starters, we’ve gutted the entire database schema of OLM. We started right from the bottom, and worked our way through every component of the database, trying to figure out what we could cut, trim, expand, and refactor.
And there was plenty to do. This version of OLM has been in the works for a while now, and there have been plenty of awesome people working on it – but there’s been a variety of Ruby/Rails/JavaScript experience, and the cracks show.
I, myself, came into this project with no Rails experience whatsoever, and while I think I now more or less get the drift, I’m still by no means an expert. Anyhow, I’m looking at my old code too, and kind of grimacing.
But the ideas are all there. It’s like a big hunk of marble that a whole lot of people gnawed and chiseled at for a little bit, trying to make a sculpture. After the big DB schema refactor, I think the whole team can sort of see the rough form of what this thing is trying to become, and now we just need to carve it out. Luckily, instead of a few hours per week like the last few semesters, we get a full summer to focus on it.
So, with the DB refactor done, the first thing has been to redesign the models/controllers to play nice with our new database tables. It was scary, because after the refactor, everything broke – but we’re working on it, and it’s slowly starting to come back.
We’ve also decided to switch the file storage back-end. Up until now, we were using Ruby to organize a file system back-end to do simple versioning of submitted files. One of our goals this summer, is to build an abstraction layer that will allow us to choose different options for this versioned storage back-end. In particular, we aim to support Subversion. That’s right – a web-based Subversion front-end that supports commits, and catches (but doesn’t resolve) conflicts. It’s a fun thought.
I have a feeling this is going to be a very interesting part of our project, and I’ll probably report on it more as it develops – but as it stands, it’s still being conceived on wipe-boards and scrap paper.
Anyhow, I’ll try to keep this blog up to date with what we’re doing. Or maybe I’ll keep this blog up to date. I’m conflicted.
Who knows, maybe this will be my last blog post of the summer. I won’t lie – after working 8 hours on a computer, the last thing I want to do is come home and write a blog post. If anything, my posts will probably wait until the weekends.
But we’ll see.