OO ColdFusion Presentation Today on ColdFusion Meetup!

This is a late post, but I wanted to mention that I'll be presenting my Common Sense Approach to Object Oriented ColdFusion, 2010 Edition presentation in a few hours to the ColdFusion Meetup, 12pm Eastern (UTC/GMT-4) today. This is a slightly refined version to the one I presented in April at the CFObjective conference.

Watch Live Here

After the presentation, you'll find the recording posted here. I'll update this post after the fact with the direct URL.

Also, I'll finally be making the code from the CFObjective/Meetup for public view for the first time following the presentation, as well as post it on RIAForge and Github. One of the sample applications is the most extensive LightFront example posted to date, so this presentation should also show you a little bit on the framework as well. In that sample, there's also an "old school" version, as well as an unfinished Mach-ii/ColdSpring version that I'll continue to work on (but there's enough there to show the stark differences between a typical OO CF application and a simpler OO LightFront one).

I'll also be releasing a new version of LightFront (0.4.5) today as well.

UPDATE: The recording of the presentation can be found here:


Note: It went a bit long... 1:53:02

The code I show and the slide deck in the presentation is available via Subversion here.

To download a zip file, which has the code, PDF and PowerPoint of the presentation all in one, just go here:


Vote for me to speak/open mike podcast at CFUnited!

I'm hoping to do a CFConversations Open Mike at CFUnited this year... but I need your help to get on the schedule.

I'll be at CFUnited regardless (well, hopefully; I'm planning to be there), but I'd like to have a big audience for one of the podcasts.

You can vote for the open mike here:


I've sent in a total of four topics, including one on LightFront, that could all use your vote:

  1. CFConversations Open Mike
  2. Improving Website Performance in the Browser
  3. LightFront - The CFML Framework that you don't need to be a rocket scientist to use!
  4. Object Oriented CFML: 2010 Edition

RE: CFConversations - I probably won't get another podcast out until March, as I'm pretty swamped with work right now until the end of the month, but I've got a few episodes coming, including a few guest interviewers, and two that are already recorded. I have to hit it hard in March, as CF Hour() is about to lap CFConversations. :( I'm all about healthy competition. :)

Speaking at CFObjective 2010!!!

Following my friend, Dan Vega's post about speaking at cf.Objective() 2010, I, too, am announcing that I am speaking at cf.Objective() this year.

You may remember that my topic last year was "What to Do When OO Fails You in ColdFusion", something that was a bit of a controversial topic... or at least a controversial title. This year, you may be surprised that my topic is "The Common Sense Approach to Object Oriented ColdFusion, 2010 Edition".

Have I changed my tune? Nope, not really. I've just taken a look at the subject in a different way, and I'll talk about how many of the issues that were a problem in the past have been addressed or have workarounds in CF9, and try to explain it better than I did last year. Although a lot of people enjoyed my presentation (which I was going to do on a CFMeetup, but it never worked out), there were some negative comments that I wanted to address in a new version, that I also didn't get to do on the Meetup which I was going to call "Object Influenced ColdFusion". Anyway, it should be an interesting talk, and I hope if you are planning to attend, you'll make my presentation.

A lot of my talk will fall in nicely with Dan's talk, as I'll be talking about CF9 a lot in my talk.

I should point out that this is not scheduled to be the only session on what I like to call, "Pragmatic OO in ColdFusion". In fact, there is a similar session scheduled. Since that person hasn't announced his session yet, I'll hold off talking about it here, but we're going to work on making sure we don't repeat ourselves too much. We're looking at it the issues from different perspectives, such as issues vs. technique.

About to leave for CFUnited

I am about to leave for CFUnited... I just wanted to just send out a quick post.

It's been a while since I've released a CFConversations episode, just due to me being insanely busy on a bunch of things. There hasn't been any time for a podcast, but I'll be trying to get some out this week, including ones recorded at the conference.

I'll be hosting a day 1 open mike round table podcast scheduled for 5:30 on Wednesday, and CFConversations will be situated in the Legolas room throughout the conference, interviewing and podcasting away. Anyone who's at the conference can attend the open mike session, to listen and/or participate, and I'll be looking to schedule interviews throughout the conference.

That's all I have time for right now, but for more, see here:


The new me at cf.Objective()

A lot of people have asked me to upload a pic, and thanks to O?uz Demirkap?, I've got one:

UPDATE: I forgot to say that on my last weigh-in on Wednesday (at the gym located in the hotel), I weighed a super unofficial 279.8 lbs. That makes my current weight loss total at 98.7 lbs!

UPDATE 2: I am back from cf.Objective, and weighed in today (5/17) at 278 lbs. That means I have now lost over 100 pounds! 100.5, to be exact. Here's another pic:

At cf.Objective(), and I'm no longer CF_Heavy...

I arrived in Minneapolis this afternoon, and am waiting for the fun to begin for CFObjective. My presentation is on Friday, What to Do When OO Fails You in ColdFusion. It should be interesting, and I'm looking forward to presenting it.

If you are reading this on my Blog, you'll see that I've finally got the last couple of kinks out of the new design, and I've just uploaded it. I found the Notepad theme at Skinpress. I made several mods to it, including the background from the main column is completely different, a few font differences and many of the icons are different as well.

Weight loss update: As of last Sunday, I have lost a total of 94 pounds since June, and 51 of that since the surgery on 2/27. I'm probably down even more as I write this, but until I get on the scale, I won't know for sure.

With that, I am retiring the CF_Heavy name of this blog. I may STILL be heavy, although a lot less heavy, and you will see that those days will soon be over. It no longer seems appropriate, and I will discard that just like I have the clothes that used to fit me only a few months ago that are now WAY too big.

UPDATE: I've finally uploaded a pic, which you can see here.

CFConversations 12 is out! Ray Camden!

I neglected to mention a few days ago that CFConversations Episode 12 came out on Thursday, with Ray Camden.

This interview was recorded at Day 2 of CFUnited. Ray was a great interview!

Listen here.

CFConversations 11, Roundtable 5 is out!

With CFUnited quite a few weeks in the past and 10 episodes under our belt, it was time for another roundtable! We brought it back in style we've gathered 8 stellar participants including:

We had a lively podcast this time, with some great content that covers a wide range of topics.

Bob Flynn announced bFusion and bFlex, where you can get two days of free hands-on training in Flex and ColdFusion at Indiana University. We also discussed the educational licensing and whether or not Bob and Richard (from Gallaudet University) thought it would make a difference at their schools.

From education, we moved onto the hiring space. As you probably know, Sean's company, Broadchoice has been hiring several top developers recently, including Ray Camden, Joe Reinhart, Nicholas Lierman and Brian Kotek, and Sean shared his technique for hiring top talent that appears to be working. Note: This was recorded before it was announced that Brian Kotek also joined Broadchoice).

Next, Sean talked a bit about the CFML Advisory Board. I announced that a new vendor-neutral site to promote the CFML language is in development. I pulled the domain name from the podcast because, well, we're not quite ready to completely open it up to the general public yet (the basics are up). If you are really interested in helping out, use the contact form and I'll tell you more.

We asked Mark Mandel how he felt about ColdFusion 9's Hibernate functionality vs. his Transfer ORM. We all chimed in about other ColdFusion 9 functionality, and talked a bit about alternative editors and search tools.

We also covered the hot topic of SQL injection, including a free tool from HP called scrawlr and a project called Query Param Scanner.

We did a "final thoughts on CFUnited. Some of the things we had covered on previous roundtables, but there were a few new things.

We also talked about the Railo 3 beta (now in Release Candidate) and progress on Open BlueDragon releases.

Sean and Adam closed out the episode with a fairly big announcement that should have been made by now, so we sneaked it in! You'll have to listen to the podcast to know what it is.

Find the episode here.

Run time: 1:36:37

CFConversations 10, Interview 6 - Gert Franz of Railo

In case you missed it, CFConversations Episode 10 was released yesterday.

On Day one of the CFUnited conference, several of us sat down with Gert Franz of Railo, correctly pronounced "Rhy-low" (not "Ray-low"). Railo, a Swiss company, sells an alternative CFML engine, also called Railo, which has been getting a lot of attention in the CF developer community in recent months. During Gert's keynote at the Scotch on the Rocks conference in early June, it was announced that version 3.0 would have support for CFVIDEO and Hibernate, which had been getting a lot of attention in the CF blogosphere, especially since the cf.Objective() conference in early May. Furthermore, Gert announced that Railo version 3.1 would be released as open source under the LGPL license, with support from JBoss and hosting from Jboss.org.

The Railo open source announcement was enthusiastically welcomed throughout the CFML community, as has been documented on several previous episodes of CFConversations. Even key Adobe personnel such as Ben Forta and Adam Lehman were enthusiastic about the announcement.

Also, during Adobe's keynote at CFUnited, it was announced that Gert was one of the members of the CFML Language Advisory Committee.

In this episode, we talk about all of these things, some of Railo's history, and a little about Gert himself, who's a warm and very approachable person, with an interesting history that I think you'll enjoy hearing about.

This was an interview that a lot of people wanted to be a part of, or just listen to in person. Also in the room were: Peter Bell, Sean Corfield, Mark Drew, Adam Haskell, Jeff Coughlin, Joe Reinhart and Rick Mason, and most of them get involved in the interview at one point or another. This interview was one of my highlights of CFUnited, so I hope you enjoy it.

This was the first podcast recorded at CFUnited, and we didn't have access to the Blue Snowball microphone we used for most of the interviews and round tables. This interview was recorded from three Macbook Pro built-in microphones, although one of them produced a recording that was unusable. The interview itself required substantial post production editing to make it listenable, so the quality may not be as good as episodes six through nine. However, I think, it's now in a listenable form.

Due to the difficulty in editing this episode and the timeliness of other episodes, this episode got pushed back a couple of times. Ironically, this worked out, as Gert is doing a U.S. user group tour that starts on Monday, July 28th, which coincides with the release of this episode.

This is the first episode where my inserts are recorded via the new headset, courtesy of Marc Esher. If you liked the new music track, it's from a band called spineCar, from the Album Up From the Mud, and the track is called "Smoke". I'm thinking it's going to be the podcast's theme song. What do you think?

Run time: 56:47

CFConversations 8, Interview 4 - John Wilker of 360 Conferences

CFConversations Episode 8 is out!

This is our fourth interview, and this is also the first podcast not produced by me. Dan Wilson did both the interview and the producing this time around. Dan's a big part of the team, and although this is his first appearance on the podcast, he's been involved from the beginning. You may remember Dan from the same ColdFusion Weekly round tables I participated in.

In this episode, Dan interviews John Wilker of 360 Conferences, the company that brings you the 360 Flex conferences.

John and Dan talk about the 360 Flex conferences, the upcoming conference in San Jose on August 18-20, ColdFusion and Flex. A summary of the conversation can be found here:


Note: By popular demand, this episode features our first experimentation with theme music. Let us know what you think. We'll experiment with other tracks and how they are presented in the next upcoming episodes. Also, since Dan was the producer on this episode, let us know what you thought of the audio quality, and how it compares to our most recent interviews.

Run time: 43:06

CFConversations 7, Interview 3 - John Farrar, author of ColdFusion 8 Developer Tutorial

Our third CFConversations interview episode is out, with John Farrar of SoSensible.

On July 2nd, Packt Publishing released John Farrar's ColdFusion 8 Developer Tutorial, their first ColdFusion title, and the first non-CFWACK title since Rob Brooks Bilson's Programming ColdFusion back in the MX 6.1 days.

John's a fellow user group manager, and a friend of mine. On Day 2 of CFUnited, I interview John, along with Adam Haskell (who's listening). We talk about the new book, John's CO-OP and SOS frameworks, JQuery, CF9, open source, and the Adobe education licensing of ColdFusion announcement. We also talk about his family. John's got a big family, and I try to get down to how he can get anything done working from home with twelve kids.

This was recording via Jeff Coughlin's Blue Snowball microphone, which was also used for the CFUnited Round tables. The sound had to be boosted in post production, but it seems to be good under the circumstances. There is some echo in the room.

Some people have noticed a quality improvement in the last few episodes. I hope this episode's quality doesn't suffer too much from the last two. It was recorded a different way, so it may sound different. As previously mentioned in other podcasts, we're still learning how to produce these, and although we're learning more as we go, we don't have all the equipment we need to do episodes of the quality Matt and Peter of Dan Wilson and Rick Mason who purchased the first few items off of the wish list to help make the podcast a better one.

Links to the book:
Packt Publishing

Run time: 50:19

The episode can be found here.

CFConversations 6, Interview 2 - Michael Smith of Teratech - 07/05/08

Our second interview episode is with Michael Smith of Teratech. We discuss putting on CFUnited, Fusebox, Teratech, the recent Adobe announcements made at CFUnited and open source CFML.

I have mentioned previously that I have help with these episodes. The interviewer this time is another Brian, Brian Swartzfager, who you may recognize from the ColdFusion Weekly roundtable episodes, as well as CFConversations Episode 3.

This was recorded using a handheld recorder. The quality is quite good, but it might sound a tad more "AM radio" like than some of our other episodes.


Run time: 16:54


CFConversations 5 is out! Liz Frederick & Nafisa Sabu of Teratech interview

The first four episodes of CFConversations have all been in a roundtable format, but that's not the only format CFConversations will be using.

With episode 5, we begin releasing episodes in a new format: Interviews.

In this episode, I sit down with Liz Frederick and Nafisa Sabu of Teratech. We discuss putting on conferences as big as CFUnited, their thoughts on the CF developer community, their backgrounds, and open source CFML.

This was recorded using a Flip Video camera behind the booth on day 2 at CFUnited. The audio quality is surprisingly good, but you will hear some background noise from both the conference and the street.


Run time: 19:59

Here's the link!

Episode 4 of CFConversations is out!

Recorded at the end of Day 3 of CFUnited.

On this podcast:

  • Brian Meloche
  • Rick Mason
  • John Farrar
  • Dana Tierney
  • Ken Auenson
  • Chris Hough
  • Seth Bienek
  • Timothy Farrar
  • Adam Tuttle
  • Adam Haskell

Most of this episode focuses around the ideas that came out of the Promoting CFML Outside of the CFML Community session Friday evening, mentioned in the previous post. We think some of these ideas are a call to action for the CF developer community.

We hope you'll find this long podcast worthwhile!

Time: 1:37:27

Promoting CFML Outside of the CFML Community - Results

It was incredible what came out of my Promoting CFML Outside of the CFML Community session Friday evening. We think some of these ideas are a call to action for the CF developer community.

Group 1 - Promoting CFML to New Developers

Team Consisted of:

  • John Farrar
  • Rick Mason
  • Dana Tierney
  • Ezra Parker
  • Jeff Coughlin
  • Brian Swartzfager

You can ready the summary at: http://docs.google.com/Doc?id=dcdhg6m6_27dnzqx5gs

Group 2 - Promoting CFML to PHP Developers

Team Consisted of:

  • Adam Tuttle
  • Timothy Farrar
  • Seth Bienek
  • Dee Sadler
  • Ken Auenson
  • Chris Hough
  • Adam Howitt - adamhowitt@gmail.com

You can read the summary at: http://docs.google.com/Doc?id=dcdhg6m6_26frtdsbv8

There is also all of the raw ideas that came out of the session. Expect blog entries from the teams which show those in more detail.

My CFUnited presentation is from 4-6pm today - Promoting CFML Outside of the CFML Community

Some of you may remember by Promoting ColdFusion Birds of a Feather at MAX 2007 last year.

I am revisiting that topic today, in a similar format to last time, except we should have more of the materials we need to make this brainstorming session a success, AND, even more importantly, MORE TIME.

This is an all audience participation brainstorming session. We're going to figure out what our community needs to do to grow CFML outside our own community. If you are at CFUNITED, I hope you'll plan to attend.

We need "recorders" for each of the breakout groups in the session. If you are planning to attend, and are willing to just "record" the details of your breakout group, please see me before the session (as early as you can today), or email me at brianmeloche at gmail dot com. I'll send you a link to a Google Doc to record your group's findings.

Overall review of cf.Objective() and thoughts on OpenBD and the CF9 BOF

Now that I've finally got my day by day reflections of cf.Objective() and my presentation blogged, here is my overall review. I am also going to make extended comments on two important developments during the conference: The Open BlueDragon beta release and the CF 9 Birds of a Feather. The last one, in particular, has been gnawing at me for days, so I must chime in.

First of all, if you're a mid to senior level ColdFusion developer, you REALLY SHOULD attend this conference next year. There's no substitute having access to 280 of the top CF developers in the world in one hotel. I can't tell you all of the great conversations I've had over the those four days (including Day 0). You'll learn all sorts of new ideas you might not have considered.

I've said it before, as have others, but the sessions and speakers were top notch. Most of the ones I attended were sessions I had already seen at user group meetings or CFMeetups, or even read in FAQU, so I didn't really get that much out of a lot of them, but still picked up one or two things I might not have known. I may try to get out of my comfort zone next year, take a different strategy and try to attend sessions on things I am not as familiar with to round out my knowledge.

The conference has a developer "feel" to it. In other words, it's not as polished as a MAX or even a CFUNITED. That's great in some ways because it really makes it feel like it's developer grown, not a corporate money-making thing, and it's intimate enough that it was easy to meet up with CF developers and get into extended conversations, both ColdFusion and non-ColdFusion related. That said, there were a few things I would have liked to see a bit more "polish". At the reception on the evening of Day 0, the guide and the website (which was down for a while on Thursday) said 9pm, but it started at 8pm, so I got down there at 9:10 and they put away the food by 9:20. I felt like a horse's ass not realizing that the bar wasn't a cash bar thing. If there were signs, I didn't see them. During the conference, the A, B, C and D rooms kept shuffling. That was a bit confusing, but the rooms were fairly close to each other, so that was OK. If it had been a bigger conference area, this would have been a bigger issue.

The food was not bad. I've had better, but it wasn't bad. There was usually some food or beverage available. The only time there wasn't was during the BOFs. That was one thing I appreciated at MAX last year (although Adobe really botched publicizing the BOFs).

The hotel was nice, probably one of the best I've stayed at for a conference. I had a nice room and the Sleep Number beds were the best I've ever had in a hotel.

St. Paul was... kind of dull... of what I saw of it. I didn't get a chance to go into Minneapolis or the Mall of America (I missed Iron Man), so I might have had a better impression if I had. It was quiet, which is not a bad thing, especially during a conference.

So... next year... come to cf.Objective()! I heard there are some thoughts about expanding it to other continents. I don't know if that will happen, but this conference is a good one to make it to. If I am grading the conference, I would give it an A. It would have been an A+ if it had a tiny bit more polish, but that's still a high mark.

The rest of the blog post will focus on Open BlueDragon and the CF9 BOF, which I had both mentioned in my day 2 post.

Open BlueDragon

I still find it quite ironic that, just as Jason Delmore was going to announce an open source initiative for ColdFusion, one of the audience members had a seizure. The next day, relatively quietly, the Open BlueDragon beta was released. It will be interesting to know what the significance of both of those events will be in a year. I think Open BD has the potential to do wonderful things for the CF developer community. We'll just have to see. Competition is good. I think an open source, stable and fully featured CFML engine will finally give Adobe some good competition in this space.

If you look at the Open BD source, you'll be impressed by how clean it is. If enough ColdFusion developers look at it, I think you'll see many CF developers take to Java. It's really not that foreign when you look at the source. One thing that intrigues me with looking at the source is the possibilities it could bring. If you are finding there's a tag or function you want that doesn't exist, add it to the source! If you find some limitations to... say... CFHTTP, for example, make modifications to the source code to make it more robust! Whether you contribute that code to the project is up to you and the steering committee. The reason why I mention it is you are no longer stuck to the existing tags and functions for your CFML projects. You can add your own in a way that CFCs, UDFs and Custom Tags never could. It's food for thought.


I am still quite surprised and shocked over how the CF9 BOF focussed on AS3 support instead of hammering Adobe on the need for a ColdFusion IDE. I noticed my Day 2 post said twice that perhaps the audience took it for granted that Adobe IS working on an IDE for ColdFusion - I guess that shows how much it perturbed me. I've read several blog posts about the "divide" in the room, and I'll address that later, but I think many of them don't realize that I don't think it's what they thought it was.

Having access to ActionScript3 in ColdFusion would be a good thing, don't get me wrong, as would the ability to make CF XML compliant, but NOT at the expense of breaking compatibility. If you are building a new application, I think more robust CFSCRIPT, AS3 and XML compliance would be a GREAT thing, but NOT if it means it's a pain in the ass to port my applications to CF9. If you are advocating that, forget it. And if you are talking about Adobe choosing a path that makes it very difficult for companies to migrate existing applications to ColdFusion 9, you need to be very careful what you are suggesting. If you are a consultant, this is great for you. You don't have to live with the applications you create, and maybe those companies will hire you again to re-architect those apps, but this is fantasy talk. GET REAL. Adobe would NEVER develop a backwards incompatible CF9. For one thing, it would cut down their upgrade sales drastically, not to mention how it would affect ISVs who sell ColdFusion apps, and open source applications and frameworks.

Back to the "divide". Several bloggers have mentioned this "divide" between developers during the CF9 BOF, almost a class distinction between those developers that want a radical change in the language over those that were just asking for new features. Since I was one of the developers asking for new features, I guess that puts me on the "wrong side of the tracks". Instead of it being the "big thinkers" vs. the "lesser minded developers", I think it was a divide between those that have a love/hate relationship with the language and those that love the language and have learned to embrace, or at least work with, its limitations.

I think those that were asking for a radical change really need to decide why they are using ColdFusion in the first place. If they REALLY need this change, perhaps what they need to do is change languages. Move to Groovy, Ruby or Java. I am NOT saying there's not a valid reason for AS3 in CF. I am saying that's not where I'd start making changes in the engine.

I wish I didn't have to tell people in my presentation to be very careful when creating large arrays of objects because ColdFusion is a performance pig in that situation and that they should consider doing an array of structures. I wish that a fully OO solution would give good performance... but in CF8, it doesn't.

I am a pragmatist. I try to create well performing, stable and easily maintainable applications, but I do that using the language that I am working with, developing well structured code, and that thing between my ears. I don't try to develop ColdFusion in a way that doesn't make sense from a performance standpoint.

OK - so object creation is a pig. Rather than throw out the language, shouldn't you tell Adobe, "Please fix object creation?" Why is it necessary to overhaul the language to fix performance?

On the same discussion, I agree that CFC creation can be a pain in the ass and that we need something better. Wouldn't it be better if you could use CFSCRIPT for everything? Do we REALLY need AS3 to overhaul CFC creation? Sure, it would be nice if you had a fully object oriented scripting language in ColdFusion. However, why is it so important that we need it?

Is it envy? Do you wish you could tell your "cooler" Ruby, Python or Java developer friends that your language is fully OO, too? I wonder.

I think the need for AS3 in ColdFusion is displaced. If you want to overhaul the engine, I think your best bet is to get Adobe to create an AS3 J2EE server. Don't kill compatibility. Think of all the companies that never upgraded after CF5 because of incompatibilities between 5 and MX. Some converted to another language and never upgraded.

Also, I have to comment on the tone I am seeing. I don't appreciate those that act like they are better than others because they don't share your "vision". I live in the real world, and my world tells me you do not turn ColdFusion into something that breaks RAD and compatibility. Learn to use ColdFusion wisely, and stop trying to turn it into something it is not.

Could ColdFusion have better ties into Flex? Yes, but that's not exactly what you spent most of your time asking for. I wholeheartedly support better ties into Flex, and I think we'll see that in CF9.

Adobe should make CFSCRIPT be full-featured and ECMA compliant (but also allow it not to be), fix object creation so it's not a dog, spend some time marketing CF to the Enterprise for more than just intranet development. Done right, ColdFusion is an EXCELLENT public facing web platform, but Adobe always seems to push the intranet features like PDF, reporting and .NET integration. I wish Adobe would focus on getting more hosting providers to support CF and get CF in the classroom so it's not so damn hard to find good CF developers.

And, Adobe build a good ColdFusion IDE for goodness sake! I really don't love any of my choices for a CF IDE today, and I'd be willing to PAY for a good one.

At the very least, if not build an IDE, I'd like to see Adobe help out with CFEclipse. Mark Drew needs help building out CFEclipse, and you'd think Adobe would have a vested interest in supporting a good IDE. It seems like Dreamweaver and ColdFusion are distancing themselves from each other. Dreamweaver is certainly wanting in many respects as a CF IDE, but I still prefer it on a strictly code editing basis (in other words, the code view). If CFEclipse had </ to close tags, and not be wonky on a few things, I would probably switch to it... but CFE is still not there for me. I will say, though, that I am starting to use it more than I have before.

I'd also like to see Adobe open source Homesite+. If they aren't going to offer it anymore, open source the damn thing so that others may support it. I realize that Homesite+ only works on Windows, but I could see someone taking the bulk of it and porting it to Eclipse, writing a Cocoa version of it, or porting it to Wine/Darwine so it could run on other systems. I've not seen that blogged anywhere, nor was it mentioned during the BOF, so I thought I'd mention it here.

So, there it is... I finally got out one of my LONG blog posts. I imagine this will get a few comments. If you don't agree with me, that's great. My opinion is just that and you are entitled not to agree, but I thought it was time someone talked from the "other side of the room".

ColdFusion as a Different Type of "Glue" - cf.Objective() presentation - and real world OO

For those of you who have requested it, here is a copy of my presentation from cf.Objective().

People seemed to enjoy the presentation. The presentation deals with using ColdFusion to interact with an ERP system. The problem is complex enough that sample code is not really possible without a lot of work, so this presentation did not have code. I didn't get a lot of complaints about that because the session was detailed enough that it didn't NEED code.

One thing that I hit on during the presentation that has more of a wider scope and was also covered by Nic Tunney in his preso. My idea is simple: You really shouldn't try to make ColdFusion do things it's not good at doing.

ColdFusion bogs down when it needs to create a lot of objects. If you are retrieving a LARGE result set for read only purposes, you shouldn't create an array of objects. If a query will do, use a query. If not, use an array of structures. I will often add a getWidgetsAsQuery or getWidgetsAsArrayOfStructures service method and create a transfer object (not to be confused with Mark Mandel's Transfer) to give me the ability to create an array of structs instead of creating an array of objects. When you are dealing with a class with many methods and/or a large array, you will get a big performance hit, even in ColdFusion 8. On add/edit/deletes, a bean is well suited, but not on gateway style selects. You can try to get around that by going around it and doing your model in Java, but, to me, that doesn't seem like a great idea unless you NEED to (sorry, Andy P!), as doing that gives up what ColdFusion is best at in the first place - Rapid Application Development. Instead, work to ColdFusion's strengths would be my suggestion. I may be criticized by some as not being a "thought leader", but that's a crock of sh*t as far as I am concerned. As my slide says, I am not a Spock when it comes to being a CF developer. I'm a Scotty, and I'll take real world experience (using sound fundamentals) over theoretical constructs every day. During pure OO in ColdFusion is just that - a theoretical construct - and it fails in real world situations. Use OO where it makes sense, which is in MOST places, but don't try to use it everywhere in every situation.

Day 3 at cf.Objective()

OK. Day 3 of cf.Objective() was six days ago, but I SAID I'd blog about all three days of the conference, and daw-gone it!!! That's what I intend on doing!!!

Day 3 got off to a late start for me. The night before was a long one, and I was a little slow in getting up. It was past 9AM when I finally got out of my hotel room, still in the night before's clothes, and headed down for breakfast. I was pretty run down. The previous weekend was a long one, so I would have been tired even without the conference. Add a conference to it made me even more tired, especially by Day 3. By the way, a small conference like cf.Objective() in so many ways nicer than a conference like MAX because you're in the hotel that hosts the conference. You can go up to your room at any time and not have it become a major chore. Peter Farrell, Sean Corfield and a few other "dignitaries" were down there, too, so I didn't eat alone (well, yes I did... their table looked like a food fight had interrupted, so I sat at the next table).

After breakfast, I went back up for a shower, and by the time I was ready to come down, I figured I might as well check out, beat the rush, and get it over with. So, that meant I missed the first two sessions of the morning. The only one I really wanted to see of that was Peter Farrell's ANT session.

The first session of the day was Brian Kotek's Leveraging Code Generation to Jumpstart Your Development. I am a recent BIG fan of code generation, so I was looking forward to the discussion. I learned about Model-Glue and Reactor's code generation. I've not used either framework much, so that was interesting. Beyond that, I didn't learn very much that was new.

After that was lunch, and salmon, which was OK. You could definitely notice a lot of people had gone home already, as the dining area had the smallest crowd of the three days.

Following lunch was the session that I have to admit was one of the sessions I was looking forward to the most out of all the sessions at cf.Objective(): Mike Brunt's Clustering and Distributing ColdFusion Applications. It did not disappoint. I learned more in this session than probably any other. Setting up a ColdFusion cluster is VERY POORLY documented anywhere, and really needs someone like Mike to help fill in the holes. Mike's definitely one of the best CF server guys in the world, and I learned a lot from him in that one hour. Specifically, here's a tidbit... When he sets up a CF server, he does not hook cfusion into IIS. He uses the built in webserver. He then sets up an instance, creates a CAR file (obviously, I need to try CARs again, because I haven't heard many others having issues with them), and then creates other instances and deploys that CAR on the other instances. Once the instances are set up, he then creates the cluster as round-robin with sticky sessions. Then, he turns off the cfusion instance and sets it to manual. Again, I've never seen this mentioned anywhere else and I will do it the same from now on.

My last session of the conference was Jason Delmore's Building Hybrid Applications with ColdFusion and Java. I thought this covered a lot of ground in an hour, but was a great presentation that I really enjoyed.

After that session, I said my goodbyes, and made the next shuttle to the airport. The shuttle was a who's who of the conference. On it were five speakers - Peter Bell, Brian Rinaldi, Oguz Demirkapi, Maxim Porges and myself - and two other guys from Boston (sorry, I can't remember your names, guys, but I saw you both later in the terminal). That was an interesting ride. Brian R. talked about past cf.Objectives and I think we all agreed what a great conference it was.

I got home to Cleveland about 10:05 or so. My wife was getting ready for her surgery the next day (carpal tunnel on the right hand - she's doing OK, by the way), so after picking up my bag, I took a cab and was home by 10:40 or so.

To recover from the conference and because of my wife's surgery, I took a couple of days off and finally got back to work on Wednesday.

That's about it for Day 3. Following this post will be my preso and my overall review.

Day 2 at cf.Objective() - yeah, I know... several days late!

I am posting this review of cf.Objective() Day 2 long after the conference ended... but I wanted to complete my reviews! Besides, I was twittering all through the conference (which you can read my feed on my blog even if you aren't on Twitter) so I hope you didn't feel "wanting", waiting for more reviews. I will post a day 3 review and an overall review of the conference in subsequent posts.

I blew off the first Saturday session in order to get everything set up for the two hour ColdSpring 1337 presentation by Chris Scott. I didn't have MySQL installed on the machine I took to the conference, and my Eclipse had a ton of updates to do (I'm still a Dreamweaver guy, but that's another blog post as to why that I'll finally send out one of these days). The updates took forever over both the hotel's wireless connection and the Verizon broadband USB device work gave me (tried both at various points), particularly Aptana. I didn't need Aptana for the session, but I figured I'd update it anyway.

Knowing the sessions were well underway, I went down to the Restaurant 11 for breakfast, since I had a free pass for it, thanks to being a Priority Club member. Unfortunately, I found the breakfast in the restaurant not so great. The eggs were dry and tasteless. I only ate part of my plate and decided to head downstairs. Much to my surprise, breakfast was still out for the conference attendees, and I helped myself, and I thought it was quite a bit better.

I tried making the tail part of Terrence Ryan's "Selling Professional Development Techniques at a Hostile Shop", but he finished early. After blowing off Terrence Ryan's presentation because of the updates that took forever (I should have just tried loading the stuff down in the meeting rooms instead of in my hotel room), it turned out being for naught, as Chris' project didn't work! Nevertheless, it was still a good presentation, I did pick up a few things, and he also did a preview of Swiz (I'm not sure if that's the correct spelling).

After that presentation was lunch, which was Prime Rib. It was a little over cooked for me, but better than I've had at some other conferences.

About 1/3 of the way through lunch, I started getting nervous about my presentation. I guess that's normal, but I know the stuff I presented so dead on that I really didn't need to rehearse (in fact, my presentation WAS unrehearsed, which may or may not be a shock to those of you that attended). I mentioned that because, like in my CFMeetup version, I got pretty animated in my 1:30 presentation, especially in my "Over the wall syndrome" section! In other words, "My systems are OK. It must be YOUR problem." The presentation went REALLY well. What can I say? I took Public Speaking at Waterloo and a drama class in high school, and I'm a bit of a ham, so it comes naturally to me. For those of you interested in my presentation, I will post the presentation in the next day or so.

After that was Michael Collins from Adobe who talked about Deploying Large Scale ColdFusion Applications. I did learn of a few other deployment methods I've never tried before, and I plan to on the next ColdFusion installation I do, although he spent a lot of time on using CAR files for deployments. Honestly, and I can't say for sure if it's a bug or if it's just the way I've used them, but I've never had any luck with CAR files. Instead, I've copied over xml files from instance to instance. He showed us using EAR files, which intrigued me and I am going to try it, but I will prove or disprove my issues with CAR files first.

Next was Mark Mandel presenting on Caching in Transfer, or as Mark says, "Cayshing". :-) Mark has presented to my CFUG, and I talk to him over GTalk and Twitter from time to time, but this conference was the first time I've gotten to meet Mark. Mark's yearly trip to the States is for cf.Objective(), and meeting him is a good reason to come to this conference! He's a cool guy to hang out with! Anyway, now that I've totally kissed his butt, :-), Mark's presentation was great.

Following that was the last session of the day. I attended Peter Farrell on Mach-ii 1.6 and the direction planned for 2.0. I was very pleasantly pleased with the progress on caching, and the listeners and page-views by convention (so you don't have to specify each one if they all belong to a certain folder) is an awesome addition planned for 2.0.

After the last session, I had been invited up to Michael and Judith Dinowitz's room for Shabbos. It's a privilege to spend time with them during their holy time. Michael and Judith are well known for their contributions to the ColdFusion community, but what you might not know if you haven't met them in person is how nice they are. They are great people, and I enjoy spending time with them when I have gotten a chance.

The BOFs started at 7:30pm, and the one I went to was Vince Bonfanti's Open BlueDragon session. There were about 40 people in attendance, which was smaller than I expected, but those that were in attendance were a who's who in ColdFusion. It was interesting to see the clarity of the code within the Open BD server. The code is very clean. This project will become more important over the next couple of months as it reaches a full release, but, from what I have seen, it's already stable and fully featured.

After that, I went to the ColdFusion 9 BOF, which went a direction I hadn't expected. Several people, like Joe Reinhart, Maxim Porges, and many others made a convincing argument about adding ActionScript 3 support. I think this would be a good move, but I can't say I think we'll see this in version 9. I got the distinct impression that some of the CF team were annoyed by the suggestion. It wasn't so much that I didn't expect it to go there, but what was surprising that it stayed there as long as it did, and that a new IDE was only barely mentioned. Adam Lehman chuckled, saying that it's like the developer community already assumes that Adobe is building one. For me, there are some really big annoyances with Eclipse/CFEclipse that prevent me from using it all of the time and have kept me on the flawed but usable Dreamweaver CS3 (which isn't all that bad if you disable the design view for .cfm and .cfc files), which will be the source of an upcoming blog post.

Back to the CF9 BOF, there were some interesting things brought up. I brought up the fact that I have had issues with CAR archives, to which Tom Jordahl said, "Have you filed a bug?" I believe I have, but it's been a while. I will test again with 8.01, but I expect another failure like I had with 8. I also brought up a feature I'd like to see: auto minifying HTML and inline JavaScript and CSS. PHP has this function, and I'd like to see the same in ColdFusion. Minifying of HTML would help reduce the bandwidth involved sending rendered pages to clients, which will improve performance. Also, others talked about having full features in CFSCRIPT, which is a common theme, and a CFVIDEO tag, which would be a cool thing for rolling out YouTube like features for a site. Surprisingly, very little was discussed about the need for a ColdFusion IDE. I expected this to dominate the discussion, but it was barely mentioned. Some of the Adobe team said, "you think we are already building one". ColdFusion developers, DO NOT take this for granted. If you want a ColdFusion IDE produced by Adobe, you MUST keep applying the pressure on them!!! Adobe making a ColdFusion IDE is a business decision and they must feel like it will be in their best interests to create one.

The CF9 BOF ran very long, so it turned out being the last of the day that I attended. I then went back down to the bar for a few drinks and several good conversations, too many and too many people to mention them all.

Saturday was the day I realized that cf.Objective() was a conference not to be missed again. I will return!

Still Upcoming: Day 3, an overall review, and my presentation!

More Entries