Why should you go to conferences?

With all of the CFUnited buzz going on this week, I figured it made a nice segway to something I have been giving some thought to lately. That is the question of “why attend these ColdFusion [or insert your own technology here] conferences at all?”

For those of us that stay somewhat active in the community the answer is fairly obvious. It is a great opportunity to sit and chat with some of the people you may have worked with on projects, helped out sometime, or been helped by over the years. It is also a chance to see first hand some cutting edge products, projects, and methodolgies you may have read about but haven’t gotten the opportunity to work with. It is also a chance to get some face time with potential clients and such. These things are a given.

However, this blog post is more targeted to those that just come to the office, punch the clock, slop out some code, punch out and drive home to turn on the TV. For developers that blog or read this blog regularly, it is easy to forget that outside of our little myopic view of the ColdFusion world where everyone seems to be pushing limits and working on bleeding edge technology, there are tens of thousands of developers that are just like I described above. I have worked with some that simply view their programming as a “job” that is nothing more than a means to an end, with just a general apathy about their career. Not only have I worked with some, I used to be that guy! That said – and I know that what I am about to say will sound overdramatic – but I honestly mean it when I say to those developers:

Attending conferences can be life changing!

If you are a developer that fits the description above, I urge you to attend one of the big conferences such as CFUnited. Why? I will share my personal experience.

I am unfortunately not attending CFUnited this year, but have done so the previous 2 years. Before the conference in 2005, I was in a complete and utter programming slump and had been for a few years. I was just banging out sub-par code and punching the clock as I described above with no passion at all about what I was doing. I didn’t follow any blogs, email lists, etc., and was fairly oblivious as to what was going on in the ColdFusion world. In fact, I had been hanging around a .Net developer that almost had me convinced that ColdFusion was dead and I needed to get out while I could. I went to CFUnited that year because I thought it would be pretty fun to go to DC, and heck… my employer was paying for it, so why not?  What I returned home with was priceless.

In the Monday and Tuesday prior to the official conference kick off, I had the opportunity to take pre-conference classes. Day one was Hal Helms‘ “Domain Model” class followed by Joe Rinehart‘s “Forms and Beans” – I think that was the name anyway – on day 2. I had never seen OOP concepts before and was truly blown away. It was like a light switch turned on that Monday in Hal’s class as I saw what a big world there really was out there that I had been totally unaware of! In some respects, I almost felt like Neo when he began to see the Matrix, for lack of a better analogy. Suddenly I was exposed to all the exciting stuff happening in the ColdFusion community that had been hidden due to my self-imposed blinders. The second day Joe walked through converting a legacy application strewn with inline cfquery calls to one that used Bean/DAO/Gateway objects and I was so aware at how far the world had moved forward while I had been sitting still. With my head spinning from the pre-conference classes I eagerly went into the conference and was exposed to concept after concept that I had never seen before, many of which are now routine components/skills that I carry in my tool box.

When I got home I just wanted to spread the gospel about how bad ass ColdFusion is, and couldn’t wait to start my next project. This was about the time that Matt Woodward and Peter Farrell had taken over the Mach-II project and I began using Mach-II 1.10. It was an amazing contrast how much fun my career had just become. I was soaking up every blog and every podcast that I could and learning at a dramatic pace after sitting stagnant for so long. It was in these next few months that I teamed up with Aaron Lynch and we incorporated World Wild Web Systems Inc under which we built InstantSpot , where this and now about 550 other blogs reside! I am still as fired up about what I do for a living as I was when I returned home on July 3, 2005, and we are still steaming along with InstantSpot. Last year I took over as manager of the Dallas/Ft. Worth ColdFusion User Group, and I am now part of Team Mach-II. Looking back a few short years ago, that would have seemed like a laughable secnario.

I can truly say that attending CFUnited that year was a true turning point in my life. If you are one of those developers in the shadows that basically just gets by year after year with no joy in it, *you* are the ideal person to go to a conference. Hopefully I will see you there next time!

Adobe Keynote at CFUnited

Today was a great start to the conference.  After a brief welcome session by Michael Smith, it was Adobe’s turn to take the floor and give their keynote to start things off.  Ben Forta took the stage first and gave a mini-State of ColdFusion, followed by the official announcement (if you weren’t reading blogs at 12:01 last night) of the release of ColdFusion 7.02, Flex 2, and Flash 9.  He then spent a few minutes detailing the highlights of Flex 2, particularly in how it interacts with ColdFusion and how it is superior to its predecessor Flex 1.  And then.. the moment the Flex development community had been waiting for… the price!  Ben prefaced the price announcement by reminding the audience that Adobe has made assurances that it would be under $1000.00.  After a dramatic pause, he went to the next slide triumphantly and unveiled:

$999!

This was met with an obviously underwhelming response as Ben looked on with a grin.  Then in a moment reminiscent of Let’s Make a Deal, Ben went slide by slide at the urging of the audience whittling the price down $100 at a time until it reached:

$499!

This was met with a much more positive response from the audience…as I thought  “Did Ben just pull a used car dealer tactic on us?” :)

After the price announcement, Ben dove a little further into Flex and proceeded to demo some features, such as the Flex Application Wizard, which allows a developer to create a functional database driven Flex application in just a matter of a few clicks.  This is a pretty remarkable tool in that it creates a well formed “best-practices-for-now” MVC sample that immediately gives a new developer a good example to build their Flex applications from, including the creation of Bean and DAO components and the CFCs that Flex actually talks to.  The speed and effortlessness to make that happen is certainly impressive.

Although Ben’s presentation was rock-solid as always, I couldn’t help but recall Tim Buntel and Ben on stage the year before and I briefly wondered if Tim was missing being a part of the show this year.  Little did I know…

At the end of Ben’s presentation, he brought Jason Delmore to the stage, who is Tim Buntel’s replacement as the ColdFusion Product Manager.  Jason discussed the things to look forward to in Scorpio which as many know is the product that will eventually become ColdFusion 8.  He stated that he could not speak in great detail about much of the current development efforts, but he would offer some hints to the future.  He then very ambiguously offered up:

  • More Platforms
  • More Development Tools
  • Leveraging other Adobe Technologies

(shocking!)

One of the only real specifics he shared was a very cool feature, CFPDFFORM.  This tag will allow developers to populate PDF forms directly from their applications.  It also allows extraction of data from PDF forms.  He showed a working demo.  I did’t get all the attributes jotted down, but it looked much like this:

<cfpdfform>
<cfpdfformparam name=”foo” value=”bar” />
<cfpdfformparam name=”morefoo” value=”morebar” />
<cfpdfformparam name=”mostfoo” value=”mostbar” />
</cfpdfform>

Jason also announced the ability to create Breeze presentations on the fly and showed a simple dmonstration of this ability.  The new tag is:

<cfpresentation attributes-a-plenty=”" />

He made the comment that with CFPRESENTATION, there is no need to make screen captures ever again. It will be interesting to see how that plays out in the real world.

Then as things were winding down and Ben appeared to be wrapping up, the doors burst open and two Adobe employees were dragging a blindfolded guy to the stage who was yelling about how there must have been a mistake as his birthday was last month.  They pulled off the blindfold, slapped an Adobe shirt on him and the audience then welcomed Tim Buntel.  After a few moments of explaining how it came to be, Tim announced that he is the new ColdFusion Senior Product Marketing Manager.  Tim has a great energy and is very passionate about ColdFusion.  It is great to see that he is back on the team.

I have so many notes to translate to my blog from the day, but that about wraps my take on the Adobe keynote.

CFUnited update

Today was my second and last day of pre-conference classes, and the conference officially kicks into high gear tomorrow.  I just wanted to give a quick update on what my experience has been so far.  This will certainly be a long post so I will bold the main topics so you can skim over any parts you are not interested in.

ME BITCHING
(you are really going to read this part?)  Just to get it out of the way, the travel experience getting here was absolutely unbelievable.  I was supposed to land at 9pm, but the airport was entirely closed for a couple of hours Sunday night.  We ended up sitting on a runway in Norfolk, VA with the engines off for a couple of hours waiting for things to open back up so we could make the 150 mile trip.  Upon reopening the airport, all of those planes that had been holding for hours on end arrived at the same time… a little after midnight.  I have rarely experienced the kind of chaos that I did in baggage claim that night.  In hindsight though, if I had to pick one highlight from the evening, it would have to be Thrifty Car Rental giving away my reserved car (“You were supposed to be here 4 hours ago.”).  After trying my hardest not to completely lose my cool, I convinced the guy behind the counter to give me one that was awaiting an oil change.  The people in line behind me were up a creek.

So, since arriving at the hotel at 3:00am that night….

EVERYTHING IS AWESOME
The first two days of classes have been really enjoyable. I have gotten to match a few faces to names, and have seen a few familiar ones as well. There have been probably close to 100 people here taking the pre-conference classes, but starting around lunch today many more people have started showing up… mostly popping up near the bar for some reason. At 8:30am tomorrow Adobe will give the opening keynote and the sessions will kick off. I will be starting with a 3 hour session “ColdFusion/Flex Coding Kitchen” which I am really looking forward to given my underwhelming amount of Flex knowledge.

PRE-CONFERENCE CLASSES
Day 1 -
Yesterday  I attended the “Testing ColdFusion” class from John Paul Ashenfelter.  He shared his presentation with the creator of cfcUnit, Paul Kenney, who gave a nice demonstration of how to go about unit testing your code using cfcUnit.  Until I really saw it in practice, I always understood how unit testing could be of value, but never had a good plan for implementing it in my development cycle. I actually put what I learned into practice immediately last night in the hotel room and found a bug in one of my components that is currently under development.  Very good stuff.

In addition to unit testing, John covered “site testing” from the perspective of the browser. He introduced us to Selenium, which is an extremely impressive testing tool. Using a plugin for Firefox, you can click through a site, and record things that you wish to test for (eg. “the title of this page should be ‘Dave Shuck’”). This will build a script…well it’s actually just HTML tables… that Selenium can then use to traverse through the test as a user and report errors. This is an extremely valuable tool that I will certainly be implementing quickly.

The third section of the class revolved around systems level testing, specifically with a demonstration of Grinder emulating the load of 100 users on his site. The only other load testing tool I have worked with previously was OpenSTA, and I found Grinder to be much more intuitive and helpful

If anyone is interested I will post my notes from this class.

Day 2 – Today I took Rob Gonda’s “Ajax for ColdFusion” class. In case you are not aware, he is the creator of AjaxCFC, which is a nicely implemented Ajax framework available for ColdFusion. About 30 people attended the sold out class, and Rob shared a ton of his knowledge of the world of Ajax. After a nice introduction about the basics of Ajax and a demonstration of the most simple XMLHttpRequest transaction that underlies the majority of Ajax frameworks, we went over code samples of a number Ajax frameworks and JavaScript libraries, including AjaxCFC, DOJO, JSON, Prototype, and Spry. I picked up a number of goodies and good ideas that I can immediately start dropping into existing code to quickly improve the user experience. Considering that I have been working with AjaxCFC about a week or two, it was nice to be able to see the creator of it demonstrating its use, and I picked up a couple of things that I could be doing more gracefully. He finished up the class by demonstrating the ModelGlue and MachII support that it now offers so. Even though Rob is a he is a strong advocate of Unity (not uncommon at this conference!), he actually walked through the MachII pieces as well. :)

So far so good. I will give an update after the official Day 1.

Off to CFUnited

I am leaving DFW for DC this afternoon.   If anyone is looking for me, I will be staying in the conference hotel tonight through Friday night.  Tomorrow I will be taking the “Testing ColdFusion” class from John Paul Ashenfelter, and  Rob Gonda’s “Ajax Intensive for ColdFusion Developers” on Tuesday, followed by the rest of the week’s goodness.   Hope to see some of you there!

Picked my pre-CFUnited classes

This year, CFUnited will be running 4 days (Wednesday through Saturday) as opposed to 3 Days (Wednesday through Friday) in ’05.   In addition to the conference last year, I attended the pre-conference classes on Monday and Tuesday… man, what a great opportunity that was!  I took two one-day classes, “Designing and Developing OO Applications with CFCs” by Hal Helms, and “Forms and Beans: Refactoring Existing ColdFusion Using Objects” by Joe Rinehart.    Those two classes gave me a complete re-awakening in my development career and have really inspired me towards notable growth since that time.

So this year, since I will be making the trip to DC, I decided to make the most of it and signed up for the pre-conference classes again.  Once again there is a great array of choices.  The ones I chose are highlighted in yellow:

Monday:

  • Leader of the Pack (strategies for building better software)
    Simon Horwith – Monday 6/26
  • Fundamentals of Relational Database
    Kurtis D. Leatham – Monday 6/26
  • ColdFusion Server Administration: JRun J2EE Deployment
    Adam Wayne Lehman – Monday 6/26
  • Testing ColdFusion
    John Paul Ashenfelter – Monday 6/26

Tuesday:

  • Ajax intensive for ColdFusion Developers
    Rob Gonda – Tuesday 6/27
  • XML, XPath, and XSLT for ColdFusion Developers
    Jeff Peters – Tuesday 6/27
  • Domain Modeling
    Hal Helms – Tuesday 6/27
  • Beyond Basic SQL for CF
    Nate Nelson – Tuesday 6/27

As for why I chose the ones I did.  here are the specific descriptions of both:

  • Testing ColdFusion  – Learn how to make your ColdFusion software more robust, your QA process more reliable, and your development able to better support changes through unit, regression, functional, and load testing. We’ll start with an overview of the testing process and jump right into tools to help your development process immediately — CF(C)unit to test your ColdFusion code and dbUnit for resetting the database to a known state to support testing from a known good state. We’ll spend a good bit of time on automated functional testing with Selenium to avoid all the repetitive testing tasks you are probably doing by hand. Load testing tools will be on the list as well — so we can help find those nasty race conditions and have some confidence about what kind of load the site can support. Finally, we’ll pull it all together with automated tools to build, test, and release your software on a regular basis so you can spend more time coding and less time worrying.

    Note: All of the software used in this class is open source *and* cross platform — you’ll go home with everything you need to start implementing the testing tools that are relevant to you immediately.

  • Ajax intensive for ColdFusion Developers – Ajax, Web 2.0, RIAs, single-page-applications are just a few buzzwords that every developer needs to know in 2006. Learn the history of Ajax, what it means to you, why you should pay attention, who is using it, what is available, and how to implement it. This session will get you up to speed with Ajax, compare the different existing frameworks, and provide you helpful tips of do’s and do not’s with Ajax.

    Learn how to enrich your users experience by the use of AJAX. Examples start at –hello world– and build up all the way to object oriented MVC applications. By the end of this session, you will know how to enhance your site through simple AJAX widgets or build full AJAX application including enhanced security and debugging techniques. Learn common mistakes such as delegating business logic to the client side, and learn to avoid them by keeping your logic in the server and loading scripts on-demand.

CFUnited hotel reservations are made!

Last year I waited too late to make my reservations and ended up down the street from the conference in the HORRIBLE Ramada Inn in Rockville.  I will never… ever… stay there again.  Think I am being petty?  Here is a short list:

  • When I drove up the entire place was surrounded by a chain link fence and the parking lot was torn up enough that parking was a challenge.
  • Their “wireless access” meant you have to sit at this little chair right by the receptionist desk.
  • The entire place smelled like a mildewed locker room.
  • The cool looking internet cafe/restaurant on the website was boarded up.
  • The airconditioning were decades old window units that completely sucked.
  • At night (after a beverage or eight) when getting back I found that the unairconditioned elevator that had hiccupped all week was not working.  I was told to go outside and find a green metal door and walk up the stairs to the 8th floor.  Green metal door was locked.  After coming back in (still carrying all my stuff), the guy at the counter huffed in disgust and walked outside with me to unlock the green metal door.  After walking up 2 flights I found that the stairs ended.  After coming back down… back around the front… into the lobby again (did I mention the beverages?).  I told the guy about my discovery of the end of the stairs.   Now clearly irritated with me he said “You have to get off there, walk to the other end of the building and go up the inside flight!!!”…. but of course.
  • and then….. the kicker…. HOUSEKEEPING STOLE MY iPOD!!!!  the last day that I was there which I incidentally discovered as I was turning in my rent car at the airport.

So… no Ramada this year.  I really welcome the comfort of the Marriott!

If you are planning on going to CFUnited this year, reserve your room soon.  Teratech is reporting that almost half of the conference rooms are already taken.