There were eight speakers and each topic was interesting. I'll definitely try to go again next year. I've already added some of the speakers to my RSS fire hose.
Joel started out with a great exploration of the software design tug-of-war between simplicity and power. He examined several excruciating techniques for interrupting users with complicated questions that they're not qualified to answer.
He also derided the "keep it simple" approach that many software companies take when avoiding new features because new features lead to more revenue. This was a pretty pointed critique of 37signals' approach to building software. There are always reasonable features that could be added that would provide real value to the user.
Bottom line, he suggests that you add features that give users power over what they care about and eliminate (or hide) all other features that may interrupt the user with something they don't care about.
He also showed a pretty hilarious video they made at FogCreek, where he's shown as the world's most insulting boss and Jeff Atwood likes playing with his cat.
Mark Harrison (Pixar) - Python
Mark introduced everyone to a little bit of Python by showing a one-page spelling checker written by Peter Norvig. He described the concept of elegance in code with a little definition: "when it looks like there isn't enough code to do the task".
This talk was pretty technical and went long, but was a great exploration of how terse and still understandable Python can get. However, I think some of the audience were getting a little tired toward the end of the code walk-through.
Someone asked a great question: "When does elegance stop and obfuscated begin?" Mark agreed that the example is more terse than is standard for Python.
Apparently Pixar embeds Python into its tools to do things that used to be done by linking specialized C libraries.
Rory Blythe - iPhone Development
It's interesting to see a talk about iPhone development by a person who doesn't work for Apple. He said some things that would be blasphemous at the Fruit Factory. Anyway, it was a good talk, but it was a basic "Here's the iPhone" talk.
He did get into MonoTouch at the end, which was very cool and certainly raised some eyebrows about how much less code it took to accomplish the same stuff than Objective-C.
I think Rory needs to go get DemoMonkey and stop typing so much. :-)
Also, here's a link to the Secrets PrefPane.
Joel Spolsky - FogBugzz
Joel took the stage again to pitch the newest version of FogBugz, which I have to say is very cool. It's got an extensive set of plugins and apparently, 7.1 now runs on linux under Mono. He showed a pretty cool commercial plugin called Balsamiq Mockups, which is integrated with FogBugz.
He also showed the newest extension to the FogBugz family: Kiln. Kiln is basically a hosted Mercurial infrastructure that hooks into FogBugz on Demand (the hosted version) and provides both DVCS code hosting as well as code review support.
Scott Hanselman - Microsoft
Scott talked about ASP.NET MVC as well as the new version of Visual Studio 2010. I was pleasantly surprised and it made me want to go check out the great work that Microsoft has done in this space. Also, that ASP.NET MVC is open source (albeit under a Microsoft open source license).
It definitely feels like they've taken a lot of the great ideas from things like Ruby on Rails and integrated them into ASP.NET MVC (really, they need a better name), especially RoR's approach to convention over configuration. The IDE adapted itself very nicely to just dropping in new templating code.
He also showed a demo of something called "T4MVC.cs", which basically walked around the solution looking for "magic strings" and replacing them with symbols that were then picked up by IntelliSense. Very cool.
I feel like Scott was the best speaker at this conference. He had a fantastic blend of humor, showmanship, and a genuine passion for what he's currently evangelizing. He also showed a distinctly non-Microsoft interest in eliciting feedback from the audience about how ASP.NET MVC compares to other leading web frameworks out in the open source world.
There's also a pretty nifty way to get several common web apps up and running quickly on the Microsoft platform by using the Microsoft Web Platform Installer.
He also pointed out NerdDinner.com, whose tagline is "Organizing the world's nerds and helping them eat in packs."
Jeff took the stage to talk about StackOverflow itself and the hardware and software it runs on as well as the monitoring tools that they use.
Apart from the entire Microsoft ASP.NET stack, some of the things they use: Cacti, CruiseControl.NET, and HAProxy.
He also recommended a book that I'm already half-way through: Coders at Work by Peter Seibel. I definitely agree. Each of the interviews in this book is excellent and each has made me think about a new aspect of how I go about my job.
Jeff advocated for one of my favorite things for large-scale web apps, which is comprehensive logging, gathering, and inspection for errors. He feels that no serious web app should be built until this is in place. I definitely agree.
He also mentioned the High Scalability Blog.
Daniel Rocha - Qt
Daniel gave a talk about Qt, which is a cross-platform C++ GUI toolkit that targets both desktop and mobile platforms (Linux, Windows, Mac, Win CE, Symbian, Maemo). It's a technological marvel and seems to have a lot of utility.
It looks pretty cool, but it smacks of the general problem of building a cross-platform UI toolkit, which is that it has to make sacrifices which are not generally acceptable to end users. It's all well and good to have a single codebase that can port to multiple platforms, but it's likely that it won't be accepted by folks who expect things to work for their platform.
If the iPhone and Mac are any indication, event the slightest deviation from accepted norms is a pebble in your shoe.
Daniel gave away a couple of Nokia handsets in his segment.
James Yum - Google Android
James was filling in for someone else who had been scheduled to give the Android talk, and I think he did a great job on short notice. However, I have to question the original speaker's choice of topics, which was essentially "Pitfalls with Threading in Android".
I'm used to iPhone demos, which are all about making it seem that the iPhone SDK is so easy a gibbering idiot could make an app for the phone that sells a gazillion copies and make him rich. Apple rarely calls out difficulties in developing for their platforms, and if they do, they hide it within a whiz-bang demo. Everything that comes out of the Fruit Factory is presented as milk and honey.
It's maybe just a cultural difference, but I can't understand why Google would decide to give a talk about how difficult it is to develop for Android.
Unfortunately, I think this was the weakest of the talks this day.
Yehuda ended the day with a fantastic talk about jQuery. It seems like it's the leading JavaScript framework these days. Even VS.NET MVC will be bundling jQuery in the upcoming version.
I like the trend towards "unobtrusive JavaScript" and jQuery certainly fits the bill. It seems to be the winner of "Survivor: JavaScript Framework".