I have not yet looked at my feeds for the day yet, but I am going to guess that mine will be one of several reviews of the bFlex/BFusion training that took place in Bloomington, IN over the last couple days (Sept 6-7 2008).
For a while before we left for the LONG drive to Indiana (it took us 12 hours), I was beginning to wonder if it was worth it. 12 Hours is a long time, gas is expensive, hotels are expensive, had to take two days off of work just from driving, etc. Well, let me tell you, it was worth it. I had a blast, I learned a ton and I met some fantastic people. Also, I rode with 4 other people, so the gas and hotel were not that bad.
bFusionThe first day of the training was just for ColdFusion. There were 4 tracks (Pure Beginner, Beginner, Intermediate and Advanced). You can read about them here. I went to the advanced track, it was fantastic. I would have considered going to the intermediate class for the Mach-II primer, but I had already been to it at the cf.Objective() pre-conference session. I heard from those that attended that it was great.
Incidentally, my wife attended the Pure Beginner training with Matt Boles and said it was great. She had already been working with the CFWACK and Lynda.com videos, and the course was a great reinforcer of the content. She wished she had chosen to do the beginner class instead of the pure beginner, but she still got a lot out of it.
There were two sub-tracks of the Advanced CF track, so some hard decisions had to be made. In the end I went to the following sessions.
Bet you didn't know you could do that with ColdFusion – Elliott SprehnThis was an outstanding presentation, and Elliott is a great speaker. He was right, I did not know you could do any of the things that he mentioned. However, some it was too advanced and I still don't know about them ;). Some of the things he discussed were looping over dates, using closures, and dynamically adding/removing functions. It was very educational, and while I know I am not going to immediately use everything he discussed, I will definitely be using some of the techniques, and I am happy to know the others exist for when I get to that level.
ColdFusion Application Security - Adam LehmanAdam gave a great presentation on application security. Application security is a very difficult topic for which to create a good presentation. This is for 2 reasons. The first is that it is a HUGE topic. HUGE! There is no way to cover everything, not even in a day of training, let alone an hour. The second reason is that there are really two pieces to every security topic. What they exploit is, and how to implement a countermeasure. Adam's presentation was mostly the former. And this is to be expected in a one hour presentation. It is very tough to demonstrate an exploit and a counter measure in the same preso. I could probably fill an hour JUST on SQL injection or XSS.
Now, this is, in no way, a negative criticism of the presentation. I think he accomplished exactly what he said he wanted to, which was to raise awareness of security issues. By using OWASP's Top 10 exploits of 2007 list, he explained, one-by-one the exploits and (conceptually) how ColdFusion can deal with them.
I really enjoyed the presentation and only disagreed on one or two points that he made.
Refactoring in ColdFusion: from Procedural to OO - Dan WilsonDan Wilson is an outstanding speaker who has the ability to make complex topics understandable. His talk on refactoring procedural to OO was a great example of this ability. I managed to miss this talk twice at cf.Objective() and I am glad I was finally able to see it at bFusion. For anyone that needs to work with legacy projects (which is probably all of us), it is worth it.
The presentation began with a brief primer on OO concepts and then went on to discuss strategies for refactoring, and advice for both when, and when not to, consider refactoring.
Internals of Adobe ColdFusion Server - Elliott SprehnThis presentation started of excellently. It was interesting to see how ColdFusion works with the underlying Java. Unfortunately, I got called out shortly after the presentation began to answer a phone call and I did not make it back in before the presentation ended. I hope to be able to catch it again in the future.
Head First TDD w/MxUnit (hands on) - Adam HaskellThis presentation was the one I got the most out of at bFusion. I have been looking at Test-Driven Development for a while, but I have had so many questions and concerns about it that I always put it off.
Adam's presentation really helped me understand the purposes of TDD and about the overall benefits of the methodology. It also answered many of my questions about TDD. I am going to try using it on my next ColdBox project. I will blog about the results.
bFlexbFlex took place on Sunday and was the primary reason I came to the training in Indiana. I have been struggling with Flex for some time because I have had a hard time getting over the learning hump of Flex's event-driven architecture. Now, thanks to Mach-II training at cf.Objective, my Experience with ColdBox, and Lynda.com videos, I finally made it over that hump. The intermediate training track at bFlex was the next step. And it was a great one.
Unfortunately, I was only able to go to the first half of the Flex training. We had a 12 hour drive ahead of us and getting home at 5:00AM didn't appeal to the members of our party.
The first half of the training was worth while. Matt Boles is an amazing instructor who will capture your attention and refuse to give it back. His teaching style made the concept we were discussing very clear and concise. He mostly talked to use about managing data at the client and how to handle filtering and sorting in Flex. We also more deeply examined the ArrayCollection class and how powerful it is. I was very impressed and I am excited to dig deeper.
The last part of the morning brought a surprise lecture on extending Flex components with Mike Labriola. Mike is also an outstanding speaker and the concepts he explained were not only indispensable knowledge, but also things that I would never have even thought to look into at that level. His explanations of how component inheritance works really made it clear, and insights into content and non-content children was eye-opening. I'm not sure I would have ever even realized that a component had children other than those I defined.
The bFlex/bFusion OrganizersBob Flynn and company are incredible individuals for having put this on. It is inspiring to see such dedicated people putting their efforts into something like this. It is pretty obvious that they not only believe in these products, but they also believe in the good the community can do with them.
One thing I was especially impressed by were the volunteer efforts made by the organizers. Not only did they put this whole thing together on their own time, but they forwent attending the event and training so that we could. I talked to a couple of the volunteers who missed out on attending the training because they were doing things like making sure our food arrived on time and helping attendees with questions and concerns. What generous people. So I would like to extend a thank you to the volunteers of the event.
So, all said, bFlex/bFusion was incredible. If you have a chance to go next year, take it. I had my reservations about the trip, and after deciding to go anyway, I regret none of it. The training, accommodations, food, transportation, staff, and instructors were all grade-A. I would not change a thing.