It's Sunday afternoon after the best cf.Objective() ever and I'm looking over my notes to offer some thoughts on the last three days.
Before I get to the content, I first want to call out the location as being awesome! The brand new Radisson Blu had some of the friendliest and more helpful staff I've encountered at a hotel. The food for the conference was amazing: terrific hot breakfast every morning and a delicious lunch buffet too. Possibly the best conference food I've ever had. In the evenings, my wife and I dined in the Fire Lake restaurant at the hotel - the food was so good, we didn't want to go anywhere else! Great selection of local beer on tap too. The hotel itself has a very nice modern feel to it, with excellent facilities and big, well-equipped room. I hope everything works out behind the scenes so that this is a candidate location for next year.
After lunch, I skipped Adobe's general session and just hung out chatting with folks in the sponsor / vendor area. There seemed to be a steady stream of people leaving the general session and joining the throng in the hallway which didn't really bode well. Pretty much everyone I spoke to said that Adobe's presentation was aimed at IT managers, not developers, and there was a general sense of disappointment with the content. So, as expected, it was a marketing spiel and not a very exciting one at that, it seems.
Then I decided to go to Mark's "Top 10 Developer Features" in Railo. We're still on 3.3 at World Singles and this talk just made me more excited about upgrading to 4.1! Railo really are working hard to improve the language and make developers more productive.
My second session was well-attended, covering how Object-Relational Mapping breaks down because of a fundamental impedance mismatch between the object model and the relational model. I offerred that a document-based store, such as MongoDB, alleviates the mapping problems (and of course introduces other tradeoffs). I had a minor demo fail (and jokingly blamed it on Windows... when I later rebooted, the demo worked just fine without any other changes... no comment!). I was pleased to get so many questions from the audience and continued Q&A in the hallway after the talk for almost an hour and a half, missing the next session!
Kurt Wiersma's two hour deep dive into AngularJS and Bootstrap was excellent! The high point of the conference for me. Kurt maintained a great pace and flow through the material and AngularJS itself is very slick. If you missed his talk, make sure you track down his slide deck after the conference! Highlights for me included dependency injection, two-way data binding, built-in support for testing / testability, and directives (UI components that are invoked like custom tags).
Scott Stroz entertained us immensely with a look at Groovy and Grails and what he likes about it, as well as how it's made him a better CFML developer (because now he has been exposed to more advanced techniques from another language). Rakshith from Adobe was in the front row and Scott ragged on him quite a bit when he was comparing feature after feature to ColdFusion and showing where Groovy was better. It wasn't helped by some people in the audience (yes, including me) pointing out that Railo already has some of these features from Groovy, that ColdFusion is missing!
After lunch, I attended Railo's general session and ended sat between Rakshith and a very sickly-sounding Dave Ferguson (there seemed to be a lot of illness in the attendees this year - including Elliott Sprehn losing his voice so badly he had to cancel his talk). Again, a barrage of great CFML language features (making me even more determined to upgrade!), as well as a sneak peek at a new monitoring tool (from one of Railo's investors) that will show cflock times / failures, mails sent, query information etc all down to the page template, tag, line number. There will be both a free version and a commercial version. Sean Shroeder from Blue River / Mura CMS took the stage to talk about the Open CFML Foundation which is working to spread the word about CFML and some of its open source projects outside the CFML community, as well as working on an "academy" for teaching new developers about CFML. It all looked very exciting and I think a lot of attendees will be taking a serious look at Railo after this.
I decided to attend Dave Ferguson's SQL skills / performance talk which covered some ground I already knew and a lot of ground that I wasn't aware of, including a lot of the internal machinery around query plans and how they are cached and reused. Great material!
Finally it was my Humongous MongoDB session where I showed how to set up a replica set live and how to create a sharded cluster live. I also covered the concepts of write concern and read preference, and touched on both map/reduce and the built-in aggregation framework as examples of dealing with complex queries on very large data sets. The talk ran long but almost everyone stayed to the end, with plenty of questions about MongoDB at scale in production.
Due to the fabulous food at the Fire Lake restaurant, I lost track of time and was late to the BOF I was supposed to be hosting. Luckily Kris Korsmo had stepped up a while back to co-host and was holding down the fort until I arrived. Great discussions about test-driven development, continuous integration, Git workflows, deployment strategies, automation, bug tracking and so on. I got the impression that the biggest obstacle for most CFML developers is some mentoring on how to get started down this path. One problem is that a lot of this material is extremely well-documented but CFML developers often don't seem comfortable reading outside their community and want a CF-specific version created (which I find very frustrating - stop being afraid of looking at other language websites!)
Brad Wood kicked off the day with a talk about Backbone.js and Underscore for templating. After Kurt's AngularJS talk, I found this a bit scrappy and the code examples looked rather disorganized and hackish - but it was pointed out to me by several people that Backbone is "just" a library and doesn't set up a framework of best practices in the way that AngularJS does.
Brad Wood's second talk of the day with about the benefits of Agile software lifecycles. I think he did an excellent job contrasting traditional software development with Scrum and Kanban and explaining the principles behind high-quality, iterative software delivery. One of the best talks of the conference!
And then Jared was thanking everyone for attending, speaking, sponsoring and organizing, and it was all over until 2014!
If you were there and we got to hang out, it was great to see you! If you were there and we didn't get to hang out, sorry, it's always difficult to make contact with everyone. If you weren't there, well you missed out on a great conference and a lot of terrific content...