Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at cf.Objective() 2013 (Bloomington, MN) with:

Ben Forta At The NYCFUG: ColdFusion Centaur, Bolt, And Flash Tour

Posted by Ben Nadel
Tags: ColdFusion

Last night, Ben Forta and Adam Lehman came to the New York ColdFusion User Group as part of the Centaur / Flash Tour to present on ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst. At two hours long, the presentation was jam-packed with ColdFusion and Flex goodness. Because our crowd contained mostly ColdFusion developers, Ben spent the majority of time talking about the new features of Centaur - the next version of ColdFusion. However, the stuff that he did cover in Flex and Air also seemed very cool, including all sorts of code generation and very advanced dynamic data binding.

I tried to give Ben Forta a good introduction, but I found out very quickly that reading off a piece of paper is much much easier than trying to both read off a piece of paper AND look into the crowd. As such, I kept losing my place and was a bit shaky. Cutting out the part that was specific to our CFUG, here's the lead in that I gave Ben:

. . .

We're here tonight to learn about the new, powerful features of ColdFusion, Bolt, Flex, and Flash Catalyst. You know, sometimes, I find it hard to believe that there's even any room left in ColdFusion for new features. I think most of us here who are ColdFusion programmers ARE ColdFusion programmers because ColdFusion is already such an amazing language to work with; I think we're ColdFusion programmers because ColdFusion is a language that finally makes our imaginations, and not our technology, the limiting factor. Of course, for many of you, this isn't a new revelation - this has been true for a while; and yet somehow, with every release of ColdFusion, this truth and sense of power becomes more and more evident.

The last two releases of ColdFusion have been nothing short of inspiring. Needless to say, I can't wait to see what's coming next. And so, without further delay, I give the floor to the Senior Technical Evangelist at Adobe Systems, Mr. Ben Forta.

. . .

While the presentation was incomplete (traditionally these tours let more and more information slip out with every CFUG meeting), the stuff we saw looked awesome. There's too many features for me to get into, but some of the things that really stuck out in my mind were:

Application-specific Data Source Names. We will be able to define a datasource in the THIS scope of the Application.cfc (as we can with mappings and custom tag paths) and it will be implicitly applied to every CFQuery tag in the application (with the ability to override of course).

Excel-Compatible Spreadsheets. Using new tags and a number of functions, we will be able to create and utilize Excel-compatible documents (Microsoft Excel 2000, 2003, 2007, Open Office, etc).

Better Implicit Array / Struct Usage. It looks like they got it right this time! We can now pass implicit arrays and structs as part of tag attributes and methods calls. No more creating intermediary variables.

Calling Methods On Arrays. This one is so small, yet so insanely useful - we can now call methods on array indices without an intermediary variable. Example: REMatch("sexy",variable)[1]. Sweet ass sweet!

IMAP Mail Access. POP has been great, but the next version of ColdFusion will now have IMAP access (ie. Connecting to GMail just got a whole lot easier).

Object Relation Mapping. The whole ORM things just looks awesome. Time to go buy a Hibernate book and get my learn on.

CFScript Parroting. All ColdFusion tag functionality will now be available in CFScript (with the exception of CFSaveContent which wouldn't make any sense). I have been a big fan of tag-based coding; but, with full script functionality, I might very well change my mind.

There's so much more than that, but that's the stuff that really stuck out in my mind as being totally awesome. Outside of ColdFusion, there are also some very cool things coming along like Bolt, the ColdFusion IDE, and a remote multi-server administrator AIR app. All in all, the meeting was a huge success and definitely got me chomping at the bit for the public beta!

I am sure much more information is available from Abraham Lloyd who was live-blogging our event. Thanks Abe!

Huge thanks and praise to Adobe for co-sponsoring the meeting and sending Ben Forta and Adam Lehman out here to present. Rock on with your bad selves! Also, a huge round of applause to my business partner, Clark Valberg, and our Operations Manager, Chana Malachi, for organizing a wonderful, fully catered, and completely bitchy event.

I also wanted to say thank you very much to all the publishing companies that made it possible for us to give away so many excellent books:

 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 
 
 
 
 
 
 
ColdFusion Centaur, Bolt, Flex 4, and Flash Catalyst Tour At the New York ColdFusion User Group. 
 
 
 

Hopefully, we'll see you all next month!

Additional photos compiled from the rest of the crew:

 
 
 
 
 
 
 
 
 
 


Reader Comments

Nice shoes! I did not know that they came with strobes. :) (First Pic). Cool effect.

It's great to see some of these features in CF (datasource, Implicit Array/Struct and oh yes the method calling from arrays.. VERY nice!)

I am looking forward to the same meeting in San Francisco in the upcoming weeks.

Reply to this Comment

@Pat,

I accidentally stepped on a laser-cat and he burned some reflective material into my shoes. Laser-cats!!

Reply to this Comment

Thanks for the posting Ben. Very cool.
I'm still trying to get my boss to focus and upgrade from MX7 to 8. Do you know if going from 8 to Centaur will be very painful? I remember I had to rewrite a few things to upgrade to MX.

Reply to this Comment

Thanks again Ben (and Clark) for putting the event together, and to Adam and Ben for the great info.

Couple additional things that has me really excited:

* Nested CFTRANSACTIONS (but not across datasources)

* "Magic Functions" implicit getters and setters

.brett

Reply to this Comment

@Robert,

As far as I know, going from 8 to 9 should be pretty painless. I remember going from 6 to 7, I only had to change the name of one function (which became a built-in method). That's really the only conflict that I can think of.

@cfml,

Yeah, the nested transaction stuff seems very cool, especially the partial rollback.

Reply to this Comment

Hey buddy, when are you gonna lay Magnum on us? lol, just kidding! (Zoolander reference, fyi)

Sounds like it was a very cool meeting indeed. One thing that you commented on that stood out to me was in regards to the "CFScript Parroting". You said "with the exception of CFSaveContent which wouldn't make any sense", and immediately the heredoc notation that is used in some other scripting languages came to mind. I'm wondering if implementing cfsavecontent in cfscript might be the equivalent of giving us (CF developers) heredoc syntax (which I do find quite useful in PHP development). Maybe I'm drawing relationships between the two erroneously, but maybe something worthy of consideration, too.

Latuz!

Reply to this Comment

Yes, my picture is up with you! My dreams have come true.

One thing I was wondering about is I believe they said there was a way to do transactions with ORM - I had never heard of Hibernate until last night so I might be talking crazy here. I was curious if there would be a way to do transactions across multiple data sources if you did it within the ORM. I would assume at that point the transactions aren't handled by the same underlying code that CFTRANSACTION uses, so is this possibly something that may make me want to use ORM at some point? Or am I way off base?

Reply to this Comment

Ben, nice write up. In years past I've had completely pathetic introductions of Ben to our Nashville group. I suppose I should take your lead and do something "a little more" for Greg Wilson who's presenting on our leg of the tour next week.

Couple of other things. When talking about "Calling methods on Arrays" you said "sweet ass sweet." LOL! In your last paragraph you said the event was completely "bitchy." Ha, I'm guessing you meant bitching. Lastly, how many people did you have show up? Cheers!

Reply to this Comment

@Doug,

Magnum? I really shouldn't even be talking about it :)

I can't say I've ever heard of heredoc syntax? Can you give an example?

@Spencer,

Interesting question. Based on Adam's response, it seems like cross-datasource is not in the cards.

@Aaron,

"Bitchy" is actually a word that we use in the office a lot. It's meant to be a good thing. As in, "Dude, we just had the bitchiest steaks you've ever seen!" :)

Yeah, the intro was fun, but I was trying too hard. I wish I had just memorized it.

Hey, nice haircut, by the way. I just noticed it in your avatar.

Reply to this Comment

Hey Ben. Regarding the heredoc syntax, here's a small php snippet where I've used it to create a dynamic sql statement (variable in the 'having' clause):
$userid = 486;
$sqlExperience = <<<eEnd
SELECT resID,
max(case expType when 'FR' then totalyears else 0 end) as FR,
max(case expType when 'TL' then totalyears else 0 end) as TL
from ResExperience where expType = 'FR' or expType='TL'
group by resID
having resID = {$userid}
eEnd;
$qryExperience=mysql_db_query($DBName,$sqlExperience,$Link);

I know outside of cfscript tags i could use cfsavecontent to produce a sql statement (for the sake of illustration) in a similar fashion that contained a dynamic value. I think it would be as handy to be able to create dynamic string values the same way within cfscript tags.

Whadayathink? Am I barking up the wrong tree with this analogy?

Reply to this Comment

@Doug,

That's pretty interesting. I think they do some variable binding in the script-based SQL statements, but I can't remember off-hand what it looks like.

Does that "<<<" mean some sort of ignore-line-breaks until semi-colon or something?

Reply to this Comment

Ben, the "<<<" is followed by a label, in this case "eEnd". Linebreaks are then ignored until a line containing the label followed by a semicolon is found. So, when "eEnd;" is encountered, processing of that variable's value ends. Within that content, curly braces are used to contain variable placeholders that are substituted, same as we would use #userid# in a cfsavecontent tag.

Reply to this Comment

@David,

I suggested a server scope default datasource, Centaur's only sportin' it for application scope.

Reply to this Comment

@Sam:
Where babygirl? On the 8.01 ER? If you'll remember, the original request was for app-specific implicit ds-ing AND the ability to just pick one of the datasources in the administrator to be the serverwide default with a radio button or some such mechanism. I don't remember anything about the server scope. That seems like it'd let anyone with access to CFML on your install swap that out at any given time ( you can lock them out of the admin ). But it still sounds awesome and actually like a lot of fun. Like capture the flag. Capture the server-wide default datasource.

Reply to this Comment

I dream that once in life time - I will see Ben Forta and Ben Nadel live in action together and I guess, I missed this wonderful opportunity.

Reply to this Comment

Thanks Ben for the jQuery video ... just started with jQuery a few months ago and I am excited about it. Your video has given me more reason to add this library to all my web sites.

Reply to this Comment

Post A Comment

?
You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.