Viewing By Month : July 2006 / Main
July 26, 2006
Future ColdFusion Features: How Do They Do That?

Blogs have been lighting up this past week with lots of great discussion around what folks would like to see (or not!) in future versions of ColdFusion.

Just a quick note to let everyone know on the affirmative: we're listening, reading pretty much every single post down to the last comments made by readers of those blogs, and let me just reassure folks that everything (yes, absolutely everything) gets considered.

The CF Team is focused on Scorpio development currently and in terms of picking the right "major" features of a release we're following a process known internally as the "Synchronous Development Process".

SDP helps us really nail down the defining features of the release to make sure they're the most relevant and useful for our customers. The process is fairly rigid, has been used by many recent product releases at Macromedia/Adobe, forces us to ask some hard questions of ourselves and customers, and it's the same process we followed when identifying the major features we had to do for the ColdFusion "Blackstone" (CF7) release.

An entire book could be written on the SDP process, but it's robust, iterative, it takes the "Core" SyncDev CF team on the road in "waves" talking to carefully selected groups of customers which represent the various parts of our customer base. It also has some great (and very sophisticated) tools and approaches and follows a formal, prescribed process to refine the feature list to the one that should make it into the product.

We also mix in favorite features and enhancements requested by customers from all the various forums, our own "CF flavored" home-cooked ideas, as well as tight integration with and use of other company technologies that make sense as well.

Of course, there are also features that we add in that are hatched by CF engineers themselves that are just too cool to leave out :) (You wouldn't believe the now fundamental features of CF that came down this route!)

Anyway, we're well under way building the future of CF, and while we do have a bunch of features already done, we still have a bunch of TBD features and other work to do as well, but please do know that we take input from everywhere we can find it and all ideas are considered.

We kicked off this release last year with about 15 solid weeks worth of all-hands-on-deck research that came up with a set of recommendations that serve as inputs to the SyncDev and development processes. Suffice it to say, a lot of planning, listening and innovation goes into the defining of a major ColdFusion release, but we never forget our roots and what we're about:

Making Hard Stuff Easy.

Keep the ideas and feedback coming!

Damon

July 21, 2006
CFTHREAD and CFJOIN Proof Of Concept Tags

Our development engineers are called “Scientists” at Adobe which is cool because it means that we understand the importance of experimentation.  Like all good scientists, we hypothesize and test – some things make it into the product, others don’t – but we’re always innovating.  Here’s an example that Rupesh Kumar (CF Computer Scientist / Software Engineer) did on his own time after talking with a number of our customers about asynchronous processing in CF….not a lot of bells and whistles, mind you, but still a great Proof Of Concept of the CFTHREAD and CFJOIN tags.  I’ve also included a couple simple example templates to demonstrate the tags.

The first example copies a file 50 times files + sleep 200ms each time, and the second example launches 50 threads with CFTHREAD to do the same work and join back up at the end of the page with CFJOIN.  

This POC works with CF 7.0.2 (Standard or Enterprise).  While you can do multi-threading and asynchronous CFML with these POC tags, they don’t provide any of the fine-grained threading control you have with ColdFusion Event Gateways and the Asynchronous Gateway, for example.  So you don’t get thread pooling, control over how many worker threads can be active or pooled, metering on Gateway messages In/Out, or any of the other advanced capabilities of the Event Gateway architecture on CF7, but they do the basics: run stuff asynchronously in separate threads and allow for the use of local (thread-local) variables, allow access to shared scopes, etc.

A note on the simple example: you’ll want to modify both templates to copy a file (I use a “C:\baseline.txt” file) that exists on YOUR system to a directory that exists on YOUR system (I used “C:\____WORKFOLDER”).  I’d recommend turning on debugging so you can see the execution times yourself as well (much more dramatic that way).

Also note that spawned threads shouldn’t count towards Simultaneous Threads slots of the CF Server, so you shouldn’t need to adjust that setting to accommodate your extra threading.

Running the serialized example with debugging enabled yields this execution time block:

Execution Time

Total Time

Avg Time

Count

Template

10072 ms

10072 ms

1

C:\Inetpub\wwwroot\threadsynch_serial.cfm

0 ms

 

STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN

10072 ms

 

TOTAL EXECUTION TIME

red = over 250 ms average execution time

And running the CFTHREAD example with debugging enabled yields this execution time block:

Execution Time

Total Time

Avg Time

Count

Template

235 ms

235 ms

1

C:\Inetpub\wwwroot\threadsynch_cfthread.cfm

0 ms

 

STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN

235 ms

 

TOTAL EXECUTION TIME

red = over 250 ms average execution time

To be crystal clear, this little POC is not a CF product feature at this time.  This is just a simple and unsupported engineering Proof Of Concept.  I’d personally welcome your feedback and comments and I’d love to hear how folks might be able to use such functionality, but the POC’s are unsupported.  This is also no guarantee that the tag syntax will not change (perhaps drastically) in the future, and we have  no plans to update the POC as future major versions of CF come out, etc, etc.  CFTHREAD and CFJOIN tags may or may not make it into a future release, but that partly depends on feedback from customers.

One known issue/observation in playing with this personally: there appears to be a bug where if you don’t rejoin (using CFJOIN) all the threads you've spawned by the end of the page or you get a “500 Null” error (at least with my example, if you comment out the CFJOIN loop).  However, calling CFTHREAD (once) and skipping the CFJOIN appears to work fine.  Just so you’re aware.  You still get amazing parallelism as demonstrated above, even if your page waits for all threads to complete. Maybe if there’s interest we could fix that one thing, but for now, do play with these POC tags and let me know if they’re useful to you.

DOWNLOAD CFTHREAD POC & SAMPLES  (74k)

Damon


Using FDS + Flash Remoting In The Same Flex 2/CF App

You no longer need to try to merge or jam Flex jars and web app into a CF web app instance with Flex 2 and CF 7.0.2. With Flex 1.5, you wanted to do this in some cases, but this is no longer required now with Flex 2.

I suspect there's two reasons folks have been trying to do this: 1) either because of their Flex 1.5 + CF history (and they just assumed they needed to do the same with Flex 2), or 2) because they wanted to use FDS and Flash Remoting calls in the same Flex 2 app with CF as the back end. Ok, there is a rare third case where it might make sense, but the TechNote will be updated with that info to make that case very clear and make sure folks know that merging is definitely a highly specialized case, and NOT the norm that most people have to worry about.

Whatever the reason, I've observed some folks still trying to do this and running into difficulties in some cases.

The good news is that you can absolutely use Flex 2 FDS AND Flash Remoting in the same Flex 2 app SWF with CF 7.0.2 as the backend with "custom channels", but you do need to use setRemoteCredentials() independently on each (credentials don't automatically pass through Flash Remoting into FDS with in this case with custom channels, but this shouldn't be a big deal, just something to be aware of when coding your app).

There is a TechNote on the Adobe site that talks about merging Flex 2 FDS into the CF web application J2EE instance, but we're revising it shortly to make sure people realize they should have no reason to do this now with Flex 2 and to talk more about using custom channels in Flex 2 apps.

Thanks to Mike Nimer and Pete Farland for this.

Mike's blogged some details here: http://www.mikenimer.com/index.cfm/2006/7/19/Flex-Data-Server-and-CF-Flash-Remoting-together

Damon

July 18, 2006
Adobe XML/PDF Access Java Library Available

As Mike Potter blogs HERE, Adobe has made available the XPAAJ Java library for free download and use.

You no longer need to be in the Adobe Enterprise Developer Program to get access to the library, which is great.

"XPAAJ" roughly stands for "XML/PDF Access API for Java Applications", and Ben Forta's got some very cool CF custom tags he'll be posting up soon that make use of some of the functionality in this library, so download it and check it out.

Note that this is not "the" Adobe PDF Library that commercial software vendors and others can license from Adobe, but does allow for very useful PDF and PDF Form operations from a Java environment (including from ColdFusion of course, since ColdFusion is written in Java and you can use any Java API's in your CFML pages).

Some of the operattions XPAAJ can perform on PDF's include the ability to do:

- PDF Text extraction
- XML form data import/export
- XMP metadata export
- PDF Annotation import/export
- Conversions between PDF and XDP
- PDF File attachment import/export/delete

The SDK also contains Java code samples that demonstrate these operations, but watch Ben's Blog for more info on the ColdFusion custom tags he put together that use the Adobe XPAAJ library...cool stuff!

As Mike Potter also points out, there are a few key things to be aware of in the license:

1) You can use the software if a) you own a copy of Adobe Enterprise software (defined as commercially available versions of Adobe software branded as LiveCycle, ColdFusion or Flex), and you may only use it for your own internal business purpose OR b) You can use the software to develop programs to extract data from PDF files delivered to you from a licensed copy of LiveCycle Forms or Reader Extensions.

2) There are restrictions on the library WRT re-distribution, selling/reselling, etc.

(Be sure to read the license prior to downloading for full details.)

Download the XPAAJ Library Here

Enjoy!

Damon

July 17, 2006
New CF7 ReportBuilder Available

Get it here: http://www.adobe.com/support/coldfusion/downloads.html


Fixes a bunch of ColdFusion Report Builder issues (thanks for reporting these, Kay and others!)

Enjoy.

Damon


Not Too Fluffy...

July 10, 2006
Adobe MAX 2006 ColdFusion Sessions

The initial agenda for Adobe "MAX 2006" conference at the Venetian Hotel in Las Vegas October 23-26 has been posted and registration is now open. Go to event page for more info, including pre-conference events, agenda, hotel/travel and registration. A MAX 2006 Attendee FAQ is also available.

MAX 2006 logo

For those of you interested in the ColdFusion-related sessions this year I've listed some of them here:

GENERAL AND FULL-DAY SESSIONS:
Architecting ColdFusion Applications for Performance, Scalability, and Maintainability (Full Day Session)
Building Rich Internet Applications with Flex and ColdFusion (Full Day Session)
An Introduction to ColdFusion Powered Flex
Image Manipulation in ColdFusion

BEGINNER SESSIONS:
Building Your First ColdFusion Application

INTERMEDIATE SESSIONS:
Building Your First Dynamic Web Application
Advanced ColdFusion Components
Securing ColdFusion
Introducing CFEclipse
Advanced ColdFusion Printing and Reporting
Building ColdFusion Powered Flex Applications
ColdFusion 7 Application Framework
Leveraging ColdFusion Components in ColdFusion

ADVANCED SESSIONS:
Leveraging the ColdFusion Application Framework
Search Engine Optimization
AJAX/Spry Framework Overview
ColdFusion.Net Integration
Developing Hybrid Applications with ColdFusion and Java
The Big Framework and Methodology Debate
Unlocking the ColdFusion Server Black Box
Using ColdFusion Components as Objects
Using ColdFusion with Flex Data Services

For the latest up-to-date information, check out the Sessions by Track page.

Damon

July 7, 2006
CF+Flex 2 Next Gen Web Experience Seminar July 11, Washington D.C.

Spots are almost gone (I should have blogged this earlier, sorry...), but if you're in the Washington, D.C. area, you're invited to the "Building Next Generation Web Experiences Seminar" with Ben Forta on July 11th at the JW Marriott Hotel.

Click Here for more info and to register.



Should be awesome.

Damon


ColdFusion 7.0.2 (aka "Mystic") Docs Now Online

We seem to be answering lots of questions about Flex 2 and ColdFusion 7.0.2 that are actually addressed (with examples!) in the documentation we shipped with CF 7.0.2, so we've made the doc available online where you can quickly reference it as needed.

Now available here:

http://www.adobe.com/go/cfmx702docs

and again, the ColdFusion 7.0.2 install instructions are here:

http://www.adobe.com/go/flex2_cf_installation

Enjoy, and please do use it and spread the word...teaching folks to fish is better than giving them fish, right? :)

Damon

July 3, 2006
RAD Flex 2 Development for CF Developers

In this three-part presentation, Dean Harmon of the ColdFusion team presents and instructs on the use of the ColdFusion FlexBuilder 2 Extension features:


Part 1:ColdFusion Extensions for FlexBuilder – App Gen Wizard Intro (14:01)
Part 2:ColdFusion Extensions for FlexBuilder – App Gen Wizard Advanced Features (08:50)
Part 3:ColdFusion Extensions for FlexBuilder - Other Features, Wizards and Utilities (11:23)

EDIT: Reposted now that Flex 2 and CF 7.0.2 are available...

Damon

July 2, 2006
Corvette 'Blue Devil' project reportedly now called 'Sting Ray'

According to AutoWeek and others the Corvette supercar project has been given a green light and will be tagged the Corvette "Sting Ray", packing a 7.0-liter 600+ hp V8 and additional carbon-fiber. Price is reportedly still in the sub-$100K range.

Apparently GM CEO Rick Wagoner has signed off on the project and it could be available as soon as 2007.

Tom Wallace, the new Corvette Chief Engineer who replaced long-timer Dave Hill (whose final project was the creation of the amazing 2006 Z06) is apparently leading the project.

Several other sources around the web (including Edmunds) report that GM is seriously considering requiring buyers to take a mandatory high-performance driving course before handing over the keys.

Performance is obviously a big question mark, but I'd venture to guess we're talking 0-60 numbers in the low-to-mid 3's (3.2 - 3.5 second) range, deep into ultra-supercar territory.

Damon