Well, it’s official:
This summer, I will be working on OLM for the Department of Computer Science at the University of Toronto.
I will also be going to Poland for 2 weeks, and maybe even do some camping…we’ll see.
Just wanted to announce that.
Well, it’s official:
This summer, I will be working on OLM for the Department of Computer Science at the University of Toronto.
I will also be going to Poland for 2 weeks, and maybe even do some camping…we’ll see.
Just wanted to announce that.
ANOTHER UPDATE: Whoops. Fixed the links to the auction and the St. Catharines Standard article.
UPDATE: Apparently, the Feds are getting in on the online auction circuit too.
Over the past three summers, I’ve been employed by the District School Board of Niagara as an internal web application developer.
One of my first jobs in the summer of 2006 was to rebuild the online auction application that the DSBN Purchasing department ran. The original auction let the Board dispose of old equipment quickly and easily, and was quite popular. Unfortunately, it was also written in (almost) unintelligible/unmaintainable Perl.
So I rewrote it by myself, and learned PHP/MSSQL along the way. We called this new auction site The Government Surplus Online Auction, and we opened it up so that other government agencies could also post items for auction.
Things went along fine until last summer, when the site got attacked by an SQL Injection bot. Back in 2006, I had no idea what SQL injection was, or how to guard myself.
So there I am – I’ve just come back from a camping trip, my inbox is packed with complaints, and I’ve got three weeks until school begins. Crap.
Luckily, I had plenty of tools at my disposal. My web app development skills and practices had evolved dramatically since 2006, and I had been itching to reimplement the auction anyhow. The SQL Injection attack was a perfect excuse for me to gut the entire application, and rebuild from scratch.
And I did. I rebuilt the whole thing from the ground up in three weeks. It’s been almost a year since it was deployed, and I’m still very happy with its performance, and the code that runs it.
I’m not happy with its overall UI design. I think there are plenty of improvements to be made in that regard. Luckily, it’s coded using a light MVC framework that I designed/built myself, so reskinning shouldn’t be too hard for whoever decides to work on it…
Apparently, I’m not the only one happy with the auction site. Check out this article (now without annoying print dialog).
I just checked the logs today – we hit a new record: an aerial truck went for $22,000 dollars. With the Board receiving 5% ($1100) of that simply for hosting, I think everybody is walking away happy.
Proof that I wrote it? This’ll have to do.
Well, it’s official. Today, I handed in my acceptance form for Graduate Studies here at the University of Toronto in the Computer Science Department!
Now I just need to keep my cGPA above 3.2…
Assuming that I get my B.Sc. without incident (because who knows, maybe the University will fight me for it…citing missing courses, insufficient credits, etc. I’ve checked all of this with New College and the Drama/CS departments, but I’ve been here too long not to be ready for bureaucratic tom-foolery…), I think I’ve got an interesting year or so ahead of me.
This summer is already looking quite busy, but here’s what I’m looking forward to next year:
I’ve been leafing through the Graduate course calendar, looking for courses that sound good and fulfill my breadth requirement. Here are the courses I’ve underlined as “interesting”. Note that I haven’t checked the timetable at all to see if these conflict with one another. They just sound interesting:
I’m also looking into the possibility of hopping (back) over to the Computer Engineering Department to see if I can take ECE568H1 – Computer Security. My general dislike for engineering courses notwithstanding, this still sounds like an interesting possibility.
(Note to self: the word “notwithstanding” just felt right to put there, but is that correct usage? I have no idea…)
Well, it’s no surprise – a Master’s student is expected to produce a paper in order to graduate. I have absolutely no idea what I’ll be doing my thesis on, but the number of possibilities is exciting.
It’d be nice to somehow merge Drama and Computer Science into a thesis – and I think it’d be an appropriate finale for my career here at UofT. It’s something to mull over while I have time, anyhow.
OLM is going up in the fall. Whether or not I work on it this summer, as a TA, I’ll probably be using the software to mark and return student code. “Eating one’s own dog-food” might be appropriate here – though I prefer, “eating the sandwich I just helped to make”.
A lot of my friends from the Drama department are either graduating in June, or staying on for one more year. A bunch who are graduating are staying in the city, and the prospect of doing some work with them outside of school is exciting.
We’re all very spoiled here at the UCDP – modest budget, multiple rehearsal spaces, etc… working on our own stuff outside of school might be a very humbling experience. Humbling as in, rehearsing in alley ways or rooftops, and using an audience holding flashlights instead of our own lighting grid. Cool.
This one is still in the works. Some buddies of mine from highschool (who are also my roommates) are looking to buy some property in, or around downtown Toronto.
This may sound ambitious, foolhardy, and naive, but we’re serious, and a lot of legwork has already been done in order to get this moving.
Ideal scenario? Next year, I’ll be living in a big house with my highschool buddies. And isn’t that living the dream?
Anyhow, as I was saying, my Grad school papers are in, so my brain is going to put that on the backburner for a while. Now I have to focus on my CSC301 midterm for this Wednesday, and an evidentiary analysis on CIA/JFK Assassination links for INI304.
Last night, I had a dream.
In it, I was breaking into a house. In the house was a TV and a computer. On the TV was Mario64, and on the computer, Starcraft.
Somehow, in my dream, I knew that both had been re-implemented in Javascript. I was blown away.
When I woke up, I posted a little blurb about this dream on Twitter. Paul Gries responded with this link: Javascript Starcraft.
Dreams. They can come true. Except sometimes, you need Internet Explorer to run them.
I’ve mentioned the OLM project a few times, and more than once, I’ve been asked: “What is this OLM thing you keep talking about?”
So that’s what this post is for: to provide a plain-English explanation of what OLM actually is/does.
Note: I can’t guarantee that the history of OLM is entirely accurate – I’m assembling this from hearsay, and personal accounts. If there are any corrections to be made to this post, please comment or email me.
Computer Science students, at one point or another, have to computer programs for their assignments. These programs are written in a myriad of languages (Java, Python, C, the list goes on…), and have to be marked by teaching assistants.
Originally, after students submitted their completed programs, the TA’s would print off the source code and write on the printouts to give feedback on how the code was written. They would also use a rubric to grade the overall assignment based on predetermined criteria – which isn’t at all unusual in grading student work.
That’s how it used to be.
One day, the Computer Science Department at UofT decided that they wanted to write a web application for instructors to manage assignments, and to receive student submitted code. They also wanted TA’s to be able to log in, and mark the code, almost as if they were doing it on paper.
So OLM (On-Line Marking) was born. It was written in a web framework called TurboGears by a group of undergraduate students.
And it wasn’t bad. It’s still used in the department to this day.
The original OLM has a few deficiencies. The instructors who actually use it could probably rattle off plenty of stories about how, sometimes the client-side of the interface doesn’t entirely agree with the server, or little glitches that require diving into the database to fix.
Plus, the code-base is kind of a hodge-podge. Not easy to extend, not easy to maintain…the framework that OLM was written on was no longer the “hot framework”, and there was little in the way of support. Something needed to be done.
So it was decided that OLM would be recreated from the ground up, and would be an evolution based on the lessons learned from the original implementation. It was going to be rebuilt in Ruby on Rails, and it was going to be awesome.
It was also going to be renamed. The name “Checkmark” has been bounced around, but should really be more considered as a code-name. The project is still referred to as OLM, or Checkmark.
(Just came up with a name idea: MarkUs. Note to self: send name idea to supervisor…)
The new implementation of OLM is actually in pretty decent shape. There are plenty of bug-fixes and unimplemented features, but a lot of the hardest stuff seems to be over – at least, in terms of matching the feature list of the original OLM.
And that’s important, because our supervisor wants this thing polished, tested, and deployed for the Fall term – and it’s got to at least match the original feature set of OLM, if not exceed it.
If you want to see this thing, you have three choices:
Anyhow, if there are any OLM related questions, or even some name ideas, please don’t hesitate to post.