After WebManiacs, I thought it would be good to jot down some thoughts on conferences, and ColdFusion development in general. I was asked to speak at WebManiacs, which was my first conference speaking engagement, and although my session was somewhat small (last session that day), I had a great group who seemed to really enjoy my presentation, with a lot of questions, comments, and discussion afterwards. All in all a lot of fun. That being said, the conference was... lacking a little. Now, in all fairness, it was the first of it's kind, the first for FigLeaf (of this size), and a learning experience for everyone involved.
It was an honor to be asked to speak at this conference. The list of speakers was impressive, and the breadth of the subject matter appeared to state a great, high end Adobe developers conference. What wasn't apparent was the level of sessions being run. On the face, it looked like there would be some very nice advanced tracks in multiple disciplines. In reality, most attendees came away feeling as if the material was overly introductory. What was the true target audience of the conference? Was it catering to advanced developers? Or was it more geared to those just entering the field? In this respect, the lines were really blurry. It has to be hard to peg this down, when two topics of major focus (Flex and AIR) are still mostly new disciplines. Flex has been around for a while, but has changed significantly since the 1.0-1.5 days. AIR is extremely new, but the majority of AIR development involves disciplines that web developers are typically already familiar with. My experience with Flex is very limited, so I got a lot out of my hands on session with Dave Watts (who I've known for a while on CF-Talk, and is a great teacher), as well as my session with Simon Free, who was a great last minute stand in for Simon Horwith (who had to stay at the office with a project). Both of these session were very introductory, which is what I needed. There were other sessions, however, that I thought would be more advanced than they were. I wasn't alone in this perception.
What Do You Want?
I can never claim that I know everything about ColdFusion, or even programming as a whole. But, I have been doing this for a while. With the exception of some of the newer features of ColdFusion 8 (like the session I held on ColdFusion 8 Ajax and Extending Through ExtJS), and things like reports and graphing, there really isn't much in ColdFusion that I haven't learned in the last eight years of development. I've experimented with most of the major frameworks, dabbled in code generation, done heavy reading and experimentation with the JVM configs, and I'm pretty proficient in scoping my vars and writing CFCs. What does a conference hold for a developer at my level? Well, this one didn't have a lot, to be honest. I guess that's what I meant by "What's the target audience?"
In my opinion, the difference between WebManiacs and CFUnited was a heavier focus on Flex and AIR. But, you could get those same sessions out of 360 Flex or Adobe MAX, given their introductory nature, so what really makes it different? Overwhelmingly it was agreed that next year FigLeaf would need to place a scale (beginner, intermediate, advanced) on sessions, and I'm fairly sure FigLeaf got that message. What I would like to see is a higher focus for advanced developers. Along with it's introductory tracks, I'd love to see some advanced hands on tracks for developing with the major frameworks. I had a lot of people asking me about using ColdSpring's advanced features, like auto generation of RemoteProxy objects. I also heard a lot of folks asking about JVM tuning, and JRun configuration, as well as server virtualization. These are the types of things we get into once we're way past mastering cfloop and cfquery, and the type of knowledge developers crave to get to the next level. How does one truly configure for localized development? Configure and use ISAPI re-write on different platforms for SES Urls? Advanced Apache configuration? How does one define Business Process Models for their applications? How do you begin using Subversion? How can Ant assist your development cycle? How do you plan architecture for a high-traffic, high-availability application? When does it make sense to do code refactoring? What are some of the most common (and not so common) design patterns, and what scenarios make best for their use? How do you track down an apparent memory leak within your application?
OK, What Else?
Being my first conference gig, and in my nervousnous, I went through my slide presentation pretty quickly. Luckily I had a little sample app I had written for my presenetation, giving me plenty of sample code to show, explain, and answer questions on. In the end this was a really good thing, because that's what people really wanted to see, the code. I attended on session on Integrating Flex with Live Cycle, in which I had to leave five minutes early to take a call from the office, but during my stay in the presentation the presenter didn't show one line of code. He wasn't the only one, and it was a comment I heard from a lot of the attendees. Most attendees were attending a session for which they already had some basic knowledge. What they were search of were concrete code examples, with detailed explanations, to reinforce what they already knew (letting them know they were doing it the right way), or to show them something new to them. It's a hard thing to do in a 50 minute presentation, but it's better than reading off the slides we can all download after the conference.
Can A Conference Further Our Community?
I was bouncing an idea off Simon Free one day over lunch. Speaking at this conference were some of the biggest names in the ColdFusion Community: Ray Camden, Charlie Arehart, Matt Woodward, Peter Bell, Terrance Ryan, Doug Hughes, and many more (sorry if you weren't listed, but the list is extensive). With so much talent in the room, can't we put it to use? One of the big complaints I hear, about ColdFusion (in comparison to something like PHP, for instance), is the lack (or that perception) of complete enterprise level Open Source projects. No Joomla, or Drupal, or OSCommerce, or PHPBB, or whatever. How cool would it be to watch and listen to some of these guys pick a project and plan it out. A two hour power session, where you watch the initial steps of project planning, definition of business process, outlining what the project should and shouldn't do (and why). There's no way it could be completely scoped in that short time frame, but imagine a session like this in the beginning of day one of a conference. All the notes get added to an online whiteboard, then people could contribute input, libraries, and pseudocode throughout the conference. Maybe, just maybe, people commit to the project by the time the conference ends, with a roadmap for the development of the project.
I think FigLeaf is taking all feedback very seriously. And I don't want folks to get the wrong impression, I took away some great things from WebManiacs. I spent some time learning about PDF creation and manipulation. We learned, without a doubt, that BlazeDS does not do true push via RTMP (that was a revelation). With my limited knowledge of Flex, I was pleased to learn how similar it is to working with ExtJs, in relation to it's component architecture and event driven model. I attended a fantastic session on scalability from Jochem Van Dieten. I learned that internationalization is about much more than just a character set. I intentionally sat in on all of the frameworks intros to assess which might best serve our next generation apps (and learned that I still dislike Fusebox, but that's just me). I also got to meet a bunch of people who I've only emailed back and forth with for years, as well as talk to a few of my readers. Those conversations were the biggest take away.
I've been a bit swamped with our datacenter migration project, but hopefully I'll get the opportunity to post my session slides and sample app sometime next week. Until then, what do you want from a developer's conference?