It's a very good question so here are some of my thoughts on why you might decide to build an open source project from source yourself...
Tony Garcia mentioned it there in a comment and since then Jamie Krug mentioned it in a comment on the Railo blog:
Tomcat can do SES URLs, albeit with some limitations.
What he's mostly talking about are those open reqs that you keep seeing, month on month, that never seem to get filled, but he is also asking why well-qualified people have a hard time getting hired. He doesn't really answer his own question but he gives some good advice about applying for jobs...
Adobe MAX happens in early October down in Los Angeles, then Dan Wilson and friends are organizing a North Carolina ColdFusion conference in mid-October followed by BFusion/BFlex organized by Bob Flynn and friends (I believe this will be a week after the NC conference).
Then you can have a month of down time before the next RIAdventure Cruise'n'Conference in December. This year organizer Joshua Cyr has teamed up with the 360 Conference team to make the event even bigger and better!
I was privileged to sit in on parts of this course before cf.Objective() this year and was very impressed at the amount of material covered, the quality (and thickness!) of the handouts and the hands-on approach that Luis takes.
Conferences usually want topics submitted a long way in advance of the conference, even tho' drafts and the final version of the talk can be delivered just before the conference. CFUnited 2009's deadline for topic submissions was December 1st, 2008, eight months ahead of the conference. MAX 2009 opened its call for speakers on March 3rd 2009 and closed it in late April, six months ahead of the conference.
Conferences set deadlines far in advance so that they can offer a good roster of speakers and talks because that's what attracts attendees. I've been on the advisory for a number of conferences and getting a schedule out early is key in the battle to boost registration.
Our industry moves very fast. Something that's hot in the Fall may not be on anyone's radar today. Something that's hot today may be old, old news by the Fall. Conference committees have to guess what will be attractive, many months in advance - which is extremely hard! And yet, one of the biggest complaints we hear about conferences is when they have the same topics every year - which is a natural consequence of trying to fill the schedule so early: how many brand new topics can you think of off the top of your head?
How do you feel about conference schedules? Do you feel they manage to stay ahead of the curve? Do you think there's too much "safe" content? Do you have suggestions for how conference committees can balance the need to publish a schedule so folks will buy tickets against the desire to feature bleeding edge topics?
Do you think I'm too concerned about this - and that maybe there's no real issue here?
I just posted a detailed summary with explanations to the committee mailing list. Here's an abbreviated summary:
- In first place with 18 votes was: introduce a set of objects!
- In second place with 11 votes: use pure function notation using body= and sql= to pass in strings to mail() and query() respectively.
- In third place with 9 votes: tagname(attributes) { writeOutput("string"); logic(); writeOutput("string"); }
- In fourth place, a new idea, with 6 votes: introduce E4X syntax to allow tags in script.
- In last place, my poor, unloved favorite, with just 4 votes: tag {
}
I'll keep you posted on what the committee decides to do next on this tough issue.
Learn about Flex 4, Flash Builder 4 (formerly Flex Builer), Flash Catalyst, ColdFusion 9 and Bolt!
Make sure you RSVP via the BACFUG website!
Todd has already started to pull together a couple of FAQs on the community site (getrailo.org) and monitors Twitter and mailing lists for questions about Railo so he can point people at the right resources.
Thank you Todd!
Railo - Free as in beer and free as in speech!The group has provided me with a (long) list of questions they want answered so it should be an interesting evening. I don't know whether it will be broadcast / recorded (ask the UG manager, Seth Duffey).Railo's CFML engine is now a Free Open Source Software (FOSS) project under the JBoss Community umbrella. Sean will provide a history of the Railo project, show several of its unique features - and its compatibility - and talk about future plans. Come armed with questions so you can go home fired up with answers!
I've left comments on a few of the blog posts but several people have asked me to go into a bit more depth about my thoughts on this issue (since I'm one of the people sometimes accused of "pushing" OO and insisting it's the "right" way to do things).
Sounds good? Visit Alurium and click on the 60 Day Free Trial badge on the home page to sign up!
One of the really nice things about the way Railo patches work is that you can apply them automatically from within the Server Administrator and have your server restart without having to do anything more than click a button! I upgraded my site this morning from 3.1.0.012 to 3.1.0.015 and was very pleased with how easy it was!
Right now, we have a pretty solid definition of how CFSCRIPT should work so that you can write entire components. Mostly it follows what you may have seen Adobe show off at conferences but Adobe is still making changes in response to feedback from the committee (and its own banks of prerelease testers, I'm sure) and some of Adobe's suggestions were considered vendor-specific by the committee.
But we're stuck on a couple of tags that we're really struggling to define in CFSCRIPT. We'd like you to help us make some decisions here!
- Adobe: 2 votes (Ben Forta, Adam Lehman)
- Open BlueDragon: 1 vote (Matt Woodward)
- Railo: 1 vote (Gert Franz)
- Community: 3 votes (Ray Camden, Rob Brooks-Bilson, me)
After lots of discussion, the committee selected Peter J. Farrell and extended our invitation last night. I received an acceptance email from Peter this morning.
Welcome to the committee Peter!
This is all somewhat last minute so we're trying to get the word out. Gert Franz, Peter Bell and myself will be available to answer all your questions about Railo the CFML engine and Railo Technologies the consulting organization. Hope to see you there?
The short answer is: yes.
The long answer is...
numeric arg1,
string arg2 = "foo"
) { ... }
Wouldn't that be nice?
In Railo, you can already do this!
Edit the Railo web.xml file in WEB-INF/ and find this XML:
<servlet-name>FileServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
While developing and testing, it's often useful to have directory listings enabled so you can browse directories (particularly if you have directories full of example / test code). There's no way to enable that with Railo's FileServlet but you can do it for the default Tomcat Servlet by changing the listings setting in the global web.xml file (in Tomcat's conf/ directory):
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
The content for cf.Objective() was picked some time ago, before our open source release and before the expansion of Railo into the UK and the US. Similarly, most of the BOFs were selected in early March and the only open slot is in the RIA track.
Despite that, the Railo team will be there in force. Mark, Peter and I are all speaking at cf.Objective() and Gert will be there too. We'll be around every evening for any questions you may have - think of it as a Railo BOF in the bar! I look forward to seeing you there.
All four of us are speaking at Scotch on the Rocks in London - I'm speaking at all three venues and I think some of my colleagues will be attending Manchester and Edinburgh as well. All four of us are speaking at CFUNITED as well. You'll be hearing plenty from us at future conferences!
We still have three speakers marked "TBD" (Working with Transfer, Service Oriented Architecture and Adobe's 'Flex topic') but we expect to announce those in the next few days.
There are still two BOF slots available for RIA topics if anyone wants to lead a session!
That means that if you signed up for Jason's talk, you're now signed up for Terry's advanced talk and if you signed up for Adobe's "super secret" Friday talk at 1:45pm, you're now signed up for Jason's basic ORM talk!
Feel free to visit the online scheduler to update your selections if necessary!
The CFML Advisory Committee - Happy First Birthday!A year ago, at CFUNITED 2008, Adobe announced the formation of the CFML Advisory Committee, made up of vendors and community members, charged with the tasks of answering the question "What is CFML?", providing a specification of the language and providing guidelines for vendors who implement extensions. Come to our BOF and find out what progress we've made and what we're planning for the future. We expect almost all of the committee to be at CFUNITED so this is a great opportunity to meet the team and ask us all your hard questions, face-to-face!
These topics have been added to the schedule - and the online scheduler (yes, we know the Printable Summary doesn't work - Joe is having an issue with his hosting company and hopes to get this fixed soon).
Another Adobe topic - covering Flex - is on the schedule but we do not yet have the title or description.
cf.Objective() 2009 is offering last year's price of just $629 for three days of all-new material - no repeats this year! - so it represents incredible value. Also, don't forget that there is a one-day ColdBox training course on the Wednesday before the conference!
I'm looking forward to that first week of June despite the crazy travel schedule (I arrive Sunday afternoon and fly back the following Saturday, hopping from Edinburgh to Heathrow on a horribly early flight).
If this is a new concept for you, read this article!
If this is a familiar concept for you but you want to feel better about what you already do, read this article!
Seeing this sort of stuff on the Adobe Developer Center is very encouraging because it says a lot about what is considered current best practice!
That means your RSS feed may show a number of articles that you have already read on their original dates. I will republish each article using the original date but I can't guarantee they won't show up new for you :)
I've had a great time working with Ray Camden, Joe Rinehart, Brian Kotek and Luke Kilpatrick - as well as the rest of the team (who don't blog). We created a great content management system (Broadchoice Community Platform, powered by Model-Glue 2, ColdSpring and Transfer, running on ColdFusion 8 Enterprise - now up on the Amazon cloud) and we created an incredible desktop collaboration app (Broadchoice Workspace, powered by AIR, Flex, BlazeDS, Spring and Hibernate, running on Groovy and JBoss - with an iPhone web version powered by Model-Glue 3 and ColdSpring, running on Railo 3.0 and JBoss up on the Amazon cloud). I've learned a lot about Flex and AIR and I've gotten to know Railo as an alternative CFML engine.
After working with such a great team on such a great product, what comes next?
I'll be looking at ColdBox, Mach-II and Model-Glue - talking about their similarities and their differences - and showing demos of each framework.
Please see the event listing on Adobe Groups for more details and to RSVP (you must login with your Adobe ID to RSVP!).
First off, you can always check out the CFML Advisory Committee website. We're updating it as we finalize our decisions but it can be a slow process since this is the first time any group has tried to agree on a specification for the ColdFusion Markup Language.
Over the last few weeks, the committee has been pretty active...
The early bird rate is over but the full price has been held at last year's $629 so it's excellent value!
If you've ever wanted to learn ColdBox, this is also a good opportunity with a full one-day pre-conference training class by Luis Majano himself for just $449.
This year's schedule features three full days of new sessions - last year, day three was mostly repeats of popular sessions but we had so many great submissions this year that we wanted to showcase as many as possible. We will repeat two of the most popular sessions in the last slot of day three, however, if people fill out the online Session Scheduler (linked from the schedule page) so we know what's popular!
The Adobe sessions covering Centaur / Bolt promise to be smokin' hot - Adobe are keeping them secret right now but we hope to be able to post details next week!
Finally, the hotel rate is guaranteed thru Monday. It may go up after that (we don't know - that's up to the hotel) so hurry up and book your rooms!
I've been using ColdFusion since 2001, back when I worked at Macromedia and my team of Java and C++ developers first encountered CFML in the form of very early builds of what went on to become CFMX (6.0). We were pretty skeptical at first.
In this Appendix post, I want to tackle SES URLs. One downside of Tomcat is that it does not support the following common form of SES URLs:
We're going to tackle this by changing our proxy strategy to use mod_rewrite.
You might have already heard that cf.Objective() is coming to the Pacific region and that were going to hold cf.Objective(ANZ) in Melbourne, AU later this year (12 & 13 November 2009).I'd love to go but finances don't permit it this year. Speaking at MXDU a couple of times in the past was a fantastic experience so cf.Objective(ANZ) should be awesome too!At this stage were opening the public call for speakers. If youre interested in coming over to Melbourne and present on a topic that goes along nicely with the "ColdFusion Enterprise Development" scheme cf.Objective() has become successful in the US, wed like to hear from you.
Topics were looking for fit into (but are not limited to) the following major categories:
Architecture and Design:
OOP, Design Patterns, Frameworks, Modeling, Refactoring Legacy Apps, Persistence etc.
RIA:
LC DS and CF, Ajax/Flex with CF, BlazeDS and CF etc.
Process and Methodology:
Agile Development, SOA, Managing large CF architectures, Debugging and Metrics etc.
Integration and Testing:
CF and Java, Build and Deployment processes, Server tuning, Unit Testing etc.
Please let us know by April, 24 2009 if youre interested in coming to Melbourne to present at cf.Objective(ANZ). A short blurb about yourself and one or multiple topics youd be interested in presenting on would be very appreciated. Please send all topic submissions to speakers@cfobjective.com.au .
cf.Objective(ANZ) will provide speaker accommodation for the night of the 12th to the 13th of November 2009 at the conference venue (Renaissance Hotel in Melbourne). At this stage we unfortunately cant provide any further financial assistance with travel cost or other expenses.
We look forward to hearing from you!
cf.Objective(ANZ) Steering Group
Register now to get the best price for those two conferences!
Remember that if your company registers at least one person for cf.Objective() as an early bird, you can register others from your company later at the same early bird price!
Recently I've been getting a lot of questions from people about installing and configuring Railo on a number of systems. The general complaint I hear is that the documentation is somewhat lacking in this area. Of course, this is something that a large corporation with massive resources - such as Adobe - can be expected to score highly on (even though people complain about Adobe's installation and configuration documentation too).
Personally, I find Railo easy to install and configure but I'm fairly used to Java-based systems. That's not true for a lot of CFers so I figured I'd start a series of step-by-step posts going through a variety of installation and configuration scenarios for Railo. The two systems I have to experiment with are Mac OS X (Leopard) and Windows 7 Beta. I'm going to start with the very simplest development scenario and build up to a variety of production options.
You can read all about the training course on the ColdBox website and the cf.Objective() pre-conference page. You can now register for the training when you register for cf.Objective(). You can even attend the training without attending the conference (but why would you want to miss such an excellent conference?).
I know some folks were holding off registration until the pre-conference training was announced - now you have no excuse! :)
Remember that the early bird ends on March 31st. If you register at least one person from your company before then, other people from your company will be able to register at the same price even after that date (and if you send five or more people, you'll get an additional discount!). After March 31st, the regular price goes up to $629 - which is the same price as last year.
Read more about the curriculum, free licensing for education and download the PDFs of each course on the Adobe education website.The ColdFusion 8 project-based curriculum is designed to teach experienced web developers how to create dynamic, database-driven web applications using ColdFusion 8.
Introduction to ColdFusion 8
This course covers the basics of ColdFusion and focuses on best practices and design, while stressing the importance of usability, optimization, and performance.
Advanced ColdFusion 8 Development
This course is designed to teach you how to take full advantage of ColdFusion 8 while building web applications. The course focuses on best practices and design, stressing the importance of usability, code reuse, performance, and scalability.
In addition to BACFUG, which has been around longer than the user group program itself, we now have the East Bay CFUG courtesy of Charlie Griefer (Amcom) and James Morrow (Planitax).
The inaugural meeting of the East Bay CFUG will be Tuesday, April 7th, hosted by Planitax in Alameda. It's a great facility - Planitax hosted BACFUG's meeting last night - so you can expect meetings to be broadcast and recorded if you're remote and a chance at foosball and darts if you turn up in person!
See this press release for full details of the pricing changes as well as information about all of the sponsors.
Sponsored by Railo, Scotch on the Rocks is offering ten free tickets to non-CFML developers!
What a great idea! The blog entry has instructions on how to contact Andy Allan et al to arrange education for your misguided friends.
The Broadchoice Community Platform has a number of "modules" (applications) that you can add to a page and one of those is a list of documents for download (or external links). You add the module to the page and then select documents (from your document library) to add to that module. In previous releases, authors had to add documents in the order that they wanted them to appear on the (generated) web page. We looked at a number of UI options for allowing authors to "rank" the documents within the module but felt most of them were fairly clunky, involving entering ranking numbers to reorder things or up/down arrows requiring authors to move documents one position at a time. Ugh!
Ray pointed me at one of the cool jQuery UI interactions: sortable. It allows you to mark a "container" tag (e.g., a div) as sortable and then users can drag'n'drop the "child" elements into the order they want. You can attach event handlers that fire at various points in the drag'n'drop operation.
Here's how we do it:
<cfloop query="documents">
<div id="doctag_#documents.id#" onMouseOver="setCursor(this,'move')" onMouseOut="setCursor(this,'auto')">
#documents.name# ... etc ...
</div>
</cfloop>
</div>
update: function(event,ui) {
jQuery.get('/updateRank.cfm?' + $('#sortable').sortable('serialize'));
}
- jQuery marks the sortable div contents as being, well, sortable!
- jQuery adds an event handler for update - when the drag'n'drop operation completes - that invokes a URL on the server, passing in the serialized data from the children of the sortable div, i.e., the id values as a list in the new order: doctag[]=1,3,4,2. It assumes an underscore as a separator.
If you're holding off until the pre-conference classes are announced, we're trying hard to get details and prices finalized this week but we're still going back and forth with the hotel over room availability and costs for pre-conference classes - don't delay registering for the conference: make sure you save that $130! You can always update your registration later and add a pre-conference class and extend your hotel nights if necessary!
BTW, if you're a speaker at cf.Objective() 2009 - like I am - you might be thinking "Oh I don't need to register" but, yes, you do (selecting the appropriate type of registration and payment) and you need to go on and book your hotel. This helps the conference organizers plan the room blocks and saves them from having to chase speakers to get things done!
- You need to specify database tables use UTF-8.
- You need to use setEncoding() on form and URL scope to set them to UTF-8 (in Application.cfc).
- You need to set the output content type to UTF-8.
- You need to set the pageEncoding to UTF-8 (on any CFML page which needs it - so you might as well set it on all of them).
- Your datasource setup, at least for MySQL, must have useUnicode=true&characterEncoding=utf-8 in the Connection String textarea under Advanced Settings.
3-day registration is currently $549. 2-day registration is $499.
After March 16th, 3-day registration will be $679 and 2-day registration will be $549.
Expect pre-conference training to be finalized in the next few days and posted to the website early next week!
The online scheduler will be available next week too.
http://groups.google.com/group/railo
You can still visit the old archives on Yahoo! Groups:
http://tech.groups.yahoo.com/group/railo_talk/
Railo 3.1 - the open source edition - is in alpha testing right now and the public beta release is planned for March 31st, 2009, just a few weeks away, with a full release expected in May.
I said it in a post to the cfcdev mailing list and Henry Ho felt it deserved a mention on his blog.
The topic came up because John Whish, manager of the Devon CFUG over in England (where I spoke last September on design patterns), is running a series of presentations on OO and patterns for the group. He wondered how to approach the fact that CFers tend to have separate DAOs and Gateways whereas that distinction does not exist in non-CF languages or pattern literature.
I feel responsible for that distinction so I replied with my thoughts and an explanation of why I had suggested it nearly six years ago but why I don't think it's good advice these days (and, frankly, hasn't been good advice for years - I no longer had access to the guidelines document that enshrined the advice!).
I recommend you read the thread on the Google Group (cfcdev). Henry quotes part of my reply and links to the thread for more detail.
Here's the abstract for the BDD talk:
The natural way to develop software is to start with requirements - the expected behavior - of the system. We work our way down the line through design to implementation and somewhere in there we do some testing. Unit testing focuses on implementation, even if you write the tests first. Behavior-Driven Development is intended to let you write the expected behavior - the requirements - in a testable format so that you can develop software top-down, in a natural manner. cfSpec is a great new framework that supports BDD for ColdFusion. Find out how it can help you develop testable, high-quality software in a natural way.
After cf.Objective(), I'll be happy to give this talk to CFUGs via Connect (Salt Lake CFUG - this means you!)
As promised, pricing has been kept extremely affordable - under fifty quid for any one event with discounts for attending more than one (and discounts for groups).
See you there!
One of the things we'll be working with in the class next week is event driven programming. ...I find this approach has benefits and drawbacks. The drawbacks are inherent in the approach: it's decentralized. ...
The benefits, though, are considerable. Adding functionality into a site is much, much simpler. Maintenance is easier. Testing is easier. ...
All BACFUG meeting recordings have now been added to the BACFUG site on Adobe Groups under Resources > Reference Library.
If you register [for CFUNITED] by Feb 14th, you will be entered to win $150 gift certificate!This year CFUNITED is at a wonderful venue with a very diverse set of topics so register early to get the best price - and the chance to win!This is our way of saying we love our customers. Read more on the CFUNITED blog.
Here's the talk abstract:
The dream of cloud computing is cheap, scalable, on-demand power. What is it really like to run your production applications up in the cloud? What are the design issues you will face? How could you migrate from a traditional data center? Broadchoice runs its two main products on Amazon EC2 and uses S3 for persistent storage. Come and find out how we did it and the challenges we faced along the way - and why we like Amazon as a hosting environment!
With ColdFusion in multiserver configuration, you have:
Download the Railo 3.0.2 WAR file (at the bottom of the downloads page) and unpack the WAR file to a directory called railo-war. You can use jar xvf or rename the .war to .zip and just unzip it. Your railo-war/ directory should now contain WEB-INF/, index.cfm and License.txt.
Now move that railo-war/ directory into the cfusion-ear/ directory mentioned above (so it's next to the cfusion-war/ directory.
Finally, edit that application.xml file and copy the <module> definition for cfusion-war and change it to say railo-war for the web-uri and /railo for the context-root.
Start ColdFusion and you'll see it starts both application servers. http://localhost/index.cfm is Adobe ColdFusion and http://localhost/railo/index.cfm is Railo CFML.
If you write frameworks (like I do), this makes it easier to test across multiple engines.
I'll probably stick Open BlueDragon 1.0.1 in there next.
The same process works for the OpenBD WAR file.
Caveats:
1. For OpenBD, I had to add an Apache alias for /openbd to match the location of the exploded WAR so that images loaded correctly (in the shiny new OpenBD Administrator - nice job guys!).
2. For both Railo and OpenBD, I experienced some problems with xmlParse() - OpenBD in particular said "The configured XML parser does not support JAXP 1.3."
The solution to the second problem was to add the following to java.args in jvm.config:
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
We'll be covering Fusebox, Model-Glue and Mach-II in coming months, based on requests from our members. If you have any suggestions for topics or speakers, please comment on the BACFUG plans for 2009 blog post.
That particular chapter is available as a PDF and it's a really good read. It starts off explaining the problem to be solved and then presents the "obvious" object model that most new OO students come up with. Then he takes it apart, explaining why it's a poor design, and goes on to construct a much better model (with fewer objects) that is very elegant and easy to understand.
If you're struggling with the OO design process, you need to read this PDF and absorb the lessons laid out within it. Even if you think you're an OO 'guru' you'll probably learn something from it!
Some people have been noticing dramatically slower application startup times on ColdFusion 8 compared to ColdFusion MX 7. I've seen a lot of complaints about shared hosting systems where applications timeout. Since CF8 is so much faster than CFMX7, you might wonder why application startup times can be so much worse.
I'm handling a form post in a CFC but I can't get file upload to work. How do you use <cffile> in a CFC?The key here is that <cffile> expects a form field name for the filefield= attribute. You'd normally say:
<input type="file" name="userfile" ... />
...
<cffile action="upload" filefield="userfile" ... />
Inside the CFC, you still need the name of the field in the <cffile> tag when you specify filefield=. The easiest way to do this is to pass the name of the form field to the method:
...
<cffile action="upload" filefield="#arguments.formfield#" ... />
This is based on Todd Rafferty's post to cf-talk which was the clearest explanation I found via Google!
We've been very pleased with the performance and stability of EC2 so far and we're comfortable about scaling out as demand increases. We took advantage of Amazon's EBS (Elastic Block Storage) that allows you to mount S3 storage directly as part of the file system on EC2. This essentially replaces the NAS we were using in the data center where all uploaded files were placed. We run two ColdFusion instances on a medium EC2 instance and run MySQL on a separate EC2 instance (actually on the instance that is currently running our AIR application, the Broadchoice Workspace for Salesforce, along with its MySQL database). We replicate the MySQL databases to another server (in a data center) so that we can restore / recover in the event of a problem with EC2. We also run scheduled backups of the EC2 instances to S3.
As I noted in my earlier entry, we're using Apache and the JRun Connector to manage the two instance cluster and failover. I'm still suspicious of the connector due to past experience but so far it has been behaving well and when we restart instances for maintenance, we're generally seeing uninterrupted service, from a user's point of view, as requests silently failover to the other instance.
If you're interested in running ColdFusion in the cloud, you'll need to talk to Adobe about licensing (either Adam Lehman or Kristen Schofield) but they are being very encouraging because they want this to happen. The more of us who do this, the better the argument they can present internally to get the EULA changed to support ColdFusion running in the cloud!
If you want to learn more about how we handled the migration and/or what to watch out for when designing applications that run well on the cloud, feel free to contact me via this blog or directly (c'mon, you know my email address!).
Anyway, here is Unit Testing Improves Your Love Life - and - Groovin' To The Fusion: Marc Esher and Bill Shelton of MXUnit fame kick off the first hour and then Joe Rinehart of Model-Glue fame carries the second hour, explaining why a mixed language technology stack can make ColdFusion even more productive.
It seems that only two ColdFusion sessions are listed, one of which is my Event-Driven Programming in ColdFusion session. The other is Rob Brooks-Bilson's Advanced ColdFusion Caching Strategies. Searching Adobe TV for ColdFusion turns up nine videos, six of which are part of the Adobe Developer Connection series from Adam Lehman and Ben Forta.
If you haven't checked out Adobe TV as a learning resource, there's definitely some good stuff up there.
cfSpec now includes "stub" objects (with true "mock" objects coming soon) so that you can specify the behavior of components independent from each other (so you don't have to write multiple objects just to get one object's expectations satisfied).
Getting into TDD is not easy, however, and I think there are a couple of conceptual problems that take a while to get your head around. One is just a simple case of "Where do I start?". Given a blank piece of paper, how do you just start writing tests that are an accurate representation of what the yet-to-be-written system is supposed to do?
I know some speakers who didn't make the first list assumed they weren't speaking. Not necessarily true. The manager and beginner tracks have not been (fully) announced yet, not have all the Flex/AIR topics and none of the Centaur and Bolt topics (and, indeed, several slots in the other tracks have not been finalized either). Additional topics will be announced over the next few months but Liz wanted to give a sense of what is coming in some of the tracks this year.
Another clarification in her latest post covers the "exclusivity" of Centaur/Bolt topics, namely that certain topics will be exclusive to CFUNITED but by no means all Centaur/Bolt topics. That means that other conferences will be covering Centaur and Bolt (and may well have "scoops" as has been Adobe's practice in the past during keynotes). That's good news for cf.Objective() and Scotch on the Rocks attendees since they know now that they won't miss out on the "highly anticipated next major release" of ColdFusion!
Don't forget that the early bird price ($849 for 4 days) ends TODAY!


