Mad, Beautiful Ideas
Boise Code Camp 2011

A few weekends ago, on February 26th was the fifth Boise Code Camp1 held at the Boise State University campus. It is the third Code Camp in Boise I have attended, and sadly it was reduced to a single day because they felt they didn't have enough submissions. As I didn't submit a talk this year, I suppose I'm at least partially to blame for that, but either way it was still a solid event.

There was substantially less JavaScript talk this year than in years past, the only talk being strictly on the subject was an introductory jQuery talk. Of course, had I submitted a talk, it would have been an introductory talk on YUI3, meaning that we wouldn't have had much in the way of advanced JavaScript topics. On the one hand, there is still definitely a big audience for introductory JavaScript concepts in the greater developer community, but I'd love to do more advanced talks at this sort of event.

But in spite of the small number of JavaScript talks, there was still plenty of web talks at the conference this year, though the first talk I went to was one attempting to show the basics of what a 'Monad' is in Functional Programming2. I say attempted because I had a hard time drawing much from the talk, though that might be because it was the first talk of the day, though I think it's more that describing Monads is generally made more difficult than it ought to be.

It did however occur to me, that, at the most basic level, a Monad can be described as a collection containing a homogeneous collection of data, whose methods are designed to support chaining commands together into a pipeline. Incidentally, this is very much how working with DOM nodes in jQuery or YUI3 works, though I'm pretty sure either library wouldn't describe themselves as 'Monadic', and it's probably not wholly accurate, but I think it provides a working definition to help get someone started on investigating this concept.

Second hour, I attended Glenn Block's3 talk on WCF and REST, which was really interesting. I had used WCF in .NET 3.5, and it was an improvement over the older web-service mechanisms that .NET provided for building web services. However, the new WCF is amazingly customizable. Content Negotiation is nearly trivial, Glenn showing off an easy way to generate vCard files based on the Accept headers sent from the client. Luckily there is a reasonable parallel of this talk at MVC Conf4 this year5. But having recently done up a simple RESTful service in ASP.NET MVC, the tooling that WCF provides is really interesting to me, plus it's Open Source and available now6.

After lunch, I attended a talk about F# on the Web given by Ryan Riley7. Ryan has built a Sinatra8 from Ruby clone in F#, which reminded me a bit of Express.js9 from Node.js, in that the app is it's own server and it's based on routing paths to commands. F#, particularly with it's asynchronous processing, allows for very clean code for spec'ing out a web service. It's still a work in progress, but definitely something to at least watch. Implied callbacks in async processing is pretty cool.

I attended Ole Dam's Leadership talk, which was really inspiring in, but the slides don't seem to be posted (unfortunately), and it's hard to describe. The short version is that becoming a good leader requires work and care, and most of the leadership advice available is pretty terrible. I won't say much more about it, but Ole apparently gives these talks all over the place and for a relatively low cash outlay, so if given the opportunity to hear him talk, I'd suggest taking advantage.

Finally, I attended a talk on web performance measurements, talking about the metrics that Google uses. They have some JS on their homepage that measures how long it takes for things like image or script loading to being and end and reports that back to the server. It was interesting, but I think I preferred what the Flickr guys mention in their YUIConf 2011 talk10, in that they measure only what they care about, which in Flickr's case is when the image is loaded and when the Scripts are loaded. They just don't care about the rest of the stuff. I was expecting more out of this talk that I got, since it was a really high-level look at Google's JavaScript without even much of a discussion about how to improve those numbers or anything else. I am, however, excited about the web timing specification11 in from the of W3C and implemented in Internet Explorer 9. That should be really interesting to have.

Overall, the event wasn't as valuable to me this year as in years past, but it was still an excellent event, particularly for one that is free to attendees. If nothing else, it's a great opportunity to meet up with people that I only see once a year or so.

  1. http://boisecodecamp.org/
  2. https://secure.wikimedia.org/wikipedia/en/wiki/Monad_%28functional_programming%29
  3. http://blogs.msdn.com/b/gblock/
  4. http://www.mvcconf.com/
  5. http://channel9.msdn.com/Series/mvcConf/mvcConf-2-Glenn-Block-Take-some-REST-with-WCF
  6. http://wcf.codeplex.com/
  7. http://wizardsofsmart.net/
  8. https://secure.wikimedia.org/wikipedia/en/wiki/Sinatra_%28software%29
  9. http://expressjs.com/
  10. http://developer.yahoo.com/yui/theater/video.php?v=yuiconf2010-harmes
  11. http://dev.w3.org/2006/webapi/WebTiming/