Trust Your Geekflex

Blog Forum Gallery

CUSEC 2008

Posted by Skrud at Tuesday, January 22nd 2008 at 3:47pm

It’s no secret how passionate I am about CUSEC: the Canadian University Software Engineering Conference. I’ve been attending it diligently every year since 2004, my first semester at university. Which makes CUSEC 2008 my fifth. I guess I’ve been in school for way too long.

This year I was an organizer for the first time, and settled happily into my role as Director of Promotions. My job was to find new head delegates and make sure that the conference was well advertised. What I actually did amounted more to making sure there was enough actual content out there to convince people to come to the conference. This meant pushing people to update the web site with stuff like FAQ’s, blogging about why people should attend CUSEC, advertising it to people on Facebook, and – back at Concordia – speaking in classrooms and selling tickets.

And now I’m co-chair for CUSEC 2009. Because I refuse to disappear from CUSEC just because I’m graduating this spring.

This year was a blast! We had more delegates than ever before, so many that we were running out of places to put them, with people having to stand in the back during some of the speeches. This means that next year we’ll need some more space. Maybe we can even move into the giant auditorium (”Le Grand Salon”).

Another great thing this year: the students were unusually outgoing. We’ve never had more than 75 people show up for the pub night parties, but this year we must’ve had about 200 people. I got to experience what it was like to run around a crowded bar with plates of food, delivering nachos and quesadillas and chicken wings to hungry delegates. We’ll need to find a bigger place than Brutopia. On the second day of the conference, so many people were running up to me asking “so where are we going to party tonight?” … We had nothing planned, so I told them I was heading to Pub Distillerie. I think this was a mistake, since the bar was so packed that I couldn’t even get in… (this was after redirecting people to McKibbins, too!)

CUSEC has always had the ability to win the hearts and minds of delegates and speakers alike. And this year, as always, we’ve had a stellar lineup of speakers. Unfortunately, being an organizer means I sometimes have to miss speeches in order to run errands, or prepare for the next speech, or set up another event. Unfortunately Tim Bray’s opening keynote was one of these. Luckily we videotaped all the speeches (and we’ll be putting them up as soon as we can). I was really happy to read about Tim’s experience at the conference.

One of our speakers whom I was really excited about bringing was Jeff Atwood. He is the author of codinghorror.com and practically one of my heroes. I learn a lot from reading his blog daily, even if he’s writing about something seemingly obvious, because he often puts things into a context that I didn’t think of. You should read what he wrote about his first day at CUSEC.

Another speaker that seemed to surprise everyone with shock value, was Zed Shaw. Zed not only fulfilled his duty as a keynote speaker by giving some important life lessons during his keynote speech (i.e., don’t get an MBA because the first thing they do to geeks who get an MBA is lobotomized them), but he was at every party, every event, and hung around with delegates for the entire conference. We got to learn a lot from him, just from hanging out and talking to him.

One of the best parts of CUSEC is the fact that the speakers who come to the conference are often willing to meet and chat with students outside the context of the lectures, completely informally. Jeff Atwood, for example, came to the pub night, and we taught him and his wife to play Bunnies. Kate Hollenbach was there too, and I’m told she drank everyone under the table. Of course it’s not only drinking. We had students interview the speakers on camera, for example, and hopefully we can get those edited into a nice montage and put it up on YouTube to seed advertising for next year. :)

There is altogether way too much to talk about as far as CUSEC goes, and it only gets better each year.

Tags: , , , , | 2 comments

CUSEC 2007

Posted by Skrud at Saturday, January 20th 2007 at 12:00am

Of all the student conferences I’ve been to, CUSEC is repeatedly and consistently the best. I started with CUSEC 2004, immediately after my first semester of Computer Science at Concordia. I learned what “Software Engineering” meant. And I remember the epiphany I had during David L. Parnas’ keynote: “That’s what I want to do.” As soon as the conference was over I applied to transfer from Computer Science to Software Engineering; I love it, and I’ve gone to every CUSEC since.

This was my fourth CUSEC, and it’s every bit as amazing as it’s been in previous years.

I enjoyed every single seminar I attended this year, especially the ones by Greg Brill, Dave Thomas and Venkat Subramanian. The career fair was fun, though not as large as CUTC’s. The party at McKibbin’s was a blast, with the Infusion Development team joining in the fun and singing, and Nick Landry sticking around for the entire conference and all the rest of the parties.

In the inevitable comparison to CUTC on the conference circuit, CUSEC crushes the competition. I think CUSEC wins because of its specialization: it’s a software engineering conference, and as such it attracts students and speakers from a smaller, more targeted niche. CUTC is a technology conference, and has a more diverse range of topics under the technology umbrella. Most people who attended CUTC probably wouldn’t get much out of CUSEC, but those who are passionate and enthusiastic about software engineering, programming, computer science and all that geeky stuff will take away so much more from CUSEC.

The best part about CUSEC is the crowd. I feel empowered when I’m surrounded by so many like-minded, friendly, approachable and smart people. The speakers themselves mingle with the students at the banquet, in the bars, at the hotel parties. How many other places offer students the ability to have a beer with Ralph Johnson, Dave Thomas or Pete McBreen (even though I’m pretty sure he said he doesn’t drink)? These guys not only wrote some influential books, but changed the way software development is done!

CUSEC also leaves a lasting impression on the speakers. Kathy Sierra, who spoke last year, wrote about it on her blog. This year, I think it was Nick who said something like “This conference renewed my faith in the future generation of software engineers.” And the recruiters from Infusion who were at the career fair (the same people were at the career fair at CUTC) said that the students were “exactly the kind of people they’re looking for.”

Next year, I’d like to be one of the organizers.

You can see pictures from this year’s CUSEC on flickr by browsing the cusec2007 tag. Dave’s CUSEC pictures are particularly stunning.

Tags: , , , , | 2 comments

Good Morning, CUSEC

Posted by Skrud at Saturday, January 21st 2006 at 7:25pm

I slept in this morning (by about 8 hours or so) and missed the last day of CUSEC. The most upsetting thing about that is not being to say goodbye to all the out-of-towners (especially the Waterloo folks, you know who you are). David Heinemeier Hansson cancelled his keynote yesterday, because his flight out of Seattle was cancelled due to weather. This meant that Chad Fowler would be putting together an ad-hoc presentation on Rails. I hope he took out his saxaphone.

I think the highlight of this year’s conference was Kathy Sierra’s keynote called Creating Passionate Users. She spoke of psychological flow states and a lot of tricks about how the mind and brain work. She was very engaging and got a lot of the audience participating and following along with her speech. Considering the topic was about how to keep people interested and gain their passion, her speech itself was a case-in-point. She mentioned a number of books about psychology and the brain such as Flow by Mihaly Csikszentmihalyi and O’Reilly’s Mind Hacks. I really want to pick these up and start reading them now.

Interestingly enough, I was having a conversation with Robert earlier where he mentioned a relative who went from electrical engineering into neuroscience and warned me that it _is_ possible, and not to be surprised if somehow I end up doing something similar. In which case I will probably mess with Stuart’s brain, perhaps as revenge for running his hands through my hair during Like A Virgin at the karaoke party.

One of the interesting things about passionate users is that apparently learning is the key to creating them. The product, whatever it may be, should have a learning curve. If the curve is too steep, you will assume that it’s too hard and give up. If the learning curve is too simple, then you won’t be challenged enough and give up. But if it’s just right, then you’ll achieve a state where you’re having fun. The product is engaging, and the you’re enjoying yourself. If you’re lucky, you’ll reach the flow state, which is where time just plain flies and the next thing you know it’s 10am the next day, and time to go to work/school. The best videogames are the ones that have mastered this aspect. You keep trying to get to the next level, and you lose yourself in the game.

Kathy mentioned that the flow state is a really important psychological phenomenon. If you don’t achieve the flow state, then you can start getting depressed. Just about all programmers are familiar with the flow state. It’s that zone you get into during a long coding session. Part of it is the feeling that you’re really close to success. That you’re just “one compile away” from a final, working build. This reminded me of an interview with Bram Cohen in Wired where he mentions that the best puzzles are those that make you think you’re really close to solving them. Like the Rubik’s Cube, which will dupe you into believing that you’re just one turn away from solving it, when in reality you should be trying to start over.

Having written some decidedly dry and boring technical guides on Unix and C programming, I’m inspired to try and spice them up a bit, maybe add a few faces, and see what happens.

Tags: , , , | 5 comments

AJAX & Eclipse Performance

Posted by Skrud at Friday, January 20th 2006 at 3:13pm

Chris Laffra pulled double-duty today, delivering the first seminar of the day on AJAX and later on presenting a seminar on Eclipse and its performance.

Chris’s bread and butter is actually working on Java runtime environments and Eclipse at IBM in Ottawa. However he also has a passion for AJAX, so he gave a brief overview of AJAX and its related technologies this morning.

The Eclipse Performance presentation was excellent. Chris spent a lot of time poking fun at Eclipse and it’s apparent (lack of) performance. He offered many quotes from various big names in Software Engineering about optimization and quality software, and explained a bit about where Eclipse goes wrong. One quote, from Don Knuth, was “Premature optimization is the root of all evil.” Chris disagrees, saying that waiting until the end of a project to optimize it, and writing code without thinking of optimization is precisely part of Eclipse’s performance problems.

One memorable slide of his presentation showed a screenshot from a first-person shooter. Games tend to run much better and faster than Eclipse does. So, he takes a look at the game. There is a rendering engine that takes care of rasterization and buffering and displaying all the 3D models and islands and everything on the screen. And there is an AI engine so that when you shoot a bullet at a character and the bullet collides the character, then the character knows it’s dead. Then he described the Eclipse way of doing things: “This character over there in the bushes is a pointer. And he has a pointer to every bullet on this game island… and to every bullet on every other island in the game…”

He also described Eclipse as an SUV that was so overloaded and bloated with stuff that, first of all, you couldn’t even see the Hummer under all the kludge and, secondly, it’s about to fall over. Splash screens are designed in order for you to have something to look at while the program takes its time to load. If you actually read all the small print on the splash screen, by the time you finish the program should be loaded. Wouldn’t it be cool if splash screens had a little poker game that you could play while waiting?

I think the message of this particular seminar was to warn us about not thinking about optimization earlier enough. He showed us some Eclipse profiling tools (that are now part of the Test and Performance Tools Platform) and explains that profiling, finding bottlenecks, and fixing - and doing these things early and often - will help us write better, faster code.

Tags: , , , | 1 comment

CUSEC - Dr. Grogono & Malleable Software

Posted by Skrud at Friday, January 20th 2006 at 2:22pm

Today’s first keynote speech was given by Concordia’s Dr. Peter Grogono. The topic was “Modular Concurrency.” He started with a metaphor about an air traffic control system, where a number of controllers would sit in a room looking at a blackboard in order to coordinate aircraft and schedules. However, as the airlines expanded, the room got bigger, and people would be sitting further and further back. Eventually they’d start using telescopes in order to view the blackboard. Following more expansions, the telescopes were no good anymore, and the proposed solution was: use bigger telescopes.

Object Oriented Programming has some fundamental flaws. All the languages (and there are more and more languages coming out all the time) are simply bigger telescopes trying to address a similar problem. Dr. Grogono began describing a new programming paradigm and language that he has been working on in collaboration with Brian Shearing (who gave a seminar at Concordia on a similar topic during the summer). Their paradigm is called Malleable Software.

Their idea is to organize code in cells that have certain capabilities which may or may not be concurrent. (A lot of the talk involved concurrency issues in modern programming languages such as Java and C++ and how they are - by default or by design - insecure. However I have not had the opportunity to deal with the concurrency headache, so I’ve not fallen victim to those insecurities yet). Cells can only exchange data, instead of calling operations on each other. This avoids the problem of having ugly coupling problems, where one method in one class may call another method in another class which modifies the data in the first class …. and ugliness continues.

Another problem the duo intend to solve involves the use of import, include, etc. statements that so often muck up modern programs. Imagine a huge project where one class may need a number of different functionalities and has to import every single dependent class or header file whether or not you actually use them … In Malleable Software, a Cell would be given the capabilities to do certain functions (such as the ability to generate random numbers) although I have no idea who or what gives the Cell these abilities. (I remember asking this question to Brian Shearing when he mentioned a similar concept, but I can’t remember the answer).

Once the audio recordings are out on the CUSEC website, you should listen to this keynote and see what you can get out of it. I think a lot of the malleable software concept is still being played with in its creators heads, so some stuff probably hasn’t been figured out yet.

Tags: , , , , | no comments

Older Entries