Post tagged 'computer science'

Halloween Team Fortress 2

Last year, my friends from computer science decided to do something geeky for Halloween:

halloween-tf2

What could be geekier than going to Halloween as video game characters from TF2? (If you don’t know what TF2 is and have a winter break to waste, click here.)

TF2 Poster

Close enough?

This certainly wasn’t the first time it’s been done. Heck, it’s even been done in Lego.

But none of these other guys had a backdrop quite as video-game-like as the Bahen Centre (computer science HQ) at UofT.

Halloween TF2
Halloween TF2

And here are some individual shots of the characters:

Read the rest of this entry »

Damian Conway on Aikido, Star Trek, and Perl

And Danish mind control, Greek mythology, periodic tables, the garbage strike, ...

Damien Conway is one of the best presenters in the business. His past talks have been described as “engaging”, “mind-blowing”, and “brain bending”. Joey DeVilla adds to the hype :

There’s nothing quite like a Damian Conway presentation, which is equal parts pop culture, deep science, software engineering and Monty Python’s Flying Circus

His previous talk in Toronto featured this mouthful of a title:

Temporally Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces… Made Easy

So what could possibly dampen my enthusiasm when I found out he was giving another talk in Toronto? Simple: his life’s work is devoted to Perl, a programming language that some have described as “bloody witchcraft” and “write-only”.

But with the first slide, he cheekily addressed this image problem:

“Content advisory: This presentation contains a substantial amount of explicit Perl.”

Damien Conway at UofT

What’s going on in the photo? Did he forget to also warn us about violence? Not quite — it’s him giving a demonstration of Aikido on a certain local accordion player.

(Damian says these skills come in handy in bars — coincidentally, a strange setting considering he’s “the only Australian who doesn’t drink” and the “designated driver for an entire continent.”)

In any case, Damian’s dragging of Joey across the room was actually a lesson about Perl. Aikido uses the “motion of the attacker and redirects the force of the attack rather than opposing it head-on.” Similarly, Perl is all about finding the easiest way to get your job done. Something all geeks are on board with right?

Another thing we all love: duality. Lego vs Mechano, Star Trek vs Star Wars, and more specifically, which was the more annoying golden robot. It harks back to a more ancient duality: chaos and cosmos, deified in the gods of Ares and Apollo. As geeks, our sympathies lie more on the Apollo side of the spectrum. We have a natural tendency to look for patterns in data. For example, nerds have created periodic tables to describe just about everything: vulgarity, visualization methods themselves (bonus: the recursion in the chart), anti-science attitudes, or Perl 6 operators.

With Perl — and open source in general — our obsession with elegance and order has an extra dimension: we chaotically bring order out of chaos.

So what does all this have to do with Perl? Regular Expressions — something that even the most ardent Perl-hater would admit the language does a kickass job on. For the next two (!) hours, Damian explained the ins and outs of a new regex library that he had coded and how he had made it compatible with the current version of Perl.

The grand finale: a programmatic version of Abbot and Costello “Who’s on First” skit:

Damien Conway at UofT

It might not look glamourous but that’s the new Perl regular expression engine talking back and forth with itself. Mind-blowing.

Addendum

As we all know, no discussion about computer languages is complete without a few gratuitous jabs at the other languages:

Damien Conway at UofT

(A reference to the notorious porn presentation at the Golden Gate Ruby Conference)

And now a word about Perl 6

Perl 6 seems to be quite an improvement over the current version but it’s been in the works for almost a decade (could it be the official scripting language of — the most famous of vapourware — Duke Nukem Forever?)

So for those yearning for a firm date, Damian might have hinted that there might be an announcement that might be made next week about a specific release date that might happen to be in Spring 2010.

Computer Science shows off its stuff

Today was our Computer Science department’s Research in Action day — a big room is booked, it’s filled with smart people, industry professionals are invited, and good things happen.

Research in Action showcase

A few projects stood out:

ILoveSketch

Designing physical objects is tricky because you have to use a 2D surface (pen and paper, a digital tablet) to model a 3D shape.

This is where ILoveSketch comes in. It’s a digital system that lets designers use conventional drawing techniques to produce 3D curves.

Here’s Seok-Hyung Bae giving a demo:

Research in Action showcase

A few months ago, the video demo was going around the tubes of the internets and it has about 200k views so far. Give it a whirl — it’s a great watch.

CognoVision

Advertising is a trust game: marketers have to be sure that their money is actually earning eyeballs.

For old mediums, there are tried and true techniques for figuring this out — Nielsen ratings for TV, for instance. But for newer forms of advertising, how do you guarantee to advertisers that they’re reaching an audience?

CognoVision provides a solution specifically for digital signage — they embed a video camera in a display terminal and using fancy image processing, they figure tell you how many people are actually looking at the screen. It can even break these stats down by things like gender.

Here’s what it looks like. Next to the Castrol ad is what their software sees and analyzes (that’s me standing next to their Director of Business Development). Viewership metrics are displayed underneath:

Research in Action showcase

Strictly speaking, they’re not a research project or even from UofT. But UofT grad students did most of the development.

More details

But that certainly wasn’t it. The full list of projects can be found here

How to run a code sprint*

*this post only offers hints

While many students this week were busy partying reading, a handful of computer science students participated in a code sprint to work on various open source project courses. This is most of us, three days of hard work later:

Code Sprint 2009

Up front at the whiteboard is Greg Wilson leading our post-mortem discussion about how we felt the code sprint went.

What worked

First up, the whiteboard itself. Beyond its obvious scratchpad benefits, it allowed people outside of a discussion to jump in.

Having a room full of developers and potential rooms made for good usability testing opportunities, from the “hey, got a second?” variety to the longer, structured sessions.

But most people agreed that the best part of the three days was simply all being in the same room together. For some, it was the first time connecting faces to names — in particular, four collaborators travelled from Ann Arbor, Edmonton and Waterloo to help out.

Pair programming also worked well, keeping people focused and writing sane code. Working alongside partners meant that you if you didn’t understand a line of code, you could go up to the person who wrote it and ask them. More generally, filling a room with developers meant that lots of command line tricks, clever solutions, and handy libraries got thrown around.

And what didn’t

The obvious flipside to working in the same room were the constant interruptions.

The grizzled Blake Winton (Basie’s dedicated code reviewer) stated it elegantly: he enjoyed getting interrupted to share knowledge that he accumulated over his many years. On the other hand, he hated getting interrupted to share knowledge that he accumulated over his many years.

And like all good computer science problems, there were the challenges of scale. Eating donuts and sitting on lousy chairs is fine for a few hours but not for a few days.

Some other thoughts:

  • Our list of objectives could have been more explicitly defined — there wasn’t an official “scrum list” to use the nifty agile term.
  • Some felt that the sprint could have used a few more veterans and alumni. The ones who were there were often spread thin.
  • Aran suggested we try breakout rooms for when smaller groups need to focus.
  • Demonic child coughs.” James Leung’s advice: don’t come from out of town and stay with professors who have sick children.

Getting Things Done

Like many things in the oft-inverted world of academia, results often take a bit of a backseat to the actual learning experience. But thankfully, we got lots done. Greg, Aran, Phylis, and Mike have the details.

Doling out some thanks

In the spirit of last night’s Oscar’s, some thanks need to be handed out:

  • the “adults” who managed the projects: Greg Wilson, Karen Reid, and sanity checking from Blake Winton.
  • tech support / setup from Alan Rosenthal, Vlad Sekulic, and David Wolever. The network didn’t go down once!
  • the students from other schools who travelled to Toronto to help out: Liz Blankenship, Heather Grant, James Leung, and Jason Whyne.

And now for some pretty pictures