StackOverflow DevDays Toronto
Joel Spolsky (and sometimes Jeff Atwood) have been travelling around holding conferences called “StackOverflow DevDays” in different cities. If you don’t know what StackOverflow is you should stop reading this and check it out right now. StackOverflow is a website for developers to ask, answer and find the answers for questions they might have. Think experts-exchange minus everything that sucks about it. They even started up a sister site called ServerFault for system administrators.
The closest DevDays for me to attend was in Toronto and for $100 it was something I didn’t want to pass up. The topic lineup was incredibly vague, things like “Python” which as you would guess was a talk on Python but then there were topics like “Ruby” which was actually a talk on meta-programming and another talk simply titled “University of Toronto” which was actually “What we actually know about software development and why we believe it’s true.”
The first talk was from Joel Spolsky where he talked about having users make decisions instead of the developer. He made this one story up how when you ask the user a question you are assuming that your software is the most important thing the user has to consider right now. Shouldn’t the developer know the right answer most of the time? When to upgrade? How many recent items to show? The story he told was about prompting a user to update to the newest version of your software when it loads. What if the user was using Quickbooks and needed to get $100k to bribe someone as quick as possible but instead of being able to get at their money they get a dialog asking to upgrade? I found Joel to be a very good speaker but a lot of the stuff he talked about in the keynote was essentially in all of his existing essays on his site at http://www.joelonsoftware.com. A lot of the keynote was just bits from Choices=Headaches, Simplicity and Elegance.
The 2nd talk was from Barry Gervin and Joey Devilla about ASP.NET MVC. Essentially this talk was nothing more than coding a runpee.com clone on stage. It definitely did not go over very well as lots of people walked out as it dragged on. Twitter was very active during this presentation. Watching people code on stage turns out to be a very boring experience. The slides from the talk were posted online at slideshare. Instead of reading the slides I suggest just heading over to ASP.NET MVC’s site or check out Microsoft’s tutorial.
The 3rd talk was Jordan Baker talking about the Python programming language. He touched on a few reasons why Python is worth checking out and showed a few code samples. Most of this talk ended up to be about the 21 line spell checker that Peter Norvig wrote. It was some what interesting but I think it’s easier to digest at your pace. You can check out Peter Norvig’s source code/essay along with implementations in a lot of different languages on Peter’s site.
Next up was Joel Spolsky again, this time talking about FogBugz. I have to admin that I was incredibly not excited about this talk. I quite like using JIRA for our issue tracking and didn’t think FogBugz would offer much on top of that. Turns out I was quite wrong. FogBugz has issue tracking, project planning, evidence-based scheduling, wiki support and awesome plugin support. The part that I thought was pretty cool is how they are adding in source control to the rest of FogBugz. Instead of writing their own they have implemented Mercurial support with a great source browser and really nifty code review support. This new product/plugin is called Kiln and they have an open beta if you want to try it out. I think for any software companies starting out FogBugz is definitely worth a look. When I got to the conference they were handing out FogBugz books but I didn’t take one thinking I had no desire to see anything in it. After this presentation I regret not grabbing one of the books.
That pretty much covered the morning and by this time I was disappointed about the whole conference. The first talk after lunch didn’t change my mind. Ralph Whitbeck had a talk on jQuery (slides available) His talk consisted of covering jQuery’s core concepts, a short API overview and a brief bit on their huge plugin library. Most of this talk was going over tiny code examples which also turns out to not be very exciting. My preference would be to learn from the jQuery tutorials on their site.
2 talks left and thankfully they both made the conference totally worth it. Greg Wilson (blog, twitter, slides from the presentation) from the University of Toronto had an amazing presentation on what we know about software development and why we believe it’s true. I highly recommend checking out his slides while listening to the last 45 minutes of his talk (I sadly didn’t start recording until slide 5). [Edit: I found the full talk which you can grab here] The first 5 slides he talks about the history of scurvy and how the word “limey” came to be (check out the wikipedia entry). He talked about how there is a huge gap between academia and industry software developers. Most academics have never worked in startups or shipped version 2 of any software. What Greg wants to accomplish is knowledge transfer (academia to industry), to come up with a collection of truths that industry can use, and base our arguments on facts. He talked about how a lot of claims in computer science are unproven, not necessarily wrong, just not proven. Times are changing as there has been a growing emphasis on empirical studies.
He mentioned how he started keeping a log book keeping track of what he is working on and how long he estimates it will take. He convinced me that I need to start doing this. Once you start, estimation will get better and it will become a great way to track performance.
The last talk was from Reginald Braithwaite on meta-linguistic programming with examples in Ruby. The slides are available on flickr. I quite liked his analogy of saying that code to a compiler is the same as sheet music to an instrument (or something like that). He showed a quote from Winston Churchhill:
“At a party, a dowager rubuked him for his inebriation: ‘Winston, you are disgracefully drunk!’ He steadied himself and glared at her: ‘And you, Madam, are ugly. But in the morning, I shall be sober’”
Reginald described 2 types of problems, ugly and drunk. Ugly problems you have to wait for someone else to solve and drunk problems are ones you can solve yourself. “Do not accept ugly problems, turn them into drunk problems. Nothing is immutable.” Along those lines, he showed some slides on how he wanted extension methods in Ruby but they didn’t exist yet. Instead of waiting for/if Ruby to ever add them he turned the problem into a drunk problem and added the ability to do extension methods in Ruby himself.
He ended on talking about find new programming semantics so we can write the code the way we want to. A way to explain it to other people and have the important bits standout. I think this is what he was referring to about “abstractioneering.”
There are a bunch of mini-reviews on the conference at StackOverflow. The last 2 presentations made it all worth while. Joel asked at the end of the conference if anyone would buy a ticket next year if they came back to Toronto. Everyone put their hand up that I could see. I’m hoping that this means that this will become a yearly event. If I’m relatively close I’ll be heading back next year.
2 Comments
Comments RSS TrackBack Identifier URI
Leave a comment
[...] last weekend I went to Toronto for a one-day StackOverflow DevDays conference (my review of the conference) and to visit Sean for the weekend. We ended up playing quite a bit of Neuroshima Hex and also went [...]
Thank you for your very kind words!